2014-10-07 61 views
0

我有一個問題讓gettext的在Windows Server 2008上運行R2,PHP 5.5PHP的gettext無法在Windows Server 2008上工作,PHP 5.5

我做了以下在我的PHP腳本:

$language = 'NB'; 
putenv("LANG=".$language); 
putenv("LC_ALL=".$language); 
setlocale(LC_ALL, $language); 
$domain = 'messages'; 
bindtextdomain($domain, 'C:/path_to_translations/translations'); 
textdomain($domain); 

我的翻譯文件是在以下目錄:

C:/path_to_translations/translations/NB/LC_MESSAGES/messages.po C:/path_to_translations/translations/NB/LC_MESSAGES/messages.mo

這工作正常,我的Windows 7機器上使用PHP 5.3

我猜NB是不是真的在Windows上一個有效的區域設置名稱,但的setlocale(LC_ALL,「NB」)仍返回「NB」,而不是FALSE。 不過,看看這可能與問題有關,我曾嘗試設置$ language ='norwegian',在這種情況下setlocale(LC_ALL,'norwegian')返回'Norwegian_Norway.1252',並嘗試更改 指向C:/path_to_translations/translations/norwegian/LC_MESSAGES/messages.mo和C:/path_to_translations/translations/Norwegian_Norway.1252/LC_MESSAGES/messages.mo的路徑名,還要將.po和.mo文件的編碼從「UTF -8'到'Windows 1252'。 然而,我不能讓翻譯工作在Windows Server 2008 R2,PHP 5.5機器上。

任何幫助很感謝!

回答