你是否可以像在.NET中一样在JavaScript中获取Culture Info字符串?

10

我需要从浏览器的语言中获取文化字符串。

我考虑使用以下javascript代码来获取它:

var userLang = navigator.language || navigator.userLanguage;

但是它只给我从.NET中获取的文化信息的第一部分:

Thread.CurrentThread.CurrentCulture.Name;

JavaScript只能给我“de”或“pl”,而不是像.NET一样的“de-DE”或“pl-PL”。 有没有办法获取“完整信息”?

2个回答

8

试一下

<script>
var cultureInfo = '@System.Globalization.CultureInfo.CurrentCulture.Name';
</script>

6

不完全正确。浏览器没有将此详细信息保留在其DOM中。

您可以在ASP.NET页面中用C#生成 CultureInfo,方法如下:

<script language="javascript">
   var culture = '<%= System.Globalization.CultureInfo.CurrentCulture.Name %>';
   var cultureDisplayName = '<%= System.Globalization.CultureInfo.CurrentCulture.DisplayName %>';
   // etc

   // rest of your JavaScript code
</script>

但是似乎这给了我服务器语言。我想要做的是获取用户浏览器的语言,以便为登录页面获得适当的翻译。 - Tomasz Sikora
在ASP.NET中,您页面的服务器端代码是在最终用户的文化环境下运行的。试试看。 - Roy Dictus
我已经尝试过了。但说实话,我必须使用DotNetNuke,也许他以某种方式覆盖了这个设置,因为我始终拥有en-US作为站点设置中的“默认”语言。不幸的是,“启用浏览器语言检测”选项根本不起作用。所以我正在尝试找到一些东西来覆盖它。我认为最终会使用一些JavaScript映射,并使用JS检测语言,因为这似乎是我唯一可行的选择。 - Tomasz Sikora

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接