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