/// <summary> /// Returns a Language String (if available in the passed Language) /// </summary> /// <param name="l">the Language</param> /// <returns>List of Strings</returns> public StrToken FallbackedLanguageItem(Data.MetaData.Languages l, int index) { StrItemList list = this.LanguageItems(l); StrToken name; if (list.Length > index) { name = list[index]; } else { name = new StrToken(0, 0, "", ""); } if (name.Title.Trim() == "") { list = this.LanguageItems(1); if (list.Length > index) { name = list[index]; } } return(name); }
/// <summary> /// Returns all Language-specific Strings /// </summary> /// <param name="l">the Language</param> /// <returns>List of Strings</returns> public StrItemList LanguageItems(Data.MetaData.Languages l) { StrItemList items = (StrItemList)lines[(byte)l]; if (items == null) { items = new StrItemList(); } return(items); }
/// <summary> /// Returns all Langugae specific Strings, if the String is not included in the passed /// Language the Fallback String (use en) will be returned /// </summary> /// <param name="l">the Language</param> /// <returns>List of Strings</returns> public StrItemList FallbackedLanguageItems(Data.MetaData.Languages l) { if (l == Data.MetaData.Languages.English) { return(this.LanguageItems(l)); } StrItemList real = (StrItemList)LanguageItems(l).Clone(); StrItemList fallback = null; if (this.Languages.Contains(Data.MetaData.Languages.English)) { fallback = LanguageItems(Data.MetaData.Languages.English); } else if (this.Languages.Count == 1) { fallback = LanguageItems(Languages[0]); } else { fallback = LanguageItems(Data.MetaData.Languages.English); } for (int i = 0; i < fallback.Length; i++) { if (real.Length <= i) { real.Add(fallback[i]); } else if ((real[i] == null) || (real[i].Title.Trim() == "")) { real[i] = fallback[i]; } } return(real); }