我似乎无法让 gettext 工作,在这里。
我正在使用 MAMP Pro 并phpinfo();
说 gettext 已启用。
我遵循了本教程:http: //zez.org/article/articleview/42/1/
- 我在我的代码中声明了我的字符串,如下所示:
_('test string');
- 然后我跑了
xgettest -L PHP test.php
,它生成了我的messages.po
文件。 - 我在poedit中打开了这个文件并翻译了我的字符串,然后保存了这个文件,这就是一个
messages.mo
文件。 - 我拿了两个文件
.po
并将.mo
它们移动到[webroot]/locale/es/LC_MESSAGES/
(在这种情况下,我的翻译是西班牙语) 在我的代码中,我设置了以下内容:
$lang = $_SESSION['lang']; // available to all views that include this file
putenv('LC_ALL='.$lang);
bindtextdomain('messages','./locale');
textdomain('messages');
...我可以轻松地在和
$_SESSION['lang']
之间切换。en
es
我重新加载我的页面,然后单击切换到的链接
es
,但我的字符串仍然显示为英文版本而不是西班牙文版本。切换回en
显示没有变化;它总是英文版本。
我在任何地方都没有收到错误消息,所以我对为什么会遇到这个问题有点迷茫。谁能给我一些指导/帮助?我错过了什么?