PHP - GetText无效

时间:2016-04-25 07:56:55

标签: php gettext

我试图将翻译添加到我的网页。 不幸的是,我的翻译没有被阅读。

然而,阅读一个翻译(即使我要求另一个翻译)。

我的php代码如下所示:

$language = "en_US"; //Hardcoded for debugging purposes
define("FOLDER_SPECIFICATION", "./locale/");
define("DOMAIN", "messages");
define("CODE_SET", "UTF-8");

putenv("LANG=" . $language);
setlocale(LC_ALL, $language);

bindtextdomain(DOMAIN, FOLDER_SPECIFICATION);
bind_textdomain_codeset(DOMAIN, CODE_SET);

textdomain(DOMAIN);

我的文件夹结构如下所示:

root > 
    locale >
       en_US >
           LC_MESSAGES >
             messages.mo
             messages.po

       nl_NL >
           LC_MESSAGES >
             messages.mo
             messages.po

如果我将$language变量更改为en_USnl_NL,它仍会从nl_NL获取翻译,如果我删除nl_NL文件夹,则不会翻译总之,这一起意味着一件事:en_US翻译没有被阅读。

messages.po都包含标题等,两者都有效(我将它们加载到 poedit 中)。

我的问题是:为什么它会抓住nl_NL,即使我从未告诉代码抓住它,为什么不读取其他翻译(en_US)?

两个.po文件都是这样的(标题中的'语言'标记明显不同):

msgid ""
msgstr ""
"Project-Id-Version: My Project\n"
"POT-Creation-Date: 2014-08-05 13:32+0100\n"
"PO-Revision-Date: 2016-04-19 10:43+0200\n"
"Last-Translator: \n"
"Language-Team: someone <s.omeone@something.com> \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7\n"
"X-Poedit-Basepath: .\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: nl_UL\n"
"X-Poedit-SourceCharset: UTF-8\n"

msgid "Banaan"
msgstr "Banana"

msgid "Appel"
msgstr "Apple"

0 个答案:

没有答案