public void Handle(LanguageChangedEvent message) { // hack that copies the already existing playlist and reassigns it to the collection in order to completely notify all elements // in the bound view for pulling the information again // this is required because the currently used ResxExtension is removing the binding to TreeView controls for some reason // and then updates the TreeView with invalid/empty data Playlists = new ObservableCollection <PlaylistViewModel>(Playlists); }
/// <summary> /// Loads the laguage of the given language code if availible. /// Language codes adhere to the ISO 639-1 standard for language codes. /// </summary> /// <param name="languageCode">The code of the language in compliance with ISO 639-1</param> public void LoadLanguage(string languageCode) { if (_AvailibleLanguages.Contains(languageCode)) { _CurrentLanguage = XML_to_Class.LoadClassFromXML <LanguageContainer>("\\StreamingAssets\\Languages\\" + languageCode + ".xml"); LanguageLoaded = languageCode; if (LanguageChangedEvent != null) //could be nothing is registered { LanguageChangedEvent.Invoke(); } } else { Debug.LogWarning("LanguageController | LoadLanguage | Attempted to load a language that is not available."); } }
/// <summary> /// Dynamically load a Localization ResourceDictionary from a file /// </summary> public void SwitchLanguage(string inFiveCharLang) { CultureInfo ci; if (CultureInfo.CurrentCulture.Name.Equals(inFiveCharLang) && CultureInfo.CurrentUICulture.Name.Equals(inFiveCharLang)) { return; } if (inFiveCharLang == "Auto" || inFiveCharLang == null) { ci = CultureInfo.InstalledUICulture; } else { ci = new CultureInfo(inFiveCharLang); } Thread.CurrentThread.CurrentCulture = ci; Thread.CurrentThread.CurrentUICulture = ci; SetLanguageResourceDictionary(GetLocXAMLFilePath(inFiveCharLang)); LanguageChangedEvent?.Invoke(this, new EventArgs()); }
protected virtual void OnLanguageChangedEvent(string newCulture) { LanguageChangedEvent?.Invoke(this, new LocalizationEventArgs(newCulture)); Config.Instance.LocaleToUse = newCulture; Config.Instance.SaveConfig(); }
public void FireLanguageChangedEvent() { LanguageChangedEvent?.Invoke(this, new EventArgs()); }