2011-07-15 28 views
1

我已經使用poedit創建了翻譯文件並生成了mo文件並將它們保存在各自的文件夾中。但不知何故,我只能訪問en_GB和en_US文件夾中的翻譯。即使我把DE翻譯放在它工作的這些文件夾中。po mo翻譯僅適用於en-GB和en-US,不適用於其他語言

爲什麼無法使用其他語言環境?有沒有我需要做的移民,或者我錯過了什麼?

這是我正在使用的代碼。

switch ($_GET['language']) { 
    case 'de' : $locale = 'de_DE'; break; 
    case 'us' : $locale = 'en_US'; break; 
    case 'fr' : $locale = 'fr_FR'; break; 
    case 'es' : $locale = 'es_ES'; break; 
    case 'it' : $locale = 'it_IT'; break; 
    default : $locale = 'en_GB'; break; 
} 
putenv("LC_ALL=$locale"); 
    setlocale(LC_ALL, $locale . '.UTF-8'); 
    $domname = 'default'; 
    bindtextdomain($domname, 'locale'); 
    textdomain($domname); 
    bind_textdomain_codeset($domname, 'UTF-8'); 


echo gettext ("test123"); 
echo gettext ("hello every one"); 
+0

即使我已重新啓動網絡服務器,但它沒有任何區別。 – Developer

+0

確定這是在線服務器上的工作。但不能在我的測試服務器上工作。現在我確定它是配置問題。任何人? – Developer

回答

0

您確定要使用的所有其他語言環境都是UTF-8嗎?在你的例子中,在setlocale()中添加'.UTF-8'。

+0

是否對此進行測試?而「test123」的翻譯是「test123 in French」?我認爲必須是我需要更改的一些配置,因爲它僅適用於en_GB和en_US。無論我將哪些翻譯放在他們的文件夾中。就像我嘗試法語翻譯一樣,它不起作用。我將法文mo文件放入en_GB中,效果很好。所以這意味着翻譯是正確的,但一些en_FR不支持。 – Developer

相關問題