当前位置: 首页 > 面试题库 >

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

上官季
2023-03-14
问题内容

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

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

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

var browserCulture = this.clientInformation.browserLanguage;

任何信息都很棒!


问题答案:

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

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

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

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

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

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

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

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



 类似资料:
  • 问题内容: 我想检测进入我网站的浏览器的语言(如果是En或Fr)。因此,我可以重定向到En页面或其他页面。 另外,我可以检测移动语言吗? 问题答案: 尝试使用此脚本获取您的浏览器语言

  • 问题内容: 是否可以从httpsession对象(javax.servlet.http.HttpSession)派生首选语言?可以从servletrequest中获取它,但我没有。感谢您的任何想法。斯文 问题答案: 用户的首选语言环境可以用作请求标头(“接受语言”)。它由用户的浏览器根据其首选项自动填充。然后,您可以将此信息存储在用户的会话中,并在以后适当时检索它。

  • 问题内容: 我有一个奇怪的问题,当我创建一个具有区域设置的日历时,TimeZone只是还原为本地日历 这是输出: 如何从特定的语言环境中获取适当的时间? 问题答案: 简短的答案:您不能。 长话大说:没有“语言环境的正确时区”之类的东西。这仅仅是因为有些国家/地区具有多个时区(例如美国)。时区是一个不同的概念。 无论如何,您正在寻找解决问题的方法。我猜您正在编写Web应用程序,并且看到时区已恢复为服

  • 要在不使用科学符号的情况下将double转换为string,建议的方法是 如在使用时在ostream中使用科学符号 我想将double转换为字符串,不使用任何分隔符,小数点为点/句号,即忽略区域设置。 根据对ostringstream、std::fixed和showpoint的描述,我无法确定 小数点是否在当前语言环境中?和 str()根据区域设置返回的字符串中是否会有其他分隔符(例如,千个分组)

  • 问题内容: 我正在尝试编写JavaScript函数以获取当前浏览器的宽度。 我发现了这个: 但是,如果身体的宽度为100%,它就会失败。 还有其他更好的功能或解决方法吗? 问题答案: 更新 我的原始答案写于2009年。尽管它仍然有效,但我想在2017年进行更新。浏览器的行为仍然有所不同。我相信jQuery团队在保持跨浏览器的一致性方面做得很好。但是,没有必要包括整个库。在jQuery源代码中,相关

  • 问题内容: 有没有办法在控制器中获取当前使用的语言(不带)? 在服务中找不到任何内容。 问题答案: 是一个吸气剂和二传手。 请参阅在文档链接中找到的此演示: http://jsfiddle.net/PascalPrecht/eUGWJ/7/