我怎样才能设置用户界面的文化自动根据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