Can';我不能让gettext在PHP和Linux中工作
我已经为Gettext苦苦挣扎了很长时间,但就是无法让它工作。如果有人能帮我,我将永远感激。。。我一直在寻找解决方案,并尝试了几种变体,但都不适用于我 我创建了以下文件结构: /var/www/battlestox/battlestox.com/sites/battlestox/www/locale/de_de/LC_MESSAGE/messages.po /var/www/battlestox/battlestox.com/sites/battlestox/www/locale/de_de/LC_MESSAGE/messages.mo .po文件中的数据仅为: msgid“” msgstr“” “内容类型:文本/普通;字符集=utf-8\n” “内容传输编码:8位\n” msgid“qwerty” msgstr“翻译工作!” php文件包含以下代码:Can';我不能让gettext在PHP和Linux中工作,php,gettext,Php,Gettext,我已经为Gettext苦苦挣扎了很长时间,但就是无法让它工作。如果有人能帮我,我将永远感激。。。我一直在寻找解决方案,并尝试了几种变体,但都不适用于我 我创建了以下文件结构: /var/www/battlestox/battlestox.com/sites/battlestox/www/locale/de_de/LC_MESSAGE/messages.po /var/www/battlestox/battlestox.com/sites/battlestox/www/locale/de_de/L
putenv("LANG=de_DE.UTF-8");
setlocale(LC_MESSAGES, 'de_DE.UTF-8');
bindtextdomain('messages', 'locale');
bind_textdomain_codeset('messages', 'UTF-8');
textdomain('messages');
echo gettext("qwerty");
echo _("qwerty");
输出:qwertyqwerty-因此没有翻译发生。
当我回显bindtextdomain('messages','locale');我得到:
/var/www/battlestox/battlestox.com/sites/battlestox/www/locale
所以我相信它指向了正确的位置
我已经检查了gettext是否安装在php中,服务器上的区域设置是否可用
:locale-a
德乌德
iso88591标准
德乌德。iso885915@euro
deu de.utf8
德_DE@euro
我正在运行PHP5.2、Apache2.2.3和CentOS
请温柔一点,我对linux非常基础
谢谢你的帮助 尝试使用
locale-a
报告的确切区域名称。e、 g.setlocale(LC_消息,'de_de.utf8')代码>我认为您的.mo目录应该是/var/www/.blah../locale/de_de/LC_MESSAGES,这是LC_MESSAGES,复数形式
正如John所说,您的区域名称看起来不太正确
如果更改.mo文件,则需要重新启动apache。你这样做了吗?PS显然我已经编译了.po文件,使之成为对应的mo文件..putenv(“LANG=de_de.utf8”);setlocale(LC_消息,'de_de.utf8');尝试更改为上述内容,但没有任何乐趣…感谢您提醒我注意这一点。事实证明,英语是我正在使用的服务器(CentOS/RHEL)上唯一受支持的语言。我安装了相应的,然后gettext
开始完美工作。啊!你是个天才。。将名称更改为LC_消息并重新启动Apache排序!非常感谢你-我已经为这件事在桌子上捶了好几天了!