/// <summary> /// Returns a language, specified by a two letter code (en, el, it, fr, etc), if registered, else null. /// </summary> static public LanguageItem Find(string TwoLetterLanguageCode) { lock (syncLock) { LanguageItem Item = fItems.FirstOrDefault(item => string.Compare(item.Code, TwoLetterLanguageCode, StringComparison.InvariantCultureIgnoreCase) == 0); return(Item); } }
/// <summary> /// Registers a language /// </summary> static public void Add(LanguageItem Item) { lock (syncLock) { if (!Contains(Item.Code)) { fItems.Add(Item); } } }
/// <summary> /// Returns a language, specified by a two letter code (en, el, it, fr, etc), if registered, else throws an exception. /// </summary> static public LanguageItem Get(string TwoLetterLanguageCode) { lock (syncLock) { LanguageItem Item = Find(TwoLetterLanguageCode); if (Item == null) { throw new ApplicationException($"Language not registered: {TwoLetterLanguageCode}"); } return(Item); } }
/// <summary> /// Returns a language, specified by a two letter code (en, el, it, fr, etc), if registered, else returns the default language (en). /// </summary> static public LanguageItem FindOrDefault(string TwoLetterLanguageCode) { lock (syncLock) { LanguageItem Item = Find(TwoLetterLanguageCode); if (Item == null) { Item = DefaultLanguage; } return(Item); } }
void LoadLanguages() { var En = new LanguageItem() { Id = "", Name = "English", Code = "en", CultureCode = "en-US" }; var Gr = new LanguageItem() { Id = "", Name = "Greek", Code = "el", CultureCode = "el-GR" }; Languages.Add(En); Languages.Add(Gr); }