【发布时间】:2013-10-17 12:40:45
【问题描述】:
我的 php 项目中有下一个文件:
libraries/locale/es_ES/LC_MESSAGES/messages.po
libraries/locale/es_ES/LC_MESSAGES/messages.mo
libraries/locale/es/LC_MESSAGES/messages.po
libraries/locale/es/LC_MESSAGES/messages.mo
两者都是用 PoEdit 编辑的同一个文件,只是目录->属性->语言(分别为 es 和 es_ES)不同
并将这段代码放到localization.php文件中
$language = "es_ES.UTF-8";
putenv("LANG=$language");
setlocale(LC_ALL, $language);
bindtextdomain(STRING_DOMAIN, LOCALE_PATH);
textdomain(STRING_DOMAIN);
echo "Test translation: "._('string to translate');
此代码工作正常,“要翻译的字符串”显示正确。但是,如果我尝试使用通用的“es”代码:
$language = "es.UTF-8";
...字符串未翻译。似乎与我的 ubuntu 中安装的语言环境有关(es_ES.utf8 存在但不存在 es.utf8)
我可以强制 gettext 使用 es.UTF-8 文件吗?
【问题讨论】:
标签: php internationalization gettext php-gettext