Как добавить локализацию в приложение WPF Blazor?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить локализацию в приложение WPF Blazor?

Сообщение Anonymous »

Я пытаюсь добавить локализацию в свое приложение WPF Blazor, но это не работает. IStringLocalizer, который я добавляю с общим ресурсом, всегда возвращает английский ресурс по умолчанию, даже если я установил другую культуру.
Раньше я создавал приложение WPF Blazor.
Я пытаюсь сделать это снова, но на этот раз я попробовал добавить локализацию
согласно документации Microsoft и другим документам
(За исключением того, что вместо того, чтобы полагаться на локальное хранилище, я полагаюсь на файл конфигурации, я могу загрузить информацию о культуре из конфигурации и установить DefaultThreadCurrentCulture и DefaultThreadCurrentUICulture с нужной мне CultureInfo)
Это хорошо работает для стандартного приложения Blazor WASM, но, похоже, не работает. работаю для приложения WPF Blazor.
Когда я пытаюсь получить локализованную строку, он всегда возвращает английский ресурс по умолчанию.
Я подозреваю, что в нем что-то есть что делать с удалением этой строки

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

- await builder.Build().RunAsync();
с заменой

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

builder.Services.AddLocalization();

var host = builder.Build();

const string defaultCulture = "en-US";

var js = host.Services.GetRequiredService();
var result = await js.InvokeAsync("blazorCulture.get");
var culture = CultureInfo.GetCultureInfo(result ?? defaultCulture);

if (result == null)
{
await js.InvokeVoidAsync("blazorCulture.set", defaultCulture);
}

CultureInfo.DefaultThreadCurrentCulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;

await host.RunAsync();
но я не знаю, как получить доступ к хосту после его сборки, но до его запуска. При использовании приложения WPF Blazor я могу просто настроить свои службы для своих компонентов Blazor следующим образом

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

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

var serviceCollection = new ServiceCollection();
serviceCollection.AddWpfBlazorWebView();
Resources.Add("services", serviceCollection.BuildServiceProvider());
}
}
Кто-нибудь знает, как получить доступ к хосту после его создания, но до его запуска? Или, что еще предпочтительнее, как заставить локализацию работать в приложении WPF Blazor?
Кстати, кто-нибудь знает, почему культуру необходимо устанавливать после создания хоста, но до его запуска? Я не уверен, что полностью понимаю, как это работает.
Я также исследовал это, поскольку это дает доступ к хосту, но мне не удалось заставить работать версию .NET 8
https://github.com/DotNetExtension/BlazorDesktop
Редактирование:
Возможно, мне стоит попробовать использовать Extensions.Hosting? это вообще поможет?
ага

В этой статье вы узнаете, как использовать реализации IStringLocalizer и IStringLocalizerFactory. . Весь исходный код примеров в этой статье основан на пакетах NuGet Microsoft.Extensions.Localization и Microsoft.Extensions.Hosting. Дополнительную информацию о хостинге см. в разделе .NET Generic Host.

Возможно, это поможет

Подробнее здесь: https://stackoverflow.com/questions/784 ... blazor-app
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как добавить локализацию в приложение WPF Blazor?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Как добавить локализацию в приложение WPF Blazor?
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Веб-приложение Blazor, автономное приложение Blazor WebAssembly или серверное приложение Blazor
    Anonymous » » в форуме C#
    0 Ответы
    79 Просмотры
    Последнее сообщение Anonymous
  • Как добавить ручную локализацию в приложение .NET Core MVC?
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как добавить ручную локализацию в приложение .NET Core MVC?
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

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