设置的UICulture自动基于浏览器的接受语言(Set uiCulture automatical

2019-07-04 03:08发布

我怎样才能设置用户界面的文化自动根据users'browser? 所有我发现这个是Globalize.culture("pt-BR"); 不过这台pt-BR视为违约,我不想默认设置这个! 我只想设置此用户是否PT-BR! 我怎样才能做到这一点? 和验证方法,我怎么能设置他们特定的文化?

Answer 1:

在ASP.NET MVC中web.config是正确的地方。 有一个简单的总结,第一个片断表演,怎么可能如pt-BR文化被迫

<globalization 
    enableClientBasedCulture="false" 
    uiCulture="pt-BR" 
    culture="pt-BR" />

如果应用程序已准备好接受来自客户端(浏览器)的文化,设置应

<globalization 
    enableClientBasedCulture="true" 
    uiCulture="auto" 
    culture="auto" />

以上设置将在客户端浏览器选择(例如语言 cs-CZ在我的情况)。 如果没有定义则系统设置将被使用。 最后的片断显示,如何让客户端设置和发送预期的文化,但如果没有语言是预先选定的,覆盖其他一些默认值PT-BR系统设置

<globalization 
    enableClientBasedCulture="true" 
    uiCulture="auto:pt-BR" 
    culture="auto:pt-BR" />

扩展 :对于区域性设置jQuery validator和数字输入

注:我绝对不是一个专家jQuery和全球化技术。 这就是例子,我该怎么办调整validator正确地处理任何数字输入

Razor视图部分X()是一个快捷方式new HtmlString()

var defaultThousandSeprator = "@X(culture.NumberFormat.NumberGroupSeparator)";
var defaultDecimalSeprator = "@X(culture.NumberFormat.NumberDecimalSeparator)";

jQuery的一部分(min和max定制方法)

$.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



Answer 2:

你需要写出从网页(或母版页)的脚本:

<script type="text/javascript">
    Globalize.culture("<% = CultureInfo.CurrentCulture.ToString() %>");
</script>

而已。 你要知道,我以前CurrentCulture代替CurrentUICulture ,因为这是你应该使用什么格式。 如果需要翻译(我不会做这种方式,因为它会伤害本地化),你需要你原来CurrentUICulture



文章来源: Set uiCulture automatically based on browser accept language