private void UpdateAboutMenu() { var items = AboutItems.MenuItems; while (items[0] != aboutSeperatorItem) { items.RemoveAt(0); } Configuration config = controller.ConfigController.GetConfigurationCopy(); if (!string.IsNullOrEmpty(config.language)) { I18N.SetLang(config.language); } IList <I18N.Lang> langlist = I18N.GetLangList(); for (int i = 0; i < langlist.Count; i++) { I18N.Lang lang = langlist[i]; MenuItem item = new MenuItem(I18N.GetString(lang.fullname)); item.Tag = lang; item.Click += OnLanguageItemClick; if (lang == I18N.Current) { item.Checked = true; } items.Add(i, item); } }
private void OnLanguageItemClick(object sender, EventArgs e) { MenuItem item = (MenuItem)sender; I18N.Lang lang = (I18N.Lang)item.Tag; I18N.SetLang(lang.name); controller.ConfigController.SelectLanguage(lang); }
public void SelectLanguage(I18N.Lang lang) { if (_config.language != lang.name) { _config.language = lang.name; SaveConfig(_config); if (LanguageChanged != null) { LanguageChanged.Invoke(this, new EventArgs()); } } }
public void OnEnable() { var backupEvent = langDropdown.onValueChanged; langDropdown.onValueChanged = new TMP_Dropdown.DropdownEvent(); langDropdown.value = (int)I18N.lang; langDropdown.RefreshShownValue(); langDropdown.onValueChanged = backupEvent; silenceSlider.value = ConfigVar.ConfigVars["audio.silence"].FloatValue; prevLang = I18N.lang; }