0

我有一些有趣的问题,我使用 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

奇怪的是,这在我的本地主机中运行良好,但是当我将它推送到远程服务器时它失败了。通过失败,我的意思是在更改语言时不处理任何翻译有人可以帮忙吗?

4

1 回答 1

0

你错过了周围的报价en_US

@setlocale(LC_ALL, 'en_US');

除此之外,您可能需要检查您要使用的语言环境在托管环境中是否可用 ( locale -a)。setlocale您可以按优先级顺序传递具有不同语言环境名称的多个参数:

setlocale(LC_ALL, 'en_US', 'en_US.utf8', 'en', 'english');

要检查区域设置是否正确设置var_dump,请根据预期值使用。

于 2013-02-23T23:35:05.937 回答