У меня проблема с функцией setlocale в PHP 5.3 в Windows 7.
Мне нужно установить русский язык с кодировкой UTF-8. Я видел некоторые решения, где это Russian_Russia.65001, но функция с этим типом локали возвращает FALSE.
Все решения были разработаны для использования в Windows XP, где список локалей был в панели управления. В Windows 7 эта функция была удалена.
Невозможно использовать локали UTF-8 в системах Windows. :
Если вы предоставите кодовую страницу, такую как 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; }
Это работало для меня в Windows 7
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