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

ghs*_*eef 108 javascript

可能重复:
用于检测浏览器语言首选项的JavaScript

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

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

Ali*_*ias 286

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

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

干杯

  • 我的测试表明虽然这适用于IE和Firefox,但它在Chrome中不起作用.Chrome的navigator.language始终是Windows安装的语言配置,而不是浏览器的语言配置. (12认同)
  • 等效和更多JS典型:`navigator.language || navigator.userLanguage` (7认同)
  • 如果你想使用一个库,你也可以使用`acceptedlanguages.js`,它完全是javascript和浏览器兼容的,涵盖所有情况:https://github.com/leighmcculloch/acceptedlanguages.js (6认同)
  • 更新:现在(2020)有一个所有现代浏览器都支持的实验性功能,它返回一组语言首选项: navigator.languages //["en-US", "zh-CN", "ja-JP"] 这应该到 2020 年,可在至少 95% 的浏览器上运行。 (5认同)
  • +1 @kybernetikos,这是需要解决的问题,因为大多数人都使用 Chrome。 (2认同)

zzz*_*Bov 33

"JavaScript"方式:

var lang = navigator.language || navigator.userLanguage; //no ?s necessary
Run Code Online (Sandbox Code Playgroud)

你真的应该在服务器上进行语言检测,但是如果通过JavaScript知道/使用它是绝对必要的,那么就可以得到它.

  • 为什么要在服务器上完成?似乎是一个多余的评论. (12认同)
  • 这个答案已经很老了,但是今天SPA大部分时间都在无静态服务器的env上工作,因此使用Javascript做是合法的。 (9认同)
  • @Paul,应该在服务器上进行语言检测,以便以适当的语言提供内容。否则会浪费用户的带宽。 (3认同)
  • @zzzzBov我一直在研究一个支持全语言支持的Ember.js应用程序,我使用navigator.language作为API调用的一部分,因此不会浪费用户带宽.但我想你的权利.这是一个边缘案例. (2认同)