PHP gettext简体中文支持?

时间:2013-12-21 15:35:33

标签: php gettext chinese-locale php-gettext

我正在尝试在我的一个PHP项目中支持繁体中文,但我不能让它显示任何中文字符。这是我的gettext设置:

putenv("LC_ALL=zh_CN.utf8");
setlocale(LC_ALL, "zh_CN.utf8");
bindtextdomain("wpsmessages", dirname(__FILE__) . "/locale");
bind_textdomain_codeset("wpsmessages", 'UTF-8');
textdomain("wpsmessages");

之前我通过输入以下内容在SSH中创建了语言环境:

sudo locale-gen zh_CN.utf8

然后返回:

Generating locales...
zh_CN.UTF-8... done

输入locale -a后,我会在列表中找到以下内容:

zh_CN
zh_CN.utf8

但是,它仍然没有显示任何中文字符。我在这里做错了什么?

1 个答案:

答案 0 :(得分:3)

有点讽刺,但解决方案只是按照我自己的文件名约定将文件wpsmessages-zh_CN.mo重命名为wpsmessages.mo

基本上我使用gettext的PHP项目结构如下:

/locale/pt_BR.utf8/LC_MESSAGES/wpsmessages.mo
/locale/zh_CN.utf8/LC_MESSAGES/wpsmessages.mo
...

因此,使用bindtextdomain("wpsmessages", dirname(__FILE__) . "/locale");获取.mo指定的区域设置的正确setlocale()文件,但由于名称错误而无法找到该文件。

希望这有助于任何人像我一样愚蠢。 :)