0
有沒有人碰巧知道爲什麼對setlocale
的調用會因地區包不存在以外的原因而失敗。以下代碼:setlocale問題
$language = 'fr_CA.utf8';
//putenv("LANG=" . $language);
var_dump(setlocale(LC_ALL, $language));
// Set the text domain as "messages"
$domain = "messages";
$result = bindtextdomain($domain, ROOT_DIR . "../locale/");
bind_textdomain_codeset($domain, 'UTF-8');
$result = textdomain($domain);
echo _("IAMSOMETEXT");
echo $result;die;
bool(false)
輸出從var_dump
。我們運行的網站爲Vagrant,但是我運行locale -a
上的VM和fr_CA.utf8確實在輸出中。我已嘗試列出其他變體,如簡單地fr_CA。
將語言環境設置爲en_US.utf8可以很好地工作。 POSIX似乎也起作用。有沒有人遇到過這個問題?我們在VM上運行Ubuntu 12.04。
'fa_CA.utf8'也不適用於我。 'fra_can'起作用。 'fra_can.utf8'沒有。兩個字母的語言代碼似乎不適合我:'en_us' vs'eng_usa'。 – Halcyon 2014-11-05 17:04:20
是那些在您的語言環境中可用的-a輸出? – 2014-11-05 17:08:00
如果在命令行上鍵入「LC_ENV = fr_CA.utf8 date」,是以法語打印的日期嗎?如何「echo exec('locale -a');」在PHP中?這是一個簡單的Ubuntu 12.04安裝? – bgm 2014-11-14 14:15:49