1

我有一个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
..

原因是什么?

4

0 回答 0