private static void ConfigureRequestLocalization(IApplicationBuilder app) { var iocResolver = app.ApplicationServices.GetRequiredService <IIocResolver>(); using (var languageManager = iocResolver.ResolveAsDisposable <ILanguageManager>()) { var defaultLanguage = languageManager.Object .GetLanguages() .FirstOrDefault(l => l.IsDefault); if (defaultLanguage == null) { return; } var supportedCultures = languageManager.Object .GetLanguages() .Select(l => new CultureInfo(l.Name)) .ToArray(); var defaultCulture = new RequestCulture(defaultLanguage.Name); var options = new RequestLocalizationOptions { DefaultRequestCulture = defaultCulture, SupportedCultures = supportedCultures, SupportedUICultures = supportedCultures }; var settingManager = iocResolver.Resolve <ISettingManager>(); var settingRequestCultureProvider = new SettingRequestCultureProvider(settingManager); AddSettingRequestCultureProvider(options, settingRequestCultureProvider); app.UseRequestLocalization(options); } }
private static void AddSettingRequestCultureProvider(RequestLocalizationOptions options, SettingRequestCultureProvider settingRequestCultureProvider) { var acceptLanguageHeaderRequestCultureProvider = options.RequestCultureProviders.FirstOrDefault(rcp => rcp.GetType() == typeof(AcceptLanguageHeaderRequestCultureProvider)); if (acceptLanguageHeaderRequestCultureProvider != null) { var acceptLanguageHeaderRequestCultureProviderIndex = options.RequestCultureProviders.IndexOf(acceptLanguageHeaderRequestCultureProvider); options.RequestCultureProviders.Insert(acceptLanguageHeaderRequestCultureProviderIndex, settingRequestCultureProvider); } else { options.RequestCultureProviders.Add(settingRequestCultureProvider); } }