PHP语言识别(Opera,Safari,Chrome)

时间:2010-08-12 13:52:42

标签: google-chrome safari opera language-detection

我正在使用$_SERVER["HTTP_ACCEPT_LANGUAGE"]来检测浏览器语言,这适用于Firefox和IE:

Firefox:
de,en-us;q=0.9,en;q=0.7,ru;q=0.6,ro;q=0.4,hu;q=0.3,zh;q=0.1

Internet Explorer:
de

不幸的是,它不适用于以下浏览器:

Opera:
en,en-US;q=0.9,ja;q=0.8,fr;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-PT;q=0.2,nl;q=0.1,sv;q=0.1,nb;q=0.1,da;q=0.1,fi;q=0.1,ru;q=0.1,pl;q=0.1,zh-CN;q=0.1,zh-TW;q=0.1,ko;q=0.1

Safari:
en-us

Chrome:
en-US,en;q=0.8

我在phpinfo输出中看不到任何有用的字段。如果您有任何建议,请告诉我。非常感谢!

2 个答案:

答案 0 :(得分:0)

我没有所有这些浏览器,但是$_SERVER["HTTP_USER_AGENT"]呢?

火狐:

Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8

铬:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.470.0 Safari/534.3

在我的情况下,这是正常的,因为我正在使用带有en-US和Firefox的Chrome(意大利语)

答案 1 :(得分:0)

我不太明白这里没有什么“适用”。所有浏览器都发送相对合理且语法正确的Accept-Language标头。 Opera很可能会在“首选项>常规>语言>详细信息”中发送配置为发送的内容。如果您希望Opera请求不同的语言或以不同的方式区分它们,那么您可以在此处进行更改。