using NCC.Dependency; using NCC.Localization; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace Microsoft.AspNetCore.Builder { /// /// 多语言中间件拓展 /// [SuppressSniffer] public static class LocalizationApplicationBuilderExtensions { /// /// 配置多语言中间件拓展 /// /// /// public static IApplicationBuilder UseAppLocalization(this IApplicationBuilder app) { // 获取多语言配置选项 var localizationSettings = app.ApplicationServices.GetRequiredService>().Value; // 如果没有配置多语言选项,则不注册服务 if (localizationSettings.SupportedCultures == null || localizationSettings.SupportedCultures.Length == 0) return app; var requestLocalization = new RequestLocalizationOptions(); Penetrates.SetRequestLocalization(requestLocalization, localizationSettings); // 设置多语言请求中间件 app.UseRequestLocalization(requestLocalization); return app; } } }