12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using System.Collections.Generic;
- namespace I2.Loc
- {
- public partial class LanguageSourceData
- {
- public static string EmptyCategory = "Default";
- public static char[] CategorySeparators = "/\\".ToCharArray();
- #region Keys
-
- public List<string> GetCategories( bool OnlyMainCategory = false, List<string> Categories = null )
- {
- if (Categories==null)
- Categories = new List<string>();
-
- foreach (TermData data in mTerms)
- {
- string sCategory = GetCategoryFromFullTerm( data.Term, OnlyMainCategory );
- if (!Categories.Contains(sCategory))
- Categories.Add(sCategory);
- }
- Categories.Sort();
- return Categories;
- }
-
- public static string GetKeyFromFullTerm( string FullTerm, bool OnlyMainCategory = false )
- {
- int Index = (OnlyMainCategory ? FullTerm.IndexOfAny(CategorySeparators) :
- FullTerm.LastIndexOfAny(CategorySeparators));
- return (Index<0 ? FullTerm :FullTerm.Substring(Index+1));
- }
-
- public static string GetCategoryFromFullTerm( string FullTerm, bool OnlyMainCategory = false )
- {
- int Index = (OnlyMainCategory ? FullTerm.IndexOfAny(CategorySeparators) :
- FullTerm.LastIndexOfAny(CategorySeparators));
- return (Index<0 ? EmptyCategory : FullTerm.Substring(0, Index));
- }
-
- public static void DeserializeFullTerm( string FullTerm, out string Key, out string Category, bool OnlyMainCategory = false )
- {
- int Index = (OnlyMainCategory ? FullTerm.IndexOfAny(CategorySeparators) :
- FullTerm.LastIndexOfAny(CategorySeparators));
- if (Index<0)
- {
- Category = EmptyCategory;
- Key = FullTerm;
- }
- else
- {
- Category = FullTerm.Substring(0, Index);
- Key = FullTerm.Substring(Index+1);
- }
- }
- #endregion
-
- #region Misc
-
- #endregion
- }
- }
|