Windows7のPHP5.3のsetlocale関数に問題があります。
UTF-8エンコーディングでロシア語ロケールを設定する必要があります。これがRussian_Russia.65001であるいくつかの解決策を見ましたが、このタイプのロケールを持つ関数はFALSEを返します。
すべてのソリューションは、ロケールのリストがコントロールパネルにあるWindowsXPで使用するために設計されました。Windows 7では、この機能は削除されました。
WindowsシステムでUTF-8ロケールを使用することはできません。:
UTF-7やUTF-8のようなコードページを提供すると、setlocaleは失敗し、NULLを返します。
WindowsコードページのみRussian_Russia.1251
が機能します(Moodleのロケールの表を参照)。
両方を設定して、どちらがトラフになるかを確認することもできます。
if ($newLocale = setLocale(LC_CTYPE, 'ru_RU.UTF-8', 'Russian_Russia.1251'))
{
echo 'Locale is now set to: ' . $newLocale;
}
これはWindows7で私のために働いた
putenv('LANG=fr_CA.UTF-8');
setlocale(LC_ALL,'fr_CA.UTF-8');
bindtextdomain('translation','./language');
bind_textdomain_codeset('translation','UTF-8');
textdomain('translation');
.po/.moファイルへのパス
./language -> fr_CA.UTF-8 -> LC_MESSAGES -> translation.po
./language -> fr_CA.UTF-8 -> LC_MESSAGES -> translation.mo