2016-10-04 58 views
0

嘿,我現在在一個網站上工作,想刪除這個警告信息。 谷歌不幫我,所以我開始在這裏搜索,仍然沒有找到一個工作的解決方案。爲什麼php中的setlocale()拋出這個警告信息?

Error: setlocale(): Invalid locale category name LC_MESSAGES, must be one of LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, or LC_TIME

我的代碼:

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

如果我更換LC_ALL或從上解決我的網站不工作了的東西LC_MESSAGES。

任何想法?

+0

刪除「LC_MESSAGES」的引號 –

+1

不總是支持LC_MESSAGES:系統響應的_LC_MESSAGES(如果PHP使用libintl編譯,則可用)_。來源:[PHP的:setlocale](http://php.net/manual/en/function.setlocale.php) – jhmckimm

+0

@安南下一個錯誤是:注意:使用未定義的常量LC_MESSAGES - 假設'LC_MESSAGES' – xNiceEinz

回答

0

刪除LC_MESSAGES周圍的引號。

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

有關如何使用此功能,在 setlocale

顯然LC_MESSAGES參閱文件的詳細信息並不總是支持。

你可以,如果你使用的是Linux分佈,能夠找到支持的常量的列表運行

locale 
你的終端上

+0

引號不是問題。不管怎樣,謝謝你。 – xNiceEinz

+0

下一個錯誤IST:「注意:使用未定義的常量LC_MESSAGES的 - 假設‘LC_MESSAGES’」 – xNiceEinz

+0

'的setlocale()'文檔狀態:「LC_MESSAGES的系統響應(僅當PHP用的libintl編譯)」,所以它不能是可用你的PHP設置。 – ShiraNai7

0

LC_MESSAGES是一個環境變量,它不應該包含在字符串中。

而是使用

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

這應該幫助。請檢查您的設置中是否存在libintl。對於windows,你可以得到它libintl for windows

0

LC_MESSAGES並不總是支持:LC_MESSAGES的系統響應(僅當PHP用的libintl編譯)。來源:PHP:setlocale