即使存在locales,PHP setlocale也无法正常工作

kam*_*het 9 php setlocale

问题已解决(见下文)

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

    setlocale(LC_TIME,'fr_FR');
    or setlocale(LC_TIME,'fr_FR.utf8');
Run Code Online (Sandbox Code Playgroud)

它根本不起作用.

样品:

    <?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 />';
    ?>
Run Code Online (Sandbox Code Playgroud)

结果:

    locale - C : month - October
    locale - C : month - October
    locale - C : month - October
    locale - C : month - October
    locale - C : month - October
Run Code Online (Sandbox Code Playgroud)

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

    fr_BE.utf8
    fr_CA.utf8
    fr_CH.utf8
    fr_FR.utf8
    fr_LU.utf8
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助!

kam*_*het 9

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

setlocale(LC_TIME, "");
Run Code Online (Sandbox Code Playgroud)

  • 这对我没有帮助:( (13认同)
  • 检查以确保您的服务器上已安装并可用的语言环境.它们必须存在才能使用它们.`locale -a` (2认同)