Add a section for order request culture providers (#24404)
* Add a section for order request culture providers * Apply suggestions from code review * Update localization.md Co-authored-by: Rick Anderson <3605364+Rick-Anderson@users.noreply.github.com>pull/24403/head
parent
191fbe8733
commit
6ba09afc2a
|
@ -359,6 +359,23 @@ services.Configure<RequestLocalizationOptions>(options =>
|
||||||
|
|
||||||
Use `RequestLocalizationOptions` to add or remove localization providers.
|
Use `RequestLocalizationOptions` to add or remove localization providers.
|
||||||
|
|
||||||
|
### Change request culture providers order
|
||||||
|
|
||||||
|
<xref:Microsoft.AspNetCore.Builder.RequestLocalizationOptions> has three default request culture providers: <xref:Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider>, <xref:Microsoft.AspNetCore.Localization.CookieRequestCultureProvider>, and <xref:Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider>. Use [`RequestLocalizationOptions.RequestCultureProviders`]](xref:Microsoft.AspNetCore.Builder.RequestLocalizationOptions.RequestCultureProviders) property to change the order of these providers as shown in the following below:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
app.UseRequestLocalization(options =>
|
||||||
|
{
|
||||||
|
var questStringCultureProvider = options.RequestCultureProviders[0];
|
||||||
|
options.RequestCultureProviders.RemoveAt(0);
|
||||||
|
options.RequestCultureProviders.Insert(1, questStringCultureProvider);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
In the preceding example above, the order of `QueryStringRequestCultureProvider` and `CookieRequestCultureProvider` is swithched, so the `RequestLocalizationMiddleware` looks for the cultures from the cookies first, then query string.
|
||||||
|
|
||||||
|
As previously mentioned, add a custom provider via <xref:Microsoft.AspNetCore.Builder.RequestLocalizationOptionsExtensions.AddInitialRequestCultureProvider%2A> which sets the order to `0`, so this provider takes the precedence over the others.
|
||||||
|
|
||||||
### Set the culture programmatically
|
### Set the culture programmatically
|
||||||
|
|
||||||
This sample **Localization.StarterWeb** project on [GitHub](https://github.com/aspnet/entropy) contains UI to set the `Culture`. The *Views/Shared/_SelectLanguagePartial.cshtml* file allows you to select the culture from the list of supported cultures:
|
This sample **Localization.StarterWeb** project on [GitHub](https://github.com/aspnet/entropy) contains UI to set the `Culture`. The *Views/Shared/_SelectLanguagePartial.cshtml* file allows you to select the culture from the list of supported cultures:
|
||||||
|
@ -713,6 +730,23 @@ services.Configure<RequestLocalizationOptions>(options =>
|
||||||
|
|
||||||
Use `RequestLocalizationOptions` to add or remove localization providers.
|
Use `RequestLocalizationOptions` to add or remove localization providers.
|
||||||
|
|
||||||
|
### Change request culture providers order
|
||||||
|
|
||||||
|
<xref:Microsoft.AspNetCore.Builder.RequestLocalizationOptions> has three default request culture providers: <xref:Microsoft.AspNetCore.Localization.QueryStringRequestCultureProvider>, <xref:Microsoft.AspNetCore.Localization.CookieRequestCultureProvider>, and <xref:Microsoft.AspNetCore.Localization.AcceptLanguageHeaderRequestCultureProvider>. Use [`RequestLocalizationOptions.RequestCultureProviders`]](xref:Microsoft.AspNetCore.Builder.RequestLocalizationOptions.RequestCultureProviders) property to change the order of these providers as shown in the following below:
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
app.UseRequestLocalization(options =>
|
||||||
|
{
|
||||||
|
var questStringCultureProvider = options.RequestCultureProviders[0];
|
||||||
|
options.RequestCultureProviders.RemoveAt(0);
|
||||||
|
options.RequestCultureProviders.Insert(1, questStringCultureProvider);
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
In the preceding example above, the order of `QueryStringRequestCultureProvider` and `CookieRequestCultureProvider` is swithched, so the `RequestLocalizationMiddleware` looks for the cultures from the cookies first, then query string.
|
||||||
|
|
||||||
|
As previously mentioned, add a custom provider via <xref:Microsoft.AspNetCore.Builder.RequestLocalizationOptionsExtensions.AddInitialRequestCultureProvider%2A> which sets the order to `0`, so this provider takes the precedence over the others.
|
||||||
|
|
||||||
### Set the culture programmatically
|
### Set the culture programmatically
|
||||||
|
|
||||||
This sample **Localization.StarterWeb** project on [GitHub](https://github.com/aspnet/entropy) contains UI to set the `Culture`. The *Views/Shared/_SelectLanguagePartial.cshtml* file allows you to select the culture from the list of supported cultures:
|
This sample **Localization.StarterWeb** project on [GitHub](https://github.com/aspnet/entropy) contains UI to set the `Culture`. The *Views/Shared/_SelectLanguagePartial.cshtml* file allows you to select the culture from the list of supported cultures:
|
||||||
|
|
Loading…
Reference in New Issue