Abp vNext多语言替换
-
安装nuget包: Install-Package AbpvNext.MyCultureMap
-
配置服务:
2.1 使用配置文件
public override void ConfigureServices(ServiceConfigurationContext context)
{
// 其他配置...
Configure<MyCultureMapOptions>(configuration.GetSection("MyCultureMapOptions"));
}
配置文件:
"MyCultureMapOptions": {
"CulturesMaps": [
{
"TargetCulture": "zh-Hans",
"SourceCultures": [ "zh", "zh-CN" ]
},
{
"TargetCulture": "zh-Hant",
"SourceCultures": [ "zh-TW", "zh-HK" ]
},
{
"TargetCulture": "en",
"SourceCultures": [ "en-US", "en-AU", "en-CA", "en-IN", "en-IE", "en-IE", "en-MY", "en-NZ", "en-SG", "en-ZA", "en-GB" ]
}
] ,
"UiCulturesMaps": [
{
"TargetCulture": "zh-Hans",
"SourceCultures": [ "zh", "zh-CN" ]
},
{
"TargetCulture": "zh-Hant",
"SourceCultures": [ "zh-TW", "zh-HK" ]
},
{
"TargetCulture": "en",
"SourceCultures": [ "en-US", "en-AU", "en-CA", "en-IN", "en-IE", "en-IE", "en-MY", "en-NZ", "en-SG", "en-ZA", "en-GB" ]
}
]
}
}
2.2 使用默认配置(默认Chrome浏览器的语言标识)
public override void ConfigureServices(ServiceConfigurationContext context)
{
// 其他配置...
Configure<MyCultureMapOptions>(options => options.SetCultureMaps());
}
- 启用多语言替换
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
// 其他配置...
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseAbpRequestLocalization();
if (!env.IsDevelopment())
{
app.UseErrorPage();
}
app.UseCorrelationId();
app.UseVirtualFiles();
app.UseRouting();
//启用多语言替换
app.UseMyRequestLocalization();
app.UseCors(DefaultCorsPolicyName);
app.UseAuthentication();
if (MultiTenancyConsts.IsEnabled)
{
app.UseMultiTenancy();
}
app.UseAuthorization();
// Swagger设置 ...
app.UseAuditing();
app.UseAbpSerilogEnrichers();
app.UseConfiguredEndpoints();
}