在单独的 class 库中对数据注释进行本地化
Localization of data annotations in separate class library
我们正在尝试为我们的领域模型实施本地化,这些领域模型存在于我们解决方案中的单独 class 库项目中。
然而,我们无法让它工作,因为我们的模型数据注释属性根本没有被翻译。
项目结构
- 解决方案
- 网络项目
- 资源文件夹(包含 .resx 文件。例如 App.en.resx)工作正常
- Class图书馆
- 领域模型
- 资源文件夹(包含 .resx 文件。例如 App.en.resx)不起作用
Startup.cs
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
备注
本地化在 Web 项目中起作用,例如它翻译视图、控制器。
但是,当我们尝试翻译存在于单独项目中的模型时,它不起作用。
// 问候
暂不支持翻译存在于单独项目中的数据注释、视图、控制器等,无需自行实现。
解决方案是使用 IStringLocalizer、IStringLocalizerFactory 编写您自己的自定义实现并将其注册到 Startup.cs。 See how StringLocalizer/Factory works.
仅供参考:致力于 Localizer 的 aspnet 团队已经意识到这一点,并且正在研究解决方案以在未来支持这一点。参见 aspnet/Localization
我们正在尝试为我们的领域模型实施本地化,这些领域模型存在于我们解决方案中的单独 class 库项目中。 然而,我们无法让它工作,因为我们的模型数据注释属性根本没有被翻译。
项目结构
- 解决方案
- 网络项目
- 资源文件夹(包含 .resx 文件。例如 App.en.resx)工作正常
- Class图书馆
- 领域模型
- 资源文件夹(包含 .resx 文件。例如 App.en.resx)不起作用
- 网络项目
Startup.cs
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
备注
本地化在 Web 项目中起作用,例如它翻译视图、控制器。 但是,当我们尝试翻译存在于单独项目中的模型时,它不起作用。
// 问候
暂不支持翻译存在于单独项目中的数据注释、视图、控制器等,无需自行实现。
解决方案是使用 IStringLocalizer、IStringLocalizerFactory 编写您自己的自定义实现并将其注册到 Startup.cs。 See how StringLocalizer/Factory works.
仅供参考:致力于 Localizer 的 aspnet 团队已经意识到这一点,并且正在研究解决方案以在未来支持这一点。参见 aspnet/Localization