| | | 1 | | <RadzenStack Gap="0.2em"> |
| | | 2 | | <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" Gap="0.5rem"> |
| | | 3 | | <RadzenIcon Icon="language" /> |
| | | 4 | | <RadzenDropDown TValue="string" |
| | | 5 | | Data="@Cultures" |
| | | 6 | | TextProperty="Name" |
| | | 7 | | ValueProperty="Value" |
| | | 8 | | Value="@CommonSettingsProvider.Current.Culture" |
| | | 9 | | Change="@OnCultureChange" |
| | | 10 | | Style="flex-grow: 1;" /> |
| | | 11 | | </RadzenStack> |
| | | 12 | | <RadzenText TextStyle="TextStyle.Caption" TextAlign="TextAlign.End" Style="color: var(--rz-warning);" Text="@SharedR |
| | | 13 | | </RadzenStack> |
| | | 14 | | |
| | | 15 | | @code { |
| | 8 | 16 | | [Inject] ICommonSettingsProvider CommonSettingsProvider { get; set; } = null!; |
| | | 17 | | |
| | 4 | 18 | | [Inject] NavigationManager NavManager { get; set; } = null!; |
| | | 19 | | |
| | 2 | 20 | | private readonly List<CultureData> Cultures = |
| | 2 | 21 | | [ |
| | 2 | 22 | | new() { Name = "Русский", Value = "ru-RU" }, |
| | 2 | 23 | | new() { Name = "English", Value = "en-US" } |
| | 2 | 24 | | ]; |
| | | 25 | | |
| | | 26 | | private async Task OnCultureChange(object value) |
| | | 27 | | { |
| | 1 | 28 | | var culture = value.ToString(); |
| | 1 | 29 | | if (culture != null && culture != CommonSettingsProvider.Current.Culture) |
| | | 30 | | { |
| | 1 | 31 | | CommonSettingsProvider.Current.Culture = culture; |
| | 1 | 32 | | await CommonSettingsProvider.SaveAsync(); |
| | | 33 | | |
| | | 34 | | // Перезагружаем страницу для применения новой культуры |
| | 1 | 35 | | NavManager.NavigateTo(NavManager.Uri, forceLoad: true); |
| | | 36 | | } |
| | 1 | 37 | | } |
| | | 38 | | |
| | | 39 | | public class CultureData |
| | | 40 | | { |
| | 26 | 41 | | public string Name { get; set; } = string.Empty; |
| | 31 | 42 | | public string Value { get; set; } = string.Empty; |
| | | 43 | | } |
| | | 44 | | } |