加入收藏 | 设为首页 | 会员中心 | 我要投稿 商洛站长网 (https://www.0914zz.com/)- AI应用、CDN、边缘计算、云计算、物联网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 根据浏览器接受语言自动设置uiCulture

发布时间:2020-11-17 08:46:55 所属栏目:asp.Net 来源:互联网
导读:我如何根据用户的浏览器自动设置ui的文化? 我发现所有这一切都是Globalize.culture(“pt-BR”);但是它将pt-BR设置为默认值,我不想默认设置!我只想设置这个,如果用户是pt-BR! 我该怎么做?验证器的方法,我如何设定一个具体的文化? 在ASP.NET MVC中,web.con

我如何根据用户的浏览器自动设置ui的文化?
我发现所有这一切都是Globalize.culture(“pt-BR”);但是它将pt-BR设置为默认值,我不想默认设置!我只想设置这个,如果用户是pt-BR!
我该怎么做?验证器的方法,我如何设定一个具体的文化?

解决方法

在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验证器和数字输入的文化设置

注意:我绝对不是jQuery和全球化技术的专家.这是我如何调整验证器来正确处理任何数字输入的示例

razor查看部分(X()是新的HtmlString()的快捷方式):

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

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

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

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

(编辑:商洛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读