在标准应用程序中,我有以下内容:
[Required]
[DisplayName("Email Address")]
public string EmailAddress { get; set; }
...这反过来会自动为该表单字段生成英文标签。
现在,如果我需要我的应用程序支持 5 种语言,那么 ASP.NET MVC 应用程序处理此问题的最佳方法是什么?
适用范围约为400-600个数据字段。
更新:我还需要支持更新应用程序中的小部分文本,例如页面名称和每个表单的介绍(小段落)。
不要将实际值分配给属性属性,而是为资源字符串分配键。然后,您可以使用自定义ModelMetadataProvider
它了解本地化上下文并将提供适当的字符串。为了获得更好的解决方案,您可以定制ModelMetadataProvider
推断约定(这减少了对详细属性的需要)。
Phil Haack 有一篇博客文章名为使用约定的模型元数据和验证本地化这解释了这是如何工作的。还有一个对应的 NuGet 包,名为模型元数据扩展源代码可在 github 上找到https://github.com/Haacked/mvc-metadata-conventions .
作为旁注,我建议回顾一下我在一个老问题上得到的一些很棒的答案:.NET 中的有效本地化策略。它们没有专门解决您的问题,但如果您正在开发多语言 .NET 应用程序,它们将非常有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)