为了账号安全,请及时绑定邮箱和手机立即绑定

PHP setlocale无效

PHP setlocale无效

PHP
aluckdog 2019-10-31 13:59:50
该setlocale()功能未设置所需的语言(德语)。目标是输出月份名称。这是我到目前为止的测试代码:<?phpdate_default_timezone_set('Europe/Berlin');setlocale(LC_ALL, 'de_DE.utf8');// Orsetlocale(LC_ALL, 'de_DE@euro');// Orsetlocale(LC_ALL, 'de_DE');// Orsetlocale(LC_ALL, 'de');// Orsetlocale(LC_ALL, 'ge');echo strftime('%B');输出:六月代替朱尼有什么建议么?我没有SSH或其他Shell访问权限。该脚本在Linux服务器上运行。PHP 5.6版
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

运行脚本的服务器上很可能未安装德语语言环境-您是否具有对服务器的Shell访问权限?然后尝试


locale -a

查看安装了哪些语言环境。在这里也可以看看依靠setlocale和依靠所安装的语言环境是否可行?


查看完整回答
反对 回复 2019-10-31
?
MMTTMM

TA贡献1869条经验 获得超4个赞

您的代码是正确的。您可能只需要在运行脚本的服务器上安装正确的语言包即可。


在终端中,如果在运行命令后未列出要使用的语言sudo locale -a,则必须通过运行以下命令来安装缺少的语言:


sudo /usr/share/locales/install-language-pack de_DE 

(sudo如果您的用户具有root权限,则这是可选的)


然后,如果您仔细检查,sudo locale -a应该会看到de_DE.utf8。


如果要安装法语包运行


sudo /usr/share/locales/install-language-pack fr_FR

然后,您将被允许使用setlocale(...)与您完全相同的方式在PHP中为这些语言设置语言。




注意: 如果您位于非utf8项目中,则需要从已安装的软件包中生成其他格式。这是在ubuntu上进行的方法(在debian上也是如此):


编辑/var/lib/locales/supported.d/cs并添加以下行


  fr_FR.iso88591 ISO-8859-1

  fr_CA.iso88591 ISI-8859-1

并运行


 sudo dpkg-reconfigure locales

然后通过再次运行,sudo locale -a您应该在列表中同时看到fr_FR.iso88591和fr_CA.iso88591,您可以通过调用在php中使用它setlocale(LC_ALL, 'fr_FR.iso88591');


查看完整回答
反对 回复 2019-10-31
  • 3 回答
  • 0 关注
  • 538 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信