在单独的类库中本地化数据注释

我们正在尝试为我们的域模型实现本地化,这些域模型存在于我们解决方案中的单独的类库项目中。 但是,我们无法使其工作,因为我们的模型数据注释属性根本没有被翻译。

项目结构

    • 网络项目
      • 资源文件夹(包含.resx文件。 例如App.en.resx )工作正常
    • 类库
      • 领域模型
      • 资源文件夹(包含.resx文件。 例如App.en.resx )不起作用

Startup.cs

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

注意

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

// 问候

目前没有支持翻译单独项目中存在的数据注释,视图,控制器等,而无需自己实现。

解决方案是使用IStringLocalizer,IStringLocalizerFactory编写自己的自定义实现,并在Startup.cs中注册它。 了解StringLocalizer / Factory的工作原理。

仅供参考:正在开发Localizer的aspnet团队已经意识到这一点,并且正在开发一种解决方案,以支持将来。 请参阅aspnet / Localization