2011-07-15 16 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

でもWebサーバーを再起動しても何の違いはありません。 – Developer

+0

これはオンラインサーバーで動作しています。私のテストサーバーでは動作しません。今私は構成の問題だと確信しています。誰でも? – Developer

答えて

0

使用したい他のロケールはすべてUTF-8になっていますか?あなたの例では、 '.UTF-8'をsetlocale()に追加します。

+0

これはテストのために重要ですか? "test123"の翻訳は "test123 in French"ですか?私は、en_GBとen_USだけで動作するため、変更が必要な設定でなければならないと思います。私はそのフォルダにどのような翻訳を置いても問題ありません。フランス語翻訳をしようとするとうまくいきません。私はen_GBにfrench moファイルを置きます。これは完全に動作します。翻訳が正しいことを意味しますが、en_FRがどのように支持的ではないかということもあります。 – Developer

関連する問題