4

Web 浏览器是否具有访问用户在操作系统中设置的任何区域设置的界面?

我可以通过他们的 IP 地址或使用新的地理定位 API 来检测用户当前所在的国家/地区,但我正在为旅行者编写一个浏览器应用程序,因此我希望他们当前的位置通常不是他们的祖国

有没有办法确定浏览器/操作系统设置为哪个国家/地区?

如果没有,是否有任何建议为 JavaScript 添加适当的语言环境支持?

还有什么聪明的解决方法吗?(例如,我知道我可以获得用户的首选浏览语言,但有很多国家使用相同的语言,并且很多用户将此设置保持为默认值,而不是将其更改为他们常用的语言。)

4

3 回答 3

5

我不得不捍卫或重新陈述 SReject 和 CodeJack 的答案,因为浏览器语言通常包含操作系统的国家/地区语言环境,"en-US"or "de-CH"

多年来,我们一直使用它来预先选择表格中的国家,并且它在足够多的情况下很有用。

因此,对于旅行的瑞士用户,您将使用navigator.language.slice(-2)并获得"CH"哪个是您问题的有效答案。

于 2013-06-10T08:27:17.640 回答
2

你会得到最好的语言是:

  • navigator.language (Netscape - 浏览器本地化)
  • navigator.browserLanguage(IE 特定 - 浏览器本地化语言)
  • navigator.systemLanguage(特定于 IE - Windows 操作系统 - 本地化语言)
  • navigator.userLanguage

由于安全问题或未实施,您所请求的内容在本机上是不可能的。但是,您可以为 Windows 用户使用 ActiveX 对象

您可以让用户选择他们喜欢的语言、国家/地区等,然后使用 javascript 设置 cookie,该 cookie 将在请求页面时发送到您的服务器

于 2012-08-06T10:14:55.593 回答
1
var userLocale = navigator.language or

navigator.userLanguage;

编辑 唯一的其他方式是 HTML5 的 geoLocation API

http://html5demos.com/geo http://dev.w3.org/geo/api/spec-source.html

于 2012-08-06T10:15:05.137 回答