版本DisplayName是否可本地化?如果不是,那么使代码可本地化的最佳实践是什么?
我希望能够更改Edition DisplayName,而无需重新部署多种语言的应用程序。
我正在使用ASP.Net Core / Angular版本-ASP.Net Zero。
答案 0 :(得分:1)
您可以将ILocalizableString
映射到string
,Automapper会对其进行转换。
您可以这样创建Localizable字符串:
new LocalizableString(edition.Name, "localizationFileName");
如果您想更好地了解什么是自动映射器,可以在AbpAutoMapperModule.cs中使用CreateCoreMappings方法找到它。
编辑:也许您可以配置特定的映射,例如:
public override void PreInitialize()
{
Configuration.Modules.AbpAutoMapper().Configurators.Add(CreateMappings);
}
private void CreateCoreMappings(IMapperConfigurationExpression configuration)
{
var localizationContext = IocManager.Resolve<ILocalizationContext>();
configuration.CreateMap<Edition, EditionDto>().ForMember(dest => dest.DisplayName, options => options.MapFrom(src => localizationContext.LocalizationManager.GetString("localizationFileName", src.DisplayName)))
}