在标准的应用程序中,我有以下内容:
[required] [DisplayName("Email Address")] public string EmailAddress { get; set; }
现在,如果我需要我的应用来支持5种语言,那么ASP.NET MVC应用程序最好的方法是什么来处理这个问题?
应用范围约为400-600个数据字段.
解决方法
不要将实际值分配给属性属性,而是为资源字符串分配键.然后,您可以使用自定义的ModelMetadataProvider来识别本地化上下文,并提供适当的字符串.要获得更好的解决方案,您可以使自定义的ModelMetadataProvider推断约定(这减少了对详细属性的需求).
Phil Haack有一篇名为Model Metadata and Validation Localization using Conventions的博客文章,解释了如何运作.还有一个相应的NuGet软件包,名称为ModelMetadataExtensions,源代码可在github上提供https://github.com/Haacked/mvc-metadata-conventions.
作为一个附注,我建议您回顾一下我在一个旧问题上的一些令人敬畏的答案:Effective Strategies for Localization in .NET.他们没有专门解决你的问题,但如果你正在使用多语言的.NET应用程序,这将是非常有帮助的.