Пример #1
0
        public static bool TryGetErrorResource(ErrorResourceKey resourceKey, out ErrorResource resourceValue, string locale = null)
        {
            Contracts.CheckValue(resourceKey.Key, "action");
            Contracts.CheckValueOrNull(locale, "locale");

            if (locale == null)
            {
                locale = CurrentLocaleInfo.CurrentUILanguageName;
                Contracts.CheckNonEmpty(locale, "currentLocale");
            }

            Dictionary <string, ErrorResource> errorResources;

            if (!ErrorResources.TryGetValue(locale, out errorResources))
            {
                lock (dictionaryLock)
                {
                    Dictionary <string, string> strings;
                    LoadFromResource(locale, ResourceNamePrefix, typeof(TypeFromThisAssembly), ResourceFileName, ResourceFormat.Resw, out strings, out errorResources);
                    Strings[locale]        = strings;
                    ErrorResources[locale] = errorResources;
                }
            }

            return(errorResources.TryGetValue(resourceKey.Key, out resourceValue) || (ExternalStringResources?.TryGetErrorResource(resourceKey, out resourceValue, locale) ?? false));
        }
Пример #2
0
        public static ErrorResource GetErrorResource(ErrorResourceKey resourceKey, string locale = null)
        {
            Contracts.CheckValue(resourceKey.Key, "action");
            Contracts.CheckValueOrNull(locale, "locale");

            ErrorResource resourceValue;

            // As foreign languages can lag behind en-US while being localized, if we can't find it then always look in the en-US locale
            if (!TryGetErrorResource(resourceKey, out resourceValue, locale) && !TryGetErrorResource(resourceKey, out resourceValue, FallbackLocale))
            {
                Debug.WriteLine(string.Format("ERROR error resource {0} not found", resourceKey));
                if (ShouldThrowIfMissing)
                {
                    throw new System.IO.FileNotFoundException(resourceKey.Key);
                }
            }

            return(resourceValue);
        }
Пример #3
0
 public static string Get(ErrorResourceKey resourceKey, string locale = null)
 {
     return(Get(resourceKey.Key, locale));
 }