PHP Gettext没有翻译

时间:2017-04-27 13:49:37

标签: php codeigniter gettext po

我看过很多其他线程有类似的问题,但没有找到适用于我的场景的任何解决方案。

我有一个Centos服务器,我试图让Gettext运行。我的问题是,无论如何,gettext方法总是返回英文翻译,它也是.po文件中的密钥。

Intent intent=new Intent(getApplicationContext(),MainActivity.class);

$config['language_dir'] = '/var/www/.../.../application/languages';

我可以在设置确认一切正常后回显上述环境变量。我还确认了language目录的路径是正确的并且存在。

languages目录具有以下结构:

if ($this->config->item('language_dir') != '' && function_exists("gettext")) {
    $domain = "messages";
    $lang = "es_ES";

    putenv("LC_ALL={$lang}");
    setlocale(LC_ALL, $lang);
    bindtextdomain($domain, $this->config->item('language_dir'));
    textdomain($domain);
    bind_textdomain_codeset($domain, 'UTF-8');

    echo gettext('translate');
    echo _('translate');
}

我的.po文件:

es_ES/LC_MESSAGES/
                  messages.po 
                  messages.mo

当我运行“locale -a | grep es_ES”时,我得到:

msgid ""
msgstr ""
"Project-Id-Version: es_ES 0.1.0\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: es_ES\n"

msgid "translate"
msgstr "lalalala"

另外,我正在运行PHP 5.4,带有Codeigniter。任何帮助将不胜感激!

0 个答案:

没有答案