/// <summary> /// Adiciona suporte a globalização para a API. /// </summary> /// <param name="app"></param> /// <param name="configuration"></param> /// <param name="appSettingsGlobalizationSection">Seção do appsettings, onde estão as configurações de globalização.</param> /// <returns></returns> public static IApplicationBuilder UseGlobalization(this IApplicationBuilder app, IConfiguration configuration, string appSettingsGlobalizationSection = "Globalization") { var globalizationOptions = new GlobalizationOptions(); configuration.GetSection(appSettingsGlobalizationSection).Bind(globalizationOptions); var requestOptions = new RequestLocalizationOptions { DefaultRequestCulture = GetDefaultRequestCulture(globalizationOptions.DefaultRequestCulture), SupportedCultures = GetSupportedCultures(globalizationOptions.SupportedCultures), SupportedUICultures = GetSupportedUICultures(globalizationOptions.SupportedUICultures), }; if (!globalizationOptions.UseQueryStringRequestCultureProvider) { RequestCultureProvider requestProvider = requestOptions.RequestCultureProviders.OfType <QueryStringRequestCultureProvider>().FirstOrDefault(); if (requestProvider != null) { requestOptions.RequestCultureProviders.Remove(requestProvider); } } app.UseRequestLocalization(requestOptions); return(app); }
/// <summary> /// Create <see cref="CustomUrlStringCultureProviderTest"/>. /// </summary> public CustomUrlStringCultureProviderTest() { var languageManipulationService = new LanguageManipulationService(); _cultureProvider = new CustomUrlStringCultureProvider( languageManipulationService); }
/// <summary> /// Adds a new <see cref="RequestCultureProvider"/> to the <see cref="RequestLocalizationOptions.RequestCultureProviders"/>. /// </summary> /// <param name="requestLocalizationOptions">The cultures to be added.</param> /// <param name="requestCultureProvider">The cultures to be added.</param> /// <returns>The <see cref="RequestLocalizationOptions"/>.</returns> /// <remarks>This method ensures that <paramref name="requestCultureProvider"/> has priority over other <see cref="RequestCultureProvider"/> instances in <see cref="RequestLocalizationOptions.RequestCultureProviders"/>.</remarks> public static RequestLocalizationOptions AddInitialRequestCultureProvider( this RequestLocalizationOptions requestLocalizationOptions, RequestCultureProvider requestCultureProvider) { if (requestLocalizationOptions == null) { throw new ArgumentNullException(nameof(requestLocalizationOptions)); } if (requestCultureProvider == null) { throw new ArgumentNullException(nameof(requestCultureProvider)); } requestLocalizationOptions.RequestCultureProviders.Insert(0, requestCultureProvider); return(requestLocalizationOptions); }