为什么php中的setlocale()抛出这个警告消息?

时间:2016-10-04 12:17:36

标签: php

嘿,我现在正在网站上工作,想要删除这条警告信息。 谷歌不帮助我,所以我开始在这里搜索,但仍未找到可行的解决方案。

  

错误:setlocale():无效的区域设置类别名称LC_MESSAGES,必须是   LC_ALL,LC_COLLATE,LC_CTYPE,LC_MONETARY,LC_NUMERIC或其中之一   LC_TIME

我的代码:

$locale = 'de_DE';
setlocale("LC_MESSAGES",$locale );

如果我将LC_Messages替换为LC_All或上层解决方案中的某些内容,我的网站就不再工作了。

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

删除LC_MESSAGES周围的引号。

$locale = 'de_DE';
setlocale(LC_MESSAGES,$locale );

有关如何使用此功能的更多信息,请参阅文档 setlocale

显然不支持LC_MESSAGES。

你可以运行

locale
如果您使用Linux发行版查找支持的常量列表,请在您的终端上

答案 1 :(得分:0)

LC_MESSAGES是一个环境变量,不应该用字符串括起来。

改为使用

$locale = 'de_DE';
setlocale(LC_MESSAGES,$locale );

这应该有所帮助。请检查您的设置中是否存在libintl。对于Windows,您可以获得它libintl for windows

答案 2 :(得分:0)

LC_MESSAGES始终不受支持:LC_MESSAGES用于系统响应(如果PHP是使用libintl编译的,则可用)。资料来源:PHP:setlocale