Я следую этой документации, чтобы реализовать локализацию внутри моего ASP.NET Core
приложения, и я пытаюсь отобразить в нижнем колонтитуле выбор, который содержит все языки, поддерживаемые моим приложением.
Итак, я создал файл с именем _SelectLanguagepartial
, как указано в документации:
@using Microsoft.AspNetCore.Builder
@using Microsoft.AspNetCore.Http.Features
@using Microsoft.AspNetCore.Localization
@using Microsoft.AspNetCore.Mvc.Localization
@using Microsoft.Extensions.Options
@inject IViewLocalizer Localizer
@inject IOptions<RequestLocalizationOptions> LocOptions
@{
var requestCulture = Context.Features.Get<IRequestCultureFeature>();
var cultureItems = LocOptions.Value.SupportedUICultures
.Select(c => new SelectListItem { Value = c.Name, Text = c.DisplayName })
.ToList();
var returnUrl = string.IsNullOrEmpty(Context.Request.Path) ? "~/" : $"~{Context.Request.Path.Value}";
}
<div title="@Localizer["Request culture provider:"] @requestCulture?.Provider?.GetType().Name">
<form id="selectLanguage" asp-controller="Language"
asp-action="SetLanguage" asp-route-returnUrl="@returnUrl"
method="post" class="form-horizontal" role="form">
<label asp-for="@requestCulture.RequestCulture.UICulture.Name">@Localizer["Language:"]</label>
<select name="culture" onchange="this.form.submit();"
asp-for="@requestCulture.RequestCulture.UICulture.Name"
asp-items="cultureItems"></select>
</form>
</div>
и я загружаю это в нижний колонтитул следующим образом:
@await Html.PartialAsync("_SelectLanguagePartial")
это работает хорошо, но проблема в том, что я получаю только язык italian
, но вместо этого я должен получить также английский, infact, внутри метода Configure
Я указал следующие языки:
var supportedCultures = new[]
{
new CultureInfo("it-IT"),
new CultureInfo("en-EN")
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("it-IT"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
как вы можете видеть, я установил в качестве языка по умолчанию italian
, но у меня также есть язык english
, я пытался редактировать также в en-US
, но в выбранном я получаю только язык italian
.
Что я сделал не так?