我在服务器上安装了gettext,并希望用于php脚本。。
我使用三种语言。原网站是用英语写的。。
其他的是法语和意大利语。
我可以毫无问题地把语言改成法语或意大利语。。但是,当我想加载en_en.mo文件来替换php文件的原始文本时,不会加载翻译。
我尝试了很多事情。。删除文件,替换名称。。重新启动apache。。
没什么。。它可以与所有其他语言完美配合,但不可能使用英语文件。
我创造了新的语言。。它也起作用。。但从来没有en_en。。
我所有的文件语言都在同一个树状中
- 区域设置
- en_en
- LC_消息
- en_en.mo
- LC_消息
- fr_fr
- LC_消息
- fr_fr.mo
- LC_消息
- en_en
如果我强迫使用。。
$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
。