Я прочитал эту полезную статью об общей локализации страниц Blazor, однако идентичность не совсем такая же. Он использует ASP. NET Core MVC, а не Blazor. Я сделал пример страницы локализованным, но страница регистра в скаффолде не видит мой перевод.
Мой ConfigureServices
фрагмент метода:
services.AddLocalization(options => options.ResourcesPath = "Resources");
var supportedCultures = new[] {
new CultureInfo("en"),
new CultureInfo("pl"),
};
services.Configure<RequestLocalizationOptions>(options => {
options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("pl");
options.SupportedUICultures = supportedCultures;
});
Мой Configure
Фрагмент метода:
app.UseRequestLocalization();
Я поместил свой файл Register.pl.resx
в папку Resources\Identity\Account
. Мой resx
фрагмент файла:
<data name="Password" xml:space="preserve">
<value>Hasło</value>
</data>
Я изменил свой Register.cshtml
файл следующим образом:
@using Microsoft.Extensions.Localization
@inject IStringLocalizer<RegisterModel> L
...
<div class="form-group">
<label asp-for="Input.Password">@L["Password"]</label>
<input asp-for="Input.Password" class="form-control" />
<span asp-validation-for="Input.Password" class="text-danger"></span>
</div>
И ... Никакой радости. Не работает Я изменил первый язык в браузере на Poli sh. Не помогло Я подозреваю несколько вещей. Как сервис локализатора принимает аргумент типа. Может быть, я должен использовать что-то другое вместо типа модели? Тогда, может быть .resx
папка / имя файла должны отличаться? Или, может быть, это должно быть сделано совершенно по-другому?
Кстати, мне также нужна полная локализация приложения с возможностью менять язык по ссылке, как в пути к сайту, точно так же, как это сделано на страницах Microsoft. Я нашел несколько примеров для MVC, но ни одного в Blazor, и Blazor с Identity похож на Blazor с MVC. Как правильно выполнить локализацию / интернационализацию и по книге в серверном приложении Blazor?