我在我的项目中有本地化工作。工作意味着我的项目将被翻译成我在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'打印false,'cze'也打印false。
在列表中,所有这些都被提到:
http://msdn.microsoft.com/en-us/library/cdax410z%28v=vs.80%29.aspx
发布于 2012-07-16 20:57:11
Windows对区域设置使用另一种格式,请参阅MSDN: List of Country/Region Strings。
您可以通过在数组中发送区域设置列表来将区域设置列表发送到setlocale,例如,获取挪威的月份名称和时间格式:
setlocale(LC_TIME, array('nb_NO.UTF-8', 'no_NO.UTF-8', 'nor'));但是,Windows可能会以UTF-8以外的其他编码返回字符串,因此您可能希望手动处理此问题(从cpXXXX转换为UTF-8)。
https://stackoverflow.com/questions/11503485
复制相似问题