Пример #1
0
        public ILocalizer GetLocalizer(IList <LocalizationPreference> preferences)
        {
            var localizer = new Localizer(this);

            for (int i = 0; i < preferences.Count; i++)
            {
                var tagsCopy = new LocalizationPreference[preferences.Count - i];
                preferences.CopyTo(tagsCopy, 0, 0, tagsCopy.Length);

                var sources = this.resources.Where(x => tagsCopy.AllMatch(x)).ToArray();
                localizer.AddSources(sources);
            }

            {
                var sources = this.resources.Where(x => x.Tags != null || x.Tags.Contains("Default")).ToArray();
                localizer.AddSources(sources);
            }

            {
                var sources = this.resources.Where(x => x.Tags == null || x.Tags.Length == 0).ToArray();
                localizer.AddSources(sources);
            }

            return(localizer);
        }
Пример #2
0
        /// <summary>
        /// Get the translation of a specified text on a certain language
        /// </summary>
        /// <param name="content">Text to translate</param>
        /// <param name="preference">How should the text be translated?</param>
        /// <returns></returns>
        public string Translate(LocalizationKeyword content, LocalizationPreference preference)
        {
            if (!alreadyInitialized)
            {
                InitializeSystems();
            }

            switch (preference)
            {
            case LocalizationPreference.DEFAULT:
                if (preferSystemLanguage)
                {
                    goto case LocalizationPreference.SYSTEM;
                }
                else
                {
                    return(CustomTranslate(content, defaultLanguage));
                }

            /*if (Languages.TryGetValue(defaultLanguage, out startingLanguageData))
             *  return startingLanguageData.CustomTranslate(request);
             * break;*/
            case LocalizationPreference.SYSTEM:
                return(CustomTranslate(content, systemLanguage));

            /*if (Languages.TryGetValue(systemLanguage, out startingLanguageData))
             *  return startingLanguageData.CustomTranslate(request);
             * break;*/
            case LocalizationPreference.CUSTOM:
                Debug.LogWarning("Translations using CUSTOM as a preference should use CustomTranslate instead. The default language will be used instead.");
                goto case LocalizationPreference.DEFAULT;

            default:
                Debug.LogWarning("Preference type \"" + preference.ToString() + "\" could not be found. The default language will be used instead.");
                goto case LocalizationPreference.DEFAULT;
            }
        }