Gettext php, idea ?


Gettext php, idea ?

我在服务器上安装了gettext,并希望用于php脚本。。

我使用三种语言。原网站是用英语写的。。

其他的是法语和意大利语。

我可以毫无问题地把语言改成法语或意大利语。。但是,当我想加载en_en.mo文件来替换php文件的原始文本时,不会加载翻译。

我尝试了很多事情。。删除文件,替换名称。。重新启动apache。。

没什么。。它可以与所有其他语言完美配合,但不可能使用英语文件。

我创造了新的语言。。它也起作用。。但从来没有en_en。。

我所有的文件语言都在同一个树状中

  • 区域设置
    • en_en
      • LC_消息
        • en_en.mo
    • fr_fr
      • LC_消息
        • fr_fr.mo

如果我强迫使用。。

$directory = './locale';
$domain ='en_EN';
$locale ='en_EN';
putenv('LC_ALL='.$locale);
setlocale(LC_ALL, $locale);
bindtextdomain($domain, $directory);
textdomain($domain);
bind_textdomain_codeset($domain, 'UTF-8');

没有结果。。

我的问题是我不知道如何调试它?我在哪里可以找到日志或其他有用的东西?哪里有错误?

奇怪的是,它适用于所有语言,但不适用于英语。。我用Poedit创建我的文件,我已经创建了很多次了。。以与其他…相同的方式。。

请分享您的想法:)

我创造了新的语言。。它也起作用。。但从来没有en_en。。

您误解了区域设置字符串的含义。这不是"两个语言代码字母后面跟着相同的大写字母"(这没有任何意义,是吗),而是根据ISO 3166的"语言代码后面跟着国家代码"。"EN"不仅不是任何讲英语的国家的有效国家代码,而且根本不是一个有效的国家。你要求WordPress在英语语言环境下运行(大概),但只为其提供WP永远不会寻找的"虚构国家的英语"语言环境的翻译文件。

你想到的是en_US