diff --git a/Oqtane.Client/Program.cs b/Oqtane.Client/Program.cs index fcc03099..cc85b9b9 100644 --- a/Oqtane.Client/Program.cs +++ b/Oqtane.Client/Program.cs @@ -95,13 +95,16 @@ namespace Oqtane.Client var jsRuntime = host.Services.GetRequiredService(); var interop = new Interop(jsRuntime); var culture = await interop.GetLocalStorage("OqtaneCulture"); - if (culture != null) + var localizationService = host.Services.GetRequiredService(); + var cultures = await localizationService.GetCulturesAsync(); + + if (culture == null || !cultures.Any(c => c.Name.Equals(culture, StringComparison.OrdinalIgnoreCase))) { - var cultureInfo = CultureInfo.GetCultureInfo(culture); - CultureInfo.DefaultThreadCurrentCulture = cultureInfo; - CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; + culture = cultures.Single(c => c.IsDefault).Name; } + SetCulture(culture); + ServiceActivator.Configure(host.Services); await host.RunAsync(); @@ -155,5 +158,12 @@ namespace Oqtane.Client } } } + + private static void SetCulture(string culture) + { + var cultureInfo = CultureInfo.GetCultureInfo(culture); + CultureInfo.DefaultThreadCurrentCulture = cultureInfo; + CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; + } } } diff --git a/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor b/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor index ab61c2f4..e1d16002 100644 --- a/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor +++ b/Oqtane.Client/Themes/Controls/LanguageSwitcher.razor @@ -14,14 +14,13 @@ } @code{ - private string _selectedCulture; private IEnumerable _supportedCultures; [Parameter] @@ -29,8 +28,6 @@ protected override async Task OnParametersSetAsync() { - var interop = new Interop(JSRuntime); - _selectedCulture = await interop.GetLocalStorage("OqtaneCulture"); _supportedCultures = await LocalizationService.GetCulturesAsync(); }