我似乎无法在这里使用gettext。
我正在使用MAMP Pro,phpinfo();
表示启用了gettext。
我遵循了本教程:http://zez.org/article/articleview/42/1/
_('test string');
xgettest -L PHP test.php
,生成我的messages.po
文件。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
显示没有变化;它总是英文版。
我在任何地方都没有收到任何错误信息,所以我有点迷失为什么我遇到这个问题。谁能给我一些指导/帮助?我错过了什么吗?
答案 0 :(得分:1)
您还需要在服务器上安装相应的语言文件:
cat /usr/share/i18n/SUPPORTED |grep -i "es_ES" > /var/lib/locales/supported.d/es
cat /usr/share/i18n/SUPPORTED |grep -i "nl_NL" > /var/lib/locales/supported.d/nl
cat /usr/share/i18n/SUPPORTED |grep -i "de_DE" > /var/lib/locales/supported.d/de
现在您安装了西班牙语,荷兰语和德语。完成后,运行 dpkg-reconfigure locales ,您就完成了。 =)
答案 1 :(得分:0)
我不认为这是正常的行为,但嘿,至少它是有效的。