有谁知道如何使用 javascript 从 Firefox 和 Google Chrome 获取浏览器文化?注意:这是一个 asp.net 3.5 网络应用程序。
要求是尝试根据浏览器文化设置应用程序的显示文化。我发现其他浏览器的信息很少,但它们似乎不起作用。
我可以通过以下代码片段在 IE 中获取它:
var browserCulture = this.clientInformation.browserLanguage;
任何信息都会很棒!
最佳答案
navigator
上存在以下属性对象(在 IE 上也称为 clientInformation
,但没有理由使用该名称):
-
language
(非 IE,浏览器安装语言) -
browserLanguage
(IE,浏览器安装语言) -
userLanguage
(IE,用户级操作系统范围的语言设置) -
systemLanguage
(IE,操作系统安装语言)
但是! 您永远不应该使用这些属性中的任何一个!在许多情况下它们将是错误的语言。
它们都没有反射(reflect)用户在浏览器的“首选语言”用户界面中实际配置的语言设置,而且用户很难甚至不可能更改它们。如果没有额外的简单手动方式来切换语言,使用这些值中的任何一个都会让您感到非常沮丧。
您应该嗅探以决定默认使用哪种语言的正确位置,正如普通浏览器 UI 配置的那样,是 Accept-Language
在 HTTP 请求中传递给您的服务器的 header 。这是一个首选语言的排名列表,您可以从中选择,如果您使用它,ASP.NET 会使用它来猜测自动客户端文化。
不幸的是,这个属性在 JavaScript 中不可用!
您通常做的是使用您的服务器端来解析 Accept-Language
header 并从中选择一种合适的语言来使用。在 ASP.NET 中,您可以从 HttpRequest.UserLanguages 获得预先排序的列表然后选择您喜欢的第一个。
然后您将该语言名称输出到 <script>
中元素将语言信息传递给客户端。
关于javascript - 如何使用 javascript 获取浏览器当前的语言环境首选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678230/