如何在php中使用linux上的gettext?

时间:2017-08-02 08:13:30

标签: php gettext

我已按照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。我使用了纤细的树枝框架。

1 个答案:

答案 0 :(得分:2)

我需要将.utf8添加到语言区域(因此它pl_PL.utf8)并且它可以正常工作。