我正在使用ASP.NET MVC 5开发一个应用程序。对于文本本地化,我使用的是数据库而不是资源文件。
为了获取各种验证属性(例如Required
,Range
等)的正确翻译错误消息,我使用的是DataAnnotationsModelMetadataProvider
的自定义元数据提供程序派生程序,正如here所解释的那样。到目前为止一切顺利,一切都按预期工作。
当我想翻译默认错误消息时,问题就出现了,例如“字段X必须是数字”。似乎ASP.NET MVC引擎没有通过属性处理这些错误,因此在这种情况下,cursom元数据提供程序是无用的。
In this page有关如何使用资源文件翻译这些消息的说明,基本上您是在Application_Start
的{{1}}方法中添加这些行:
Global.asax
...但我无法想象如何在为文本使用数据库时应用此功能。
所以我的问题是:当文本不在标准资源文件中时,如何翻译ASP.NET MVC默认(基于非验证属性)错误消息?