Exemple #1
0
        void Import_Language_from_Cache(int langIndex, string langData, bool useFallback, bool onlyCurrentSpecialization)
        {
            int iTerm = 0;
            int index = 0;

            while (index < langData.Length)
            {
                var termData = mTerms[iTerm];
                iTerm++;

                int nextIndex = langData.IndexOf("[i2t]", index);
                if (nextIndex < 0)
                {
                    nextIndex = langData.Length;
                }

                string translation = null;

                if (index != nextIndex)
                {
                    translation = langData.Substring(index, nextIndex - index);
                    if (translation.StartsWith("[i2fb]"))
                    {
                        translation = (useFallback) ? translation.Substring(6) : null;
                    }
                    if (onlyCurrentSpecialization && translation != null)
                    {
                        translation = SpecializationManager.GetSpecializedText(translation, null);
                    }
                }
                termData.Languages[langIndex] = translation;
                index = nextIndex + 5;
            }
        }
Exemple #2
0
        public List <string> GetAllSpecializations()
        {
            List <string> values = new List <string>();

            for (int i = 0; i < Languages.Length; ++i)
            {
                SpecializationManager.AppendSpecializations(Languages[i], values);
            }
            return(values);
        }
Exemple #3
0
        [SerializeField] private string[] Languages_Touch = null;      // TO BE REMOVED IN A FUTURE RELEASE

        public string GetTranslation(int idx, string specialization = null)
        {
            string text = Languages[idx];

            if (text != null)
            {
                text = SpecializationManager.GetSpecializedText(text, specialization);
                text = text.Replace("[i2nt]", "").Replace("[/i2nt]", "");
            }
            return(text);
        }
Exemple #4
0
        public void RemoveSpecialization(int idx, string specialization)
        {
            var text = Languages[idx];

            if (specialization == "Any" || !text.Contains("[i2s_" + specialization + "]"))
            {
                return;
            }

            var dict = SpecializationManager.GetSpecializations(text);

            dict.Remove(specialization);
            Languages[idx] = SpecializationManager.SetSpecializedText(dict);
        }
        public static void CreateQueries(string text, string LanguageCodeFrom, string LanguageCodeTo, TranslationDictionary dict)
        {
            if (!text.Contains("[i2s_"))
            {
                CreateQueries_Plurals(text, LanguageCodeFrom, LanguageCodeTo, dict);
                return;
            }

            var variants = SpecializationManager.GetSpecializations(text);

            foreach (var kvp in variants)
            {
                CreateQueries_Plurals(kvp.Value, LanguageCodeFrom, LanguageCodeTo, dict);
            }
        }
        public static string RebuildTranslation(string text, TranslationDictionary dict, string LanguageCodeTo)
        {
            if (!text.Contains("[i2s_"))
            {
                return(RebuildTranslation_Plural(text, dict, LanguageCodeTo));
            }

            var variants = SpecializationManager.GetSpecializations(text);
            var results  = new Dictionary <string, string>();

            foreach (var kvp in variants)
            {
                results[kvp.Key] = RebuildTranslation_Plural(kvp.Value, dict, LanguageCodeTo);
            }
            return(SpecializationManager.SetSpecializedText(results));
        }
        void Import_Language_from_Cache(int langIndex, string langData, bool useFallback, bool onlyCurrentSpecialization)
        {
            int index = 0;

            while (index < langData.Length)
            {
                int nextIndex = langData.IndexOf("[i2t]", index);
                if (nextIndex < 0)
                {
                    nextIndex = langData.Length;
                }

                // check for errors
                int termNameEnd = langData.IndexOf("=", index);
                if (termNameEnd >= nextIndex)
                {
                    return;
                }

                string termName = langData.Substring(index, termNameEnd - index);
                index = termNameEnd + 1;

                var termData = GetTermData(termName, false);
                if (termData != null)
                {
                    string translation = null;

                    if (index != nextIndex)
                    {
                        translation = langData.Substring(index, nextIndex - index);
                        if (translation.StartsWith("[i2fb]"))
                        {
                            translation = (useFallback) ? translation.Substring(6) : null;
                        }
                        if (onlyCurrentSpecialization && translation != null)
                        {
                            translation = SpecializationManager.GetSpecializedText(translation, null);
                        }
                    }
                    termData.Languages[langIndex] = translation;
                }
                index = nextIndex + 5;
            }
        }
Exemple #8
0
 public void SetTranslation(int idx, string translation, string specialization = null)
 {
     Languages[idx] = SpecializationManager.SetSpecializedText(Languages[idx], translation, specialization);
 }