一尘不染

如何使用javascript获取浏览器当前的语言环境首选项?

javascript

有谁知道如何使用javascript从Firefox和Google Chrome获取浏览器文化?注意:这是一个asp.net 3.5 Web应用程序。

要求是尝试根据浏览器区域性设置应用程序的显示区域性。对于其他浏览器,我发现的信息很少,但是它们似乎不起作用。

我可以使用以下代码片段在IE中获取它:

var browserCulture = this.clientInformation.browserLanguage;

任何信息都很棒!


阅读 422

收藏
2020-05-01

共1个答案

一尘不染

navigator对象上存在以下属性(clientInformation在IE上也可以称为该属性,但没有理由使用该名称):

  • language (非IE,浏览器安装语言)
  • browserLanguage (即,浏览器安装语言)
  • userLanguage (IE,用户级操作系统范围的语言设置)
  • systemLanguage (IE,操作系统安装语言)

但! 您永远不要使用任何这些属性! 在许多情况下,它们将是错误的语言。

它们都不反映用户实际上在浏览器的“首选语言”
UI中配置的语言设置,并且用户难以更改它们。使用这些值中的任何一个都会带来很大的挫败感,而无需其他简单的手动语言切换方法。

根据正常浏览器UI的配置,您应该嗅探以确定默认使用哪种语言的正确位置是Accept-LanguageHTTP请求中传递给服务器的标头。这是可以选择的首选语言的排名列表,如果使用的话,它就是ASP.NET用来猜测自动客户端区域性的内容。

不幸的是,JavaScript无法提供此属性!

通常,您使用服务器端来解析Accept-Language标头,然后从中选择一种合适的语言来使用。在ASP.NET中,您可以从HttpRequest.UserLanguages获取预排序列表,然后选择您喜欢的第一个列表。

然后,您将该语言名称吐出到一个<script>元素中,以将语言信息传递给客户端。

2020-05-01