using IRaCIS.Core.Application.Helper; using IRaCIS.Core.Domain.Models; using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Infra.EFCore; using IRaCIS.Core.Infrastructure.Extention; using Microsoft.AspNetCore.Builder; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Threading.Tasks; namespace IRaCIS.Core.API { public static class LocalizationConfig { public static async Task UseLocalization(this IApplicationBuilder app,IServiceProvider serviceProvider) { var supportedCultures = new List { new CultureInfo(StaticData.CultureInfo.en_US), new CultureInfo(StaticData.CultureInfo.zh_CN) }; var options = new RequestLocalizationOptions { //DefaultRequestCulture = new RequestCulture("en-US"), SupportedCultures = supportedCultures, SupportedUICultures = supportedCultures, ApplyCurrentCultureToResponseHeaders = true }; //options.RequestCultureProviders.RemoveAt(0); //options.RequestCultureProviders.RemoveAt(1); app.UseRequestLocalization(options); //设置国际化I18n var localizer = serviceProvider.GetRequiredService(); I18n.SetLocalizer(localizer); //初始化国际化 var _internationalizationRepository = serviceProvider.GetRequiredService>(); //查询数据库的数据 var toJsonList = await _internationalizationRepository.Where(t => t.InternationalizationType == 1).Select(t => new IRCGlobalInfoDTO() { Code = t.Code, Value = t.Value, ValueCN = t.ValueCN, Description = t.Description }).ToListAsync(); await InternationalizationHelper.BatchAddJsonKeyValueAsync(toJsonList); } } }