我一直在尝试让 momentjs 正确检测浏览器语言并本地化时间显示。 (按照使用 Moment.js 进行区域设置检测 https://stackoverflow.com/questions/25725882/locale-detection-with-moment-js)
但我在从 chrome 中获取正确的区域设置时遇到了一些麻烦。
chrome 似乎为我的浏览器配置了正确的语言列表navigator.languages
but navigator.language
返回完全不同的东西。
我猜要么是我的 chrome 设置错误(考虑到正确的语言,这似乎不太可能)navigator.languages
)或者选择浏览器语言的方法不太正确?
我应该使用其他方式来获取语言吗window.navigator.userLanguage || window.navigator.language
?
The W3C草案 http://www.w3.org/html/wg/drafts/html/master/webappapis.html#language-preferences指出:
-
navigator.language
是用户的“首选语言”或“合理的语言” http://www.w3.org/html/wg/drafts/html/master/webappapis.html#a-plausible-language。这不一定与navigator.languages[0]
.
-
navigator.languages
列出“用户的首选语言,首先是最喜欢的语言”。预计其值与Accept-Language
header.
通过在虚拟机中进行快速实验来看,navigator.languages[0]
带来最准确的结果,navigator.language
是操作系统的语言。
看起来好像"en-GB"
你得到的是指language用户的,而"en-NZ"
指的是用户locale(数字和日期/时间格式)。
由于这仍然是一个草案,您得到的结果可能会随着实施而改变。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)