2

プロジェクトでローカリゼーションを行っています。locale/sk機能するということは、プロジェクトがフォルダにある言語に翻訳されることを意味しますsk。スロバキア語がデフォルトのシステム言語であるためです。

他の言語に設定しても機能しません。$lang = 'cs'、、、、'cz'など'en'を試しまし'en_UK''en_UK.utf8'。それでも、'sk'フォルダー内の翻訳のみが取得され、setlocale()関数は false を返します。ブラウザのデフォルト言語を変更しようとしましたが、効果がありません。

これは私のコードです:

putenv("LANG=$lang"); 
setlocale(LC_ALL, $lang); 
bindtextdomain("messages", realpath("../localem")); 
textdomain("messages");
...
_("Welcome!")

私もこれらを試しました:

putenv("LANGUAGE=$lang"); 
putenv('LC_ALL=$lang');

どんな提案でも大歓迎です。

編集:

$loc = array('nor');
if (setlocale(LC_ALL, $loc)==false) print ' false'; else print setlocale(LC_ALL, $loc);

'nor'Norwegian (Bokmĺl)_Norway.1252'rus'ロシア語を印刷しますが'svk'、偽を印刷し、そうし'cze'ます。

リストには、これらすべてが記載されています。

http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.80%29.aspx

4

1 に答える 1

1

Windowsは、ロケール設定に別の形式を使用します。MSDN:国/地域文字列のリストを参照してください。

ノルウェーの月の名前や時刻の形式を取得するなど、配列を送信することで、ロケールのリストをsetlocaleに送信できます。

setlocale(LC_TIME, array('nb_NO.UTF-8', 'no_NO.UTF-8', 'nor'));

ただし、WindowsはUTF-8以外のエンコーディングで文字列を返す可能性があるため、これを手動で処理することをお勧めします(cpXXXXからUTF-8への変換)。

于 2012-07-16T12:57:11.227 に答える