3using System.Collections.ObjectModel;
4using System.Globalization;
7using System.Threading.Tasks;
8using CommunityToolkit.Mvvm.ComponentModel;
9using CommunityToolkit.Mvvm.Input;
10using CommunityToolkit.Mvvm.Messaging;
11using Microsoft.Maui.Storage;
21 public ObservableCollection<ObservableLanguage> Languages {
get; }
24 private string? selectedLanguageName;
30 this.Languages =
new ObservableCollection<ObservableLanguage>(
34 IsSelected = l.Name == this.SelectedLanguageName
43 if(this.SelectedLanguageName is not
null)
44 WeakReferenceMessenger.Default.Send(
new ScrollToLanguageMessage(this.SelectedLanguageName));
46 return base.OnAppearingAsync();
49 [RelayCommand(AllowConcurrentExecutions =
false)]
50 public async Task SelectLanguageAsync(
string languageName)
53 LanguageInfo? SelectedLanguage = this.Languages.FirstOrDefault(l => l.Language.Name == languageName)?.Language;
54 if (SelectedLanguage is
null)
60 bool IsSelected = Observable.Language.Name == languageName;
61 if (Observable.IsSelected != IsSelected)
62 Observable.IsSelected = IsSelected;
66 this.SelectedLanguageName = SelectedLanguage.Name;
69 if (SelectedLanguage.Name != CultureInfo.CurrentCulture.Name)
71 Preferences.Set(
"user_selected_language", SelectedLanguage.TwoLetterISOLanguageName);
72 LocalizationManager.Current.CurrentCulture = SelectedLanguage;
Represents an instance of the Neuro-Access app.
static LanguageInfo SelectedLanguage
Gets the selected language.
static readonly LanguageInfo[] SupportedLanguages
Supported languages.
A strongly-typed resource class, for looking up localized strings, etc.
static string LanguageChangedMessage
Looks up a localized string similar to Please restart the app to ensure all text changes language pro...
static string Ok
Looks up a localized string similar to OK.
static string LanguageChangedTitle
Looks up a localized string similar to Language changed.
Base class that references services in the app.
static IUiService UiService
Service serializing and managing UI-related tasks.
static IPopupService PopupService
Popup service for presenting application popups.
static IReportingStringLocalizer Localizer
Localization service