diff --git a/EnvelopeGenerator.ReceiverUI/App.razor b/EnvelopeGenerator.ReceiverUI/App.razor index 6176d21c..3a56f120 100644 --- a/EnvelopeGenerator.ReceiverUI/App.razor +++ b/EnvelopeGenerator.ReceiverUI/App.razor @@ -1,6 +1,4 @@ @using System.Globalization -@using EnvelopeGenerator.ReceiverUI.Services -@inject CultureService CultureService @@ -12,12 +10,3 @@ - -@code { - protected override async Task OnInitializedAsync() - { - var culture = await CultureService.InitializeCultureAsync(); - CultureInfo.DefaultThreadCurrentCulture = culture; - CultureInfo.DefaultThreadCurrentUICulture = culture; - } -} diff --git a/EnvelopeGenerator.ReceiverUI/Program.cs b/EnvelopeGenerator.ReceiverUI/Program.cs index 6e725a86..0ef22b94 100644 --- a/EnvelopeGenerator.ReceiverUI/Program.cs +++ b/EnvelopeGenerator.ReceiverUI/Program.cs @@ -9,6 +9,7 @@ using DevExpress.Blazor.Reporting; using DevExpress.XtraReports.Web.Extensions; using EnvelopeGenerator.Application.Resources; using Microsoft.Extensions.Localization; +using System.Globalization; var builder = WebAssemblyHostBuilder.CreateDefault(args); builder.RootComponents.Add("#app"); @@ -48,5 +49,12 @@ builder.Services.AddScoped(); ReportStorageWebExtension.RegisterExtensionGlobal(new InMemoryReportStorageWebExtension()); var host = builder.Build(); + +// Initialize culture BEFORE running the app +var cultureService = host.Services.GetRequiredService(); +var culture = await cultureService.InitializeCultureAsync(); +CultureInfo.DefaultThreadCurrentCulture = culture; +CultureInfo.DefaultThreadCurrentUICulture = culture; + await FontLoader.LoadFonts(host.Services.GetRequiredService(), new List { "opensans.ttf" }); await host.RunAsync(); diff --git a/EnvelopeGenerator.ReceiverUI/Shared/LanguageSelector.razor b/EnvelopeGenerator.ReceiverUI/Shared/LanguageSelector.razor index 4896bfe7..e426e22a 100644 --- a/EnvelopeGenerator.ReceiverUI/Shared/LanguageSelector.razor +++ b/EnvelopeGenerator.ReceiverUI/Shared/LanguageSelector.razor @@ -43,7 +43,14 @@ if (CultureInfo.CurrentCulture.Name != culture) { await CultureService.SetCultureAsync(culture); - Navigation.NavigateTo(Navigation.Uri, forceLoad: true); + + // Set culture without page reload + var cultureInfo = new CultureInfo(culture); + CultureInfo.DefaultThreadCurrentCulture = cultureInfo; + CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; + + // Navigate without reload to trigger re-render + Navigation.NavigateTo(Navigation.Uri, forceLoad: false); } isOpen = false;