我一直试图让momentjs正确检测浏览器语言并本地化时间显示。 (根据Locale detection with Moment.js)
但是我在使用chrome获取正确的语言环境时遇到了一些麻烦。
Chrome似乎在navigator.languages
中为我的浏览器配置了正确的语言列表,但navigator.language
正在返回完全不同的内容。
我猜我的Chrome设置错误(假设navigator.languages
中的语言不正确,或者选择浏览器语言的方法不正确?)
我应该采用不同的方式来获取window.navigator.userLanguage || window.navigator.language
以外的语言吗?
答案 0 :(得分:4)
W3C draft表示:
navigator.language
是用户"首选语言"或"plausible language"。这不一定与navigator.languages[0]
相同。navigator.languages
列出了"用户的首选语言,首选语言为#34;。它应与Accept-Language
标题具有相同的值。通过快速在VM中进行实验,navigator.languages[0]
可以获得最准确的结果,navigator.language
是操作系统的语言。
您的"en-GB"
看起来好像是指用户的语言,而"en-NZ"
是指用户区域设置 (数字和日期/时间格式)。
由于这仍然是草稿,因此您获得的结果可能会随着实施而改变。