首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据浏览器接受语言自动设置uiCulture

根据浏览器接受语言自动设置uiCulture
EN

Stack Overflow用户
提问于 2012-11-25 19:45:34
回答 2查看 12.1K关注 0票数 12

如何根据用户的浏览器自动设置ui的区域性?我只找到了Globalize.culture("pt-BR");,但它将pt-BR设置为默认设置,我不希望将其设置为默认设置!我只想在用户是pt-BR的情况下设置它!我该怎么做呢?以及验证器方法,我如何为特定的区域性设置它们?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-25 20:25:41

在ASP.NET MVC中,web.config是正确的位置。这里有一个简短的总结,第一个片段显示了如何强制使用pt-BR文化

代码语言:javascript
复制
<globalization 
    enableClientBasedCulture="false" 
    uiCulture="pt-BR" 
    culture="pt-BR" />

如果应用程序已准备好接受来自客户端(浏览器)的区域性,则设置应为

代码语言:javascript
复制
<globalization 
    enableClientBasedCulture="true" 
    uiCulture="auto" 
    culture="auto" />

以上设置将采用在客户端浏览器中选择的语言(例如,在我的示例中为cs-CZ )。如果未定义,则将使用系统设置。最后的代码片段显示了如何允许客户端设置和发送所需的区域性,但如果未预先选择任何语言,请使用某些其他默认值pt-BR覆盖系统设置

代码语言:javascript
复制
<globalization 
    enableClientBasedCulture="true" 
    uiCulture="auto:pt-BR" 
    culture="auto:pt-BR" />

ExtendedjQuery validator和数字输入的区域性设置

注意:我绝对不是jQuery和全球化技术方面的专家。这是我如何调整validator以正确处理任何数字输入的示例

剃刀视图部件(__X()new HtmlString()__的快捷方式)

代码语言:javascript
复制
var defaultThousandSeprator = "@X(culture.NumberFormat.NumberGroupSeparator)";
var defaultDecimalSeprator = "@X(culture.NumberFormat.NumberDecimalSeparator)";

jQuery部件(最小和最大的自定义方法)

代码语言:javascript
复制
$.validator.addMethod("min", function (value, element, param)
{
  var num = value.replace(RegExp(" ", "g"), "") // remove spaces
          .replace(RegExp('\\' + defaultThousandSeprator, "g"), "") // thousand separator
          .replace(RegExp("\\" + defaultDecimalSeprator, "g"), "."); // fix decimals
  return this.optional(element) || num >= param;
});
$.validator.addMethod("max", function (value, element, param)
{
  var num = value.replace(RegExp(" ", "g"), "") // remove spaces
          .replace(RegExp('\\' + defaultThousandSeprator, "g"), "") // thousands
          .replace(RegExp("\\" + defaultDecimalSeprator, "g"), "."); // decimals
  return this.optional(element) || num <= param;
});

然后,jQuery.validator会正确计算cs-CZ:10 000,00和en-US:10,000.00的输入值。

票数 20
EN

Stack Overflow用户

发布于 2012-11-26 04:00:41

您需要从网页(或母版页)中编写脚本:

代码语言:javascript
复制
<script type="text/javascript">
    Globalize.culture("<% = CultureInfo.CurrentCulture.ToString() %>");
</script>

就这样。请注意,我使用的是CurrentCulture而不是CurrentUICulture,因为这是您应该使用的格式。如果你需要翻译(我不会这样做,因为这会影响本地化),你需要你的原始CurrentUICulture

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13550703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档