From 38303e6eb189b6f37e0d712f3f729a6b70055667 Mon Sep 17 00:00:00 2001 From: NightKev <34855794+DayKev@users.noreply.github.com> Date: Thu, 8 Aug 2024 15:16:16 -0700 Subject: [PATCH] Add i18n placeholders --- src/data/arena-tag.ts | 18 +++++------------- src/data/move.ts | 7 ++----- src/locales/ca_ES/arena-tag.ts | 6 ++++++ src/locales/ca_ES/move-trigger.ts | 1 + src/locales/de/arena-tag.ts | 6 ++++++ src/locales/de/move-trigger.ts | 1 + src/locales/en/arena-tag.ts | 6 ++++++ src/locales/en/move-trigger.ts | 1 + src/locales/es/arena-tag.ts | 6 ++++++ src/locales/es/move-trigger.ts | 1 + src/locales/fr/arena-tag.ts | 6 ++++++ src/locales/fr/move-trigger.ts | 1 + src/locales/it/arena-tag.ts | 6 ++++++ src/locales/it/move-trigger.ts | 1 + src/locales/ja/arena-tag.ts | 6 ++++++ src/locales/ja/move-trigger.ts | 1 + src/locales/ko/arena-tag.ts | 6 ++++++ src/locales/ko/move-trigger.ts | 1 + src/locales/pt_BR/arena-tag.ts | 6 ++++++ src/locales/pt_BR/move-trigger.ts | 1 + src/locales/zh_CN/arena-tag.ts | 6 ++++++ src/locales/zh_CN/move-trigger.ts | 1 + src/locales/zh_TW/arena-tag.ts | 6 ++++++ src/locales/zh_TW/move-trigger.ts | 1 + 24 files changed, 84 insertions(+), 18 deletions(-) diff --git a/src/data/arena-tag.ts b/src/data/arena-tag.ts index 2dd9195a5e5..868933167ca 100644 --- a/src/data/arena-tag.ts +++ b/src/data/arena-tag.ts @@ -844,30 +844,22 @@ class HappyHourTag extends ArenaTag { } } -class SafegaurdTag extends ArenaTag { +class SafeguardTag extends ArenaTag { constructor(turnCount: integer, sourceId: integer, side: ArenaTagSide) { super(ArenaTagType.SAFEGUARD, turnCount, Moves.SAFEGUARD, sourceId, side); } onAdd(arena: Arena): void { - if (this.side === ArenaTagSide.PLAYER) { - arena.scene.queueMessage("Your team cloaked itself in a mystical veil!"); - } else { - arena.scene.queueMessage("Enemy team cloaked itself in a mystical veil!"); - } + arena.scene.queueMessage(i18next.t(`arenaTag:safeguardOnAdd${this.side === ArenaTagSide.PLAYER ? "Player" : this.side === ArenaTagSide.ENEMY ? "Enemy" : ""}`)); } onRemove(arena: Arena): void { - if (this.side === ArenaTagSide.PLAYER) { - arena.scene.queueMessage("Your team is not longer protected by the mystical veil!"); - } else { - arena.scene.queueMessage("Enemy team is not longer protected by the mystical veil!"); - } + arena.scene.queueMessage(i18next.t(`arenaTag:safeguardOnRemove${this.side === ArenaTagSide.PLAYER ? "Player" : this.side === ArenaTagSide.ENEMY ? "Enemy" : ""}`)); } } -export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMove: Moves, sourceId: integer, targetIndex?: BattlerIndex, side: ArenaTagSide = ArenaTagSide.BOTH): ArenaTag { +export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMove: Moves | undefined, sourceId: integer, targetIndex?: BattlerIndex, side: ArenaTagSide = ArenaTagSide.BOTH): ArenaTag | null { switch (tagType) { case ArenaTagType.MIST: return new MistTag(turnCount, sourceId, side); @@ -913,7 +905,7 @@ export function getArenaTag(tagType: ArenaTagType, turnCount: integer, sourceMov case ArenaTagType.HAPPY_HOUR: return new HappyHourTag(turnCount, sourceId, side); case ArenaTagType.SAFEGUARD: - return new SafegaurdTag(turnCount, sourceId, side); + return new SafeguardTag(turnCount, sourceId, side); default: return null; } diff --git a/src/data/move.ts b/src/data/move.ts index aaf4307417f..97d8463f058 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1,5 +1,5 @@ import { ChargeAnim, MoveChargeAnim, initMoveAnim, loadMoveAnimAssets } from "./battle-anims"; -import { BattleEndPhase, MessagePhase, MoveEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchPhase, SwitchSummonPhase } from "../phases"; +import { BattleEndPhase, MoveEndPhase, MovePhase, NewBattlePhase, PartyStatusCurePhase, PokemonHealPhase, StatChangePhase, SwitchPhase, SwitchSummonPhase } from "../phases"; import { BattleStat, getBattleStatName } from "./battle-stat"; import { EncoreTag, GulpMissileTag, HelpingHandTag, SemiInvulnerableTag, StockpilingTag, TypeBoostTag } from "./battler-tags"; import { getPokemonNameWithAffix } from "../messages"; @@ -1931,10 +1931,7 @@ export class StatusEffectAttr extends MoveEffectAttr { if (user.scene.arena.getTagOnSide(ArenaTagType.SAFEGUARD, targetSide)) { if (move.category === MoveCategory.STATUS) { - user.scene.pushPhase( - new MessagePhase(user.scene, - `${target.name} is protected by Safeguard!`, - 0, false, 0), false); + user.scene.queueMessage(i18next.t("moveTriggers:safeguard", { targetName: getPokemonNameWithAffix(target)})); } return false; } diff --git a/src/locales/ca_ES/arena-tag.ts b/src/locales/ca_ES/arena-tag.ts index 22612795308..bf6c873c817 100644 --- a/src/locales/ca_ES/arena-tag.ts +++ b/src/locales/ca_ES/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!", "happyHourOnAdd": "Everyone is caught up in the happy atmosphere!", "happyHourOnRemove": "The atmosphere returned to normal.", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/ca_ES/move-trigger.ts b/src/locales/ca_ES/move-trigger.ts index b85f27228be..3b4c191ffe9 100644 --- a/src/locales/ca_ES/move-trigger.ts +++ b/src/locales/ca_ES/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!", "swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/de/arena-tag.ts b/src/locales/de/arena-tag.ts index 65699742331..b57f38172c7 100644 --- a/src/locales/de/arena-tag.ts +++ b/src/locales/de/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "Der Rückenwind auf gegnerischer Seite hat sich gelegt!", "happyHourOnAdd": "Goldene Zeiten sind angebrochen!", "happyHourOnRemove": "Die goldenen Zeiten sind vorbei!", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/de/move-trigger.ts b/src/locales/de/move-trigger.ts index 53c9c847b38..2c11d024deb 100644 --- a/src/locales/de/move-trigger.ts +++ b/src/locales/de/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "Die Fähigkeit von {{pokemonName}} wirkt nicht mehr!", "swapArenaTags": "{{pokemonName}} hat die Effekte, die auf den beiden Seiten des Kampffeldes wirken, miteinander getauscht!", "exposedMove": "{{pokemonName}} erkennt {{targetPokemonName}}!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/en/arena-tag.ts b/src/locales/en/arena-tag.ts index 22612795308..bf6c873c817 100644 --- a/src/locales/en/arena-tag.ts +++ b/src/locales/en/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!", "happyHourOnAdd": "Everyone is caught up in the happy atmosphere!", "happyHourOnRemove": "The atmosphere returned to normal.", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/en/move-trigger.ts b/src/locales/en/move-trigger.ts index b85f27228be..3b4c191ffe9 100644 --- a/src/locales/en/move-trigger.ts +++ b/src/locales/en/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!", "swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/es/arena-tag.ts b/src/locales/es/arena-tag.ts index 22612795308..bf6c873c817 100644 --- a/src/locales/es/arena-tag.ts +++ b/src/locales/es/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!", "happyHourOnAdd": "Everyone is caught up in the happy atmosphere!", "happyHourOnRemove": "The atmosphere returned to normal.", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/es/move-trigger.ts b/src/locales/es/move-trigger.ts index a1d9f2e3185..841f4a5420b 100644 --- a/src/locales/es/move-trigger.ts +++ b/src/locales/es/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!", "swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/fr/arena-tag.ts b/src/locales/fr/arena-tag.ts index 62ef203cf68..05abd7609fb 100644 --- a/src/locales/fr/arena-tag.ts +++ b/src/locales/fr/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "Le vent arrière soufflant\nsur l’équipe ennemie s’arrête !", "happyHourOnAdd": "L’ambiance est euphorique !", "happyHourOnRemove": "L’ambiance se calme !", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/fr/move-trigger.ts b/src/locales/fr/move-trigger.ts index 7f9f3a471c6..3360543af3f 100644 --- a/src/locales/fr/move-trigger.ts +++ b/src/locales/fr/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "Le talent de {{pokemonName}}\na été rendu inactif !", "swapArenaTags": "Les effets affectant chaque côté du terrain\nont été échangés par {{pokemonName}} !", "exposedMove": "{{targetPokemonName}} est identifié\npar {{pokemonName}} !", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/it/arena-tag.ts b/src/locales/it/arena-tag.ts index 22612795308..bf6c873c817 100644 --- a/src/locales/it/arena-tag.ts +++ b/src/locales/it/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!", "happyHourOnAdd": "Everyone is caught up in the happy atmosphere!", "happyHourOnRemove": "The atmosphere returned to normal.", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/it/move-trigger.ts b/src/locales/it/move-trigger.ts index badf2777d6f..db40eeb6771 100644 --- a/src/locales/it/move-trigger.ts +++ b/src/locales/it/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "L’abilità di {{pokemonName}}\nperde ogni efficacia!", "swapArenaTags": "{{pokemonName}} ha invertito gli effetti attivi\nnelle due metà del campo!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/ja/arena-tag.ts b/src/locales/ja/arena-tag.ts index 22612795308..bf6c873c817 100644 --- a/src/locales/ja/arena-tag.ts +++ b/src/locales/ja/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!", "happyHourOnAdd": "Everyone is caught up in the happy atmosphere!", "happyHourOnRemove": "The atmosphere returned to normal.", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/ja/move-trigger.ts b/src/locales/ja/move-trigger.ts index 7c794379f55..00e379b1aec 100644 --- a/src/locales/ja/move-trigger.ts +++ b/src/locales/ja/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "{{pokemonName}}の とくせいが きかなくなった!", "swapArenaTags": "{{pokemonName}}は\nおたがいの ばのこうかを いれかえた!", "exposedMove": "{{pokemonName}} identified\n{{targetPokemonName}}!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/ko/arena-tag.ts b/src/locales/ko/arena-tag.ts index 2211ced6c4c..fc348f59ad7 100644 --- a/src/locales/ko/arena-tag.ts +++ b/src/locales/ko/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "상대의\n순풍이 멈췄다!", "happyHourOnAdd": "모두 행복한 기분에\n휩싸였다!", "happyHourOnRemove": "기분이 원래대로 돌아왔다.", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/ko/move-trigger.ts b/src/locales/ko/move-trigger.ts index 4c32e5b5b9f..a76b2e1384a 100644 --- a/src/locales/ko/move-trigger.ts +++ b/src/locales/ko/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "{{pokemonName}}의\n특성이 효과를 발휘하지 못하게 되었다!", "swapArenaTags": "{{pokemonName}}[[는]]\n서로의 필드 효과를 교체했다!", "exposedMove": "{{pokemonName}}[[는]]\n{{targetPokemonName}}의 정체를 꿰뚫어 보았다!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/pt_BR/arena-tag.ts b/src/locales/pt_BR/arena-tag.ts index ebdf886f9a6..741525d75d5 100644 --- a/src/locales/pt_BR/arena-tag.ts +++ b/src/locales/pt_BR/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "O Tailwind da equipe adversária acabou!", "happyHourOnAdd": "Todos foram envolvidos por uma atmosfera alegre!", "happyHourOnRemove": "A atmosfera retornou ao normal.", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/pt_BR/move-trigger.ts b/src/locales/pt_BR/move-trigger.ts index a96cdb27953..58877ec8b54 100644 --- a/src/locales/pt_BR/move-trigger.ts +++ b/src/locales/pt_BR/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "A habilidade de {{pokemonName}}\nfoi suprimida!", "swapArenaTags": "{{pokemonName}} trocou os efeitos de batalha que afetam cada lado do campo!", "exposedMove": "{{pokemonName}} identificou\n{{targetPokemonName}}!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/zh_CN/arena-tag.ts b/src/locales/zh_CN/arena-tag.ts index 974ef36d7af..de095071f9e 100644 --- a/src/locales/zh_CN/arena-tag.ts +++ b/src/locales/zh_CN/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "敌方的顺风停止了!", "happyHourOnAdd": "大家被欢乐的\n气氛包围了!", "happyHourOnRemove": "气氛回复到平常了。", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/zh_CN/move-trigger.ts b/src/locales/zh_CN/move-trigger.ts index d46ef1e313e..077b6fa2acd 100644 --- a/src/locales/zh_CN/move-trigger.ts +++ b/src/locales/zh_CN/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "{{pokemonName}}的特性\n变得无效了!", "swapArenaTags": "{{pokemonName}}\n交换了双方的场地效果!", "exposedMove": "{{pokemonName}}识破了\n{{targetPokemonName}}的原型!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const; diff --git a/src/locales/zh_TW/arena-tag.ts b/src/locales/zh_TW/arena-tag.ts index ee7d2eb7bc5..9cd0268f557 100644 --- a/src/locales/zh_TW/arena-tag.ts +++ b/src/locales/zh_TW/arena-tag.ts @@ -50,4 +50,10 @@ export const arenaTag: SimpleTranslationEntries = { "tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!", "happyHourOnAdd": "Everyone is caught up in the happy atmosphere!", "happyHourOnRemove": "The atmosphere returned to normal.", + "safeguardOnAdd": "The whole field is cloaked in a mystical veil!", + "safeguardOnAddPlayer": "Your team cloaked itself in a mystical veil!", + "safeguardOnAddEnemy": "The opposing team cloaked itself in a mystical veil!", + "safeguardOnRemove": "The field is no longer protected by Safeguard!", + "safeguardOnRemovePlayer": "Your team is no longer protected by Safeguard!", + "safeguardOnRemoveEnemy": "The opposing team is no longer protected by Safeguard!", } as const; diff --git a/src/locales/zh_TW/move-trigger.ts b/src/locales/zh_TW/move-trigger.ts index 0831ef82637..0687d58a5d4 100644 --- a/src/locales/zh_TW/move-trigger.ts +++ b/src/locales/zh_TW/move-trigger.ts @@ -61,4 +61,5 @@ export const moveTriggers: SimpleTranslationEntries = { "suppressAbilities": "{{pokemonName}}的特性\n變得無效了!", "swapArenaTags": "{{pokemonName}}\n交換了雙方的場地效果!", "exposedMove": "{{pokemonName}}識破了\n{{targetPokemonName}}的原形!", + "safeguard": "{{targetName}} is protected by Safeguard!", } as const;