我在我的项目中工作本地化。工作意味着我的项目被翻译成我在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
答案 0 :(得分:1)
Windows使用其他格式设置区域设置,请参阅MSDN: List of Country/Region Strings。
您可以通过发送数组来向loclocale发送语言环境列表,例如获取挪威月份名称和时间格式:
setlocale(LC_TIME, array('nb_NO.UTF-8', 'no_NO.UTF-8', 'nor'));
然而,Windows可能会返回UTF-8以外的其他编码字符串,因此您可能需要手动处理(从cpXXXX转换为UTF-8)。