public void LoadFile(string path, bool locked)
        {
            string fileText = System.IO.File.ReadAllText(path);

            LocalizationFileClass fileClass = new LocalizationFileClass { FilePathName = path, Locked = locked };

            List<KeyValue> keys = KVParser.Parse(fileText);

            parseTokens(ref fileClass, keys[0]);

            Files.Add(fileClass);
        }
 public void LocalizateHeroes(ref LocalizationFileClass locFile)
 {
     foreach (var hero in Heroes)
     {
         if (!locFile.LocalizationKeys.HasKeyInChildren(hero.Name))
         {
             locFile.LocalizationKeys.Children.Add(new KeyValue()
             {
                 Key = hero.Name,
                 Value = "",
                 Parent = locFile.LocalizationKeys,
                 Type = KvType.KeyValue,
             });
         }
     }
 }
        private void localizateAbilitiesAuras(ref LocalizationFileClass locFile, AbilityClass abil)
        {
            var modeferValues = abil.AbilityValues.FindChildren("Modifiers");
            if (modeferValues == null)
                return;
            if (modeferValues.Children == null)
                return;

            foreach (var modKv in modeferValues.Children.Where(modKv => isAura(modKv)))
            {
                locFile.LocalizationKeys.Children.Add(new KeyValue()
                { // аура
                    Key = "DOTA_Tooltip_ability_" + modKv.Key,
                    Parent = locFile.LocalizationKeys,
                    Type = KvType.KeyValue,
                    Value = "",
                });
            }
        }
        private void localizateAbilitiesSpecials(ref LocalizationFileClass locFile, AbilityClass abil)
        {
            var specialValues = abil.AbilityValues.FindChildren("AbilitySpecial");
            if (specialValues == null)
                return;
            if (specialValues.Children == null)
                return;

            foreach (var kv in specialValues.Children)
            {
                foreach (var kvVar in kv.Children.Where(kvVar => kvVar.Key != "var_type"))
                {
                    locFile.LocalizationKeys.Children.Add(new KeyValue()
                    { // доп переменные
                        Key = "DOTA_Tooltip_ability_" + abil.Name + "_" + kvVar.Key,
                        Parent = locFile.LocalizationKeys,
                        Type = KvType.KeyValue,
                        Value = "",
                    });
                }
            }
        }
        public void LocalizateAbilities(ref LocalizationFileClass locFile)
        {
            foreach (var abil in Abilities)
            {
                locFile.LocalizationKeys.Children.Add(new KeyValue()
                { // Имя способности
                    Key = "DOTA_Tooltip_ability_" + abil.Name,
                    Parent = locFile.LocalizationKeys,
                    Type = KvType.KeyValue,
                    Value = "",
                });

                locFile.LocalizationKeys.Children.Add(new KeyValue()
                { // описание способности
                    Key = "DOTA_Tooltip_ability_" + abil.Name + "_Description",
                    Parent = locFile.LocalizationKeys,
                    Type = KvType.KeyValue,
                    Value = "",
                });

                localizateAbilitiesSpecials(ref locFile, abil);
                localizateAbilitiesAuras(ref locFile, abil);
            }
        }
 private void parseTokens(ref LocalizationFileClass fileClass, KeyValue key)
 {
     fileClass.Language = key.Children[0].Value;
     fileClass.Keys = key;
     fileClass.LocalizationKeys = key.Children[1];
 }