我正在开发一个使用gettext的网站。在当地,每件事都很有效。但今天我已经在我的生产服务器上传了我的网站,gettext不再需要工作了。 我想使用的语言是fr_FR和en_US。 gettext翻译我的文本,如果我用法语显示我的网站,但英语没有任何意义。
当我在我的debian服务器上执行 locale -a 时,我得到:
C
fr_FR.utf8
POSIX
我是法国人,所以我觉得每件事都很正常。但是当我这样做: locale-gen en_US 或 locale-gen en_US.UTF-8 然后 locale -a 时,没有任何变化。 !这是正常的吗?
以下是PHP代码示例,以防万一。但由于gettext适用于法语,我相信问题不在这里。
$langage = 'en_US.utf8';
putenv("LC_ALL=$langage");
setlocale(LC_ALL, $langage);
$languageFileName = "default"; // locale/en_US/LC_MESSAGES/default.mo
bindtextdomain($languageFileName, PATH.'/locale');
bind_textdomain_codeset($languageFileName, 'UTF-8');
textdomain($languageFileName);
非常感谢您的帮助。
答案 0 :(得分:5)
好吧,我找到了问题的解决方案。我编辑了文件 /etc/locale.gen 并取消注释我想用gettext语言。然后我运行 locale-gen 。就是这样!
仍然不明白为什么 locale-gen en_US.UTF-8 没有做同样的事情。 我正在使用debian 6 Squeeze。
答案 1 :(得分:0)
您需要在php扩展程序php_gettext
上。