11

问题已解决(见下文)

我已经在我的服务器上生成了语言环境,我已经确认它们存在(我的语言环境 -a 在下面提供),但是当我使用时:

    setlocale(LC_TIME,'fr_FR');
    or setlocale(LC_TIME,'fr_FR.utf8');

它根本不起作用。

样本:

    <?php
    setlocale(LC_TIME,'fr_FR.utf8');
    echo 'locale - '.setlocale(LC_TIME,'0');
    echo ' : month - '.strftime('%B');
    echo '<br />';

    setlocale(LC_TIME,'fr_FR');
    echo 'locale - '.setlocale(LC_TIME,'0');
    echo ' : month - '.strftime('%B');
    echo '<br />';

    setlocale(LC_TIME,'fr-FR');
    echo 'locale - '.setlocale(LC_TIME,'0');
    echo ' : month - '.strftime('%B');
    echo '<br />';

    setlocale(LC_TIME,'fr');
    echo 'locale - '.setlocale(LC_TIME,'0');
    echo ' : month - '.strftime('%B');
    echo '<br />';

    setlocale(LC_TIME,'french');
    echo 'locale - '.setlocale(LC_TIME,'0');
    echo ' : month - '.strftime('%B');
    echo '<br />';
    ?>

结果:

    locale - C : month - October
    locale - C : month - October
    locale - C : month - October
    locale - C : month - October
    locale - C : month - October

locale -a (显示 fr 语言环境):

    fr_BE.utf8
    fr_CA.utf8
    fr_CH.utf8
    fr_FR.utf8
    fr_LU.utf8

感谢您的帮助!

4

3 回答 3

12

好吧,在发布这个之后,我又尝试了一件事。因此,对于那些遇到相同问题的人,您需要在设置新语言环境之前先进行设置:

setlocale(LC_TIME, "");
于 2013-10-13T23:36:06.427 回答
4

在使用新安装的语言环境之前,您必须重新启动 php。

于 2015-01-10T14:34:59.750 回答
1

如果您想在 Apache2 中使用系统默认语言环境,您只需在 /etc/apache2/envvars 文件中添加(或取消注释)以下行:

. /etc/default/locale

考虑在此操作后重新启动 apache2 并清除您的潜在缓存以检查语言环境是否适合 PHP。

于 2015-08-02T16:15:56.667 回答