问题解决(见下文)
我已经在我的服务器上生成了语言环境,我已经确认它们存在(我的语言环境 - 下面提供),但是当我使用时:
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
感谢您的帮助!
答案 0 :(得分:9)
好的,在发布之后,我又尝试了一件事。因此,对于遇到相同问题的人,您需要在设置新语言环境之前先设置它:
setlocale(LC_TIME, "");
答案 1 :(得分:4)
在使用新安装的区域设置之前,您必须重新启动php。
答案 2 :(得分:1)
如果要在Apache2中使用系统默认语言环境,只需在/ etc / apache2 / envvars文件中添加(或取消注释)以下行:
li = [4, 2]
考虑在此操作之后重新启动apache2并清除潜在的缓存以检查PHP是否适用于区域设置。