【问题标题】:ASP.NET MVC validation message does not get localizedASP.NET MVC 验证消息未本地化
【发布时间】:2013-08-14 10:53:32
【问题描述】:

我正在使用带有不显眼的客户端验证的 ASP.NET MVC 4。我的应用程序中的语言是德语(在 web.config 文件中定义)

如果我有一个必填字段(在我的代码优先类中配置了数据注释),则客户端验证工作正常。唯一的缺点:消息没有本地化。

字段 XXXX 为必填项。

这个问题有解决办法吗?

【问题讨论】:

    标签: asp.net-mvc localization unobtrusive-validation


    【解决方案1】:

    您必须根据您的 .NET Framework 版本安装 .NET Framework 语言包:

    Microsoft .NET Framework 4.5 语言包: http://www.microsoft.com/de-de/download/details.aspx?id=30667

    Microsoft .NET Framework 4 完整语言包: http://www.microsoft.com/de-de/download/details.aspx?id=23067

    在这些页面中,检查要求,以查看它们是否满足您的需求(即:操作系统版本、x86 或 x64 等)。如果它们不能满足您的需求,请在 Google 上搜索“Microsoft .NET Framework German Language Pack”之类的内容。

    【讨论】:

    • 我已经尝试了这些链接。我的系统告诉我,语言包已经是系统安装的一部分 -> 似乎我已经安​​装了它,但错误消息仍然是英文的......
    • 您的Web.config 中是否有类似以下内容:<globalization culture="de-DE" uiCulture="de-DE" ..... />
    • 尝试卸载系统中的语言包,然后安装新的。
    • 我的系统(win 8)上没有安装显式语言包,错误信息是(翻译):`Microsoft .NET 4.5 is already installed'(好像总是安装LanguagePack? )
    • 也许这个链接可以帮助你:social.msdn.microsoft.com/Forums/windowsazure/en-us/…
    【解决方案2】:

    是的 - 在您的验证属性中引用您的资源文件:

    [Required(ErrorMesageResourceName="LastName", ErrorMessageResourceType=typeof(YourResourceClassName))]
    

    【讨论】:

    • 注释 ressourceName 的缺点是,您必须为每个属性都这样做,而且我有很多...(除此之外 - 必须有一个更智能的解决方案!?因为当我注释[必填]时,信息已经存在,只是缺少翻译)
    • 是的,将资源文件引用添加到每个属性是一个问题,但是当您想要不同的语言时,它非常简单 - 只需放入另一个资源文件。
    • 此外,您会发现除了最简单的网站之外,依赖默认消息(即使是德语)对于其他任何东西来说都太有限了。因此,即使您对语言包进行了排序,我仍然会去寻找资源文件。
    • Windows 8 和语言包似乎有问题,这可能会有所帮助 - support.microsoft.com/kb/2738065
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 2011-05-19
    • 1970-01-01
    相关资源
    最近更新 更多