Http接受语言错误的Chrome输出,德语(德)

时间:2015-03-17 03:55:47

标签: .htaccess google-chrome http-accept-language

我有一个多语言网站。使用htaccess

 # Another Languages
 #RewriteCond %{HTTP:Accept-Language} ^en [NC]
 #RewriteRule ^$ /en [R=301,L]

 # German
 #RewriteCond %{HTTP:Accept-Language} ^de [NC]
 #RewriteRule ^$ /de [R=301,L]

问题:

我使用德国版的最新Chrome浏览器。默认情况下,它会发出以下语言标题:

Chrome /de = string(71) "en-US,en;q=0.8,id;q=0.6,ms;q=0.4,fr;q=0.2,de;q=0.2,es;q=0.2,de-AT;q=0.2"
Chrome /en = string(71) "en-US,en;q=0.8,id;q=0.6,ms;q=0.4,fr;q=0.2,de;q=0.2,es;q=0.2,de-AT;q=0.2"

但在Firefox和IE中:

Firefox /de = string(53) "de,en;q=0.8,en-US;q=0.7,es;q=0.5,fr;q=0.3,de-AT;q=0.2" 
Firefox /en = string(53) "en,en-US;q=0.8,de;q=0.7,es;q=0.5,fr;q=0.3,de-AT;q=0.2" 

IE /de = string(74) "de,en-GB;q=0.9,de-AT;q=0.7,de-DE;q=0.6,de-LI;q=0.4,de-LU;q=0.3,de-CH;q=0.1"  
IE /en = string(74) "en-GB,de;q=0.9,de-AT;q=0.7,de-DE;q=0.6,de-LI;q=0.4,de-LU;q=0.3,de-CH;q=0.1" 

如您所见,英语的优先级高于德语。所以有人也遇到过这个问题吗?

2 个答案:

答案 0 :(得分:1)

尝试使用Chrome中的“偏好设置”,“语言和输入设置”,并将德语添加为浏览器语言之一。

不同的浏览器使用不同的算法来检测用户的首选语言,然后用它们填充Accept-Language标题。

例如,您的计算机可能安装了英语和德语语言环境,但用户倾向于使用Chrome的英语界面并且主要访问英语网站 - 即使用户是德语或计算机处于使用状态,Chrome也可能会优先考虑英语德国。

没有100%准确的方法来检测用户语言,但可以假设如果Accept-Language标题将英语列为顶级语言之一 - 该用户确实知道该语言的级别足够好以便能够切换以后的语言。简而言之,Chrome有理由相信您了解en-US。

答案 1 :(得分:0)

在Chrome中,尽管点击了“以这种语言显示谷歌浏览器”,还需要将德语重新排序到订单的顶部,因此Http:Accept-Language将重定向到/ de < / p>