BugWASMI18N/BlazorWebassemblyI18n/Pages/LanguageSelector.razor

46 lines
1.3 KiB
Plaintext

@using System.Globalization
@inject IJSRuntime JSRuntime
@inject NavigationManager Nav
<div class="col-md-3">
<select class="form-control" @bind="Culture">
@foreach (var language in supportedLanguages)
{
<option value="@language">@language.DisplayName</option>
}
</select>
</div>
@code
{
[Inject]
SessionManager sessionManager {get;set;}
CultureInfo[] supportedLanguages = new[]
{
new CultureInfo("en-US"),
new CultureInfo("fr-FR"),
new CultureInfo("ar-AE"),
};
CultureInfo Culture
{
get => CultureInfo.CurrentCulture;
set
{
if (CultureInfo.CurrentCulture != value)
{
var js = (IJSInProcessRuntime)JSRuntime;
js.InvokeVoid("appCulture.set", value.Name);
var cultureInfo = new CultureInfo(value.Name);
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
CultureInfo.CurrentCulture = cultureInfo;
//Nav.NavigateTo(Nav.Uri, forceLoad: true);
sessionManager.SendMessage($"culture was changed to '{value.Name}'");
}
}
}
}