コード例 #1
0
        public static ParsedTerm GetParsedTerm(string Term)
        {
            ParsedTerm data;

            if (!mParsedTerms.TryGetValue(Term, out data))
            {
                data       = new ParsedTerm();
                data.Usage = 0;
                LanguageSource.DeserializeFullTerm(Term, out data.Term, out data.Category);
                mParsedCategories[data.Category] = 1;
                mParsedTerms[Term] = data;
            }
            return(data);
        }
コード例 #2
0
        void OnGUI_CategorizedTerm(string Term)
        {
            GUILayout.BeginHorizontal();
            string sKey, sCategory;

            LanguageSource.DeserializeFullTerm(Term, out sKey, out sCategory);
            if (!string.IsNullOrEmpty(sCategory))
            {
                GUI.color = Color.gray;
                GUILayout.Label(sCategory + "/");
                GUI.color = Color.white;
            }
            GUILayout.Label(sKey);
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }
コード例 #3
0
        static ParsedTerm AddParsedTerm(string FullTerm, string TermKey, string Category, int Usage)
        {
            if (TermKey == null)
            {
                LanguageSource.DeserializeFullTerm(FullTerm, out TermKey, out Category);
            }

            var data = new ParsedTerm();

            data.Usage    = Usage;
            data.FullTerm = FullTerm;
            data.Term     = TermKey;
            data.Category = Category;

            mParsedTerms[FullTerm] = data;
            return(data);
        }
コード例 #4
0
        public static void RemoveParsedTerm(string Term)
        {
            mParsedTerms.Remove(Term);
            string category, key;

            LanguageSource.DeserializeFullTerm(Term, out key, out category);

            int usage;

            if (mParsedCategories.TryGetValue(category, out usage))
            {
                if (usage <= 1)
                {
                    mParsedCategories.Remove(category);
                }
                else
                {
                    mParsedCategories[category] = usage - 1;
                }
            }
        }
コード例 #5
0
        void AssignCategoryToSelectedTerms()
        {
            mIsParsing = true;

            EditorApplication.update -= AssignCategoryToSelectedTerms;

            mNewCategory = mNewCategory.Trim(LanguageSource.CategorySeparators);

            if (mNewCategory == LanguageSource.EmptyCategory)
            {
                mNewCategory = string.Empty;
            }

            TermReplacements = new Dictionary <string, string>();
            for (int i = mSelectedKeys.Count - 1; i >= 0; --i)
            {
                string sKey, sCategory;
                string OldTerm = mSelectedKeys[i];

                LanguageSource.DeserializeFullTerm(OldTerm, out sKey, out sCategory);
                if (!string.IsNullOrEmpty(mNewCategory))
                {
                    sKey = string.Concat(mNewCategory, "/", sKey);
                }

                if (OldTerm == sKey)
                {
                    continue;
                }

                TermReplacements[OldTerm] = sKey;
                if (!mLanguageSource.ContainsTerm(sKey))
                {
                    TermData termData = mLanguageSource.GetTermData(OldTerm);
                    if (termData != null)
                    {
                        termData.Term = sKey;
                    }
                    else
                    {
                        TermReplacements.Remove(OldTerm);
                    }
                }
            }
            if (TermReplacements.Count <= 0)
            {
                ShowError("Unable to assign category: Terms were not found in the selected LanguageSource");
            }
            else
            {
                mLanguageSource.UpdateDictionary(true);
                ExecuteActionOnSelectedScenes(ReplaceTermsInCurrentScene);
                ParseTerms(true);

                if (string.IsNullOrEmpty(mNewCategory))
                {
                    mNewCategory = LanguageSource.EmptyCategory;
                }
                if (!mSelectedCategories.Contains(mNewCategory))
                {
                    mSelectedCategories.Add(mNewCategory);
                }
                //RemoveUnusedCategoriesFromSelected();
                ScheduleUpdateTermsToShowInList();
            }
            TermReplacements = null;
            mIsParsing       = false;
        }