对于一个项目,我必须提供2个版本的网页:一个英文和一个法文.因为我在英国,浏览器(IE11)自然地以本地语言(en-GB)安装.为了测试法语,我去了
Internet-Options->Languages->Set Language Preference->Add a Language (French-France)
(or select the language if already there)
Run Code Online (Sandbox Code Playgroud)
并确保法语位于顶部.我有一个JSF页面,其中使用Java检测语言,并且工作正常,所有文本都取自法语属性文件,而不是英语属性文件,在更改英语和法语之间的语言时自动切换.但是,对于一个网页,我需要在JavaScript中检测当前语言,无论我尝试什么,它仍然是en-GB.
我试过这段代码:
var language = navigator.languages && navigator.languages[0] ||
navigator.language ||
navigator.userLanguage;
Run Code Online (Sandbox Code Playgroud)
它返回'en-GB'.在F12调试器中独立尝试:
navigator.languages returns: undefined
navigator.userLanguage: en-GB
navigator.language: undefined
navigator.browserLanguage: en-US
Run Code Online (Sandbox Code Playgroud)
这是IE11版本11.0.9600.17031
我也在Windows 8中,windows-home屏幕(意外按下windows键...)也显示了法语(新闻,天气等)的所有内容,因此选择了法语,但是如何在JavaScript中检测它?