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); }
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(); }
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); }
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; } } }
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; }