2015-08-27 74 views
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重啓不夠流浪

回答

0

因此,事實證明,按照她的建議Ë工作對我來說https://stackoverflow.com/a/20602983/682754

sudo service php5-fpm restart 

我猜測它可能來自下列之一朵朵:

  • 我一直在語言環境值de_DE.UTF-8切換到不使用連字符,並試圖小寫,我注意到在Ubuntu上它是de_DE.utf8
  • 我也改變了我的.po和.mo文件的名稱
相關問題