繁体   English   中英

是否可以通过 JavaScript 中的浏览器确定操作系统中设置的用户区域设置的**国家/地区**?

[英]Is it possible to determine the user locale's **country** as set in the OS from the browser in JavaScript?

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

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

有什么方法可以确定浏览器/操作系统设置为哪个国家/地区

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

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

我必须捍卫或重述 SReject 和 CodeJack 的答案,因为浏览语言通常包含操作系统的国家区域设置,"en-US""de-CH"

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

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

你会得到的最好的是语言:

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

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

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

var userLocale = navigator.language or

navigator.userLanguage;

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM