コード例 #1
0
        public static void InsertLocale(string from, string groupName, string name, string language, string value)
        {
            if (!LocaleSystem.ExistsGroup(from, groupName))
            {
                LocaleSystem.CreateGroup(from, groupName);
            }
            LocaleElement        newLe = new LocaleElement(name, language, value);
            bool                 done  = false;
            FileInfo             fi    = new FileInfo(LocaleSystem.GetDirectoryString(from) + groupName + ".tsv");
            List <LocaleElement> list  = LocaleSystem.GetAll(from, groupName);

            using (StreamWriter sw = new StreamWriter(fi.Open(FileMode.Truncate, FileAccess.Write, FileShare.Write)))
            {
                foreach (LocaleElement le in list)
                {
                    if (le.Name == name && le.Language == language)
                    {
                        done = true;
                    }
                    le.WriteToFile(sw);
                }
                if (!done)
                {
                    newLe.WriteToFile(sw);
                }
            }
        }
コード例 #2
0
 public static bool ExistsGroup(string from, string name)
 {
     if (LocaleSystem.ValidateGroupName(name))
     {
         FileInfo fi = new FileInfo(LocaleSystem.GetDirectoryString(from) + name + ".tsv");
         return(fi.Exists);
     }
     return(false);
 }
コード例 #3
0
 public static void DeleteGroup(string from, string name)
 {
     if (LocaleSystem.ValidateGroupName(name))
     {
         FileInfo fi = new FileInfo(LocaleSystem.GetDirectoryString(from) + name + ".tsv");
         if (fi.Exists)
         {
             fi.Delete();
         }
     }
 }
コード例 #4
0
 public static void CreateGroup(string from, string name)
 {
     if (LocaleSystem.ValidateGroupName(name))
     {
         DirectoryInfo dir = LocaleSystem.GetDirectory(from);
         if (!dir.Exists)
         {
             dir.Create();
         }
         FileInfo fi = new FileInfo(LocaleSystem.GetDirectoryString(from) + name + ".tsv");
         if (!fi.Exists)
         {
             fi.Create().Close();
         }
     }
 }
コード例 #5
0
 public static void RemoveLocale(string from, string groupName, string name)
 {
     if (LocaleSystem.ExistsGroup(from, groupName))
     {
         FileInfo             fi   = new FileInfo(LocaleSystem.GetDirectoryString(from) + groupName + ".tsv");
         List <LocaleElement> list = LocaleSystem.GetAll(from, groupName);
         using (StreamWriter sw = new StreamWriter(fi.Open(FileMode.Truncate, FileAccess.Write, FileShare.Write)))
         {
             foreach (LocaleElement le in list)
             {
                 if (!(le.Name == name))
                 {
                     le.WriteToFile(sw);
                 }
             }
         }
     }
 }
コード例 #6
0
        public static List <LocaleElement> GetAll(string from, string groupName)
        {
            List <LocaleElement> list = new List <LocaleElement>();

            if (LocaleSystem.ExistsGroup(from, groupName))
            {
                FileInfo fi = new FileInfo(LocaleSystem.GetDirectoryString(from) + groupName + ".tsv");
                using (StreamReader sr = new StreamReader(fi.Open(FileMode.Open, FileAccess.Read, FileShare.Read)))
                {
                    int next = 0;
                    while (!sr.EndOfStream)
                    {
                        LocaleElement le = LocaleElement.Parse(sr, ref next);
                        list.Add(le);
                    }
                }
            }
            return(list);
        }
コード例 #7
0
 public static LocaleElement GetLocale(string from, string groupName, string name, string language)
 {
     if (LocaleSystem.ExistsGroup(from, groupName))
     {
         FileInfo fi = new FileInfo(LocaleSystem.GetDirectoryString(from) + groupName + ".tsv");
         using (StreamReader sr = new StreamReader(fi.Open(FileMode.Open, FileAccess.Read, FileShare.Read)))
         {
             int next = 0;
             while (!sr.EndOfStream)
             {
                 LocaleElement le = LocaleElement.Parse(sr, ref next);
                 if (le.Name == name && le.Language == language)
                 {
                     return(le);
                 }
             }
         }
     }
     return(null);
 }
コード例 #8
0
 private static DirectoryInfo GetDirectory(string dir)
 {
     return(new DirectoryInfo(LocaleSystem.GetDirectoryString(dir)));
 }