Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/Middleware/Localization/src/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
#nullable enable
Microsoft.AspNetCore.Builder.RequestLocalizationOptions.CultureInfoUseUserOverride.get -> bool
Microsoft.AspNetCore.Builder.RequestLocalizationOptions.CultureInfoUseUserOverride.set -> void
24 changes: 16 additions & 8 deletions src/Middleware/Localization/src/RequestLocalizationOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,18 @@ public class RequestLocalizationOptions
public RequestLocalizationOptions()
{
RequestCultureProviders = new List<IRequestCultureProvider>
{
new QueryStringRequestCultureProvider { Options = this },
new CookieRequestCultureProvider { Options = this },
new AcceptLanguageHeaderRequestCultureProvider { Options = this }
};
{
new QueryStringRequestCultureProvider { Options = this },
new CookieRequestCultureProvider { Options = this },
new AcceptLanguageHeaderRequestCultureProvider { Options = this }
};
}

/// <summary>
/// Configures <see cref="CultureInfo.UseUserOverride "/>. Defaults to <c>true</c>.
/// </summary>
public bool CultureInfoUseUserOverride { get; set; } = true;

/// <summary>
/// Gets or sets the default culture to use for requests when a supported culture could not be determined by
/// one of the configured <see cref="IRequestCultureProvider"/>s.
Expand Down Expand Up @@ -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;
}

Expand All @@ -141,10 +147,11 @@ public RequestLocalizationOptions AddSupportedUICultures(params string[] uiCultu
var supportedUICultures = new List<CultureInfo>(uiCultures.Length);
foreach (var culture in uiCultures)
{
supportedUICultures.Add(new CultureInfo(culture));
supportedUICultures.Add(new CultureInfo(culture, useUserOverride: CultureInfoUseUserOverride));
}

SupportedUICultures = supportedUICultures;

return this;
}

Expand All @@ -156,7 +163,8 @@ public RequestLocalizationOptions AddSupportedUICultures(params string[] uiCultu
/// <returns>The <see cref="RequestLocalizationOptions"/>.</returns>
public RequestLocalizationOptions SetDefaultCulture(string defaultCulture)
{
DefaultRequestCulture = new RequestCulture(defaultCulture);
DefaultRequestCulture = new RequestCulture(new CultureInfo(defaultCulture, useUserOverride: CultureInfoUseUserOverride));

return this;
}
}