我在服务器上安装了gettext,并希望用于php脚本..
我使用3种语言。原网站是用英文写的..
其他是法国人和意大利人。
我可以毫无问题地将语言更改为法语或意大利语。但是当我想加载en_EN.mo文件来替换php文件的原始文本时,不会加载翻译。
我尝试了很多东西..删除文件,替换名称..重启apache ..
没什么..它与所有其他语言完美配合,但不可能使用英文文件。
我创建新语言..它也有效......但绝不是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创建我的文件,我已经创建了很多次文件...与其他文件一样..
请分享您的想法:)
答案 0 :(得分:2)
我创建新语言..它也有效......但绝不是en_EN ..
您误解了区域设置字符串的含义。它不是“2个语言代码字母后跟相同的大写字母”(这没有任何意义,是吗),它是“ISO 3766的语言代码,后跟国家/地区代码”。并且“EN”不仅对于任何说英语的国家/地区都不是有效的国家/地区代码,它根本不是有效的国家/地区。您要求WordPress在英语语言环境下运行(大概),但只提供WP“永远不会在哪个国家/地区”语言环境中的翻译文件。
您正在考虑en_US
。