如何使用 JavaScript 获取浏览器语言

IT技术 javascript
2021-01-16 01:53:25

可能的重复:
用于检测浏览器语言偏好的 JavaScript

我想检测进入我网站的浏览器的语言,如果它是 En 或 Fr。所以我可以重定向到 En 页面或其他页面。

另外,我可以检测移动语言吗?

2个回答

试试这个脚本来获取你的浏览器语言

<script type="text/javascript">
var userLang = navigator.language || navigator.userLanguage; 
alert ("The language is: " + userLang);
</script>

干杯

更新:现在(2020 年)所有现代浏览器都支持一项实验性功能,该功能返回一组语言首选项:navigator.languages //["en-US", "zh-CN", "ja-JP"] 这应该2020 年至少可以在 95% 的浏览器上工作。
2021-03-14 01:53:25
如果你想使用一个库,你也可以使用acceptedlanguages.js它完全兼容 javascript 和浏览器,涵盖所有情况:github.com/leighmcculloch/acceptedlanguages.js
2021-03-20 01:53:25
等效且更符合 JS 标准: navigator.language || navigator.userLanguage
2021-03-24 01:53:25
我的测试表明,虽然这在 IE 和 Firefox 中有效,但在 Chrome 中不起作用。Chrome的navigator.language始终是windows安装的语言配置,而不是浏览器的语言配置。
2021-03-26 01:53:25
+1 @kybernetikos,这是需要解决的问题,因为大多数人都使用 Chrome。
2021-04-09 01:53:25

“JavaScript”方式:

var lang = navigator.language || navigator.userLanguage; //no ?s necessary

确实,您应该在服务器上进行语言检测,但是如果绝对有必要通过 JavaScript 了解/使用,则可以获取。

这个答案已经很老了,但今天 SPA 大部分时间都在静态无服务器环境上工作,因此使用 Javascript 执行此操作不仅仅是合法的。
2021-03-21 01:53:25
@zzzzBov 我一直在开发具有完整语言支持的 Ember.js 应用程序,我在其中使用 navigator.language 作为 API 调用的一部分,因此不会浪费用户带宽。但我想你是对的。这是一个边缘情况。
2021-03-24 01:53:25
@Paul,应该在服务器上进行语言检测,以便以适当的语言提供内容。否则将浪费用户的带宽。
2021-04-08 01:53:25
为什么要在服务器上完成?似乎是多余的评论。
2021-04-10 01:53:25