From af9ac1e17e88c0096f807e540a883e0ba4df230c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Mon, 20 May 2024 03:38:06 -0300 Subject: [PATCH 1/5] organizing, translations and achv localization --- src/locales/pt_BR/ability.ts | 1 - src/locales/pt_BR/achv.ts | 171 ++++++++++++++++++ src/locales/pt_BR/battle.ts | 2 +- src/locales/pt_BR/config.ts | 22 ++- src/locales/pt_BR/egg.ts | 2 +- src/locales/pt_BR/growth.ts | 2 +- src/locales/pt_BR/menu-ui-handler.ts | 2 +- src/locales/pt_BR/modifier-type.ts | 2 +- src/locales/pt_BR/move.ts | 2 +- src/locales/pt_BR/pokemon-info.ts | 4 +- .../pt_BR/starter-select-ui-handler.ts | 2 +- src/locales/pt_BR/voucher.ts | 12 +- src/plugins/i18n.ts | 14 +- src/system/achv.ts | 93 +++++----- src/ui/achvs-ui-handler.ts | 7 +- src/ui/starter-select-ui-handler.ts | 16 +- src/ui/text.ts | 10 +- 17 files changed, 274 insertions(+), 90 deletions(-) create mode 100644 src/locales/pt_BR/achv.ts diff --git a/src/locales/pt_BR/ability.ts b/src/locales/pt_BR/ability.ts index 060a8b7611e..fc6a312ea1b 100644 --- a/src/locales/pt_BR/ability.ts +++ b/src/locales/pt_BR/ability.ts @@ -1237,5 +1237,4 @@ export const ability: AbilityTranslationEntries = { name: "Poison Puppeteer", description: "Pokémon envenenados pelos movimentos de Pecharunt também ficarão confusos.", }, - } as const; diff --git a/src/locales/pt_BR/achv.ts b/src/locales/pt_BR/achv.ts new file mode 100644 index 00000000000..e34f72bb0cb --- /dev/null +++ b/src/locales/pt_BR/achv.ts @@ -0,0 +1,171 @@ +import { AchievementTranslationEntries } from "#app/plugins/i18n.js"; + +export const achv: AchievementTranslationEntries = { + "Achv": { + 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}} de PS de uma vez só com um movimento, habilidade ou item segurado", + }, + "250_HEAL": { + name: "Residente", + }, + "1000_HEAL": { + name: "Enfermeiro", + }, + "2500_HEAL": { + name: "Médico", + }, + "10000_HEAL": { + name: "Médico de Plantão", + }, + + "LevelAchv": { + description: "Eleve um Pokémon para o Lv{{level}}", + }, + "LV_100": { + name: "Calma Que Tem Mais!", + }, + "LV_250": { + name: "Treinador 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 Sub-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 somente por Pokémon Shiny", + }, + "HATCH_MYTHICAL": { + name: "Ovo Mítico", + description: "Choque um Pokémon Mítico", + }, + "HATCH_SUB_LEGENDARY": { + name: "Ovo Sub-Lendário", + description: "Choque um Pokémon Sub-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", + }, +} as const; diff --git a/src/locales/pt_BR/battle.ts b/src/locales/pt_BR/battle.ts index cc49abc7a7c..e5c7f9c28a1 100644 --- a/src/locales/pt_BR/battle.ts +++ b/src/locales/pt_BR/battle.ts @@ -52,5 +52,5 @@ export const battle: SimpleTranslationEntries = { "notDisabled": "O movimento {{moveName}}\nnão está mais desabilitado!", "skipItemQuestion": "Tem certeza de que não quer escolher um item?", "eggHatching": "Opa?", - "ivScannerUseQuestion": "Quer usar o Scanner de IVs em {{pokemonName}}?" + "ivScannerUseQuestion": "Quer usar o Scanner de IVs em {{pokemonName}}?", } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index a9244f5e9db..030700105ec 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -1,6 +1,8 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; +import { achv } from "./achv"; import { battle } from "./battle"; +import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; @@ -17,34 +19,34 @@ import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { weather } from "./weather"; -import { berry } from "./berry"; import { voucher } from "./voucher"; +import { weather } from "./weather"; export const ptBrConfig = { ability: ability, abilityTriggers: abilityTriggers, + achv: achv, battle: battle, + berry: berry, commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, - menuUiHandler: menuUiHandler, + growth: growth, menu: menu, + menuUiHandler: menuUiHandler, + modifierType: modifierType, move: move, + nature: nature, pokeball: pokeball, - pokemonInfo: pokemonInfo, pokemon: pokemon, + pokemonInfo: pokemonInfo, + splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - splashMessages: splashMessages, - nature: nature, - growth: growth, - weather: weather, - modifierType: modifierType, - berry: berry, voucher: voucher, + weather: weather, } diff --git a/src/locales/pt_BR/egg.ts b/src/locales/pt_BR/egg.ts index 1d38fd5c694..678f03cd7d8 100644 --- a/src/locales/pt_BR/egg.ts +++ b/src/locales/pt_BR/egg.ts @@ -17,5 +17,5 @@ export const egg: SimpleTranslationEntries = { "notEnoughVouchers": "Você não tem vouchers suficientes!", "tooManyEggs": "Você já tem muitos ovos!", "pull": "Prêmio", - "pulls": "Prêmios" + "pulls": "Prêmios", } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/growth.ts b/src/locales/pt_BR/growth.ts index 70848b60668..2672bb0c265 100644 --- a/src/locales/pt_BR/growth.ts +++ b/src/locales/pt_BR/growth.ts @@ -6,5 +6,5 @@ export const growth: SimpleTranslationEntries = { "Medium_Fast": "Meio Rápido", "Medium_Slow": "Meio Lento", "Slow": "Lento", - "Fluctuating": "Flutuante" + "Fluctuating": "Flutuante", } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/menu-ui-handler.ts b/src/locales/pt_BR/menu-ui-handler.ts index 5a60b614338..bbd16bf0b35 100644 --- a/src/locales/pt_BR/menu-ui-handler.ts +++ b/src/locales/pt_BR/menu-ui-handler.ts @@ -19,5 +19,5 @@ export const menuUiHandler: SimpleTranslationEntries = { "importData": "Importar dados", "exportData": "Exportar dados", "cancel": "Cancelar", - "losingProgressionWarning": "Você vai perder todo o progresso desde o início da batalha. Confirmar?" + "losingProgressionWarning": "Você vai perder todo o progresso desde o início da batalha. Confirmar?", } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/modifier-type.ts b/src/locales/pt_BR/modifier-type.ts index faf10fbab2b..d9a32ff6a3c 100644 --- a/src/locales/pt_BR/modifier-type.ts +++ b/src/locales/pt_BR/modifier-type.ts @@ -110,7 +110,7 @@ export const modifierType: ModifierTypeTranslationEntries = { }, "TerastallizeModifierType": { name: "{{teraType}} Fragmento Tera", - description: "{{teraType}} Terastaliza um Pokémon por até 10 batalhas", + description: "{{teraType}} Terastalize um Pokémon por até 10 batalhas", }, "ContactHeldItemTransferChanceModifierType": { description: "Quando atacar, tem {{chancePercent}}% de chance de roubar um item do oponente", diff --git a/src/locales/pt_BR/move.ts b/src/locales/pt_BR/move.ts index ce55b5264ec..0b40c02774d 100644 --- a/src/locales/pt_BR/move.ts +++ b/src/locales/pt_BR/move.ts @@ -3808,5 +3808,5 @@ export const move: MoveTranslationEntries = { "malignantChain": { name: "Malignant Chain", effect: "O usuário derrama toxinas no alvo envolvendo-o em uma corrente tóxica e corrosiva. Isso também pode deixar o alvo seriamente envenenado." - } + }, } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/pokemon-info.ts b/src/locales/pt_BR/pokemon-info.ts index 99cef266c6f..e876da7fa63 100644 --- a/src/locales/pt_BR/pokemon-info.ts +++ b/src/locales/pt_BR/pokemon-info.ts @@ -13,7 +13,7 @@ export const pokemonInfo: PokemonInfoTranslationEntries = { "SPDEF": "Def. Esp.", "SPDEFshortened": "DefEsp", "SPD": "Veloc.", - "SPDshortened": "Veloc." + "SPDshortened": "Veloc.", }, Type: { @@ -36,6 +36,6 @@ export const pokemonInfo: PokemonInfoTranslationEntries = { "DRAGON": "Dragão", "DARK": "Sombrio", "FAIRY": "Fada", - "STELLAR": "Estelar" + "STELLAR": "Estelar", }, } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/starter-select-ui-handler.ts b/src/locales/pt_BR/starter-select-ui-handler.ts index 7d77f48f290..ee08d3529c9 100644 --- a/src/locales/pt_BR/starter-select-ui-handler.ts +++ b/src/locales/pt_BR/starter-select-ui-handler.ts @@ -40,5 +40,5 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "disablePassive": "Desativar Passiva", "locked": "Bloqueada", "disabled": "Desativada", - "uncaught": "Não capturado" + "uncaught": "Não capturado", } diff --git a/src/locales/pt_BR/voucher.ts b/src/locales/pt_BR/voucher.ts index 7af569e88cb..185f318e959 100644 --- a/src/locales/pt_BR/voucher.ts +++ b/src/locales/pt_BR/voucher.ts @@ -2,10 +2,10 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const voucher: SimpleTranslationEntries = { "vouchers": "Vouchers", - "eggVoucher": "Egg Voucher", - "eggVoucherPlus": "Egg Voucher Plus", - "eggVoucherPremium": "Egg Voucher Premium", - "eggVoucherGold": "Egg Voucher Gold", - "locked": "Locked", - "defeatTrainer": "Defeat {{trainerName}}" + "eggVoucher": "Voucher de Ovo", + "eggVoucherPlus": "Voucher de Ovo Plus", + "eggVoucherPremium": "Voucher de Ovo Premium", + "eggVoucherGold": "Voucher de Ovo Dourado", + "locked": "Bloqueado", + "defeatTrainer": "Derrote {{trainerName}}", } as const; \ No newline at end of file diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 29e28f60f39..47405c79308 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -51,13 +51,22 @@ export interface PokemonInfoTranslationEntries { export interface BerryTranslationEntry { name: string, - effect: string + effect: string, } export interface BerryTranslationEntries { [key: string]: BerryTranslationEntry } +export interface AchievementTranslationEntry { + name?: string, + description?: string, +} + +export interface AchievementTranslationEntries { + [key: string]: AchievementTranslationEntry +} + export interface Localizable { localize(): void; } @@ -153,7 +162,8 @@ declare module 'i18next' { modifierType: ModifierTypeTranslationEntries; battleMessageUiHandler: SimpleTranslationEntries; berry: BerryTranslationEntries; - voucher: SimpleTranslationEntries; + voucher: SimpleTranslationEntries; + achv: AchievementTranslationEntries; }; } } diff --git a/src/system/achv.ts b/src/system/achv.ts index 9a6e43965d6..f1ddfbee18b 100644 --- a/src/system/achv.ts +++ b/src/system/achv.ts @@ -1,7 +1,8 @@ import { Modifier } from "typescript"; import BattleScene from "../battle-scene"; -import * as Utils from "../utils"; import { TurnHeldItemTransferModifier } from "../modifier/modifier"; +import i18next from '../plugins/i18n'; +import * as Utils from "../utils"; export enum AchvTier { COMMON, @@ -67,7 +68,7 @@ export class MoneyAchv extends Achv { private moneyAmount: integer; constructor(name: string, moneyAmount: integer, iconImage: string, score: integer) { - super(name, `Accumulate a total of ₽${moneyAmount.toLocaleString('en-US')}`, iconImage, score, (scene: BattleScene, _args: any[]) => scene.money >= this.moneyAmount); + super(name, i18next.t("achv:MoneyAchv.description", {"moneyAmount": moneyAmount.toLocaleString('en-US')}), iconImage, score, (scene: BattleScene, _args: any[]) => scene.money >= this.moneyAmount); this.moneyAmount = moneyAmount; } @@ -77,7 +78,7 @@ export class RibbonAchv extends Achv { private ribbonAmount: integer; constructor(name: string, ribbonAmount: integer, iconImage: string, score: integer) { - super(name, `Accumulate a total of ${ribbonAmount.toLocaleString('en-US')} Ribbons`, iconImage, score, (scene: BattleScene, _args: any[]) => scene.gameData.gameStats.ribbonsOwned >= this.ribbonAmount); + super(name, i18next.t("achv:RibbonAchv.description", {"ribbonAmount": ribbonAmount.toLocaleString('en-US')}), iconImage, score, (scene: BattleScene, _args: any[]) => scene.gameData.gameStats.ribbonsOwned >= this.ribbonAmount); this.ribbonAmount = ribbonAmount; } @@ -87,7 +88,7 @@ export class DamageAchv extends Achv { private damageAmount: integer; constructor(name: string, damageAmount: integer, iconImage: string, score: integer) { - super(name, `Inflict ${damageAmount.toLocaleString('en-US')} damage in one hit`, iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.damageAmount); + super(name, i18next.t("achv:DamageAchv.description", {"damageAmount": damageAmount.toLocaleString('en-US')}), iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.damageAmount); this.damageAmount = damageAmount; } @@ -97,7 +98,7 @@ export class HealAchv extends Achv { private healAmount: integer; constructor(name: string, healAmount: integer, iconImage: string, score: integer) { - super(name, `Heal ${healAmount.toLocaleString('en-US')} HP at once with a move, ability, or held item`, iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.healAmount); + super(name, i18next.t("achv:HealAchv.description", {"healAmount": healAmount.toLocaleString('en-US')}), iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.healAmount); this.healAmount = healAmount; } @@ -107,7 +108,7 @@ export class LevelAchv extends Achv { private level: integer; constructor(name: string, level: integer, iconImage: string, score: integer) { - super(name, `Level up a Pokémon to Lv${level}`, iconImage, score, (scene: BattleScene, args: any[]) => (args[0] as Utils.IntegerHolder).value >= this.level); + super(name, i18next.t("achv:LevelAchv.description", {"level": level}), iconImage, score, (scene: BattleScene, args: any[]) => (args[0] as Utils.IntegerHolder).value >= this.level); this.level = level; } @@ -120,46 +121,46 @@ export class ModifierAchv extends Achv { } export const achvs = { - _10K_MONEY: new MoneyAchv('Money Haver', 10000, 'nugget', 10), - _100K_MONEY: new MoneyAchv('Rich', 100000, 'big_nugget', 25).setSecret(true), - _1M_MONEY: new MoneyAchv('Millionaire', 1000000, 'relic_gold', 50).setSecret(true), - _10M_MONEY: new MoneyAchv('One Percenter', 10000000, 'coin_case', 100).setSecret(true), - _250_DMG: new DamageAchv('Hard Hitter', 250, 'lucky_punch', 10), - _1000_DMG: new DamageAchv('Harder Hitter', 1000, 'lucky_punch_great', 25).setSecret(true), - _2500_DMG: new DamageAchv('That\'s a Lotta Damage!', 2500, 'lucky_punch_ultra', 50).setSecret(true), - _10000_DMG: new DamageAchv('One Punch Man', 10000, 'lucky_punch_master', 100).setSecret(true), - _250_HEAL: new HealAchv('Novice Healer', 250, 'potion', 10), - _1000_HEAL: new HealAchv('Big Healer', 1000, 'super_potion', 25).setSecret(true), - _2500_HEAL: new HealAchv('Cleric', 2500, 'hyper_potion', 50).setSecret(true), - _10000_HEAL: new HealAchv('Recovery Master', 10000, 'max_potion', 100).setSecret(true), - LV_100: new LevelAchv('But Wait, There\'s More!', 100, 'rare_candy', 25).setSecret(), - LV_250: new LevelAchv('Elite', 250, 'rarer_candy', 50).setSecret(true), - LV_1000: new LevelAchv('To Go Even Further Beyond', 1000, 'candy_jar', 100).setSecret(true), - _10_RIBBONS: new RibbonAchv('Pokémon League Champion', 10, 'bronze_ribbon', 10), - _25_RIBBONS: new RibbonAchv('Great League Champion', 25, 'great_ribbon', 25).setSecret(true), - _50_RIBBONS: new RibbonAchv('Ultra League Champion', 50, 'ultra_ribbon', 50).setSecret(true), - _75_RIBBONS: new RibbonAchv('Rogue League Champion', 75, 'rogue_ribbon', 75).setSecret(true), - _100_RIBBONS: new RibbonAchv('Master League Champion', 100, 'master_ribbon', 100).setSecret(true), - TRANSFER_MAX_BATTLE_STAT: new Achv('Teamwork', 'Baton pass to another party member with at least one stat maxed out', 'stick', 20), - MAX_FRIENDSHIP: new Achv('Friendmaxxing', 'Reach max friendship on a Pokémon', 'soothe_bell', 25), - MEGA_EVOLVE: new Achv('Megamorph', 'Mega evolve a Pokémon', 'mega_bracelet', 50), - GIGANTAMAX: new Achv('Absolute Unit', 'Gigantamax a Pokémon', 'dynamax_band', 50), - TERASTALLIZE: new Achv('STAB Enthusiast', 'Terastallize a Pokémon', 'tera_orb', 25), - STELLAR_TERASTALLIZE: new Achv('The Hidden Type', 'Stellar Terastallize a Pokémon', 'stellar_tera_shard', 25).setSecret(true), - SPLICE: new Achv('Infinite Fusion', 'Splice two Pokémon together with DNA Splicers', 'dna_splicers', 10), - MINI_BLACK_HOLE: new ModifierAchv('A Hole Lot of Items', 'Acquire a Mini Black Hole', 'mini_black_hole', 25, modifier => modifier instanceof TurnHeldItemTransferModifier).setSecret(), - CATCH_MYTHICAL: new Achv('Mythical', 'Catch a mythical Pokémon', 'strange_ball', 50).setSecret(), - CATCH_SUB_LEGENDARY: new Achv('(Sub-)Legendary', 'Catch a sub-legendary Pokémon', 'rb', 75).setSecret(), - CATCH_LEGENDARY: new Achv('Legendary', 'Catch a legendary Pokémon', 'mb', 100).setSecret(), - SEE_SHINY: new Achv('Shiny', 'Find a shiny Pokémon in the wild', 'pb_gold', 75), - SHINY_PARTY: new Achv('That\'s Dedication', 'Have a full party of shiny Pokémon', 'shiny_charm', 100).setSecret(true), - HATCH_MYTHICAL: new Achv('Mythical Egg', 'Hatch a mythical Pokémon from an egg', 'pair_of_tickets', 75).setSecret(), - HATCH_SUB_LEGENDARY: new Achv('Sub-Legendary Egg', 'Hatch a sub-legendary Pokémon from an egg', 'mystic_ticket', 100).setSecret(), - HATCH_LEGENDARY: new Achv('Legendary Egg', 'Hatch a legendary Pokémon from an egg', 'mystic_ticket', 125).setSecret(), - HATCH_SHINY: new Achv('Shiny Egg', 'Hatch a shiny Pokémon from an egg', 'golden_mystic_ticket', 100).setSecret(), - HIDDEN_ABILITY: new Achv('Hidden Potential', 'Catch a Pokémon with a hidden ability', 'ability_charm', 75), - PERFECT_IVS: new Achv('Certificate of Authenticity', 'Get perfect IVs on a Pokémon', 'blunder_policy', 100), - CLASSIC_VICTORY: new Achv('Undefeated', 'Beat the game in classic mode', 'relic_crown', 150) + _10K_MONEY: new MoneyAchv(i18next.t("achv:10K_MONEY.name"), 10000, 'nugget', 10), + _100K_MONEY: new MoneyAchv(i18next.t("achv:100K_MONEY.name"), 100000, 'big_nugget', 25).setSecret(true), + _1M_MONEY: new MoneyAchv(i18next.t("achv:1M_MONEY.name"), 1000000, 'relic_gold', 50).setSecret(true), + _10M_MONEY: new MoneyAchv(i18next.t("achv:10M_MONEY.name"), 10000000, 'coin_case', 100).setSecret(true), + _250_DMG: new DamageAchv(i18next.t("achv:250_DMG.name"), 250, 'lucky_punch', 10), + _1000_DMG: new DamageAchv(i18next.t("achv:1000_DMG.name"), 1000, 'lucky_punch_great', 25).setSecret(true), + _2500_DMG: new DamageAchv(i18next.t("achv:2500_DMG.name"), 2500, 'lucky_punch_ultra', 50).setSecret(true), + _10000_DMG: new DamageAchv(i18next.t("achv:10000_DMG.name"), 10000, 'lucky_punch_master', 100).setSecret(true), + _250_HEAL: new HealAchv(i18next.t("achv:250_HEAL.name"), 250, 'potion', 10), + _1000_HEAL: new HealAchv(i18next.t("achv:1000_HEAL.name"), 1000, 'super_potion', 25).setSecret(true), + _2500_HEAL: new HealAchv(i18next.t("achv:2500_HEAL.name"), 2500, 'hyper_potion', 50).setSecret(true), + _10000_HEAL: new HealAchv(i18next.t("achv:10000_HEAL.name"), 10000, 'max_potion', 100).setSecret(true), + LV_100: new LevelAchv(i18next.t("achv:LV_100.name"), 100, 'rare_candy', 25).setSecret(), + LV_250: new LevelAchv(i18next.t("achv:LV_250.name"), 250, 'rarer_candy', 50).setSecret(true), + LV_1000: new LevelAchv(i18next.t("achv:LV_1000.name"), 1000, 'candy_jar', 100).setSecret(true), + _10_RIBBONS: new RibbonAchv(i18next.t("achv:10_RIBBONS.name"), 10, 'bronze_ribbon', 10), + _25_RIBBONS: new RibbonAchv(i18next.t("achv:25_RIBBONS.name"), 25, 'great_ribbon', 25).setSecret(true), + _50_RIBBONS: new RibbonAchv(i18next.t("achv:50_RIBBONS.name"), 50, 'ultra_ribbon', 50).setSecret(true), + _75_RIBBONS: new RibbonAchv(i18next.t("achv:75_RIBBONS.name"), 75, 'rogue_ribbon', 75).setSecret(true), + _100_RIBBONS: new RibbonAchv(i18next.t("achv:100_RIBBONS.name"), 100, 'master_ribbon', 100).setSecret(true), + TRANSFER_MAX_BATTLE_STAT: new Achv(i18next.t("achv:TRANSFER_MAX_BATTLE_STAT.name"), i18next.t("achv:TRANSFER_MAX_BATTLE_STAT.description"), 'stick', 20), + MAX_FRIENDSHIP: new Achv(i18next.t("achv:MAX_FRIENDSHIP.name"), i18next.t("achv:MAX_FRIENDSHIP.description"), 'soothe_bell', 25), + MEGA_EVOLVE: new Achv(i18next.t("achv:MEGA_EVOLVE.name"), i18next.t("achv:MEGA_EVOLVE.description"), 'mega_bracelet', 50), + GIGANTAMAX: new Achv(i18next.t("achv:GIGANTAMAX.name"), i18next.t("achv:GIGANTAMAX.description"), 'dynamax_band', 50), + TERASTALLIZE: new Achv(i18next.t("achv:TERASTALLIZE.name"), i18next.t("achv:TERASTALLIZE.description"), 'tera_orb', 25), + STELLAR_TERASTALLIZE: new Achv(i18next.t("achv:STELLAR_TERASTALLIZE.name"), i18next.t("achv:STELLAR_TERASTALLIZE.description"), 'stellar_tera_shard', 25).setSecret(true), + SPLICE: new Achv(i18next.t("achv:SPLICE.name"), i18next.t("achv:SPLICE.description"), 'dna_splicers', 10), + MINI_BLACK_HOLE: new ModifierAchv(i18next.t("achv:MINI_BLACK_HOLE.name"), i18next.t("achv:MINI_BLACK_HOLE.description"), 'mini_black_hole', 25, modifier => modifier instanceof TurnHeldItemTransferModifier).setSecret(), + CATCH_MYTHICAL: new Achv(i18next.t("achv:CATCH_MYTHICAL.name"), i18next.t("achv:CATCH_MYTHICAL.description"), 'strange_ball', 50).setSecret(), + CATCH_SUB_LEGENDARY: new Achv(i18next.t("achv:CATCH_SUB_LEGENDARY.name"), i18next.t("achv:CATCH_SUB_LEGENDARY.description"), 'rb', 75).setSecret(), + CATCH_LEGENDARY: new Achv(i18next.t("achv:CATCH_LEGENDARY.name"), i18next.t("achv:CATCH_LEGENDARY.description"), 'mb', 100).setSecret(), + SEE_SHINY: new Achv(i18next.t("achv:SEE_SHINY.name"), i18next.t("achv:SEE_SHINY.description"), 'pb_gold', 75), + SHINY_PARTY: new Achv(i18next.t("achv:SHINY_PARTY.name"), i18next.t("achv:SHINY_PARTY.description"), 'shiny_charm', 100).setSecret(true), + HATCH_MYTHICAL: new Achv(i18next.t("achv:HATCH_MYTHICAL.name"), i18next.t("achv:HATCH_MYTHICAL.description"), 'pair_of_tickets', 75).setSecret(), + HATCH_SUB_LEGENDARY: new Achv(i18next.t("achv:HATCH_SUB_LEGENDARY.name"), i18next.t("achv:HATCH_SUB_LEGENDARY.description"), 'mystic_ticket', 100).setSecret(), + HATCH_LEGENDARY: new Achv(i18next.t("achv:HATCH_LEGENDARY.name"), i18next.t("achv:HATCH_LEGENDARY.description"), 'mystic_ticket', 125).setSecret(), + HATCH_SHINY: new Achv(i18next.t("achv:HATCH_SHINY.name"), i18next.t("achv:HATCH_SHINY.description"), 'golden_mystic_ticket', 100).setSecret(), + HIDDEN_ABILITY: new Achv(i18next.t("achv:HIDDEN_ABILITY.name"), i18next.t("achv:HIDDEN_ABILITY.description"), 'ability_charm', 75), + PERFECT_IVS: new Achv(i18next.t("achv:PERFECT_IVS.name"), i18next.t("achv:PERFECT_IVS.description"), 'blunder_policy', 100), + CLASSIC_VICTORY: new Achv(i18next.t("achv:CLASSIC_VICTORY.name"), i18next.t("achv:CLASSIC_VICTORY.description"), 'relic_crown', 150), }; { diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index 561b0917177..e91e7c6eb83 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -1,10 +1,11 @@ import BattleScene from "../battle-scene"; +import { Button } from "../enums/buttons"; +import i18next from "../plugins/i18n"; import { Achv, achvs } from "../system/achv"; import MessageUiHandler from "./message-ui-handler"; import { TextStyle, addTextObject } from "./text"; import { Mode } from "./ui"; import { addWindow } from "./ui-theme"; -import {Button} from "../enums/buttons"; export default class AchvsUiHandler extends MessageUiHandler { private achvsContainer: Phaser.GameObjects.Container; @@ -32,7 +33,7 @@ export default class AchvsUiHandler extends MessageUiHandler { const headerBg = addWindow(this.scene, 0, 0, (this.scene.game.canvas.width / 6) - 2, 24); headerBg.setOrigin(0, 0); - const headerText = addTextObject(this.scene, 0, 0, 'Achievements', TextStyle.SETTINGS_LABEL); + const headerText = addTextObject(this.scene, 0, 0, i18next.t("achv:Achv.name"), TextStyle.SETTINGS_LABEL); headerText.setOrigin(0, 0); headerText.setPositionRelative(headerBg, 8, 4); @@ -142,7 +143,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() : 'Locked'); + this.unlockText.setText(unlocked ? new Date(achvUnlocks[achv.id]).toLocaleDateString() : i18next.t('achv:Locked.name')); } processInput(button: Button): boolean { diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index b0321946e9b..a58fc3900d3 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -62,24 +62,24 @@ const languageSettings: { [key: string]: LanguageSetting } = { starterInfoTextSize: '56px', instructionTextSize: '35px', }, + "fr":{ + starterInfoTextSize: '54px', + instructionTextSize: '42px', + }, "it":{ starterInfoTextSize: '56px', instructionTextSize: '38px', }, - "fr":{ - starterInfoTextSize: '54px', - instructionTextSize: '42px', + "pt_BR":{ + starterInfoTextSize: '47px', + instructionTextSize: '38px', + starterInfoXPos: 33, }, "zh_CN":{ starterInfoTextSize: '40px', instructionTextSize: '42px', starterInfoYOffset: 2 }, - "pt_BR":{ - starterInfoTextSize: '47px', - instructionTextSize: '38px', - starterInfoXPos: 32, - }, } const starterCandyCosts: { passive: integer, costReduction: [integer, integer] }[] = [ diff --git a/src/ui/text.ts b/src/ui/text.ts index 8be46b1b238..d60de640eef 100644 --- a/src/ui/text.ts +++ b/src/ui/text.ts @@ -1,10 +1,10 @@ +import i18next from "i18next"; import BBCodeText from "phaser3-rex-plugins/plugins/gameobjects/tagtext/bbcodetext/BBCodeText"; import InputText from "phaser3-rex-plugins/plugins/inputtext"; -import { ModifierTier } from "../modifier/modifier-tier"; -import { EggTier } from "../data/enums/egg-type"; import BattleScene from "../battle-scene"; +import { EggTier } from "../data/enums/egg-type"; import { UiTheme } from "../enums/ui-theme"; -import i18next from "i18next"; +import { ModifierTier } from "../modifier/modifier-tier"; export enum TextStyle { MESSAGE, @@ -42,10 +42,10 @@ const languageSettings: { [key: string]: LanguageSetting } = { "en":{}, "de":{}, "es":{}, - "it":{}, "fr":{}, - "zh_CN":{}, + "it":{}, "pt_BR":{}, + "zh_CN":{}, } export function addTextObject(scene: Phaser.Scene, x: number, y: number, content: string, style: TextStyle, extraStyleOptions?: Phaser.Types.GameObjects.Text.TextStyle): Phaser.GameObjects.Text { From 7f0573317a57c1feea0c0047d9c7a3e36d2ff3d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Mon, 20 May 2024 14:06:12 -0300 Subject: [PATCH 2/5] localized for all languages --- src/locales/de/achv.ts | 171 ++++++++++++++++++++++++++++++++++++ src/locales/de/config.ts | 15 ++-- src/locales/en/achv.ts | 171 ++++++++++++++++++++++++++++++++++++ src/locales/en/config.ts | 13 +-- src/locales/es/achv.ts | 171 ++++++++++++++++++++++++++++++++++++ src/locales/es/config.ts | 15 ++-- src/locales/fr/achv.ts | 171 ++++++++++++++++++++++++++++++++++++ src/locales/fr/config.ts | 15 ++-- src/locales/it/achv.ts | 171 ++++++++++++++++++++++++++++++++++++ src/locales/it/config.ts | 15 ++-- src/locales/pt_BR/achv.ts | 6 +- src/locales/zh_CN/achv.ts | 171 ++++++++++++++++++++++++++++++++++++ src/locales/zh_CN/config.ts | 18 ++-- src/system/achv.ts | 2 +- 14 files changed, 1078 insertions(+), 47 deletions(-) create mode 100644 src/locales/de/achv.ts create mode 100644 src/locales/en/achv.ts create mode 100644 src/locales/es/achv.ts create mode 100644 src/locales/fr/achv.ts create mode 100644 src/locales/it/achv.ts create mode 100644 src/locales/zh_CN/achv.ts diff --git a/src/locales/de/achv.ts b/src/locales/de/achv.ts new file mode 100644 index 00000000000..6b0a5cb9b3f --- /dev/null +++ b/src/locales/de/achv.ts @@ -0,0 +1,171 @@ +import { AchievementTranslationEntries } from "#app/plugins/i18n.js"; + +export const achv: AchievementTranslationEntries = { + "Achievements": { + name: "Achievements", + }, + "Locked": { + name: "Locked", + }, + + "MoneyAchv": { + description: "Accumulate a total of ₽{{moneyAmount}}", + }, + "10K_MONEY": { + name: "Money Haver", + }, + "100K_MONEY": { + name: "Rich", + }, + "1M_MONEY": { + name: "Millionaire", + }, + "10M_MONEY": { + name: "One Percenter", + }, + + "DamageAchv": { + description: "Inflict {{damageAmount}} damage in one hit", + }, + "250_DMG": { + name: "Hard Hitter", + }, + "1000_DMG": { + name: "Harder Hitter", + }, + "2500_DMG": { + name: "That's a Lotta Damage!", + }, + "10000_DMG": { + name: "One Punch Man", + }, + + "HealAchv": { + description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item", + }, + "250_HEAL": { + name: "Novice Healer", + }, + "1000_HEAL": { + name: "Big Healer", + }, + "2500_HEAL": { + name: "Cleric", + }, + "10000_HEAL": { + name: "Recovery Master", + }, + + "LevelAchv": { + description: "Level up a Pokémon to Lv{{level}}", + }, + "LV_100": { + name: "But Wait, There's More!", + }, + "LV_250": { + name: "Elite", + }, + "LV_1000": { + name: "To Go Even Further Beyond", + }, + + "RibbonAchv": { + description: "Accumulate a total of {{ribbonAmount}} Ribbons", + }, + "10_RIBBONS": { + name: "Pokémon League Champion", + }, + "25_RIBBONS": { + name: "Great League Champion", + }, + "50_RIBBONS": { + name: "Ultra League Champion", + }, + "75_RIBBONS": { + name: "Rogue League Champion", + }, + "100_RIBBONS": { + name: "Master League Champion", + }, + + "TRANSFER_MAX_BATTLE_STAT": { + name: "Teamwork", + description: "Baton pass to another party member with at least one stat maxed out", + }, + "MAX_FRIENDSHIP": { + name: "Friendmaxxing", + description: "Reach max friendship on a Pokémon", + }, + "MEGA_EVOLVE": { + name: "Megamorph", + description: "Mega evolve a Pokémon", + }, + "GIGANTAMAX": { + name: "Absolute Unit", + description: "Gigantamax a Pokémon", + }, + "TERASTALLIZE": { + name: "STAB Enthusiast", + description: "Terastallize a Pokémon", + }, + "STELLAR_TERASTALLIZE": { + name: "The Hidden Type", + description: "Stellar Terastallize a Pokémon", + }, + "SPLICE": { + name: "Infinite Fusion", + description: "Splice two Pokémon together with DNA Splicers", + }, + "MINI_BLACK_HOLE": { + name: "A Hole Lot of Items", + description: "Acquire a Mini Black Hole", + }, + "CATCH_MYTHICAL": { + name: "Mythical", + description: "Catch a mythical Pokémon", + }, + "CATCH_SUB_LEGENDARY": { + name: "(Sub-)Legendary", + description: "Catch a sub-legendary Pokémon", + }, + "CATCH_LEGENDARY": { + name: "Legendary", + description: "Catch a legendary Pokémon", + }, + "SEE_SHINY": { + name: "Shiny", + description: "Find a shiny Pokémon in the wild", + }, + "SHINY_PARTY": { + name: "That's Dedication", + description: "Have a full party of shiny Pokémon", + }, + "HATCH_MYTHICAL": { + name: "Mythical Egg", + description: "Hatch a mythical Pokémon from an egg", + }, + "HATCH_SUB_LEGENDARY": { + name: "Sub-Legendary Egg", + description: "Hatch a sub-legendary Pokémon from an egg", + }, + "HATCH_LEGENDARY": { + name: "Legendary Egg", + description: "Hatch a legendary Pokémon from an egg", + }, + "HATCH_SHINY": { + name: "Shiny Egg", + description: "Hatch a shiny Pokémon from an egg", + }, + "HIDDEN_ABILITY": { + name: "Hidden Potential", + description: "Catch a Pokémon with a hidden ability", + }, + "PERFECT_IVS": { + name: "Certificate of Authenticity", + description: "Get perfect IVs on a Pokémon", + }, + "CLASSIC_VICTORY": { + name: "Undefeated", + description: "Beat the game in classic mode", + }, +} as const; diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 3580d74876d..eabd66dec84 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -1,6 +1,8 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; +import { achv } from "./achv"; import { battle } from "./battle"; +import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; @@ -17,15 +19,16 @@ import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { weather } from "./weather"; -import { battleMessageUiHandler } from "./battle-message-ui-handler"; -import { berry } from "./berry"; import { voucher } from "./voucher"; +import { weather } from "./weather"; -export const deConfig = { + +export const deConfig = { ability: ability, abilityTriggers: abilityTriggers, + achv: achv, battle: battle, + berry: berry, commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, @@ -44,8 +47,6 @@ export const deConfig = { trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - weather: weather, - battleMessageUiHandler: battleMessageUiHandler, - berry: berry, voucher: voucher, + weather: weather, } diff --git a/src/locales/en/achv.ts b/src/locales/en/achv.ts new file mode 100644 index 00000000000..6b0a5cb9b3f --- /dev/null +++ b/src/locales/en/achv.ts @@ -0,0 +1,171 @@ +import { AchievementTranslationEntries } from "#app/plugins/i18n.js"; + +export const achv: AchievementTranslationEntries = { + "Achievements": { + name: "Achievements", + }, + "Locked": { + name: "Locked", + }, + + "MoneyAchv": { + description: "Accumulate a total of ₽{{moneyAmount}}", + }, + "10K_MONEY": { + name: "Money Haver", + }, + "100K_MONEY": { + name: "Rich", + }, + "1M_MONEY": { + name: "Millionaire", + }, + "10M_MONEY": { + name: "One Percenter", + }, + + "DamageAchv": { + description: "Inflict {{damageAmount}} damage in one hit", + }, + "250_DMG": { + name: "Hard Hitter", + }, + "1000_DMG": { + name: "Harder Hitter", + }, + "2500_DMG": { + name: "That's a Lotta Damage!", + }, + "10000_DMG": { + name: "One Punch Man", + }, + + "HealAchv": { + description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item", + }, + "250_HEAL": { + name: "Novice Healer", + }, + "1000_HEAL": { + name: "Big Healer", + }, + "2500_HEAL": { + name: "Cleric", + }, + "10000_HEAL": { + name: "Recovery Master", + }, + + "LevelAchv": { + description: "Level up a Pokémon to Lv{{level}}", + }, + "LV_100": { + name: "But Wait, There's More!", + }, + "LV_250": { + name: "Elite", + }, + "LV_1000": { + name: "To Go Even Further Beyond", + }, + + "RibbonAchv": { + description: "Accumulate a total of {{ribbonAmount}} Ribbons", + }, + "10_RIBBONS": { + name: "Pokémon League Champion", + }, + "25_RIBBONS": { + name: "Great League Champion", + }, + "50_RIBBONS": { + name: "Ultra League Champion", + }, + "75_RIBBONS": { + name: "Rogue League Champion", + }, + "100_RIBBONS": { + name: "Master League Champion", + }, + + "TRANSFER_MAX_BATTLE_STAT": { + name: "Teamwork", + description: "Baton pass to another party member with at least one stat maxed out", + }, + "MAX_FRIENDSHIP": { + name: "Friendmaxxing", + description: "Reach max friendship on a Pokémon", + }, + "MEGA_EVOLVE": { + name: "Megamorph", + description: "Mega evolve a Pokémon", + }, + "GIGANTAMAX": { + name: "Absolute Unit", + description: "Gigantamax a Pokémon", + }, + "TERASTALLIZE": { + name: "STAB Enthusiast", + description: "Terastallize a Pokémon", + }, + "STELLAR_TERASTALLIZE": { + name: "The Hidden Type", + description: "Stellar Terastallize a Pokémon", + }, + "SPLICE": { + name: "Infinite Fusion", + description: "Splice two Pokémon together with DNA Splicers", + }, + "MINI_BLACK_HOLE": { + name: "A Hole Lot of Items", + description: "Acquire a Mini Black Hole", + }, + "CATCH_MYTHICAL": { + name: "Mythical", + description: "Catch a mythical Pokémon", + }, + "CATCH_SUB_LEGENDARY": { + name: "(Sub-)Legendary", + description: "Catch a sub-legendary Pokémon", + }, + "CATCH_LEGENDARY": { + name: "Legendary", + description: "Catch a legendary Pokémon", + }, + "SEE_SHINY": { + name: "Shiny", + description: "Find a shiny Pokémon in the wild", + }, + "SHINY_PARTY": { + name: "That's Dedication", + description: "Have a full party of shiny Pokémon", + }, + "HATCH_MYTHICAL": { + name: "Mythical Egg", + description: "Hatch a mythical Pokémon from an egg", + }, + "HATCH_SUB_LEGENDARY": { + name: "Sub-Legendary Egg", + description: "Hatch a sub-legendary Pokémon from an egg", + }, + "HATCH_LEGENDARY": { + name: "Legendary Egg", + description: "Hatch a legendary Pokémon from an egg", + }, + "HATCH_SHINY": { + name: "Shiny Egg", + description: "Hatch a shiny Pokémon from an egg", + }, + "HIDDEN_ABILITY": { + name: "Hidden Potential", + description: "Catch a Pokémon with a hidden ability", + }, + "PERFECT_IVS": { + name: "Certificate of Authenticity", + description: "Get perfect IVs on a Pokémon", + }, + "CLASSIC_VICTORY": { + name: "Undefeated", + description: "Beat the game in classic mode", + }, +} as const; diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index f25c0b5e278..8efcaa918ba 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -1,6 +1,8 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; +import { achv } from "./achv"; import { battle } from "./battle"; +import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; @@ -17,15 +19,16 @@ import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { weather } from "./weather"; -import { battleMessageUiHandler } from "./battle-message-ui-handler"; -import { berry } from "./berry"; import { voucher } from "./voucher"; +import { weather } from "./weather"; + export const enConfig = { ability: ability, abilityTriggers: abilityTriggers, + achv: achv, battle: battle, + berry: berry, commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, @@ -44,8 +47,6 @@ export const enConfig = { trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - weather: weather, - battleMessageUiHandler: battleMessageUiHandler, - berry: berry, voucher: voucher, + weather: weather, } diff --git a/src/locales/es/achv.ts b/src/locales/es/achv.ts new file mode 100644 index 00000000000..6b0a5cb9b3f --- /dev/null +++ b/src/locales/es/achv.ts @@ -0,0 +1,171 @@ +import { AchievementTranslationEntries } from "#app/plugins/i18n.js"; + +export const achv: AchievementTranslationEntries = { + "Achievements": { + name: "Achievements", + }, + "Locked": { + name: "Locked", + }, + + "MoneyAchv": { + description: "Accumulate a total of ₽{{moneyAmount}}", + }, + "10K_MONEY": { + name: "Money Haver", + }, + "100K_MONEY": { + name: "Rich", + }, + "1M_MONEY": { + name: "Millionaire", + }, + "10M_MONEY": { + name: "One Percenter", + }, + + "DamageAchv": { + description: "Inflict {{damageAmount}} damage in one hit", + }, + "250_DMG": { + name: "Hard Hitter", + }, + "1000_DMG": { + name: "Harder Hitter", + }, + "2500_DMG": { + name: "That's a Lotta Damage!", + }, + "10000_DMG": { + name: "One Punch Man", + }, + + "HealAchv": { + description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item", + }, + "250_HEAL": { + name: "Novice Healer", + }, + "1000_HEAL": { + name: "Big Healer", + }, + "2500_HEAL": { + name: "Cleric", + }, + "10000_HEAL": { + name: "Recovery Master", + }, + + "LevelAchv": { + description: "Level up a Pokémon to Lv{{level}}", + }, + "LV_100": { + name: "But Wait, There's More!", + }, + "LV_250": { + name: "Elite", + }, + "LV_1000": { + name: "To Go Even Further Beyond", + }, + + "RibbonAchv": { + description: "Accumulate a total of {{ribbonAmount}} Ribbons", + }, + "10_RIBBONS": { + name: "Pokémon League Champion", + }, + "25_RIBBONS": { + name: "Great League Champion", + }, + "50_RIBBONS": { + name: "Ultra League Champion", + }, + "75_RIBBONS": { + name: "Rogue League Champion", + }, + "100_RIBBONS": { + name: "Master League Champion", + }, + + "TRANSFER_MAX_BATTLE_STAT": { + name: "Teamwork", + description: "Baton pass to another party member with at least one stat maxed out", + }, + "MAX_FRIENDSHIP": { + name: "Friendmaxxing", + description: "Reach max friendship on a Pokémon", + }, + "MEGA_EVOLVE": { + name: "Megamorph", + description: "Mega evolve a Pokémon", + }, + "GIGANTAMAX": { + name: "Absolute Unit", + description: "Gigantamax a Pokémon", + }, + "TERASTALLIZE": { + name: "STAB Enthusiast", + description: "Terastallize a Pokémon", + }, + "STELLAR_TERASTALLIZE": { + name: "The Hidden Type", + description: "Stellar Terastallize a Pokémon", + }, + "SPLICE": { + name: "Infinite Fusion", + description: "Splice two Pokémon together with DNA Splicers", + }, + "MINI_BLACK_HOLE": { + name: "A Hole Lot of Items", + description: "Acquire a Mini Black Hole", + }, + "CATCH_MYTHICAL": { + name: "Mythical", + description: "Catch a mythical Pokémon", + }, + "CATCH_SUB_LEGENDARY": { + name: "(Sub-)Legendary", + description: "Catch a sub-legendary Pokémon", + }, + "CATCH_LEGENDARY": { + name: "Legendary", + description: "Catch a legendary Pokémon", + }, + "SEE_SHINY": { + name: "Shiny", + description: "Find a shiny Pokémon in the wild", + }, + "SHINY_PARTY": { + name: "That's Dedication", + description: "Have a full party of shiny Pokémon", + }, + "HATCH_MYTHICAL": { + name: "Mythical Egg", + description: "Hatch a mythical Pokémon from an egg", + }, + "HATCH_SUB_LEGENDARY": { + name: "Sub-Legendary Egg", + description: "Hatch a sub-legendary Pokémon from an egg", + }, + "HATCH_LEGENDARY": { + name: "Legendary Egg", + description: "Hatch a legendary Pokémon from an egg", + }, + "HATCH_SHINY": { + name: "Shiny Egg", + description: "Hatch a shiny Pokémon from an egg", + }, + "HIDDEN_ABILITY": { + name: "Hidden Potential", + description: "Catch a Pokémon with a hidden ability", + }, + "PERFECT_IVS": { + name: "Certificate of Authenticity", + description: "Get perfect IVs on a Pokémon", + }, + "CLASSIC_VICTORY": { + name: "Undefeated", + description: "Beat the game in classic mode", + }, +} as const; diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index 2d0a8a536b2..d98bb265b5f 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -1,6 +1,8 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; +import { achv } from "./achv"; import { battle } from "./battle"; +import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; @@ -17,15 +19,16 @@ import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { weather } from "./weather"; -import { battleMessageUiHandler } from "./battle-message-ui-handler"; -import { berry } from "./berry"; import { voucher } from "./voucher"; +import { weather } from "./weather"; -export const esConfig = { + +export const esConfig = { ability: ability, abilityTriggers: abilityTriggers, + achv: achv, battle: battle, + berry: berry, commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, @@ -44,8 +47,6 @@ export const esConfig = { trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - weather: weather, - battleMessageUiHandler: battleMessageUiHandler, - berry: berry, voucher: voucher, + weather: weather, } diff --git a/src/locales/fr/achv.ts b/src/locales/fr/achv.ts new file mode 100644 index 00000000000..6b0a5cb9b3f --- /dev/null +++ b/src/locales/fr/achv.ts @@ -0,0 +1,171 @@ +import { AchievementTranslationEntries } from "#app/plugins/i18n.js"; + +export const achv: AchievementTranslationEntries = { + "Achievements": { + name: "Achievements", + }, + "Locked": { + name: "Locked", + }, + + "MoneyAchv": { + description: "Accumulate a total of ₽{{moneyAmount}}", + }, + "10K_MONEY": { + name: "Money Haver", + }, + "100K_MONEY": { + name: "Rich", + }, + "1M_MONEY": { + name: "Millionaire", + }, + "10M_MONEY": { + name: "One Percenter", + }, + + "DamageAchv": { + description: "Inflict {{damageAmount}} damage in one hit", + }, + "250_DMG": { + name: "Hard Hitter", + }, + "1000_DMG": { + name: "Harder Hitter", + }, + "2500_DMG": { + name: "That's a Lotta Damage!", + }, + "10000_DMG": { + name: "One Punch Man", + }, + + "HealAchv": { + description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item", + }, + "250_HEAL": { + name: "Novice Healer", + }, + "1000_HEAL": { + name: "Big Healer", + }, + "2500_HEAL": { + name: "Cleric", + }, + "10000_HEAL": { + name: "Recovery Master", + }, + + "LevelAchv": { + description: "Level up a Pokémon to Lv{{level}}", + }, + "LV_100": { + name: "But Wait, There's More!", + }, + "LV_250": { + name: "Elite", + }, + "LV_1000": { + name: "To Go Even Further Beyond", + }, + + "RibbonAchv": { + description: "Accumulate a total of {{ribbonAmount}} Ribbons", + }, + "10_RIBBONS": { + name: "Pokémon League Champion", + }, + "25_RIBBONS": { + name: "Great League Champion", + }, + "50_RIBBONS": { + name: "Ultra League Champion", + }, + "75_RIBBONS": { + name: "Rogue League Champion", + }, + "100_RIBBONS": { + name: "Master League Champion", + }, + + "TRANSFER_MAX_BATTLE_STAT": { + name: "Teamwork", + description: "Baton pass to another party member with at least one stat maxed out", + }, + "MAX_FRIENDSHIP": { + name: "Friendmaxxing", + description: "Reach max friendship on a Pokémon", + }, + "MEGA_EVOLVE": { + name: "Megamorph", + description: "Mega evolve a Pokémon", + }, + "GIGANTAMAX": { + name: "Absolute Unit", + description: "Gigantamax a Pokémon", + }, + "TERASTALLIZE": { + name: "STAB Enthusiast", + description: "Terastallize a Pokémon", + }, + "STELLAR_TERASTALLIZE": { + name: "The Hidden Type", + description: "Stellar Terastallize a Pokémon", + }, + "SPLICE": { + name: "Infinite Fusion", + description: "Splice two Pokémon together with DNA Splicers", + }, + "MINI_BLACK_HOLE": { + name: "A Hole Lot of Items", + description: "Acquire a Mini Black Hole", + }, + "CATCH_MYTHICAL": { + name: "Mythical", + description: "Catch a mythical Pokémon", + }, + "CATCH_SUB_LEGENDARY": { + name: "(Sub-)Legendary", + description: "Catch a sub-legendary Pokémon", + }, + "CATCH_LEGENDARY": { + name: "Legendary", + description: "Catch a legendary Pokémon", + }, + "SEE_SHINY": { + name: "Shiny", + description: "Find a shiny Pokémon in the wild", + }, + "SHINY_PARTY": { + name: "That's Dedication", + description: "Have a full party of shiny Pokémon", + }, + "HATCH_MYTHICAL": { + name: "Mythical Egg", + description: "Hatch a mythical Pokémon from an egg", + }, + "HATCH_SUB_LEGENDARY": { + name: "Sub-Legendary Egg", + description: "Hatch a sub-legendary Pokémon from an egg", + }, + "HATCH_LEGENDARY": { + name: "Legendary Egg", + description: "Hatch a legendary Pokémon from an egg", + }, + "HATCH_SHINY": { + name: "Shiny Egg", + description: "Hatch a shiny Pokémon from an egg", + }, + "HIDDEN_ABILITY": { + name: "Hidden Potential", + description: "Catch a Pokémon with a hidden ability", + }, + "PERFECT_IVS": { + name: "Certificate of Authenticity", + description: "Get perfect IVs on a Pokémon", + }, + "CLASSIC_VICTORY": { + name: "Undefeated", + description: "Beat the game in classic mode", + }, +} as const; diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index a6bdfe5cd59..60f2943595e 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -1,6 +1,8 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; +import { achv } from "./achv"; import { battle } from "./battle"; +import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; @@ -17,15 +19,16 @@ import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { weather } from "./weather"; -import { battleMessageUiHandler } from "./battle-message-ui-handler"; -import { berry } from "./berry"; import { voucher } from "./voucher"; +import { weather } from "./weather"; -export const frConfig = { + +export const frConfig = { ability: ability, abilityTriggers: abilityTriggers, + achv: achv, battle: battle, + berry: berry, commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, @@ -44,8 +47,6 @@ export const frConfig = { trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - weather: weather, - battleMessageUiHandler: battleMessageUiHandler, - berry: berry, voucher: voucher, + weather: weather, } diff --git a/src/locales/it/achv.ts b/src/locales/it/achv.ts new file mode 100644 index 00000000000..6b0a5cb9b3f --- /dev/null +++ b/src/locales/it/achv.ts @@ -0,0 +1,171 @@ +import { AchievementTranslationEntries } from "#app/plugins/i18n.js"; + +export const achv: AchievementTranslationEntries = { + "Achievements": { + name: "Achievements", + }, + "Locked": { + name: "Locked", + }, + + "MoneyAchv": { + description: "Accumulate a total of ₽{{moneyAmount}}", + }, + "10K_MONEY": { + name: "Money Haver", + }, + "100K_MONEY": { + name: "Rich", + }, + "1M_MONEY": { + name: "Millionaire", + }, + "10M_MONEY": { + name: "One Percenter", + }, + + "DamageAchv": { + description: "Inflict {{damageAmount}} damage in one hit", + }, + "250_DMG": { + name: "Hard Hitter", + }, + "1000_DMG": { + name: "Harder Hitter", + }, + "2500_DMG": { + name: "That's a Lotta Damage!", + }, + "10000_DMG": { + name: "One Punch Man", + }, + + "HealAchv": { + description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item", + }, + "250_HEAL": { + name: "Novice Healer", + }, + "1000_HEAL": { + name: "Big Healer", + }, + "2500_HEAL": { + name: "Cleric", + }, + "10000_HEAL": { + name: "Recovery Master", + }, + + "LevelAchv": { + description: "Level up a Pokémon to Lv{{level}}", + }, + "LV_100": { + name: "But Wait, There's More!", + }, + "LV_250": { + name: "Elite", + }, + "LV_1000": { + name: "To Go Even Further Beyond", + }, + + "RibbonAchv": { + description: "Accumulate a total of {{ribbonAmount}} Ribbons", + }, + "10_RIBBONS": { + name: "Pokémon League Champion", + }, + "25_RIBBONS": { + name: "Great League Champion", + }, + "50_RIBBONS": { + name: "Ultra League Champion", + }, + "75_RIBBONS": { + name: "Rogue League Champion", + }, + "100_RIBBONS": { + name: "Master League Champion", + }, + + "TRANSFER_MAX_BATTLE_STAT": { + name: "Teamwork", + description: "Baton pass to another party member with at least one stat maxed out", + }, + "MAX_FRIENDSHIP": { + name: "Friendmaxxing", + description: "Reach max friendship on a Pokémon", + }, + "MEGA_EVOLVE": { + name: "Megamorph", + description: "Mega evolve a Pokémon", + }, + "GIGANTAMAX": { + name: "Absolute Unit", + description: "Gigantamax a Pokémon", + }, + "TERASTALLIZE": { + name: "STAB Enthusiast", + description: "Terastallize a Pokémon", + }, + "STELLAR_TERASTALLIZE": { + name: "The Hidden Type", + description: "Stellar Terastallize a Pokémon", + }, + "SPLICE": { + name: "Infinite Fusion", + description: "Splice two Pokémon together with DNA Splicers", + }, + "MINI_BLACK_HOLE": { + name: "A Hole Lot of Items", + description: "Acquire a Mini Black Hole", + }, + "CATCH_MYTHICAL": { + name: "Mythical", + description: "Catch a mythical Pokémon", + }, + "CATCH_SUB_LEGENDARY": { + name: "(Sub-)Legendary", + description: "Catch a sub-legendary Pokémon", + }, + "CATCH_LEGENDARY": { + name: "Legendary", + description: "Catch a legendary Pokémon", + }, + "SEE_SHINY": { + name: "Shiny", + description: "Find a shiny Pokémon in the wild", + }, + "SHINY_PARTY": { + name: "That's Dedication", + description: "Have a full party of shiny Pokémon", + }, + "HATCH_MYTHICAL": { + name: "Mythical Egg", + description: "Hatch a mythical Pokémon from an egg", + }, + "HATCH_SUB_LEGENDARY": { + name: "Sub-Legendary Egg", + description: "Hatch a sub-legendary Pokémon from an egg", + }, + "HATCH_LEGENDARY": { + name: "Legendary Egg", + description: "Hatch a legendary Pokémon from an egg", + }, + "HATCH_SHINY": { + name: "Shiny Egg", + description: "Hatch a shiny Pokémon from an egg", + }, + "HIDDEN_ABILITY": { + name: "Hidden Potential", + description: "Catch a Pokémon with a hidden ability", + }, + "PERFECT_IVS": { + name: "Certificate of Authenticity", + description: "Get perfect IVs on a Pokémon", + }, + "CLASSIC_VICTORY": { + name: "Undefeated", + description: "Beat the game in classic mode", + }, +} as const; diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 807d136040c..4f05bc12663 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -1,6 +1,8 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; +import { achv } from "./achv"; import { battle } from "./battle"; +import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; @@ -17,15 +19,16 @@ import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { weather } from "./weather"; -import { battleMessageUiHandler } from "./battle-message-ui-handler"; -import { berry } from "./berry"; import { voucher } from "./voucher"; +import { weather } from "./weather"; -export const itConfig = { + +export const itConfig = { ability: ability, abilityTriggers: abilityTriggers, + achv: achv, battle: battle, + berry: berry, commandUiHandler: commandUiHandler, egg: egg, fightUiHandler: fightUiHandler, @@ -44,8 +47,6 @@ export const itConfig = { trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - weather: weather, - battleMessageUiHandler: battleMessageUiHandler, - berry: berry, voucher: voucher, + weather: weather, } diff --git a/src/locales/pt_BR/achv.ts b/src/locales/pt_BR/achv.ts index e34f72bb0cb..3daeeda4f66 100644 --- a/src/locales/pt_BR/achv.ts +++ b/src/locales/pt_BR/achv.ts @@ -1,7 +1,7 @@ import { AchievementTranslationEntries } from "#app/plugins/i18n.js"; export const achv: AchievementTranslationEntries = { - "Achv": { + "Achievements": { name: "Conquistas", }, "Locked": { @@ -41,7 +41,7 @@ export const achv: AchievementTranslationEntries = { }, "HealAchv": { - description: "Cure {{healAmount}} de PS de uma vez só com um movimento, habilidade ou item segurado", + description: "Cure {{healAmount}} {{HP}} de uma vez só com um movimento, habilidade ou item segurado", }, "250_HEAL": { name: "Residente", @@ -57,7 +57,7 @@ export const achv: AchievementTranslationEntries = { }, "LevelAchv": { - description: "Eleve um Pokémon para o Lv{{level}}", + description: "Eleve um Pokémon para o Nv{{level}}", }, "LV_100": { name: "Calma Que Tem Mais!", diff --git a/src/locales/zh_CN/achv.ts b/src/locales/zh_CN/achv.ts new file mode 100644 index 00000000000..6b0a5cb9b3f --- /dev/null +++ b/src/locales/zh_CN/achv.ts @@ -0,0 +1,171 @@ +import { AchievementTranslationEntries } from "#app/plugins/i18n.js"; + +export const achv: AchievementTranslationEntries = { + "Achievements": { + name: "Achievements", + }, + "Locked": { + name: "Locked", + }, + + "MoneyAchv": { + description: "Accumulate a total of ₽{{moneyAmount}}", + }, + "10K_MONEY": { + name: "Money Haver", + }, + "100K_MONEY": { + name: "Rich", + }, + "1M_MONEY": { + name: "Millionaire", + }, + "10M_MONEY": { + name: "One Percenter", + }, + + "DamageAchv": { + description: "Inflict {{damageAmount}} damage in one hit", + }, + "250_DMG": { + name: "Hard Hitter", + }, + "1000_DMG": { + name: "Harder Hitter", + }, + "2500_DMG": { + name: "That's a Lotta Damage!", + }, + "10000_DMG": { + name: "One Punch Man", + }, + + "HealAchv": { + description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item", + }, + "250_HEAL": { + name: "Novice Healer", + }, + "1000_HEAL": { + name: "Big Healer", + }, + "2500_HEAL": { + name: "Cleric", + }, + "10000_HEAL": { + name: "Recovery Master", + }, + + "LevelAchv": { + description: "Level up a Pokémon to Lv{{level}}", + }, + "LV_100": { + name: "But Wait, There's More!", + }, + "LV_250": { + name: "Elite", + }, + "LV_1000": { + name: "To Go Even Further Beyond", + }, + + "RibbonAchv": { + description: "Accumulate a total of {{ribbonAmount}} Ribbons", + }, + "10_RIBBONS": { + name: "Pokémon League Champion", + }, + "25_RIBBONS": { + name: "Great League Champion", + }, + "50_RIBBONS": { + name: "Ultra League Champion", + }, + "75_RIBBONS": { + name: "Rogue League Champion", + }, + "100_RIBBONS": { + name: "Master League Champion", + }, + + "TRANSFER_MAX_BATTLE_STAT": { + name: "Teamwork", + description: "Baton pass to another party member with at least one stat maxed out", + }, + "MAX_FRIENDSHIP": { + name: "Friendmaxxing", + description: "Reach max friendship on a Pokémon", + }, + "MEGA_EVOLVE": { + name: "Megamorph", + description: "Mega evolve a Pokémon", + }, + "GIGANTAMAX": { + name: "Absolute Unit", + description: "Gigantamax a Pokémon", + }, + "TERASTALLIZE": { + name: "STAB Enthusiast", + description: "Terastallize a Pokémon", + }, + "STELLAR_TERASTALLIZE": { + name: "The Hidden Type", + description: "Stellar Terastallize a Pokémon", + }, + "SPLICE": { + name: "Infinite Fusion", + description: "Splice two Pokémon together with DNA Splicers", + }, + "MINI_BLACK_HOLE": { + name: "A Hole Lot of Items", + description: "Acquire a Mini Black Hole", + }, + "CATCH_MYTHICAL": { + name: "Mythical", + description: "Catch a mythical Pokémon", + }, + "CATCH_SUB_LEGENDARY": { + name: "(Sub-)Legendary", + description: "Catch a sub-legendary Pokémon", + }, + "CATCH_LEGENDARY": { + name: "Legendary", + description: "Catch a legendary Pokémon", + }, + "SEE_SHINY": { + name: "Shiny", + description: "Find a shiny Pokémon in the wild", + }, + "SHINY_PARTY": { + name: "That's Dedication", + description: "Have a full party of shiny Pokémon", + }, + "HATCH_MYTHICAL": { + name: "Mythical Egg", + description: "Hatch a mythical Pokémon from an egg", + }, + "HATCH_SUB_LEGENDARY": { + name: "Sub-Legendary Egg", + description: "Hatch a sub-legendary Pokémon from an egg", + }, + "HATCH_LEGENDARY": { + name: "Legendary Egg", + description: "Hatch a legendary Pokémon from an egg", + }, + "HATCH_SHINY": { + name: "Shiny Egg", + description: "Hatch a shiny Pokémon from an egg", + }, + "HIDDEN_ABILITY": { + name: "Hidden Potential", + description: "Catch a Pokémon with a hidden ability", + }, + "PERFECT_IVS": { + name: "Certificate of Authenticity", + description: "Get perfect IVs on a Pokémon", + }, + "CLASSIC_VICTORY": { + name: "Undefeated", + description: "Beat the game in classic mode", + }, +} as const; diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 89d8d628f0e..8c00bc52b30 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -1,8 +1,10 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; +import { achv } from "./achv"; import { battle } from "./battle"; +import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; -// import { egg } from "./egg"; +import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; import { growth } from "./growth"; import { menu } from "./menu"; @@ -17,18 +19,18 @@ import { pokemonInfo } from "./pokemon-info"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; -import { weather } from "./weather"; -import { battleMessageUiHandler } from "./battle-message-ui-handler"; -import { berry } from "./berry"; import { voucher } from "./voucher"; +import { weather } from "./weather"; -export const zhCnConfig = { +export const zhCnConfig = { ability: ability, abilityTriggers: abilityTriggers, + achv: achv, battle: battle, + berry: berry, commandUiHandler: commandUiHandler, - // egg: egg, + egg: egg, fightUiHandler: fightUiHandler, growth: growth, menu: menu, @@ -45,8 +47,6 @@ export const zhCnConfig = { trainerClasses: trainerClasses, trainerNames: trainerNames, tutorial: tutorial, - weather: weather, - battleMessageUiHandler: battleMessageUiHandler, - berry: berry, voucher: voucher, + weather: weather, } diff --git a/src/system/achv.ts b/src/system/achv.ts index f1ddfbee18b..a4378f29de0 100644 --- a/src/system/achv.ts +++ b/src/system/achv.ts @@ -98,7 +98,7 @@ export class HealAchv extends Achv { private healAmount: integer; constructor(name: string, healAmount: integer, iconImage: string, score: integer) { - super(name, i18next.t("achv:HealAchv.description", {"healAmount": healAmount.toLocaleString('en-US')}), iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.healAmount); + super(name, i18next.t("achv:HealAchv.description", {"healAmount": healAmount.toLocaleString('en-US'), "HP": i18next.t("pokemonInfo:Stat.HPshortened")}), iconImage, score, (_scene: BattleScene, args: any[]) => (args[0] as Utils.NumberHolder).value >= this.healAmount); this.healAmount = healAmount; } From aa60ffcd36184fd8dc4d48f42d942ca86377c645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Mon, 20 May 2024 14:10:25 -0300 Subject: [PATCH 3/5] minor fix --- src/locales/de/config.ts | 3 ++- src/locales/en/config.ts | 3 ++- src/locales/es/config.ts | 3 ++- src/locales/fr/config.ts | 3 ++- src/locales/it/config.ts | 3 ++- src/locales/pt_BR/config.ts | 3 ++- src/locales/zh_CN/config.ts | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index eabd66dec84..b3ecdda97ff 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -2,6 +2,7 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; import { achv } from "./achv"; import { battle } from "./battle"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; @@ -22,12 +23,12 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; - export const deConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, battle: battle, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, commandUiHandler: commandUiHandler, egg: egg, diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index 8efcaa918ba..ab5c3780d16 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -2,6 +2,7 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; import { achv } from "./achv"; import { battle } from "./battle"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; @@ -22,12 +23,12 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; - export const enConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, battle: battle, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, commandUiHandler: commandUiHandler, egg: egg, diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index d98bb265b5f..543068057f3 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -2,6 +2,7 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; import { achv } from "./achv"; import { battle } from "./battle"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; @@ -22,12 +23,12 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; - export const esConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, battle: battle, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, commandUiHandler: commandUiHandler, egg: egg, diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 60f2943595e..cf669ae5a4c 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -2,6 +2,7 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; import { achv } from "./achv"; import { battle } from "./battle"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; @@ -22,12 +23,12 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; - export const frConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, battle: battle, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, commandUiHandler: commandUiHandler, egg: egg, diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 4f05bc12663..747e86faaa9 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -2,6 +2,7 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; import { achv } from "./achv"; import { battle } from "./battle"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; @@ -22,12 +23,12 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; - export const itConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, battle: battle, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, commandUiHandler: commandUiHandler, egg: egg, diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 030700105ec..39a0324d184 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -2,6 +2,7 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; import { achv } from "./achv"; import { battle } from "./battle"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; @@ -22,12 +23,12 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; - export const ptBrConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, battle: battle, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, commandUiHandler: commandUiHandler, egg: egg, diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 8c00bc52b30..e326566fc52 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -2,6 +2,7 @@ import { ability } from "./ability"; import { abilityTriggers } from "./ability-trigger"; import { achv } from "./achv"; import { battle } from "./battle"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; import { commandUiHandler } from "./command-ui-handler"; import { egg } from "./egg"; @@ -22,12 +23,12 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; - export const zhCnConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, battle: battle, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, commandUiHandler: commandUiHandler, egg: egg, From 85fc2f95f85810a75136e60254eec1737e144455 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Mon, 20 May 2024 14:12:22 -0300 Subject: [PATCH 4/5] minor fix 2 --- src/locales/de/config.ts | 2 +- src/locales/en/config.ts | 2 +- src/locales/es/config.ts | 2 +- src/locales/fr/config.ts | 2 +- src/locales/it/config.ts | 2 +- src/locales/pt_BR/config.ts | 2 +- src/locales/zh_CN/config.ts | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index b3ecdda97ff..78398846143 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -23,7 +23,7 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; -export const deConfig = { +export const deConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index ab5c3780d16..1ed1b97241a 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -23,7 +23,7 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; -export const enConfig = { +export const enConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index 543068057f3..fcb612b985a 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -23,7 +23,7 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; -export const esConfig = { +export const esConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index cf669ae5a4c..0cc40acf319 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -23,7 +23,7 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; -export const frConfig = { +export const frConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 747e86faaa9..36670d9644f 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -23,7 +23,7 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; -export const itConfig = { +export const itConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 39a0324d184..8646949536d 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -23,7 +23,7 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; -export const ptBrConfig = { +export const ptBrConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index e326566fc52..dad9b33e040 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -23,7 +23,7 @@ import { tutorial } from "./tutorial"; import { voucher } from "./voucher"; import { weather } from "./weather"; -export const zhCnConfig = { +export const zhCnConfig = { ability: ability, abilityTriggers: abilityTriggers, achv: achv, From fec2560e68539599f92f9e68d4dc7f602c4e7e52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Mon, 20 May 2024 14:21:36 -0300 Subject: [PATCH 5/5] minor fix 3 --- src/ui/achvs-ui-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ui/achvs-ui-handler.ts b/src/ui/achvs-ui-handler.ts index e91e7c6eb83..59ed1abed94 100644 --- a/src/ui/achvs-ui-handler.ts +++ b/src/ui/achvs-ui-handler.ts @@ -33,7 +33,7 @@ export default class AchvsUiHandler extends MessageUiHandler { const headerBg = addWindow(this.scene, 0, 0, (this.scene.game.canvas.width / 6) - 2, 24); headerBg.setOrigin(0, 0); - const headerText = addTextObject(this.scene, 0, 0, i18next.t("achv:Achv.name"), TextStyle.SETTINGS_LABEL); + const headerText = addTextObject(this.scene, 0, 0, i18next.t("achv:Achievements.name"), TextStyle.SETTINGS_LABEL); headerText.setOrigin(0, 0); headerText.setPositionRelative(headerBg, 8, 4);