这是我的./locale/fr/LC_MESSAGES/messages.po
文件:
msgid "NO GOOD"
msgstr "IT WORKED!"
用于生成.mo文件的命令:
$ msgfmt -o locale/fr/LC_MESSAGES/messages.mo locale/fr/LC_MESSAGES/messages.po
我的PHP文件(通过CLI运行,出于测试目的,以root用户身份)。
<?php
bindtextdomain('messages','./locale');
textdomain('messages');
setlocale(LC_MESSAGES, 'fr');
echo gettext("NO GOOD");
这是我的输出:
$ NO GOOD
PHPINFO:
GetText Support => enabled
为什么这可能不起作用的任何想法?
答案 0 :(得分:9)
原因是它不起作用的原因是我选择的语言环境必须是系统认可的语言环境。
在我的情况下,fr
不是有效的区域设置,我必须选择系统识别的fr_FR.UTF-8
...
答案 1 :(得分:1)