我正好使用这段代码:
<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
case "fr":
//echo "PAGE FR";
include("index_fr.php");//include check session FR
break;
case "it":
//echo "PAGE IT";
include("index_it.php");
break;
case "en":
//echo "PAGE EN";
include("index_en.php");
break;
default:
//echo "PAGE EN - Setting Default";
include("index_en.php");//include EN in all other cases of different lang detection
break;
}
?>
按照this问题中的建议检测浏览器语言。但它没有正确检测正确的语言。虽然javascript做的事情正确:
window.navigator.userLanguage || window.navigator.language;
php检测到其他语言。所以,让我们说我在意大利运行意大利语浏览器,然后一切正常但是如果我改变我的浏览器偏好并将其设置为英语然后js正常工作但php仍然检测到意大利语。我不认为我理解这是如何工作的以及如何解决它。
我认为这是因为Accept-Language标题仍然是意大利语,但我真的不知道如何处理它或者我的猜测是对的。任何帮助将不胜感激!