ASP.NET MVC4多语言数据注释

Pau*_*own 10 .net c# asp.net-mvc multilingual data-annotations

在标准应用程序中,我有以下内容:

[Required]
[DisplayName("Email Address")]
public string EmailAddress { get; set; }
Run Code Online (Sandbox Code Playgroud)

...这反过来会自动生成一个英文表格字段的标签.

现在,如果我需要我的应用程序支持5种语言,那么ASP.NET MVC应用程序处理此问题的最佳方法是什么?

适用范围约为400-600个数据字段.

更新:我还需要支持更新应用程序中的小部分文本,如页面名称和每个表单的引入(小段落).

sma*_*man 9

不是将实际值分配给属性属性,而是为资源字符串分配键.然后,您可以使用ModelMetadataProvider了解本地化上下文的自定义,并提供相应的字符串.为了获得更好的解决方案,您可以制定自定义ModelMetadataProvider推断约定(这减少了对详细属性的需求).

Phil Haack有一篇博客文章,名为使用约定的模型元数据和验证本地化,解释了它的工作原理.还有一个名为ModelMetadataExtensions的相应NuGet包,其源代码可在github上获得,网址https://github.com/Haacked/mvc-metadata-conventions.

作为旁注,我建议回顾一下我在一个老问题上得到的一些很棒的答案:.NET中本地化的有效策略.它们没有专门解决您的问题,但如果您正在使用多语言.NET应用程序,它将非常有用.