public static string ValidateLanguageCode(string languageCode) { return(AllLanguages.Contains(languageCode) ? languageCode : FallbackLanguages.ContainsKey(languageCode) ? FallbackLanguages[languageCode] : LanguageCodes.DefaultLanguage); }
private LocalizedTextCacheEntry GetTextEntryInternal(string ns, string key, LanguageInfo language, bool considerLanguageFallbacks) { if (_textCache != null) { Dictionary <string, Dictionary <string, LocalizedTextCacheEntry> > keys; if (_textCache.TryGetValue(ns, out keys)) { Dictionary <string, LocalizedTextCacheEntry> translations; if (keys.TryGetValue(key, out translations)) { LocalizedTextCacheEntry text; if (translations.TryGetValue(language.Key, out text)) { EnsureEvaluator(text); return(text); } } } } if (PrepareTextSources(ns)) { return(GetTextEntry(ns, key, language, considerLanguageFallbacks)); } if (considerLanguageFallbacks) { var fallbacks = new List <LanguageInfo>(); if (language.Fallbacks != null) { fallbacks.AddRange(language.Fallbacks); } if (FallbackLanguages != null) { fallbacks.AddRange(FallbackLanguages.Reverse()); } LocalizedTextCacheEntry text = null; if (fallbacks.Any(x => (text = GetTextEntry(ns, key, x, false, false)) != null)) { return(text); } } return(null); }