我使用以下功能检测浏览器的语言:
util.getBrowserLang = () => {
return navigator.languages
? navigator.languages[0]
: (navigator.language || navigator.userLanguage)
}
在Chrome和Firefox中运行正常:
但它并没有在Safari中获得语言:
e.g。在上面的案例中,该函数不会返回zh-TW
。
这是为什么?也许Safari使用其他功能来检索浏览器的语言?
答案 0 :(得分:1)
首先,Safari没有navigator.languages
所以三元条件的第一部分永远不会在Safari上执行。
话虽如此,我们需要看navigator.language
。当我从浏览器控制台检查时,Chrome会返回'en-US'
并且Safari返回'en-us'
。您的语言选择器是否可能区分大小写并且未检测到小写文本?即使我无法更改我的本地化,我想它会返回'zh-tw'
而不是'zh-TW'
。如果它有帮助,您可以使用String原型的.toLowerCase()
函数获得小写字符串。如果您选择将字符串设为小写,则需要更改选择器的代码。