我在 Windows 7 的 PHP 5.3 中遇到了 setlocale 函数的问题。
我需要使用 UTF-8 编码设置俄语语言环境。我看到了一些解决方案,其中是 Russian_Russia.65001,但具有这种语言环境的函数返回 FALSE。
所有解决方案都是为在 Windows XP 中使用而设计的,其中语言环境列表位于控制面板中。在 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;
}
这在 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