Пример #1
0
        public string GetString(string resource)
        {
            var culture = CultureInfo.CurrentUICulture.IetfLanguageTag;

#if __WASM__
            if (!culture.HasValue())
            {
                // This may happend in WASM (mono does not set it properly yet)
                culture = DefaultLanguage;
            }
#endif

            if (FindForCulture(culture, resource, out var value))
            {
                return(value);
            }
            else if (FindForCulture(CultureInfo.CurrentUICulture.Parent.IetfLanguageTag, resource, out var parentValue))
            {
                return(parentValue);
            }

            if (GetStringInternal == null)
            {
                throw new InvalidOperationException($"ResourceLoader.GetStringInternal hasn't been set. Make sure ResourceHelper is initialized properly.");
            }

            return(GetStringInternal.Invoke(resource));
        }
Пример #2
0
		public string GetString(string resource)
		{
			// First make sure that resource cache matches the current culture
			var cultures = EnsureLoadersCultures();

			// Walk the culture hierarchy and the default
			foreach (var culture in cultures)
			{
				if (FindForCulture(culture, resource, out var value))
				{
					return value;
				}
			}

			// Finally try to fallback on the native localization system
#if !__WASM__ && !NET461
			if (GetStringInternal == null)
			{
				throw new InvalidOperationException($"ResourceLoader.GetStringInternal hasn't been set. Make sure ResourceHelper is initialized properly.");
			}

			return GetStringInternal.Invoke(resource);
#else
			return string.Empty;
#endif
		}
Пример #3
0
        public string GetString(string resource)
        {
            if (GetStringInternal == null)
            {
                throw new InvalidOperationException($"ResourceLoader.GetStringInternal hasn't been set. Make sure ResourceHelper is initialized properly.");
            }

            return(GetStringInternal.Invoke(resource));
        }
Пример #4
0
        public string GetString(string resource)
        {
            // "/[file]/[name]" format support
            if (resource.ElementAtOrDefault(0) == '/')
            {
                var separatorIndex = resource.IndexOf("/", 1);
                if (separatorIndex < 1)
                {
                    return("");
                }
                var resourceFile = resource.Substring(1, separatorIndex - 1);
                var resourceName = resource.Substring(separatorIndex + 1);
                return(GetForCurrentView(resourceFile).GetString(resourceName));
            }

            // First make sure that resource cache matches the current culture
            var cultures = EnsureLoadersCultures();

            // Walk the culture hierarchy and the default
            foreach (var culture in cultures)
            {
                if (FindForCulture(culture, resource, out var value))
                {
                    return(value);
                }
            }

            // Finally try to fallback on the native localization system
#if !UNO_REFERENCE_API && !NET461
            if (GetStringInternal == null)
            {
                throw new InvalidOperationException($"ResourceLoader.GetStringInternal hasn't been set. Make sure ResourceHelper is initialized properly.");
            }

            return(GetStringInternal.Invoke(resource));
#else
            return(string.Empty);
#endif
        }
Пример #5
0
        public string GetString(string resource)
        {
            string culture = GetUICulture();

            if (FindForCulture(culture, resource, out var value))
            {
                return(value);
            }
            else if (FindForCulture(GetParentUICulture(), resource, out var parentValue))
            {
                return(parentValue);
            }

#if !__WASM__ && !NET46
            if (GetStringInternal == null)
            {
                throw new InvalidOperationException($"ResourceLoader.GetStringInternal hasn't been set. Make sure ResourceHelper is initialized properly.");
            }

            return(GetStringInternal.Invoke(resource));
#else
            return("[" + resource + "]");
#endif
        }