问题描述
几天前,我网页上所有与日期相关的输出都停止了翻译为用户选择的语言。我正在使用这个简单的测试脚本来尝试确定出了什么问题:
<?php
exec("locale -a",$output);
var_dump($output);
echo setlocale(LC_ALL,"de_DE.utf8")."\n";
echo strftime("%A",time())."\n";
?>
从外壳程序运行它时,会收到以下正确输出:
php test.php
array(12) {
[0]=>
string(1) "C"
[1]=>
string(7) "C.UTF-8"
[2]=>
string(5) "de_DE"
[3]=>
string(10) "de_DE@euro"
[4]=>
string(14) "de_DE.iso88591"
[5]=>
string(20) "de_DE.iso885915@euro"
[6]=>
string(10) "de_DE.utf8"
[7]=>
string(7) "deutsch"
[8]=>
string(10) "en_US.utf8"
[9]=>
string(10) "fr_FR.utf8"
[10]=>
string(6) "german"
[11]=>
string(5) "POSIX"
}
de_DE.utf8
Dienstag
但是从任何Web浏览器加载后,输出将更改为:
array(12) {
[0]=>
string(1) "C"
[1]=>
string(7) "C.UTF-8"
[2]=>
string(5) "POSIX"
[3]=>
string(5) "de_DE"
[4]=>
string(14) "de_DE.iso88591"
[5]=>
string(20) "de_DE.iso885915@euro"
[6]=>
string(10) "de_DE.utf8"
[7]=>
string(10) "de_DE@euro"
[8]=>
string(7) "deutsch"
[9]=>
string(10) "en_US.utf8"
[10]=>
string(10) "fr_FR.utf8"
[11]=>
string(6) "german"
}
de_DE.utf8
Tuesday
无论我使用哪种安装的语言环境,最后一行都不会更改。 setlocale()
的输出似乎没有正确设置,因为它没有返回false
。我在网上找不到任何情况,该呼叫似乎可以正常工作,但没有任何效果(在浏览器中)。我还尝试了多次dpkg-reconfigure locales
和update-locale
和systemctl restart apache2
,没有任何区别。
我正在PHP 7.3.19-1~deb10u1
上运行Apache/2.4.38 (Debian)
和Debian GNU/Linux 10 (buster)
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)