基于MVC中应用程序的语言选择对必需字段验证消息进行本地化

时间:2013-09-04 09:57:31

标签: asp.net-mvc asp.net-mvc-4 localization globalization asp.net-mvc-validation

我正在开发一个MVC4应用程序,因为我的应用程序中有语言选择选项。基于所选择的语言,所有标签&在这个应用程序中,我已经对MVC进行了一次必要的字段验证,并且它将仅显示英文的验证消息。我已经在我的应用程序文件夹中创建了两个不同的xml文件用于本地化,即用于英语语言资源的Resource.resx。 Resource.de-DE.resx for German langauge。我在Model类中使用了以下代码:

    [Required(ErrorMessageResourceType = (typeof(MyFolder.MyResource.Resource)), ErrorMessageResourceName= "FromDateRequiredMessage")]
    [Display(Name = "FromDate", ResourceType = typeof(MyFolder.MyResource.Resource))]
    public DateTime FromDate { get; set; }

所以这里我有Resource.resx xml文件,并且我有Key是'FromDateRequiredMessage',它与Resource.de-DE.resx德文文件中的密钥相同,但是值不同。我也做了以下更改在全球化的web.config文件中:

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

所以,我希望当我从我的应用程序中选择德语时,它应该显示我在德语中的验证错误。但在这里它将显示我的英语验证消息。

所以,现在我能为此做些什么?请帮帮我。

3 个答案:

答案 0 :(得分:1)

请在应用程序的Application_PreRequestHandlerExecute()文件中使用方法Global.asax。此方法将在任何页面请求或其验证之前执行。

还在此方法中设置当前文化值。

答案 1 :(得分:0)

简单回答&gt;没有错!

当你在web.config中放置culture = auto时,它会以这种方式工作,你的应用程序将查看传入请求的标题并查找接受语言及其顺序,因此在其中的一个请求中你有类似的东西En - Fa ...应用程序将选择第一个并将文化设置为ui文化,因此请转到您的浏览器语言设置并更改语言的顺序以测试您的应用程序。

答案 2 :(得分:0)

为了能够做到这一点,您需要设置文化。因此将为用户提供他们明确选择德语,英语等的下拉菜单中的选择,这将改变yoursite为yoursite / En或yoursight / Gr等。本文详细讲解并给出示例代码。 http://www.codeproject.com/Articles/207602/Creating-a-Bilingual-ASP-NET-MVC3-Application-Part“为开关语言添加UI支持”这一部分具有您所需要的功能。