private ToolStripMenuItem CreateMenuItem(MenuTypes menuType, LngKeys lngKey, bool enabled) { ToolStripMenuItem menuItem = new ToolStripMenuItem(LngText(lngKey)) { Enabled = enabled, Tag = menuType, Checked = false, }; menuItem.Click += Menu_Click; _menuItemList.Add(menuItem); return(menuItem); }
/// <summary> /// Get a list of all language keys /// </summary> /// <returns></returns> //public List<string> GetLanguageKeys() //{ // return (from l in LanguageList orderby l.Key select $"{l.Key} {l.DisplayName}").ToList(); //} public string GetText(LngKeys textKey) { if (CurrentLanguage == null) { SetDefaultLanguage(); } string keyStr = textKey.ToString(); // get text from current language if (CurrentLanguage.Items.ContainsKey(textKey)) { return((from l in CurrentLanguage.Items where l.Key == textKey select l.Value).FirstOrDefault()); } // get text from default language if (DefaultLanguage.Items.ContainsKey(textKey)) { return((from l in DefaultLanguage.Items where l.Key == textKey select l.Value).FirstOrDefault()); } // get language text key return(keyStr); }
public Language LoadLanguage(string filename) { const char REPLACE_CHAR = '\x01'; try { Language language = new Language(); string[] lines; try { lines = File.ReadAllLines(filename); } catch (Exception ex) { Logging.Instance.Error(TAG, nameof(LoadLanguage), $"Error loading {filename}", ex); return(null); } for (int i = 0; i < lines.Length; i++) { string line = lines[i]; if (string.IsNullOrWhiteSpace(line)) { // empty line continue; } line = line.Trim(); if (line[0] == ';') { // comment line continue; } line = ReplaceQuotedBlanks(line, REPLACE_CHAR); string[] words = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (words.Length < 2) { Logging.Instance.Error(TAG, nameof(LoadLanguage), $"File {filename}: error in line #{line} ({line})"); return(null); } string cmd = words[0].ToLower(); string prm = words[1].Replace(REPLACE_CHAR, ' '); switch (words[0].ToLower()) { case "key": language.Key = prm.ToLower(); break; case "version": if (prm != "1") { Logging.Instance.Error(TAG, nameof(LoadLanguage), $"File {filename}: Version {prm} not supported"); return(null); } language.Version = prm; break; case "name": language.DisplayName = prm; break; case "text": if (words.Length < 3) { Logging.Instance.Error(TAG, nameof(LoadLanguage), $"File {filename}: error in line #{line} ({line})"); } LngKeys lngKey = Language.StringToLngKey(prm); if (lngKey == LngKeys.Invalid) { Logging.Instance.Error(TAG, nameof(LoadLanguage), $"File {filename}: invalid key {prm} in line #{line}"); } string text = words[2].Replace(REPLACE_CHAR, ' '); language.Items.Add(lngKey, text); break; } } if (string.IsNullOrWhiteSpace(language.Key)) { Logging.Instance.Error(TAG, nameof(LoadLanguage), $"File {filename}: missing key"); return(null); } if (string.IsNullOrWhiteSpace(language.DisplayName)) { Logging.Instance.Error(TAG, nameof(LoadLanguage), $"File {filename}: missing name"); return(null); } if (language.Items.Count == 0) { Logging.Instance.Error(TAG, nameof(LoadLanguage), $"File {filename}: not text items"); return(null); } return(language); } catch (Exception ex) { Logging.Instance.Error(TAG, "LoadLanguage", $"language file {filename} not found", ex); return(null); } }
private string LngText(LngKeys key) { return(LanguageManager.Instance.GetText(key)); }
public MenuItemTag(MainStripMenu.MenuTypes menuType, LngKeys lngKey) { MenuType = menuType; LngKey = lngKey; }