在单独的 class 库中对数据注释进行本地化

Localization of data annotations in separate class library

我们正在尝试为我们的领域模型实施本地化,这些领域模型存在于我们解决方案中的单独 class 库项目中。 然而,我们无法让它工作,因为我们的模型数据注释属性根本没有被翻译。

项目结构

Startup.cs

services.AddMvc()
     .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
     .AddDataAnnotationsLocalization();

备注

本地化在 Web 项目中起作用,例如它翻译视图、控制器。 但是,当我们尝试翻译存在于单独项目中的模型时,它不起作用。

// 问候

暂不支持翻译存在于单独项目中的数据注释、视图、控制器等,无需自行实现。

解决方案是使用 IStringLocalizer、IStringLocalizerFactory 编写您自己的自定义实现并将其注册到 Startup.cs。 See how StringLocalizer/Factory works.

仅供参考:致力于 Localizer 的 aspnet 团队已经意识到这一点,并且正在研究解决方案以在未来支持这一点。参见 aspnet/Localization