diff --git a/src/locales/ca_ES/achv-male.json b/src/locales/ca_ES/achv-male.json deleted file mode 100644 index 9e26dfeeb6e..00000000000 --- a/src/locales/ca_ES/achv-male.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/locales/ca_ES/achv-female.json b/src/locales/ca_ES/achv.json similarity index 100% rename from src/locales/ca_ES/achv-female.json rename to src/locales/ca_ES/achv.json diff --git a/src/locales/ca_ES/config.ts b/src/locales/ca_ES/config.ts index 4229b20a583..514c7fb63c7 100644 --- a/src/locales/ca_ES/config.ts +++ b/src/locales/ca_ES/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const caEsConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/de/achv-male.json b/src/locales/de/achv-male.json deleted file mode 100644 index dcbaf2ebffc..00000000000 --- a/src/locales/de/achv-male.json +++ /dev/null @@ -1,264 +0,0 @@ -{ - "Achievements": { - "name": "Errungenschaften" - }, - "Locked": { - "name": "Gesperrt" - }, - "MoneyAchv": { - "description": "Häufe eine Gesamtsumme von {{moneyAmount}} ₽ an." - }, - "10K_MONEY": { - "name": "Besserverdiener" - }, - "100K_MONEY": { - "name": "Reich" - }, - "1M_MONEY": { - "name": "Millionär" - }, - "10M_MONEY": { - "name": "Einprozenter" - }, - "DamageAchv": { - "description": "Füge mit einem Treffer {{damageAmount}} Schaden zu." - }, - "250_DMG": { - "name": "Harte Treffer" - }, - "1000_DMG": { - "name": "Härtere Treffer" - }, - "2500_DMG": { - "name": "Das ist ne Menge Schaden!" - }, - "10000_DMG": { - "name": "One Punch Man" - }, - "HealAchv": { - "description": "Heile {{healAmount}} {{HP}} auf einmal. Mit einer Attacke, Fähigkeit oder einem gehaltenen Gegenstand." - }, - "250_HEAL": { - "name": "Anfänger-Heiler" - }, - "1000_HEAL": { - "name": "Gesundheitsprofi" - }, - "2500_HEAL": { - "name": "Kleriker" - }, - "10000_HEAL": { - "name": "Wiederherstellungsmeister" - }, - "LevelAchv": { - "description": "Erhöhe das Level eines Pokémon auf {{level}}." - }, - "LV_100": { - "name": "Warte, es gibt mehr!" - }, - "LV_250": { - "name": "Elite" - }, - "LV_1000": { - "name": "Geh noch höher hinaus!" - }, - "RibbonAchv": { - "description": "Sammle insgesamt {{ribbonAmount}} Bänder." - }, - "10_RIBBONS": { - "name": "Champion der Pokémon Liga" - }, - "25_RIBBONS": { - "name": "Bänder-Sammler" - }, - "50_RIBBONS": { - "name": "Bänder-Experte" - }, - "75_RIBBONS": { - "name": "Bänder-Guru" - }, - "100_RIBBONS": { - "name": "Bänder-Meister" - }, - "TRANSFER_MAX_BATTLE_STAT": { - "name": "Teamwork", - "description": "Nutze Staffette, während der Anwender mindestens eines Statuswertes maximiert hat." - }, - "MAX_FRIENDSHIP": { - "name": "Freundschaftsmaximierung", - "description": "Erreiche maximale Freundschaft bei einem Pokémon." - }, - "MEGA_EVOLVE": { - "name": "Megaverwandlung", - "description": "Megaentwickle ein Pokémon." - }, - "GIGANTAMAX": { - "name": "Absolute Einheit", - "description": "Gigadynamaximiere ein Pokémon." - }, - "TERASTALLIZE": { - "name": "Typen-Bonus Enthusiast", - "description": "Terrakristallisiere ein Pokémon." - }, - "STELLAR_TERASTALLIZE": { - "name": "Der geheime Typ", - "description": "Terrakristallisiere ein Pokémon zum Typen Stellar." - }, - "SPLICE": { - "name": "Unendliche Fusion", - "description": "Kombiniere zwei Pokémon mit einem DNS-Keil." - }, - "MINI_BLACK_HOLE": { - "name": "Ein Loch voller Items", - "description": "Erlange ein Mini-Schwarzes Loch." - }, - "CATCH_MYTHICAL": { - "name": "Mysteriöses!", - "description": "Fange ein mysteriöses Pokémon." - }, - "CATCH_SUB_LEGENDARY": { - "name": "Sub-Legendär", - "description": "Fange ein sub-legendäres Pokémon." - }, - "CATCH_LEGENDARY": { - "name": "Legendär", - "description": "Fange ein legendäres Pokémon." - }, - "SEE_SHINY": { - "name": "Schillerndes Licht", - "description": "Finde ein wildes schillerndes Pokémon." - }, - "SHINY_PARTY": { - "name": "Das ist Hingabe", - "description": "Habe ein Team aus schillernden Pokémon." - }, - "HATCH_MYTHICAL": { - "name": "Mysteriöses Ei", - "description": "Lass ein mysteriöses Pokémon aus einem Ei schlüpfen." - }, - "HATCH_SUB_LEGENDARY": { - "name": "Sub-Legendäres Ei", - "description": "Lass ein sub-legendäres Pokémon aus einem Ei schlüpfen." - }, - "HATCH_LEGENDARY": { - "name": "Legendäres Ei", - "description": "Lass ein legendäres Pokémon aus einem Ei schlüpfen." - }, - "HATCH_SHINY": { - "name": "Schillerndes Ei", - "description": "Lass ein schillerndes Pokémon aus einem Ei schlüpfen." - }, - "HIDDEN_ABILITY": { - "name": "Geheimes Talent", - "description": "Fang ein Pokémon mit versteckter Fähigkeit." - }, - "PERFECT_IVS": { - "name": "Zertifikat der Echtheit", - "description": "Erhalte ein Pokémon mit perfekten IS-Werten." - }, - "CLASSIC_VICTORY": { - "name": "Ungeschlagen", - "description": "Beende den klassischen Modus erfolgreich." - }, - "UNEVOLVED_CLASSIC_VICTORY": { - "name": "'Bringe dein Kind mit zur Arbeit'-Tag", - "description": "Beende den klassischen Modus erfolgreich mit mindestens einem nicht entwickeltem Pokémon in deinem Team" - }, - "MONO_GEN_ONE": { - "name": "Der originale Rivale", - "description": "Schließe die 'Nur 1. Generation' Herausforderung ab." - }, - "MONO_GEN_TWO": { - "name": "Generation 1.5", - "description": "Schließe die 'Nur 2. Generation' Herausforderung ab." - }, - "MONO_GEN_THREE": { - "name": "Zu viel Wasser?", - "description": "Schließe die 'Nur 3. Generation' Herausforderung ab." - }, - "MONO_GEN_FOUR": { - "name": "Ist SIE wirklich die Stärkste?", - "description": "Schließe die 'Nur 4. Generation' Herausforderung ab." - }, - "MONO_GEN_FIVE": { - "name": "Komplett Original", - "description": "Schließe die 'Nur 5. Generation' Herausforderung ab." - }, - "MONO_GEN_SIX": { - "name": "Fast Königlich", - "description": "Schließe die 'Nur 6. Generation' Herausforderung ab." - }, - "MONO_GEN_SEVEN": { - "name": "Technisch gesehen", - "description": "Schließe die 'Nur 7. Generation' Herausforderung ab." - }, - "MONO_GEN_EIGHT": { - "name": "Die Zeit des Champions", - "description": "Schließe die 'Nur 8. Generation' Herausforderung ab." - }, - "MONO_GEN_NINE": { - "name": "Sie hat es dir leicht gemacht...", - "description": "Schließe die 'Nur 9. Generation' Herausforderung ab." - }, - "MonoType": { - "description": "Beende die Monotyp-{{type}} Herausforderung." - }, - "MONO_NORMAL": { - "name": "Normaler Typ" - }, - "MONO_FIGHTING": { - "name": "Ich kenne Kung Fu." - }, - "MONO_FLYING": { - "name": "Ich glaube ich kann fliegen." - }, - "MONO_POISON": { - "name": "Kantos Liebling" - }, - "MONO_GROUND": { - "name": "Auf dem Boden bleiben." - }, - "MONO_ROCK": { - "name": "So hart wie Rocko." - }, - "MONO_BUG": { - "name": "Steche wie ein Bibor." - }, - "MONO_GHOST": { - "name": "Wer wird angerufen?" - }, - "MONO_STEEL": { - "name": "Stahlharte Entschlossenheit" - }, - "MONO_FIRE": { - "name": "Brennende Leidenschaft" - }, - "MONO_WATER": { - "name": "Wenn es regnet, schüttet es!" - }, - "MONO_GRASS": { - "name": "Grüner Daumen" - }, - "MONO_ELECTRIC": { - "name": "Elektrisierend" - }, - "MONO_PSYCHIC": { - "name": "Übernatürliches Talent" - }, - "MONO_ICE": { - "name": "Eis Eis Baby" - }, - "MONO_DRAGON": { - "name": "Siegfried bist du es?" - }, - "MONO_DARK": { - "name": "Es ist nur eine Phase!" - }, - "MONO_FAIRY": { - "name": "Ein ewiges Abenteuer!" - }, - "FRESH_START": { - "name": "Hussa, noch einmal von vorn!", - "description": "Schließe die 'Neuanfang' Herausforderung ab" - } -} \ No newline at end of file diff --git a/src/locales/de/achv-female.json b/src/locales/de/achv.json similarity index 91% rename from src/locales/de/achv-female.json rename to src/locales/de/achv.json index 5dd99c18eb1..0649bcf3169 100644 --- a/src/locales/de/achv-female.json +++ b/src/locales/de/achv.json @@ -1,31 +1,4 @@ { - "10K_MONEY": { - "name": "Besserverdienerin" - }, - "1M_MONEY": { - "name": "Millionärin" - }, - "10000_DMG": { - "name": "One Punch Woman" - }, - "250_HEAL": { - "name": "Anfänger-Heilerin" - }, - "2500_HEAL": { - "name": "Klerikerin" - }, - "10000_HEAL": { - "name": "Wiederherstellungsmeisterin" - }, - "25_RIBBONS": { - "name": "Bänder-Sammlerin" - }, - "50_RIBBONS": { - "name": "Bänder-Expertin" - }, - "100_RIBBONS": { - "name": "Bänder-Meisterin" - }, "Achievements": { "name": "Errungenschaften" }, @@ -35,9 +8,17 @@ "MoneyAchv": { "description": "Häufe eine Gesamtsumme von {{moneyAmount}} ₽ an." }, + "10K_MONEY": { + "name": "Besserverdiener", + "name_female": "Besserverdienerin" + }, "100K_MONEY": { "name": "Reich" }, + "1M_MONEY": { + "name": "Millionär", + "name_female": "Millionärin" + }, "10M_MONEY": { "name": "Einprozenter" }, @@ -53,12 +34,28 @@ "2500_DMG": { "name": "Das ist ne Menge Schaden!" }, + "10000_DMG": { + "name": "One Punch Man", + "name_female": "One Punch Woman" + }, "HealAchv": { "description": "Heile {{healAmount}} {{HP}} auf einmal. Mit einer Attacke, Fähigkeit oder einem gehaltenen Gegenstand." }, + "250_HEAL": { + "name": "Anfänger-Heiler", + "name_female": "Anfänger-Heilerin" + }, "1000_HEAL": { "name": "Gesundheitsprofi" }, + "2500_HEAL": { + "name": "Kleriker", + "name_female": "Klerikerin" + }, + "10000_HEAL": { + "name": "Wiederherstellungsmeister", + "name_female": "Wiederherstellungsmeisterin" + }, "LevelAchv": { "description": "Erhöhe das Level eines Pokémon auf {{level}}." }, @@ -77,9 +74,21 @@ "10_RIBBONS": { "name": "Champion der Pokémon Liga" }, + "25_RIBBONS": { + "name": "Bänder-Sammler", + "name_female": "Bänder-Sammlerin" + }, + "50_RIBBONS": { + "name": "Bänder-Experte", + "name_female": "Bänder-Expertin" + }, "75_RIBBONS": { "name": "Bänder-Guru" }, + "100_RIBBONS": { + "name": "Bänder-Meister", + "name_female": "Bänder-Meisterin" + }, "TRANSFER_MAX_BATTLE_STAT": { "name": "Teamwork", "description": "Nutze Staffette, während der Anwender mindestens eines Statuswertes maximiert hat." diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 28c3332a55f..afefd98a0cb 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const deConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/en/achv-male.json b/src/locales/en/achv.json similarity index 85% rename from src/locales/en/achv-male.json rename to src/locales/en/achv.json index ec695c3ed2a..185b42d181a 100644 --- a/src/locales/en/achv-male.json +++ b/src/locales/en/achv.json @@ -9,16 +9,20 @@ "description": "Accumulate a total of ₽{{moneyAmount}}" }, "10K_MONEY": { - "name": "Money Haver" + "name": "Money Haver", + "name_female": null }, "100K_MONEY": { - "name": "Rich" + "name": "Rich", + "name_female": null }, "1M_MONEY": { - "name": "Millionaire" + "name": "Millionaire", + "name_female": null }, "10M_MONEY": { - "name": "One Percenter" + "name": "One Percenter", + "name_female": null }, "DamageAchv": { "description": "Inflict {{damageAmount}} damage in one hit" @@ -27,28 +31,35 @@ "name": "Hard Hitter" }, "1000_DMG": { - "name": "Harder Hitter" + "name": "Harder Hitter", + "name_female": null }, "2500_DMG": { - "name": "That's a Lotta Damage!" + "name": "That's a Lotta Damage!", + "name_female": null }, "10000_DMG": { - "name": "One Punch Man" + "name": "One Punch Man", + "name_female": "One Punch Woman" }, "HealAchv": { "description": "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item" }, "250_HEAL": { - "name": "Novice Healer" + "name": "Novice Healer", + "name_female": null }, "1000_HEAL": { - "name": "Big Healer" + "name": "Big Healer", + "name_female": null }, "2500_HEAL": { - "name": "Cleric" + "name": "Cleric", + "name_female": null }, "10000_HEAL": { - "name": "Recovery Master" + "name": "Recovery Master", + "name_female": null }, "LevelAchv": { "description": "Level up a Pokémon to Lv{{level}}" @@ -57,7 +68,8 @@ "name": "But Wait, There's More!" }, "LV_250": { - "name": "Elite" + "name": "Elite", + "name_female": null }, "LV_1000": { "name": "To Go Even Further Beyond" @@ -66,19 +78,24 @@ "description": "Accumulate a total of {{ribbonAmount}} Ribbons" }, "10_RIBBONS": { - "name": "Pokémon League Champion" + "name": "Pokémon League Champion", + "name_female": null }, "25_RIBBONS": { - "name": "Great League Champion" + "name": "Great League Champion", + "name_female": null }, "50_RIBBONS": { - "name": "Ultra League Champion" + "name": "Ultra League Champion", + "name_female": null }, "75_RIBBONS": { - "name": "Rogue League Champion" + "name": "Rogue League Champion", + "name_female": null }, "100_RIBBONS": { - "name": "Master League Champion" + "name": "Master League Champion", + "name_female": null }, "TRANSFER_MAX_BATTLE_STAT": { "name": "Teamwork", @@ -130,6 +147,7 @@ }, "SHINY_PARTY": { "name": "That's Dedication", + "name_female": null, "description": "Have a full party of shiny Pokémon" }, "HATCH_MYTHICAL": { @@ -158,6 +176,7 @@ }, "CLASSIC_VICTORY": { "name": "Undefeated", + "name_female": null, "description": "Beat the game in classic mode" }, "UNEVOLVED_CLASSIC_VICTORY": { diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index f1827b5152d..36593befb8f 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const enConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/es/achv-male.json b/src/locales/es/achv-male.json deleted file mode 100644 index 7faaa387e89..00000000000 --- a/src/locales/es/achv-male.json +++ /dev/null @@ -1,163 +0,0 @@ -{ - "Achievements": { - "name": "Logros" - }, - "Locked": { - "name": "Bloqueado" - }, - "MoneyAchv": { - "description": "Acumula un total de ₽{{moneyAmount}}." - }, - "10K_MONEY": { - "name": "Ahorrador" - }, - "100K_MONEY": { - "name": "Rico" - }, - "1M_MONEY": { - "name": "Millonario" - }, - "10M_MONEY": { - "name": "Elusión Fiscal" - }, - "DamageAchv": { - "description": "Inflige {{damageAmount}} daño en un solo golpe." - }, - "250_DMG": { - "name": "Golpe Maestro" - }, - "1000_DMG": { - "name": "Golpe Devastador" - }, - "2500_DMG": { - "name": "¡Eso es un montón de daño!" - }, - "10000_DMG": { - "name": "One Punch Man" - }, - "HealAchv": { - "description": "Cura {{healAmount}} {{HP}} de una, con un movimiento, habilidad o objeto equipado." - }, - "250_HEAL": { - "name": "Sanador Novato" - }, - "1000_HEAL": { - "name": "Gran Sanador" - }, - "2500_HEAL": { - "name": "Clérigo" - }, - "10000_HEAL": { - "name": "Centro Pokémon" - }, - "LevelAchv": { - "description": "Sube a un Pokémon al nivel {{level}}." - }, - "LV_100": { - "name": "¡Pero espera, aún hay mas!" - }, - "LV_250": { - "name": "Élite" - }, - "LV_1000": { - "name": "Supera tus límites" - }, - "RibbonAchv": { - "description": "Acumula un total de {{ribbonAmount}} Cintas." - }, - "10_RIBBONS": { - "name": "Campeón Liga Pokémon" - }, - "25_RIBBONS": { - "name": "Campeón Liga Super" - }, - "50_RIBBONS": { - "name": "Campeón Liga Ultra" - }, - "75_RIBBONS": { - "name": "Campeón Liga Rogue" - }, - "100_RIBBONS": { - "name": "Campeón Liga Master" - }, - "TRANSFER_MAX_BATTLE_STAT": { - "name": "Trabajo en Equipo", - "description": "Haz relevo a otro miembro del equipo con al menos una estadística al máximo." - }, - "MAX_FRIENDSHIP": { - "name": "Amistad Total", - "description": "Alcanza con un Pokémon la amistad al máximo." - }, - "MEGA_EVOLVE": { - "name": "Megamorfosis", - "description": "Megaevoluciona a un Pokémon." - }, - "GIGANTAMAX": { - "name": "Criatura Colosal", - "description": "Haz Gigantamax a un Pokémon." - }, - "TERASTALLIZE": { - "name": "Entusiasta del STAB", - "description": "Teracristaliza a un Pokémon." - }, - "STELLAR_TERASTALLIZE": { - "name": "El Tipo Oculto", - "description": "Teracristaliza a un Pokémon al tipo Astral." - }, - "SPLICE": { - "name": "Infinite Fusion", - "description": "Fusiona dos Pokémon con la Punta ADN." - }, - "MINI_BLACK_HOLE": { - "name": "Devorador de Objetos", - "description": "Adquiere un Mini Agujero Negro." - }, - "CATCH_MYTHICAL": { - "name": "Singular", - "description": "Captura a un Pokémon Singular." - }, - "CATCH_SUB_LEGENDARY": { - "name": "(Sub)Legendario", - "description": "Captura a un Pokémon Sublegendario." - }, - "CATCH_LEGENDARY": { - "name": "Legendario", - "description": "Captura a un Pokémon Legendario." - }, - "SEE_SHINY": { - "name": "Shiny", - "description": "Encuentra a un Pokémon Shiny salvaje." - }, - "SHINY_PARTY": { - "name": "Eso es dedicación", - "description": "Tener un equipo completo de Pokémon shiny." - }, - "HATCH_MYTHICAL": { - "name": "Huevo Singular", - "description": "Hacer eclosionar un Pokémon Singular de un huevo." - }, - "HATCH_SUB_LEGENDARY": { - "name": "Huevo Sublegendario", - "description": "Hacer eclosionar un Pokémon Sublegendario de un huevo." - }, - "HATCH_LEGENDARY": { - "name": "Huevo Legendario", - "description": "Hacer eclosionar un Pokémon Legendario de un huevo." - }, - "HATCH_SHINY": { - "name": "Huevo Shiny", - "description": "Hacer eclosionar un Pokémon Shiny de un huevo." - }, - "HIDDEN_ABILITY": { - "name": "Potencial Oculto", - "description": "Captura un Pokémon con una habilidad oculta." - }, - "PERFECT_IVS": { - "name": "Certificado de Autenticidad", - "description": "Consigue IVs perfectos en un Pokémon." - }, - "CLASSIC_VICTORY": { - "name": "Imbatible", - "description": "Completa el juego en modo clásico." - } -} \ No newline at end of file diff --git a/src/locales/es/achv-female.json b/src/locales/es/achv.json similarity index 83% rename from src/locales/es/achv-female.json rename to src/locales/es/achv.json index f14e0f9a4be..c3a22c566d0 100644 --- a/src/locales/es/achv-female.json +++ b/src/locales/es/achv.json @@ -9,13 +9,16 @@ "description": "Acumula un total de ₽{{moneyAmount}}." }, "10K_MONEY": { - "name": "Ahorradora" + "name": "Ahorrador", + "name_female": "Ahorradora" }, "100K_MONEY": { - "name": "Rica" + "name": "Rico", + "name_female": "Rica" }, "1M_MONEY": { - "name": "Millonaria" + "name": "Millonario", + "name_female": "Millonaria" }, "10M_MONEY": { "name": "Elusión Fiscal" @@ -39,13 +42,16 @@ "description": "Cura {{healAmount}} {{HP}} de una, con un movimiento, habilidad o objeto equipado." }, "250_HEAL": { - "name": "Sanadora Novata" + "name": "Sanador Novato", + "name_female": "Sanadora Novata" }, "1000_HEAL": { - "name": "Gran Sanadora" + "name": "Gran Sanador", + "name_female": "Gran Sanadora" }, "2500_HEAL": { - "name": "Clériga" + "name": "Clérigo", + "name_female": "Clériga" }, "10000_HEAL": { "name": "Centro Pokémon" @@ -66,19 +72,24 @@ "description": "Acumula un total de {{ribbonAmount}} Cintas." }, "10_RIBBONS": { - "name": "Campeona Liga Pokémon" + "name": "Campeón Liga Pokémon", + "name_female": "Campeona Liga Pokémon" }, "25_RIBBONS": { - "name": "Campeona Liga Super" + "name": "Campeón Liga Super", + "name_female": "Campeona Liga Super" }, "50_RIBBONS": { - "name": "Campeona Liga Ultra" + "name": "Campeón Liga Ultra", + "name_female": "Campeona Liga Ultra" }, "75_RIBBONS": { - "name": "Campeona Liga Rogue" + "name": "Campeón Liga Rogue", + "name_female": "Campeona Liga Rogue" }, "100_RIBBONS": { - "name": "Campeona Liga Master" + "name": "Campeón Liga Master", + "name_female": "Campeona Liga Master" }, "TRANSFER_MAX_BATTLE_STAT": { "name": "Trabajo en Equipo", diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index a34a05cecf0..edc7dd8b0d7 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const esConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/fr/achv-female.json b/src/locales/fr/achv-female.json deleted file mode 100644 index 68e114965cd..00000000000 --- a/src/locales/fr/achv-female.json +++ /dev/null @@ -1,264 +0,0 @@ -{ - "10K_MONEY": { - "name": "Épargnante" - }, - "1M_MONEY": { - "name": "Banquière" - }, - "10M_MONEY": { - "name": "Évadée fiscale" - }, - "1000_DMG": { - "name": "Boxeuse" - }, - "2500_DMG": { - "name": "Distributrice de pains" - }, - "10000_DMG": { - "name": "One Punch Woman" - }, - "250_HEAL": { - "name": "Infirmière" - }, - "10_RIBBONS": { - "name": "Maitresse de la Ligue" - }, - "25_RIBBONS": { - "name": "Super Maitresse de la Ligue" - }, - "50_RIBBONS": { - "name": "Hyper Maitresse de la Ligue" - }, - "75_RIBBONS": { - "name": "Rogue Maitresse de la Ligue" - }, - "100_RIBBONS": { - "name": "Master Maitresse de la Ligue" - }, - "SHINY_PARTY": { - "name": "Shasseuse", - "description": "Avoir une équipe exclusivement composée de Pokémon chromatiques" - }, - "CLASSIC_VICTORY": { - "name": "Invaincue", - "description": "Terminer le jeu en mode classique" - }, - "Achievements": { - "name": "Succès" - }, - "Locked": { - "name": "Verrouillé" - }, - "MoneyAchv": { - "description": "Récolter un total de {{moneyAmount}} ₽." - }, - "100K_MONEY": { - "name": "Je possède des thunes" - }, - "DamageAchv": { - "description": "Infliger {{damageAmount}} de dégâts en un coup." - }, - "250_DMG": { - "name": "Caïd" - }, - "HealAchv": { - "description": "Soigner {{healAmount}} {{HP}} en une fois avec une capacité,\nun talent ou un objet tenu." - }, - "1000_HEAL": { - "name": "Médecin" - }, - "2500_HEAL": { - "name": "Clerc" - }, - "10000_HEAL": { - "name": "Centre Pokémon" - }, - "LevelAchv": { - "description": "Monter un Pokémon au N.{{level}}." - }, - "LV_100": { - "name": "Et c’est pas fini !" - }, - "LV_250": { - "name": "Élite" - }, - "LV_1000": { - "name": "Vers l’infini et au-delà" - }, - "RibbonAchv": { - "description": "Accumuler un total de {{ribbonAmount}} Rubans." - }, - "TRANSFER_MAX_BATTLE_STAT": { - "name": "Travail d’équipe", - "description": "Utiliser Relais avec au moins une statistique montée à fond." - }, - "MAX_FRIENDSHIP": { - "name": "Copinage", - "description": "Atteindre le niveau de bonheur maximal avec un Pokémon." - }, - "MEGA_EVOLVE": { - "name": "Mégamorph", - "description": "Méga-évoluer un Pokémon." - }, - "GIGANTAMAX": { - "name": "Kaijū", - "description": "Gigamaxer un Pokémon." - }, - "TERASTALLIZE": { - "name": "J’aime les STAB", - "description": "Téracristalliser un Pokémon." - }, - "STELLAR_TERASTALLIZE": { - "name": "Le type enfoui", - "description": "Téracristalliser un Pokémon en type Stellaire." - }, - "SPLICE": { - "name": "Infinite Fusion", - "description": "Fusionner deux Pokémon avec le Pointeau ADN." - }, - "MINI_BLACK_HOLE": { - "name": "Item-stellar", - "description": "Obtenir un Mini Trou Noir." - }, - "CATCH_MYTHICAL": { - "name": "Fabuleux", - "description": "Capturer un Pokémon fabuleux." - }, - "CATCH_SUB_LEGENDARY": { - "name": "(Semi-)Légendaire", - "description": "Capturer un Pokémon semi-légendaire." - }, - "CATCH_LEGENDARY": { - "name": "Légendaire", - "description": "Capturer un Pokémon légendaire." - }, - "SEE_SHINY": { - "name": "Chromatique", - "description": "Trouver un Pokémon sauvage chromatique." - }, - "HATCH_MYTHICAL": { - "name": "Œuf fabuleux", - "description": "Obtenir un Pokémon fabuleux dans un Œuf." - }, - "HATCH_SUB_LEGENDARY": { - "name": "Œuf semi-légendaire", - "description": "Obtenir un Pokémon semi-légendaire dans un Œuf." - }, - "HATCH_LEGENDARY": { - "name": "Œuf légendaire", - "description": "Obtenir un Pokémon légendaire dans un Œuf." - }, - "HATCH_SHINY": { - "name": "Œuf chromatique", - "description": "Obtenir un Pokémon chromatique dans un Œuf." - }, - "HIDDEN_ABILITY": { - "name": "Potentiel enfoui", - "description": "Capturer un Pokémon possédant un talent caché." - }, - "PERFECT_IVS": { - "name": "Certificat d’authenticité", - "description": "Avoir des IV parfaits sur un Pokémon." - }, - "UNEVOLVED_CLASSIC_VICTORY": { - "name": "Le stagiaire de 3e", - "description": "Terminer le mode Classique avec au moins un Pokémon non-évolué dans l’équipe." - }, - "MONO_GEN_ONE": { - "name": "Le rival originel", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 1re génération." - }, - "MONO_GEN_TWO": { - "name": "Entre tradition et modernité", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 2e génération." - }, - "MONO_GEN_THREE": { - "name": "Too much water ?", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 3e génération." - }, - "MONO_GEN_FOUR": { - "name": "Réellement la plus difficile ?", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 4e génération." - }, - "MONO_GEN_FIVE": { - "name": "Recast complet", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 5e génération." - }, - "MONO_GEN_SIX": { - "name": "Aristocrate", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 6e génération." - }, - "MONO_GEN_SEVEN": { - "name": "Seulement techniquement", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 7e génération." - }, - "MONO_GEN_EIGHT": { - "name": "L’heure de gloire", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 8e génération." - }, - "MONO_GEN_NINE": { - "name": "Ça va, c’était EZ", - "description": "Terminer un challenge avec uniquement des Pokémon\nde 9e génération." - }, - "MonoType": { - "description": "Terminer un challenge en monotype {{type}}." - }, - "MONO_NORMAL": { - "name": "Extraordinairement banal" - }, - "MONO_FIGHTING": { - "name": "Je connais le kung-fu" - }, - "MONO_FLYING": { - "name": "Angry Birds" - }, - "MONO_POISON": { - "name": "Touche moi je t’empoisonne !" - }, - "MONO_GROUND": { - "name": "Prévisions : Séisme" - }, - "MONO_ROCK": { - "name": "Comme un roc" - }, - "MONO_BUG": { - "name": "Une chenille !" - }, - "MONO_GHOST": { - "name": "SOS Fantômes" - }, - "MONO_STEEL": { - "name": "De type Acier !" - }, - "MONO_FIRE": { - "name": "Allumer le feu" - }, - "MONO_WATER": { - "name": "Vacances en Bretagne" - }, - "MONO_GRASS": { - "name": "Ne pas toucher !" - }, - "MONO_ELECTRIC": { - "name": "À la masse" - }, - "MONO_PSYCHIC": { - "name": "Grocervo" - }, - "MONO_ICE": { - "name": "Froid comme la glace" - }, - "MONO_DRAGON": { - "name": "Légendes du club, ou presque" - }, - "MONO_DARK": { - "name": "Ça va lui passer" - }, - "MONO_FAIRY": { - "name": "Hey ! Listen !" - }, - "FRESH_START": { - "name": "Du premier coup !", - "description": "Terminer un challenge « Nouveau départ »." - } -} diff --git a/src/locales/fr/achv-male.json b/src/locales/fr/achv.json similarity index 87% rename from src/locales/fr/achv-male.json rename to src/locales/fr/achv.json index 077d37b4500..f83fa3079f2 100644 --- a/src/locales/fr/achv-male.json +++ b/src/locales/fr/achv.json @@ -9,16 +9,19 @@ "description": "Récolter un total de {{moneyAmount}} ₽." }, "10K_MONEY": { - "name": "Épargnant" + "name": "Épargnant", + "name_female": "Épargnante" }, "100K_MONEY": { "name": "Je possède des thunes" }, "1M_MONEY": { - "name": "Banquier" + "name": "Banquier", + "name_female": "Banquière" }, "10M_MONEY": { - "name": "Évadé fiscal" + "name": "Évadé fiscal", + "name_female": "Évadée fiscale" }, "DamageAchv": { "description": "Infliger {{damageAmount}} de dégâts en un coup." @@ -27,19 +30,23 @@ "name": "Caïd" }, "1000_DMG": { - "name": "Boxeur" + "name": "Boxeur", + "name_female": "Boxeuse" }, "2500_DMG": { - "name": "Distributeur de pains" + "name": "Distributeur de pains", + "name_female": "Distributrice de pains" }, "10000_DMG": { - "name": "One Punch Man" + "name": "One Punch Man", + "name_female": "One Punch Woman" }, "HealAchv": { "description": "Soigner {{healAmount}} {{HP}} en une fois avec une capacité,\nun talent ou un objet tenu." }, "250_HEAL": { - "name": "Infirmier" + "name": "Infirmier", + "name_female": "Infirmière" }, "1000_HEAL": { "name": "Médecin" @@ -66,19 +73,24 @@ "description": "Accumuler un total de {{ribbonAmount}} Rubans." }, "10_RIBBONS": { - "name": "Maitre de la Ligue" + "name": "Maitre de la Ligue", + "name_female": "Maitresse de la Ligue" }, "25_RIBBONS": { - "name": "Super Maitre de la Ligue" + "name": "Super Maitre de la Ligue", + "name_female": "Super Maitresse de la Ligue" }, "50_RIBBONS": { - "name": "Hyper Maitre de la Ligue" + "name": "Hyper Maitre de la Ligue", + "name_female": "Hyper Maitresse de la Ligue" }, "75_RIBBONS": { - "name": "Rogue Maitre de la Ligue" + "name": "Rogue Maitre de la Ligue", + "name_female": "Rogue Maitresse de la Ligue" }, "100_RIBBONS": { - "name": "Master Maitre de la Ligue" + "name": "Master Maitre de la Ligue", + "name_female": "Master Maitresse de la Ligue" }, "TRANSFER_MAX_BATTLE_STAT": { "name": "Travail d’équipe", @@ -130,6 +142,7 @@ }, "SHINY_PARTY": { "name": "Shasseur", + "name_female": "Shasseuse", "description": "Avoir une équipe exclusivement composée de Pokémon chromatiques." }, "HATCH_MYTHICAL": { @@ -158,6 +171,7 @@ }, "CLASSIC_VICTORY": { "name": "Invaincu", + "name_female": "Invaincue", "description": "Terminer le jeu en mode Classique." }, "UNEVOLVED_CLASSIC_VICTORY": { diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 37ec76f3a20..668812e6432 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const frConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/it/achv-male.json b/src/locales/it/achv-male.json deleted file mode 100644 index 98e41005c46..00000000000 --- a/src/locales/it/achv-male.json +++ /dev/null @@ -1,264 +0,0 @@ -{ - "Achievements": { - "name": "Obiettivi" - }, - "Locked": { - "name": "Bloccato" - }, - "MoneyAchv": { - "description": "Accumula {{moneyAmount}} PokéDollari" - }, - "10K_MONEY": { - "name": "Benestante" - }, - "100K_MONEY": { - "name": "Ricco" - }, - "1M_MONEY": { - "name": "Milionario" - }, - "10M_MONEY": { - "name": "La numero uno" - }, - "DamageAchv": { - "description": "Infliggi {{damageAmount}} danni in un colpo" - }, - "250_DMG": { - "name": "Grandi danni!" - }, - "1000_DMG": { - "name": "Incredibili danni" - }, - "2500_DMG": { - "name": "Danni a palate!" - }, - "10000_DMG": { - "name": "One Punch Man" - }, - "HealAchv": { - "description": "Cura {{healAmount}} {{HP}} tramite mossa, abilità, o oggetto" - }, - "250_HEAL": { - "name": "Paramedico" - }, - "1000_HEAL": { - "name": "Dottore" - }, - "2500_HEAL": { - "name": "Chierico" - }, - "10000_HEAL": { - "name": "Mastro Curatore" - }, - "LevelAchv": { - "description": "Porta un pokémon a Lv{{level}}" - }, - "LV_100": { - "name": "E Non Finisce Qui!" - }, - "LV_250": { - "name": "Elite" - }, - "LV_1000": { - "name": "Verso l'Infinito ed Oltre!" - }, - "RibbonAchv": { - "description": "Accumula un Totale di {{ribbonAmount}} Nastri" - }, - "10_RIBBONS": { - "name": "Campione Lega Pokémon" - }, - "25_RIBBONS": { - "name": "Campione Lega Estesa" - }, - "50_RIBBONS": { - "name": "Campione Lega Ultra" - }, - "75_RIBBONS": { - "name": "Campione Lega Rogue" - }, - "100_RIBBONS": { - "name": "Campione Lega Assoluta" - }, - "TRANSFER_MAX_BATTLE_STAT": { - "name": "Lavoro di Squadra", - "description": "Trasferisci almeno sei bonus statistiche tramite staffetta" - }, - "MAX_FRIENDSHIP": { - "name": "Amiconi", - "description": "Raggiungi amicizia massima con un Pokémon" - }, - "MEGA_EVOLVE": { - "name": "Megamorfosi", - "description": "Megaevolvi un Pokémon" - }, - "GIGANTAMAX": { - "name": "Grosso e Cattivo", - "description": "Ottieni una gigamax" - }, - "TERASTALLIZE": { - "name": "STAB Per Tutti", - "description": "Teracristallizza un Pokémon" - }, - "STELLAR_TERASTALLIZE": { - "name": "Tipo Segreto", - "description": "Teracristallizza un Pokémon stellare" - }, - "SPLICE": { - "name": "Fusione Infinita", - "description": "Fondi due Pokémon insieme tramite cuneo DNA" - }, - "MINI_BLACK_HOLE": { - "name": "Universo di Oggetti", - "description": "Ottieni un Mini Buco Nero" - }, - "CATCH_MYTHICAL": { - "name": "Mitico", - "description": "Cattura un Pokémon mitico" - }, - "CATCH_SUB_LEGENDARY": { - "name": "(Semi)Leggendario", - "description": "Cattura un Pokémon semileggendario" - }, - "CATCH_LEGENDARY": { - "name": "Leggendario", - "description": "Cattura un Pokémon leggendario" - }, - "SEE_SHINY": { - "name": "Cromatico", - "description": "Trova un Pokémon shiny in natura" - }, - "SHINY_PARTY": { - "name": "Dedizione Totale", - "description": "Riempi la squadra di Pokémon shiny" - }, - "HATCH_MYTHICAL": { - "name": "Uovo Mitico", - "description": "Schiudi l'uovo di un Pokémon mitico" - }, - "HATCH_SUB_LEGENDARY": { - "name": "Uovo (Semi)Leggendario", - "description": "Schiudi l'uovo di un Pokémon semileggendario" - }, - "HATCH_LEGENDARY": { - "name": "Uovo Leggendario", - "description": "Schiudi l'uovo di un Pokémon leggendario" - }, - "HATCH_SHINY": { - "name": "Uovo Cromatico", - "description": "Schiudi l'uovo di un Pokémon shiny" - }, - "HIDDEN_ABILITY": { - "name": "Potenziale Nascosto", - "description": "Cattura un Pokémon con abilità nascosta" - }, - "PERFECT_IVS": { - "name": "Certificato di Autenticità", - "description": "Ottieni un Pokémon con IV perfetti" - }, - "CLASSIC_VICTORY": { - "name": "Imbattuto", - "description": "Vinci in modalità classica" - }, - "UNEVOLVED_CLASSIC_VICTORY": { - "name": "Alternanza scuola-lavoro", - "description": "Completa la modalità classica con almeno un membro della squadra non evoluto completamente." - }, - "MONO_GEN_ONE": { - "name": "Rivale Originale", - "description": "Completa la modalità sfida di prima generazione." - }, - "MONO_GEN_TWO": { - "name": "Generazione 1.5", - "description": "Completa la modalità sfida di seconda generazione." - }, - "MONO_GEN_THREE": { - "name": "Troppa Acqua?", - "description": "Completa la modalità sfida di terza generazione." - }, - "MONO_GEN_FOUR": { - "name": "È Davvero La Più Forte?", - "description": "Completa la modalità sfida di quarta generazione." - }, - "MONO_GEN_FIVE": { - "name": "Tutti Originali", - "description": "Completa la modalità sfida di quinta generazione." - }, - "MONO_GEN_SIX": { - "name": "Vita e Morte", - "description": "Completa la modalità sfida di sesta generazione." - }, - "MONO_GEN_SEVEN": { - "name": "Troppo amichevoli?", - "description": "Completa la modalità sfida di settima generazione." - }, - "MONO_GEN_EIGHT": { - "name": "It's champion time!", - "description": "Completa la modalità sfida di ottava generazione." - }, - "MONO_GEN_NINE": { - "name": "Paradossalmente sbalorditivi", - "description": "Completa la modalità sfida di nona generazione." - }, - "MonoType": { - "description": "Completa la modalità sfida monotipo {{type}}" - }, - "MONO_NORMAL": { - "name": "Un tipo semplice" - }, - "MONO_FIGHTING": { - "name": "Conosco il Kung-fu" - }, - "MONO_FLYING": { - "name": "È un uccello? È un aereo?" - }, - "MONO_POISON": { - "name": "I migliori di Kanto" - }, - "MONO_GROUND": { - "name": "Con i piedi per terra" - }, - "MONO_ROCK": { - "name": "Forte come una roccia!" - }, - "MONO_BUG": { - "name": "Metodo Guzma" - }, - "MONO_GHOST": { - "name": "Sono fantasmi, caro Watson" - }, - "MONO_STEEL": { - "name": "Pugno di ferro" - }, - "MONO_FIRE": { - "name": "Giocare col fuoco" - }, - "MONO_WATER": { - "name": "Piove sul bagnato" - }, - "MONO_GRASS": { - "name": "L'erba del vicino è sempre più verde" - }, - "MONO_ELECTRIC": { - "name": "Elettrizzante" - }, - "MONO_PSYCHIC": { - "name": "Mentalista" - }, - "MONO_ICE": { - "name": "Rompere il ghiaccio" - }, - "MONO_DRAGON": { - "name": "Sangue di drago" - }, - "MONO_DARK": { - "name": "Solo una fase" - }, - "MONO_FAIRY": { - "name": "Follettini e follettine" - }, - "FRESH_START": { - "name": "Buona la prima!", - "description": "Completa la modalità sfida 'Un nuovo inizio'." - } -} \ No newline at end of file diff --git a/src/locales/it/achv-female.json b/src/locales/it/achv.json similarity index 100% rename from src/locales/it/achv-female.json rename to src/locales/it/achv.json diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index c671851f6a9..6bb46273370 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const itConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/ja/achv-male.json b/src/locales/ja/achv-male.json deleted file mode 100644 index 0dc5dc8185a..00000000000 --- a/src/locales/ja/achv-male.json +++ /dev/null @@ -1,264 +0,0 @@ -{ - "Achievements": { - "name": "実績" - }, - "Locked": { - "name": "なし" - }, - "MoneyAchv": { - "description": "一回の ランで ₽{{moneyAmount}}を 稼ぐ" - }, - "10K_MONEY": { - "name": "お金を持つ人" - }, - "100K_MONEY": { - "name": "富豪" - }, - "1M_MONEY": { - "name": "百万長者" - }, - "10M_MONEY": { - "name": "超富裕層" - }, - "DamageAchv": { - "description": "一撃で {{damageAmount}}ダメージを 与える" - }, - "250_DMG": { - "name": "力持ち" - }, - "1000_DMG": { - "name": "強者" - }, - "2500_DMG": { - "name": "カカロット" - }, - "10000_DMG": { - "name": "ワンパンマン" - }, - "HealAchv": { - "description": "一つの 技や 特性や 持っているアイテムで {{healAmount}}{{HP}}を 一気に 回復する" - }, - "250_HEAL": { - "name": "回復発見者" - }, - "1000_HEAL": { - "name": "大いなる治療者" - }, - "2500_HEAL": { - "name": "回復達人" - }, - "10000_HEAL": { - "name": "ジョーイさん" - }, - "LevelAchv": { - "description": "一つの ポケモンを Lv{{level}}まで レベルアップする" - }, - "LV_100": { - "name": "まだまだだよ" - }, - "LV_250": { - "name": "天王" - }, - "LV_1000": { - "name": "向こうの向こうを超え" - }, - "RibbonAchv": { - "description": "{{ribbonAmount}}巻の リボンを 積もる" - }, - "10_RIBBONS": { - "name": "ポケモンリーグチャンピオン" - }, - "25_RIBBONS": { - "name": "スーパーリーグチャンピオン" - }, - "50_RIBBONS": { - "name": "ハイパーリーグチャンピオン" - }, - "75_RIBBONS": { - "name": "ローグリーグチャンピオン" - }, - "100_RIBBONS": { - "name": "マスターリーグチャンピオン" - }, - "TRANSFER_MAX_BATTLE_STAT": { - "name": "同力", - "description": "少なくとも 一つの 能力を 最大まで あげて 他の 手持ちポケモンに バトンタッチする" - }, - "MAX_FRIENDSHIP": { - "name": "マブ達", - "description": "一つの 手持ちポケモンの 仲良し度を 最大に 上げる" - }, - "MEGA_EVOLVE": { - "name": "ザ・アブソリュート", - "description": "一つの 手持ちポケモンを メガシンカさせる" - }, - "GIGANTAMAX": { - "name": "太―くて 堪らない", - "description": "一つの 手持ちポケモンを キョダイマックスさせる" - }, - "TERASTALLIZE": { - "name": "一致好き", - "description": "一つの 手持ちポケモンを テラスタルさせる" - }, - "STELLAR_TERASTALLIZE": { - "name": "隠れたタイプ", - "description": "一つの 手持ちポケモンを ステラ・テラスタルさせる" - }, - "SPLICE": { - "name": "インフィニット・フュジョン", - "description": "いでんしのくさびで 二つの ポケモンを 吸収合体させる" - }, - "MINI_BLACK_HOLE": { - "name": "アイテムホーリック", - "description": "ミニブラックホールを 手に入れる" - }, - "CATCH_MYTHICAL": { - "name": "幻", - "description": "幻の ポケモンを 捕まえる" - }, - "CATCH_SUB_LEGENDARY": { - "name": "準・伝説", - "description": "準伝説の ポケモンを 捕まえる" - }, - "CATCH_LEGENDARY": { - "name": "ザ・伝説", - "description": "伝説の ポケモンを 捕まえる" - }, - "SEE_SHINY": { - "name": "色とりどりに光る", - "description": "野生の 色違いポケモンを みつける" - }, - "SHINY_PARTY": { - "name": "きらきら努力家", - "description": "手持ちポケモンは 全員 色違いポケモンに する" - }, - "HATCH_MYTHICAL": { - "name": "幻のタマゴ", - "description": "幻の ポケモンを タマゴから 生まれる" - }, - "HATCH_SUB_LEGENDARY": { - "name": "準伝説のタマゴ", - "description": "準伝説の ポケモンを タマゴから 生まれる" - }, - "HATCH_LEGENDARY": { - "name": "伝説のタマゴ", - "description": "伝説の ポケモンを タマゴから 生まれる" - }, - "HATCH_SHINY": { - "name": "色違いタマゴ", - "description": "色違いポケモンを タマゴから 生まれる" - }, - "HIDDEN_ABILITY": { - "name": "底力", - "description": "隠れ特性がある ポケモンを 捕まえる" - }, - "PERFECT_IVS": { - "name": "個体値の賞状", - "description": "一つの ポケモンの 個体値を すべて 最大に する" - }, - "CLASSIC_VICTORY": { - "name": "無双", - "description": "クラシックモードを クリアする" - }, - "UNEVOLVED_CLASSIC_VICTORY": { - "name": "Bring Your Child To Work Day", - "description": "Beat the game in Classic Mode with at least one unevolved party member." - }, - "MONO_GEN_ONE": { - "name": "原始", - "description": "1世代の 単一世代チャレンジを クリアする" - }, - "MONO_GEN_TWO": { - "name": "懐かしいカンジョウ", - "description": "2世代の 単一世代チャレンジを クリアする" - }, - "MONO_GEN_THREE": { - "name": "水浸し", - "description": "3世代の 単一世代チャレンジを クリアする" - }, - "MONO_GEN_FOUR": { - "name": "神々の地", - "description": "4世代の 単一世代チャレンジを クリアする" - }, - "MONO_GEN_FIVE": { - "name": "ニューヨーカー", - "description": "5世代の 単一世代チャレンジを クリアする" - }, - "MONO_GEN_SIX": { - "name": "サヴァ・サヴァ", - "description": "6世代の 単一世代チャレンジを クリアする" - }, - "MONO_GEN_SEVEN": { - "name": "アローラ・オエ", - "description": "7世代の 単一世代チャレンジを クリアする" - }, - "MONO_GEN_EIGHT": { - "name": "チャンピオン タイムを 楽しめ!", - "description": "8世代の 単一世代チャレンジを クリアする" - }, - "MONO_GEN_NINE": { - "name": "ネモに甘えたでしょう", - "description": "9世代の 単一世代チャレンジを クリアする" - }, - "MonoType": { - "description": "{{type}}タイプの 単一タイプチャレンジを クリアする" - }, - "MONO_NORMAL": { - "name": "凡人" - }, - "MONO_FIGHTING": { - "name": "八千以上だ!!" - }, - "MONO_FLYING": { - "name": "翼をください" - }, - "MONO_POISON": { - "name": "カントーの名物" - }, - "MONO_GROUND": { - "name": "自信でユラユラ" - }, - "MONO_ROCK": { - "name": "タケシの挑戦状" - }, - "MONO_BUG": { - "name": "チョウチョウせん者" - }, - "MONO_GHOST": { - "name": "貞子ちゃん" - }, - "MONO_STEEL": { - "name": "ハガネーター" - }, - "MONO_FIRE": { - "name": "NIGHT OF FIRE" - }, - "MONO_WATER": { - "name": "土砂降リスト" - }, - "MONO_GRASS": { - "name": "www" - }, - "MONO_ELECTRIC": { - "name": "パチピカペコ" - }, - "MONO_PSYCHIC": { - "name": "陽キャ" - }, - "MONO_ICE": { - "name": "ありのまま" - }, - "MONO_DRAGON": { - "name": "龍が如く" - }, - "MONO_DARK": { - "name": "陰キャ" - }, - "MONO_FAIRY": { - "name": "あらハート満タンになった" - }, - "FRESH_START": { - "name": "一発で!", - "description": "出直しチャレンジを クリアする" - } -} \ No newline at end of file diff --git a/src/locales/ja/achv-female.json b/src/locales/ja/achv.json similarity index 100% rename from src/locales/ja/achv-female.json rename to src/locales/ja/achv.json diff --git a/src/locales/ja/config.ts b/src/locales/ja/config.ts index b459ee12a9a..5fbf0497d94 100644 --- a/src/locales/ja/config.ts +++ b/src/locales/ja/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const jaConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/ko/achv-male.json b/src/locales/ko/achv-male.json deleted file mode 100644 index 73753dd9b5a..00000000000 --- a/src/locales/ko/achv-male.json +++ /dev/null @@ -1,264 +0,0 @@ -{ - "Achievements": { - "name": "업적" - }, - "Locked": { - "name": "미완료" - }, - "MoneyAchv": { - "description": "누적 소지금 ₽{{moneyAmount}} 달성" - }, - "10K_MONEY": { - "name": "돈 좀 있나?" - }, - "100K_MONEY": { - "name": "부자" - }, - "1M_MONEY": { - "name": "백만장자" - }, - "10M_MONEY": { - "name": "상위 1프로" - }, - "DamageAchv": { - "description": "한 번의 공격만으로 {{damageAmount}} 데미지" - }, - "250_DMG": { - "name": "강타자" - }, - "1000_DMG": { - "name": "최강타자" - }, - "2500_DMG": { - "name": "때릴 줄 아시는군요!" - }, - "10000_DMG": { - "name": "원펀맨" - }, - "HealAchv": { - "description": "기술이나 특성, 지닌 도구로 한 번에 {{healAmount}} {{HP}} 회복" - }, - "250_HEAL": { - "name": "견습 힐러" - }, - "1000_HEAL": { - "name": "상급 힐러" - }, - "2500_HEAL": { - "name": "클레릭" - }, - "10000_HEAL": { - "name": "회복 마스터" - }, - "LevelAchv": { - "description": "포켓몬 Lv{{level}} 달성" - }, - "LV_100": { - "name": "잠깐, 여기가 끝이 아니라구!" - }, - "LV_250": { - "name": "엘리트" - }, - "LV_1000": { - "name": "더 먼 곳을 향해" - }, - "RibbonAchv": { - "description": "총 {{ribbonAmount}}개의 리본 획득" - }, - "10_RIBBONS": { - "name": "포켓몬 리그 챔피언" - }, - "25_RIBBONS": { - "name": "슈퍼 리그 챔피언" - }, - "50_RIBBONS": { - "name": "하이퍼 리그 챔피언" - }, - "75_RIBBONS": { - "name": "로그 리그 챔피언" - }, - "100_RIBBONS": { - "name": "마스터 리그 챔피언" - }, - "TRANSFER_MAX_BATTLE_STAT": { - "name": "팀워크", - "description": "한 개 이상의 능력치가 최대 랭크일 때 배턴터치 사용" - }, - "MAX_FRIENDSHIP": { - "name": "친밀 맥스", - "description": "최대 친밀도 달성" - }, - "MEGA_EVOLVE": { - "name": "메가변환", - "description": "포켓몬을 메가진화" - }, - "GIGANTAMAX": { - "name": "엄청난 것", - "description": "포켓몬을 다이맥스" - }, - "TERASTALLIZE": { - "name": "반짝반짝", - "description": "포켓몬을 테라스탈" - }, - "STELLAR_TERASTALLIZE": { - "name": "숨겨진 타입", - "description": "포켓몬을 스텔라 테라스탈" - }, - "SPLICE": { - "name": "끝없는 융합", - "description": "유전자쐐기로 두 포켓몬을 융합" - }, - "MINI_BLACK_HOLE": { - "name": "도구가 가득한 구멍", - "description": "미니 블랙홀 획득" - }, - "CATCH_MYTHICAL": { - "name": "환상", - "description": "환상의 포켓몬 포획" - }, - "CATCH_SUB_LEGENDARY": { - "name": "(준)전설", - "description": "준전설 포켓몬 포획" - }, - "CATCH_LEGENDARY": { - "name": "전설", - "description": "전설의 포켓몬 포획" - }, - "SEE_SHINY": { - "name": "다른 색", - "description": "야생의 색이 다른 포켓몬 발견" - }, - "SHINY_PARTY": { - "name": "찐사랑", - "description": "색이 다른 포켓몬만으로 파티 구성" - }, - "HATCH_MYTHICAL": { - "name": "환상의 알", - "description": "알에서 환상의 포켓몬이 부화" - }, - "HATCH_SUB_LEGENDARY": { - "name": "준전설 알", - "description": "알에서 준전설 포켓몬이 부화" - }, - "HATCH_LEGENDARY": { - "name": "전설의 알", - "description": "알에서 전설의 포켓몬이 부화" - }, - "HATCH_SHINY": { - "name": "빛나는 알", - "description": "알에서 색이 다른 포켓몬이 부화" - }, - "HIDDEN_ABILITY": { - "name": "숨은 잠재력", - "description": "숨겨진 특성을 지닌 포켓몬을 포획" - }, - "PERFECT_IVS": { - "name": "진짜배기 증명서", - "description": "최고의 개체값을 지닌 포켓몬 획득" - }, - "CLASSIC_VICTORY": { - "name": "무패", - "description": "클래식 모드 클리어" - }, - "UNEVOLVED_CLASSIC_VICTORY": { - "name": "우리집 꿈나무", - "description": "최종 진화형이 아닌 포켓몬을 데리고 클래식 모드 클리어." - }, - "MONO_GEN_ONE": { - "name": "근본 라이벌", - "description": "1세대 챌린지 모드 클리어." - }, - "MONO_GEN_TWO": { - "name": "이거 1.5세대죠?", - "description": "2세대 챌린지 모드 클리어." - }, - "MONO_GEN_THREE": { - "name": "Too much water?", - "description": "3세대 챌린지 모드 클리어." - }, - "MONO_GEN_FOUR": { - "name": "난천이 진짜 최강인가요?", - "description": "4세대 챌린지 모드 클리어." - }, - "MONO_GEN_FIVE": { - "name": "100% 오리지널!", - "description": "5세대 챌린지 모드 클리어." - }, - "MONO_GEN_SIX": { - "name": "크루아상 안에 뭐 들었나요?", - "description": "6세대 챌린지 모드 클리어." - }, - "MONO_GEN_SEVEN": { - "name": "기술적으로는…", - "description": "7세대 챌린지 모드 클리어." - }, - "MONO_GEN_EIGHT": { - "name": "챔피언 타임!", - "description": "8세대 챌린지 모드 클리어." - }, - "MONO_GEN_NINE": { - "name": "걔, 봐 준 거야", - "description": "9세대 챌린지 모드 클리어." - }, - "MonoType": { - "description": "{{type}} 타입 챌린지 모드 클리어." - }, - "MONO_NORMAL": { - "name": "심플한 것이 가장 강한 것" - }, - "MONO_FIGHTING": { - "name": "태권도 할 줄 알아요" - }, - "MONO_FLYING": { - "name": "추락하는 것은 날개가 있다" - }, - "MONO_POISON": { - "name": "관동 지방 최애 타입" - }, - "MONO_GROUND": { - "name": "전기 안 통해요" - }, - "MONO_ROCK": { - "name": "웅골참" - }, - "MONO_BUG": { - "name": "독침붕처럼 쏴라" - }, - "MONO_GHOST": { - "name": "누굴 부를 거야?" - }, - "MONO_STEEL": { - "name": "강철 심장" - }, - "MONO_FIRE": { - "name": "불타오르네" - }, - "MONO_WATER": { - "name": "물 들어올 때 노 젓기" - }, - "MONO_GRASS": { - "name": "초록은 동색" - }, - "MONO_ELECTRIC": { - "name": "찌릿찌릿" - }, - "MONO_PSYCHIC": { - "name": "1세대 최강" - }, - "MONO_ICE": { - "name": "얼음땡" - }, - "MONO_DRAGON": { - "name": "용용 죽겠지" - }, - "MONO_DARK": { - "name": "어둠의 다크" - }, - "MONO_FAIRY": { - "name": "설마 자시안으로?" - }, - "FRESH_START": { - "name": "첫트!", - "description": "새 출발 챌린지 모드 클리어." - } -} \ No newline at end of file diff --git a/src/locales/ko/achv-female.json b/src/locales/ko/achv.json similarity index 100% rename from src/locales/ko/achv-female.json rename to src/locales/ko/achv.json diff --git a/src/locales/ko/config.ts b/src/locales/ko/config.ts index b5b34cea0ae..392f2f72053 100644 --- a/src/locales/ko/config.ts +++ b/src/locales/ko/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const koConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/pt_BR/achv-female.json b/src/locales/pt_BR/achv-female.json deleted file mode 100644 index e81cba6f9ca..00000000000 --- a/src/locales/pt_BR/achv-female.json +++ /dev/null @@ -1,264 +0,0 @@ -{ - "Achievements": { - "name": "Conquistas" - }, - "Locked": { - "name": "Não conquistado" - }, - "MoneyAchv": { - "description": "Acumule um total de ₽{{moneyAmount}}" - }, - "10K_MONEY": { - "name": "Chuva de Dinheiro" - }, - "100K_MONEY": { - "name": "Tô Rica!" - }, - "1M_MONEY": { - "name": "Quem Quer Ser Um Milionário?" - }, - "10M_MONEY": { - "name": "Tio Patinhas" - }, - "DamageAchv": { - "description": "Inflija {{damageAmount}} de dano em um único golpe" - }, - "250_DMG": { - "name": "Essa Doeu!" - }, - "1000_DMG": { - "name": "Essa Doeu Mais!" - }, - "2500_DMG": { - "name": "Essa Doeu Muito!" - }, - "10000_DMG": { - "name": "Essa Doeu Pra Caramba!" - }, - "HealAchv": { - "description": "Cure {{healAmount}} {{HP}} de uma vez só com um movimento, habilidade ou item segurado" - }, - "250_HEAL": { - "name": "Residente" - }, - "1000_HEAL": { - "name": "Enfermeira" - }, - "2500_HEAL": { - "name": "Médica" - }, - "10000_HEAL": { - "name": "Médica de Plantão" - }, - "LevelAchv": { - "description": "Aumente o nível de um Pokémon para o Nv{{level}}" - }, - "LV_100": { - "name": "Calma Que Tem Mais!" - }, - "LV_250": { - "name": "Treinadora de Elite" - }, - "LV_1000": { - "name": "Ao Infinito e Além!" - }, - "RibbonAchv": { - "description": "Acumule um total de {{ribbonAmount}} Fitas" - }, - "10_RIBBONS": { - "name": "Fita de Bronze" - }, - "25_RIBBONS": { - "name": "Fita de Prata" - }, - "50_RIBBONS": { - "name": "Fita de Ouro" - }, - "75_RIBBONS": { - "name": "Fita de Platina" - }, - "100_RIBBONS": { - "name": "Fita de Diamante" - }, - "TRANSFER_MAX_BATTLE_STAT": { - "name": "Trabalho em Equipe", - "description": "Use Baton Pass com pelo menos um atributo aumentado ao máximo" - }, - "MAX_FRIENDSHIP": { - "name": "Melhores Amigos", - "description": "Alcance a amizade máxima com um Pokémon" - }, - "MEGA_EVOLVE": { - "name": "Megamorfose", - "description": "Megaevolua um Pokémon" - }, - "GIGANTAMAX": { - "name": "Ficou Gigante!", - "description": "Gigantamax um Pokémon" - }, - "TERASTALLIZE": { - "name": "Terastalização", - "description": "Terastalize um Pokémon" - }, - "STELLAR_TERASTALLIZE": { - "name": "Estrela Cadente", - "description": "Terastalize um Pokémon para o tipo Estelar" - }, - "SPLICE": { - "name": "Fusão!", - "description": "Funda dois Pokémon com um Splicer de DNA" - }, - "MINI_BLACK_HOLE": { - "name": "Buraco Sem Fundo", - "description": "Adquira um Mini Buraco Negro" - }, - "CATCH_MYTHICAL": { - "name": "Mítico", - "description": "Capture um Pokémon Mítico" - }, - "CATCH_SUB_LEGENDARY": { - "name": "Quase Lendário", - "description": "Capture um Pokémon Semi-Lendário" - }, - "CATCH_LEGENDARY": { - "name": "Lendário", - "description": "Capture um Pokémon Lendário" - }, - "SEE_SHINY": { - "name": "Ué, Tá Brilhando?", - "description": "Encontre um Pokémon Shiny selvagem" - }, - "SHINY_PARTY": { - "name": "Tá Todo Mundo Brilhando!", - "description": "Tenha uma equipe formada por 6 Pokémon Shiny" - }, - "HATCH_MYTHICAL": { - "name": "Ovo Mítico", - "description": "Choque um Pokémon Mítico" - }, - "HATCH_SUB_LEGENDARY": { - "name": "Ovo Semi-Lendário", - "description": "Choque um Pokémon Semi-Lendário" - }, - "HATCH_LEGENDARY": { - "name": "Ovo Lendário", - "description": "Choque um Pokémon Lendário" - }, - "HATCH_SHINY": { - "name": "Ovo Shiny", - "description": "Choque um Pokémon Shiny" - }, - "HIDDEN_ABILITY": { - "name": "Potencial Oculto", - "description": "Capture um Pokémon com uma Habilidade Oculta" - }, - "PERFECT_IVS": { - "name": "Perfeição Certificada", - "description": "Obtenha IVs perfeitos em um Pokémon" - }, - "CLASSIC_VICTORY": { - "name": "Invencível", - "description": "Vença o jogo no modo clássico" - }, - "UNEVOLVED_CLASSIC_VICTORY": { - "name": "Tire as Crianças da Sala", - "description": "Vença o jogo no Modo Clássico com pelo menos um membro da equipe não evoluído." - }, - "MONO_GEN_ONE": { - "name": "O Início de Tudo", - "description": "Complete o desafio da geração um." - }, - "MONO_GEN_TWO": { - "name": "Geração 1.5", - "description": "Complete o desafio da geração dois." - }, - "MONO_GEN_THREE": { - "name": "Será que tem muita água?", - "description": "Complete o desafio da geração três." - }, - "MONO_GEN_FOUR": { - "name": "Essa foi a mais difícil?", - "description": "Complete o desafio da geração quatro." - }, - "MONO_GEN_FIVE": { - "name": "Nada original", - "description": "Complete o desafio da geração cinco." - }, - "MONO_GEN_SIX": { - "name": "Esse croissant tem recheio?", - "description": "Complete o desafio da geração seis." - }, - "MONO_GEN_SEVEN": { - "name": "Z-Move ou Se vira nos 30?", - "description": "Complete o desafio da geração sete." - }, - "MONO_GEN_EIGHT": { - "name": "Finalmente ele ganhou!", - "description": "Complete o desafio da geração oito." - }, - "MONO_GEN_NINE": { - "name": "Isso aqui tá muito fácil!", - "description": "Complete o desafio da geração nove." - }, - "MonoType": { - "description": "Complete o desafio de monotipo {{type}}." - }, - "MONO_NORMAL": { - "name": "Extra Ordinário" - }, - "MONO_FIGHTING": { - "name": "Briga de Rua" - }, - "MONO_FLYING": { - "name": "Rinha de Pidgeys" - }, - "MONO_POISON": { - "name": "Menina Veneno" - }, - "MONO_GROUND": { - "name": "Comendo Poeira" - }, - "MONO_ROCK": { - "name": "...Tanto Bate Até Que Fura" - }, - "MONO_BUG": { - "name": "Vida de Inseto" - }, - "MONO_GHOST": { - "name": "Fantasminha Camarada" - }, - "MONO_STEEL": { - "name": "Levantando Ferro" - }, - "MONO_FIRE": { - "name": "Tá Pegando Fogo, Bicho!" - }, - "MONO_WATER": { - "name": "Água Mole em Pedra Dura..." - }, - "MONO_GRASS": { - "name": "Jardim Botânico" - }, - "MONO_ELECTRIC": { - "name": "Choque de Realidade" - }, - "MONO_PSYCHIC": { - "name": "Preciso de Terapia" - }, - "MONO_ICE": { - "name": "Era do Gelo" - }, - "MONO_DRAGON": { - "name": "Caverna do Dragão" - }, - "MONO_DARK": { - "name": "É Só Uma Fase" - }, - "MONO_FAIRY": { - "name": "Clube das Winx" - }, - "FRESH_START": { - "name": "De Primeira!", - "description": "Complete o desafio de novo começo." - } -} \ No newline at end of file diff --git a/src/locales/pt_BR/achv-male.json b/src/locales/pt_BR/achv.json similarity index 95% rename from src/locales/pt_BR/achv-male.json rename to src/locales/pt_BR/achv.json index 428dd5c633b..aee3dd48cc5 100644 --- a/src/locales/pt_BR/achv-male.json +++ b/src/locales/pt_BR/achv.json @@ -42,13 +42,16 @@ "name": "Residente" }, "1000_HEAL": { - "name": "Enfermeiro" + "name": "Enfermeiro", + "name_female": "Enfermeira" }, "2500_HEAL": { - "name": "Médico" + "name": "Médico", + "name_female": "Médica" }, "10000_HEAL": { - "name": "Médico de Plantão" + "name": "Médico de Plantão", + "name_female": "Médica de Plantão" }, "LevelAchv": { "description": "Aumente o nível de um Pokémon para o Nv{{level}}" @@ -57,7 +60,8 @@ "name": "Calma Que Tem Mais!" }, "LV_250": { - "name": "Treinador de Elite" + "name": "Treinador de Elite", + "name_female": "Treinadora de Elite" }, "LV_1000": { "name": "Ao Infinito e Além!" diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 9cc8fe313a2..9d7dee178b6 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const ptBrConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/zh_CN/achv-male.json b/src/locales/zh_CN/achv-male.json deleted file mode 100644 index 103a9bb41b5..00000000000 --- a/src/locales/zh_CN/achv-male.json +++ /dev/null @@ -1,272 +0,0 @@ -{ - "Achievements": { - "name": "成就" - }, - "Locked": { - "name": "未解锁" - }, - - "MoneyAchv": { - "description": "累计获得 ₽{{moneyAmount}}" - }, - "10K_MONEY": { - "name": "小有积蓄" - }, - "100K_MONEY": { - "name": "大户人家" - }, - "1M_MONEY": { - "name": "百万富翁" - }, - "10M_MONEY": { - "name": "暴发户" - }, - - "DamageAchv": { - "description": "在单次攻击中造成 {{damageAmount}} 点伤害" - }, - "250_DMG": { - "name": "重拳出击" - }, - "1000_DMG": { - "name": "神拳猛击" - }, - "2500_DMG": { - "name": "夺少?" - }, - "10000_DMG": { - "name": "一拳超人" - }, - - "HealAchv": { - "description": "通过技能、能力或携带的道具一次性治疗 {{healAmount}} {{HP}}点" - }, - "250_HEAL": { - "name": "新手奶妈" - }, - "1000_HEAL": { - "name": "治疗担当" - }, - "2500_HEAL": { - "name": "牧师" - }, - "10000_HEAL": { - "name": "泉水" - }, - - "LevelAchv": { - "description": "将一只宝可梦提升到 Lv{{level}}" - }, - "LV_100": { - "name": "别急,后面还有" - }, - "LV_250": { - "name": "精英" - }, - "LV_1000": { - "name": "天外有天" - }, - - "RibbonAchv": { - "description": "累计获得 {{ribbonAmount}} 个勋章" - }, - "10_RIBBONS": { - "name": "宝可梦联盟冠军" - }, - "25_RIBBONS": { - "name": "超级球联盟冠军" - }, - "50_RIBBONS": { - "name": "高级球联盟冠军" - }, - "75_RIBBONS": { - "name": "肉鸽球联盟冠军" - }, - "100_RIBBONS": { - "name": "大师球联盟冠军" - }, - - "TRANSFER_MAX_BATTLE_STAT": { - "name": "团队协作", - "description": "在一项属性强化至最大时用接力棒传递给其他宝可梦" - }, - "MAX_FRIENDSHIP": { - "name": "亲密无间", - "description": "使一只宝可梦的亲密度达到最大值" - }, - "MEGA_EVOLVE": { - "name": "大变身", - "description": "超级进化一只宝可梦" - }, - "GIGANTAMAX": { - "name": "这位更是重量级", - "description": "极巨化一只宝可梦" - }, - "TERASTALLIZE": { - "name": "本系爱好者", - "description": "太晶化一只宝可梦" - }, - "STELLAR_TERASTALLIZE": { - "name": "隐藏属性", - "description": "星晶化一只宝可梦" - }, - "SPLICE": { - "name": "无限融合", - "description": "使用基因之楔将两只宝可梦融合在一起" - }, - "MINI_BLACK_HOLE": { - "name": "一大洞的道具", - "description": "获得一个迷你黑洞" - }, - "CATCH_MYTHICAL": { - "name": "神秘礼物", - "description": "捕捉一只幻之宝可梦" - }, - "CATCH_SUB_LEGENDARY": { - "name": "二级传说", - "description": "捕捉一只二级传说宝可梦" - }, - "CATCH_LEGENDARY": { - "name": "传说", - "description": "捕捉一只传说宝可梦" - }, - "SEE_SHINY": { - "name": "闪耀夺目", - "description": "在野外找到一只闪光宝可梦" - }, - "SHINY_PARTY": { - "name": "呕心沥血", - "description": "拥有一支由闪光宝可梦组成的满员队伍" - }, - "HATCH_MYTHICAL": { - "name": "幻兽蛋", - "description": "从蛋中孵化出一只幻之宝可梦" - }, - "HATCH_SUB_LEGENDARY": { - "name": "二级传说蛋", - "description": "从蛋中孵化出一只二级传说宝可梦" - }, - "HATCH_LEGENDARY": { - "name": "传说蛋", - "description": "从蛋中孵化出一只传说宝可梦" - }, - "HATCH_SHINY": { - "name": "金色传说!", - "description": "从蛋中孵化出一只闪光宝可梦" - }, - "HIDDEN_ABILITY": { - "name": "隐藏实力", - "description": "捕捉一只拥有隐藏特性的宝可梦" - }, - "PERFECT_IVS": { - "name": "合格证", - "description": "获得一只拥有完美个体值的宝可梦" - }, - "CLASSIC_VICTORY": { - "name": "战无不胜", - "description": "在经典模式中通关游戏" - }, - "UNEVOLVED_CLASSIC_VICTORY": { - "name": "带孩子来上班", - "description": "通关经典模式时队伍中至少有一名未进化的宝可梦" - }, - - "MONO_GEN_ONE": { - "name": "最初的劲敌", - "description": "完成仅限第一世代的挑战" - }, - "MONO_GEN_TWO": { - "name": "1.5世代", - "description": "完成仅限第二世代的挑战" - }, - "MONO_GEN_THREE": { - "name": "“水太多了”", - "description": "完成仅限第三世代的挑战" - }, - "MONO_GEN_FOUR": { - "name": "她真是最强冠军吗?", - "description": "完成仅限第四世代的挑战" - }, - "MONO_GEN_FIVE": { - "name": "完全原创", - "description": "完成仅限第五世代的挑战" - }, - "MONO_GEN_SIX": { - "name": "女大公", - "description": "完成仅限第六世代的挑战" - }, - "MONO_GEN_SEVEN": { - "name": "首届冠军", - "description": "完成仅限第七世代的挑战" - }, - "MONO_GEN_EIGHT": { - "name": "冠军时刻!", - "description": "完成仅限第八世代的挑战" - }, - "MONO_GEN_NINE": { - "name": "她又放水了", - "description": "完成仅限第九世代的挑战" - }, - - "MonoType": { - "description": "完成 {{type}} 单属性挑战" - }, - "MONO_NORMAL": { - "name": "异乎寻常的寻常" - }, - "MONO_FIGHTING": { - "name": "我有真功夫" - }, - "MONO_FLYING": { - "name": "愤怒的小鸟" - }, - "MONO_POISON": { - "name": "关都地区特色" - }, - "MONO_GROUND": { - "name": "地震预报" - }, - "MONO_ROCK": { - "name": "坚如磐石" - }, - "MONO_BUG": { - "name": "音箱蟀侠" - }, - "MONO_GHOST": { - "name": "捉鬼敢死队" - }, - "MONO_STEEL": { - "name": "铁巨人" - }, - "MONO_FIRE": { - "name": "搓火球解决一切" - }, - "MONO_WATER": { - "name": "当雨来临,倾盆而下" - }, - "MONO_GRASS": { - "name": "别踏这个青" - }, - "MONO_ELECTRIC": { - "name": "瞄准大岩蛇的角!" - }, - "MONO_PSYCHIC": { - "name": "脑洞大开" - }, - "MONO_ICE": { - "name": "如履薄冰" - }, - "MONO_DRAGON": { - "name": "准神俱乐部" - }, - "MONO_DARK": { - "name": "总有叛逆期" - }, - "MONO_FAIRY": { - "name": "林克,醒醒!" - }, - "FRESH_START": { - "name": "初次尝试!", - "description": "完成初次尝试挑战" - } -} diff --git a/src/locales/zh_CN/achv-female.json b/src/locales/zh_CN/achv.json similarity index 100% rename from src/locales/zh_CN/achv-female.json rename to src/locales/zh_CN/achv.json diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 7c29262ac1a..021e14d9727 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const zhCnConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/locales/zh_TW/achv-male.json b/src/locales/zh_TW/achv-male.json deleted file mode 100644 index dcd6f26ae82..00000000000 --- a/src/locales/zh_TW/achv-male.json +++ /dev/null @@ -1,256 +0,0 @@ -{ - "Achievements": { - "name": "成就" - }, - "Locked": { - "name": "未解鎖" - }, - "MoneyAchv": { - "description": "累計獲得 ₽{{moneyAmount}}" - }, - "10K_MONEY": { - "name": "小有積蓄" - }, - "100K_MONEY": { - "name": "大戶人家" - }, - "1M_MONEY": { - "name": "百萬富翁" - }, - "10M_MONEY": { - "name": "暴發戶" - }, - "DamageAchv": { - "description": "在單次攻擊中造成 {{damageAmount}} 點傷害" - }, - "250_DMG": { - "name": "重拳出擊" - }, - "1000_DMG": { - "name": "神拳猛擊" - }, - "2500_DMG": { - "name": "奪少?" - }, - "10000_DMG": { - "name": "一拳超人" - }, - "HealAchv": { - "description": "通過技能、能力或攜帶的道具一次性治療 {{healAmount}} {{HP}}點" - }, - "250_HEAL": { - "name": "新手奶媽" - }, - "1000_HEAL": { - "name": "治療擔當" - }, - "2500_HEAL": { - "name": "牧師" - }, - "10000_HEAL": { - "name": "泉水" - }, - "LevelAchv": { - "description": "將一隻寶可夢提升到 Lv{{level}}" - }, - "LV_100": { - "name": "别急,後面還有" - }, - "LV_250": { - "name": "精英" - }, - "LV_1000": { - "name": "天外有天" - }, - "RibbonAchv": { - "description": "累計獲得 {{ribbonAmount}} 個勛章" - }, - "10_RIBBONS": { - "name": "寶可夢聯盟冠軍" - }, - "25_RIBBONS": { - "name": "超級球聯盟冠軍" - }, - "50_RIBBONS": { - "name": "高級球聯盟冠軍" - }, - "75_RIBBONS": { - "name": "肉鴿球聯盟冠軍" - }, - "100_RIBBONS": { - "name": "大師球聯盟冠軍" - }, - "TRANSFER_MAX_BATTLE_STAT": { - "name": "團隊協作", - "description": "在一項屬性強化至最大時用接力棒傳遞給其他寶可夢" - }, - "MAX_FRIENDSHIP": { - "name": "親密無間", - "description": "使一隻寶可夢的親密度達到最大值" - }, - "MEGA_EVOLVE": { - "name": "大變身", - "description": "超級進化一隻寶可夢" - }, - "GIGANTAMAX": { - "name": "這位更是重量級", - "description": "極巨化一隻寶可夢" - }, - "TERASTALLIZE": { - "name": "本系愛好者", - "description": "太晶化一隻寶可夢" - }, - "STELLAR_TERASTALLIZE": { - "name": "隱藏屬性", - "description": "星晶化一隻寶可夢" - }, - "SPLICE": { - "name": "無限融合", - "description": "使用基因之楔將兩隻寶可夢融合在一起" - }, - "MINI_BLACK_HOLE": { - "name": "一大洞的道具", - "description": "獲得一個迷你黑洞" - }, - "CATCH_MYTHICAL": { - "name": "神秘禮物", - "description": "捕捉一隻幻之寶可夢" - }, - "CATCH_SUB_LEGENDARY": { - "name": "二級傳說", - "description": "捕捉一隻準傳說寶可夢" - }, - "CATCH_LEGENDARY": { - "name": "傳說", - "description": "捕捉一隻傳說寶可夢" - }, - "SEE_SHINY": { - "name": "閃耀奪目", - "description": "在野外找到一隻閃光寶可夢" - }, - "SHINY_PARTY": { - "name": "嘔心瀝血", - "description": "擁有一支由閃光寶可夢組成的滿員隊伍" - }, - "HATCH_MYTHICAL": { - "name": "幻獸蛋", - "description": "從蛋中孵化出一隻幻之寶可夢" - }, - "HATCH_SUB_LEGENDARY": { - "name": "二級傳說蛋", - "description": "從蛋中孵化出一隻準傳說寶可夢" - }, - "HATCH_LEGENDARY": { - "name": "傳說蛋", - "description": "從蛋中孵化出一隻傳說寶可夢" - }, - "HATCH_SHINY": { - "name": "金色傳說!", - "description": "從蛋中孵化出一隻閃光寶可夢" - }, - "HIDDEN_ABILITY": { - "name": "隱藏實力", - "description": "捕捉一隻擁有隱藏特性的寶可夢" - }, - "PERFECT_IVS": { - "name": "合格證", - "description": "獲得一隻擁有完美個體值的寶可夢" - }, - "CLASSIC_VICTORY": { - "name": "戰無不勝", - "description": "在經典模式中通關遊戲" - }, - "MONO_GEN_ONE": { - "name": "最初的勁敵", - "description": "完成僅限第一世代的挑戰." - }, - "MONO_GEN_TWO": { - "name": "1.5世代", - "description": "完成僅限第二世代的挑戰." - }, - "MONO_GEN_THREE": { - "name": "“水太多了”", - "description": "完成僅限第三世代的挑戰." - }, - "MONO_GEN_FOUR": { - "name": "她真是最強冠軍嗎?", - "description": "完成僅限第四世代的挑戰." - }, - "MONO_GEN_FIVE": { - "name": "完全原創", - "description": "完成僅限第五世代的挑戰." - }, - "MONO_GEN_SIX": { - "name": "女大公", - "description": "完成僅限第六世代的挑戰." - }, - "MONO_GEN_SEVEN": { - "name": "首屆冠軍", - "description": "完成僅限第七世代的挑戰." - }, - "MONO_GEN_EIGHT": { - "name": "冠軍時刻!", - "description": "完成僅限第八世代的挑戰." - }, - "MONO_GEN_NINE": { - "name": "她又放水了", - "description": "完成僅限第九世代的挑戰." - }, - "MonoType": { - "description": "完成 {{type}} 單屬性挑戰." - }, - "MONO_NORMAL": { - "name": "異乎尋常的尋常" - }, - "MONO_FIGHTING": { - "name": "我有真功夫" - }, - "MONO_FLYING": { - "name": "憤怒的小鳥" - }, - "MONO_POISON": { - "name": "關都地區特色" - }, - "MONO_GROUND": { - "name": "地震預報" - }, - "MONO_ROCK": { - "name": "堅如磐石" - }, - "MONO_BUG": { - "name": "音箱蟀俠" - }, - "MONO_GHOST": { - "name": "捉鬼敢死隊" - }, - "MONO_STEEL": { - "name": "鐵巨人" - }, - "MONO_FIRE": { - "name": "搓火球解決一切" - }, - "MONO_WATER": { - "name": "當雨來臨,傾盆而下" - }, - "MONO_GRASS": { - "name": "別踏這個青" - }, - "MONO_ELECTRIC": { - "name": "瞄準大岩蛇的角!" - }, - "MONO_PSYCHIC": { - "name": "腦洞大開" - }, - "MONO_ICE": { - "name": "如履薄冰" - }, - "MONO_DRAGON": { - "name": "準神俱樂部" - }, - "MONO_DARK": { - "name": "總有叛逆期" - }, - "MONO_FAIRY": { - "name": "林克,醒醒!" - } -} \ No newline at end of file diff --git a/src/locales/zh_TW/achv-female.json b/src/locales/zh_TW/achv.json similarity index 100% rename from src/locales/zh_TW/achv-female.json rename to src/locales/zh_TW/achv.json diff --git a/src/locales/zh_TW/config.ts b/src/locales/zh_TW/config.ts index 8d9fb7f4a37..1e7ab421092 100644 --- a/src/locales/zh_TW/config.ts +++ b/src/locales/zh_TW/config.ts @@ -4,8 +4,7 @@ import ability from "./ability.json"; import abilityTriggers from "./ability-trigger.json"; import arenaFlyout from "./arena-flyout.json"; import arenaTag from "./arena-tag.json"; -import achvMale from "./achv-male.json"; -import achvFemale from "./achv-female.json"; +import achv from "./achv.json"; import battle from "./battle.json"; import battleScene from "./battle-scene.json"; import battleInfo from "./battle-info.json"; @@ -76,8 +75,7 @@ export const zhTwConfig = { challenges, commandUiHandler, common, - PGMachv: achvMale, - PGFachv: achvFemale, + achv, PGMdialogue: dialogueMale, PGFdialogue: dialogueFemale, PGMbattleSpecDialogue: dialogueEndbossMale, diff --git a/src/system/achv.ts b/src/system/achv.ts index 62772758f61..0f9bc5ac6de 100644 --- a/src/system/achv.ts +++ b/src/system/achv.ts @@ -5,7 +5,6 @@ import { pokemonEvolutions } from "#app/data/pokemon-evolutions"; import i18next from "i18next"; import * as Utils from "../utils"; import { PlayerGender } from "#enums/player-gender"; -import { ParseKeys } from "i18next"; import { Challenge, FreshStartChallenge, SingleGenerationChallenge, SingleTypeChallenge } from "#app/data/challenge.js"; import { ConditionFn } from "#app/@types/common.js"; @@ -42,13 +41,13 @@ export class Achv { /** * Get the name of the achievement based on the gender of the player - * @param playerGender - the gender of the player + * @param playerGender - the gender of the player (default: {@linkcode PlayerGender.UNSET}) * @returns the name of the achievement localized for the player gender */ - getName(playerGender: PlayerGender): string { - const prefix = playerGender === PlayerGender.FEMALE ?"PGF" : "PGM"; + getName(playerGender: PlayerGender = PlayerGender.UNSET): string { + const genderStr = PlayerGender[playerGender].toLowerCase(); // Localization key is used to get the name of the achievement - return i18next.t(`${prefix}achv:${this.localizationKey}.name` as ParseKeys); + return i18next.t(`achv:${this.localizationKey}.name`, { context: genderStr }); } getDescription(): string { @@ -151,116 +150,110 @@ export class ChallengeAchv extends Achv { */ export function getAchievementDescription(localizationKey: string): string { // We need to get the player gender from the game data to add the correct prefix to the achievement name - let playerGender = PlayerGender.MALE; - if (this?.scene) { - playerGender = this.scene.gameData.gender; - } - let genderPrefix = "PGM"; - if (playerGender === PlayerGender.FEMALE) { - genderPrefix = "PGF"; - } + const genderIndex = this?.scene?.gameData?.gender ?? PlayerGender.MALE; //TODO: why is `this` being used here!? We are not inside a scope (copied from original) + const genderStr = PlayerGender[genderIndex].toLowerCase(); switch (localizationKey) { case "10K_MONEY": - return i18next.t(`${genderPrefix}achv:MoneyAchv.description` as ParseKeys, {"moneyAmount": achvs._10K_MONEY.moneyAmount.toLocaleString("en-US")}); + return i18next.t("achv:MoneyAchv.description", {context: genderStr, "moneyAmount": achvs._10K_MONEY.moneyAmount.toLocaleString("en-US")}); case "100K_MONEY": - return i18next.t(`${genderPrefix}achv:MoneyAchv.description` as ParseKeys, {"moneyAmount": achvs._100K_MONEY.moneyAmount.toLocaleString("en-US")}); + return i18next.t("achv:MoneyAchv.description", {context: genderStr, "moneyAmount": achvs._100K_MONEY.moneyAmount.toLocaleString("en-US")}); case "1M_MONEY": - return i18next.t(`${genderPrefix}achv:MoneyAchv.description` as ParseKeys, {"moneyAmount": achvs._1M_MONEY.moneyAmount.toLocaleString("en-US")}); + return i18next.t("achv:MoneyAchv.description", {context: genderStr, "moneyAmount": achvs._1M_MONEY.moneyAmount.toLocaleString("en-US")}); case "10M_MONEY": - return i18next.t(`${genderPrefix}achv:MoneyAchv.description` as ParseKeys, {"moneyAmount": achvs._10M_MONEY.moneyAmount.toLocaleString("en-US")}); + return i18next.t("achv:MoneyAchv.description", {context: genderStr, "moneyAmount": achvs._10M_MONEY.moneyAmount.toLocaleString("en-US")}); case "250_DMG": - return i18next.t(`${genderPrefix}achv:DamageAchv.description` as ParseKeys, {"damageAmount": achvs._250_DMG.damageAmount.toLocaleString("en-US")}); + return i18next.t("achv:DamageAchv.description", {context: genderStr, "damageAmount": achvs._250_DMG.damageAmount.toLocaleString("en-US")}); case "1000_DMG": - return i18next.t(`${genderPrefix}achv:DamageAchv.description` as ParseKeys, {"damageAmount": achvs._1000_DMG.damageAmount.toLocaleString("en-US")}); + return i18next.t("achv:DamageAchv.description", {context: genderStr, "damageAmount": achvs._1000_DMG.damageAmount.toLocaleString("en-US")}); case "2500_DMG": - return i18next.t(`${genderPrefix}achv:DamageAchv.description` as ParseKeys, {"damageAmount": achvs._2500_DMG.damageAmount.toLocaleString("en-US")}); + return i18next.t("achv:DamageAchv.description", {context: genderStr, "damageAmount": achvs._2500_DMG.damageAmount.toLocaleString("en-US")}); case "10000_DMG": - return i18next.t(`${genderPrefix}achv:DamageAchv.description` as ParseKeys, {"damageAmount": achvs._10000_DMG.damageAmount.toLocaleString("en-US")}); + return i18next.t("achv:DamageAchv.description", {context: genderStr, "damageAmount": achvs._10000_DMG.damageAmount.toLocaleString("en-US")}); case "250_HEAL": - return i18next.t(`${genderPrefix}achv:HealAchv.description` as ParseKeys, {"healAmount": achvs._250_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}); + return i18next.t("achv:HealAchv.description", {context: genderStr, "healAmount": achvs._250_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}); case "1000_HEAL": - return i18next.t(`${genderPrefix}achv:HealAchv.description` as ParseKeys, {"healAmount": achvs._1000_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}); + return i18next.t("achv:HealAchv.description", {context: genderStr, "healAmount": achvs._1000_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}); case "2500_HEAL": - return i18next.t(`${genderPrefix}achv:HealAchv.description` as ParseKeys, {"healAmount": achvs._2500_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}); + return i18next.t("achv:HealAchv.description", {context: genderStr, "healAmount": achvs._2500_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}); case "10000_HEAL": - return i18next.t(`${genderPrefix}achv:HealAchv.description` as ParseKeys, {"healAmount": achvs._10000_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}); + return i18next.t("achv:HealAchv.description", {context: genderStr, "healAmount": achvs._10000_HEAL.healAmount.toLocaleString("en-US"), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}); case "LV_100": - return i18next.t(`${genderPrefix}achv:LevelAchv.description` as ParseKeys, {"level": achvs.LV_100.level}); + return i18next.t("achv:LevelAchv.description", {context: genderStr, "level": achvs.LV_100.level}); case "LV_250": - return i18next.t(`${genderPrefix}achv:LevelAchv.description` as ParseKeys, {"level": achvs.LV_250.level}); + return i18next.t("achv:LevelAchv.description", {context: genderStr, "level": achvs.LV_250.level}); case "LV_1000": - return i18next.t(`${genderPrefix}achv:LevelAchv.description` as ParseKeys, {"level": achvs.LV_1000.level}); + return i18next.t("achv:LevelAchv.description", {context: genderStr, "level": achvs.LV_1000.level}); case "10_RIBBONS": - return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._10_RIBBONS.ribbonAmount.toLocaleString("en-US")}); + return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._10_RIBBONS.ribbonAmount.toLocaleString("en-US")}); case "25_RIBBONS": - return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._25_RIBBONS.ribbonAmount.toLocaleString("en-US")}); + return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._25_RIBBONS.ribbonAmount.toLocaleString("en-US")}); case "50_RIBBONS": - return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._50_RIBBONS.ribbonAmount.toLocaleString("en-US")}); + return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._50_RIBBONS.ribbonAmount.toLocaleString("en-US")}); case "75_RIBBONS": - return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._75_RIBBONS.ribbonAmount.toLocaleString("en-US")}); + return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._75_RIBBONS.ribbonAmount.toLocaleString("en-US")}); case "100_RIBBONS": - return i18next.t(`${genderPrefix}achv:RibbonAchv.description` as ParseKeys, {"ribbonAmount": achvs._100_RIBBONS.ribbonAmount.toLocaleString("en-US")}); + return i18next.t("achv:RibbonAchv.description", {context: genderStr, "ribbonAmount": achvs._100_RIBBONS.ribbonAmount.toLocaleString("en-US")}); case "TRANSFER_MAX_BATTLE_STAT": - return i18next.t(`${genderPrefix}achv:TRANSFER_MAX_BATTLE_STAT.description` as ParseKeys); + return i18next.t("achv:TRANSFER_MAX_BATTLE_STAT.description", { context: genderStr }); case "MAX_FRIENDSHIP": - return i18next.t(`${genderPrefix}achv:MAX_FRIENDSHIP.description` as ParseKeys); + return i18next.t("achv:MAX_FRIENDSHIP.description", { context: genderStr }); case "MEGA_EVOLVE": - return i18next.t(`${genderPrefix}achv:MEGA_EVOLVE.description` as ParseKeys); + return i18next.t("achv:MEGA_EVOLVE.description", { context: genderStr }); case "GIGANTAMAX": - return i18next.t(`${genderPrefix}achv:GIGANTAMAX.description` as ParseKeys); + return i18next.t("achv:GIGANTAMAX.description", { context: genderStr }); case "TERASTALLIZE": - return i18next.t(`${genderPrefix}achv:TERASTALLIZE.description` as ParseKeys); + return i18next.t("achv:TERASTALLIZE.description", { context: genderStr }); case "STELLAR_TERASTALLIZE": - return i18next.t(`${genderPrefix}achv:STELLAR_TERASTALLIZE.description` as ParseKeys); + return i18next.t("achv:STELLAR_TERASTALLIZE.description", { context: genderStr }); case "SPLICE": - return i18next.t(`${genderPrefix}achv:SPLICE.description` as ParseKeys); + return i18next.t("achv:SPLICE.description", { context: genderStr }); case "MINI_BLACK_HOLE": - return i18next.t(`${genderPrefix}achv:MINI_BLACK_HOLE.description` as ParseKeys); + return i18next.t("achv:MINI_BLACK_HOLE.description", { context: genderStr }); case "CATCH_MYTHICAL": - return i18next.t(`${genderPrefix}achv:CATCH_MYTHICAL.description` as ParseKeys); + return i18next.t("achv:CATCH_MYTHICAL.description", { context: genderStr }); case "CATCH_SUB_LEGENDARY": - return i18next.t(`${genderPrefix}achv:CATCH_SUB_LEGENDARY.description` as ParseKeys); + return i18next.t("achv:CATCH_SUB_LEGENDARY.description", { context: genderStr }); case "CATCH_LEGENDARY": - return i18next.t(`${genderPrefix}achv:CATCH_LEGENDARY.description` as ParseKeys); + return i18next.t("achv:CATCH_LEGENDARY.description", { context: genderStr }); case "SEE_SHINY": - return i18next.t(`${genderPrefix}achv:SEE_SHINY.description` as ParseKeys); + return i18next.t("achv:SEE_SHINY.description", { context: genderStr }); case "SHINY_PARTY": - return i18next.t(`${genderPrefix}achv:SHINY_PARTY.description` as ParseKeys); + return i18next.t("achv:SHINY_PARTY.description", { context: genderStr }); case "HATCH_MYTHICAL": - return i18next.t(`${genderPrefix}achv:HATCH_MYTHICAL.description` as ParseKeys); + return i18next.t("achv:HATCH_MYTHICAL.description", { context: genderStr }); case "HATCH_SUB_LEGENDARY": - return i18next.t(`${genderPrefix}achv:HATCH_SUB_LEGENDARY.description` as ParseKeys); + return i18next.t("achv:HATCH_SUB_LEGENDARY.description", { context: genderStr }); case "HATCH_LEGENDARY": - return i18next.t(`${genderPrefix}achv:HATCH_LEGENDARY.description` as ParseKeys); + return i18next.t("achv:HATCH_LEGENDARY.description", { context: genderStr }); case "HATCH_SHINY": - return i18next.t(`${genderPrefix}achv:HATCH_SHINY.description` as ParseKeys); + return i18next.t("achv:HATCH_SHINY.description", { context: genderStr }); case "HIDDEN_ABILITY": - return i18next.t(`${genderPrefix}achv:HIDDEN_ABILITY.description` as ParseKeys); + return i18next.t("achv:HIDDEN_ABILITY.description", { context: genderStr }); case "PERFECT_IVS": - return i18next.t(`${genderPrefix}achv:PERFECT_IVS.description` as ParseKeys); + return i18next.t("achv:PERFECT_IVS.description", { context: genderStr }); case "CLASSIC_VICTORY": - return i18next.t(`${genderPrefix}achv:CLASSIC_VICTORY.description` as ParseKeys); + return i18next.t("achv:CLASSIC_VICTORY.description", { context: genderStr }); case "UNEVOLVED_CLASSIC_VICTORY": - return i18next.t(`${genderPrefix}achv:UNEVOLVED_CLASSIC_VICTORY.description` as ParseKeys); + return i18next.t("achv:UNEVOLVED_CLASSIC_VICTORY.description", { context: genderStr }); case "MONO_GEN_ONE": - return i18next.t(`${genderPrefix}achv:MONO_GEN_ONE.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_ONE.description", { context: genderStr }); case "MONO_GEN_TWO": - return i18next.t(`${genderPrefix}achv:MONO_GEN_TWO.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_TWO.description", { context: genderStr }); case "MONO_GEN_THREE": - return i18next.t(`${genderPrefix}achv:MONO_GEN_THREE.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_THREE.description", { context: genderStr }); case "MONO_GEN_FOUR": - return i18next.t(`${genderPrefix}achv:MONO_GEN_FOUR.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_FOUR.description", { context: genderStr }); case "MONO_GEN_FIVE": - return i18next.t(`${genderPrefix}achv:MONO_GEN_FIVE.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_FIVE.description", { context: genderStr }); case "MONO_GEN_SIX": - return i18next.t(`${genderPrefix}achv:MONO_GEN_SIX.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_SIX.description", { context: genderStr }); case "MONO_GEN_SEVEN": - return i18next.t(`${genderPrefix}achv:MONO_GEN_SEVEN.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_SEVEN.description", { context: genderStr }); case "MONO_GEN_EIGHT": - return i18next.t(`${genderPrefix}achv:MONO_GEN_EIGHT.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_EIGHT.description", { context: genderStr }); case "MONO_GEN_NINE": - return i18next.t(`${genderPrefix}achv:MONO_GEN_NINE.description` as ParseKeys); + return i18next.t("achv:MONO_GEN_NINE.description", { context: genderStr }); case "MONO_NORMAL": case "MONO_FIGHTING": case "MONO_FLYING": @@ -279,9 +272,9 @@ export function getAchievementDescription(localizationKey: string): string { case "MONO_DRAGON": case "MONO_DARK": case "MONO_FAIRY": - return i18next.t(`${genderPrefix}achv:MonoType.description` as ParseKeys, {"type": i18next.t(`pokemonInfo:Type.${localizationKey.slice(5)}`)}); + return i18next.t("achv:MonoType.description", { context: genderStr, "type": i18next.t(`pokemonInfo:Type.${localizationKey.slice(5)}`) }); case "FRESH_START": - return i18next.t(`${genderPrefix}achv:FRESH_START.description` as ParseKeys); + return i18next.t("achv:FRESH_START.description", { context: genderStr }); default: return ""; } diff --git a/src/test/battle/battle.test.ts b/src/test/battle/battle.test.ts index c79eee63a7c..be89fdeb2af 100644 --- a/src/test/battle/battle.test.ts +++ b/src/test/battle/battle.test.ts @@ -43,6 +43,7 @@ describe("Test Battle Phase", () => { beforeEach(() => { game = new GameManager(phaserGame); + game.scene.gameData.gender = undefined!; // just for these tests! }); it("test phase interceptor with prompt", async () => { diff --git a/src/test/utils/gameManager.ts b/src/test/utils/gameManager.ts index d3c2652fcbe..6ade758fd6f 100644 --- a/src/test/utils/gameManager.ts +++ b/src/test/utils/gameManager.ts @@ -134,7 +134,7 @@ export default class GameManager { this.scene.expParty = ExpNotification.SKIP; this.scene.hpBarSpeed = 3; this.scene.enableTutorials = false; - this.scene.gameData.gender = PlayerGender.MALE; + this.scene.gameData.gender = PlayerGender.MALE; // set initial player gender } diff --git a/src/test/utils/helpers/settingsHelper.ts b/src/test/utils/helpers/settingsHelper.ts index dec9e160d51..76ffafdbe10 100644 --- a/src/test/utils/helpers/settingsHelper.ts +++ b/src/test/utils/helpers/settingsHelper.ts @@ -1,3 +1,4 @@ +import { PlayerGender } from "#app/enums/player-gender"; import { GameManagerHelper } from "./gameManagerHelper"; /** @@ -11,5 +12,19 @@ export class SettingsHelper extends GameManagerHelper { */ typeHints(enable: boolean) { this.game.scene.typeHints = enable; + this.log(`Type Hints ${enable? "enabled" : "disabled"}` ); + } + + /** + * Change the player gender + * @param gender the {@linkcode PlayerGender} to set + */ + playerGender(gender: PlayerGender) { + this.game.scene.gameData.gender = gender; + this.log(`Gender set to: ${PlayerGender[gender]} (=${gender})` ); + } + + private log(...params: any[]) { + console.log("Settings:", ...params); } } diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index a3e698c63ba..eb4316dc24b 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -7,7 +7,6 @@ import MessageUiHandler from "./message-ui-handler"; import { addTextObject, TextStyle } from "./text"; import { Mode } from "./ui"; import { addWindow } from "./ui-theme"; -import { ParseKeys } from "i18next"; import { PlayerGender } from "#enums/player-gender"; enum Page { @@ -83,13 +82,10 @@ export default class AchvsUiHandler extends MessageUiHandler { this.headerActionText.setPositionRelative(this.headerBg, 264, 8); // We need to get the player gender from the game data to add the correct prefix to the achievement name - const playerGender = this.scene.gameData.gender; - let genderPrefix = "PGM"; - if (playerGender === PlayerGender.FEMALE) { - genderPrefix = "PGF"; - } + const genderIndex = this.scene.gameData.gender ?? PlayerGender.MALE; + const genderStr = PlayerGender[genderIndex].toLowerCase(); - this.achvsName = i18next.t(`${genderPrefix}achv:Achievements.name` as ParseKeys); + this.achvsName = i18next.t("achv:Achievements.name", { context: genderStr }); this.vouchersName = i18next.t("voucher:vouchers"); this.iconsBg = addWindow(this.scene, 0, this.headerBg.height, (this.scene.game.canvas.width / 6) - 2, (this.scene.game.canvas.height / 6) - this.headerBg.height - 68); @@ -189,13 +185,10 @@ export default class AchvsUiHandler extends MessageUiHandler { protected showAchv(achv: Achv) { // We need to get the player gender from the game data to add the correct prefix to the achievement name - const playerGender = this.scene.gameData.gender; - let genderPrefix = "PGM"; - if (playerGender === PlayerGender.FEMALE) { - genderPrefix = "PGF"; - } + const genderIndex = this.scene.gameData.gender ?? PlayerGender.MALE; + const genderStr = PlayerGender[genderIndex].toLowerCase(); - achv.name = i18next.t(`${genderPrefix}achv:${achv.localizationKey}.name` as ParseKeys); + achv.name = i18next.t(`achv:${achv.localizationKey}.name`, { context: genderStr }); achv.description = getAchievementDescription(achv.localizationKey); const achvUnlocks = this.scene.gameData.achvUnlocks; const unlocked = achvUnlocks.hasOwnProperty(achv.id); @@ -203,7 +196,7 @@ export default class AchvsUiHandler extends MessageUiHandler { this.titleText.setText(unlocked ? achv.name : "???"); this.showText(!hidden ? achv.description : ""); this.scoreText.setText(`${achv.score}pt`); - this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : i18next.t(`${genderPrefix}achv:Locked.name` as ParseKeys)); + this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : i18next.t("achv:Locked.name")); } protected showVoucher(voucher: Voucher) {