1
我在使用gettext在我的運行Ubuntu的Vagrant設置上翻譯我的翻譯文件之一時出現問題。我的語言文件是在像這樣一個目錄...PHP gettext和vagrant正在運行ubuntu
locales\de_DE\LC_MESSAGES\default.po
我相信,翻譯文件都OK,因爲我有XAMPP指向完全相同的文件的本地版本,它工作正常。
我曾嘗試以下,幾乎只是想弄清楚是怎麼回事,因爲我花了這麼長時間尋找到它
- 權限 - 我可以對輸出default.mo文件的內容在「文件/etc/locale.gen」,網頁
- 啓用區域設置運行「區域根」並重新啓動Apache的
有什麼,我可能錯過了什麼?
<?php
define('LOCALES_DIR', "../locales");
if (! file_exists(LOCALES_DIR)) {
exit("Locales not found from here");
}
$content = file_get_contents(LOCALES_DIR . "/de_DE/LC_MESSAGES/default.mo");
if (strlen($content) < 1) {
exit("File could not be read");
}
$language = "de_DE.UTF-8";
putenv('LANG=' . $language);
setlocale(LC_ALL, $language);
$domain = "default";
bindtextdomain($domain, LOCALES_DIR);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');
echo _("Sign In");
更新
- 出於某種原因,它現在是半工作間歇,3日刷新它會顯示正確的文本。
- 我的PHP版本略有不同
- 無業遊民: 5.4.42
- 地方:5.4.7
- 不知道是否有幫助,但對流浪者的php_sapi_name()是「FPM-FCGI 「並在當地它是」apache2handler「,只是猜測不是100%肯定的差異,但可以解釋爲什麼Apache重啓不夠流浪