如何以多种语言显示版本的DisplayName

时间:2018-06-26 13:10:21

标签: c# aspnetboilerplate

版本DisplayName是否可本地化?如果不是,那么使代码可本地化的最佳实践是什么?

我希望能够更改Edition DisplayName,而无需重新部署多种语言的应用程序。

我正在使用ASP.Net Core / Angular版本-ASP.Net Zero。

1 个答案:

答案 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)))
}