mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	Merge pull request #5145 from IvanSavenko/spell_school_descr
Better spell school translation in bonuses
This commit is contained in:
		| @@ -607,11 +607,6 @@ | ||||
| 	 | ||||
| 	"mapObject.core.hillFort.object.description" : "Upgrades creatures. Levels 1 - 4 are less expensive than in associated town.", | ||||
| 	 | ||||
| 	"core.spellSchools.0": "Air", | ||||
| 	"core.spellSchools.1": "Fire", | ||||
| 	"core.spellSchools.2": "Water", | ||||
| 	"core.spellSchools.3": "Earth", | ||||
|  | ||||
| 	"core.bonus.ADDITIONAL_ATTACK.name": "Double Strike", | ||||
| 	"core.bonus.ADDITIONAL_ATTACK.description": "Attacks twice", | ||||
| 	"core.bonus.ADDITIONAL_RETALIATION.name": "Additional retaliations", | ||||
| @@ -734,8 +729,6 @@ | ||||
| 	"core.bonus.SPELL_AFTER_ATTACK.description": "Has a ${val}% chance to cast ${subtype.spell} after it attacks", | ||||
| 	"core.bonus.SPELL_BEFORE_ATTACK.name": "Cast Before Attack", | ||||
| 	"core.bonus.SPELL_BEFORE_ATTACK.description": "Has a ${val}% chance to cast ${subtype.spell} before it attacks", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Spell Resistance", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description": "Damage from spells reduced by ${val}%.", | ||||
| 	"core.bonus.SPELL_IMMUNITY.name": "Spell immunity", | ||||
| 	"core.bonus.SPELL_IMMUNITY.description": "Immune to ${subtype.spell}", | ||||
| 	"core.bonus.SPELL_LIKE_ATTACK.name": "Spell-like attack", | ||||
| @@ -768,10 +761,26 @@ | ||||
| 	"core.bonus.MECHANICAL.description": "Immunity to many effects, repairable", | ||||
| 	"core.bonus.PRISM_HEX_ATTACK_BREATH.name": "Prism Breath", | ||||
| 	"core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prism Breath Attack (three directions)", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Spell Resistance", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.air": "Air Spells Resistance", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.fire": "Fire Spells Resistance", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.water": "Water Spells Resistance", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.earth": "Earth Spells Resistance", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description": "Damage from all spells reduced by ${val}%.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.air": "Damage from all Air spells reduced by ${val}%.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.fire": "Damage from all Fire spells reduced by ${val}%.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.water": "Damage from all Water spells reduced by ${val}%.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.earth": "Damage from all Earth spells reduced by ${val}%.", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name": "Spell immunity", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "Immune to all spell schools", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.specific": "${subtype.spellSchool} immunity", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.specific": "Immune to ${subtype.spellSchool} school", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.air": "Air immunity", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire": "Fire immunity", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.water": "Water immunity", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth": "Earth immunity", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "This unit is immune to all spells", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.air": "This unit is immune to all Air school spells", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire": "This unit is immune to all Fire school spells", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.water": "This unit is immune to all Water school spells", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth": "This unit is immune to all Earth school spells", | ||||
| 	"core.bonus.OPENING_BATTLE_SPELL.name": "Starts with spell", | ||||
| 	"core.bonus.OPENING_BATTLE_SPELL.description": "Casts ${subtype.spell} on battle start" | ||||
| } | ||||
|   | ||||
| @@ -606,12 +606,7 @@ | ||||
| 	"core.seerhut.quest.reachDate.visit.5" : "Geschlossen bis %s.", | ||||
| 	 | ||||
| 	"mapObject.core.hillFort.object.description" : "Aufwertungen von Kreaturen. Die Stufen 1 - 4 sind billiger als in der zugehörigen Stadt.", | ||||
| 	 | ||||
| 	"core.spellSchools.0": "Luft", | ||||
| 	"core.spellSchools.1": "Feuer", | ||||
| 	"core.spellSchools.2": "Wasser", | ||||
| 	"core.spellSchools.3": "Erde", | ||||
| 	 | ||||
|  | ||||
| 	"core.bonus.ADDITIONAL_ATTACK.name": "Doppelschlag", | ||||
| 	"core.bonus.ADDITIONAL_ATTACK.description": "Greift zweimal an", | ||||
| 	"core.bonus.ADDITIONAL_RETALIATION.name": "Zusätzliche Vergeltungsmaßnahmen", | ||||
| @@ -734,8 +729,6 @@ | ||||
| 	"core.bonus.SPELL_AFTER_ATTACK.description": "${val}%, um ${subtype.spell} nach dem Angriff zu wirken", | ||||
| 	"core.bonus.SPELL_BEFORE_ATTACK.name": "Zauber vor Angriff", | ||||
| 	"core.bonus.SPELL_BEFORE_ATTACK.description": "${val}% um ${subtype.spell} vor dem Angriff zu wirken", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Zauberwiderstand", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description": "Schaden von Zaubern reduziert ${val}%.", | ||||
| 	"core.bonus.SPELL_IMMUNITY.name": "Zauberimmunität", | ||||
| 	"core.bonus.SPELL_IMMUNITY.description": "Immun gegen ${subtype.spell}", | ||||
| 	"core.bonus.SPELL_LIKE_ATTACK.name": "zauberähnlicher Angriff", | ||||
| @@ -770,8 +763,24 @@ | ||||
| 	"core.bonus.PRISM_HEX_ATTACK_BREATH.description": "Prisma-Atem-Angriff (drei Richtungen)", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name": "Zauber-Immunität", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "Immunität gegen alle Zauber-Schulen", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.specific": "${subtype.spellSchool}-Immunität", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.specific": "Immunität gegen Zauber der ${subtype.spellSchool}-Schule", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.air": "Luft-Immunität", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire": "Feuer-Immunität", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.water": "Wasser-Immunität", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth": "Erde-Immunität", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.air": "Immunität gegen Zauber der Luft-Schule", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire": "Immunität gegen Zauber der Feuer-Schule", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.water": "Immunität gegen Zauber der Wasser-Schule", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth": "Immunität gegen Zauber der Erde-Schule", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Zauberwiderstand", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.air": "Luft-Zauberwiderstand", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.fire": "Feuer-Zauberwiderstand", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.water": "Wasser-Zauberwiderstand", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.earth": "Erde-Zauberwiderstand", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description": "Schaden von allen Zaubern um ${val}% reduziert.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.air": "Schaden von Luft-Zaubern um ${val}% reduziert.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.fire": "Schaden von Feuer-Zaubern um ${val}% reduziert.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.water": "Schaden von Wasser-Zaubern um ${val}% reduziert.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.earth": "Schaden von Erde-Zaubern um ${val}% reduziert.", | ||||
| 	"core.bonus.OPENING_BATTLE_SPELL.name": "Startet mit Zauber", | ||||
| 	"core.bonus.OPENING_BATTLE_SPELL.description": "Wirkt ${subtype.spell} beim Start des Kampfes" | ||||
| } | ||||
|   | ||||
| @@ -722,8 +722,6 @@ | ||||
| 	"core.bonus.SPELL_AFTER_ATTACK.description" : "Застосовує ${subtype.spell} з вірогідністю ${val}% після атаки", | ||||
| 	"core.bonus.SPELL_BEFORE_ATTACK.name" : "закляття перед атакою", | ||||
| 	"core.bonus.SPELL_BEFORE_ATTACK.description" : "Застосовує ${subtype.spell} з вірогідністю ${val}% перед атакою", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name" : "Стійкість до заклять", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description" : "Шкода від заклять зменшується на ${val}%.", | ||||
| 	"core.bonus.SPELL_IMMUNITY.name" : "Імунітет до заклять", | ||||
| 	"core.bonus.SPELL_IMMUNITY.description" : "Імунітет до ${subtype.spell}", | ||||
| 	"core.bonus.SPELL_LIKE_ATTACK.name" : "Атака, схожа на закляття", | ||||
| @@ -762,6 +760,26 @@ | ||||
| 	"core.bonus.MECHANICAL.name" : "Механічний", | ||||
| 	"core.bonus.PRISM_HEX_ATTACK_BREATH.description" : "Атака подихом у трьох напрямах", | ||||
| 	"core.bonus.PRISM_HEX_ATTACK_BREATH.name" : "Призматична атака", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name": "Стійкість до заклять", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.air": "Стійкість до Повітря", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.fire": "Стійкість до Вогню", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.water": "Стійкість до Води", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.name.earth": "Стійкість до Землі", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description": "Шкода від усіх заклять зменшується на ${val}%.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.air": "Шкода від усіх заклять школи Повітря зменшується на ${val}%.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.fire": "Шкода від усіх заклять школи Вогню зменшується на ${val}%.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.water": "Шкода від усіх заклять школи Води зменшується на ${val}%.", | ||||
| 	"core.bonus.SPELL_DAMAGE_REDUCTION.description.earth": "Шкода від усіх заклять школи Землі зменшується на ${val}%.", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name": "Імунітет до усіх заклять", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.air": "Імунітет до Повітря", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.fire": "Імунітет до Вогню", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.water": "Імунітет до Води", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.name.earth": "Імунітет до Землі", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description": "На цей загін не діють жодні заклинання", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.air": "На цей загін не діють жодні закляття школи Повітря", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.fire": "На цей загін не діють жодні закляття школи Вогню", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.water": "На цей загін не діють жодні закляття школи Води", | ||||
| 	"core.bonus.SPELL_SCHOOL_IMMUNITY.description.earth": "На цей загін не діють жодні закляття школи Землі", | ||||
| 	"core.bonus.REVENGE.description" : "Завдає додаткової шкоди залежно від втраченого здоров'я в бою", | ||||
| 	"core.bonus.REVENGE.name" : "Помста" | ||||
| } | ||||
|   | ||||
| @@ -75,21 +75,13 @@ std::string CBonusTypeHandler::bonusToString(const std::shared_ptr<Bonus> & bonu | ||||
| 	std::string textID = description ? bt.getDescriptionTextID() : bt.getNameTextID(); | ||||
| 	std::string text = VLC->generaltexth->translate(textID); | ||||
|  | ||||
| 	if (bonus->subtype.as<SpellSchool>().hasValue()) | ||||
| 	auto school = bonus->subtype.as<SpellSchool>(); | ||||
| 	if (school.hasValue() && school != SpellSchool::ANY) | ||||
| 	{ | ||||
| 		auto school = bonus->subtype.as<SpellSchool>(); | ||||
| 		if(school != SpellSchool::ANY) | ||||
| 		{ | ||||
| 			auto specificTextID = description ? bt.getDescriptionTextID() + ".specific" : bt.getNameTextID() + ".specific"; | ||||
| 			auto specificText = VLC->generaltexth->translate(specificTextID); | ||||
|  | ||||
| 			if(specificText.find("${subtype.spellSchool}") != std::string::npos) | ||||
| 			{ | ||||
| 				auto schoolName = VLC->generaltexth->translate(TextIdentifier("core.spellSchools", school).get()); | ||||
| 				boost::algorithm::replace_all(specificText, "${subtype.spellSchool}", schoolName); | ||||
| 				text = specificText; | ||||
| 			} | ||||
| 		} | ||||
| 		std::string schoolName = school.encode(school.getNum()); | ||||
| 		std::string baseTextID = description ? bt.getDescriptionTextID() : bt.getNameTextID(); | ||||
| 		std::string fullTextID = baseTextID + '.' + schoolName; | ||||
| 		text = VLC->generaltexth->translate(fullTextID); | ||||
| 	} | ||||
|  | ||||
| 	if (text.find("${val}") != std::string::npos) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user