public LocalizedTextCacheEntry GetTextEntry(string ns, string key, LanguageInfo language, bool considerLanguageFallbacks, bool considerNamespaceFallbacks = true) { EnsureLoaded(); var entry = GetTextEntryInternal(ns, key, language, considerLanguageFallbacks); if (entry == null && FallbackNamespaces != null && considerNamespaceFallbacks) { foreach (var fallbackNs in FallbackNamespaces.Reverse()) { if ((entry = GetTextEntryInternal(fallbackNs, key, language, considerLanguageFallbacks)) != null) { break; } } } return(entry); }
public DefaultTextManager() : base() { CurrentLanguage = () => { LanguageInfo languageInfo; var culture = CultureInfo.CurrentUICulture; if (!_languageInfoCache.TryGetValue(culture, out languageInfo)) { _languageInfoCache.Add(culture, languageInfo = (LanguageInfo)culture); } return(languageInfo); }; CurrentTimeZone = () => TimeZoneInfo.Local; TrackCallingAssembly = true; //Build-in texts FallbackNamespaces.Add(GetNamespace <DefaultTextManager>()); //Empty namespace FallbackNamespaces.Add(""); // This is used to match texts that all languages should fall back to FallbackLanguages = new List <LanguageInfo> { new LanguageInfo { Key = "*" } }; NamespaceTextResolver = (asm, ns) => { return(AssemblySourceLoader.GetTextSource(asm, this, ns)); }; }