【发布时间】:2013-05-01 11:11:44
【问题描述】:
我想知道,有没有办法从 PHP/javascript 获得当前的客户端操作系统语言。我尝试使用$_SERVER["HTTP_ACCEPT_LANGUAGE"],但有时会使用错误的语言。
例如在谷歌浏览器中:
- 我的操作系统:Windows 7
- 语言:英语
使用$_SERVER["HTTP_ACCEPT_LANGUAGE"]我得到了这个结果:
HTTP_ACCEPT_LANGUAGE: zh,en-US;q=0.8,en;q=0.6
它说“zh”是我的主要语言。
还有其他方法可以获取客户端操作系统语言吗?因为那是我想要的,而不是浏览器语言设置。谢谢
【问题讨论】:
-
zh是因为您的浏览器检测到您居住在该国家/地区,因此您应该将该语言作为您的主要语言。 Chrome 这样做是为了尽可能地帮助用户(包括谷歌搜索结果,它们将基于你附近的一个主要城市.. 我的是斯德哥尔摩,我什至不住在附近.. 是的,我很清楚这是基于 IP/主机名的大量地理检测,但这是功能的基线) -
它说“zh”是我的主要语言。 — 不,它不是。由于
zh没有明确的质量值,它的质量为1.0。这与en-US的质量相同,因此zh和en-US具有相同的权重。 -
@Quentin 是对的。也许你可以从用户代理字符串中得到一些东西。
-
HTTP_USER_AGENT: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31,没有多大帮助。但是如果 zh,en-US;q=0.8 具有相同的权重,则很难选择。由于我想获取客户端操作系统语言而不是浏览器语言设置,还有其他方法吗?