>问题已解决(见下文)
我已经在我的服务器上生成了语言环境,我已经确认它们存在(我的语言环境 -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
区域设置 -a(显示 fr 语言环境):
fr_BE.utf8
fr_CA.utf8
fr_CH.utf8
fr_FR.utf8
fr_LU.utf8
谢谢你的帮助!
好的,发布这个之后,我又尝试了一件事。 因此,对于那些遇到相同问题的人,您需要在设置新区域设置之前先设置以下内容:
setlocale(LC_TIME, "");
在使用
新安装的语言环境之前,您必须重新启动 php。
如果你想在 Apache2 中使用系统默认的语言环境,你只需要在/etc/apache2/envvars 文件中添加(或取消注释)以下行:
. /etc/default/locale
考虑在此操作后重新启动 apache2 并清除您的潜在缓存以检查 PHP 是否很好地提供了语言环境。