Как установить язык в приложении Blazor для рендеринга на стороне сервераC#

Место общения программистов C#
Ответить
Anonymous
 Как установить язык в приложении Blazor для рендеринга на стороне сервера

Сообщение Anonymous »

Я создаю приложение blazor для рендеринга на стороне сервера
где в Program.cs у меня есть

Код: Выделить всё

builder
.Services
.AddRazorComponents()
.AddInteractiveServerComponents();
и

Код: Выделить всё

app.MapRazorComponents()
.AddInteractiveServerRenderMode();
Я создал языковой компонент, подобный приведенному ниже коду, который, похоже, не работает, или, по крайней мере, я не вижу никаких изменений в локализации для других компонентов.

Код: Выделить всё

@using  System.Globalization
@inject IJSRuntime JSRuntime
@inject NavigationManager Nav


@foreach (var language in supportedLanguages)
{
@language.DisplayName
}


@code
{
CultureInfo[] supportedLanguages = new[]
{
new CultureInfo("en-US"),
new CultureInfo("pt-PT"),
new CultureInfo("fr-FR"),
};

private async Task ChangeLanguage(ChangeEventArgs e)
{
var culture = e.Value?.ToString();
Console.WriteLine("culture is " + culture);
if (!string.IsNullOrEmpty(culture))
{
await JSRuntime.InvokeVoidAsync("BlazorCulture.setCulture", culture);
}
}
}
Если другие компоненты также уже визуализированы, и я хочу, чтобы для них был обновлен язык, как я могу это сделать?
Например, визуализируются 2 компонента использовать

Код: Выделить всё

IStringLocalizer _localize
Но поскольку я не меняю страницы, а это похоже на одностраничный веб-сайт, как можно перерисовать компоненты, чтобы учесть измененный язык?< /п>

Подробнее здесь: https://stackoverflow.com/questions/782 ... blazor-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»