Fallback to default culture if its required

This commit is contained in:
hishamco
2020-12-03 16:14:23 +03:00
parent 1a8125c26d
commit 049ded6f7e
2 changed files with 15 additions and 8 deletions

View File

@ -95,13 +95,16 @@ namespace Oqtane.Client
var jsRuntime = host.Services.GetRequiredService<IJSRuntime>();
var interop = new Interop(jsRuntime);
var culture = await interop.GetLocalStorage("OqtaneCulture");
if (culture != null)
var localizationService = host.Services.GetRequiredService<ILocalizationService>();
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;
}
}
}