46 lines
1.3 KiB
Plaintext
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}'");
|
|
}
|
|
}
|
|
}
|
|
}
|