我已按照How to load language with gettext in PHP?
的说明操作我创建了./locale/pl_PL/LC_MESSAGES/default.po文件:
msgid "categories"
msgstr "kategorie"
我使用以下方式生成了mo文件:
msgfmt default.po -o default.mo
我有这样的代码:
$lang = 'pl_PL';
$this->root = __DIR__ . DIRECTORY_SEPARATOR;
echo $lang . "\n" . $this->root . "locale\n";
putenv("LC_ALL=$lang");
setlocale(LC_ALL, $lang);
bindtextdomain("default", $this->root . "locale");
textdomain("default");
echo _("categories");
但是我有未翻译的文字,输出是:
pl_PL
/home/kuba/projects/jcubic/cataloger/locale
categories
我也尝试在语言环境结束时使用斜杠,但这并没有帮助。
出了什么问题?如何使用gettext翻译文本?我在GNU / Linux上从apache 2运行php。我使用了纤细的树枝框架。
答案 0 :(得分:2)
我需要将.utf8
添加到语言区域(因此它pl_PL.utf8
)并且它可以正常工作。