我正在使用 ASP.NET MVC 5 开发应用程序。对于文本本地化,我使用的是数据库而不是资源文件。
为了获得各种验证属性(例如 、 等)的正确翻译的错误消息Required
,Range
我正在使用来自 的自定义元数据提供程序派生程序DataAnnotationsModelMetadataProvider
,如此处所述。到目前为止一切顺利,一切都按预期工作。
当我想翻译诸如“字段 X 必须是数字”之类的默认错误消息时,问题就来了。似乎 ASP.NET MVC 引擎没有通过属性处理这些错误,因此 cursom 元数据提供程序在这种情况下是无用的。
在这个页面中,有一个关于如何使用资源文件翻译这些消息的解释,基本上你在Application_Start
方法中添加这些行Global.asax
:
ClientDataTypeModelValidatorProvider.ResourceClassKey = "MyResources";
DefaultModelBinder.ResourceClassKey = "MyResources";
...但我无法想象在使用文本数据库时如何应用它。
所以我的问题是:当文本不在标准资源文件中时,如何翻译 ASP.NET MVC 默认(非基于验证属性)错误消息?