【发布时间】:2018-06-24 23:18:50
【问题描述】:
【问题讨论】:
-
可能使用 geoIP 查找。这在服务器端运行,与浏览器地理位置非常不同。
-
它应该使用 IP 地理定位技术。解释可以参考geolocation.com。
标签: javascript html browser navigator
【问题讨论】:
标签: javascript html browser navigator
有多个选项可以确定语言环境。按有用性降序排列,它们是:
Sweden。只能在服务器的帮助下完成。主要优点是它非常可靠。准确度将是免费服务的国家或地区,付费服务的城市或地区。
答案将非常精确,通常不会超过 10m。原则上,它可以在客户端工作,尽管您可能希望在服务器上执行坐标 -> 国家/地区查找。主要缺点是并非所有设备都具有 GPS 或 WiFi 位置,而且通常需要明确的用户同意。
Accept-Language 标头(或在服务器的帮助下),并提取语言环境信息。使用瑞典 VPN 在意大利度假的美国人将注册为美国。缺点是这是一个非常容易更改的设置。例如,世界各地的英语使用者可能更喜欢en-US 设置,以避免机器翻译文本。在现代浏览器上(在编写时不是 IE/Edge,只有 Safari 11+),您还可以请求 navigator.languages。
navigator.language 是navigator.languages 标头的第一个元素。 navigator.languages 的所有注意事项都适用。最重要的是,这些信息有时可能只是没有任何语言环境的语言(即en 而不是en-US)。
使用另一个第三方服务。例如,如果用户通过 Facebook connect 等单点登录系统登录,您可以请求用户的家乡。此信息通常非常不可靠,需要第三方提供。
【讨论】:
另一个选项可能是使用 (internationalization API)
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)
【讨论】:
Europe/Zurich 位于德国、瑞士和列支敦士登..
Europe/Berlin 和Europe/Vaduz),用户可能设置正确。但绝对不能保证。