5

我正在开发一个 MVC4 应用程序,因为在我的应用程序中有语言选择选项,并且基于所选语言,所有标签和消息都会显示。在这个应用程序中,我已经放置了一个 MVC 的必填字段验证,它将显示验证仅英文消息。我在我的应用程序文件夹中为本地化创建了两个不同的 xml 文件,即用于英语的 Resource.resx 和用于德语的 Resource.de-DE.resx。我在模型类中使用了以下代码:

    [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.xml 中进行了以下更改。全球化配置文件:

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

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

那么,现在我该怎么做呢?请帮帮我。

4

3 回答 3

1

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

还要在此方法中设置当前区域性值。

于 2013-09-06T12:18:07.080 回答
0

简单的回答 > 没有错!

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

于 2013-09-04T10:31:24.587 回答
0

为了能够做到这一点,您需要设置文化。因此,将在下拉列表等中为用户提供选择,他们明确选择德语、英语等,这会将您的网站更改为 yoursite/En 或 yoursight/Gr 等。本文很好地解释并提供了示例代码。http://www.codeproject.com/Articles/207602/Creating-a-Bilingual-ASP-NET-MVC3-Application-Part “添加 UI 支持以切换语言”部分我相信你需要什么。

于 2013-09-04T10:39:23.687 回答