【发布时间】:2017-08-08 10:02:09
【问题描述】:
对于一个项目,我必须提供 2 个版本的网页:一个是英语版本,一个是法语版本。因为我在英国,所以浏览器 (IE11) 自然安装为本地语言 (en-GB)。为了测试法语,我去了
Internet-Options->Languages->Set Language Preference->Add a Language (French-France)
(or select the language if already there)
并确保法语排在首位。 我有一个 JSF 页面,其中使用 Java 检测到语言,并且工作正常,所有文本都取自法语属性文件,而不是英语属性文件,在英语和法语之间更改语言时会自动切换。 但是,对于一个网页,我需要检测 JavaScript 中的当前语言,无论我尝试什么,它仍然是 en-GB。
我试过这段代码:
var language = navigator.languages && navigator.languages[0] ||
navigator.language ||
navigator.userLanguage;
它返回“en-GB”。 在 F12 调试器中自行尝试:
navigator.languages returns: undefined
navigator.userLanguage: en-GB
navigator.language: undefined
navigator.browserLanguage: en-US
这是 IE11 版本 11.0.9600.17031
我也在 Windows 8 中,并且 windows-home 屏幕(意外按下 windows 键后...)也以法语显示所有内容(新闻、天气等),因此选择了法语,但如何检测在 JavaScript 中?
【问题讨论】:
-
CJ 丹尼斯,感谢您的回答。同时我发现 Chrome 也是如此。但是,仍然可能有一个解决方案,因为目标用户在法国,拥有法语窗口,我可以假设他们的系统将返回 fr-FR 吗?
-
不一定。法语不是法国唯一使用的语言。对区域语言的支持越来越多。如果我在法国使用自己的计算机,它将设置为
en-AU。我可能会也可能不会用法语使用您的网站,这取决于所使用的语言水平(我的法语是中级)。如果您只想用法语(更容易)展示您的网站或检测他们的实际语言偏好,这取决于您。您需要考虑是否有足够的非法语用户来证明以多种语言为网站提供服务。
标签: javascript javascript-objects