我有一个mo文件
/data/lang/en_US/LC_MESSAGES/test.mo (translate foo => bar)
并使用以下代码回显它
$locale = 'en_US';
$locale_dir = '/data/lang';
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain('test', $locale_dir);
textdomain('test');
echo _("foo"); // print foo
但是,如果我改变
$locale = 'en_US.utf8';
然后打印出更正后的答案bar
我的系统区域设置信息:
locale -a
..
en_US
en_US.utf8
..
原因是什么?