我有一些有趣的问题,我使用gettext进行国际化。当用户选择某种语言时,假设'en'(对于英语),我使用了一些语言:
putenv("LC_ALL=en_US");
@setlocale(LC_ALL, 'en_US');
$_SESSION['language'] = 'en_US.UTF8';
$this->mySmarty->clearAllCache();//to clear the html parts that are stored in cache
奇怪的是,这在我的localhost中运行得非常好,但是当我在远程服务器上推送它时它会失败。如果失败,我的意思是在改变语言时没有处理翻译有人可以提供帮助吗?
答案 0 :(得分:0)
您错过了en_US
周围的引号:
@setlocale(LC_ALL, 'en_US');
除此之外,您可能必须检查托管环境(locale -a
)上是否可以使用您要使用的区域设置。您可以按优先级顺序传递具有不同区域设置名称的setlocale
个多个参数:
setlocale(LC_ALL, 'en_US', 'en_US.utf8', 'en', 'english');
要检查区域设置是否已正确设置,请使用var_dump
对expected value。