diff --git a/src/Middleware/Localization/src/PublicAPI.Unshipped.txt b/src/Middleware/Localization/src/PublicAPI.Unshipped.txt index 7dc5c58110bf..3edfee6471c7 100644 --- a/src/Middleware/Localization/src/PublicAPI.Unshipped.txt +++ b/src/Middleware/Localization/src/PublicAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.CultureInfoUseUserOverride.get -> bool +Microsoft.AspNetCore.Builder.RequestLocalizationOptions.CultureInfoUseUserOverride.set -> void diff --git a/src/Middleware/Localization/src/RequestLocalizationOptions.cs b/src/Middleware/Localization/src/RequestLocalizationOptions.cs index 0e1f37b6cf1b..5de0b6c22545 100644 --- a/src/Middleware/Localization/src/RequestLocalizationOptions.cs +++ b/src/Middleware/Localization/src/RequestLocalizationOptions.cs @@ -20,13 +20,18 @@ public class RequestLocalizationOptions public RequestLocalizationOptions() { RequestCultureProviders = new List - { - new QueryStringRequestCultureProvider { Options = this }, - new CookieRequestCultureProvider { Options = this }, - new AcceptLanguageHeaderRequestCultureProvider { Options = this } - }; + { + new QueryStringRequestCultureProvider { Options = this }, + new CookieRequestCultureProvider { Options = this }, + new AcceptLanguageHeaderRequestCultureProvider { Options = this } + }; } + /// + /// Configures . Defaults to true. + /// + public bool CultureInfoUseUserOverride { get; set; } = true; + /// /// Gets or sets the default culture to use for requests when a supported culture could not be determined by /// one of the configured s. @@ -124,10 +129,11 @@ public RequestLocalizationOptions AddSupportedCultures(params string[] cultures) foreach (var culture in cultures) { - supportedCultures.Add(new CultureInfo(culture)); + supportedCultures.Add(new CultureInfo(culture, useUserOverride: CultureInfoUseUserOverride)); } SupportedCultures = supportedCultures; + return this; } @@ -141,10 +147,11 @@ public RequestLocalizationOptions AddSupportedUICultures(params string[] uiCultu var supportedUICultures = new List(uiCultures.Length); foreach (var culture in uiCultures) { - supportedUICultures.Add(new CultureInfo(culture)); + supportedUICultures.Add(new CultureInfo(culture, useUserOverride: CultureInfoUseUserOverride)); } SupportedUICultures = supportedUICultures; + return this; } @@ -156,7 +163,8 @@ public RequestLocalizationOptions AddSupportedUICultures(params string[] uiCultu /// The . public RequestLocalizationOptions SetDefaultCulture(string defaultCulture) { - DefaultRequestCulture = new RequestCulture(defaultCulture); + DefaultRequestCulture = new RequestCulture(new CultureInfo(defaultCulture, useUserOverride: CultureInfoUseUserOverride)); + return this; } }