From 95386861bbf456ed58ad3e6b0fe9b74f77e4d01e Mon Sep 17 00:00:00 2001 From: flx-sta <50131232+flx-sta@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:55:16 -0700 Subject: [PATCH] [Qol][Refactor] i18n lazy-loading (#4327) * move: locales files to `/public` (from `/src`) * install: i18next-http-backend module * implement: i18next language lazy-loading * remove: all `config.ts` files (for locales) * disable: enConfig import in i18next.d.ts * remove: console.log from utils.camelCaseToKebabCase() * remove localization tests we don't need to test if i18next is working. This is the job of i18next itself * mock i18next for tests * fix: tests that have to use the i18next key now instead of the english translation * fix: absolute-avarice-encounter test * fix: loading mystery-encounter translations with lazy-load * fix: 2 mystery encounter translation loading * replace: i18next mocks any vi.fn() calls * fix: new namespace usage in ME tests now using "mysteryEncounters/..." * fix: delibirdy encounter not being language specific the encounter was checking if the modifier name includes `Berry` which is only true for english. Instead it has to check if the modifier is an instance of BerryModifier * fix: the-expert-pokemon-breeder the new i18n pattern requires a different namespacing which has been adopted * fix: GTS encounter tests * add: `MockText.on()` * fix: berries abound test * chore: apply review suggestion from @DayKev * update i18next.d.ts * chore: fix i18next.d.ts * fix: `dialogue-misc` switchup between `en` and `ja` * move: `SpeciesFormKey` into enum there was an issue with circular dependencies * replace: `#app/enums/` with `#enums/` for `SpeciesFormKey` imports * re-sync locales from `beta` * rename: `ca_ES` -> `ca-ES` * rename: `pt_BR` -> `pt-BR` * rename: `zh_CN` -> `zh-CN` * rename: `zh_TW` -> `zh-TW` * fix loading Species-Form-Key in poemon-evo. * update: i18next `supporterLngs` ... and remove `nonExplicitSupportedLngs` * fix: `${namespace}.` -> `${namespace}:` thanks @MokaStitcher --- package-lock.json | 8 +- package.json | 1 + .../locales/ca-ES}/ability-trigger.json | 0 .../locales/ca-ES}/ability.json | 0 .../ca_ES => public/locales/ca-ES}/achv.json | 0 .../locales/ca-ES}/arena-flyout.json | 0 .../locales/ca-ES}/arena-tag.json | 0 .../locales/ca-ES}/battle-info.json | 0 .../ca-ES}/battle-message-ui-handler.json | 0 .../locales/ca-ES}/battle-scene.json | 0 .../locales/ca-ES}/battle.json | 0 .../locales/ca-ES}/battler-tags.json | 0 .../ca_ES => public/locales/ca-ES}/berry.json | 0 .../locales/ca-ES}/bgm-name.json | 0 .../ca_ES => public/locales/ca-ES}/biome.json | 0 .../locales/ca-ES}/challenges.json | 0 .../locales/ca-ES}/command-ui-handler.json | 0 .../locales/ca-ES}/common.json | 0 .../ca-ES}/dialogue-double-battle.json | 0 .../locales/ca-ES}/dialogue-final-boss.json | 0 .../locales/ca-ES}/dialogue-misc.json | 0 .../locales/ca-ES}/dialogue.json | 0 .../ca_ES => public/locales/ca-ES}/egg.json | 0 .../locales/ca-ES}/fight-ui-handler.json | 0 .../locales/ca-ES}/filter-bar.json | 0 .../locales/ca-ES}/game-mode.json | 0 .../locales/ca-ES}/game-stats-ui-handler.json | 0 .../locales/ca-ES}/growth.json | 0 .../locales/ca-ES}/menu-ui-handler.json | 0 .../ca_ES => public/locales/ca-ES}/menu.json | 0 .../ca-ES}/modifier-select-ui-handler.json | 0 .../locales/ca-ES}/modifier-type.json | 0 .../locales/ca-ES}/modifier.json | 0 .../locales/ca-ES}/move-trigger.json | 0 .../ca_ES => public/locales/ca-ES}/move.json | 0 .../ca-ES}/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 0 .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 .../locales/ca-ES}/nature.json | 0 .../locales/ca-ES}/party-ui-handler.json | 0 .../locales/ca-ES}/pokeball.json | 0 .../locales/ca-ES}/pokemon-form-battle.json | 0 .../locales/ca-ES}/pokemon-form.json | 0 .../ca-ES}/pokemon-info-container.json | 0 .../locales/ca-ES}/pokemon-info.json | 0 .../locales/ca-ES}/pokemon-summary.json | 0 .../locales/ca-ES}/pokemon.json | 0 .../locales/ca-ES}/run-history.json | 0 .../ca-ES}/save-slot-select-ui-handler.json | 0 .../locales/ca-ES}/settings.json | 0 .../locales/ca-ES}/splash-messages.json | 0 .../ca-ES}/starter-select-ui-handler.json | 0 .../locales/ca-ES}/status-effect.json | 0 .../locales/ca-ES}/terrain.json | 0 .../locales/ca-ES}/trainer-classes.json | 0 .../locales/ca-ES}/trainer-names.json | 0 .../locales/ca-ES}/trainer-titles.json | 0 .../locales/ca-ES}/tutorial.json | 0 .../locales/ca-ES}/voucher.json | 0 .../locales/ca-ES}/weather.json | 0 .../locales/de/ability-trigger.json | 0 {src => public}/locales/de/ability.json | 0 {src => public}/locales/de/achv.json | 0 {src => public}/locales/de/arena-flyout.json | 0 {src => public}/locales/de/arena-tag.json | 0 {src => public}/locales/de/battle-info.json | 0 .../locales/de/battle-message-ui-handler.json | 0 {src => public}/locales/de/battle-scene.json | 0 {src => public}/locales/de/battle.json | 0 {src => public}/locales/de/battler-tags.json | 0 {src => public}/locales/de/berry.json | 0 {src => public}/locales/de/bgm-name.json | 0 {src => public}/locales/de/biome.json | 0 {src => public}/locales/de/challenges.json | 0 .../locales/de/command-ui-handler.json | 0 {src => public}/locales/de/common.json | 0 .../locales/de/dialogue-double-battle.json | 0 .../locales/de/dialogue-final-boss.json | 0 {src => public}/locales/de/dialogue-misc.json | 0 {src => public}/locales/de/dialogue.json | 0 {src => public}/locales/de/egg.json | 0 .../locales/de/fight-ui-handler.json | 0 {src => public}/locales/de/filter-bar.json | 0 {src => public}/locales/de/game-mode.json | 0 .../locales/de/game-stats-ui-handler.json | 0 {src => public}/locales/de/growth.json | 0 .../locales/de/menu-ui-handler.json | 0 {src => public}/locales/de/menu.json | 0 .../de/modifier-select-ui-handler.json | 0 {src => public}/locales/de/modifier-type.json | 0 {src => public}/locales/de/modifier.json | 0 {src => public}/locales/de/move-trigger.json | 0 {src => public}/locales/de/move.json | 0 .../de/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 0 .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 {src => public}/locales/de/nature.json | 0 .../locales/de/party-ui-handler.json | 0 {src => public}/locales/de/pokeball.json | 0 .../locales/de/pokemon-form-battle.json | 0 {src => public}/locales/de/pokemon-form.json | 0 .../locales/de/pokemon-info-container.json | 0 {src => public}/locales/de/pokemon-info.json | 0 .../locales/de/pokemon-summary.json | 0 {src => public}/locales/de/pokemon.json | 0 {src => public}/locales/de/run-history.json | 0 .../de/save-slot-select-ui-handler.json | 0 {src => public}/locales/de/settings.json | 0 .../locales/de/splash-messages.json | 0 .../locales/de/starter-select-ui-handler.json | 0 {src => public}/locales/de/status-effect.json | 0 {src => public}/locales/de/terrain.json | 0 .../locales/de/trainer-classes.json | 0 {src => public}/locales/de/trainer-names.json | 0 .../locales/de/trainer-titles.json | 0 {src => public}/locales/de/tutorial.json | 0 {src => public}/locales/de/voucher.json | 0 {src => public}/locales/de/weather.json | 0 .../locales/en/ability-trigger.json | 0 {src => public}/locales/en/ability.json | 0 {src => public}/locales/en/achv.json | 0 {src => public}/locales/en/arena-flyout.json | 0 {src => public}/locales/en/arena-tag.json | 0 {src => public}/locales/en/battle-info.json | 0 .../locales/en/battle-message-ui-handler.json | 0 {src => public}/locales/en/battle-scene.json | 0 {src => public}/locales/en/battle.json | 0 {src => public}/locales/en/battler-tags.json | 0 {src => public}/locales/en/berry.json | 0 {src => public}/locales/en/bgm-name.json | 0 {src => public}/locales/en/biome.json | 0 {src => public}/locales/en/challenges.json | 0 .../locales/en/command-ui-handler.json | 0 {src => public}/locales/en/common.json | 0 .../locales/en/dialogue-double-battle.json | 0 .../locales/en/dialogue-final-boss.json | 0 {src => public}/locales/en/dialogue-misc.json | 0 {src => public}/locales/en/dialogue.json | 0 {src => public}/locales/en/egg.json | 0 .../locales/en/fight-ui-handler.json | 0 {src => public}/locales/en/filter-bar.json | 0 {src => public}/locales/en/game-mode.json | 0 .../locales/en/game-stats-ui-handler.json | 0 {src => public}/locales/en/growth.json | 0 .../locales/en/menu-ui-handler.json | 0 {src => public}/locales/en/menu.json | 0 .../en/modifier-select-ui-handler.json | 0 {src => public}/locales/en/modifier-type.json | 0 {src => public}/locales/en/modifier.json | 0 {src => public}/locales/en/move-trigger.json | 0 {src => public}/locales/en/move.json | 0 .../en/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 0 .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 {src => public}/locales/en/nature.json | 0 .../locales/en/party-ui-handler.json | 0 {src => public}/locales/en/pokeball.json | 0 .../locales/en/pokemon-form-battle.json | 0 {src => public}/locales/en/pokemon-form.json | 0 .../locales/en/pokemon-info-container.json | 0 {src => public}/locales/en/pokemon-info.json | 0 .../locales/en/pokemon-summary.json | 0 {src => public}/locales/en/pokemon.json | 0 {src => public}/locales/en/run-history.json | 0 .../en/save-slot-select-ui-handler.json | 0 {src => public}/locales/en/settings.json | 0 .../locales/en/splash-messages.json | 0 .../locales/en/starter-select-ui-handler.json | 0 {src => public}/locales/en/status-effect.json | 0 {src => public}/locales/en/terrain.json | 0 .../locales/en/trainer-classes.json | 0 {src => public}/locales/en/trainer-names.json | 0 .../locales/en/trainer-titles.json | 0 {src => public}/locales/en/tutorial.json | 0 {src => public}/locales/en/voucher.json | 0 {src => public}/locales/en/weather.json | 0 .../locales/es/ability-trigger.json | 0 {src => public}/locales/es/ability.json | 0 {src => public}/locales/es/achv.json | 0 {src => public}/locales/es/arena-flyout.json | 0 {src => public}/locales/es/arena-tag.json | 0 {src => public}/locales/es/battle-info.json | 0 .../locales/es/battle-message-ui-handler.json | 0 {src => public}/locales/es/battle-scene.json | 0 {src => public}/locales/es/battle.json | 0 {src => public}/locales/es/battler-tags.json | 0 {src => public}/locales/es/berry.json | 0 {src => public}/locales/es/bgm-name.json | 0 {src => public}/locales/es/biome.json | 0 {src => public}/locales/es/challenges.json | 0 .../locales/es/command-ui-handler.json | 0 {src => public}/locales/es/common.json | 0 .../locales/es/dialogue-double-battle.json | 0 .../locales/es/dialogue-final-boss.json | 0 {src => public}/locales/es/dialogue-misc.json | 0 {src => public}/locales/es/dialogue.json | 0 {src => public}/locales/es/egg.json | 0 .../locales/es/fight-ui-handler.json | 0 {src => public}/locales/es/filter-bar.json | 0 {src => public}/locales/es/game-mode.json | 0 .../locales/es/game-stats-ui-handler.json | 0 {src => public}/locales/es/growth.json | 0 .../locales/es/menu-ui-handler.json | 0 {src => public}/locales/es/menu.json | 0 .../es/modifier-select-ui-handler.json | 0 {src => public}/locales/es/modifier-type.json | 0 {src => public}/locales/es/modifier.json | 0 {src => public}/locales/es/move-trigger.json | 0 {src => public}/locales/es/move.json | 0 .../es/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 0 .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 {src => public}/locales/es/nature.json | 0 .../locales/es/party-ui-handler.json | 0 {src => public}/locales/es/pokeball.json | 0 .../locales/es/pokemon-form-battle.json | 0 {src => public}/locales/es/pokemon-form.json | 0 .../locales/es/pokemon-info-container.json | 0 {src => public}/locales/es/pokemon-info.json | 0 .../locales/es/pokemon-summary.json | 0 {src => public}/locales/es/pokemon.json | 0 {src => public}/locales/es/run-history.json | 0 .../es/save-slot-select-ui-handler.json | 0 {src => public}/locales/es/settings.json | 0 .../locales/es/splash-messages.json | 0 .../locales/es/starter-select-ui-handler.json | 0 {src => public}/locales/es/status-effect.json | 0 {src => public}/locales/es/terrain.json | 0 .../locales/es/trainer-classes.json | 0 {src => public}/locales/es/trainer-names.json | 0 .../locales/es/trainer-titles.json | 0 {src => public}/locales/es/tutorial.json | 0 {src => public}/locales/es/voucher.json | 0 {src => public}/locales/es/weather.json | 0 .../locales/fr/ability-trigger.json | 0 {src => public}/locales/fr/ability.json | 0 {src => public}/locales/fr/achv.json | 0 {src => public}/locales/fr/arena-flyout.json | 0 {src => public}/locales/fr/arena-tag.json | 0 {src => public}/locales/fr/battle-info.json | 0 .../locales/fr/battle-message-ui-handler.json | 0 {src => public}/locales/fr/battle-scene.json | 0 {src => public}/locales/fr/battle.json | 0 {src => public}/locales/fr/battler-tags.json | 0 {src => public}/locales/fr/berry.json | 0 {src => public}/locales/fr/bgm-name.json | 0 {src => public}/locales/fr/biome.json | 0 {src => public}/locales/fr/challenges.json | 0 .../locales/fr/command-ui-handler.json | 0 {src => public}/locales/fr/common.json | 0 .../locales/fr/dialogue-double-battle.json | 0 .../locales/fr/dialogue-final-boss.json | 0 {src => public}/locales/fr/dialogue-misc.json | 0 {src => public}/locales/fr/dialogue.json | 0 {src => public}/locales/fr/egg.json | 0 .../locales/fr/fight-ui-handler.json | 0 {src => public}/locales/fr/filter-bar.json | 0 {src => public}/locales/fr/game-mode.json | 0 .../locales/fr/game-stats-ui-handler.json | 0 {src => public}/locales/fr/growth.json | 0 .../locales/fr/menu-ui-handler.json | 0 {src => public}/locales/fr/menu.json | 0 .../fr/modifier-select-ui-handler.json | 0 {src => public}/locales/fr/modifier-type.json | 0 {src => public}/locales/fr/modifier.json | 0 {src => public}/locales/fr/move-trigger.json | 0 {src => public}/locales/fr/move.json | 0 .../fr/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 62 +++--- .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 {src => public}/locales/fr/nature.json | 0 .../locales/fr/party-ui-handler.json | 0 {src => public}/locales/fr/pokeball.json | 0 .../locales/fr/pokemon-form-battle.json | 0 {src => public}/locales/fr/pokemon-form.json | 0 .../locales/fr/pokemon-info-container.json | 0 {src => public}/locales/fr/pokemon-info.json | 0 .../locales/fr/pokemon-summary.json | 0 {src => public}/locales/fr/pokemon.json | 0 {src => public}/locales/fr/run-history.json | 0 .../fr/save-slot-select-ui-handler.json | 0 {src => public}/locales/fr/settings.json | 0 .../locales/fr/splash-messages.json | 0 .../locales/fr/starter-select-ui-handler.json | 0 {src => public}/locales/fr/status-effect.json | 0 {src => public}/locales/fr/terrain.json | 0 .../locales/fr/trainer-classes.json | 0 {src => public}/locales/fr/trainer-names.json | 0 .../locales/fr/trainer-titles.json | 0 {src => public}/locales/fr/tutorial.json | 0 {src => public}/locales/fr/voucher.json | 0 {src => public}/locales/fr/weather.json | 0 .../locales/it/ability-trigger.json | 0 {src => public}/locales/it/ability.json | 0 {src => public}/locales/it/achv.json | 0 {src => public}/locales/it/arena-flyout.json | 0 {src => public}/locales/it/arena-tag.json | 0 {src => public}/locales/it/battle-info.json | 0 .../locales/it/battle-message-ui-handler.json | 0 {src => public}/locales/it/battle-scene.json | 0 {src => public}/locales/it/battle.json | 0 {src => public}/locales/it/battler-tags.json | 0 {src => public}/locales/it/berry.json | 0 {src => public}/locales/it/bgm-name.json | 0 {src => public}/locales/it/biome.json | 0 {src => public}/locales/it/challenges.json | 0 .../locales/it/command-ui-handler.json | 0 {src => public}/locales/it/common.json | 0 .../locales/it/dialogue-double-battle.json | 0 .../locales/it/dialogue-final-boss.json | 0 {src => public}/locales/it/dialogue-misc.json | 0 {src => public}/locales/it/dialogue.json | 0 {src => public}/locales/it/egg.json | 0 .../locales/it/fight-ui-handler.json | 0 {src => public}/locales/it/filter-bar.json | 0 {src => public}/locales/it/game-mode.json | 0 .../locales/it/game-stats-ui-handler.json | 0 {src => public}/locales/it/growth.json | 0 .../locales/it/menu-ui-handler.json | 0 {src => public}/locales/it/menu.json | 0 .../it/modifier-select-ui-handler.json | 0 {src => public}/locales/it/modifier-type.json | 0 {src => public}/locales/it/modifier.json | 0 {src => public}/locales/it/move-trigger.json | 0 {src => public}/locales/it/move.json | 0 .../it/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 0 .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 {src => public}/locales/it/nature.json | 0 .../locales/it/party-ui-handler.json | 0 {src => public}/locales/it/pokeball.json | 0 .../locales/it/pokemon-form-battle.json | 0 {src => public}/locales/it/pokemon-form.json | 0 .../locales/it/pokemon-info-container.json | 0 {src => public}/locales/it/pokemon-info.json | 0 .../locales/it/pokemon-summary.json | 0 {src => public}/locales/it/pokemon.json | 0 {src => public}/locales/it/run-history.json | 0 .../it/save-slot-select-ui-handler.json | 0 {src => public}/locales/it/settings.json | 0 .../locales/it/splash-messages.json | 0 .../locales/it/starter-select-ui-handler.json | 0 {src => public}/locales/it/status-effect.json | 0 {src => public}/locales/it/terrain.json | 0 .../locales/it/trainer-classes.json | 0 {src => public}/locales/it/trainer-names.json | 0 .../locales/it/trainer-titles.json | 0 {src => public}/locales/it/tutorial.json | 0 {src => public}/locales/it/voucher.json | 0 {src => public}/locales/it/weather.json | 0 .../locales/ja/ability-trigger.json | 0 {src => public}/locales/ja/ability.json | 0 {src => public}/locales/ja/achv.json | 0 {src => public}/locales/ja/arena-flyout.json | 0 {src => public}/locales/ja/arena-tag.json | 0 {src => public}/locales/ja/battle-info.json | 0 .../locales/ja/battle-message-ui-handler.json | 0 {src => public}/locales/ja/battle-scene.json | 0 {src => public}/locales/ja/battle.json | 0 {src => public}/locales/ja/battler-tags.json | 0 {src => public}/locales/ja/berry.json | 0 {src => public}/locales/ja/bgm-name.json | 0 {src => public}/locales/ja/biome.json | 0 {src => public}/locales/ja/challenges.json | 0 .../locales/ja/command-ui-handler.json | 0 {src => public}/locales/ja/common.json | 0 .../locales/ja/dialogue-double-battle.json | 0 .../locales/ja/dialogue-final-boss.json | 0 {src => public}/locales/ja/dialogue-misc.json | 0 {src => public}/locales/ja/dialogue.json | 0 {src => public}/locales/ja/egg.json | 0 .../locales/ja/fight-ui-handler.json | 0 {src => public}/locales/ja/filter-bar.json | 0 {src => public}/locales/ja/game-mode.json | 0 .../locales/ja/game-stats-ui-handler.json | 0 {src => public}/locales/ja/growth.json | 0 .../locales/ja/menu-ui-handler.json | 0 {src => public}/locales/ja/menu.json | 0 .../ja/modifier-select-ui-handler.json | 0 {src => public}/locales/ja/modifier-type.json | 0 {src => public}/locales/ja/modifier.json | 0 {src => public}/locales/ja/move-trigger.json | 0 {src => public}/locales/ja/move.json | 0 .../ja/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 62 +++--- .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 {src => public}/locales/ja/nature.json | 0 .../locales/ja/party-ui-handler.json | 0 {src => public}/locales/ja/pokeball.json | 0 .../locales/ja/pokemon-form-battle.json | 0 {src => public}/locales/ja/pokemon-form.json | 0 .../locales/ja/pokemon-info-container.json | 0 {src => public}/locales/ja/pokemon-info.json | 0 .../locales/ja/pokemon-summary.json | 0 {src => public}/locales/ja/pokemon.json | 0 {src => public}/locales/ja/run-history.json | 0 .../ja/save-slot-select-ui-handler.json | 0 {src => public}/locales/ja/settings.json | 0 .../locales/ja/splash-messages.json | 0 .../locales/ja/starter-select-ui-handler.json | 0 {src => public}/locales/ja/status-effect.json | 0 {src => public}/locales/ja/terrain.json | 0 .../locales/ja/trainer-classes.json | 0 {src => public}/locales/ja/trainer-names.json | 0 .../locales/ja/trainer-titles.json | 0 {src => public}/locales/ja/tutorial.json | 0 {src => public}/locales/ja/voucher.json | 0 {src => public}/locales/ja/weather.json | 0 .../locales/ko/ability-trigger.json | 0 {src => public}/locales/ko/ability.json | 0 {src => public}/locales/ko/achv.json | 0 {src => public}/locales/ko/arena-flyout.json | 0 {src => public}/locales/ko/arena-tag.json | 0 {src => public}/locales/ko/battle-info.json | 0 .../locales/ko/battle-message-ui-handler.json | 0 {src => public}/locales/ko/battle-scene.json | 0 {src => public}/locales/ko/battle.json | 0 {src => public}/locales/ko/battler-tags.json | 0 {src => public}/locales/ko/berry.json | 0 {src => public}/locales/ko/bgm-name.json | 0 {src => public}/locales/ko/biome.json | 0 {src => public}/locales/ko/challenges.json | 0 .../locales/ko/command-ui-handler.json | 0 {src => public}/locales/ko/common.json | 0 .../locales/ko/dialogue-double-battle.json | 0 .../locales/ko/dialogue-final-boss.json | 0 {src => public}/locales/ko/dialogue-misc.json | 0 {src => public}/locales/ko/dialogue.json | 0 {src => public}/locales/ko/egg.json | 0 .../locales/ko/fight-ui-handler.json | 0 {src => public}/locales/ko/filter-bar.json | 0 {src => public}/locales/ko/game-mode.json | 0 .../locales/ko/game-stats-ui-handler.json | 0 {src => public}/locales/ko/growth.json | 0 .../locales/ko/menu-ui-handler.json | 0 {src => public}/locales/ko/menu.json | 0 .../ko/modifier-select-ui-handler.json | 0 {src => public}/locales/ko/modifier-type.json | 0 {src => public}/locales/ko/modifier.json | 0 {src => public}/locales/ko/move-trigger.json | 0 {src => public}/locales/ko/move.json | 0 .../ko/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 64 +++--- .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 {src => public}/locales/ko/nature.json | 0 .../locales/ko/party-ui-handler.json | 0 {src => public}/locales/ko/pokeball.json | 0 .../locales/ko/pokemon-form-battle.json | 0 {src => public}/locales/ko/pokemon-form.json | 0 .../locales/ko/pokemon-info-container.json | 0 {src => public}/locales/ko/pokemon-info.json | 0 .../locales/ko/pokemon-summary.json | 0 {src => public}/locales/ko/pokemon.json | 0 {src => public}/locales/ko/run-history.json | 0 .../ko/save-slot-select-ui-handler.json | 0 {src => public}/locales/ko/settings.json | 0 .../locales/ko/splash-messages.json | 0 .../locales/ko/starter-select-ui-handler.json | 0 {src => public}/locales/ko/status-effect.json | 0 {src => public}/locales/ko/terrain.json | 0 .../locales/ko/trainer-classes.json | 0 {src => public}/locales/ko/trainer-names.json | 0 .../locales/ko/trainer-titles.json | 0 {src => public}/locales/ko/tutorial.json | 0 {src => public}/locales/ko/voucher.json | 0 {src => public}/locales/ko/weather.json | 0 .../locales/pt-BR}/ability-trigger.json | 0 .../locales/pt-BR}/ability.json | 0 .../pt_BR => public/locales/pt-BR}/achv.json | 0 .../locales/pt-BR}/arena-flyout.json | 0 .../locales/pt-BR}/arena-tag.json | 0 .../locales/pt-BR}/battle-info.json | 0 .../pt-BR}/battle-message-ui-handler.json | 0 .../locales/pt-BR}/battle-scene.json | 0 .../locales/pt-BR}/battle.json | 0 .../locales/pt-BR}/battler-tags.json | 0 .../pt_BR => public/locales/pt-BR}/berry.json | 0 .../locales/pt-BR}/bgm-name.json | 0 .../pt_BR => public/locales/pt-BR}/biome.json | 0 .../locales/pt-BR}/challenges.json | 0 .../locales/pt-BR}/command-ui-handler.json | 0 .../locales/pt-BR}/common.json | 0 .../pt-BR}/dialogue-double-battle.json | 0 .../locales/pt-BR}/dialogue-final-boss.json | 0 .../locales/pt-BR}/dialogue-misc.json | 0 .../locales/pt-BR}/dialogue.json | 0 .../pt_BR => public/locales/pt-BR}/egg.json | 0 .../locales/pt-BR}/fight-ui-handler.json | 0 .../locales/pt-BR}/filter-bar.json | 0 .../locales/pt-BR}/game-mode.json | 0 .../locales/pt-BR}/game-stats-ui-handler.json | 0 .../locales/pt-BR}/growth.json | 0 .../locales/pt-BR}/menu-ui-handler.json | 0 .../pt_BR => public/locales/pt-BR}/menu.json | 0 .../pt-BR}/modifier-select-ui-handler.json | 0 .../locales/pt-BR}/modifier-type.json | 0 .../locales/pt-BR}/modifier.json | 0 .../locales/pt-BR}/move-trigger.json | 0 .../pt_BR => public/locales/pt-BR}/move.json | 0 .../pt-BR}/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 62 +++--- .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 .../locales/pt-BR}/nature.json | 0 .../locales/pt-BR}/party-ui-handler.json | 0 .../locales/pt-BR}/pokeball.json | 0 .../locales/pt-BR}/pokemon-form-battle.json | 0 .../locales/pt-BR}/pokemon-form.json | 0 .../pt-BR}/pokemon-info-container.json | 0 .../locales/pt-BR}/pokemon-info.json | 0 .../locales/pt-BR}/pokemon-summary.json | 0 .../locales/pt-BR}/pokemon.json | 0 .../locales/pt-BR}/run-history.json | 0 .../pt-BR}/save-slot-select-ui-handler.json | 0 .../locales/pt-BR}/settings.json | 0 .../locales/pt-BR}/splash-messages.json | 0 .../pt-BR}/starter-select-ui-handler.json | 0 .../locales/pt-BR}/status-effect.json | 0 .../locales/pt-BR}/terrain.json | 0 .../locales/pt-BR}/trainer-classes.json | 0 .../locales/pt-BR}/trainer-names.json | 0 .../locales/pt-BR}/trainer-titles.json | 0 .../locales/pt-BR}/tutorial.json | 0 .../locales/pt-BR}/voucher.json | 0 .../locales/pt-BR}/weather.json | 0 .../locales/zh-CN}/ability-trigger.json | 0 .../locales/zh-CN}/ability.json | 0 .../zh_CN => public/locales/zh-CN}/achv.json | 0 .../locales/zh-CN}/arena-flyout.json | 0 .../locales/zh-CN}/arena-tag.json | 0 .../locales/zh-CN}/battle-info.json | 0 .../zh-CN}/battle-message-ui-handler.json | 0 .../locales/zh-CN}/battle-scene.json | 0 .../locales/zh-CN}/battle.json | 0 .../locales/zh-CN}/battler-tags.json | 0 .../zh_CN => public/locales/zh-CN}/berry.json | 0 .../locales/zh-CN}/bgm-name.json | 0 .../zh_CN => public/locales/zh-CN}/biome.json | 0 .../locales/zh-CN}/challenges.json | 0 .../locales/zh-CN}/command-ui-handler.json | 0 .../locales/zh-CN}/common.json | 0 .../zh-CN}/dialogue-double-battle.json | 0 .../locales/zh-CN}/dialogue-final-boss.json | 0 .../locales/zh-CN}/dialogue-misc.json | 0 .../locales/zh-CN}/dialogue.json | 0 .../zh_CN => public/locales/zh-CN}/egg.json | 0 .../locales/zh-CN}/fight-ui-handler.json | 0 .../locales/zh-CN}/filter-bar.json | 0 .../locales/zh-CN}/game-mode.json | 0 .../locales/zh-CN}/game-stats-ui-handler.json | 0 .../locales/zh-CN}/growth.json | 0 .../locales/zh-CN}/menu-ui-handler.json | 0 .../zh_CN => public/locales/zh-CN}/menu.json | 0 .../zh-CN}/modifier-select-ui-handler.json | 0 .../locales/zh-CN}/modifier-type.json | 0 .../locales/zh-CN}/modifier.json | 0 .../locales/zh-CN}/move-trigger.json | 0 .../zh_CN => public/locales/zh-CN}/move.json | 0 .../zh-CN}/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 66 +++--- .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 .../locales/zh-CN}/nature.json | 0 .../locales/zh-CN}/party-ui-handler.json | 0 .../locales/zh-CN}/pokeball.json | 0 .../locales/zh-CN}/pokemon-form-battle.json | 0 .../locales/zh-CN}/pokemon-form.json | 0 .../zh-CN}/pokemon-info-container.json | 0 .../locales/zh-CN}/pokemon-info.json | 0 .../locales/zh-CN}/pokemon-summary.json | 0 .../locales/zh-CN}/pokemon.json | 0 .../locales/zh-CN}/run-history.json | 0 .../zh-CN}/save-slot-select-ui-handler.json | 0 .../locales/zh-CN}/settings.json | 0 .../locales/zh-CN}/splash-messages.json | 0 .../zh-CN}/starter-select-ui-handler.json | 0 .../locales/zh-CN}/status-effect.json | 0 .../locales/zh-CN}/terrain.json | 0 .../locales/zh-CN}/trainer-classes.json | 0 .../locales/zh-CN}/trainer-names.json | 0 .../locales/zh-CN}/trainer-titles.json | 0 .../locales/zh-CN}/tutorial.json | 0 .../locales/zh-CN}/voucher.json | 0 .../locales/zh-CN}/weather.json | 0 .../locales/zh-TW}/ability-trigger.json | 0 .../locales/zh-TW}/ability.json | 0 .../zh_TW => public/locales/zh-TW}/achv.json | 0 .../locales/zh-TW}/arena-flyout.json | 0 .../locales/zh-TW}/arena-tag.json | 0 .../locales/zh-TW}/battle-info.json | 0 .../zh-TW}/battle-message-ui-handler.json | 0 .../locales/zh-TW}/battle-scene.json | 0 .../locales/zh-TW}/battle.json | 0 .../locales/zh-TW}/battler-tags.json | 0 .../zh_TW => public/locales/zh-TW}/berry.json | 0 .../locales/zh-TW}/bgm-name.json | 0 .../zh_TW => public/locales/zh-TW}/biome.json | 0 .../locales/zh-TW}/challenges.json | 0 .../locales/zh-TW}/command-ui-handler.json | 0 .../locales/zh-TW}/common.json | 0 .../zh-TW}/dialogue-double-battle.json | 0 .../locales/zh-TW}/dialogue-final-boss.json | 0 .../locales/zh-TW}/dialogue-misc.json | 0 .../locales/zh-TW}/dialogue.json | 0 .../zh_TW => public/locales/zh-TW}/egg.json | 0 .../locales/zh-TW}/fight-ui-handler.json | 0 .../locales/zh-TW}/filter-bar.json | 0 .../locales/zh-TW}/game-mode.json | 0 .../locales/zh-TW}/game-stats-ui-handler.json | 0 .../locales/zh-TW}/growth.json | 0 .../locales/zh-TW}/menu-ui-handler.json | 0 .../zh_TW => public/locales/zh-TW}/menu.json | 0 .../zh-TW}/modifier-select-ui-handler.json | 0 .../locales/zh-TW}/modifier-type.json | 0 .../locales/zh-TW}/modifier.json | 0 .../locales/zh-TW}/move-trigger.json | 0 .../zh_TW => public/locales/zh-TW}/move.json | 0 .../zh-TW}/mystery-encounter-messages.json | 0 .../a-trainers-test-dialogue.json | 0 .../absolute-avarice-dialogue.json | 0 .../an-offer-you-cant-refuse-dialogue.json | 0 .../berries-abound-dialogue.json | 0 .../bug-type-superfan-dialogue.json | 0 .../clowning-around-dialogue.json | 0 .../dancing-lessons-dialogue.json | 0 .../dark-deal-dialogue.json | 0 .../delibirdy-dialogue.json | 0 .../department-store-sale-dialogue.json | 0 .../field-trip-dialogue.json | 0 .../fiery-fallout-dialogue.json | 0 .../fight-or-flight-dialogue.json | 0 .../fun-and-games-dialogue.json | 0 .../global-trade-system-dialogue.json | 0 .../lost-at-sea-dialogue.json | 0 .../mysterious-challengers-dialogue.json | 0 .../mysterious-chest-dialogue.json | 0 .../part-timer-dialogue.json | 0 .../safari-zone-dialogue.json | 0 .../shady-vitamin-dealer-dialogue.json | 0 .../slumbering-snorlax-dialogue.json | 0 .../teleporting-hijinks-dialogue.json | 0 .../the-expert-pokemon-breeder-dialogue.json | 0 .../the-pokemon-salesman-dialogue.json | 0 .../the-strong-stuff-dialogue.json | 0 .../the-winstrate-challenge-dialogue.json | 0 .../training-session-dialogue.json | 0 .../trash-to-treasure-dialogue.json | 0 .../uncommon-breed-dialogue.json | 0 .../weird-dream-dialogue.json | 0 .../locales/zh-TW}/nature.json | 0 .../locales/zh-TW}/party-ui-handler.json | 0 .../locales/zh-TW}/pokeball.json | 0 .../locales/zh-TW}/pokemon-form-battle.json | 0 .../locales/zh-TW}/pokemon-form.json | 0 .../zh-TW}/pokemon-info-container.json | 0 .../locales/zh-TW}/pokemon-info.json | 0 .../locales/zh-TW}/pokemon-summary.json | 0 .../locales/zh-TW}/pokemon.json | 0 .../locales/zh-TW}/run-history.json | 0 .../zh-TW}/save-slot-select-ui-handler.json | 0 .../locales/zh-TW}/settings.json | 0 .../locales/zh-TW}/splash-messages.json | 0 .../zh-TW}/starter-select-ui-handler.json | 0 .../locales/zh-TW}/status-effect.json | 0 .../locales/zh-TW}/terrain.json | 0 .../locales/zh-TW}/trainer-classes.json | 0 .../locales/zh-TW}/trainer-names.json | 0 .../locales/zh-TW}/trainer-titles.json | 0 .../locales/zh-TW}/tutorial.json | 0 .../locales/zh-TW}/voucher.json | 0 .../locales/zh-TW}/weather.json | 0 src/@types/i18next.d.ts | 16 +- .../encounters/a-trainers-test-encounter.ts | 32 +-- .../encounters/absolute-avarice-encounter.ts | 32 +-- .../an-offer-you-cant-refuse-encounter.ts | 40 ++-- .../encounters/berries-abound-encounter.ts | 38 ++-- .../encounters/bug-type-superfan-encounter.ts | 68 +++---- .../encounters/clowning-around-encounter.ts | 60 +++--- .../encounters/dancing-lessons-encounter.ts | 36 ++-- .../encounters/dark-deal-encounter.ts | 34 ++-- .../encounters/delibirdy-encounter.ts | 40 ++-- .../department-store-sale-encounter.ts | 32 +-- .../encounters/field-trip-encounter.ts | 54 ++--- .../encounters/fiery-fallout-encounter.ts | 34 ++-- .../encounters/fight-or-flight-encounter.ts | 32 +-- .../encounters/fun-and-games-encounter.ts | 42 ++-- .../global-trade-system-encounter.ts | 44 ++-- .../encounters/lost-at-sea-encounter.ts | 38 ++-- .../mysterious-challengers-encounter.ts | 30 +-- .../encounters/mysterious-chest-encounter.ts | 32 +-- .../encounters/part-timer-encounter.ts | 58 +++--- .../encounters/safari-zone-encounter.ts | 56 ++--- .../shady-vitamin-dealer-encounter.ts | 42 ++-- .../slumbering-snorlax-encounter.ts | 32 +-- .../teleporting-hijinks-encounter.ts | 36 ++-- .../the-expert-pokemon-breeder-encounter.ts | 84 ++++---- .../the-pokemon-salesman-encounter.ts | 32 +-- .../encounters/the-strong-stuff-encounter.ts | 28 +-- .../the-winstrate-challenge-encounter.ts | 34 ++-- .../encounters/training-session-encounter.ts | 50 ++--- .../encounters/trash-to-treasure-encounter.ts | 24 +-- .../encounters/uncommon-breed-encounter.ts | 34 ++-- .../encounters/weird-dream-encounter.ts | 30 +-- .../mystery-encounter-requirements.ts | 2 +- src/data/pokemon-evolutions.ts | 3 +- src/data/pokemon-forms.ts | 2 +- src/data/pokemon-species.ts | 15 +- src/enums/species-form-key.ts | 13 ++ src/field/pokemon.ts | 3 +- src/loading-scene.ts | 2 - src/locales/ca_ES/config.ts | 191 ------------------ src/locales/de/config.ts | 191 ------------------ src/locales/en/config.ts | 191 ------------------ src/locales/es/config.ts | 191 ------------------ src/locales/fr/config.ts | 191 ------------------ src/locales/it/config.ts | 191 ------------------ src/locales/ja/config.ts | 191 ------------------ src/locales/ko/config.ts | 191 ------------------ src/locales/pt_BR/config.ts | 191 ------------------ src/locales/zh_CN/config.ts | 191 ------------------ src/locales/zh_TW/config.ts | 191 ------------------ src/main.ts | 100 ++++----- src/modifier/modifier-type.ts | 2 +- src/phases/form-change-phase.ts | 2 +- src/plugins/i18n.ts | 185 ++++++++++++----- src/test/abilities/ability_timing.test.ts | 2 +- .../status-effect.test.ts | 9 +- src/test/items/toxic_orb.test.ts | 5 +- src/test/localization/french.test.ts | 42 ---- src/test/localization/terrain.test.ts | 191 ------------------ .../a-trainers-test-encounter.test.ts | 18 +- .../absolute-avarice-encounter.test.ts | 30 +-- ...an-offer-you-cant-refuse-encounter.test.ts | 34 ++-- .../berries-abound-encounter.test.ts | 26 +-- .../bug-type-superfan-encounter.test.ts | 42 ++-- .../clowning-around-encounter.test.ts | 50 ++--- .../dancing-lessons-encounter.test.ts | 32 +-- .../encounters/delibirdy-encounter.test.ts | 34 ++-- .../department-store-sale-encounter.test.ts | 30 +-- .../encounters/field-trip-encounter.test.ts | 65 +++--- .../fiery-fallout-encounter.test.ts | 32 +-- .../fight-or-flight-encounter.test.ts | 24 +-- .../fun-and-games-encounter.test.ts | 18 +- .../global-trade-system-encounter.test.ts | 40 ++-- .../encounters/lost-at-sea-encounter.test.ts | 40 ++-- .../mysterious-challengers-encounter.test.ts | 28 +-- .../encounters/part-timer-encounter.test.ts | 34 ++-- .../teleporting-hijinks-encounter.test.ts | 34 ++-- .../the-expert-breeder-encounter.test.ts | 24 +-- .../the-pokemon-salesman-encounter.test.ts | 18 +- .../the-strong-stuff-encounter.test.ts | 22 +- .../the-winstrate-challenge-encounter.test.ts | 30 +-- .../trash-to-treasure-encounter.test.ts | 22 +- .../uncommon-breed-encounter.test.ts | 32 +-- .../encounters/weird-dream-encounter.test.ts | 26 +-- .../mystery-encounter-utils.test.ts | 10 +- .../phases/mystery-encounter-phase.test.ts | 17 +- src/test/ui/starter-select.test.ts | 90 ++++----- src/test/ui/type-hints.test.ts | 4 +- .../utils/mocks/mocksContainer/mockText.ts | 24 ++- src/test/vitest.setup.ts | 27 ++- src/utils.ts | 11 + 1050 files changed, 1516 insertions(+), 3730 deletions(-) rename {src/locales/ca_ES => public/locales/ca-ES}/ability-trigger.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/ability.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/achv.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/arena-flyout.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/arena-tag.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/battle-info.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/battle-message-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/battle-scene.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/battle.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/battler-tags.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/berry.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/bgm-name.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/biome.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/challenges.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/command-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/common.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/dialogue-double-battle.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/dialogue-final-boss.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/dialogue-misc.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/egg.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/fight-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/filter-bar.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/game-mode.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/game-stats-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/growth.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/menu-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/menu.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/modifier-select-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/modifier-type.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/modifier.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/move-trigger.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/move.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounter-messages.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/berries-abound-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/clowning-around-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/dark-deal-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/delibirdy-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/field-trip-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/part-timer-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/safari-zone-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/training-session-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/mystery-encounters/weird-dream-dialogue.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/nature.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/party-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/pokeball.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/pokemon-form-battle.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/pokemon-form.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/pokemon-info-container.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/pokemon-info.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/pokemon-summary.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/pokemon.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/run-history.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/save-slot-select-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/settings.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/splash-messages.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/starter-select-ui-handler.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/status-effect.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/terrain.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/trainer-classes.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/trainer-names.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/trainer-titles.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/tutorial.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/voucher.json (100%) rename {src/locales/ca_ES => public/locales/ca-ES}/weather.json (100%) rename {src => public}/locales/de/ability-trigger.json (100%) rename {src => public}/locales/de/ability.json (100%) rename {src => public}/locales/de/achv.json (100%) rename {src => public}/locales/de/arena-flyout.json (100%) rename {src => public}/locales/de/arena-tag.json (100%) rename {src => public}/locales/de/battle-info.json (100%) rename {src => public}/locales/de/battle-message-ui-handler.json (100%) rename {src => public}/locales/de/battle-scene.json (100%) rename {src => public}/locales/de/battle.json (100%) rename {src => public}/locales/de/battler-tags.json (100%) rename {src => public}/locales/de/berry.json (100%) rename {src => public}/locales/de/bgm-name.json (100%) rename {src => public}/locales/de/biome.json (100%) rename {src => public}/locales/de/challenges.json (100%) rename {src => public}/locales/de/command-ui-handler.json (100%) rename {src => public}/locales/de/common.json (100%) rename {src => public}/locales/de/dialogue-double-battle.json (100%) rename {src => public}/locales/de/dialogue-final-boss.json (100%) rename {src => public}/locales/de/dialogue-misc.json (100%) rename {src => public}/locales/de/dialogue.json (100%) rename {src => public}/locales/de/egg.json (100%) rename {src => public}/locales/de/fight-ui-handler.json (100%) rename {src => public}/locales/de/filter-bar.json (100%) rename {src => public}/locales/de/game-mode.json (100%) rename {src => public}/locales/de/game-stats-ui-handler.json (100%) rename {src => public}/locales/de/growth.json (100%) rename {src => public}/locales/de/menu-ui-handler.json (100%) rename {src => public}/locales/de/menu.json (100%) rename {src => public}/locales/de/modifier-select-ui-handler.json (100%) rename {src => public}/locales/de/modifier-type.json (100%) rename {src => public}/locales/de/modifier.json (100%) rename {src => public}/locales/de/move-trigger.json (100%) rename {src => public}/locales/de/move.json (100%) rename {src => public}/locales/de/mystery-encounter-messages.json (100%) rename {src => public}/locales/de/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/berries-abound-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/clowning-around-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/dark-deal-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/delibirdy-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/field-trip-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/part-timer-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/safari-zone-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/training-session-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src => public}/locales/de/mystery-encounters/weird-dream-dialogue.json (100%) rename {src => public}/locales/de/nature.json (100%) rename {src => public}/locales/de/party-ui-handler.json (100%) rename {src => public}/locales/de/pokeball.json (100%) rename {src => public}/locales/de/pokemon-form-battle.json (100%) rename {src => public}/locales/de/pokemon-form.json (100%) rename {src => public}/locales/de/pokemon-info-container.json (100%) rename {src => public}/locales/de/pokemon-info.json (100%) rename {src => public}/locales/de/pokemon-summary.json (100%) rename {src => public}/locales/de/pokemon.json (100%) rename {src => public}/locales/de/run-history.json (100%) rename {src => public}/locales/de/save-slot-select-ui-handler.json (100%) rename {src => public}/locales/de/settings.json (100%) rename {src => public}/locales/de/splash-messages.json (100%) rename {src => public}/locales/de/starter-select-ui-handler.json (100%) rename {src => public}/locales/de/status-effect.json (100%) rename {src => public}/locales/de/terrain.json (100%) rename {src => public}/locales/de/trainer-classes.json (100%) rename {src => public}/locales/de/trainer-names.json (100%) rename {src => public}/locales/de/trainer-titles.json (100%) rename {src => public}/locales/de/tutorial.json (100%) rename {src => public}/locales/de/voucher.json (100%) rename {src => public}/locales/de/weather.json (100%) rename {src => public}/locales/en/ability-trigger.json (100%) rename {src => public}/locales/en/ability.json (100%) rename {src => public}/locales/en/achv.json (100%) rename {src => public}/locales/en/arena-flyout.json (100%) rename {src => public}/locales/en/arena-tag.json (100%) rename {src => public}/locales/en/battle-info.json (100%) rename {src => public}/locales/en/battle-message-ui-handler.json (100%) rename {src => public}/locales/en/battle-scene.json (100%) rename {src => public}/locales/en/battle.json (100%) rename {src => public}/locales/en/battler-tags.json (100%) rename {src => public}/locales/en/berry.json (100%) rename {src => public}/locales/en/bgm-name.json (100%) rename {src => public}/locales/en/biome.json (100%) rename {src => public}/locales/en/challenges.json (100%) rename {src => public}/locales/en/command-ui-handler.json (100%) rename {src => public}/locales/en/common.json (100%) rename {src => public}/locales/en/dialogue-double-battle.json (100%) rename {src => public}/locales/en/dialogue-final-boss.json (100%) rename {src => public}/locales/en/dialogue-misc.json (100%) rename {src => public}/locales/en/dialogue.json (100%) rename {src => public}/locales/en/egg.json (100%) rename {src => public}/locales/en/fight-ui-handler.json (100%) rename {src => public}/locales/en/filter-bar.json (100%) rename {src => public}/locales/en/game-mode.json (100%) rename {src => public}/locales/en/game-stats-ui-handler.json (100%) rename {src => public}/locales/en/growth.json (100%) rename {src => public}/locales/en/menu-ui-handler.json (100%) rename {src => public}/locales/en/menu.json (100%) rename {src => public}/locales/en/modifier-select-ui-handler.json (100%) rename {src => public}/locales/en/modifier-type.json (100%) rename {src => public}/locales/en/modifier.json (100%) rename {src => public}/locales/en/move-trigger.json (100%) rename {src => public}/locales/en/move.json (100%) rename {src => public}/locales/en/mystery-encounter-messages.json (100%) rename {src => public}/locales/en/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/berries-abound-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/clowning-around-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/dark-deal-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/delibirdy-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/field-trip-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/part-timer-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/safari-zone-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/training-session-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src => public}/locales/en/mystery-encounters/weird-dream-dialogue.json (100%) rename {src => public}/locales/en/nature.json (100%) rename {src => public}/locales/en/party-ui-handler.json (100%) rename {src => public}/locales/en/pokeball.json (100%) rename {src => public}/locales/en/pokemon-form-battle.json (100%) rename {src => public}/locales/en/pokemon-form.json (100%) rename {src => public}/locales/en/pokemon-info-container.json (100%) rename {src => public}/locales/en/pokemon-info.json (100%) rename {src => public}/locales/en/pokemon-summary.json (100%) rename {src => public}/locales/en/pokemon.json (100%) rename {src => public}/locales/en/run-history.json (100%) rename {src => public}/locales/en/save-slot-select-ui-handler.json (100%) rename {src => public}/locales/en/settings.json (100%) rename {src => public}/locales/en/splash-messages.json (100%) rename {src => public}/locales/en/starter-select-ui-handler.json (100%) rename {src => public}/locales/en/status-effect.json (100%) rename {src => public}/locales/en/terrain.json (100%) rename {src => public}/locales/en/trainer-classes.json (100%) rename {src => public}/locales/en/trainer-names.json (100%) rename {src => public}/locales/en/trainer-titles.json (100%) rename {src => public}/locales/en/tutorial.json (100%) rename {src => public}/locales/en/voucher.json (100%) rename {src => public}/locales/en/weather.json (100%) rename {src => public}/locales/es/ability-trigger.json (100%) rename {src => public}/locales/es/ability.json (100%) rename {src => public}/locales/es/achv.json (100%) rename {src => public}/locales/es/arena-flyout.json (100%) rename {src => public}/locales/es/arena-tag.json (100%) rename {src => public}/locales/es/battle-info.json (100%) rename {src => public}/locales/es/battle-message-ui-handler.json (100%) rename {src => public}/locales/es/battle-scene.json (100%) rename {src => public}/locales/es/battle.json (100%) rename {src => public}/locales/es/battler-tags.json (100%) rename {src => public}/locales/es/berry.json (100%) rename {src => public}/locales/es/bgm-name.json (100%) rename {src => public}/locales/es/biome.json (100%) rename {src => public}/locales/es/challenges.json (100%) rename {src => public}/locales/es/command-ui-handler.json (100%) rename {src => public}/locales/es/common.json (100%) rename {src => public}/locales/es/dialogue-double-battle.json (100%) rename {src => public}/locales/es/dialogue-final-boss.json (100%) rename {src => public}/locales/es/dialogue-misc.json (100%) rename {src => public}/locales/es/dialogue.json (100%) rename {src => public}/locales/es/egg.json (100%) rename {src => public}/locales/es/fight-ui-handler.json (100%) rename {src => public}/locales/es/filter-bar.json (100%) rename {src => public}/locales/es/game-mode.json (100%) rename {src => public}/locales/es/game-stats-ui-handler.json (100%) rename {src => public}/locales/es/growth.json (100%) rename {src => public}/locales/es/menu-ui-handler.json (100%) rename {src => public}/locales/es/menu.json (100%) rename {src => public}/locales/es/modifier-select-ui-handler.json (100%) rename {src => public}/locales/es/modifier-type.json (100%) rename {src => public}/locales/es/modifier.json (100%) rename {src => public}/locales/es/move-trigger.json (100%) rename {src => public}/locales/es/move.json (100%) rename {src => public}/locales/es/mystery-encounter-messages.json (100%) rename {src => public}/locales/es/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/berries-abound-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/clowning-around-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/dark-deal-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/delibirdy-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/field-trip-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/part-timer-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/safari-zone-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/training-session-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src => public}/locales/es/mystery-encounters/weird-dream-dialogue.json (100%) rename {src => public}/locales/es/nature.json (100%) rename {src => public}/locales/es/party-ui-handler.json (100%) rename {src => public}/locales/es/pokeball.json (100%) rename {src => public}/locales/es/pokemon-form-battle.json (100%) rename {src => public}/locales/es/pokemon-form.json (100%) rename {src => public}/locales/es/pokemon-info-container.json (100%) rename {src => public}/locales/es/pokemon-info.json (100%) rename {src => public}/locales/es/pokemon-summary.json (100%) rename {src => public}/locales/es/pokemon.json (100%) rename {src => public}/locales/es/run-history.json (100%) rename {src => public}/locales/es/save-slot-select-ui-handler.json (100%) rename {src => public}/locales/es/settings.json (100%) rename {src => public}/locales/es/splash-messages.json (100%) rename {src => public}/locales/es/starter-select-ui-handler.json (100%) rename {src => public}/locales/es/status-effect.json (100%) rename {src => public}/locales/es/terrain.json (100%) rename {src => public}/locales/es/trainer-classes.json (100%) rename {src => public}/locales/es/trainer-names.json (100%) rename {src => public}/locales/es/trainer-titles.json (100%) rename {src => public}/locales/es/tutorial.json (100%) rename {src => public}/locales/es/voucher.json (100%) rename {src => public}/locales/es/weather.json (100%) rename {src => public}/locales/fr/ability-trigger.json (100%) rename {src => public}/locales/fr/ability.json (100%) rename {src => public}/locales/fr/achv.json (100%) rename {src => public}/locales/fr/arena-flyout.json (100%) rename {src => public}/locales/fr/arena-tag.json (100%) rename {src => public}/locales/fr/battle-info.json (100%) rename {src => public}/locales/fr/battle-message-ui-handler.json (100%) rename {src => public}/locales/fr/battle-scene.json (100%) rename {src => public}/locales/fr/battle.json (100%) rename {src => public}/locales/fr/battler-tags.json (100%) rename {src => public}/locales/fr/berry.json (100%) rename {src => public}/locales/fr/bgm-name.json (100%) rename {src => public}/locales/fr/biome.json (100%) rename {src => public}/locales/fr/challenges.json (100%) rename {src => public}/locales/fr/command-ui-handler.json (100%) rename {src => public}/locales/fr/common.json (100%) rename {src => public}/locales/fr/dialogue-double-battle.json (100%) rename {src => public}/locales/fr/dialogue-final-boss.json (100%) rename {src => public}/locales/fr/dialogue-misc.json (100%) rename {src => public}/locales/fr/dialogue.json (100%) rename {src => public}/locales/fr/egg.json (100%) rename {src => public}/locales/fr/fight-ui-handler.json (100%) rename {src => public}/locales/fr/filter-bar.json (100%) rename {src => public}/locales/fr/game-mode.json (100%) rename {src => public}/locales/fr/game-stats-ui-handler.json (100%) rename {src => public}/locales/fr/growth.json (100%) rename {src => public}/locales/fr/menu-ui-handler.json (100%) rename {src => public}/locales/fr/menu.json (100%) rename {src => public}/locales/fr/modifier-select-ui-handler.json (100%) rename {src => public}/locales/fr/modifier-type.json (100%) rename {src => public}/locales/fr/modifier.json (100%) rename {src => public}/locales/fr/move-trigger.json (100%) rename {src => public}/locales/fr/move.json (100%) rename {src => public}/locales/fr/mystery-encounter-messages.json (100%) rename {src => public}/locales/fr/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/berries-abound-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/clowning-around-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/dark-deal-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/delibirdy-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/field-trip-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/part-timer-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/safari-zone-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (98%) rename {src => public}/locales/fr/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/training-session-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src => public}/locales/fr/mystery-encounters/weird-dream-dialogue.json (100%) rename {src => public}/locales/fr/nature.json (100%) rename {src => public}/locales/fr/party-ui-handler.json (100%) rename {src => public}/locales/fr/pokeball.json (100%) rename {src => public}/locales/fr/pokemon-form-battle.json (100%) rename {src => public}/locales/fr/pokemon-form.json (100%) rename {src => public}/locales/fr/pokemon-info-container.json (100%) rename {src => public}/locales/fr/pokemon-info.json (100%) rename {src => public}/locales/fr/pokemon-summary.json (100%) rename {src => public}/locales/fr/pokemon.json (100%) rename {src => public}/locales/fr/run-history.json (100%) rename {src => public}/locales/fr/save-slot-select-ui-handler.json (100%) rename {src => public}/locales/fr/settings.json (100%) rename {src => public}/locales/fr/splash-messages.json (100%) rename {src => public}/locales/fr/starter-select-ui-handler.json (100%) rename {src => public}/locales/fr/status-effect.json (100%) rename {src => public}/locales/fr/terrain.json (100%) rename {src => public}/locales/fr/trainer-classes.json (100%) rename {src => public}/locales/fr/trainer-names.json (100%) rename {src => public}/locales/fr/trainer-titles.json (100%) rename {src => public}/locales/fr/tutorial.json (100%) rename {src => public}/locales/fr/voucher.json (100%) rename {src => public}/locales/fr/weather.json (100%) rename {src => public}/locales/it/ability-trigger.json (100%) rename {src => public}/locales/it/ability.json (100%) rename {src => public}/locales/it/achv.json (100%) rename {src => public}/locales/it/arena-flyout.json (100%) rename {src => public}/locales/it/arena-tag.json (100%) rename {src => public}/locales/it/battle-info.json (100%) rename {src => public}/locales/it/battle-message-ui-handler.json (100%) rename {src => public}/locales/it/battle-scene.json (100%) rename {src => public}/locales/it/battle.json (100%) rename {src => public}/locales/it/battler-tags.json (100%) rename {src => public}/locales/it/berry.json (100%) rename {src => public}/locales/it/bgm-name.json (100%) rename {src => public}/locales/it/biome.json (100%) rename {src => public}/locales/it/challenges.json (100%) rename {src => public}/locales/it/command-ui-handler.json (100%) rename {src => public}/locales/it/common.json (100%) rename {src => public}/locales/it/dialogue-double-battle.json (100%) rename {src => public}/locales/it/dialogue-final-boss.json (100%) rename {src => public}/locales/it/dialogue-misc.json (100%) rename {src => public}/locales/it/dialogue.json (100%) rename {src => public}/locales/it/egg.json (100%) rename {src => public}/locales/it/fight-ui-handler.json (100%) rename {src => public}/locales/it/filter-bar.json (100%) rename {src => public}/locales/it/game-mode.json (100%) rename {src => public}/locales/it/game-stats-ui-handler.json (100%) rename {src => public}/locales/it/growth.json (100%) rename {src => public}/locales/it/menu-ui-handler.json (100%) rename {src => public}/locales/it/menu.json (100%) rename {src => public}/locales/it/modifier-select-ui-handler.json (100%) rename {src => public}/locales/it/modifier-type.json (100%) rename {src => public}/locales/it/modifier.json (100%) rename {src => public}/locales/it/move-trigger.json (100%) rename {src => public}/locales/it/move.json (100%) rename {src => public}/locales/it/mystery-encounter-messages.json (100%) rename {src => public}/locales/it/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/berries-abound-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/clowning-around-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/dark-deal-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/delibirdy-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/field-trip-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/part-timer-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/safari-zone-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/training-session-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src => public}/locales/it/mystery-encounters/weird-dream-dialogue.json (100%) rename {src => public}/locales/it/nature.json (100%) rename {src => public}/locales/it/party-ui-handler.json (100%) rename {src => public}/locales/it/pokeball.json (100%) rename {src => public}/locales/it/pokemon-form-battle.json (100%) rename {src => public}/locales/it/pokemon-form.json (100%) rename {src => public}/locales/it/pokemon-info-container.json (100%) rename {src => public}/locales/it/pokemon-info.json (100%) rename {src => public}/locales/it/pokemon-summary.json (100%) rename {src => public}/locales/it/pokemon.json (100%) rename {src => public}/locales/it/run-history.json (100%) rename {src => public}/locales/it/save-slot-select-ui-handler.json (100%) rename {src => public}/locales/it/settings.json (100%) rename {src => public}/locales/it/splash-messages.json (100%) rename {src => public}/locales/it/starter-select-ui-handler.json (100%) rename {src => public}/locales/it/status-effect.json (100%) rename {src => public}/locales/it/terrain.json (100%) rename {src => public}/locales/it/trainer-classes.json (100%) rename {src => public}/locales/it/trainer-names.json (100%) rename {src => public}/locales/it/trainer-titles.json (100%) rename {src => public}/locales/it/tutorial.json (100%) rename {src => public}/locales/it/voucher.json (100%) rename {src => public}/locales/it/weather.json (100%) rename {src => public}/locales/ja/ability-trigger.json (100%) rename {src => public}/locales/ja/ability.json (100%) rename {src => public}/locales/ja/achv.json (100%) rename {src => public}/locales/ja/arena-flyout.json (100%) rename {src => public}/locales/ja/arena-tag.json (100%) rename {src => public}/locales/ja/battle-info.json (100%) rename {src => public}/locales/ja/battle-message-ui-handler.json (100%) rename {src => public}/locales/ja/battle-scene.json (100%) rename {src => public}/locales/ja/battle.json (100%) rename {src => public}/locales/ja/battler-tags.json (100%) rename {src => public}/locales/ja/berry.json (100%) rename {src => public}/locales/ja/bgm-name.json (100%) rename {src => public}/locales/ja/biome.json (100%) rename {src => public}/locales/ja/challenges.json (100%) rename {src => public}/locales/ja/command-ui-handler.json (100%) rename {src => public}/locales/ja/common.json (100%) rename {src => public}/locales/ja/dialogue-double-battle.json (100%) rename {src => public}/locales/ja/dialogue-final-boss.json (100%) rename {src => public}/locales/ja/dialogue-misc.json (100%) rename {src => public}/locales/ja/dialogue.json (100%) rename {src => public}/locales/ja/egg.json (100%) rename {src => public}/locales/ja/fight-ui-handler.json (100%) rename {src => public}/locales/ja/filter-bar.json (100%) rename {src => public}/locales/ja/game-mode.json (100%) rename {src => public}/locales/ja/game-stats-ui-handler.json (100%) rename {src => public}/locales/ja/growth.json (100%) rename {src => public}/locales/ja/menu-ui-handler.json (100%) rename {src => public}/locales/ja/menu.json (100%) rename {src => public}/locales/ja/modifier-select-ui-handler.json (100%) rename {src => public}/locales/ja/modifier-type.json (100%) rename {src => public}/locales/ja/modifier.json (100%) rename {src => public}/locales/ja/move-trigger.json (100%) rename {src => public}/locales/ja/move.json (100%) rename {src => public}/locales/ja/mystery-encounter-messages.json (100%) rename {src => public}/locales/ja/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/berries-abound-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/clowning-around-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/dark-deal-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/delibirdy-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/field-trip-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/part-timer-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/safari-zone-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (98%) rename {src => public}/locales/ja/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/training-session-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src => public}/locales/ja/mystery-encounters/weird-dream-dialogue.json (100%) rename {src => public}/locales/ja/nature.json (100%) rename {src => public}/locales/ja/party-ui-handler.json (100%) rename {src => public}/locales/ja/pokeball.json (100%) rename {src => public}/locales/ja/pokemon-form-battle.json (100%) rename {src => public}/locales/ja/pokemon-form.json (100%) rename {src => public}/locales/ja/pokemon-info-container.json (100%) rename {src => public}/locales/ja/pokemon-info.json (100%) rename {src => public}/locales/ja/pokemon-summary.json (100%) rename {src => public}/locales/ja/pokemon.json (100%) rename {src => public}/locales/ja/run-history.json (100%) rename {src => public}/locales/ja/save-slot-select-ui-handler.json (100%) rename {src => public}/locales/ja/settings.json (100%) rename {src => public}/locales/ja/splash-messages.json (100%) rename {src => public}/locales/ja/starter-select-ui-handler.json (100%) rename {src => public}/locales/ja/status-effect.json (100%) rename {src => public}/locales/ja/terrain.json (100%) rename {src => public}/locales/ja/trainer-classes.json (100%) rename {src => public}/locales/ja/trainer-names.json (100%) rename {src => public}/locales/ja/trainer-titles.json (100%) rename {src => public}/locales/ja/tutorial.json (100%) rename {src => public}/locales/ja/voucher.json (100%) rename {src => public}/locales/ja/weather.json (100%) rename {src => public}/locales/ko/ability-trigger.json (100%) rename {src => public}/locales/ko/ability.json (100%) rename {src => public}/locales/ko/achv.json (100%) rename {src => public}/locales/ko/arena-flyout.json (100%) rename {src => public}/locales/ko/arena-tag.json (100%) rename {src => public}/locales/ko/battle-info.json (100%) rename {src => public}/locales/ko/battle-message-ui-handler.json (100%) rename {src => public}/locales/ko/battle-scene.json (100%) rename {src => public}/locales/ko/battle.json (100%) rename {src => public}/locales/ko/battler-tags.json (100%) rename {src => public}/locales/ko/berry.json (100%) rename {src => public}/locales/ko/bgm-name.json (100%) rename {src => public}/locales/ko/biome.json (100%) rename {src => public}/locales/ko/challenges.json (100%) rename {src => public}/locales/ko/command-ui-handler.json (100%) rename {src => public}/locales/ko/common.json (100%) rename {src => public}/locales/ko/dialogue-double-battle.json (100%) rename {src => public}/locales/ko/dialogue-final-boss.json (100%) rename {src => public}/locales/ko/dialogue-misc.json (100%) rename {src => public}/locales/ko/dialogue.json (100%) rename {src => public}/locales/ko/egg.json (100%) rename {src => public}/locales/ko/fight-ui-handler.json (100%) rename {src => public}/locales/ko/filter-bar.json (100%) rename {src => public}/locales/ko/game-mode.json (100%) rename {src => public}/locales/ko/game-stats-ui-handler.json (100%) rename {src => public}/locales/ko/growth.json (100%) rename {src => public}/locales/ko/menu-ui-handler.json (100%) rename {src => public}/locales/ko/menu.json (100%) rename {src => public}/locales/ko/modifier-select-ui-handler.json (100%) rename {src => public}/locales/ko/modifier-type.json (100%) rename {src => public}/locales/ko/modifier.json (100%) rename {src => public}/locales/ko/move-trigger.json (100%) rename {src => public}/locales/ko/move.json (100%) rename {src => public}/locales/ko/mystery-encounter-messages.json (100%) rename {src => public}/locales/ko/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/berries-abound-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/clowning-around-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/dark-deal-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/delibirdy-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/field-trip-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/part-timer-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/safari-zone-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (98%) rename {src => public}/locales/ko/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/training-session-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src => public}/locales/ko/mystery-encounters/weird-dream-dialogue.json (100%) rename {src => public}/locales/ko/nature.json (100%) rename {src => public}/locales/ko/party-ui-handler.json (100%) rename {src => public}/locales/ko/pokeball.json (100%) rename {src => public}/locales/ko/pokemon-form-battle.json (100%) rename {src => public}/locales/ko/pokemon-form.json (100%) rename {src => public}/locales/ko/pokemon-info-container.json (100%) rename {src => public}/locales/ko/pokemon-info.json (100%) rename {src => public}/locales/ko/pokemon-summary.json (100%) rename {src => public}/locales/ko/pokemon.json (100%) rename {src => public}/locales/ko/run-history.json (100%) rename {src => public}/locales/ko/save-slot-select-ui-handler.json (100%) rename {src => public}/locales/ko/settings.json (100%) rename {src => public}/locales/ko/splash-messages.json (100%) rename {src => public}/locales/ko/starter-select-ui-handler.json (100%) rename {src => public}/locales/ko/status-effect.json (100%) rename {src => public}/locales/ko/terrain.json (100%) rename {src => public}/locales/ko/trainer-classes.json (100%) rename {src => public}/locales/ko/trainer-names.json (100%) rename {src => public}/locales/ko/trainer-titles.json (100%) rename {src => public}/locales/ko/tutorial.json (100%) rename {src => public}/locales/ko/voucher.json (100%) rename {src => public}/locales/ko/weather.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/ability-trigger.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/ability.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/achv.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/arena-flyout.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/arena-tag.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/battle-info.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/battle-message-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/battle-scene.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/battle.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/battler-tags.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/berry.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/bgm-name.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/biome.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/challenges.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/command-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/common.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/dialogue-double-battle.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/dialogue-final-boss.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/dialogue-misc.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/egg.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/fight-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/filter-bar.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/game-mode.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/game-stats-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/growth.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/menu-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/menu.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/modifier-select-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/modifier-type.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/modifier.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/move-trigger.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/move.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounter-messages.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/berries-abound-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/clowning-around-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/dark-deal-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/delibirdy-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/field-trip-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/part-timer-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/safari-zone-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (98%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/training-session-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/mystery-encounters/weird-dream-dialogue.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/nature.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/party-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/pokeball.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/pokemon-form-battle.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/pokemon-form.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/pokemon-info-container.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/pokemon-info.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/pokemon-summary.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/pokemon.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/run-history.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/save-slot-select-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/settings.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/splash-messages.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/starter-select-ui-handler.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/status-effect.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/terrain.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/trainer-classes.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/trainer-names.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/trainer-titles.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/tutorial.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/voucher.json (100%) rename {src/locales/pt_BR => public/locales/pt-BR}/weather.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/ability-trigger.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/ability.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/achv.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/arena-flyout.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/arena-tag.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/battle-info.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/battle-message-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/battle-scene.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/battle.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/battler-tags.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/berry.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/bgm-name.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/biome.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/challenges.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/command-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/common.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/dialogue-double-battle.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/dialogue-final-boss.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/dialogue-misc.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/egg.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/fight-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/filter-bar.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/game-mode.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/game-stats-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/growth.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/menu-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/menu.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/modifier-select-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/modifier-type.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/modifier.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/move-trigger.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/move.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounter-messages.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/berries-abound-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/clowning-around-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/dark-deal-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/delibirdy-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/field-trip-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/part-timer-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/safari-zone-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (97%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/training-session-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/mystery-encounters/weird-dream-dialogue.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/nature.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/party-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/pokeball.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/pokemon-form-battle.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/pokemon-form.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/pokemon-info-container.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/pokemon-info.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/pokemon-summary.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/pokemon.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/run-history.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/save-slot-select-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/settings.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/splash-messages.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/starter-select-ui-handler.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/status-effect.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/terrain.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/trainer-classes.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/trainer-names.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/trainer-titles.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/tutorial.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/voucher.json (100%) rename {src/locales/zh_CN => public/locales/zh-CN}/weather.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/ability-trigger.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/ability.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/achv.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/arena-flyout.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/arena-tag.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/battle-info.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/battle-message-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/battle-scene.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/battle.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/battler-tags.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/berry.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/bgm-name.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/biome.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/challenges.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/command-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/common.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/dialogue-double-battle.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/dialogue-final-boss.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/dialogue-misc.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/egg.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/fight-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/filter-bar.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/game-mode.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/game-stats-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/growth.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/menu-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/menu.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/modifier-select-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/modifier-type.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/modifier.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/move-trigger.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/move.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounter-messages.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/a-trainers-test-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/absolute-avarice-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/an-offer-you-cant-refuse-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/berries-abound-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/bug-type-superfan-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/clowning-around-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/dancing-lessons-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/dark-deal-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/delibirdy-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/department-store-sale-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/field-trip-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/fiery-fallout-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/fight-or-flight-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/fun-and-games-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/global-trade-system-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/lost-at-sea-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/mysterious-challengers-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/mysterious-chest-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/part-timer-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/safari-zone-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/shady-vitamin-dealer-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/slumbering-snorlax-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/teleporting-hijinks-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/the-expert-pokemon-breeder-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/the-pokemon-salesman-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/the-strong-stuff-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/the-winstrate-challenge-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/training-session-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/trash-to-treasure-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/uncommon-breed-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/mystery-encounters/weird-dream-dialogue.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/nature.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/party-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/pokeball.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/pokemon-form-battle.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/pokemon-form.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/pokemon-info-container.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/pokemon-info.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/pokemon-summary.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/pokemon.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/run-history.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/save-slot-select-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/settings.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/splash-messages.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/starter-select-ui-handler.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/status-effect.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/terrain.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/trainer-classes.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/trainer-names.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/trainer-titles.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/tutorial.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/voucher.json (100%) rename {src/locales/zh_TW => public/locales/zh-TW}/weather.json (100%) create mode 100644 src/enums/species-form-key.ts delete mode 100644 src/locales/ca_ES/config.ts delete mode 100644 src/locales/de/config.ts delete mode 100644 src/locales/en/config.ts delete mode 100644 src/locales/es/config.ts delete mode 100644 src/locales/fr/config.ts delete mode 100644 src/locales/it/config.ts delete mode 100644 src/locales/ja/config.ts delete mode 100644 src/locales/ko/config.ts delete mode 100644 src/locales/pt_BR/config.ts delete mode 100644 src/locales/zh_CN/config.ts delete mode 100644 src/locales/zh_TW/config.ts rename src/test/{localization => data}/status-effect.test.ts (97%) delete mode 100644 src/test/localization/french.test.ts delete mode 100644 src/test/localization/terrain.test.ts diff --git a/package-lock.json b/package-lock.json index 568a57d3589..f633d427d6d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "crypto-js": "^4.2.0", "i18next": "^23.11.1", "i18next-browser-languagedetector": "^7.2.1", + "i18next-http-backend": "^2.6.1", "i18next-korean-postposition-processor": "^1.0.0", "json-stable-stringify": "^1.1.0", "phaser": "^3.70.0", @@ -4003,9 +4004,10 @@ } }, "node_modules/i18next-http-backend": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.5.2.tgz", - "integrity": "sha512-+K8HbDfrvc1/2X8jpb7RLhI9ZxBDpx3xogYkQwGKlWAUXLSEGXzgdt3EcUjLlBCdMwdQY+K+EUF6oh8oB6rwHw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/i18next-http-backend/-/i18next-http-backend-2.6.1.tgz", + "integrity": "sha512-rCilMAnlEQNeKOZY1+x8wLM5IpYOj10guGvEpeC59tNjj6MMreLIjIW8D1RclhD3ifLwn6d/Y9HEM1RUE6DSog==", + "license": "MIT", "dependencies": { "cross-fetch": "4.0.0" } diff --git a/package.json b/package.json index 480934899cc..f93392e1968 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "crypto-js": "^4.2.0", "i18next": "^23.11.1", "i18next-browser-languagedetector": "^7.2.1", + "i18next-http-backend": "^2.6.1", "i18next-korean-postposition-processor": "^1.0.0", "json-stable-stringify": "^1.1.0", "phaser": "^3.70.0", diff --git a/src/locales/ca_ES/ability-trigger.json b/public/locales/ca-ES/ability-trigger.json similarity index 100% rename from src/locales/ca_ES/ability-trigger.json rename to public/locales/ca-ES/ability-trigger.json diff --git a/src/locales/ca_ES/ability.json b/public/locales/ca-ES/ability.json similarity index 100% rename from src/locales/ca_ES/ability.json rename to public/locales/ca-ES/ability.json diff --git a/src/locales/ca_ES/achv.json b/public/locales/ca-ES/achv.json similarity index 100% rename from src/locales/ca_ES/achv.json rename to public/locales/ca-ES/achv.json diff --git a/src/locales/ca_ES/arena-flyout.json b/public/locales/ca-ES/arena-flyout.json similarity index 100% rename from src/locales/ca_ES/arena-flyout.json rename to public/locales/ca-ES/arena-flyout.json diff --git a/src/locales/ca_ES/arena-tag.json b/public/locales/ca-ES/arena-tag.json similarity index 100% rename from src/locales/ca_ES/arena-tag.json rename to public/locales/ca-ES/arena-tag.json diff --git a/src/locales/ca_ES/battle-info.json b/public/locales/ca-ES/battle-info.json similarity index 100% rename from src/locales/ca_ES/battle-info.json rename to public/locales/ca-ES/battle-info.json diff --git a/src/locales/ca_ES/battle-message-ui-handler.json b/public/locales/ca-ES/battle-message-ui-handler.json similarity index 100% rename from src/locales/ca_ES/battle-message-ui-handler.json rename to public/locales/ca-ES/battle-message-ui-handler.json diff --git a/src/locales/ca_ES/battle-scene.json b/public/locales/ca-ES/battle-scene.json similarity index 100% rename from src/locales/ca_ES/battle-scene.json rename to public/locales/ca-ES/battle-scene.json diff --git a/src/locales/ca_ES/battle.json b/public/locales/ca-ES/battle.json similarity index 100% rename from src/locales/ca_ES/battle.json rename to public/locales/ca-ES/battle.json diff --git a/src/locales/ca_ES/battler-tags.json b/public/locales/ca-ES/battler-tags.json similarity index 100% rename from src/locales/ca_ES/battler-tags.json rename to public/locales/ca-ES/battler-tags.json diff --git a/src/locales/ca_ES/berry.json b/public/locales/ca-ES/berry.json similarity index 100% rename from src/locales/ca_ES/berry.json rename to public/locales/ca-ES/berry.json diff --git a/src/locales/ca_ES/bgm-name.json b/public/locales/ca-ES/bgm-name.json similarity index 100% rename from src/locales/ca_ES/bgm-name.json rename to public/locales/ca-ES/bgm-name.json diff --git a/src/locales/ca_ES/biome.json b/public/locales/ca-ES/biome.json similarity index 100% rename from src/locales/ca_ES/biome.json rename to public/locales/ca-ES/biome.json diff --git a/src/locales/ca_ES/challenges.json b/public/locales/ca-ES/challenges.json similarity index 100% rename from src/locales/ca_ES/challenges.json rename to public/locales/ca-ES/challenges.json diff --git a/src/locales/ca_ES/command-ui-handler.json b/public/locales/ca-ES/command-ui-handler.json similarity index 100% rename from src/locales/ca_ES/command-ui-handler.json rename to public/locales/ca-ES/command-ui-handler.json diff --git a/src/locales/ca_ES/common.json b/public/locales/ca-ES/common.json similarity index 100% rename from src/locales/ca_ES/common.json rename to public/locales/ca-ES/common.json diff --git a/src/locales/ca_ES/dialogue-double-battle.json b/public/locales/ca-ES/dialogue-double-battle.json similarity index 100% rename from src/locales/ca_ES/dialogue-double-battle.json rename to public/locales/ca-ES/dialogue-double-battle.json diff --git a/src/locales/ca_ES/dialogue-final-boss.json b/public/locales/ca-ES/dialogue-final-boss.json similarity index 100% rename from src/locales/ca_ES/dialogue-final-boss.json rename to public/locales/ca-ES/dialogue-final-boss.json diff --git a/src/locales/ca_ES/dialogue-misc.json b/public/locales/ca-ES/dialogue-misc.json similarity index 100% rename from src/locales/ca_ES/dialogue-misc.json rename to public/locales/ca-ES/dialogue-misc.json diff --git a/src/locales/ca_ES/dialogue.json b/public/locales/ca-ES/dialogue.json similarity index 100% rename from src/locales/ca_ES/dialogue.json rename to public/locales/ca-ES/dialogue.json diff --git a/src/locales/ca_ES/egg.json b/public/locales/ca-ES/egg.json similarity index 100% rename from src/locales/ca_ES/egg.json rename to public/locales/ca-ES/egg.json diff --git a/src/locales/ca_ES/fight-ui-handler.json b/public/locales/ca-ES/fight-ui-handler.json similarity index 100% rename from src/locales/ca_ES/fight-ui-handler.json rename to public/locales/ca-ES/fight-ui-handler.json diff --git a/src/locales/ca_ES/filter-bar.json b/public/locales/ca-ES/filter-bar.json similarity index 100% rename from src/locales/ca_ES/filter-bar.json rename to public/locales/ca-ES/filter-bar.json diff --git a/src/locales/ca_ES/game-mode.json b/public/locales/ca-ES/game-mode.json similarity index 100% rename from src/locales/ca_ES/game-mode.json rename to public/locales/ca-ES/game-mode.json diff --git a/src/locales/ca_ES/game-stats-ui-handler.json b/public/locales/ca-ES/game-stats-ui-handler.json similarity index 100% rename from src/locales/ca_ES/game-stats-ui-handler.json rename to public/locales/ca-ES/game-stats-ui-handler.json diff --git a/src/locales/ca_ES/growth.json b/public/locales/ca-ES/growth.json similarity index 100% rename from src/locales/ca_ES/growth.json rename to public/locales/ca-ES/growth.json diff --git a/src/locales/ca_ES/menu-ui-handler.json b/public/locales/ca-ES/menu-ui-handler.json similarity index 100% rename from src/locales/ca_ES/menu-ui-handler.json rename to public/locales/ca-ES/menu-ui-handler.json diff --git a/src/locales/ca_ES/menu.json b/public/locales/ca-ES/menu.json similarity index 100% rename from src/locales/ca_ES/menu.json rename to public/locales/ca-ES/menu.json diff --git a/src/locales/ca_ES/modifier-select-ui-handler.json b/public/locales/ca-ES/modifier-select-ui-handler.json similarity index 100% rename from src/locales/ca_ES/modifier-select-ui-handler.json rename to public/locales/ca-ES/modifier-select-ui-handler.json diff --git a/src/locales/ca_ES/modifier-type.json b/public/locales/ca-ES/modifier-type.json similarity index 100% rename from src/locales/ca_ES/modifier-type.json rename to public/locales/ca-ES/modifier-type.json diff --git a/src/locales/ca_ES/modifier.json b/public/locales/ca-ES/modifier.json similarity index 100% rename from src/locales/ca_ES/modifier.json rename to public/locales/ca-ES/modifier.json diff --git a/src/locales/ca_ES/move-trigger.json b/public/locales/ca-ES/move-trigger.json similarity index 100% rename from src/locales/ca_ES/move-trigger.json rename to public/locales/ca-ES/move-trigger.json diff --git a/src/locales/ca_ES/move.json b/public/locales/ca-ES/move.json similarity index 100% rename from src/locales/ca_ES/move.json rename to public/locales/ca-ES/move.json diff --git a/src/locales/ca_ES/mystery-encounter-messages.json b/public/locales/ca-ES/mystery-encounter-messages.json similarity index 100% rename from src/locales/ca_ES/mystery-encounter-messages.json rename to public/locales/ca-ES/mystery-encounter-messages.json diff --git a/src/locales/ca_ES/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/ca-ES/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/ca-ES/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/ca-ES/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/ca-ES/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/ca-ES/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/ca-ES/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/berries-abound-dialogue.json b/public/locales/ca-ES/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/berries-abound-dialogue.json rename to public/locales/ca-ES/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/ca-ES/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/ca-ES/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/clowning-around-dialogue.json b/public/locales/ca-ES/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/clowning-around-dialogue.json rename to public/locales/ca-ES/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/ca-ES/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/ca-ES/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/dark-deal-dialogue.json b/public/locales/ca-ES/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/dark-deal-dialogue.json rename to public/locales/ca-ES/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/delibirdy-dialogue.json b/public/locales/ca-ES/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/delibirdy-dialogue.json rename to public/locales/ca-ES/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/department-store-sale-dialogue.json b/public/locales/ca-ES/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/ca-ES/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/field-trip-dialogue.json b/public/locales/ca-ES/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/field-trip-dialogue.json rename to public/locales/ca-ES/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/ca-ES/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/ca-ES/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/ca-ES/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/ca-ES/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/fun-and-games-dialogue.json b/public/locales/ca-ES/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/ca-ES/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/global-trade-system-dialogue.json b/public/locales/ca-ES/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/ca-ES/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/ca-ES/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/ca-ES/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/ca-ES/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/ca-ES/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/ca-ES/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/ca-ES/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/part-timer-dialogue.json b/public/locales/ca-ES/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/part-timer-dialogue.json rename to public/locales/ca-ES/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/safari-zone-dialogue.json b/public/locales/ca-ES/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/safari-zone-dialogue.json rename to public/locales/ca-ES/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/ca-ES/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/ca-ES/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/ca-ES/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/ca-ES/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/ca-ES/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/ca-ES/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/ca-ES/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/ca-ES/mystery-encounters/the-expert-pokemon-breeder-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/ca-ES/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/ca-ES/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/ca-ES/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/ca-ES/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/ca-ES/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/ca-ES/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/training-session-dialogue.json b/public/locales/ca-ES/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/training-session-dialogue.json rename to public/locales/ca-ES/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/ca-ES/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/ca-ES/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/ca-ES/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/ca-ES/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/ca_ES/mystery-encounters/weird-dream-dialogue.json b/public/locales/ca-ES/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/ca_ES/mystery-encounters/weird-dream-dialogue.json rename to public/locales/ca-ES/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/ca_ES/nature.json b/public/locales/ca-ES/nature.json similarity index 100% rename from src/locales/ca_ES/nature.json rename to public/locales/ca-ES/nature.json diff --git a/src/locales/ca_ES/party-ui-handler.json b/public/locales/ca-ES/party-ui-handler.json similarity index 100% rename from src/locales/ca_ES/party-ui-handler.json rename to public/locales/ca-ES/party-ui-handler.json diff --git a/src/locales/ca_ES/pokeball.json b/public/locales/ca-ES/pokeball.json similarity index 100% rename from src/locales/ca_ES/pokeball.json rename to public/locales/ca-ES/pokeball.json diff --git a/src/locales/ca_ES/pokemon-form-battle.json b/public/locales/ca-ES/pokemon-form-battle.json similarity index 100% rename from src/locales/ca_ES/pokemon-form-battle.json rename to public/locales/ca-ES/pokemon-form-battle.json diff --git a/src/locales/ca_ES/pokemon-form.json b/public/locales/ca-ES/pokemon-form.json similarity index 100% rename from src/locales/ca_ES/pokemon-form.json rename to public/locales/ca-ES/pokemon-form.json diff --git a/src/locales/ca_ES/pokemon-info-container.json b/public/locales/ca-ES/pokemon-info-container.json similarity index 100% rename from src/locales/ca_ES/pokemon-info-container.json rename to public/locales/ca-ES/pokemon-info-container.json diff --git a/src/locales/ca_ES/pokemon-info.json b/public/locales/ca-ES/pokemon-info.json similarity index 100% rename from src/locales/ca_ES/pokemon-info.json rename to public/locales/ca-ES/pokemon-info.json diff --git a/src/locales/ca_ES/pokemon-summary.json b/public/locales/ca-ES/pokemon-summary.json similarity index 100% rename from src/locales/ca_ES/pokemon-summary.json rename to public/locales/ca-ES/pokemon-summary.json diff --git a/src/locales/ca_ES/pokemon.json b/public/locales/ca-ES/pokemon.json similarity index 100% rename from src/locales/ca_ES/pokemon.json rename to public/locales/ca-ES/pokemon.json diff --git a/src/locales/ca_ES/run-history.json b/public/locales/ca-ES/run-history.json similarity index 100% rename from src/locales/ca_ES/run-history.json rename to public/locales/ca-ES/run-history.json diff --git a/src/locales/ca_ES/save-slot-select-ui-handler.json b/public/locales/ca-ES/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/ca_ES/save-slot-select-ui-handler.json rename to public/locales/ca-ES/save-slot-select-ui-handler.json diff --git a/src/locales/ca_ES/settings.json b/public/locales/ca-ES/settings.json similarity index 100% rename from src/locales/ca_ES/settings.json rename to public/locales/ca-ES/settings.json diff --git a/src/locales/ca_ES/splash-messages.json b/public/locales/ca-ES/splash-messages.json similarity index 100% rename from src/locales/ca_ES/splash-messages.json rename to public/locales/ca-ES/splash-messages.json diff --git a/src/locales/ca_ES/starter-select-ui-handler.json b/public/locales/ca-ES/starter-select-ui-handler.json similarity index 100% rename from src/locales/ca_ES/starter-select-ui-handler.json rename to public/locales/ca-ES/starter-select-ui-handler.json diff --git a/src/locales/ca_ES/status-effect.json b/public/locales/ca-ES/status-effect.json similarity index 100% rename from src/locales/ca_ES/status-effect.json rename to public/locales/ca-ES/status-effect.json diff --git a/src/locales/ca_ES/terrain.json b/public/locales/ca-ES/terrain.json similarity index 100% rename from src/locales/ca_ES/terrain.json rename to public/locales/ca-ES/terrain.json diff --git a/src/locales/ca_ES/trainer-classes.json b/public/locales/ca-ES/trainer-classes.json similarity index 100% rename from src/locales/ca_ES/trainer-classes.json rename to public/locales/ca-ES/trainer-classes.json diff --git a/src/locales/ca_ES/trainer-names.json b/public/locales/ca-ES/trainer-names.json similarity index 100% rename from src/locales/ca_ES/trainer-names.json rename to public/locales/ca-ES/trainer-names.json diff --git a/src/locales/ca_ES/trainer-titles.json b/public/locales/ca-ES/trainer-titles.json similarity index 100% rename from src/locales/ca_ES/trainer-titles.json rename to public/locales/ca-ES/trainer-titles.json diff --git a/src/locales/ca_ES/tutorial.json b/public/locales/ca-ES/tutorial.json similarity index 100% rename from src/locales/ca_ES/tutorial.json rename to public/locales/ca-ES/tutorial.json diff --git a/src/locales/ca_ES/voucher.json b/public/locales/ca-ES/voucher.json similarity index 100% rename from src/locales/ca_ES/voucher.json rename to public/locales/ca-ES/voucher.json diff --git a/src/locales/ca_ES/weather.json b/public/locales/ca-ES/weather.json similarity index 100% rename from src/locales/ca_ES/weather.json rename to public/locales/ca-ES/weather.json diff --git a/src/locales/de/ability-trigger.json b/public/locales/de/ability-trigger.json similarity index 100% rename from src/locales/de/ability-trigger.json rename to public/locales/de/ability-trigger.json diff --git a/src/locales/de/ability.json b/public/locales/de/ability.json similarity index 100% rename from src/locales/de/ability.json rename to public/locales/de/ability.json diff --git a/src/locales/de/achv.json b/public/locales/de/achv.json similarity index 100% rename from src/locales/de/achv.json rename to public/locales/de/achv.json diff --git a/src/locales/de/arena-flyout.json b/public/locales/de/arena-flyout.json similarity index 100% rename from src/locales/de/arena-flyout.json rename to public/locales/de/arena-flyout.json diff --git a/src/locales/de/arena-tag.json b/public/locales/de/arena-tag.json similarity index 100% rename from src/locales/de/arena-tag.json rename to public/locales/de/arena-tag.json diff --git a/src/locales/de/battle-info.json b/public/locales/de/battle-info.json similarity index 100% rename from src/locales/de/battle-info.json rename to public/locales/de/battle-info.json diff --git a/src/locales/de/battle-message-ui-handler.json b/public/locales/de/battle-message-ui-handler.json similarity index 100% rename from src/locales/de/battle-message-ui-handler.json rename to public/locales/de/battle-message-ui-handler.json diff --git a/src/locales/de/battle-scene.json b/public/locales/de/battle-scene.json similarity index 100% rename from src/locales/de/battle-scene.json rename to public/locales/de/battle-scene.json diff --git a/src/locales/de/battle.json b/public/locales/de/battle.json similarity index 100% rename from src/locales/de/battle.json rename to public/locales/de/battle.json diff --git a/src/locales/de/battler-tags.json b/public/locales/de/battler-tags.json similarity index 100% rename from src/locales/de/battler-tags.json rename to public/locales/de/battler-tags.json diff --git a/src/locales/de/berry.json b/public/locales/de/berry.json similarity index 100% rename from src/locales/de/berry.json rename to public/locales/de/berry.json diff --git a/src/locales/de/bgm-name.json b/public/locales/de/bgm-name.json similarity index 100% rename from src/locales/de/bgm-name.json rename to public/locales/de/bgm-name.json diff --git a/src/locales/de/biome.json b/public/locales/de/biome.json similarity index 100% rename from src/locales/de/biome.json rename to public/locales/de/biome.json diff --git a/src/locales/de/challenges.json b/public/locales/de/challenges.json similarity index 100% rename from src/locales/de/challenges.json rename to public/locales/de/challenges.json diff --git a/src/locales/de/command-ui-handler.json b/public/locales/de/command-ui-handler.json similarity index 100% rename from src/locales/de/command-ui-handler.json rename to public/locales/de/command-ui-handler.json diff --git a/src/locales/de/common.json b/public/locales/de/common.json similarity index 100% rename from src/locales/de/common.json rename to public/locales/de/common.json diff --git a/src/locales/de/dialogue-double-battle.json b/public/locales/de/dialogue-double-battle.json similarity index 100% rename from src/locales/de/dialogue-double-battle.json rename to public/locales/de/dialogue-double-battle.json diff --git a/src/locales/de/dialogue-final-boss.json b/public/locales/de/dialogue-final-boss.json similarity index 100% rename from src/locales/de/dialogue-final-boss.json rename to public/locales/de/dialogue-final-boss.json diff --git a/src/locales/de/dialogue-misc.json b/public/locales/de/dialogue-misc.json similarity index 100% rename from src/locales/de/dialogue-misc.json rename to public/locales/de/dialogue-misc.json diff --git a/src/locales/de/dialogue.json b/public/locales/de/dialogue.json similarity index 100% rename from src/locales/de/dialogue.json rename to public/locales/de/dialogue.json diff --git a/src/locales/de/egg.json b/public/locales/de/egg.json similarity index 100% rename from src/locales/de/egg.json rename to public/locales/de/egg.json diff --git a/src/locales/de/fight-ui-handler.json b/public/locales/de/fight-ui-handler.json similarity index 100% rename from src/locales/de/fight-ui-handler.json rename to public/locales/de/fight-ui-handler.json diff --git a/src/locales/de/filter-bar.json b/public/locales/de/filter-bar.json similarity index 100% rename from src/locales/de/filter-bar.json rename to public/locales/de/filter-bar.json diff --git a/src/locales/de/game-mode.json b/public/locales/de/game-mode.json similarity index 100% rename from src/locales/de/game-mode.json rename to public/locales/de/game-mode.json diff --git a/src/locales/de/game-stats-ui-handler.json b/public/locales/de/game-stats-ui-handler.json similarity index 100% rename from src/locales/de/game-stats-ui-handler.json rename to public/locales/de/game-stats-ui-handler.json diff --git a/src/locales/de/growth.json b/public/locales/de/growth.json similarity index 100% rename from src/locales/de/growth.json rename to public/locales/de/growth.json diff --git a/src/locales/de/menu-ui-handler.json b/public/locales/de/menu-ui-handler.json similarity index 100% rename from src/locales/de/menu-ui-handler.json rename to public/locales/de/menu-ui-handler.json diff --git a/src/locales/de/menu.json b/public/locales/de/menu.json similarity index 100% rename from src/locales/de/menu.json rename to public/locales/de/menu.json diff --git a/src/locales/de/modifier-select-ui-handler.json b/public/locales/de/modifier-select-ui-handler.json similarity index 100% rename from src/locales/de/modifier-select-ui-handler.json rename to public/locales/de/modifier-select-ui-handler.json diff --git a/src/locales/de/modifier-type.json b/public/locales/de/modifier-type.json similarity index 100% rename from src/locales/de/modifier-type.json rename to public/locales/de/modifier-type.json diff --git a/src/locales/de/modifier.json b/public/locales/de/modifier.json similarity index 100% rename from src/locales/de/modifier.json rename to public/locales/de/modifier.json diff --git a/src/locales/de/move-trigger.json b/public/locales/de/move-trigger.json similarity index 100% rename from src/locales/de/move-trigger.json rename to public/locales/de/move-trigger.json diff --git a/src/locales/de/move.json b/public/locales/de/move.json similarity index 100% rename from src/locales/de/move.json rename to public/locales/de/move.json diff --git a/src/locales/de/mystery-encounter-messages.json b/public/locales/de/mystery-encounter-messages.json similarity index 100% rename from src/locales/de/mystery-encounter-messages.json rename to public/locales/de/mystery-encounter-messages.json diff --git a/src/locales/de/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/de/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/de/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/de/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/de/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/de/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/de/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/de/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/de/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/de/mystery-encounters/berries-abound-dialogue.json b/public/locales/de/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/berries-abound-dialogue.json rename to public/locales/de/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/de/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/de/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/de/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/de/mystery-encounters/clowning-around-dialogue.json b/public/locales/de/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/clowning-around-dialogue.json rename to public/locales/de/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/de/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/de/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/de/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/de/mystery-encounters/dark-deal-dialogue.json b/public/locales/de/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/dark-deal-dialogue.json rename to public/locales/de/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/de/mystery-encounters/delibirdy-dialogue.json b/public/locales/de/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/delibirdy-dialogue.json rename to public/locales/de/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/de/mystery-encounters/department-store-sale-dialogue.json b/public/locales/de/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/de/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/de/mystery-encounters/field-trip-dialogue.json b/public/locales/de/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/field-trip-dialogue.json rename to public/locales/de/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/de/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/de/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/de/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/de/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/de/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/de/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/de/mystery-encounters/fun-and-games-dialogue.json b/public/locales/de/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/de/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/de/mystery-encounters/global-trade-system-dialogue.json b/public/locales/de/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/de/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/de/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/de/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/de/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/de/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/de/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/de/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/de/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/de/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/de/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/de/mystery-encounters/part-timer-dialogue.json b/public/locales/de/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/part-timer-dialogue.json rename to public/locales/de/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/de/mystery-encounters/safari-zone-dialogue.json b/public/locales/de/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/safari-zone-dialogue.json rename to public/locales/de/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/de/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/de/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/de/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/de/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/de/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/de/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/de/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/de/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/de/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/de/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/de/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/de/mystery-encounters/the-expert-pokemon-breeder-dialogue.json diff --git a/src/locales/de/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/de/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/de/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/de/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/de/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/de/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/de/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/de/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/de/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/de/mystery-encounters/training-session-dialogue.json b/public/locales/de/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/training-session-dialogue.json rename to public/locales/de/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/de/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/de/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/de/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/de/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/de/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/de/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/de/mystery-encounters/weird-dream-dialogue.json b/public/locales/de/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/de/mystery-encounters/weird-dream-dialogue.json rename to public/locales/de/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/de/nature.json b/public/locales/de/nature.json similarity index 100% rename from src/locales/de/nature.json rename to public/locales/de/nature.json diff --git a/src/locales/de/party-ui-handler.json b/public/locales/de/party-ui-handler.json similarity index 100% rename from src/locales/de/party-ui-handler.json rename to public/locales/de/party-ui-handler.json diff --git a/src/locales/de/pokeball.json b/public/locales/de/pokeball.json similarity index 100% rename from src/locales/de/pokeball.json rename to public/locales/de/pokeball.json diff --git a/src/locales/de/pokemon-form-battle.json b/public/locales/de/pokemon-form-battle.json similarity index 100% rename from src/locales/de/pokemon-form-battle.json rename to public/locales/de/pokemon-form-battle.json diff --git a/src/locales/de/pokemon-form.json b/public/locales/de/pokemon-form.json similarity index 100% rename from src/locales/de/pokemon-form.json rename to public/locales/de/pokemon-form.json diff --git a/src/locales/de/pokemon-info-container.json b/public/locales/de/pokemon-info-container.json similarity index 100% rename from src/locales/de/pokemon-info-container.json rename to public/locales/de/pokemon-info-container.json diff --git a/src/locales/de/pokemon-info.json b/public/locales/de/pokemon-info.json similarity index 100% rename from src/locales/de/pokemon-info.json rename to public/locales/de/pokemon-info.json diff --git a/src/locales/de/pokemon-summary.json b/public/locales/de/pokemon-summary.json similarity index 100% rename from src/locales/de/pokemon-summary.json rename to public/locales/de/pokemon-summary.json diff --git a/src/locales/de/pokemon.json b/public/locales/de/pokemon.json similarity index 100% rename from src/locales/de/pokemon.json rename to public/locales/de/pokemon.json diff --git a/src/locales/de/run-history.json b/public/locales/de/run-history.json similarity index 100% rename from src/locales/de/run-history.json rename to public/locales/de/run-history.json diff --git a/src/locales/de/save-slot-select-ui-handler.json b/public/locales/de/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/de/save-slot-select-ui-handler.json rename to public/locales/de/save-slot-select-ui-handler.json diff --git a/src/locales/de/settings.json b/public/locales/de/settings.json similarity index 100% rename from src/locales/de/settings.json rename to public/locales/de/settings.json diff --git a/src/locales/de/splash-messages.json b/public/locales/de/splash-messages.json similarity index 100% rename from src/locales/de/splash-messages.json rename to public/locales/de/splash-messages.json diff --git a/src/locales/de/starter-select-ui-handler.json b/public/locales/de/starter-select-ui-handler.json similarity index 100% rename from src/locales/de/starter-select-ui-handler.json rename to public/locales/de/starter-select-ui-handler.json diff --git a/src/locales/de/status-effect.json b/public/locales/de/status-effect.json similarity index 100% rename from src/locales/de/status-effect.json rename to public/locales/de/status-effect.json diff --git a/src/locales/de/terrain.json b/public/locales/de/terrain.json similarity index 100% rename from src/locales/de/terrain.json rename to public/locales/de/terrain.json diff --git a/src/locales/de/trainer-classes.json b/public/locales/de/trainer-classes.json similarity index 100% rename from src/locales/de/trainer-classes.json rename to public/locales/de/trainer-classes.json diff --git a/src/locales/de/trainer-names.json b/public/locales/de/trainer-names.json similarity index 100% rename from src/locales/de/trainer-names.json rename to public/locales/de/trainer-names.json diff --git a/src/locales/de/trainer-titles.json b/public/locales/de/trainer-titles.json similarity index 100% rename from src/locales/de/trainer-titles.json rename to public/locales/de/trainer-titles.json diff --git a/src/locales/de/tutorial.json b/public/locales/de/tutorial.json similarity index 100% rename from src/locales/de/tutorial.json rename to public/locales/de/tutorial.json diff --git a/src/locales/de/voucher.json b/public/locales/de/voucher.json similarity index 100% rename from src/locales/de/voucher.json rename to public/locales/de/voucher.json diff --git a/src/locales/de/weather.json b/public/locales/de/weather.json similarity index 100% rename from src/locales/de/weather.json rename to public/locales/de/weather.json diff --git a/src/locales/en/ability-trigger.json b/public/locales/en/ability-trigger.json similarity index 100% rename from src/locales/en/ability-trigger.json rename to public/locales/en/ability-trigger.json diff --git a/src/locales/en/ability.json b/public/locales/en/ability.json similarity index 100% rename from src/locales/en/ability.json rename to public/locales/en/ability.json diff --git a/src/locales/en/achv.json b/public/locales/en/achv.json similarity index 100% rename from src/locales/en/achv.json rename to public/locales/en/achv.json diff --git a/src/locales/en/arena-flyout.json b/public/locales/en/arena-flyout.json similarity index 100% rename from src/locales/en/arena-flyout.json rename to public/locales/en/arena-flyout.json diff --git a/src/locales/en/arena-tag.json b/public/locales/en/arena-tag.json similarity index 100% rename from src/locales/en/arena-tag.json rename to public/locales/en/arena-tag.json diff --git a/src/locales/en/battle-info.json b/public/locales/en/battle-info.json similarity index 100% rename from src/locales/en/battle-info.json rename to public/locales/en/battle-info.json diff --git a/src/locales/en/battle-message-ui-handler.json b/public/locales/en/battle-message-ui-handler.json similarity index 100% rename from src/locales/en/battle-message-ui-handler.json rename to public/locales/en/battle-message-ui-handler.json diff --git a/src/locales/en/battle-scene.json b/public/locales/en/battle-scene.json similarity index 100% rename from src/locales/en/battle-scene.json rename to public/locales/en/battle-scene.json diff --git a/src/locales/en/battle.json b/public/locales/en/battle.json similarity index 100% rename from src/locales/en/battle.json rename to public/locales/en/battle.json diff --git a/src/locales/en/battler-tags.json b/public/locales/en/battler-tags.json similarity index 100% rename from src/locales/en/battler-tags.json rename to public/locales/en/battler-tags.json diff --git a/src/locales/en/berry.json b/public/locales/en/berry.json similarity index 100% rename from src/locales/en/berry.json rename to public/locales/en/berry.json diff --git a/src/locales/en/bgm-name.json b/public/locales/en/bgm-name.json similarity index 100% rename from src/locales/en/bgm-name.json rename to public/locales/en/bgm-name.json diff --git a/src/locales/en/biome.json b/public/locales/en/biome.json similarity index 100% rename from src/locales/en/biome.json rename to public/locales/en/biome.json diff --git a/src/locales/en/challenges.json b/public/locales/en/challenges.json similarity index 100% rename from src/locales/en/challenges.json rename to public/locales/en/challenges.json diff --git a/src/locales/en/command-ui-handler.json b/public/locales/en/command-ui-handler.json similarity index 100% rename from src/locales/en/command-ui-handler.json rename to public/locales/en/command-ui-handler.json diff --git a/src/locales/en/common.json b/public/locales/en/common.json similarity index 100% rename from src/locales/en/common.json rename to public/locales/en/common.json diff --git a/src/locales/en/dialogue-double-battle.json b/public/locales/en/dialogue-double-battle.json similarity index 100% rename from src/locales/en/dialogue-double-battle.json rename to public/locales/en/dialogue-double-battle.json diff --git a/src/locales/en/dialogue-final-boss.json b/public/locales/en/dialogue-final-boss.json similarity index 100% rename from src/locales/en/dialogue-final-boss.json rename to public/locales/en/dialogue-final-boss.json diff --git a/src/locales/en/dialogue-misc.json b/public/locales/en/dialogue-misc.json similarity index 100% rename from src/locales/en/dialogue-misc.json rename to public/locales/en/dialogue-misc.json diff --git a/src/locales/en/dialogue.json b/public/locales/en/dialogue.json similarity index 100% rename from src/locales/en/dialogue.json rename to public/locales/en/dialogue.json diff --git a/src/locales/en/egg.json b/public/locales/en/egg.json similarity index 100% rename from src/locales/en/egg.json rename to public/locales/en/egg.json diff --git a/src/locales/en/fight-ui-handler.json b/public/locales/en/fight-ui-handler.json similarity index 100% rename from src/locales/en/fight-ui-handler.json rename to public/locales/en/fight-ui-handler.json diff --git a/src/locales/en/filter-bar.json b/public/locales/en/filter-bar.json similarity index 100% rename from src/locales/en/filter-bar.json rename to public/locales/en/filter-bar.json diff --git a/src/locales/en/game-mode.json b/public/locales/en/game-mode.json similarity index 100% rename from src/locales/en/game-mode.json rename to public/locales/en/game-mode.json diff --git a/src/locales/en/game-stats-ui-handler.json b/public/locales/en/game-stats-ui-handler.json similarity index 100% rename from src/locales/en/game-stats-ui-handler.json rename to public/locales/en/game-stats-ui-handler.json diff --git a/src/locales/en/growth.json b/public/locales/en/growth.json similarity index 100% rename from src/locales/en/growth.json rename to public/locales/en/growth.json diff --git a/src/locales/en/menu-ui-handler.json b/public/locales/en/menu-ui-handler.json similarity index 100% rename from src/locales/en/menu-ui-handler.json rename to public/locales/en/menu-ui-handler.json diff --git a/src/locales/en/menu.json b/public/locales/en/menu.json similarity index 100% rename from src/locales/en/menu.json rename to public/locales/en/menu.json diff --git a/src/locales/en/modifier-select-ui-handler.json b/public/locales/en/modifier-select-ui-handler.json similarity index 100% rename from src/locales/en/modifier-select-ui-handler.json rename to public/locales/en/modifier-select-ui-handler.json diff --git a/src/locales/en/modifier-type.json b/public/locales/en/modifier-type.json similarity index 100% rename from src/locales/en/modifier-type.json rename to public/locales/en/modifier-type.json diff --git a/src/locales/en/modifier.json b/public/locales/en/modifier.json similarity index 100% rename from src/locales/en/modifier.json rename to public/locales/en/modifier.json diff --git a/src/locales/en/move-trigger.json b/public/locales/en/move-trigger.json similarity index 100% rename from src/locales/en/move-trigger.json rename to public/locales/en/move-trigger.json diff --git a/src/locales/en/move.json b/public/locales/en/move.json similarity index 100% rename from src/locales/en/move.json rename to public/locales/en/move.json diff --git a/src/locales/en/mystery-encounter-messages.json b/public/locales/en/mystery-encounter-messages.json similarity index 100% rename from src/locales/en/mystery-encounter-messages.json rename to public/locales/en/mystery-encounter-messages.json diff --git a/src/locales/en/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/en/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/en/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/en/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/en/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/en/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/en/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/en/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/en/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/en/mystery-encounters/berries-abound-dialogue.json b/public/locales/en/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/berries-abound-dialogue.json rename to public/locales/en/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/en/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/en/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/en/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/en/mystery-encounters/clowning-around-dialogue.json b/public/locales/en/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/clowning-around-dialogue.json rename to public/locales/en/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/en/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/en/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/en/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/en/mystery-encounters/dark-deal-dialogue.json b/public/locales/en/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/dark-deal-dialogue.json rename to public/locales/en/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/en/mystery-encounters/delibirdy-dialogue.json b/public/locales/en/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/delibirdy-dialogue.json rename to public/locales/en/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/en/mystery-encounters/department-store-sale-dialogue.json b/public/locales/en/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/en/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/en/mystery-encounters/field-trip-dialogue.json b/public/locales/en/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/field-trip-dialogue.json rename to public/locales/en/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/en/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/en/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/en/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/en/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/en/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/en/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/en/mystery-encounters/fun-and-games-dialogue.json b/public/locales/en/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/en/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/en/mystery-encounters/global-trade-system-dialogue.json b/public/locales/en/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/en/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/en/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/en/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/en/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/en/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/en/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/en/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/en/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/en/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/en/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/en/mystery-encounters/part-timer-dialogue.json b/public/locales/en/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/part-timer-dialogue.json rename to public/locales/en/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/en/mystery-encounters/safari-zone-dialogue.json b/public/locales/en/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/safari-zone-dialogue.json rename to public/locales/en/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/en/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/en/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/en/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/en/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/en/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/en/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/en/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/en/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/en/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/en/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/en/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/en/mystery-encounters/the-expert-pokemon-breeder-dialogue.json diff --git a/src/locales/en/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/en/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/en/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/en/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/en/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/en/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/en/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/en/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/en/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/en/mystery-encounters/training-session-dialogue.json b/public/locales/en/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/training-session-dialogue.json rename to public/locales/en/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/en/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/en/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/en/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/en/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/en/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/en/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/en/mystery-encounters/weird-dream-dialogue.json b/public/locales/en/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/en/mystery-encounters/weird-dream-dialogue.json rename to public/locales/en/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/en/nature.json b/public/locales/en/nature.json similarity index 100% rename from src/locales/en/nature.json rename to public/locales/en/nature.json diff --git a/src/locales/en/party-ui-handler.json b/public/locales/en/party-ui-handler.json similarity index 100% rename from src/locales/en/party-ui-handler.json rename to public/locales/en/party-ui-handler.json diff --git a/src/locales/en/pokeball.json b/public/locales/en/pokeball.json similarity index 100% rename from src/locales/en/pokeball.json rename to public/locales/en/pokeball.json diff --git a/src/locales/en/pokemon-form-battle.json b/public/locales/en/pokemon-form-battle.json similarity index 100% rename from src/locales/en/pokemon-form-battle.json rename to public/locales/en/pokemon-form-battle.json diff --git a/src/locales/en/pokemon-form.json b/public/locales/en/pokemon-form.json similarity index 100% rename from src/locales/en/pokemon-form.json rename to public/locales/en/pokemon-form.json diff --git a/src/locales/en/pokemon-info-container.json b/public/locales/en/pokemon-info-container.json similarity index 100% rename from src/locales/en/pokemon-info-container.json rename to public/locales/en/pokemon-info-container.json diff --git a/src/locales/en/pokemon-info.json b/public/locales/en/pokemon-info.json similarity index 100% rename from src/locales/en/pokemon-info.json rename to public/locales/en/pokemon-info.json diff --git a/src/locales/en/pokemon-summary.json b/public/locales/en/pokemon-summary.json similarity index 100% rename from src/locales/en/pokemon-summary.json rename to public/locales/en/pokemon-summary.json diff --git a/src/locales/en/pokemon.json b/public/locales/en/pokemon.json similarity index 100% rename from src/locales/en/pokemon.json rename to public/locales/en/pokemon.json diff --git a/src/locales/en/run-history.json b/public/locales/en/run-history.json similarity index 100% rename from src/locales/en/run-history.json rename to public/locales/en/run-history.json diff --git a/src/locales/en/save-slot-select-ui-handler.json b/public/locales/en/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/en/save-slot-select-ui-handler.json rename to public/locales/en/save-slot-select-ui-handler.json diff --git a/src/locales/en/settings.json b/public/locales/en/settings.json similarity index 100% rename from src/locales/en/settings.json rename to public/locales/en/settings.json diff --git a/src/locales/en/splash-messages.json b/public/locales/en/splash-messages.json similarity index 100% rename from src/locales/en/splash-messages.json rename to public/locales/en/splash-messages.json diff --git a/src/locales/en/starter-select-ui-handler.json b/public/locales/en/starter-select-ui-handler.json similarity index 100% rename from src/locales/en/starter-select-ui-handler.json rename to public/locales/en/starter-select-ui-handler.json diff --git a/src/locales/en/status-effect.json b/public/locales/en/status-effect.json similarity index 100% rename from src/locales/en/status-effect.json rename to public/locales/en/status-effect.json diff --git a/src/locales/en/terrain.json b/public/locales/en/terrain.json similarity index 100% rename from src/locales/en/terrain.json rename to public/locales/en/terrain.json diff --git a/src/locales/en/trainer-classes.json b/public/locales/en/trainer-classes.json similarity index 100% rename from src/locales/en/trainer-classes.json rename to public/locales/en/trainer-classes.json diff --git a/src/locales/en/trainer-names.json b/public/locales/en/trainer-names.json similarity index 100% rename from src/locales/en/trainer-names.json rename to public/locales/en/trainer-names.json diff --git a/src/locales/en/trainer-titles.json b/public/locales/en/trainer-titles.json similarity index 100% rename from src/locales/en/trainer-titles.json rename to public/locales/en/trainer-titles.json diff --git a/src/locales/en/tutorial.json b/public/locales/en/tutorial.json similarity index 100% rename from src/locales/en/tutorial.json rename to public/locales/en/tutorial.json diff --git a/src/locales/en/voucher.json b/public/locales/en/voucher.json similarity index 100% rename from src/locales/en/voucher.json rename to public/locales/en/voucher.json diff --git a/src/locales/en/weather.json b/public/locales/en/weather.json similarity index 100% rename from src/locales/en/weather.json rename to public/locales/en/weather.json diff --git a/src/locales/es/ability-trigger.json b/public/locales/es/ability-trigger.json similarity index 100% rename from src/locales/es/ability-trigger.json rename to public/locales/es/ability-trigger.json diff --git a/src/locales/es/ability.json b/public/locales/es/ability.json similarity index 100% rename from src/locales/es/ability.json rename to public/locales/es/ability.json diff --git a/src/locales/es/achv.json b/public/locales/es/achv.json similarity index 100% rename from src/locales/es/achv.json rename to public/locales/es/achv.json diff --git a/src/locales/es/arena-flyout.json b/public/locales/es/arena-flyout.json similarity index 100% rename from src/locales/es/arena-flyout.json rename to public/locales/es/arena-flyout.json diff --git a/src/locales/es/arena-tag.json b/public/locales/es/arena-tag.json similarity index 100% rename from src/locales/es/arena-tag.json rename to public/locales/es/arena-tag.json diff --git a/src/locales/es/battle-info.json b/public/locales/es/battle-info.json similarity index 100% rename from src/locales/es/battle-info.json rename to public/locales/es/battle-info.json diff --git a/src/locales/es/battle-message-ui-handler.json b/public/locales/es/battle-message-ui-handler.json similarity index 100% rename from src/locales/es/battle-message-ui-handler.json rename to public/locales/es/battle-message-ui-handler.json diff --git a/src/locales/es/battle-scene.json b/public/locales/es/battle-scene.json similarity index 100% rename from src/locales/es/battle-scene.json rename to public/locales/es/battle-scene.json diff --git a/src/locales/es/battle.json b/public/locales/es/battle.json similarity index 100% rename from src/locales/es/battle.json rename to public/locales/es/battle.json diff --git a/src/locales/es/battler-tags.json b/public/locales/es/battler-tags.json similarity index 100% rename from src/locales/es/battler-tags.json rename to public/locales/es/battler-tags.json diff --git a/src/locales/es/berry.json b/public/locales/es/berry.json similarity index 100% rename from src/locales/es/berry.json rename to public/locales/es/berry.json diff --git a/src/locales/es/bgm-name.json b/public/locales/es/bgm-name.json similarity index 100% rename from src/locales/es/bgm-name.json rename to public/locales/es/bgm-name.json diff --git a/src/locales/es/biome.json b/public/locales/es/biome.json similarity index 100% rename from src/locales/es/biome.json rename to public/locales/es/biome.json diff --git a/src/locales/es/challenges.json b/public/locales/es/challenges.json similarity index 100% rename from src/locales/es/challenges.json rename to public/locales/es/challenges.json diff --git a/src/locales/es/command-ui-handler.json b/public/locales/es/command-ui-handler.json similarity index 100% rename from src/locales/es/command-ui-handler.json rename to public/locales/es/command-ui-handler.json diff --git a/src/locales/es/common.json b/public/locales/es/common.json similarity index 100% rename from src/locales/es/common.json rename to public/locales/es/common.json diff --git a/src/locales/es/dialogue-double-battle.json b/public/locales/es/dialogue-double-battle.json similarity index 100% rename from src/locales/es/dialogue-double-battle.json rename to public/locales/es/dialogue-double-battle.json diff --git a/src/locales/es/dialogue-final-boss.json b/public/locales/es/dialogue-final-boss.json similarity index 100% rename from src/locales/es/dialogue-final-boss.json rename to public/locales/es/dialogue-final-boss.json diff --git a/src/locales/es/dialogue-misc.json b/public/locales/es/dialogue-misc.json similarity index 100% rename from src/locales/es/dialogue-misc.json rename to public/locales/es/dialogue-misc.json diff --git a/src/locales/es/dialogue.json b/public/locales/es/dialogue.json similarity index 100% rename from src/locales/es/dialogue.json rename to public/locales/es/dialogue.json diff --git a/src/locales/es/egg.json b/public/locales/es/egg.json similarity index 100% rename from src/locales/es/egg.json rename to public/locales/es/egg.json diff --git a/src/locales/es/fight-ui-handler.json b/public/locales/es/fight-ui-handler.json similarity index 100% rename from src/locales/es/fight-ui-handler.json rename to public/locales/es/fight-ui-handler.json diff --git a/src/locales/es/filter-bar.json b/public/locales/es/filter-bar.json similarity index 100% rename from src/locales/es/filter-bar.json rename to public/locales/es/filter-bar.json diff --git a/src/locales/es/game-mode.json b/public/locales/es/game-mode.json similarity index 100% rename from src/locales/es/game-mode.json rename to public/locales/es/game-mode.json diff --git a/src/locales/es/game-stats-ui-handler.json b/public/locales/es/game-stats-ui-handler.json similarity index 100% rename from src/locales/es/game-stats-ui-handler.json rename to public/locales/es/game-stats-ui-handler.json diff --git a/src/locales/es/growth.json b/public/locales/es/growth.json similarity index 100% rename from src/locales/es/growth.json rename to public/locales/es/growth.json diff --git a/src/locales/es/menu-ui-handler.json b/public/locales/es/menu-ui-handler.json similarity index 100% rename from src/locales/es/menu-ui-handler.json rename to public/locales/es/menu-ui-handler.json diff --git a/src/locales/es/menu.json b/public/locales/es/menu.json similarity index 100% rename from src/locales/es/menu.json rename to public/locales/es/menu.json diff --git a/src/locales/es/modifier-select-ui-handler.json b/public/locales/es/modifier-select-ui-handler.json similarity index 100% rename from src/locales/es/modifier-select-ui-handler.json rename to public/locales/es/modifier-select-ui-handler.json diff --git a/src/locales/es/modifier-type.json b/public/locales/es/modifier-type.json similarity index 100% rename from src/locales/es/modifier-type.json rename to public/locales/es/modifier-type.json diff --git a/src/locales/es/modifier.json b/public/locales/es/modifier.json similarity index 100% rename from src/locales/es/modifier.json rename to public/locales/es/modifier.json diff --git a/src/locales/es/move-trigger.json b/public/locales/es/move-trigger.json similarity index 100% rename from src/locales/es/move-trigger.json rename to public/locales/es/move-trigger.json diff --git a/src/locales/es/move.json b/public/locales/es/move.json similarity index 100% rename from src/locales/es/move.json rename to public/locales/es/move.json diff --git a/src/locales/es/mystery-encounter-messages.json b/public/locales/es/mystery-encounter-messages.json similarity index 100% rename from src/locales/es/mystery-encounter-messages.json rename to public/locales/es/mystery-encounter-messages.json diff --git a/src/locales/es/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/es/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/es/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/es/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/es/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/es/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/es/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/es/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/es/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/es/mystery-encounters/berries-abound-dialogue.json b/public/locales/es/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/berries-abound-dialogue.json rename to public/locales/es/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/es/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/es/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/es/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/es/mystery-encounters/clowning-around-dialogue.json b/public/locales/es/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/clowning-around-dialogue.json rename to public/locales/es/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/es/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/es/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/es/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/es/mystery-encounters/dark-deal-dialogue.json b/public/locales/es/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/dark-deal-dialogue.json rename to public/locales/es/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/es/mystery-encounters/delibirdy-dialogue.json b/public/locales/es/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/delibirdy-dialogue.json rename to public/locales/es/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/es/mystery-encounters/department-store-sale-dialogue.json b/public/locales/es/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/es/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/es/mystery-encounters/field-trip-dialogue.json b/public/locales/es/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/field-trip-dialogue.json rename to public/locales/es/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/es/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/es/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/es/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/es/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/es/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/es/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/es/mystery-encounters/fun-and-games-dialogue.json b/public/locales/es/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/es/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/es/mystery-encounters/global-trade-system-dialogue.json b/public/locales/es/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/es/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/es/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/es/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/es/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/es/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/es/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/es/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/es/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/es/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/es/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/es/mystery-encounters/part-timer-dialogue.json b/public/locales/es/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/part-timer-dialogue.json rename to public/locales/es/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/es/mystery-encounters/safari-zone-dialogue.json b/public/locales/es/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/safari-zone-dialogue.json rename to public/locales/es/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/es/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/es/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/es/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/es/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/es/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/es/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/es/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/es/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/es/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/es/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/es/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/es/mystery-encounters/the-expert-pokemon-breeder-dialogue.json diff --git a/src/locales/es/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/es/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/es/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/es/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/es/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/es/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/es/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/es/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/es/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/es/mystery-encounters/training-session-dialogue.json b/public/locales/es/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/training-session-dialogue.json rename to public/locales/es/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/es/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/es/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/es/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/es/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/es/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/es/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/es/mystery-encounters/weird-dream-dialogue.json b/public/locales/es/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/es/mystery-encounters/weird-dream-dialogue.json rename to public/locales/es/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/es/nature.json b/public/locales/es/nature.json similarity index 100% rename from src/locales/es/nature.json rename to public/locales/es/nature.json diff --git a/src/locales/es/party-ui-handler.json b/public/locales/es/party-ui-handler.json similarity index 100% rename from src/locales/es/party-ui-handler.json rename to public/locales/es/party-ui-handler.json diff --git a/src/locales/es/pokeball.json b/public/locales/es/pokeball.json similarity index 100% rename from src/locales/es/pokeball.json rename to public/locales/es/pokeball.json diff --git a/src/locales/es/pokemon-form-battle.json b/public/locales/es/pokemon-form-battle.json similarity index 100% rename from src/locales/es/pokemon-form-battle.json rename to public/locales/es/pokemon-form-battle.json diff --git a/src/locales/es/pokemon-form.json b/public/locales/es/pokemon-form.json similarity index 100% rename from src/locales/es/pokemon-form.json rename to public/locales/es/pokemon-form.json diff --git a/src/locales/es/pokemon-info-container.json b/public/locales/es/pokemon-info-container.json similarity index 100% rename from src/locales/es/pokemon-info-container.json rename to public/locales/es/pokemon-info-container.json diff --git a/src/locales/es/pokemon-info.json b/public/locales/es/pokemon-info.json similarity index 100% rename from src/locales/es/pokemon-info.json rename to public/locales/es/pokemon-info.json diff --git a/src/locales/es/pokemon-summary.json b/public/locales/es/pokemon-summary.json similarity index 100% rename from src/locales/es/pokemon-summary.json rename to public/locales/es/pokemon-summary.json diff --git a/src/locales/es/pokemon.json b/public/locales/es/pokemon.json similarity index 100% rename from src/locales/es/pokemon.json rename to public/locales/es/pokemon.json diff --git a/src/locales/es/run-history.json b/public/locales/es/run-history.json similarity index 100% rename from src/locales/es/run-history.json rename to public/locales/es/run-history.json diff --git a/src/locales/es/save-slot-select-ui-handler.json b/public/locales/es/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/es/save-slot-select-ui-handler.json rename to public/locales/es/save-slot-select-ui-handler.json diff --git a/src/locales/es/settings.json b/public/locales/es/settings.json similarity index 100% rename from src/locales/es/settings.json rename to public/locales/es/settings.json diff --git a/src/locales/es/splash-messages.json b/public/locales/es/splash-messages.json similarity index 100% rename from src/locales/es/splash-messages.json rename to public/locales/es/splash-messages.json diff --git a/src/locales/es/starter-select-ui-handler.json b/public/locales/es/starter-select-ui-handler.json similarity index 100% rename from src/locales/es/starter-select-ui-handler.json rename to public/locales/es/starter-select-ui-handler.json diff --git a/src/locales/es/status-effect.json b/public/locales/es/status-effect.json similarity index 100% rename from src/locales/es/status-effect.json rename to public/locales/es/status-effect.json diff --git a/src/locales/es/terrain.json b/public/locales/es/terrain.json similarity index 100% rename from src/locales/es/terrain.json rename to public/locales/es/terrain.json diff --git a/src/locales/es/trainer-classes.json b/public/locales/es/trainer-classes.json similarity index 100% rename from src/locales/es/trainer-classes.json rename to public/locales/es/trainer-classes.json diff --git a/src/locales/es/trainer-names.json b/public/locales/es/trainer-names.json similarity index 100% rename from src/locales/es/trainer-names.json rename to public/locales/es/trainer-names.json diff --git a/src/locales/es/trainer-titles.json b/public/locales/es/trainer-titles.json similarity index 100% rename from src/locales/es/trainer-titles.json rename to public/locales/es/trainer-titles.json diff --git a/src/locales/es/tutorial.json b/public/locales/es/tutorial.json similarity index 100% rename from src/locales/es/tutorial.json rename to public/locales/es/tutorial.json diff --git a/src/locales/es/voucher.json b/public/locales/es/voucher.json similarity index 100% rename from src/locales/es/voucher.json rename to public/locales/es/voucher.json diff --git a/src/locales/es/weather.json b/public/locales/es/weather.json similarity index 100% rename from src/locales/es/weather.json rename to public/locales/es/weather.json diff --git a/src/locales/fr/ability-trigger.json b/public/locales/fr/ability-trigger.json similarity index 100% rename from src/locales/fr/ability-trigger.json rename to public/locales/fr/ability-trigger.json diff --git a/src/locales/fr/ability.json b/public/locales/fr/ability.json similarity index 100% rename from src/locales/fr/ability.json rename to public/locales/fr/ability.json diff --git a/src/locales/fr/achv.json b/public/locales/fr/achv.json similarity index 100% rename from src/locales/fr/achv.json rename to public/locales/fr/achv.json diff --git a/src/locales/fr/arena-flyout.json b/public/locales/fr/arena-flyout.json similarity index 100% rename from src/locales/fr/arena-flyout.json rename to public/locales/fr/arena-flyout.json diff --git a/src/locales/fr/arena-tag.json b/public/locales/fr/arena-tag.json similarity index 100% rename from src/locales/fr/arena-tag.json rename to public/locales/fr/arena-tag.json diff --git a/src/locales/fr/battle-info.json b/public/locales/fr/battle-info.json similarity index 100% rename from src/locales/fr/battle-info.json rename to public/locales/fr/battle-info.json diff --git a/src/locales/fr/battle-message-ui-handler.json b/public/locales/fr/battle-message-ui-handler.json similarity index 100% rename from src/locales/fr/battle-message-ui-handler.json rename to public/locales/fr/battle-message-ui-handler.json diff --git a/src/locales/fr/battle-scene.json b/public/locales/fr/battle-scene.json similarity index 100% rename from src/locales/fr/battle-scene.json rename to public/locales/fr/battle-scene.json diff --git a/src/locales/fr/battle.json b/public/locales/fr/battle.json similarity index 100% rename from src/locales/fr/battle.json rename to public/locales/fr/battle.json diff --git a/src/locales/fr/battler-tags.json b/public/locales/fr/battler-tags.json similarity index 100% rename from src/locales/fr/battler-tags.json rename to public/locales/fr/battler-tags.json diff --git a/src/locales/fr/berry.json b/public/locales/fr/berry.json similarity index 100% rename from src/locales/fr/berry.json rename to public/locales/fr/berry.json diff --git a/src/locales/fr/bgm-name.json b/public/locales/fr/bgm-name.json similarity index 100% rename from src/locales/fr/bgm-name.json rename to public/locales/fr/bgm-name.json diff --git a/src/locales/fr/biome.json b/public/locales/fr/biome.json similarity index 100% rename from src/locales/fr/biome.json rename to public/locales/fr/biome.json diff --git a/src/locales/fr/challenges.json b/public/locales/fr/challenges.json similarity index 100% rename from src/locales/fr/challenges.json rename to public/locales/fr/challenges.json diff --git a/src/locales/fr/command-ui-handler.json b/public/locales/fr/command-ui-handler.json similarity index 100% rename from src/locales/fr/command-ui-handler.json rename to public/locales/fr/command-ui-handler.json diff --git a/src/locales/fr/common.json b/public/locales/fr/common.json similarity index 100% rename from src/locales/fr/common.json rename to public/locales/fr/common.json diff --git a/src/locales/fr/dialogue-double-battle.json b/public/locales/fr/dialogue-double-battle.json similarity index 100% rename from src/locales/fr/dialogue-double-battle.json rename to public/locales/fr/dialogue-double-battle.json diff --git a/src/locales/fr/dialogue-final-boss.json b/public/locales/fr/dialogue-final-boss.json similarity index 100% rename from src/locales/fr/dialogue-final-boss.json rename to public/locales/fr/dialogue-final-boss.json diff --git a/src/locales/fr/dialogue-misc.json b/public/locales/fr/dialogue-misc.json similarity index 100% rename from src/locales/fr/dialogue-misc.json rename to public/locales/fr/dialogue-misc.json diff --git a/src/locales/fr/dialogue.json b/public/locales/fr/dialogue.json similarity index 100% rename from src/locales/fr/dialogue.json rename to public/locales/fr/dialogue.json diff --git a/src/locales/fr/egg.json b/public/locales/fr/egg.json similarity index 100% rename from src/locales/fr/egg.json rename to public/locales/fr/egg.json diff --git a/src/locales/fr/fight-ui-handler.json b/public/locales/fr/fight-ui-handler.json similarity index 100% rename from src/locales/fr/fight-ui-handler.json rename to public/locales/fr/fight-ui-handler.json diff --git a/src/locales/fr/filter-bar.json b/public/locales/fr/filter-bar.json similarity index 100% rename from src/locales/fr/filter-bar.json rename to public/locales/fr/filter-bar.json diff --git a/src/locales/fr/game-mode.json b/public/locales/fr/game-mode.json similarity index 100% rename from src/locales/fr/game-mode.json rename to public/locales/fr/game-mode.json diff --git a/src/locales/fr/game-stats-ui-handler.json b/public/locales/fr/game-stats-ui-handler.json similarity index 100% rename from src/locales/fr/game-stats-ui-handler.json rename to public/locales/fr/game-stats-ui-handler.json diff --git a/src/locales/fr/growth.json b/public/locales/fr/growth.json similarity index 100% rename from src/locales/fr/growth.json rename to public/locales/fr/growth.json diff --git a/src/locales/fr/menu-ui-handler.json b/public/locales/fr/menu-ui-handler.json similarity index 100% rename from src/locales/fr/menu-ui-handler.json rename to public/locales/fr/menu-ui-handler.json diff --git a/src/locales/fr/menu.json b/public/locales/fr/menu.json similarity index 100% rename from src/locales/fr/menu.json rename to public/locales/fr/menu.json diff --git a/src/locales/fr/modifier-select-ui-handler.json b/public/locales/fr/modifier-select-ui-handler.json similarity index 100% rename from src/locales/fr/modifier-select-ui-handler.json rename to public/locales/fr/modifier-select-ui-handler.json diff --git a/src/locales/fr/modifier-type.json b/public/locales/fr/modifier-type.json similarity index 100% rename from src/locales/fr/modifier-type.json rename to public/locales/fr/modifier-type.json diff --git a/src/locales/fr/modifier.json b/public/locales/fr/modifier.json similarity index 100% rename from src/locales/fr/modifier.json rename to public/locales/fr/modifier.json diff --git a/src/locales/fr/move-trigger.json b/public/locales/fr/move-trigger.json similarity index 100% rename from src/locales/fr/move-trigger.json rename to public/locales/fr/move-trigger.json diff --git a/src/locales/fr/move.json b/public/locales/fr/move.json similarity index 100% rename from src/locales/fr/move.json rename to public/locales/fr/move.json diff --git a/src/locales/fr/mystery-encounter-messages.json b/public/locales/fr/mystery-encounter-messages.json similarity index 100% rename from src/locales/fr/mystery-encounter-messages.json rename to public/locales/fr/mystery-encounter-messages.json diff --git a/src/locales/fr/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/fr/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/fr/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/fr/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/fr/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/fr/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/fr/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/fr/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/fr/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/fr/mystery-encounters/berries-abound-dialogue.json b/public/locales/fr/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/berries-abound-dialogue.json rename to public/locales/fr/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/fr/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/fr/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/fr/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/fr/mystery-encounters/clowning-around-dialogue.json b/public/locales/fr/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/clowning-around-dialogue.json rename to public/locales/fr/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/fr/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/fr/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/fr/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/fr/mystery-encounters/dark-deal-dialogue.json b/public/locales/fr/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/dark-deal-dialogue.json rename to public/locales/fr/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/fr/mystery-encounters/delibirdy-dialogue.json b/public/locales/fr/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/delibirdy-dialogue.json rename to public/locales/fr/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/fr/mystery-encounters/department-store-sale-dialogue.json b/public/locales/fr/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/fr/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/fr/mystery-encounters/field-trip-dialogue.json b/public/locales/fr/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/field-trip-dialogue.json rename to public/locales/fr/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/fr/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/fr/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/fr/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/fr/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/fr/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/fr/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/fr/mystery-encounters/fun-and-games-dialogue.json b/public/locales/fr/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/fr/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/fr/mystery-encounters/global-trade-system-dialogue.json b/public/locales/fr/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/fr/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/fr/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/fr/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/fr/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/fr/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/fr/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/fr/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/fr/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/fr/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/fr/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/fr/mystery-encounters/part-timer-dialogue.json b/public/locales/fr/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/part-timer-dialogue.json rename to public/locales/fr/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/fr/mystery-encounters/safari-zone-dialogue.json b/public/locales/fr/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/safari-zone-dialogue.json rename to public/locales/fr/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/fr/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/fr/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/fr/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/fr/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/fr/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/fr/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/fr/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/fr/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/fr/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/fr/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/fr/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 98% rename from src/locales/fr/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/fr/mystery-encounters/the-expert-pokemon-breeder-dialogue.json index ebd450730d6..8496b7e0472 100644 --- a/src/locales/fr/mystery-encounters/the-expert-pokemon-breeder-dialogue.json +++ b/public/locales/fr/mystery-encounters/the-expert-pokemon-breeder-dialogue.json @@ -1,31 +1,31 @@ -{ - "intro": "C’est une Dresseuse avec une quantité astronomique d’Œufs !", - "intro_dialogue": "Hé, toi !$Certains de tes Pokémon m’ont l’air\nun peu à plat.$Ça te dirait un p’tit combat pour\nleur redonner un peu de peps ?", - "title": "L’experte en élevage", - "description": "Une Éleveuse vous propose un combat où @[TOOLTIP_TITLE]{vous ne pouvez utiliser qu’un seul Pokémon}. Ça s’annonce un peu compliqué, mais devrait certainement approfondir vos liens avec le Pokémon choisi !\nL’Éleveuse devrait vous faire don de quelques @[TOOLTIP_TITLE]{Œufs} si vous gagnez !", - "query": "Avec qui voulez-vous combattre ?", - "cleffa_1_nickname": "As", - "cleffa_2_nickname": "Méloïssime", - "cleffa_3_nickname": "{{speciesName}} le Grand", - "option": { - "1": { - "label": "{{pokemon1Name}}", - "tooltip_base": "(-) Combat difficile\n(+) Augmente le bonheur de {{pokemon1Name}}" - }, - "2": { - "label": "{{pokemon2Name}}", - "tooltip_base": "(-) Combat difficile\n(+) Augmente le bonheur de {{pokemon2Name}}" - }, - "3": { - "label": "{{pokemon3Name}}", - "tooltip_base": "(-) Combat difficile\n(+) Augmente le bonheur de {{pokemon3Name}}" - }, - "selected": "D’accord, faisons ça !" - }, - "outro": "Ton {{chosenPokemon}} et toi avez\nl’air très heureux !$Tiens, prends ça aussi.", - "outro_failed": "Voilà qui est bien décevant…$T’as encore visiblement bien du chemin à faire\npour acquérir la confiance de tes Pokémon !", - "gained_eggs": "@s{item_fanfare}Vous recevez\n{{numEggs}} !", - "eggs_tooltip": "\n(+) Recevez {{eggs}}", - "numEggs_one": "{{count}} Œuf {{rarity}}", - "numEggs_other": "{{count}} Œufs {{rarity}}s" -} +{ + "intro": "C’est une Dresseuse avec une quantité astronomique d’Œufs !", + "intro_dialogue": "Hé, toi !$Certains de tes Pokémon m’ont l’air\nun peu à plat.$Ça te dirait un p’tit combat pour\nleur redonner un peu de peps ?", + "title": "L’experte en élevage", + "description": "Une Éleveuse vous propose un combat où @[TOOLTIP_TITLE]{vous ne pouvez utiliser qu’un seul Pokémon}. Ça s’annonce un peu compliqué, mais devrait certainement approfondir vos liens avec le Pokémon choisi !\nL’Éleveuse devrait vous faire don de quelques @[TOOLTIP_TITLE]{Œufs} si vous gagnez !", + "query": "Avec qui voulez-vous combattre ?", + "cleffa_1_nickname": "As", + "cleffa_2_nickname": "Méloïssime", + "cleffa_3_nickname": "{{speciesName}} le Grand", + "option": { + "1": { + "label": "{{pokemon1Name}}", + "tooltip_base": "(-) Combat difficile\n(+) Augmente le bonheur de {{pokemon1Name}}" + }, + "2": { + "label": "{{pokemon2Name}}", + "tooltip_base": "(-) Combat difficile\n(+) Augmente le bonheur de {{pokemon2Name}}" + }, + "3": { + "label": "{{pokemon3Name}}", + "tooltip_base": "(-) Combat difficile\n(+) Augmente le bonheur de {{pokemon3Name}}" + }, + "selected": "D’accord, faisons ça !" + }, + "outro": "Ton {{chosenPokemon}} et toi avez\nl’air très heureux !$Tiens, prends ça aussi.", + "outro_failed": "Voilà qui est bien décevant…$T’as encore visiblement bien du chemin à faire\npour acquérir la confiance de tes Pokémon !", + "gained_eggs": "@s{item_fanfare}Vous recevez\n{{numEggs}} !", + "eggs_tooltip": "\n(+) Recevez {{eggs}}", + "numEggs_one": "{{count}} Œuf {{rarity}}", + "numEggs_other": "{{count}} Œufs {{rarity}}s" +} diff --git a/src/locales/fr/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/fr/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/fr/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/fr/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/fr/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/fr/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/fr/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/fr/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/fr/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/fr/mystery-encounters/training-session-dialogue.json b/public/locales/fr/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/training-session-dialogue.json rename to public/locales/fr/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/fr/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/fr/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/fr/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/fr/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/fr/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/fr/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/fr/mystery-encounters/weird-dream-dialogue.json b/public/locales/fr/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/fr/mystery-encounters/weird-dream-dialogue.json rename to public/locales/fr/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/fr/nature.json b/public/locales/fr/nature.json similarity index 100% rename from src/locales/fr/nature.json rename to public/locales/fr/nature.json diff --git a/src/locales/fr/party-ui-handler.json b/public/locales/fr/party-ui-handler.json similarity index 100% rename from src/locales/fr/party-ui-handler.json rename to public/locales/fr/party-ui-handler.json diff --git a/src/locales/fr/pokeball.json b/public/locales/fr/pokeball.json similarity index 100% rename from src/locales/fr/pokeball.json rename to public/locales/fr/pokeball.json diff --git a/src/locales/fr/pokemon-form-battle.json b/public/locales/fr/pokemon-form-battle.json similarity index 100% rename from src/locales/fr/pokemon-form-battle.json rename to public/locales/fr/pokemon-form-battle.json diff --git a/src/locales/fr/pokemon-form.json b/public/locales/fr/pokemon-form.json similarity index 100% rename from src/locales/fr/pokemon-form.json rename to public/locales/fr/pokemon-form.json diff --git a/src/locales/fr/pokemon-info-container.json b/public/locales/fr/pokemon-info-container.json similarity index 100% rename from src/locales/fr/pokemon-info-container.json rename to public/locales/fr/pokemon-info-container.json diff --git a/src/locales/fr/pokemon-info.json b/public/locales/fr/pokemon-info.json similarity index 100% rename from src/locales/fr/pokemon-info.json rename to public/locales/fr/pokemon-info.json diff --git a/src/locales/fr/pokemon-summary.json b/public/locales/fr/pokemon-summary.json similarity index 100% rename from src/locales/fr/pokemon-summary.json rename to public/locales/fr/pokemon-summary.json diff --git a/src/locales/fr/pokemon.json b/public/locales/fr/pokemon.json similarity index 100% rename from src/locales/fr/pokemon.json rename to public/locales/fr/pokemon.json diff --git a/src/locales/fr/run-history.json b/public/locales/fr/run-history.json similarity index 100% rename from src/locales/fr/run-history.json rename to public/locales/fr/run-history.json diff --git a/src/locales/fr/save-slot-select-ui-handler.json b/public/locales/fr/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/fr/save-slot-select-ui-handler.json rename to public/locales/fr/save-slot-select-ui-handler.json diff --git a/src/locales/fr/settings.json b/public/locales/fr/settings.json similarity index 100% rename from src/locales/fr/settings.json rename to public/locales/fr/settings.json diff --git a/src/locales/fr/splash-messages.json b/public/locales/fr/splash-messages.json similarity index 100% rename from src/locales/fr/splash-messages.json rename to public/locales/fr/splash-messages.json diff --git a/src/locales/fr/starter-select-ui-handler.json b/public/locales/fr/starter-select-ui-handler.json similarity index 100% rename from src/locales/fr/starter-select-ui-handler.json rename to public/locales/fr/starter-select-ui-handler.json diff --git a/src/locales/fr/status-effect.json b/public/locales/fr/status-effect.json similarity index 100% rename from src/locales/fr/status-effect.json rename to public/locales/fr/status-effect.json diff --git a/src/locales/fr/terrain.json b/public/locales/fr/terrain.json similarity index 100% rename from src/locales/fr/terrain.json rename to public/locales/fr/terrain.json diff --git a/src/locales/fr/trainer-classes.json b/public/locales/fr/trainer-classes.json similarity index 100% rename from src/locales/fr/trainer-classes.json rename to public/locales/fr/trainer-classes.json diff --git a/src/locales/fr/trainer-names.json b/public/locales/fr/trainer-names.json similarity index 100% rename from src/locales/fr/trainer-names.json rename to public/locales/fr/trainer-names.json diff --git a/src/locales/fr/trainer-titles.json b/public/locales/fr/trainer-titles.json similarity index 100% rename from src/locales/fr/trainer-titles.json rename to public/locales/fr/trainer-titles.json diff --git a/src/locales/fr/tutorial.json b/public/locales/fr/tutorial.json similarity index 100% rename from src/locales/fr/tutorial.json rename to public/locales/fr/tutorial.json diff --git a/src/locales/fr/voucher.json b/public/locales/fr/voucher.json similarity index 100% rename from src/locales/fr/voucher.json rename to public/locales/fr/voucher.json diff --git a/src/locales/fr/weather.json b/public/locales/fr/weather.json similarity index 100% rename from src/locales/fr/weather.json rename to public/locales/fr/weather.json diff --git a/src/locales/it/ability-trigger.json b/public/locales/it/ability-trigger.json similarity index 100% rename from src/locales/it/ability-trigger.json rename to public/locales/it/ability-trigger.json diff --git a/src/locales/it/ability.json b/public/locales/it/ability.json similarity index 100% rename from src/locales/it/ability.json rename to public/locales/it/ability.json diff --git a/src/locales/it/achv.json b/public/locales/it/achv.json similarity index 100% rename from src/locales/it/achv.json rename to public/locales/it/achv.json diff --git a/src/locales/it/arena-flyout.json b/public/locales/it/arena-flyout.json similarity index 100% rename from src/locales/it/arena-flyout.json rename to public/locales/it/arena-flyout.json diff --git a/src/locales/it/arena-tag.json b/public/locales/it/arena-tag.json similarity index 100% rename from src/locales/it/arena-tag.json rename to public/locales/it/arena-tag.json diff --git a/src/locales/it/battle-info.json b/public/locales/it/battle-info.json similarity index 100% rename from src/locales/it/battle-info.json rename to public/locales/it/battle-info.json diff --git a/src/locales/it/battle-message-ui-handler.json b/public/locales/it/battle-message-ui-handler.json similarity index 100% rename from src/locales/it/battle-message-ui-handler.json rename to public/locales/it/battle-message-ui-handler.json diff --git a/src/locales/it/battle-scene.json b/public/locales/it/battle-scene.json similarity index 100% rename from src/locales/it/battle-scene.json rename to public/locales/it/battle-scene.json diff --git a/src/locales/it/battle.json b/public/locales/it/battle.json similarity index 100% rename from src/locales/it/battle.json rename to public/locales/it/battle.json diff --git a/src/locales/it/battler-tags.json b/public/locales/it/battler-tags.json similarity index 100% rename from src/locales/it/battler-tags.json rename to public/locales/it/battler-tags.json diff --git a/src/locales/it/berry.json b/public/locales/it/berry.json similarity index 100% rename from src/locales/it/berry.json rename to public/locales/it/berry.json diff --git a/src/locales/it/bgm-name.json b/public/locales/it/bgm-name.json similarity index 100% rename from src/locales/it/bgm-name.json rename to public/locales/it/bgm-name.json diff --git a/src/locales/it/biome.json b/public/locales/it/biome.json similarity index 100% rename from src/locales/it/biome.json rename to public/locales/it/biome.json diff --git a/src/locales/it/challenges.json b/public/locales/it/challenges.json similarity index 100% rename from src/locales/it/challenges.json rename to public/locales/it/challenges.json diff --git a/src/locales/it/command-ui-handler.json b/public/locales/it/command-ui-handler.json similarity index 100% rename from src/locales/it/command-ui-handler.json rename to public/locales/it/command-ui-handler.json diff --git a/src/locales/it/common.json b/public/locales/it/common.json similarity index 100% rename from src/locales/it/common.json rename to public/locales/it/common.json diff --git a/src/locales/it/dialogue-double-battle.json b/public/locales/it/dialogue-double-battle.json similarity index 100% rename from src/locales/it/dialogue-double-battle.json rename to public/locales/it/dialogue-double-battle.json diff --git a/src/locales/it/dialogue-final-boss.json b/public/locales/it/dialogue-final-boss.json similarity index 100% rename from src/locales/it/dialogue-final-boss.json rename to public/locales/it/dialogue-final-boss.json diff --git a/src/locales/it/dialogue-misc.json b/public/locales/it/dialogue-misc.json similarity index 100% rename from src/locales/it/dialogue-misc.json rename to public/locales/it/dialogue-misc.json diff --git a/src/locales/it/dialogue.json b/public/locales/it/dialogue.json similarity index 100% rename from src/locales/it/dialogue.json rename to public/locales/it/dialogue.json diff --git a/src/locales/it/egg.json b/public/locales/it/egg.json similarity index 100% rename from src/locales/it/egg.json rename to public/locales/it/egg.json diff --git a/src/locales/it/fight-ui-handler.json b/public/locales/it/fight-ui-handler.json similarity index 100% rename from src/locales/it/fight-ui-handler.json rename to public/locales/it/fight-ui-handler.json diff --git a/src/locales/it/filter-bar.json b/public/locales/it/filter-bar.json similarity index 100% rename from src/locales/it/filter-bar.json rename to public/locales/it/filter-bar.json diff --git a/src/locales/it/game-mode.json b/public/locales/it/game-mode.json similarity index 100% rename from src/locales/it/game-mode.json rename to public/locales/it/game-mode.json diff --git a/src/locales/it/game-stats-ui-handler.json b/public/locales/it/game-stats-ui-handler.json similarity index 100% rename from src/locales/it/game-stats-ui-handler.json rename to public/locales/it/game-stats-ui-handler.json diff --git a/src/locales/it/growth.json b/public/locales/it/growth.json similarity index 100% rename from src/locales/it/growth.json rename to public/locales/it/growth.json diff --git a/src/locales/it/menu-ui-handler.json b/public/locales/it/menu-ui-handler.json similarity index 100% rename from src/locales/it/menu-ui-handler.json rename to public/locales/it/menu-ui-handler.json diff --git a/src/locales/it/menu.json b/public/locales/it/menu.json similarity index 100% rename from src/locales/it/menu.json rename to public/locales/it/menu.json diff --git a/src/locales/it/modifier-select-ui-handler.json b/public/locales/it/modifier-select-ui-handler.json similarity index 100% rename from src/locales/it/modifier-select-ui-handler.json rename to public/locales/it/modifier-select-ui-handler.json diff --git a/src/locales/it/modifier-type.json b/public/locales/it/modifier-type.json similarity index 100% rename from src/locales/it/modifier-type.json rename to public/locales/it/modifier-type.json diff --git a/src/locales/it/modifier.json b/public/locales/it/modifier.json similarity index 100% rename from src/locales/it/modifier.json rename to public/locales/it/modifier.json diff --git a/src/locales/it/move-trigger.json b/public/locales/it/move-trigger.json similarity index 100% rename from src/locales/it/move-trigger.json rename to public/locales/it/move-trigger.json diff --git a/src/locales/it/move.json b/public/locales/it/move.json similarity index 100% rename from src/locales/it/move.json rename to public/locales/it/move.json diff --git a/src/locales/it/mystery-encounter-messages.json b/public/locales/it/mystery-encounter-messages.json similarity index 100% rename from src/locales/it/mystery-encounter-messages.json rename to public/locales/it/mystery-encounter-messages.json diff --git a/src/locales/it/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/it/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/it/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/it/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/it/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/it/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/it/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/it/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/it/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/it/mystery-encounters/berries-abound-dialogue.json b/public/locales/it/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/berries-abound-dialogue.json rename to public/locales/it/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/it/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/it/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/it/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/it/mystery-encounters/clowning-around-dialogue.json b/public/locales/it/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/clowning-around-dialogue.json rename to public/locales/it/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/it/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/it/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/it/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/it/mystery-encounters/dark-deal-dialogue.json b/public/locales/it/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/dark-deal-dialogue.json rename to public/locales/it/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/it/mystery-encounters/delibirdy-dialogue.json b/public/locales/it/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/delibirdy-dialogue.json rename to public/locales/it/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/it/mystery-encounters/department-store-sale-dialogue.json b/public/locales/it/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/it/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/it/mystery-encounters/field-trip-dialogue.json b/public/locales/it/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/field-trip-dialogue.json rename to public/locales/it/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/it/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/it/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/it/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/it/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/it/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/it/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/it/mystery-encounters/fun-and-games-dialogue.json b/public/locales/it/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/it/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/it/mystery-encounters/global-trade-system-dialogue.json b/public/locales/it/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/it/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/it/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/it/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/it/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/it/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/it/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/it/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/it/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/it/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/it/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/it/mystery-encounters/part-timer-dialogue.json b/public/locales/it/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/part-timer-dialogue.json rename to public/locales/it/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/it/mystery-encounters/safari-zone-dialogue.json b/public/locales/it/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/safari-zone-dialogue.json rename to public/locales/it/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/it/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/it/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/it/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/it/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/it/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/it/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/it/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/it/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/it/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/it/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/it/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/it/mystery-encounters/the-expert-pokemon-breeder-dialogue.json diff --git a/src/locales/it/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/it/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/it/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/it/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/it/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/it/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/it/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/it/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/it/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/it/mystery-encounters/training-session-dialogue.json b/public/locales/it/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/training-session-dialogue.json rename to public/locales/it/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/it/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/it/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/it/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/it/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/it/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/it/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/it/mystery-encounters/weird-dream-dialogue.json b/public/locales/it/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/it/mystery-encounters/weird-dream-dialogue.json rename to public/locales/it/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/it/nature.json b/public/locales/it/nature.json similarity index 100% rename from src/locales/it/nature.json rename to public/locales/it/nature.json diff --git a/src/locales/it/party-ui-handler.json b/public/locales/it/party-ui-handler.json similarity index 100% rename from src/locales/it/party-ui-handler.json rename to public/locales/it/party-ui-handler.json diff --git a/src/locales/it/pokeball.json b/public/locales/it/pokeball.json similarity index 100% rename from src/locales/it/pokeball.json rename to public/locales/it/pokeball.json diff --git a/src/locales/it/pokemon-form-battle.json b/public/locales/it/pokemon-form-battle.json similarity index 100% rename from src/locales/it/pokemon-form-battle.json rename to public/locales/it/pokemon-form-battle.json diff --git a/src/locales/it/pokemon-form.json b/public/locales/it/pokemon-form.json similarity index 100% rename from src/locales/it/pokemon-form.json rename to public/locales/it/pokemon-form.json diff --git a/src/locales/it/pokemon-info-container.json b/public/locales/it/pokemon-info-container.json similarity index 100% rename from src/locales/it/pokemon-info-container.json rename to public/locales/it/pokemon-info-container.json diff --git a/src/locales/it/pokemon-info.json b/public/locales/it/pokemon-info.json similarity index 100% rename from src/locales/it/pokemon-info.json rename to public/locales/it/pokemon-info.json diff --git a/src/locales/it/pokemon-summary.json b/public/locales/it/pokemon-summary.json similarity index 100% rename from src/locales/it/pokemon-summary.json rename to public/locales/it/pokemon-summary.json diff --git a/src/locales/it/pokemon.json b/public/locales/it/pokemon.json similarity index 100% rename from src/locales/it/pokemon.json rename to public/locales/it/pokemon.json diff --git a/src/locales/it/run-history.json b/public/locales/it/run-history.json similarity index 100% rename from src/locales/it/run-history.json rename to public/locales/it/run-history.json diff --git a/src/locales/it/save-slot-select-ui-handler.json b/public/locales/it/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/it/save-slot-select-ui-handler.json rename to public/locales/it/save-slot-select-ui-handler.json diff --git a/src/locales/it/settings.json b/public/locales/it/settings.json similarity index 100% rename from src/locales/it/settings.json rename to public/locales/it/settings.json diff --git a/src/locales/it/splash-messages.json b/public/locales/it/splash-messages.json similarity index 100% rename from src/locales/it/splash-messages.json rename to public/locales/it/splash-messages.json diff --git a/src/locales/it/starter-select-ui-handler.json b/public/locales/it/starter-select-ui-handler.json similarity index 100% rename from src/locales/it/starter-select-ui-handler.json rename to public/locales/it/starter-select-ui-handler.json diff --git a/src/locales/it/status-effect.json b/public/locales/it/status-effect.json similarity index 100% rename from src/locales/it/status-effect.json rename to public/locales/it/status-effect.json diff --git a/src/locales/it/terrain.json b/public/locales/it/terrain.json similarity index 100% rename from src/locales/it/terrain.json rename to public/locales/it/terrain.json diff --git a/src/locales/it/trainer-classes.json b/public/locales/it/trainer-classes.json similarity index 100% rename from src/locales/it/trainer-classes.json rename to public/locales/it/trainer-classes.json diff --git a/src/locales/it/trainer-names.json b/public/locales/it/trainer-names.json similarity index 100% rename from src/locales/it/trainer-names.json rename to public/locales/it/trainer-names.json diff --git a/src/locales/it/trainer-titles.json b/public/locales/it/trainer-titles.json similarity index 100% rename from src/locales/it/trainer-titles.json rename to public/locales/it/trainer-titles.json diff --git a/src/locales/it/tutorial.json b/public/locales/it/tutorial.json similarity index 100% rename from src/locales/it/tutorial.json rename to public/locales/it/tutorial.json diff --git a/src/locales/it/voucher.json b/public/locales/it/voucher.json similarity index 100% rename from src/locales/it/voucher.json rename to public/locales/it/voucher.json diff --git a/src/locales/it/weather.json b/public/locales/it/weather.json similarity index 100% rename from src/locales/it/weather.json rename to public/locales/it/weather.json diff --git a/src/locales/ja/ability-trigger.json b/public/locales/ja/ability-trigger.json similarity index 100% rename from src/locales/ja/ability-trigger.json rename to public/locales/ja/ability-trigger.json diff --git a/src/locales/ja/ability.json b/public/locales/ja/ability.json similarity index 100% rename from src/locales/ja/ability.json rename to public/locales/ja/ability.json diff --git a/src/locales/ja/achv.json b/public/locales/ja/achv.json similarity index 100% rename from src/locales/ja/achv.json rename to public/locales/ja/achv.json diff --git a/src/locales/ja/arena-flyout.json b/public/locales/ja/arena-flyout.json similarity index 100% rename from src/locales/ja/arena-flyout.json rename to public/locales/ja/arena-flyout.json diff --git a/src/locales/ja/arena-tag.json b/public/locales/ja/arena-tag.json similarity index 100% rename from src/locales/ja/arena-tag.json rename to public/locales/ja/arena-tag.json diff --git a/src/locales/ja/battle-info.json b/public/locales/ja/battle-info.json similarity index 100% rename from src/locales/ja/battle-info.json rename to public/locales/ja/battle-info.json diff --git a/src/locales/ja/battle-message-ui-handler.json b/public/locales/ja/battle-message-ui-handler.json similarity index 100% rename from src/locales/ja/battle-message-ui-handler.json rename to public/locales/ja/battle-message-ui-handler.json diff --git a/src/locales/ja/battle-scene.json b/public/locales/ja/battle-scene.json similarity index 100% rename from src/locales/ja/battle-scene.json rename to public/locales/ja/battle-scene.json diff --git a/src/locales/ja/battle.json b/public/locales/ja/battle.json similarity index 100% rename from src/locales/ja/battle.json rename to public/locales/ja/battle.json diff --git a/src/locales/ja/battler-tags.json b/public/locales/ja/battler-tags.json similarity index 100% rename from src/locales/ja/battler-tags.json rename to public/locales/ja/battler-tags.json diff --git a/src/locales/ja/berry.json b/public/locales/ja/berry.json similarity index 100% rename from src/locales/ja/berry.json rename to public/locales/ja/berry.json diff --git a/src/locales/ja/bgm-name.json b/public/locales/ja/bgm-name.json similarity index 100% rename from src/locales/ja/bgm-name.json rename to public/locales/ja/bgm-name.json diff --git a/src/locales/ja/biome.json b/public/locales/ja/biome.json similarity index 100% rename from src/locales/ja/biome.json rename to public/locales/ja/biome.json diff --git a/src/locales/ja/challenges.json b/public/locales/ja/challenges.json similarity index 100% rename from src/locales/ja/challenges.json rename to public/locales/ja/challenges.json diff --git a/src/locales/ja/command-ui-handler.json b/public/locales/ja/command-ui-handler.json similarity index 100% rename from src/locales/ja/command-ui-handler.json rename to public/locales/ja/command-ui-handler.json diff --git a/src/locales/ja/common.json b/public/locales/ja/common.json similarity index 100% rename from src/locales/ja/common.json rename to public/locales/ja/common.json diff --git a/src/locales/ja/dialogue-double-battle.json b/public/locales/ja/dialogue-double-battle.json similarity index 100% rename from src/locales/ja/dialogue-double-battle.json rename to public/locales/ja/dialogue-double-battle.json diff --git a/src/locales/ja/dialogue-final-boss.json b/public/locales/ja/dialogue-final-boss.json similarity index 100% rename from src/locales/ja/dialogue-final-boss.json rename to public/locales/ja/dialogue-final-boss.json diff --git a/src/locales/ja/dialogue-misc.json b/public/locales/ja/dialogue-misc.json similarity index 100% rename from src/locales/ja/dialogue-misc.json rename to public/locales/ja/dialogue-misc.json diff --git a/src/locales/ja/dialogue.json b/public/locales/ja/dialogue.json similarity index 100% rename from src/locales/ja/dialogue.json rename to public/locales/ja/dialogue.json diff --git a/src/locales/ja/egg.json b/public/locales/ja/egg.json similarity index 100% rename from src/locales/ja/egg.json rename to public/locales/ja/egg.json diff --git a/src/locales/ja/fight-ui-handler.json b/public/locales/ja/fight-ui-handler.json similarity index 100% rename from src/locales/ja/fight-ui-handler.json rename to public/locales/ja/fight-ui-handler.json diff --git a/src/locales/ja/filter-bar.json b/public/locales/ja/filter-bar.json similarity index 100% rename from src/locales/ja/filter-bar.json rename to public/locales/ja/filter-bar.json diff --git a/src/locales/ja/game-mode.json b/public/locales/ja/game-mode.json similarity index 100% rename from src/locales/ja/game-mode.json rename to public/locales/ja/game-mode.json diff --git a/src/locales/ja/game-stats-ui-handler.json b/public/locales/ja/game-stats-ui-handler.json similarity index 100% rename from src/locales/ja/game-stats-ui-handler.json rename to public/locales/ja/game-stats-ui-handler.json diff --git a/src/locales/ja/growth.json b/public/locales/ja/growth.json similarity index 100% rename from src/locales/ja/growth.json rename to public/locales/ja/growth.json diff --git a/src/locales/ja/menu-ui-handler.json b/public/locales/ja/menu-ui-handler.json similarity index 100% rename from src/locales/ja/menu-ui-handler.json rename to public/locales/ja/menu-ui-handler.json diff --git a/src/locales/ja/menu.json b/public/locales/ja/menu.json similarity index 100% rename from src/locales/ja/menu.json rename to public/locales/ja/menu.json diff --git a/src/locales/ja/modifier-select-ui-handler.json b/public/locales/ja/modifier-select-ui-handler.json similarity index 100% rename from src/locales/ja/modifier-select-ui-handler.json rename to public/locales/ja/modifier-select-ui-handler.json diff --git a/src/locales/ja/modifier-type.json b/public/locales/ja/modifier-type.json similarity index 100% rename from src/locales/ja/modifier-type.json rename to public/locales/ja/modifier-type.json diff --git a/src/locales/ja/modifier.json b/public/locales/ja/modifier.json similarity index 100% rename from src/locales/ja/modifier.json rename to public/locales/ja/modifier.json diff --git a/src/locales/ja/move-trigger.json b/public/locales/ja/move-trigger.json similarity index 100% rename from src/locales/ja/move-trigger.json rename to public/locales/ja/move-trigger.json diff --git a/src/locales/ja/move.json b/public/locales/ja/move.json similarity index 100% rename from src/locales/ja/move.json rename to public/locales/ja/move.json diff --git a/src/locales/ja/mystery-encounter-messages.json b/public/locales/ja/mystery-encounter-messages.json similarity index 100% rename from src/locales/ja/mystery-encounter-messages.json rename to public/locales/ja/mystery-encounter-messages.json diff --git a/src/locales/ja/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/ja/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/ja/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/ja/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/ja/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/ja/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/ja/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/ja/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/ja/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/ja/mystery-encounters/berries-abound-dialogue.json b/public/locales/ja/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/berries-abound-dialogue.json rename to public/locales/ja/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/ja/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/ja/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/ja/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/ja/mystery-encounters/clowning-around-dialogue.json b/public/locales/ja/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/clowning-around-dialogue.json rename to public/locales/ja/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/ja/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/ja/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/ja/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/ja/mystery-encounters/dark-deal-dialogue.json b/public/locales/ja/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/dark-deal-dialogue.json rename to public/locales/ja/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/ja/mystery-encounters/delibirdy-dialogue.json b/public/locales/ja/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/delibirdy-dialogue.json rename to public/locales/ja/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/ja/mystery-encounters/department-store-sale-dialogue.json b/public/locales/ja/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/ja/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/ja/mystery-encounters/field-trip-dialogue.json b/public/locales/ja/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/field-trip-dialogue.json rename to public/locales/ja/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/ja/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/ja/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/ja/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/ja/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/ja/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/ja/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/ja/mystery-encounters/fun-and-games-dialogue.json b/public/locales/ja/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/ja/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/ja/mystery-encounters/global-trade-system-dialogue.json b/public/locales/ja/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/ja/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/ja/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/ja/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/ja/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/ja/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/ja/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/ja/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/ja/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/ja/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/ja/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/ja/mystery-encounters/part-timer-dialogue.json b/public/locales/ja/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/part-timer-dialogue.json rename to public/locales/ja/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/ja/mystery-encounters/safari-zone-dialogue.json b/public/locales/ja/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/safari-zone-dialogue.json rename to public/locales/ja/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/ja/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/ja/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/ja/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/ja/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/ja/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/ja/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/ja/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/ja/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/ja/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/ja/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/ja/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 98% rename from src/locales/ja/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/ja/mystery-encounters/the-expert-pokemon-breeder-dialogue.json index 12eaebfb33c..13466def998 100644 --- a/src/locales/ja/mystery-encounters/the-expert-pokemon-breeder-dialogue.json +++ b/public/locales/ja/mystery-encounters/the-expert-pokemon-breeder-dialogue.json @@ -1,31 +1,31 @@ -{ - "intro": "タマゴを たくさん 運んでいる トレーナー です!", - "intro_dialogue": "チーッス トレーナーちゃん!$手持ちポケモンの 1匹、 なんか 落ち込んでる みたいね……$あたしと 元気が出る バトル しない?", - "title": "ブリーダー名人", - "description": "@[TOOLTIP_TITLE]{1匹のポケモン しか 使えない} バトルに 挑まれました。 たぶん キツく なりますが、 きっと 選んだ ポケモンと よっぽど 仲良く なれます!\n勝ったら ブリーダー名人が 数個の @[TOOLTIP_TITLE]{ポケモンタマゴ}を くれます。", - "query": "どのポケモンとバトルしますか?", - "cleffa_1_nickname": "エース", - "cleffa_2_nickname": "トッピクシー", - "cleffa_3_nickname": "華麗なる{{speciesName}}", - "option": { - "1": { - "label": "{{pokemon1Name}}", - "tooltip_base": "(-) 勝負がキツい\n(+) {{pokemon1Name}}と仲良くなる" - }, - "2": { - "label": "{{pokemon2Name}}", - "tooltip_base": "(-) 勝負がキツい\n(+) {{pokemon2Name}}と仲良くなる" - }, - "3": { - "label": "{{pokemon3Name}}", - "tooltip_base": "(-) 勝負がキツい\n(+) {{pokemon3Name}}と仲良くなる" - }, - "selected": "レッツゴー!" - }, - "outro": "ねえ、 {{chosenPokemon}} すごく 嬉しくなったわ!$そして、 これらも どうぞ!", - "outro_failed": "なんか ガッカリ ね……$手持ち ポケモンの 信用を 得るまで\nまだまだ みたいんだわ!", - "gained_eggs": "@s{item_fanfare}{{numEggs}}を もらいました!", - "eggs_tooltip": "\n(+) {{eggs}}を得る", - "numEggs_one": "{{count}} {{rarity}} タマゴ", - "numEggs_other": "{{count}} {{rarity}} タマゴ" -} +{ + "intro": "タマゴを たくさん 運んでいる トレーナー です!", + "intro_dialogue": "チーッス トレーナーちゃん!$手持ちポケモンの 1匹、 なんか 落ち込んでる みたいね……$あたしと 元気が出る バトル しない?", + "title": "ブリーダー名人", + "description": "@[TOOLTIP_TITLE]{1匹のポケモン しか 使えない} バトルに 挑まれました。 たぶん キツく なりますが、 きっと 選んだ ポケモンと よっぽど 仲良く なれます!\n勝ったら ブリーダー名人が 数個の @[TOOLTIP_TITLE]{ポケモンタマゴ}を くれます。", + "query": "どのポケモンとバトルしますか?", + "cleffa_1_nickname": "エース", + "cleffa_2_nickname": "トッピクシー", + "cleffa_3_nickname": "華麗なる{{speciesName}}", + "option": { + "1": { + "label": "{{pokemon1Name}}", + "tooltip_base": "(-) 勝負がキツい\n(+) {{pokemon1Name}}と仲良くなる" + }, + "2": { + "label": "{{pokemon2Name}}", + "tooltip_base": "(-) 勝負がキツい\n(+) {{pokemon2Name}}と仲良くなる" + }, + "3": { + "label": "{{pokemon3Name}}", + "tooltip_base": "(-) 勝負がキツい\n(+) {{pokemon3Name}}と仲良くなる" + }, + "selected": "レッツゴー!" + }, + "outro": "ねえ、 {{chosenPokemon}} すごく 嬉しくなったわ!$そして、 これらも どうぞ!", + "outro_failed": "なんか ガッカリ ね……$手持ち ポケモンの 信用を 得るまで\nまだまだ みたいんだわ!", + "gained_eggs": "@s{item_fanfare}{{numEggs}}を もらいました!", + "eggs_tooltip": "\n(+) {{eggs}}を得る", + "numEggs_one": "{{count}} {{rarity}} タマゴ", + "numEggs_other": "{{count}} {{rarity}} タマゴ" +} diff --git a/src/locales/ja/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/ja/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/ja/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/ja/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/ja/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/ja/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/ja/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/ja/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/ja/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/ja/mystery-encounters/training-session-dialogue.json b/public/locales/ja/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/training-session-dialogue.json rename to public/locales/ja/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/ja/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/ja/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/ja/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/ja/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/ja/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/ja/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/ja/mystery-encounters/weird-dream-dialogue.json b/public/locales/ja/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/ja/mystery-encounters/weird-dream-dialogue.json rename to public/locales/ja/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/ja/nature.json b/public/locales/ja/nature.json similarity index 100% rename from src/locales/ja/nature.json rename to public/locales/ja/nature.json diff --git a/src/locales/ja/party-ui-handler.json b/public/locales/ja/party-ui-handler.json similarity index 100% rename from src/locales/ja/party-ui-handler.json rename to public/locales/ja/party-ui-handler.json diff --git a/src/locales/ja/pokeball.json b/public/locales/ja/pokeball.json similarity index 100% rename from src/locales/ja/pokeball.json rename to public/locales/ja/pokeball.json diff --git a/src/locales/ja/pokemon-form-battle.json b/public/locales/ja/pokemon-form-battle.json similarity index 100% rename from src/locales/ja/pokemon-form-battle.json rename to public/locales/ja/pokemon-form-battle.json diff --git a/src/locales/ja/pokemon-form.json b/public/locales/ja/pokemon-form.json similarity index 100% rename from src/locales/ja/pokemon-form.json rename to public/locales/ja/pokemon-form.json diff --git a/src/locales/ja/pokemon-info-container.json b/public/locales/ja/pokemon-info-container.json similarity index 100% rename from src/locales/ja/pokemon-info-container.json rename to public/locales/ja/pokemon-info-container.json diff --git a/src/locales/ja/pokemon-info.json b/public/locales/ja/pokemon-info.json similarity index 100% rename from src/locales/ja/pokemon-info.json rename to public/locales/ja/pokemon-info.json diff --git a/src/locales/ja/pokemon-summary.json b/public/locales/ja/pokemon-summary.json similarity index 100% rename from src/locales/ja/pokemon-summary.json rename to public/locales/ja/pokemon-summary.json diff --git a/src/locales/ja/pokemon.json b/public/locales/ja/pokemon.json similarity index 100% rename from src/locales/ja/pokemon.json rename to public/locales/ja/pokemon.json diff --git a/src/locales/ja/run-history.json b/public/locales/ja/run-history.json similarity index 100% rename from src/locales/ja/run-history.json rename to public/locales/ja/run-history.json diff --git a/src/locales/ja/save-slot-select-ui-handler.json b/public/locales/ja/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/ja/save-slot-select-ui-handler.json rename to public/locales/ja/save-slot-select-ui-handler.json diff --git a/src/locales/ja/settings.json b/public/locales/ja/settings.json similarity index 100% rename from src/locales/ja/settings.json rename to public/locales/ja/settings.json diff --git a/src/locales/ja/splash-messages.json b/public/locales/ja/splash-messages.json similarity index 100% rename from src/locales/ja/splash-messages.json rename to public/locales/ja/splash-messages.json diff --git a/src/locales/ja/starter-select-ui-handler.json b/public/locales/ja/starter-select-ui-handler.json similarity index 100% rename from src/locales/ja/starter-select-ui-handler.json rename to public/locales/ja/starter-select-ui-handler.json diff --git a/src/locales/ja/status-effect.json b/public/locales/ja/status-effect.json similarity index 100% rename from src/locales/ja/status-effect.json rename to public/locales/ja/status-effect.json diff --git a/src/locales/ja/terrain.json b/public/locales/ja/terrain.json similarity index 100% rename from src/locales/ja/terrain.json rename to public/locales/ja/terrain.json diff --git a/src/locales/ja/trainer-classes.json b/public/locales/ja/trainer-classes.json similarity index 100% rename from src/locales/ja/trainer-classes.json rename to public/locales/ja/trainer-classes.json diff --git a/src/locales/ja/trainer-names.json b/public/locales/ja/trainer-names.json similarity index 100% rename from src/locales/ja/trainer-names.json rename to public/locales/ja/trainer-names.json diff --git a/src/locales/ja/trainer-titles.json b/public/locales/ja/trainer-titles.json similarity index 100% rename from src/locales/ja/trainer-titles.json rename to public/locales/ja/trainer-titles.json diff --git a/src/locales/ja/tutorial.json b/public/locales/ja/tutorial.json similarity index 100% rename from src/locales/ja/tutorial.json rename to public/locales/ja/tutorial.json diff --git a/src/locales/ja/voucher.json b/public/locales/ja/voucher.json similarity index 100% rename from src/locales/ja/voucher.json rename to public/locales/ja/voucher.json diff --git a/src/locales/ja/weather.json b/public/locales/ja/weather.json similarity index 100% rename from src/locales/ja/weather.json rename to public/locales/ja/weather.json diff --git a/src/locales/ko/ability-trigger.json b/public/locales/ko/ability-trigger.json similarity index 100% rename from src/locales/ko/ability-trigger.json rename to public/locales/ko/ability-trigger.json diff --git a/src/locales/ko/ability.json b/public/locales/ko/ability.json similarity index 100% rename from src/locales/ko/ability.json rename to public/locales/ko/ability.json diff --git a/src/locales/ko/achv.json b/public/locales/ko/achv.json similarity index 100% rename from src/locales/ko/achv.json rename to public/locales/ko/achv.json diff --git a/src/locales/ko/arena-flyout.json b/public/locales/ko/arena-flyout.json similarity index 100% rename from src/locales/ko/arena-flyout.json rename to public/locales/ko/arena-flyout.json diff --git a/src/locales/ko/arena-tag.json b/public/locales/ko/arena-tag.json similarity index 100% rename from src/locales/ko/arena-tag.json rename to public/locales/ko/arena-tag.json diff --git a/src/locales/ko/battle-info.json b/public/locales/ko/battle-info.json similarity index 100% rename from src/locales/ko/battle-info.json rename to public/locales/ko/battle-info.json diff --git a/src/locales/ko/battle-message-ui-handler.json b/public/locales/ko/battle-message-ui-handler.json similarity index 100% rename from src/locales/ko/battle-message-ui-handler.json rename to public/locales/ko/battle-message-ui-handler.json diff --git a/src/locales/ko/battle-scene.json b/public/locales/ko/battle-scene.json similarity index 100% rename from src/locales/ko/battle-scene.json rename to public/locales/ko/battle-scene.json diff --git a/src/locales/ko/battle.json b/public/locales/ko/battle.json similarity index 100% rename from src/locales/ko/battle.json rename to public/locales/ko/battle.json diff --git a/src/locales/ko/battler-tags.json b/public/locales/ko/battler-tags.json similarity index 100% rename from src/locales/ko/battler-tags.json rename to public/locales/ko/battler-tags.json diff --git a/src/locales/ko/berry.json b/public/locales/ko/berry.json similarity index 100% rename from src/locales/ko/berry.json rename to public/locales/ko/berry.json diff --git a/src/locales/ko/bgm-name.json b/public/locales/ko/bgm-name.json similarity index 100% rename from src/locales/ko/bgm-name.json rename to public/locales/ko/bgm-name.json diff --git a/src/locales/ko/biome.json b/public/locales/ko/biome.json similarity index 100% rename from src/locales/ko/biome.json rename to public/locales/ko/biome.json diff --git a/src/locales/ko/challenges.json b/public/locales/ko/challenges.json similarity index 100% rename from src/locales/ko/challenges.json rename to public/locales/ko/challenges.json diff --git a/src/locales/ko/command-ui-handler.json b/public/locales/ko/command-ui-handler.json similarity index 100% rename from src/locales/ko/command-ui-handler.json rename to public/locales/ko/command-ui-handler.json diff --git a/src/locales/ko/common.json b/public/locales/ko/common.json similarity index 100% rename from src/locales/ko/common.json rename to public/locales/ko/common.json diff --git a/src/locales/ko/dialogue-double-battle.json b/public/locales/ko/dialogue-double-battle.json similarity index 100% rename from src/locales/ko/dialogue-double-battle.json rename to public/locales/ko/dialogue-double-battle.json diff --git a/src/locales/ko/dialogue-final-boss.json b/public/locales/ko/dialogue-final-boss.json similarity index 100% rename from src/locales/ko/dialogue-final-boss.json rename to public/locales/ko/dialogue-final-boss.json diff --git a/src/locales/ko/dialogue-misc.json b/public/locales/ko/dialogue-misc.json similarity index 100% rename from src/locales/ko/dialogue-misc.json rename to public/locales/ko/dialogue-misc.json diff --git a/src/locales/ko/dialogue.json b/public/locales/ko/dialogue.json similarity index 100% rename from src/locales/ko/dialogue.json rename to public/locales/ko/dialogue.json diff --git a/src/locales/ko/egg.json b/public/locales/ko/egg.json similarity index 100% rename from src/locales/ko/egg.json rename to public/locales/ko/egg.json diff --git a/src/locales/ko/fight-ui-handler.json b/public/locales/ko/fight-ui-handler.json similarity index 100% rename from src/locales/ko/fight-ui-handler.json rename to public/locales/ko/fight-ui-handler.json diff --git a/src/locales/ko/filter-bar.json b/public/locales/ko/filter-bar.json similarity index 100% rename from src/locales/ko/filter-bar.json rename to public/locales/ko/filter-bar.json diff --git a/src/locales/ko/game-mode.json b/public/locales/ko/game-mode.json similarity index 100% rename from src/locales/ko/game-mode.json rename to public/locales/ko/game-mode.json diff --git a/src/locales/ko/game-stats-ui-handler.json b/public/locales/ko/game-stats-ui-handler.json similarity index 100% rename from src/locales/ko/game-stats-ui-handler.json rename to public/locales/ko/game-stats-ui-handler.json diff --git a/src/locales/ko/growth.json b/public/locales/ko/growth.json similarity index 100% rename from src/locales/ko/growth.json rename to public/locales/ko/growth.json diff --git a/src/locales/ko/menu-ui-handler.json b/public/locales/ko/menu-ui-handler.json similarity index 100% rename from src/locales/ko/menu-ui-handler.json rename to public/locales/ko/menu-ui-handler.json diff --git a/src/locales/ko/menu.json b/public/locales/ko/menu.json similarity index 100% rename from src/locales/ko/menu.json rename to public/locales/ko/menu.json diff --git a/src/locales/ko/modifier-select-ui-handler.json b/public/locales/ko/modifier-select-ui-handler.json similarity index 100% rename from src/locales/ko/modifier-select-ui-handler.json rename to public/locales/ko/modifier-select-ui-handler.json diff --git a/src/locales/ko/modifier-type.json b/public/locales/ko/modifier-type.json similarity index 100% rename from src/locales/ko/modifier-type.json rename to public/locales/ko/modifier-type.json diff --git a/src/locales/ko/modifier.json b/public/locales/ko/modifier.json similarity index 100% rename from src/locales/ko/modifier.json rename to public/locales/ko/modifier.json diff --git a/src/locales/ko/move-trigger.json b/public/locales/ko/move-trigger.json similarity index 100% rename from src/locales/ko/move-trigger.json rename to public/locales/ko/move-trigger.json diff --git a/src/locales/ko/move.json b/public/locales/ko/move.json similarity index 100% rename from src/locales/ko/move.json rename to public/locales/ko/move.json diff --git a/src/locales/ko/mystery-encounter-messages.json b/public/locales/ko/mystery-encounter-messages.json similarity index 100% rename from src/locales/ko/mystery-encounter-messages.json rename to public/locales/ko/mystery-encounter-messages.json diff --git a/src/locales/ko/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/ko/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/ko/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/ko/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/ko/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/ko/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/ko/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/ko/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/ko/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/ko/mystery-encounters/berries-abound-dialogue.json b/public/locales/ko/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/berries-abound-dialogue.json rename to public/locales/ko/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/ko/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/ko/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/ko/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/ko/mystery-encounters/clowning-around-dialogue.json b/public/locales/ko/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/clowning-around-dialogue.json rename to public/locales/ko/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/ko/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/ko/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/ko/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/ko/mystery-encounters/dark-deal-dialogue.json b/public/locales/ko/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/dark-deal-dialogue.json rename to public/locales/ko/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/ko/mystery-encounters/delibirdy-dialogue.json b/public/locales/ko/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/delibirdy-dialogue.json rename to public/locales/ko/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/ko/mystery-encounters/department-store-sale-dialogue.json b/public/locales/ko/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/ko/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/ko/mystery-encounters/field-trip-dialogue.json b/public/locales/ko/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/field-trip-dialogue.json rename to public/locales/ko/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/ko/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/ko/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/ko/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/ko/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/ko/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/ko/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/ko/mystery-encounters/fun-and-games-dialogue.json b/public/locales/ko/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/ko/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/ko/mystery-encounters/global-trade-system-dialogue.json b/public/locales/ko/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/ko/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/ko/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/ko/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/ko/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/ko/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/ko/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/ko/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/ko/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/ko/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/ko/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/ko/mystery-encounters/part-timer-dialogue.json b/public/locales/ko/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/part-timer-dialogue.json rename to public/locales/ko/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/ko/mystery-encounters/safari-zone-dialogue.json b/public/locales/ko/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/safari-zone-dialogue.json rename to public/locales/ko/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/ko/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/ko/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/ko/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/ko/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/ko/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/ko/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/ko/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/ko/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/ko/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/ko/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/ko/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 98% rename from src/locales/ko/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/ko/mystery-encounters/the-expert-pokemon-breeder-dialogue.json index e226741c60a..30442f42626 100644 --- a/src/locales/ko/mystery-encounters/the-expert-pokemon-breeder-dialogue.json +++ b/public/locales/ko/mystery-encounters/the-expert-pokemon-breeder-dialogue.json @@ -1,32 +1,32 @@ -{ - "intro": "포켓몬 알을 잔뜩 가진 트레이너가 나타났다!", - "intro_dialogue": "안녕하세요, 트레이너!$당신의 몇몇 파트너 포켓몬이\n조금 기운 없어 보이네요.$저와 배틀을 해서\n기운이 나게끔 해주는 건 어떨까요?", - "title": "전문 브리더", - "description": "브리더를 상대로 @[TOOLTIP_TITLE]{포켓몬 1마리만} 사용해서 승부해야 합니다. 조금 힘들겠지만, 선택한 포켓몬과 유대감이 더욱 깊어질 기회입니다!\n게다가 승리하면 @[TOOLTIP_TITLE]{포켓몬 알}까지 준다고 합니다!", - - "query": "어떤 포켓몬으로 싸우겠습니까?", - "cleffa_1_nickname": "에이스", - "cleffa_2_nickname": "픽시짱", - "cleffa_3_nickname": "{{speciesName}} 대왕", - "option": { - "1": { - "label": "{{pokemon1Name}}", - "tooltip_base": "(-) 힘든 배틀\n(+) {{pokemon1Name}} 친밀도 상승" - }, - "2": { - "label": "{{pokemon2Name}}", - "tooltip_base": "(-) 힘든 배틀\n(+) {{pokemon2Name}} 친밀도 상승" - }, - "3": { - "label": "{{pokemon3Name}}", - "tooltip_base": "(-) 힘든 배틀\n(+) {{pokemon3Name}} 친밀도 상승" - }, - "selected": "그럼 갑니다!" - }, - "outro": "{{chosenPokemon}}[[가]] 정말 행복해 보이네요!$여기, 이것도 드릴게요.", - "outro_failed": "실망이네요….$포켓몬의 신뢰를 얻으려면 아직 멀었어요!", - "gained_eggs": "@s{item_fanfare}{{numEggs}}[[를]] 받았습니다!", - "eggs_tooltip": "\n(+) {{eggs}} 획득", - "numEggs_one": "{{rarity}}알 {{count}}개", - "numEggs_other": "{{rarity}}알 {{count}}개" -} +{ + "intro": "포켓몬 알을 잔뜩 가진 트레이너가 나타났다!", + "intro_dialogue": "안녕하세요, 트레이너!$당신의 몇몇 파트너 포켓몬이\n조금 기운 없어 보이네요.$저와 배틀을 해서\n기운이 나게끔 해주는 건 어떨까요?", + "title": "전문 브리더", + "description": "브리더를 상대로 @[TOOLTIP_TITLE]{포켓몬 1마리만} 사용해서 승부해야 합니다. 조금 힘들겠지만, 선택한 포켓몬과 유대감이 더욱 깊어질 기회입니다!\n게다가 승리하면 @[TOOLTIP_TITLE]{포켓몬 알}까지 준다고 합니다!", + + "query": "어떤 포켓몬으로 싸우겠습니까?", + "cleffa_1_nickname": "에이스", + "cleffa_2_nickname": "픽시짱", + "cleffa_3_nickname": "{{speciesName}} 대왕", + "option": { + "1": { + "label": "{{pokemon1Name}}", + "tooltip_base": "(-) 힘든 배틀\n(+) {{pokemon1Name}} 친밀도 상승" + }, + "2": { + "label": "{{pokemon2Name}}", + "tooltip_base": "(-) 힘든 배틀\n(+) {{pokemon2Name}} 친밀도 상승" + }, + "3": { + "label": "{{pokemon3Name}}", + "tooltip_base": "(-) 힘든 배틀\n(+) {{pokemon3Name}} 친밀도 상승" + }, + "selected": "그럼 갑니다!" + }, + "outro": "{{chosenPokemon}}[[가]] 정말 행복해 보이네요!$여기, 이것도 드릴게요.", + "outro_failed": "실망이네요….$포켓몬의 신뢰를 얻으려면 아직 멀었어요!", + "gained_eggs": "@s{item_fanfare}{{numEggs}}[[를]] 받았습니다!", + "eggs_tooltip": "\n(+) {{eggs}} 획득", + "numEggs_one": "{{rarity}}알 {{count}}개", + "numEggs_other": "{{rarity}}알 {{count}}개" +} diff --git a/src/locales/ko/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/ko/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/ko/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/ko/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/ko/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/ko/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/ko/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/ko/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/ko/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/ko/mystery-encounters/training-session-dialogue.json b/public/locales/ko/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/training-session-dialogue.json rename to public/locales/ko/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/ko/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/ko/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/ko/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/ko/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/ko/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/ko/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/ko/mystery-encounters/weird-dream-dialogue.json b/public/locales/ko/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/ko/mystery-encounters/weird-dream-dialogue.json rename to public/locales/ko/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/ko/nature.json b/public/locales/ko/nature.json similarity index 100% rename from src/locales/ko/nature.json rename to public/locales/ko/nature.json diff --git a/src/locales/ko/party-ui-handler.json b/public/locales/ko/party-ui-handler.json similarity index 100% rename from src/locales/ko/party-ui-handler.json rename to public/locales/ko/party-ui-handler.json diff --git a/src/locales/ko/pokeball.json b/public/locales/ko/pokeball.json similarity index 100% rename from src/locales/ko/pokeball.json rename to public/locales/ko/pokeball.json diff --git a/src/locales/ko/pokemon-form-battle.json b/public/locales/ko/pokemon-form-battle.json similarity index 100% rename from src/locales/ko/pokemon-form-battle.json rename to public/locales/ko/pokemon-form-battle.json diff --git a/src/locales/ko/pokemon-form.json b/public/locales/ko/pokemon-form.json similarity index 100% rename from src/locales/ko/pokemon-form.json rename to public/locales/ko/pokemon-form.json diff --git a/src/locales/ko/pokemon-info-container.json b/public/locales/ko/pokemon-info-container.json similarity index 100% rename from src/locales/ko/pokemon-info-container.json rename to public/locales/ko/pokemon-info-container.json diff --git a/src/locales/ko/pokemon-info.json b/public/locales/ko/pokemon-info.json similarity index 100% rename from src/locales/ko/pokemon-info.json rename to public/locales/ko/pokemon-info.json diff --git a/src/locales/ko/pokemon-summary.json b/public/locales/ko/pokemon-summary.json similarity index 100% rename from src/locales/ko/pokemon-summary.json rename to public/locales/ko/pokemon-summary.json diff --git a/src/locales/ko/pokemon.json b/public/locales/ko/pokemon.json similarity index 100% rename from src/locales/ko/pokemon.json rename to public/locales/ko/pokemon.json diff --git a/src/locales/ko/run-history.json b/public/locales/ko/run-history.json similarity index 100% rename from src/locales/ko/run-history.json rename to public/locales/ko/run-history.json diff --git a/src/locales/ko/save-slot-select-ui-handler.json b/public/locales/ko/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/ko/save-slot-select-ui-handler.json rename to public/locales/ko/save-slot-select-ui-handler.json diff --git a/src/locales/ko/settings.json b/public/locales/ko/settings.json similarity index 100% rename from src/locales/ko/settings.json rename to public/locales/ko/settings.json diff --git a/src/locales/ko/splash-messages.json b/public/locales/ko/splash-messages.json similarity index 100% rename from src/locales/ko/splash-messages.json rename to public/locales/ko/splash-messages.json diff --git a/src/locales/ko/starter-select-ui-handler.json b/public/locales/ko/starter-select-ui-handler.json similarity index 100% rename from src/locales/ko/starter-select-ui-handler.json rename to public/locales/ko/starter-select-ui-handler.json diff --git a/src/locales/ko/status-effect.json b/public/locales/ko/status-effect.json similarity index 100% rename from src/locales/ko/status-effect.json rename to public/locales/ko/status-effect.json diff --git a/src/locales/ko/terrain.json b/public/locales/ko/terrain.json similarity index 100% rename from src/locales/ko/terrain.json rename to public/locales/ko/terrain.json diff --git a/src/locales/ko/trainer-classes.json b/public/locales/ko/trainer-classes.json similarity index 100% rename from src/locales/ko/trainer-classes.json rename to public/locales/ko/trainer-classes.json diff --git a/src/locales/ko/trainer-names.json b/public/locales/ko/trainer-names.json similarity index 100% rename from src/locales/ko/trainer-names.json rename to public/locales/ko/trainer-names.json diff --git a/src/locales/ko/trainer-titles.json b/public/locales/ko/trainer-titles.json similarity index 100% rename from src/locales/ko/trainer-titles.json rename to public/locales/ko/trainer-titles.json diff --git a/src/locales/ko/tutorial.json b/public/locales/ko/tutorial.json similarity index 100% rename from src/locales/ko/tutorial.json rename to public/locales/ko/tutorial.json diff --git a/src/locales/ko/voucher.json b/public/locales/ko/voucher.json similarity index 100% rename from src/locales/ko/voucher.json rename to public/locales/ko/voucher.json diff --git a/src/locales/ko/weather.json b/public/locales/ko/weather.json similarity index 100% rename from src/locales/ko/weather.json rename to public/locales/ko/weather.json diff --git a/src/locales/pt_BR/ability-trigger.json b/public/locales/pt-BR/ability-trigger.json similarity index 100% rename from src/locales/pt_BR/ability-trigger.json rename to public/locales/pt-BR/ability-trigger.json diff --git a/src/locales/pt_BR/ability.json b/public/locales/pt-BR/ability.json similarity index 100% rename from src/locales/pt_BR/ability.json rename to public/locales/pt-BR/ability.json diff --git a/src/locales/pt_BR/achv.json b/public/locales/pt-BR/achv.json similarity index 100% rename from src/locales/pt_BR/achv.json rename to public/locales/pt-BR/achv.json diff --git a/src/locales/pt_BR/arena-flyout.json b/public/locales/pt-BR/arena-flyout.json similarity index 100% rename from src/locales/pt_BR/arena-flyout.json rename to public/locales/pt-BR/arena-flyout.json diff --git a/src/locales/pt_BR/arena-tag.json b/public/locales/pt-BR/arena-tag.json similarity index 100% rename from src/locales/pt_BR/arena-tag.json rename to public/locales/pt-BR/arena-tag.json diff --git a/src/locales/pt_BR/battle-info.json b/public/locales/pt-BR/battle-info.json similarity index 100% rename from src/locales/pt_BR/battle-info.json rename to public/locales/pt-BR/battle-info.json diff --git a/src/locales/pt_BR/battle-message-ui-handler.json b/public/locales/pt-BR/battle-message-ui-handler.json similarity index 100% rename from src/locales/pt_BR/battle-message-ui-handler.json rename to public/locales/pt-BR/battle-message-ui-handler.json diff --git a/src/locales/pt_BR/battle-scene.json b/public/locales/pt-BR/battle-scene.json similarity index 100% rename from src/locales/pt_BR/battle-scene.json rename to public/locales/pt-BR/battle-scene.json diff --git a/src/locales/pt_BR/battle.json b/public/locales/pt-BR/battle.json similarity index 100% rename from src/locales/pt_BR/battle.json rename to public/locales/pt-BR/battle.json diff --git a/src/locales/pt_BR/battler-tags.json b/public/locales/pt-BR/battler-tags.json similarity index 100% rename from src/locales/pt_BR/battler-tags.json rename to public/locales/pt-BR/battler-tags.json diff --git a/src/locales/pt_BR/berry.json b/public/locales/pt-BR/berry.json similarity index 100% rename from src/locales/pt_BR/berry.json rename to public/locales/pt-BR/berry.json diff --git a/src/locales/pt_BR/bgm-name.json b/public/locales/pt-BR/bgm-name.json similarity index 100% rename from src/locales/pt_BR/bgm-name.json rename to public/locales/pt-BR/bgm-name.json diff --git a/src/locales/pt_BR/biome.json b/public/locales/pt-BR/biome.json similarity index 100% rename from src/locales/pt_BR/biome.json rename to public/locales/pt-BR/biome.json diff --git a/src/locales/pt_BR/challenges.json b/public/locales/pt-BR/challenges.json similarity index 100% rename from src/locales/pt_BR/challenges.json rename to public/locales/pt-BR/challenges.json diff --git a/src/locales/pt_BR/command-ui-handler.json b/public/locales/pt-BR/command-ui-handler.json similarity index 100% rename from src/locales/pt_BR/command-ui-handler.json rename to public/locales/pt-BR/command-ui-handler.json diff --git a/src/locales/pt_BR/common.json b/public/locales/pt-BR/common.json similarity index 100% rename from src/locales/pt_BR/common.json rename to public/locales/pt-BR/common.json diff --git a/src/locales/pt_BR/dialogue-double-battle.json b/public/locales/pt-BR/dialogue-double-battle.json similarity index 100% rename from src/locales/pt_BR/dialogue-double-battle.json rename to public/locales/pt-BR/dialogue-double-battle.json diff --git a/src/locales/pt_BR/dialogue-final-boss.json b/public/locales/pt-BR/dialogue-final-boss.json similarity index 100% rename from src/locales/pt_BR/dialogue-final-boss.json rename to public/locales/pt-BR/dialogue-final-boss.json diff --git a/src/locales/pt_BR/dialogue-misc.json b/public/locales/pt-BR/dialogue-misc.json similarity index 100% rename from src/locales/pt_BR/dialogue-misc.json rename to public/locales/pt-BR/dialogue-misc.json diff --git a/src/locales/pt_BR/dialogue.json b/public/locales/pt-BR/dialogue.json similarity index 100% rename from src/locales/pt_BR/dialogue.json rename to public/locales/pt-BR/dialogue.json diff --git a/src/locales/pt_BR/egg.json b/public/locales/pt-BR/egg.json similarity index 100% rename from src/locales/pt_BR/egg.json rename to public/locales/pt-BR/egg.json diff --git a/src/locales/pt_BR/fight-ui-handler.json b/public/locales/pt-BR/fight-ui-handler.json similarity index 100% rename from src/locales/pt_BR/fight-ui-handler.json rename to public/locales/pt-BR/fight-ui-handler.json diff --git a/src/locales/pt_BR/filter-bar.json b/public/locales/pt-BR/filter-bar.json similarity index 100% rename from src/locales/pt_BR/filter-bar.json rename to public/locales/pt-BR/filter-bar.json diff --git a/src/locales/pt_BR/game-mode.json b/public/locales/pt-BR/game-mode.json similarity index 100% rename from src/locales/pt_BR/game-mode.json rename to public/locales/pt-BR/game-mode.json diff --git a/src/locales/pt_BR/game-stats-ui-handler.json b/public/locales/pt-BR/game-stats-ui-handler.json similarity index 100% rename from src/locales/pt_BR/game-stats-ui-handler.json rename to public/locales/pt-BR/game-stats-ui-handler.json diff --git a/src/locales/pt_BR/growth.json b/public/locales/pt-BR/growth.json similarity index 100% rename from src/locales/pt_BR/growth.json rename to public/locales/pt-BR/growth.json diff --git a/src/locales/pt_BR/menu-ui-handler.json b/public/locales/pt-BR/menu-ui-handler.json similarity index 100% rename from src/locales/pt_BR/menu-ui-handler.json rename to public/locales/pt-BR/menu-ui-handler.json diff --git a/src/locales/pt_BR/menu.json b/public/locales/pt-BR/menu.json similarity index 100% rename from src/locales/pt_BR/menu.json rename to public/locales/pt-BR/menu.json diff --git a/src/locales/pt_BR/modifier-select-ui-handler.json b/public/locales/pt-BR/modifier-select-ui-handler.json similarity index 100% rename from src/locales/pt_BR/modifier-select-ui-handler.json rename to public/locales/pt-BR/modifier-select-ui-handler.json diff --git a/src/locales/pt_BR/modifier-type.json b/public/locales/pt-BR/modifier-type.json similarity index 100% rename from src/locales/pt_BR/modifier-type.json rename to public/locales/pt-BR/modifier-type.json diff --git a/src/locales/pt_BR/modifier.json b/public/locales/pt-BR/modifier.json similarity index 100% rename from src/locales/pt_BR/modifier.json rename to public/locales/pt-BR/modifier.json diff --git a/src/locales/pt_BR/move-trigger.json b/public/locales/pt-BR/move-trigger.json similarity index 100% rename from src/locales/pt_BR/move-trigger.json rename to public/locales/pt-BR/move-trigger.json diff --git a/src/locales/pt_BR/move.json b/public/locales/pt-BR/move.json similarity index 100% rename from src/locales/pt_BR/move.json rename to public/locales/pt-BR/move.json diff --git a/src/locales/pt_BR/mystery-encounter-messages.json b/public/locales/pt-BR/mystery-encounter-messages.json similarity index 100% rename from src/locales/pt_BR/mystery-encounter-messages.json rename to public/locales/pt-BR/mystery-encounter-messages.json diff --git a/src/locales/pt_BR/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/pt-BR/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/pt-BR/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/pt-BR/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/pt-BR/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/pt-BR/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/pt-BR/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/berries-abound-dialogue.json b/public/locales/pt-BR/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/berries-abound-dialogue.json rename to public/locales/pt-BR/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/pt-BR/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/pt-BR/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/clowning-around-dialogue.json b/public/locales/pt-BR/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/clowning-around-dialogue.json rename to public/locales/pt-BR/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/pt-BR/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/pt-BR/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/dark-deal-dialogue.json b/public/locales/pt-BR/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/dark-deal-dialogue.json rename to public/locales/pt-BR/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/delibirdy-dialogue.json b/public/locales/pt-BR/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/delibirdy-dialogue.json rename to public/locales/pt-BR/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/department-store-sale-dialogue.json b/public/locales/pt-BR/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/pt-BR/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/field-trip-dialogue.json b/public/locales/pt-BR/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/field-trip-dialogue.json rename to public/locales/pt-BR/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/pt-BR/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/pt-BR/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/pt-BR/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/pt-BR/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/fun-and-games-dialogue.json b/public/locales/pt-BR/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/pt-BR/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/global-trade-system-dialogue.json b/public/locales/pt-BR/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/pt-BR/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/pt-BR/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/pt-BR/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/pt-BR/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/pt-BR/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/pt-BR/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/pt-BR/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/part-timer-dialogue.json b/public/locales/pt-BR/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/part-timer-dialogue.json rename to public/locales/pt-BR/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/safari-zone-dialogue.json b/public/locales/pt-BR/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/safari-zone-dialogue.json rename to public/locales/pt-BR/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/pt-BR/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/pt-BR/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/pt-BR/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/pt-BR/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/pt-BR/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/pt-BR/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/pt-BR/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 98% rename from src/locales/pt_BR/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/pt-BR/mystery-encounters/the-expert-pokemon-breeder-dialogue.json index d84c6c07273..29e8d78ce37 100644 --- a/src/locales/pt_BR/mystery-encounters/the-expert-pokemon-breeder-dialogue.json +++ b/public/locales/pt-BR/mystery-encounters/the-expert-pokemon-breeder-dialogue.json @@ -1,31 +1,31 @@ -{ - "intro": "É um treinador carregando muitos Ovos de Pokémon!", - "intro_dialogue": "Ei, treinador!$Parece que alguns dos seus\nPokémon parceiros estão um pouco desanimados.$Por que não batalha comigo para animá-los?", - "title": "O Criador de Pokémon Experiente", - "description": "Você foi desafiado para uma batalha onde @[TOOLTIP_TITLE]{você só pode usar um único Pokémon}. Pode ser difícil, mas certamente fortaleceria o vínculo que você tem com o Pokémon que escolher!\nO criador também te dará alguns @[TOOLTIP_TITLE]{Ovos de Pokémon} se você vencer!", - "query": "Com quem você vai batalhar?", - "cleffa_1_nickname": "Ás", - "cleffa_2_nickname": "Clefablest", - "cleffa_3_nickname": "{{speciesName}} o Grande", - "option": { - "1": { - "label": "{{pokemon1Name}}", - "tooltip_base": "(-) Batalha Difícil\n(+) Aumentar Amizade com {{pokemon1Name}}" - }, - "2": { - "label": "{{pokemon2Name}}", - "tooltip_base": "(-) Batalha Difícil\n(+) Aumentar Amizade com {{pokemon2Name}}" - }, - "3": { - "label": "{{pokemon3Name}}", - "tooltip_base": "(-) Batalha Difícil\n(+) Aumentar Amizade com {{pokemon3Name}}" - }, - "selected": "Vamos lá!" - }, - "outro": "Veja como seu {{chosenPokemon}} está feliz agora!$Aqui, você também pode ficar com isso.", - "outro_failed": "Que decepção...$Parece que você ainda tem um longo caminho\na percorrer para ganhar a confiança dos seus Pokémon!", - "gained_eggs": "@s{item_fanfare}Você recebeu {{numEggs}}!", - "eggs_tooltip": "\n(+) Ganhe {{eggs}}", - "numEggs_one": "{{count}} Ovo {{rarity}}", - "numEggs_other": "{{count}} Ovos {{rarity}}" -} +{ + "intro": "É um treinador carregando muitos Ovos de Pokémon!", + "intro_dialogue": "Ei, treinador!$Parece que alguns dos seus\nPokémon parceiros estão um pouco desanimados.$Por que não batalha comigo para animá-los?", + "title": "O Criador de Pokémon Experiente", + "description": "Você foi desafiado para uma batalha onde @[TOOLTIP_TITLE]{você só pode usar um único Pokémon}. Pode ser difícil, mas certamente fortaleceria o vínculo que você tem com o Pokémon que escolher!\nO criador também te dará alguns @[TOOLTIP_TITLE]{Ovos de Pokémon} se você vencer!", + "query": "Com quem você vai batalhar?", + "cleffa_1_nickname": "Ás", + "cleffa_2_nickname": "Clefablest", + "cleffa_3_nickname": "{{speciesName}} o Grande", + "option": { + "1": { + "label": "{{pokemon1Name}}", + "tooltip_base": "(-) Batalha Difícil\n(+) Aumentar Amizade com {{pokemon1Name}}" + }, + "2": { + "label": "{{pokemon2Name}}", + "tooltip_base": "(-) Batalha Difícil\n(+) Aumentar Amizade com {{pokemon2Name}}" + }, + "3": { + "label": "{{pokemon3Name}}", + "tooltip_base": "(-) Batalha Difícil\n(+) Aumentar Amizade com {{pokemon3Name}}" + }, + "selected": "Vamos lá!" + }, + "outro": "Veja como seu {{chosenPokemon}} está feliz agora!$Aqui, você também pode ficar com isso.", + "outro_failed": "Que decepção...$Parece que você ainda tem um longo caminho\na percorrer para ganhar a confiança dos seus Pokémon!", + "gained_eggs": "@s{item_fanfare}Você recebeu {{numEggs}}!", + "eggs_tooltip": "\n(+) Ganhe {{eggs}}", + "numEggs_one": "{{count}} Ovo {{rarity}}", + "numEggs_other": "{{count}} Ovos {{rarity}}" +} diff --git a/src/locales/pt_BR/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/pt-BR/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/pt-BR/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/pt-BR/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/pt-BR/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/pt-BR/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/pt-BR/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/training-session-dialogue.json b/public/locales/pt-BR/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/training-session-dialogue.json rename to public/locales/pt-BR/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/pt-BR/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/pt-BR/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/pt-BR/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/pt-BR/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/pt_BR/mystery-encounters/weird-dream-dialogue.json b/public/locales/pt-BR/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/pt_BR/mystery-encounters/weird-dream-dialogue.json rename to public/locales/pt-BR/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/pt_BR/nature.json b/public/locales/pt-BR/nature.json similarity index 100% rename from src/locales/pt_BR/nature.json rename to public/locales/pt-BR/nature.json diff --git a/src/locales/pt_BR/party-ui-handler.json b/public/locales/pt-BR/party-ui-handler.json similarity index 100% rename from src/locales/pt_BR/party-ui-handler.json rename to public/locales/pt-BR/party-ui-handler.json diff --git a/src/locales/pt_BR/pokeball.json b/public/locales/pt-BR/pokeball.json similarity index 100% rename from src/locales/pt_BR/pokeball.json rename to public/locales/pt-BR/pokeball.json diff --git a/src/locales/pt_BR/pokemon-form-battle.json b/public/locales/pt-BR/pokemon-form-battle.json similarity index 100% rename from src/locales/pt_BR/pokemon-form-battle.json rename to public/locales/pt-BR/pokemon-form-battle.json diff --git a/src/locales/pt_BR/pokemon-form.json b/public/locales/pt-BR/pokemon-form.json similarity index 100% rename from src/locales/pt_BR/pokemon-form.json rename to public/locales/pt-BR/pokemon-form.json diff --git a/src/locales/pt_BR/pokemon-info-container.json b/public/locales/pt-BR/pokemon-info-container.json similarity index 100% rename from src/locales/pt_BR/pokemon-info-container.json rename to public/locales/pt-BR/pokemon-info-container.json diff --git a/src/locales/pt_BR/pokemon-info.json b/public/locales/pt-BR/pokemon-info.json similarity index 100% rename from src/locales/pt_BR/pokemon-info.json rename to public/locales/pt-BR/pokemon-info.json diff --git a/src/locales/pt_BR/pokemon-summary.json b/public/locales/pt-BR/pokemon-summary.json similarity index 100% rename from src/locales/pt_BR/pokemon-summary.json rename to public/locales/pt-BR/pokemon-summary.json diff --git a/src/locales/pt_BR/pokemon.json b/public/locales/pt-BR/pokemon.json similarity index 100% rename from src/locales/pt_BR/pokemon.json rename to public/locales/pt-BR/pokemon.json diff --git a/src/locales/pt_BR/run-history.json b/public/locales/pt-BR/run-history.json similarity index 100% rename from src/locales/pt_BR/run-history.json rename to public/locales/pt-BR/run-history.json diff --git a/src/locales/pt_BR/save-slot-select-ui-handler.json b/public/locales/pt-BR/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/pt_BR/save-slot-select-ui-handler.json rename to public/locales/pt-BR/save-slot-select-ui-handler.json diff --git a/src/locales/pt_BR/settings.json b/public/locales/pt-BR/settings.json similarity index 100% rename from src/locales/pt_BR/settings.json rename to public/locales/pt-BR/settings.json diff --git a/src/locales/pt_BR/splash-messages.json b/public/locales/pt-BR/splash-messages.json similarity index 100% rename from src/locales/pt_BR/splash-messages.json rename to public/locales/pt-BR/splash-messages.json diff --git a/src/locales/pt_BR/starter-select-ui-handler.json b/public/locales/pt-BR/starter-select-ui-handler.json similarity index 100% rename from src/locales/pt_BR/starter-select-ui-handler.json rename to public/locales/pt-BR/starter-select-ui-handler.json diff --git a/src/locales/pt_BR/status-effect.json b/public/locales/pt-BR/status-effect.json similarity index 100% rename from src/locales/pt_BR/status-effect.json rename to public/locales/pt-BR/status-effect.json diff --git a/src/locales/pt_BR/terrain.json b/public/locales/pt-BR/terrain.json similarity index 100% rename from src/locales/pt_BR/terrain.json rename to public/locales/pt-BR/terrain.json diff --git a/src/locales/pt_BR/trainer-classes.json b/public/locales/pt-BR/trainer-classes.json similarity index 100% rename from src/locales/pt_BR/trainer-classes.json rename to public/locales/pt-BR/trainer-classes.json diff --git a/src/locales/pt_BR/trainer-names.json b/public/locales/pt-BR/trainer-names.json similarity index 100% rename from src/locales/pt_BR/trainer-names.json rename to public/locales/pt-BR/trainer-names.json diff --git a/src/locales/pt_BR/trainer-titles.json b/public/locales/pt-BR/trainer-titles.json similarity index 100% rename from src/locales/pt_BR/trainer-titles.json rename to public/locales/pt-BR/trainer-titles.json diff --git a/src/locales/pt_BR/tutorial.json b/public/locales/pt-BR/tutorial.json similarity index 100% rename from src/locales/pt_BR/tutorial.json rename to public/locales/pt-BR/tutorial.json diff --git a/src/locales/pt_BR/voucher.json b/public/locales/pt-BR/voucher.json similarity index 100% rename from src/locales/pt_BR/voucher.json rename to public/locales/pt-BR/voucher.json diff --git a/src/locales/pt_BR/weather.json b/public/locales/pt-BR/weather.json similarity index 100% rename from src/locales/pt_BR/weather.json rename to public/locales/pt-BR/weather.json diff --git a/src/locales/zh_CN/ability-trigger.json b/public/locales/zh-CN/ability-trigger.json similarity index 100% rename from src/locales/zh_CN/ability-trigger.json rename to public/locales/zh-CN/ability-trigger.json diff --git a/src/locales/zh_CN/ability.json b/public/locales/zh-CN/ability.json similarity index 100% rename from src/locales/zh_CN/ability.json rename to public/locales/zh-CN/ability.json diff --git a/src/locales/zh_CN/achv.json b/public/locales/zh-CN/achv.json similarity index 100% rename from src/locales/zh_CN/achv.json rename to public/locales/zh-CN/achv.json diff --git a/src/locales/zh_CN/arena-flyout.json b/public/locales/zh-CN/arena-flyout.json similarity index 100% rename from src/locales/zh_CN/arena-flyout.json rename to public/locales/zh-CN/arena-flyout.json diff --git a/src/locales/zh_CN/arena-tag.json b/public/locales/zh-CN/arena-tag.json similarity index 100% rename from src/locales/zh_CN/arena-tag.json rename to public/locales/zh-CN/arena-tag.json diff --git a/src/locales/zh_CN/battle-info.json b/public/locales/zh-CN/battle-info.json similarity index 100% rename from src/locales/zh_CN/battle-info.json rename to public/locales/zh-CN/battle-info.json diff --git a/src/locales/zh_CN/battle-message-ui-handler.json b/public/locales/zh-CN/battle-message-ui-handler.json similarity index 100% rename from src/locales/zh_CN/battle-message-ui-handler.json rename to public/locales/zh-CN/battle-message-ui-handler.json diff --git a/src/locales/zh_CN/battle-scene.json b/public/locales/zh-CN/battle-scene.json similarity index 100% rename from src/locales/zh_CN/battle-scene.json rename to public/locales/zh-CN/battle-scene.json diff --git a/src/locales/zh_CN/battle.json b/public/locales/zh-CN/battle.json similarity index 100% rename from src/locales/zh_CN/battle.json rename to public/locales/zh-CN/battle.json diff --git a/src/locales/zh_CN/battler-tags.json b/public/locales/zh-CN/battler-tags.json similarity index 100% rename from src/locales/zh_CN/battler-tags.json rename to public/locales/zh-CN/battler-tags.json diff --git a/src/locales/zh_CN/berry.json b/public/locales/zh-CN/berry.json similarity index 100% rename from src/locales/zh_CN/berry.json rename to public/locales/zh-CN/berry.json diff --git a/src/locales/zh_CN/bgm-name.json b/public/locales/zh-CN/bgm-name.json similarity index 100% rename from src/locales/zh_CN/bgm-name.json rename to public/locales/zh-CN/bgm-name.json diff --git a/src/locales/zh_CN/biome.json b/public/locales/zh-CN/biome.json similarity index 100% rename from src/locales/zh_CN/biome.json rename to public/locales/zh-CN/biome.json diff --git a/src/locales/zh_CN/challenges.json b/public/locales/zh-CN/challenges.json similarity index 100% rename from src/locales/zh_CN/challenges.json rename to public/locales/zh-CN/challenges.json diff --git a/src/locales/zh_CN/command-ui-handler.json b/public/locales/zh-CN/command-ui-handler.json similarity index 100% rename from src/locales/zh_CN/command-ui-handler.json rename to public/locales/zh-CN/command-ui-handler.json diff --git a/src/locales/zh_CN/common.json b/public/locales/zh-CN/common.json similarity index 100% rename from src/locales/zh_CN/common.json rename to public/locales/zh-CN/common.json diff --git a/src/locales/zh_CN/dialogue-double-battle.json b/public/locales/zh-CN/dialogue-double-battle.json similarity index 100% rename from src/locales/zh_CN/dialogue-double-battle.json rename to public/locales/zh-CN/dialogue-double-battle.json diff --git a/src/locales/zh_CN/dialogue-final-boss.json b/public/locales/zh-CN/dialogue-final-boss.json similarity index 100% rename from src/locales/zh_CN/dialogue-final-boss.json rename to public/locales/zh-CN/dialogue-final-boss.json diff --git a/src/locales/zh_CN/dialogue-misc.json b/public/locales/zh-CN/dialogue-misc.json similarity index 100% rename from src/locales/zh_CN/dialogue-misc.json rename to public/locales/zh-CN/dialogue-misc.json diff --git a/src/locales/zh_CN/dialogue.json b/public/locales/zh-CN/dialogue.json similarity index 100% rename from src/locales/zh_CN/dialogue.json rename to public/locales/zh-CN/dialogue.json diff --git a/src/locales/zh_CN/egg.json b/public/locales/zh-CN/egg.json similarity index 100% rename from src/locales/zh_CN/egg.json rename to public/locales/zh-CN/egg.json diff --git a/src/locales/zh_CN/fight-ui-handler.json b/public/locales/zh-CN/fight-ui-handler.json similarity index 100% rename from src/locales/zh_CN/fight-ui-handler.json rename to public/locales/zh-CN/fight-ui-handler.json diff --git a/src/locales/zh_CN/filter-bar.json b/public/locales/zh-CN/filter-bar.json similarity index 100% rename from src/locales/zh_CN/filter-bar.json rename to public/locales/zh-CN/filter-bar.json diff --git a/src/locales/zh_CN/game-mode.json b/public/locales/zh-CN/game-mode.json similarity index 100% rename from src/locales/zh_CN/game-mode.json rename to public/locales/zh-CN/game-mode.json diff --git a/src/locales/zh_CN/game-stats-ui-handler.json b/public/locales/zh-CN/game-stats-ui-handler.json similarity index 100% rename from src/locales/zh_CN/game-stats-ui-handler.json rename to public/locales/zh-CN/game-stats-ui-handler.json diff --git a/src/locales/zh_CN/growth.json b/public/locales/zh-CN/growth.json similarity index 100% rename from src/locales/zh_CN/growth.json rename to public/locales/zh-CN/growth.json diff --git a/src/locales/zh_CN/menu-ui-handler.json b/public/locales/zh-CN/menu-ui-handler.json similarity index 100% rename from src/locales/zh_CN/menu-ui-handler.json rename to public/locales/zh-CN/menu-ui-handler.json diff --git a/src/locales/zh_CN/menu.json b/public/locales/zh-CN/menu.json similarity index 100% rename from src/locales/zh_CN/menu.json rename to public/locales/zh-CN/menu.json diff --git a/src/locales/zh_CN/modifier-select-ui-handler.json b/public/locales/zh-CN/modifier-select-ui-handler.json similarity index 100% rename from src/locales/zh_CN/modifier-select-ui-handler.json rename to public/locales/zh-CN/modifier-select-ui-handler.json diff --git a/src/locales/zh_CN/modifier-type.json b/public/locales/zh-CN/modifier-type.json similarity index 100% rename from src/locales/zh_CN/modifier-type.json rename to public/locales/zh-CN/modifier-type.json diff --git a/src/locales/zh_CN/modifier.json b/public/locales/zh-CN/modifier.json similarity index 100% rename from src/locales/zh_CN/modifier.json rename to public/locales/zh-CN/modifier.json diff --git a/src/locales/zh_CN/move-trigger.json b/public/locales/zh-CN/move-trigger.json similarity index 100% rename from src/locales/zh_CN/move-trigger.json rename to public/locales/zh-CN/move-trigger.json diff --git a/src/locales/zh_CN/move.json b/public/locales/zh-CN/move.json similarity index 100% rename from src/locales/zh_CN/move.json rename to public/locales/zh-CN/move.json diff --git a/src/locales/zh_CN/mystery-encounter-messages.json b/public/locales/zh-CN/mystery-encounter-messages.json similarity index 100% rename from src/locales/zh_CN/mystery-encounter-messages.json rename to public/locales/zh-CN/mystery-encounter-messages.json diff --git a/src/locales/zh_CN/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/zh-CN/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/zh-CN/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/zh-CN/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/zh-CN/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/zh-CN/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/zh-CN/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/berries-abound-dialogue.json b/public/locales/zh-CN/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/berries-abound-dialogue.json rename to public/locales/zh-CN/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/zh-CN/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/zh-CN/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/clowning-around-dialogue.json b/public/locales/zh-CN/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/clowning-around-dialogue.json rename to public/locales/zh-CN/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/zh-CN/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/zh-CN/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/dark-deal-dialogue.json b/public/locales/zh-CN/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/dark-deal-dialogue.json rename to public/locales/zh-CN/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/delibirdy-dialogue.json b/public/locales/zh-CN/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/delibirdy-dialogue.json rename to public/locales/zh-CN/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/department-store-sale-dialogue.json b/public/locales/zh-CN/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/zh-CN/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/field-trip-dialogue.json b/public/locales/zh-CN/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/field-trip-dialogue.json rename to public/locales/zh-CN/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/zh-CN/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/zh-CN/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/zh-CN/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/zh-CN/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/fun-and-games-dialogue.json b/public/locales/zh-CN/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/zh-CN/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/global-trade-system-dialogue.json b/public/locales/zh-CN/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/zh-CN/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/zh-CN/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/zh-CN/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/zh-CN/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/zh-CN/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/zh-CN/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/zh-CN/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/part-timer-dialogue.json b/public/locales/zh-CN/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/part-timer-dialogue.json rename to public/locales/zh-CN/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/safari-zone-dialogue.json b/public/locales/zh-CN/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/safari-zone-dialogue.json rename to public/locales/zh-CN/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/zh-CN/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/zh-CN/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/zh-CN/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/zh-CN/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/zh-CN/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/zh-CN/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/zh-CN/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 97% rename from src/locales/zh_CN/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/zh-CN/mystery-encounters/the-expert-pokemon-breeder-dialogue.json index 057bc6847c1..3c4e9c10be0 100644 --- a/src/locales/zh_CN/mystery-encounters/the-expert-pokemon-breeder-dialogue.json +++ b/public/locales/zh-CN/mystery-encounters/the-expert-pokemon-breeder-dialogue.json @@ -1,33 +1,33 @@ -{ - "intro": "这是一位携带大量神奇宝贝蛋的训练师!", - "intro_dialogue": "嘿,训练师!$看起来你的一些\n宝可梦感觉有点沮丧。$为什么不和我打一场\n来让它们兴奋一下呢?", - "title": "专业饲养员", - "description": "你被发起了一场\n@[TOOLTIP_TITLE]{只能使用一只宝可梦}的挑战。\n这可能很难,但它肯定会\n加深你与所选宝可梦之间的牵绊!\n如果你赢了,饲养员还会\n给你一些@[TOOLTIP_TITLE]{蛋}!", - "query": "Who will you battle with?", - "cleffa_1_nickname": "超级王牌", - "cleffa_2_nickname": "皮氪稀", - "cleffa_3_nickname": "帝王{{speciesName}}", - "option": { - "1": { - "label": "{{pokemon1Name}}", - "tooltip_base": "(-)艰难的战斗\n(+)获得与{{pokemon1Name}}的友谊" - }, - "2": { - "label": "{{pokemon2Name}}", - "tooltip_base": "(-)艰难的战斗\n(+)获得与{{pokemon2Name}}的友谊" - }, - "3": { - "label": "{{pokemon3Name}}", - "tooltip_base": "(-)艰难的战斗\n(+)获得与{{pokemon3Name}}的友谊" - }, - "selected": "我们开始吧!" - }, - "outro": "看看你的 {{chosenPokemon}}现在有多开心!$给,这些你也拿着。", - "outro_failed": "太可惜了……$看起来要让你的宝可梦信任你\n你的路还长着呢。", - - "gained_eggs": "@s{item_fanfare}你获得了{{numEggs}}!", - "eggs_tooltip": "\n(+)获得{{eggs}}", - "numEggs_one": "{{count}}个{{rarity}}蛋", - "numEggs_other": "{{count}}个{{rarity}}蛋" - -} +{ + "intro": "这是一位携带大量神奇宝贝蛋的训练师!", + "intro_dialogue": "嘿,训练师!$看起来你的一些\n宝可梦感觉有点沮丧。$为什么不和我打一场\n来让它们兴奋一下呢?", + "title": "专业饲养员", + "description": "你被发起了一场\n@[TOOLTIP_TITLE]{只能使用一只宝可梦}的挑战。\n这可能很难,但它肯定会\n加深你与所选宝可梦之间的牵绊!\n如果你赢了,饲养员还会\n给你一些@[TOOLTIP_TITLE]{蛋}!", + "query": "Who will you battle with?", + "cleffa_1_nickname": "超级王牌", + "cleffa_2_nickname": "皮氪稀", + "cleffa_3_nickname": "帝王{{speciesName}}", + "option": { + "1": { + "label": "{{pokemon1Name}}", + "tooltip_base": "(-)艰难的战斗\n(+)获得与{{pokemon1Name}}的友谊" + }, + "2": { + "label": "{{pokemon2Name}}", + "tooltip_base": "(-)艰难的战斗\n(+)获得与{{pokemon2Name}}的友谊" + }, + "3": { + "label": "{{pokemon3Name}}", + "tooltip_base": "(-)艰难的战斗\n(+)获得与{{pokemon3Name}}的友谊" + }, + "selected": "我们开始吧!" + }, + "outro": "看看你的 {{chosenPokemon}}现在有多开心!$给,这些你也拿着。", + "outro_failed": "太可惜了……$看起来要让你的宝可梦信任你\n你的路还长着呢。", + + "gained_eggs": "@s{item_fanfare}你获得了{{numEggs}}!", + "eggs_tooltip": "\n(+)获得{{eggs}}", + "numEggs_one": "{{count}}个{{rarity}}蛋", + "numEggs_other": "{{count}}个{{rarity}}蛋" + +} diff --git a/src/locales/zh_CN/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/zh-CN/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/zh-CN/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/zh-CN/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/zh-CN/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/zh-CN/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/zh-CN/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/training-session-dialogue.json b/public/locales/zh-CN/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/training-session-dialogue.json rename to public/locales/zh-CN/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/zh-CN/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/zh-CN/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/zh-CN/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/zh-CN/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/zh_CN/mystery-encounters/weird-dream-dialogue.json b/public/locales/zh-CN/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/zh_CN/mystery-encounters/weird-dream-dialogue.json rename to public/locales/zh-CN/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/zh_CN/nature.json b/public/locales/zh-CN/nature.json similarity index 100% rename from src/locales/zh_CN/nature.json rename to public/locales/zh-CN/nature.json diff --git a/src/locales/zh_CN/party-ui-handler.json b/public/locales/zh-CN/party-ui-handler.json similarity index 100% rename from src/locales/zh_CN/party-ui-handler.json rename to public/locales/zh-CN/party-ui-handler.json diff --git a/src/locales/zh_CN/pokeball.json b/public/locales/zh-CN/pokeball.json similarity index 100% rename from src/locales/zh_CN/pokeball.json rename to public/locales/zh-CN/pokeball.json diff --git a/src/locales/zh_CN/pokemon-form-battle.json b/public/locales/zh-CN/pokemon-form-battle.json similarity index 100% rename from src/locales/zh_CN/pokemon-form-battle.json rename to public/locales/zh-CN/pokemon-form-battle.json diff --git a/src/locales/zh_CN/pokemon-form.json b/public/locales/zh-CN/pokemon-form.json similarity index 100% rename from src/locales/zh_CN/pokemon-form.json rename to public/locales/zh-CN/pokemon-form.json diff --git a/src/locales/zh_CN/pokemon-info-container.json b/public/locales/zh-CN/pokemon-info-container.json similarity index 100% rename from src/locales/zh_CN/pokemon-info-container.json rename to public/locales/zh-CN/pokemon-info-container.json diff --git a/src/locales/zh_CN/pokemon-info.json b/public/locales/zh-CN/pokemon-info.json similarity index 100% rename from src/locales/zh_CN/pokemon-info.json rename to public/locales/zh-CN/pokemon-info.json diff --git a/src/locales/zh_CN/pokemon-summary.json b/public/locales/zh-CN/pokemon-summary.json similarity index 100% rename from src/locales/zh_CN/pokemon-summary.json rename to public/locales/zh-CN/pokemon-summary.json diff --git a/src/locales/zh_CN/pokemon.json b/public/locales/zh-CN/pokemon.json similarity index 100% rename from src/locales/zh_CN/pokemon.json rename to public/locales/zh-CN/pokemon.json diff --git a/src/locales/zh_CN/run-history.json b/public/locales/zh-CN/run-history.json similarity index 100% rename from src/locales/zh_CN/run-history.json rename to public/locales/zh-CN/run-history.json diff --git a/src/locales/zh_CN/save-slot-select-ui-handler.json b/public/locales/zh-CN/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/zh_CN/save-slot-select-ui-handler.json rename to public/locales/zh-CN/save-slot-select-ui-handler.json diff --git a/src/locales/zh_CN/settings.json b/public/locales/zh-CN/settings.json similarity index 100% rename from src/locales/zh_CN/settings.json rename to public/locales/zh-CN/settings.json diff --git a/src/locales/zh_CN/splash-messages.json b/public/locales/zh-CN/splash-messages.json similarity index 100% rename from src/locales/zh_CN/splash-messages.json rename to public/locales/zh-CN/splash-messages.json diff --git a/src/locales/zh_CN/starter-select-ui-handler.json b/public/locales/zh-CN/starter-select-ui-handler.json similarity index 100% rename from src/locales/zh_CN/starter-select-ui-handler.json rename to public/locales/zh-CN/starter-select-ui-handler.json diff --git a/src/locales/zh_CN/status-effect.json b/public/locales/zh-CN/status-effect.json similarity index 100% rename from src/locales/zh_CN/status-effect.json rename to public/locales/zh-CN/status-effect.json diff --git a/src/locales/zh_CN/terrain.json b/public/locales/zh-CN/terrain.json similarity index 100% rename from src/locales/zh_CN/terrain.json rename to public/locales/zh-CN/terrain.json diff --git a/src/locales/zh_CN/trainer-classes.json b/public/locales/zh-CN/trainer-classes.json similarity index 100% rename from src/locales/zh_CN/trainer-classes.json rename to public/locales/zh-CN/trainer-classes.json diff --git a/src/locales/zh_CN/trainer-names.json b/public/locales/zh-CN/trainer-names.json similarity index 100% rename from src/locales/zh_CN/trainer-names.json rename to public/locales/zh-CN/trainer-names.json diff --git a/src/locales/zh_CN/trainer-titles.json b/public/locales/zh-CN/trainer-titles.json similarity index 100% rename from src/locales/zh_CN/trainer-titles.json rename to public/locales/zh-CN/trainer-titles.json diff --git a/src/locales/zh_CN/tutorial.json b/public/locales/zh-CN/tutorial.json similarity index 100% rename from src/locales/zh_CN/tutorial.json rename to public/locales/zh-CN/tutorial.json diff --git a/src/locales/zh_CN/voucher.json b/public/locales/zh-CN/voucher.json similarity index 100% rename from src/locales/zh_CN/voucher.json rename to public/locales/zh-CN/voucher.json diff --git a/src/locales/zh_CN/weather.json b/public/locales/zh-CN/weather.json similarity index 100% rename from src/locales/zh_CN/weather.json rename to public/locales/zh-CN/weather.json diff --git a/src/locales/zh_TW/ability-trigger.json b/public/locales/zh-TW/ability-trigger.json similarity index 100% rename from src/locales/zh_TW/ability-trigger.json rename to public/locales/zh-TW/ability-trigger.json diff --git a/src/locales/zh_TW/ability.json b/public/locales/zh-TW/ability.json similarity index 100% rename from src/locales/zh_TW/ability.json rename to public/locales/zh-TW/ability.json diff --git a/src/locales/zh_TW/achv.json b/public/locales/zh-TW/achv.json similarity index 100% rename from src/locales/zh_TW/achv.json rename to public/locales/zh-TW/achv.json diff --git a/src/locales/zh_TW/arena-flyout.json b/public/locales/zh-TW/arena-flyout.json similarity index 100% rename from src/locales/zh_TW/arena-flyout.json rename to public/locales/zh-TW/arena-flyout.json diff --git a/src/locales/zh_TW/arena-tag.json b/public/locales/zh-TW/arena-tag.json similarity index 100% rename from src/locales/zh_TW/arena-tag.json rename to public/locales/zh-TW/arena-tag.json diff --git a/src/locales/zh_TW/battle-info.json b/public/locales/zh-TW/battle-info.json similarity index 100% rename from src/locales/zh_TW/battle-info.json rename to public/locales/zh-TW/battle-info.json diff --git a/src/locales/zh_TW/battle-message-ui-handler.json b/public/locales/zh-TW/battle-message-ui-handler.json similarity index 100% rename from src/locales/zh_TW/battle-message-ui-handler.json rename to public/locales/zh-TW/battle-message-ui-handler.json diff --git a/src/locales/zh_TW/battle-scene.json b/public/locales/zh-TW/battle-scene.json similarity index 100% rename from src/locales/zh_TW/battle-scene.json rename to public/locales/zh-TW/battle-scene.json diff --git a/src/locales/zh_TW/battle.json b/public/locales/zh-TW/battle.json similarity index 100% rename from src/locales/zh_TW/battle.json rename to public/locales/zh-TW/battle.json diff --git a/src/locales/zh_TW/battler-tags.json b/public/locales/zh-TW/battler-tags.json similarity index 100% rename from src/locales/zh_TW/battler-tags.json rename to public/locales/zh-TW/battler-tags.json diff --git a/src/locales/zh_TW/berry.json b/public/locales/zh-TW/berry.json similarity index 100% rename from src/locales/zh_TW/berry.json rename to public/locales/zh-TW/berry.json diff --git a/src/locales/zh_TW/bgm-name.json b/public/locales/zh-TW/bgm-name.json similarity index 100% rename from src/locales/zh_TW/bgm-name.json rename to public/locales/zh-TW/bgm-name.json diff --git a/src/locales/zh_TW/biome.json b/public/locales/zh-TW/biome.json similarity index 100% rename from src/locales/zh_TW/biome.json rename to public/locales/zh-TW/biome.json diff --git a/src/locales/zh_TW/challenges.json b/public/locales/zh-TW/challenges.json similarity index 100% rename from src/locales/zh_TW/challenges.json rename to public/locales/zh-TW/challenges.json diff --git a/src/locales/zh_TW/command-ui-handler.json b/public/locales/zh-TW/command-ui-handler.json similarity index 100% rename from src/locales/zh_TW/command-ui-handler.json rename to public/locales/zh-TW/command-ui-handler.json diff --git a/src/locales/zh_TW/common.json b/public/locales/zh-TW/common.json similarity index 100% rename from src/locales/zh_TW/common.json rename to public/locales/zh-TW/common.json diff --git a/src/locales/zh_TW/dialogue-double-battle.json b/public/locales/zh-TW/dialogue-double-battle.json similarity index 100% rename from src/locales/zh_TW/dialogue-double-battle.json rename to public/locales/zh-TW/dialogue-double-battle.json diff --git a/src/locales/zh_TW/dialogue-final-boss.json b/public/locales/zh-TW/dialogue-final-boss.json similarity index 100% rename from src/locales/zh_TW/dialogue-final-boss.json rename to public/locales/zh-TW/dialogue-final-boss.json diff --git a/src/locales/zh_TW/dialogue-misc.json b/public/locales/zh-TW/dialogue-misc.json similarity index 100% rename from src/locales/zh_TW/dialogue-misc.json rename to public/locales/zh-TW/dialogue-misc.json diff --git a/src/locales/zh_TW/dialogue.json b/public/locales/zh-TW/dialogue.json similarity index 100% rename from src/locales/zh_TW/dialogue.json rename to public/locales/zh-TW/dialogue.json diff --git a/src/locales/zh_TW/egg.json b/public/locales/zh-TW/egg.json similarity index 100% rename from src/locales/zh_TW/egg.json rename to public/locales/zh-TW/egg.json diff --git a/src/locales/zh_TW/fight-ui-handler.json b/public/locales/zh-TW/fight-ui-handler.json similarity index 100% rename from src/locales/zh_TW/fight-ui-handler.json rename to public/locales/zh-TW/fight-ui-handler.json diff --git a/src/locales/zh_TW/filter-bar.json b/public/locales/zh-TW/filter-bar.json similarity index 100% rename from src/locales/zh_TW/filter-bar.json rename to public/locales/zh-TW/filter-bar.json diff --git a/src/locales/zh_TW/game-mode.json b/public/locales/zh-TW/game-mode.json similarity index 100% rename from src/locales/zh_TW/game-mode.json rename to public/locales/zh-TW/game-mode.json diff --git a/src/locales/zh_TW/game-stats-ui-handler.json b/public/locales/zh-TW/game-stats-ui-handler.json similarity index 100% rename from src/locales/zh_TW/game-stats-ui-handler.json rename to public/locales/zh-TW/game-stats-ui-handler.json diff --git a/src/locales/zh_TW/growth.json b/public/locales/zh-TW/growth.json similarity index 100% rename from src/locales/zh_TW/growth.json rename to public/locales/zh-TW/growth.json diff --git a/src/locales/zh_TW/menu-ui-handler.json b/public/locales/zh-TW/menu-ui-handler.json similarity index 100% rename from src/locales/zh_TW/menu-ui-handler.json rename to public/locales/zh-TW/menu-ui-handler.json diff --git a/src/locales/zh_TW/menu.json b/public/locales/zh-TW/menu.json similarity index 100% rename from src/locales/zh_TW/menu.json rename to public/locales/zh-TW/menu.json diff --git a/src/locales/zh_TW/modifier-select-ui-handler.json b/public/locales/zh-TW/modifier-select-ui-handler.json similarity index 100% rename from src/locales/zh_TW/modifier-select-ui-handler.json rename to public/locales/zh-TW/modifier-select-ui-handler.json diff --git a/src/locales/zh_TW/modifier-type.json b/public/locales/zh-TW/modifier-type.json similarity index 100% rename from src/locales/zh_TW/modifier-type.json rename to public/locales/zh-TW/modifier-type.json diff --git a/src/locales/zh_TW/modifier.json b/public/locales/zh-TW/modifier.json similarity index 100% rename from src/locales/zh_TW/modifier.json rename to public/locales/zh-TW/modifier.json diff --git a/src/locales/zh_TW/move-trigger.json b/public/locales/zh-TW/move-trigger.json similarity index 100% rename from src/locales/zh_TW/move-trigger.json rename to public/locales/zh-TW/move-trigger.json diff --git a/src/locales/zh_TW/move.json b/public/locales/zh-TW/move.json similarity index 100% rename from src/locales/zh_TW/move.json rename to public/locales/zh-TW/move.json diff --git a/src/locales/zh_TW/mystery-encounter-messages.json b/public/locales/zh-TW/mystery-encounter-messages.json similarity index 100% rename from src/locales/zh_TW/mystery-encounter-messages.json rename to public/locales/zh-TW/mystery-encounter-messages.json diff --git a/src/locales/zh_TW/mystery-encounters/a-trainers-test-dialogue.json b/public/locales/zh-TW/mystery-encounters/a-trainers-test-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/a-trainers-test-dialogue.json rename to public/locales/zh-TW/mystery-encounters/a-trainers-test-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/absolute-avarice-dialogue.json b/public/locales/zh-TW/mystery-encounters/absolute-avarice-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/absolute-avarice-dialogue.json rename to public/locales/zh-TW/mystery-encounters/absolute-avarice-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/an-offer-you-cant-refuse-dialogue.json b/public/locales/zh-TW/mystery-encounters/an-offer-you-cant-refuse-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/an-offer-you-cant-refuse-dialogue.json rename to public/locales/zh-TW/mystery-encounters/an-offer-you-cant-refuse-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/berries-abound-dialogue.json b/public/locales/zh-TW/mystery-encounters/berries-abound-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/berries-abound-dialogue.json rename to public/locales/zh-TW/mystery-encounters/berries-abound-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/bug-type-superfan-dialogue.json b/public/locales/zh-TW/mystery-encounters/bug-type-superfan-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/bug-type-superfan-dialogue.json rename to public/locales/zh-TW/mystery-encounters/bug-type-superfan-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/clowning-around-dialogue.json b/public/locales/zh-TW/mystery-encounters/clowning-around-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/clowning-around-dialogue.json rename to public/locales/zh-TW/mystery-encounters/clowning-around-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/dancing-lessons-dialogue.json b/public/locales/zh-TW/mystery-encounters/dancing-lessons-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/dancing-lessons-dialogue.json rename to public/locales/zh-TW/mystery-encounters/dancing-lessons-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/dark-deal-dialogue.json b/public/locales/zh-TW/mystery-encounters/dark-deal-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/dark-deal-dialogue.json rename to public/locales/zh-TW/mystery-encounters/dark-deal-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/delibirdy-dialogue.json b/public/locales/zh-TW/mystery-encounters/delibirdy-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/delibirdy-dialogue.json rename to public/locales/zh-TW/mystery-encounters/delibirdy-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/department-store-sale-dialogue.json b/public/locales/zh-TW/mystery-encounters/department-store-sale-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/department-store-sale-dialogue.json rename to public/locales/zh-TW/mystery-encounters/department-store-sale-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/field-trip-dialogue.json b/public/locales/zh-TW/mystery-encounters/field-trip-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/field-trip-dialogue.json rename to public/locales/zh-TW/mystery-encounters/field-trip-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/fiery-fallout-dialogue.json b/public/locales/zh-TW/mystery-encounters/fiery-fallout-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/fiery-fallout-dialogue.json rename to public/locales/zh-TW/mystery-encounters/fiery-fallout-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/fight-or-flight-dialogue.json b/public/locales/zh-TW/mystery-encounters/fight-or-flight-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/fight-or-flight-dialogue.json rename to public/locales/zh-TW/mystery-encounters/fight-or-flight-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/fun-and-games-dialogue.json b/public/locales/zh-TW/mystery-encounters/fun-and-games-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/fun-and-games-dialogue.json rename to public/locales/zh-TW/mystery-encounters/fun-and-games-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/global-trade-system-dialogue.json b/public/locales/zh-TW/mystery-encounters/global-trade-system-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/global-trade-system-dialogue.json rename to public/locales/zh-TW/mystery-encounters/global-trade-system-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/lost-at-sea-dialogue.json b/public/locales/zh-TW/mystery-encounters/lost-at-sea-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/lost-at-sea-dialogue.json rename to public/locales/zh-TW/mystery-encounters/lost-at-sea-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/mysterious-challengers-dialogue.json b/public/locales/zh-TW/mystery-encounters/mysterious-challengers-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/mysterious-challengers-dialogue.json rename to public/locales/zh-TW/mystery-encounters/mysterious-challengers-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/mysterious-chest-dialogue.json b/public/locales/zh-TW/mystery-encounters/mysterious-chest-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/mysterious-chest-dialogue.json rename to public/locales/zh-TW/mystery-encounters/mysterious-chest-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/part-timer-dialogue.json b/public/locales/zh-TW/mystery-encounters/part-timer-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/part-timer-dialogue.json rename to public/locales/zh-TW/mystery-encounters/part-timer-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/safari-zone-dialogue.json b/public/locales/zh-TW/mystery-encounters/safari-zone-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/safari-zone-dialogue.json rename to public/locales/zh-TW/mystery-encounters/safari-zone-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/shady-vitamin-dealer-dialogue.json b/public/locales/zh-TW/mystery-encounters/shady-vitamin-dealer-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/shady-vitamin-dealer-dialogue.json rename to public/locales/zh-TW/mystery-encounters/shady-vitamin-dealer-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/slumbering-snorlax-dialogue.json b/public/locales/zh-TW/mystery-encounters/slumbering-snorlax-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/slumbering-snorlax-dialogue.json rename to public/locales/zh-TW/mystery-encounters/slumbering-snorlax-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/teleporting-hijinks-dialogue.json b/public/locales/zh-TW/mystery-encounters/teleporting-hijinks-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/teleporting-hijinks-dialogue.json rename to public/locales/zh-TW/mystery-encounters/teleporting-hijinks-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/the-expert-pokemon-breeder-dialogue.json b/public/locales/zh-TW/mystery-encounters/the-expert-pokemon-breeder-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/the-expert-pokemon-breeder-dialogue.json rename to public/locales/zh-TW/mystery-encounters/the-expert-pokemon-breeder-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/the-pokemon-salesman-dialogue.json b/public/locales/zh-TW/mystery-encounters/the-pokemon-salesman-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/the-pokemon-salesman-dialogue.json rename to public/locales/zh-TW/mystery-encounters/the-pokemon-salesman-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/the-strong-stuff-dialogue.json b/public/locales/zh-TW/mystery-encounters/the-strong-stuff-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/the-strong-stuff-dialogue.json rename to public/locales/zh-TW/mystery-encounters/the-strong-stuff-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/the-winstrate-challenge-dialogue.json b/public/locales/zh-TW/mystery-encounters/the-winstrate-challenge-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/the-winstrate-challenge-dialogue.json rename to public/locales/zh-TW/mystery-encounters/the-winstrate-challenge-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/training-session-dialogue.json b/public/locales/zh-TW/mystery-encounters/training-session-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/training-session-dialogue.json rename to public/locales/zh-TW/mystery-encounters/training-session-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/trash-to-treasure-dialogue.json b/public/locales/zh-TW/mystery-encounters/trash-to-treasure-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/trash-to-treasure-dialogue.json rename to public/locales/zh-TW/mystery-encounters/trash-to-treasure-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/uncommon-breed-dialogue.json b/public/locales/zh-TW/mystery-encounters/uncommon-breed-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/uncommon-breed-dialogue.json rename to public/locales/zh-TW/mystery-encounters/uncommon-breed-dialogue.json diff --git a/src/locales/zh_TW/mystery-encounters/weird-dream-dialogue.json b/public/locales/zh-TW/mystery-encounters/weird-dream-dialogue.json similarity index 100% rename from src/locales/zh_TW/mystery-encounters/weird-dream-dialogue.json rename to public/locales/zh-TW/mystery-encounters/weird-dream-dialogue.json diff --git a/src/locales/zh_TW/nature.json b/public/locales/zh-TW/nature.json similarity index 100% rename from src/locales/zh_TW/nature.json rename to public/locales/zh-TW/nature.json diff --git a/src/locales/zh_TW/party-ui-handler.json b/public/locales/zh-TW/party-ui-handler.json similarity index 100% rename from src/locales/zh_TW/party-ui-handler.json rename to public/locales/zh-TW/party-ui-handler.json diff --git a/src/locales/zh_TW/pokeball.json b/public/locales/zh-TW/pokeball.json similarity index 100% rename from src/locales/zh_TW/pokeball.json rename to public/locales/zh-TW/pokeball.json diff --git a/src/locales/zh_TW/pokemon-form-battle.json b/public/locales/zh-TW/pokemon-form-battle.json similarity index 100% rename from src/locales/zh_TW/pokemon-form-battle.json rename to public/locales/zh-TW/pokemon-form-battle.json diff --git a/src/locales/zh_TW/pokemon-form.json b/public/locales/zh-TW/pokemon-form.json similarity index 100% rename from src/locales/zh_TW/pokemon-form.json rename to public/locales/zh-TW/pokemon-form.json diff --git a/src/locales/zh_TW/pokemon-info-container.json b/public/locales/zh-TW/pokemon-info-container.json similarity index 100% rename from src/locales/zh_TW/pokemon-info-container.json rename to public/locales/zh-TW/pokemon-info-container.json diff --git a/src/locales/zh_TW/pokemon-info.json b/public/locales/zh-TW/pokemon-info.json similarity index 100% rename from src/locales/zh_TW/pokemon-info.json rename to public/locales/zh-TW/pokemon-info.json diff --git a/src/locales/zh_TW/pokemon-summary.json b/public/locales/zh-TW/pokemon-summary.json similarity index 100% rename from src/locales/zh_TW/pokemon-summary.json rename to public/locales/zh-TW/pokemon-summary.json diff --git a/src/locales/zh_TW/pokemon.json b/public/locales/zh-TW/pokemon.json similarity index 100% rename from src/locales/zh_TW/pokemon.json rename to public/locales/zh-TW/pokemon.json diff --git a/src/locales/zh_TW/run-history.json b/public/locales/zh-TW/run-history.json similarity index 100% rename from src/locales/zh_TW/run-history.json rename to public/locales/zh-TW/run-history.json diff --git a/src/locales/zh_TW/save-slot-select-ui-handler.json b/public/locales/zh-TW/save-slot-select-ui-handler.json similarity index 100% rename from src/locales/zh_TW/save-slot-select-ui-handler.json rename to public/locales/zh-TW/save-slot-select-ui-handler.json diff --git a/src/locales/zh_TW/settings.json b/public/locales/zh-TW/settings.json similarity index 100% rename from src/locales/zh_TW/settings.json rename to public/locales/zh-TW/settings.json diff --git a/src/locales/zh_TW/splash-messages.json b/public/locales/zh-TW/splash-messages.json similarity index 100% rename from src/locales/zh_TW/splash-messages.json rename to public/locales/zh-TW/splash-messages.json diff --git a/src/locales/zh_TW/starter-select-ui-handler.json b/public/locales/zh-TW/starter-select-ui-handler.json similarity index 100% rename from src/locales/zh_TW/starter-select-ui-handler.json rename to public/locales/zh-TW/starter-select-ui-handler.json diff --git a/src/locales/zh_TW/status-effect.json b/public/locales/zh-TW/status-effect.json similarity index 100% rename from src/locales/zh_TW/status-effect.json rename to public/locales/zh-TW/status-effect.json diff --git a/src/locales/zh_TW/terrain.json b/public/locales/zh-TW/terrain.json similarity index 100% rename from src/locales/zh_TW/terrain.json rename to public/locales/zh-TW/terrain.json diff --git a/src/locales/zh_TW/trainer-classes.json b/public/locales/zh-TW/trainer-classes.json similarity index 100% rename from src/locales/zh_TW/trainer-classes.json rename to public/locales/zh-TW/trainer-classes.json diff --git a/src/locales/zh_TW/trainer-names.json b/public/locales/zh-TW/trainer-names.json similarity index 100% rename from src/locales/zh_TW/trainer-names.json rename to public/locales/zh-TW/trainer-names.json diff --git a/src/locales/zh_TW/trainer-titles.json b/public/locales/zh-TW/trainer-titles.json similarity index 100% rename from src/locales/zh_TW/trainer-titles.json rename to public/locales/zh-TW/trainer-titles.json diff --git a/src/locales/zh_TW/tutorial.json b/public/locales/zh-TW/tutorial.json similarity index 100% rename from src/locales/zh_TW/tutorial.json rename to public/locales/zh-TW/tutorial.json diff --git a/src/locales/zh_TW/voucher.json b/public/locales/zh-TW/voucher.json similarity index 100% rename from src/locales/zh_TW/voucher.json rename to public/locales/zh-TW/voucher.json diff --git a/src/locales/zh_TW/weather.json b/public/locales/zh-TW/weather.json similarity index 100% rename from src/locales/zh_TW/weather.json rename to public/locales/zh-TW/weather.json diff --git a/src/@types/i18next.d.ts b/src/@types/i18next.d.ts index 9e8418a8977..3bd71bc6c61 100644 --- a/src/@types/i18next.d.ts +++ b/src/@types/i18next.d.ts @@ -1,18 +1,8 @@ -import { type enConfig } from "#app/locales/en/config"; import { TOptions } from "i18next"; -//TODO: this needs to be type properly in the future // Module declared to make referencing keys in the localization files type-safe. declare module "i18next" { - interface CustomTypeOptions { - defaultNS: "menu", // needed here as well for typedoc - resources: typeof enConfig - } - - interface TFunction { - ( - key: string | string[], - options?: TOptions & Record - ): string; - } + interface TFunction { + (key: string | string[], options?: TOptions & Record): string; } +} diff --git a/src/data/mystery-encounters/encounters/a-trainers-test-encounter.ts b/src/data/mystery-encounters/encounters/a-trainers-test-encounter.ts index 88fdadf8588..7c2d7052ff9 100644 --- a/src/data/mystery-encounters/encounters/a-trainers-test-encounter.ts +++ b/src/data/mystery-encounters/encounters/a-trainers-test-encounter.ts @@ -18,7 +18,7 @@ import { modifierTypes } from "#app/modifier/modifier-type"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:aTrainersTest"; +const namespace = "mysteryEncounters/aTrainersTest"; /** * A Trainer's Test encounter. @@ -32,7 +32,7 @@ export const ATrainersTestEncounter: MysteryEncounter = .withIntroSpriteConfigs([]) // These are set in onInit() .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) .withAutoHideIntroVisuals(false) @@ -76,24 +76,24 @@ export const ATrainersTestEncounter: MysteryEncounter = encounter.dialogue.intro = [ { speaker: `trainerNames:${trainerNameKey}`, - text: `${namespace}.${trainerNameKey}.intro_dialogue` + text: `${namespace}:${trainerNameKey}.intro_dialogue` } ]; encounter.options[0].dialogue!.selected = [ { speaker: `trainerNames:${trainerNameKey}`, - text: `${namespace}.${trainerNameKey}.accept` + text: `${namespace}:${trainerNameKey}.accept` } ]; encounter.options[1].dialogue!.selected = [ { speaker: `trainerNames:${trainerNameKey}`, - text: `${namespace}.${trainerNameKey}.decline` + text: `${namespace}:${trainerNameKey}.decline` } ]; encounter.setDialogueToken("statTrainerName", i18next.t(`trainerNames:${trainerNameKey}`)); - const eggDescription = i18next.t(`${namespace}.title`) + ":\n" + i18next.t(`trainerNames:${trainerNameKey}`); + const eggDescription = i18next.t(`${namespace}:title`) + ":\n" + i18next.t(`trainerNames:${trainerNameKey}`); encounter.misc = { trainerType, trainerNameKey, trainerEggDescription: eggDescription }; // Trainer config @@ -128,14 +128,14 @@ export const ATrainersTestEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withIntroDialogue() .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip` + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip` }, async (scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -151,15 +151,15 @@ export const ATrainersTestEncounter: MysteryEncounter = eggDescriptor: encounter.misc.trainerEggDescription, tier: EggTier.ULTRA }; - encounter.setDialogueToken("eggType", i18next.t(`${namespace}.eggTypes.epic`)); + encounter.setDialogueToken("eggType", i18next.t(`${namespace}:eggTypes.epic`)); setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.SACRED_ASH], guaranteedModifierTiers: [ModifierTier.ROGUE, ModifierTier.ULTRA], fillRemaining: true }, [eggOptions]); return initBattleWithEnemyConfig(scene, config); } ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip` + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip` }, async (scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -173,14 +173,14 @@ export const ATrainersTestEncounter: MysteryEncounter = eggDescriptor: encounter.misc.trainerEggDescription, tier: EggTier.GREAT }; - encounter.setDialogueToken("eggType", i18next.t(`${namespace}.eggTypes.rare`)); + encounter.setDialogueToken("eggType", i18next.t(`${namespace}:eggTypes.rare`)); setEncounterRewards(scene, { fillRemaining: false, rerollMultiplier: -1 }, [eggOptions]); leaveEncounterWithoutBattle(scene); } ) .withOutroDialogue([ { - text: `${namespace}.outro` + text: `${namespace}:outro` } ]) .build(); diff --git a/src/data/mystery-encounters/encounters/absolute-avarice-encounter.ts b/src/data/mystery-encounters/encounters/absolute-avarice-encounter.ts index 432a0b778da..0b32f857d75 100644 --- a/src/data/mystery-encounters/encounters/absolute-avarice-encounter.ts +++ b/src/data/mystery-encounters/encounters/absolute-avarice-encounter.ts @@ -27,7 +27,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import i18next from "i18next"; /** the i18n namespace for this encounter */ -const namespace = "mysteryEncounter:absoluteAvarice"; +const namespace = "mysteryEncounters/absoluteAvarice"; /** * Absolute Avarice encounter. @@ -163,12 +163,12 @@ export const AbsoluteAvariceEncounter: MysteryEncounter = .withAutoHideIntroVisuals(false) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, } ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -219,7 +219,7 @@ export const AbsoluteAvariceEncounter: MysteryEncounter = modifierConfigs: bossModifierConfigs, tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON], mysteryEncounterBattleEffects: (pokemon: Pokemon) => { - queueEncounterMessage(pokemon.scene, `${namespace}.option.1.boss_enraged`); + queueEncounterMessage(pokemon.scene, `${namespace}:option.1.boss_enraged`); pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, statChangesForBattle, 1)); } } @@ -250,11 +250,11 @@ export const AbsoluteAvariceEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }) @@ -274,7 +274,7 @@ export const AbsoluteAvariceEncounter: MysteryEncounter = scene.addModifier(seedModifier, false, false, false, true); } }); - queueEncounterMessage(scene, `${namespace}.option.1.food_stash`); + queueEncounterMessage(scene, `${namespace}:option.1.food_stash`); }; setEncounterRewards(scene, { fillRemaining: true }, undefined, givePartyPokemonReviverSeeds); @@ -294,11 +294,11 @@ export const AbsoluteAvariceEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }) @@ -336,11 +336,11 @@ export const AbsoluteAvariceEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }) diff --git a/src/data/mystery-encounters/encounters/an-offer-you-cant-refuse-encounter.ts b/src/data/mystery-encounters/encounters/an-offer-you-cant-refuse-encounter.ts index 8746c387545..1de83374db2 100644 --- a/src/data/mystery-encounters/encounters/an-offer-you-cant-refuse-encounter.ts +++ b/src/data/mystery-encounters/encounters/an-offer-you-cant-refuse-encounter.ts @@ -15,7 +15,7 @@ import { ModifierRewardPhase } from "#app/phases/modifier-reward-phase"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for this encounter */ -const namespace = "mysteryEncounter:offerYouCantRefuse"; +const namespace = "mysteryEncounters/anOfferYouCantRefuse"; /** * Money offered starts at base value of Relic Gold, increasing linearly up to 3x Relic Gold based on the starter tier of the Pokemon being purchased @@ -56,16 +56,16 @@ export const AnOfferYouCantRefuseEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - text: `${namespace}.intro_dialogue`, - speaker: `${namespace}.speaker`, + text: `${namespace}:intro_dialogue`, + speaker: `${namespace}:speaker`, }, ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; const pokemon = getHighestStatTotalPlayerPokemon(scene, true, true); @@ -104,12 +104,12 @@ export const AnOfferYouCantRefuseEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, - speaker: `${namespace}.speaker`, + text: `${namespace}:option.1.selected`, + speaker: `${namespace}:speaker`, }, ], }) @@ -135,13 +135,13 @@ export const AnOfferYouCantRefuseEncounter: MysteryEncounter = new AbilityRequirement(EXTORTION_ABILITIES)) ) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.tooltip_disabled`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.tooltip_disabled`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected`, }, ], }) @@ -159,12 +159,12 @@ export const AnOfferYouCantRefuseEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.3.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.3.selected`, }, ], }, diff --git a/src/data/mystery-encounters/encounters/berries-abound-encounter.ts b/src/data/mystery-encounters/encounters/berries-abound-encounter.ts index a7f8d62c233..55c66642944 100644 --- a/src/data/mystery-encounters/encounters/berries-abound-encounter.ts +++ b/src/data/mystery-encounters/encounters/berries-abound-encounter.ts @@ -33,7 +33,7 @@ import { StatStageChangePhase } from "#app/phases/stat-stage-change-phase"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:berriesAbound"; +const namespace = "mysteryEncounters/berriesAbound"; /** * Berries Abound encounter. @@ -50,7 +50,7 @@ export const BerriesAboundEncounter: MysteryEncounter = .withIntroSpriteConfigs([]) // Set in onInit() .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) .withOnInit((scene: BattleScene) => { @@ -110,16 +110,16 @@ export const BerriesAboundEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }, @@ -129,7 +129,7 @@ export const BerriesAboundEncounter: MysteryEncounter = const numBerries = encounter.misc.numBerries; const doBerryRewards = () => { - const berryText = i18next.t(`${namespace}.berries`); + const berryText = i18next.t(`${namespace}:berries`); scene.playSound("item_fanfare"); queueEncounterMessage(scene, i18next.t("battle:rewardGainCount", { modifierName: berryText, count: numBerries })); @@ -157,8 +157,8 @@ export const BerriesAboundEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip` + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip` }) .withOptionPhase(async (scene: BattleScene) => { // Pick race for berries @@ -180,7 +180,7 @@ export const BerriesAboundEncounter: MysteryEncounter = if (speedDiff < 1) { // Caught and attacked by boss, gets +1 to all stats at start of fight const doBerryRewards = () => { - const berryText = i18next.t(`${namespace}.berries`); + const berryText = i18next.t(`${namespace}:berries`); scene.playSound("item_fanfare"); queueEncounterMessage(scene, i18next.t("battle:rewardGainCount", { modifierName: berryText, count: numBerries })); @@ -199,11 +199,11 @@ export const BerriesAboundEncounter: MysteryEncounter = const config = scene.currentBattle.mysteryEncounter!.enemyPartyConfigs[0]; config.pokemonConfigs![0].tags = [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON]; config.pokemonConfigs![0].mysteryEncounterBattleEffects = (pokemon: Pokemon) => { - queueEncounterMessage(pokemon.scene, `${namespace}.option.2.boss_enraged`); + queueEncounterMessage(pokemon.scene, `${namespace}:option.2.boss_enraged`); pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, statChangesForBattle, 1)); }; setEncounterRewards(scene, { guaranteedModifierTypeOptions: shopOptions, fillRemaining: false }, undefined, doBerryRewards); - await showEncounterText(scene, `${namespace}.option.2.selected_bad`); + await showEncounterText(scene, `${namespace}:option.2.selected_bad`); await initBattleWithEnemyConfig(scene, config); return; } else { @@ -211,7 +211,7 @@ export const BerriesAboundEncounter: MysteryEncounter = const numBerriesGrabbed = Math.max(Math.min(Math.round((speedDiff - 1)/0.08), numBerries), 2); encounter.setDialogueToken("numBerries", String(numBerriesGrabbed)); const doFasterBerryRewards = () => { - const berryText = i18next.t(`${namespace}.berries`); + const berryText = i18next.t(`${namespace}:berries`); scene.playSound("item_fanfare"); queueEncounterMessage(scene, i18next.t("battle:rewardGainCount", { modifierName: berryText, count: numBerriesGrabbed })); @@ -224,7 +224,7 @@ export const BerriesAboundEncounter: MysteryEncounter = setEncounterExp(scene, fastestPokemon.id, encounter.enemyPartyConfigs[0].pokemonConfigs![0].species.baseExp); setEncounterRewards(scene, { guaranteedModifierTypeOptions: shopOptions, fillRemaining: false }, undefined, doFasterBerryRewards); - await showEncounterText(scene, `${namespace}.option.2.selected`); + await showEncounterText(scene, `${namespace}:option.2.selected`); leaveEncounterWithoutBattle(scene); } }) @@ -232,11 +232,11 @@ export const BerriesAboundEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }, diff --git a/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts b/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts index 827b2c12478..6847ab8b832 100644 --- a/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts +++ b/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts @@ -52,7 +52,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { getSpriteKeysFromSpecies } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:bugTypeSuperfan"; +const namespace = "mysteryEncounters/bugTypeSuperfan"; const POOL_1_POKEMON = [ Species.PARASECT, @@ -203,11 +203,11 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = .withAutoHideIntroVisuals(false) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]) .withOnInit((scene: BattleScene) => { @@ -276,17 +276,17 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.1.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.1.selected`, }, ], }, @@ -317,9 +317,9 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withPrimaryPokemonRequirement(new TypeRequirement(Type.BUG, false, 1)) // Must have 1 Bug type on team .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.disabled_tooltip` + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip` }) .withPreOptionPhase(async (scene: BattleScene) => { // Player shows off their bug types @@ -327,31 +327,31 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = // Player gets different rewards depending on the number of bug types they have const numBugTypes = scene.getParty().filter(p => p.isOfType(Type.BUG, true)).length; - const numBugTypesText = i18next.t(`${namespace}.numBugTypes`, { count: numBugTypes }); + const numBugTypesText = i18next.t(`${namespace}:numBugTypes`, { count: numBugTypes }); encounter.setDialogueToken("numBugTypes", numBugTypesText); if (numBugTypes < 2) { setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.SUPER_LURE, modifierTypes.GREAT_BALL], fillRemaining: false }); encounter.selectedOption!.dialogue!.selected = [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected_0_to_1`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected_0_to_1`, }, ]; } else if (numBugTypes < 4) { setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.QUICK_CLAW, modifierTypes.MAX_LURE, modifierTypes.ULTRA_BALL], fillRemaining: false }); encounter.selectedOption!.dialogue!.selected = [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected_2_to_3`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected_2_to_3`, }, ]; } else if (numBugTypes < 6) { setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.GRIP_CLAW, modifierTypes.MAX_LURE, modifierTypes.ROGUE_BALL], fillRemaining: false }); encounter.selectedOption!.dialogue!.selected = [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected_4_to_5`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected_4_to_5`, }, ]; } else { @@ -382,8 +382,8 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = setEncounterRewards(scene, { guaranteedModifierTypeOptions: modifierOptions, fillRemaining: false }); encounter.selectedOption!.dialogue!.selected = [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected_6`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected_6`, }, ]; } @@ -401,19 +401,19 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = new AttackTypeBoosterHeldItemTypeRequirement(Type.BUG, 1) )) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.3.selected_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.3.selected_dialogue`, }, ], - secondOptionPrompt: `${namespace}.option.3.select_prompt`, + secondOptionPrompt: `${namespace}:option.3.select_prompt`, }) .withPreOptionPhase(async (scene: BattleScene): Promise => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -452,7 +452,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = (item instanceof AttackTypeBoosterModifier && (item.type as AttackTypeBoosterModifierType).moveType === Type.BUG); }); if (!hasValidItem) { - return getEncounterText(scene, `${namespace}.option.3.invalid_selection`) ?? null; + return getEncounterText(scene, `${namespace}:option.3.invalid_selection`) ?? null; } return null; @@ -480,7 +480,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = .build()) .withOutroDialogue([ { - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]) .build(); @@ -634,7 +634,7 @@ function getTrainerConfigForWave(waveIndex: number) { function doBugTypeMoveTutor(scene: BattleScene): Promise { return new Promise(async resolve => { const moveOptions = scene.currentBattle.mysteryEncounter!.misc.moveTutorOptions; - await showEncounterDialogue(scene, `${namespace}.battle_won`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:battle_won`, `${namespace}:speaker`); const overlayScale = 1; const moveInfoOverlay = new MoveInfoOverlay(scene, { @@ -669,7 +669,7 @@ function doBugTypeMoveTutor(scene: BattleScene): Promise { moveInfoOverlay.setVisible(false); }; - const result = await selectOptionThenPokemon(scene, optionSelectItems, `${namespace}.teach_move_prompt`, undefined, onHoverOverCancel); + const result = await selectOptionThenPokemon(scene, optionSelectItems, `${namespace}:teach_move_prompt`, undefined, onHoverOverCancel); // let forceExit = !!result; if (!result) { moveInfoOverlay.active = false; diff --git a/src/data/mystery-encounters/encounters/clowning-around-encounter.ts b/src/data/mystery-encounters/encounters/clowning-around-encounter.ts index 7e846b42ea4..e2bf3bf79fe 100644 --- a/src/data/mystery-encounters/encounters/clowning-around-encounter.ts +++ b/src/data/mystery-encounters/encounters/clowning-around-encounter.ts @@ -34,7 +34,7 @@ import { EncounterAnim } from "#enums/encounter-anims"; import { Challenges } from "#enums/challenges"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:clowningAround"; +const namespace = "mysteryEncounters/clowningAround"; const RANDOM_ABILITY_POOL = [ Abilities.STURDY, @@ -98,11 +98,11 @@ export const ClowningAroundEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - text: `${namespace}.intro_dialogue`, - speaker: `${namespace}.speaker` + text: `${namespace}:intro_dialogue`, + speaker: `${namespace}:speaker` }, ]) .withOnInit((scene: BattleScene) => { @@ -148,19 +148,19 @@ export const ClowningAroundEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption( MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, - speaker: `${namespace}.speaker` + text: `${namespace}:option.1.selected`, + speaker: `${namespace}:speaker` }, ], }) @@ -199,7 +199,7 @@ export const ClowningAroundEncounter: MysteryEncounter = // After the battle, offer the player the opportunity to permanently swap ability const abilityWasSwapped = await handleSwapAbility(scene); if (abilityWasSwapped) { - await showEncounterText(scene, `${namespace}.option.1.ability_gained`); + await showEncounterText(scene, `${namespace}:option.1.ability_gained`); } // Play animations once ability swap is complete @@ -222,19 +222,19 @@ export const ClowningAroundEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, - speaker: `${namespace}.speaker` + text: `${namespace}:option.2.selected`, + speaker: `${namespace}:speaker` }, { - text: `${namespace}.option.2.selected_2`, + text: `${namespace}:option.2.selected_2`, }, { - text: `${namespace}.option.2.selected_3`, - speaker: `${namespace}.speaker` + text: `${namespace}:option.2.selected_3`, + speaker: `${namespace}:speaker` }, ], }) @@ -308,19 +308,19 @@ export const ClowningAroundEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, - speaker: `${namespace}.speaker` + text: `${namespace}:option.3.selected`, + speaker: `${namespace}:speaker` }, { - text: `${namespace}.option.3.selected_2`, + text: `${namespace}:option.3.selected_2`, }, { - text: `${namespace}.option.3.selected_3`, - speaker: `${namespace}.speaker` + text: `${namespace}:option.3.selected_3`, + speaker: `${namespace}:speaker` }, ], }) @@ -377,15 +377,15 @@ export const ClowningAroundEncounter: MysteryEncounter = ) .withOutroDialogue([ { - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]) .build(); async function handleSwapAbility(scene: BattleScene) { return new Promise(async resolve => { - await showEncounterDialogue(scene, `${namespace}.option.1.apply_ability_dialogue`, `${namespace}.speaker`); - await showEncounterText(scene, `${namespace}.option.1.apply_ability_message`); + await showEncounterDialogue(scene, `${namespace}:option.1.apply_ability_dialogue`, `${namespace}:speaker`); + await showEncounterText(scene, `${namespace}:option.1.apply_ability_message`); scene.ui.setMode(Mode.MESSAGE).then(() => { displayYesNoOptions(scene, resolve); @@ -394,7 +394,7 @@ async function handleSwapAbility(scene: BattleScene) { } function displayYesNoOptions(scene: BattleScene, resolve) { - showEncounterText(scene, `${namespace}.option.1.ability_prompt`, null, 500, false); + showEncounterText(scene, `${namespace}:option.1.ability_prompt`, null, 500, false); const fullOptions = [ { label: i18next.t("menu:yes"), diff --git a/src/data/mystery-encounters/encounters/dancing-lessons-encounter.ts b/src/data/mystery-encounters/encounters/dancing-lessons-encounter.ts index a99395726c8..655cc3e937e 100644 --- a/src/data/mystery-encounters/encounters/dancing-lessons-encounter.ts +++ b/src/data/mystery-encounters/encounters/dancing-lessons-encounter.ts @@ -30,7 +30,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import i18next from "i18next"; /** the i18n namespace for this encounter */ -const namespace = "mysteryEncounter:dancingLessons"; +const namespace = "mysteryEncounters/dancingLessons"; // Fire form const BAILE_STYLE_BIOMES = [ @@ -99,12 +99,12 @@ export const DancingLessonsEncounter: MysteryEncounter = }) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, } ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -155,7 +155,7 @@ export const DancingLessonsEncounter: MysteryEncounter = // Gets +1 to all stats except SPD on battle start tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON], mysteryEncounterBattleEffects: (pokemon: Pokemon) => { - queueEncounterMessage(pokemon.scene, `${namespace}.option.1.boss_enraged`); + queueEncounterMessage(pokemon.scene, `${namespace}:option.1.boss_enraged`); pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [Stat.ATK, Stat.DEF, Stat.SPATK, Stat.SPDEF], 1)); } }], @@ -173,11 +173,11 @@ export const DancingLessonsEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }) @@ -202,11 +202,11 @@ export const DancingLessonsEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }) @@ -237,13 +237,13 @@ export const DancingLessonsEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL) .withPrimaryPokemonRequirement(new MoveRequirement(DANCING_MOVES)) // Will set option3PrimaryName and option3PrimaryMove dialogue tokens automatically .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, - secondOptionPrompt: `${namespace}.option.3.select_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, + secondOptionPrompt: `${namespace}:option.3.select_prompt`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }) @@ -278,7 +278,7 @@ export const DancingLessonsEncounter: MysteryEncounter = } const meetsReqs = encounter.options[2].pokemonMeetsPrimaryRequirements(scene, pokemon); if (!meetsReqs) { - return getEncounterText(scene, `${namespace}.invalid_selection`) ?? null; + return getEncounterText(scene, `${namespace}:invalid_selection`) ?? null; } return null; diff --git a/src/data/mystery-encounters/encounters/dark-deal-encounter.ts b/src/data/mystery-encounters/encounters/dark-deal-encounter.ts index 92009b12958..c511add0b28 100644 --- a/src/data/mystery-encounters/encounters/dark-deal-encounter.ts +++ b/src/data/mystery-encounters/encounters/dark-deal-encounter.ts @@ -16,7 +16,7 @@ import { PokemonFormChangeItemModifier, PokemonHeldItemModifier } from "#app/mod import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** i18n namespace for encounter */ -const namespace = "mysteryEncounter:darkDeal"; +const namespace = "mysteryEncounters/darkDeal"; /** Exclude Ultra Beasts (inludes Cosmog/Solgaleo/Lunala/Necrozma), Paradox (includes Miraidon/Koraidon), Eternatus, and Mythicals */ const excludedBosses = [ @@ -107,32 +107,32 @@ export const DarkDealEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]) .withSceneWaveRangeRequirement(30, CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES[1]) .withScenePartySizeRequirement(2, 6, true) // Must have at least 2 pokemon in party .withCatchAllowed(true) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption( MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.1.selected_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.1.selected_dialogue`, }, { - text: `${namespace}.option.1.selected_message`, + text: `${namespace}:option.1.selected_message`, }, ], }) @@ -187,12 +187,12 @@ export const DarkDealEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected`, }, ], }, @@ -204,7 +204,7 @@ export const DarkDealEncounter: MysteryEncounter = ) .withOutroDialogue([ { - text: `${namespace}.outro` + text: `${namespace}:outro` } ]) .build(); diff --git a/src/data/mystery-encounters/encounters/delibirdy-encounter.ts b/src/data/mystery-encounters/encounters/delibirdy-encounter.ts index 2b0f7b0722e..1246572b680 100644 --- a/src/data/mystery-encounters/encounters/delibirdy-encounter.ts +++ b/src/data/mystery-encounters/encounters/delibirdy-encounter.ts @@ -19,7 +19,7 @@ import { getPokemonSpecies } from "#app/data/pokemon-species"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for this encounter */ -const namespace = "mysteryEncounter:delibirdy"; +const namespace = "mysteryEncounters/delibirdy"; /** Berries only */ const OPTION_2_ALLOWED_MODIFIERS = ["BerryModifier", "PokemonInstantReviveModifier"]; @@ -81,15 +81,15 @@ export const DelibirdyEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, } ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOutroDialogue([ { - text: `${namespace}.outro`, + text: `${namespace}:outro`, } ]) .withOnInit((scene: BattleScene) => { @@ -108,11 +108,11 @@ export const DelibirdyEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withSceneMoneyRequirement(0, DELIBIRDY_MONEY_PRICE_MULTIPLIER) // Must have money to spawn .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }) @@ -145,12 +145,12 @@ export const DelibirdyEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withPrimaryPokemonRequirement(new HeldItemRequirement(OPTION_2_ALLOWED_MODIFIERS)) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - secondOptionPrompt: `${namespace}.option.2.select_prompt`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + secondOptionPrompt: `${namespace}:option.2.select_prompt`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }) @@ -183,7 +183,7 @@ export const DelibirdyEncounter: MysteryEncounter = // If pokemon has valid item, it can be selected const meetsReqs = encounter.options[1].pokemonMeetsPrimaryRequirements(scene, pokemon); if (!meetsReqs) { - return getEncounterText(scene, `${namespace}.invalid_selection`) ?? null; + return getEncounterText(scene, `${namespace}:invalid_selection`) ?? null; } return null; @@ -193,7 +193,7 @@ export const DelibirdyEncounter: MysteryEncounter = }) .withOptionPhase(async (scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; - const modifier = encounter.misc.chosenModifier; + const modifier: BerryModifier | HealingBoosterModifier = encounter.misc.chosenModifier; // Give the player a Candy Jar if they gave a Berry, and a Healing Charm for Reviver Seed if (modifier instanceof BerryModifier) { @@ -239,12 +239,12 @@ export const DelibirdyEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withPrimaryPokemonRequirement(new HeldItemRequirement(OPTION_3_DISALLOWED_MODIFIERS, 1, true)) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - secondOptionPrompt: `${namespace}.option.3.select_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + secondOptionPrompt: `${namespace}:option.3.select_prompt`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }) @@ -277,7 +277,7 @@ export const DelibirdyEncounter: MysteryEncounter = // If pokemon has valid item, it can be selected const meetsReqs = encounter.options[2].pokemonMeetsPrimaryRequirements(scene, pokemon); if (!meetsReqs) { - return getEncounterText(scene, `${namespace}.invalid_selection`) ?? null; + return getEncounterText(scene, `${namespace}:invalid_selection`) ?? null; } return null; diff --git a/src/data/mystery-encounters/encounters/department-store-sale-encounter.ts b/src/data/mystery-encounters/encounters/department-store-sale-encounter.ts index 52890f0ffed..1505768f968 100644 --- a/src/data/mystery-encounters/encounters/department-store-sale-encounter.ts +++ b/src/data/mystery-encounters/encounters/department-store-sale-encounter.ts @@ -14,7 +14,7 @@ import { MysteryEncounterTier } from "#enums/mystery-encounter-tier"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** i18n namespace for encounter */ -const namespace = "mysteryEncounter:departmentStoreSale"; +const namespace = "mysteryEncounters/departmentStoreSale"; /** * Department Store Sale encounter. @@ -43,21 +43,21 @@ export const DepartmentStoreSaleEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - text: `${namespace}.intro_dialogue`, - speaker: `${namespace}.speaker`, + text: `${namespace}:intro_dialogue`, + speaker: `${namespace}:speaker`, }, ]) .withAutoHideIntroVisuals(false) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, }, async (scene: BattleScene) => { // Choose TMs @@ -82,8 +82,8 @@ export const DepartmentStoreSaleEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, }, async (scene: BattleScene) => { // Choose Vitamins @@ -106,8 +106,8 @@ export const DepartmentStoreSaleEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, }, async (scene: BattleScene) => { // Choose X Items @@ -130,8 +130,8 @@ export const DepartmentStoreSaleEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.4.label`, - buttonTooltip: `${namespace}.option.4.tooltip`, + buttonLabel: `${namespace}:option.4.label`, + buttonTooltip: `${namespace}:option.4.tooltip`, }, async (scene: BattleScene) => { // Choose Pokeballs @@ -158,7 +158,7 @@ export const DepartmentStoreSaleEncounter: MysteryEncounter = ) .withOutroDialogue([ { - text: `${namespace}.outro`, + text: `${namespace}:outro`, } ]) .build(); diff --git a/src/data/mystery-encounters/encounters/field-trip-encounter.ts b/src/data/mystery-encounters/encounters/field-trip-encounter.ts index 49936b67efe..0a356f16b37 100644 --- a/src/data/mystery-encounters/encounters/field-trip-encounter.ts +++ b/src/data/mystery-encounters/encounters/field-trip-encounter.ts @@ -14,7 +14,7 @@ import i18next from "i18next"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** i18n namespace for the encounter */ -const namespace = "mysteryEncounter:fieldTrip"; +const namespace = "mysteryEncounters/fieldTrip"; /** * Field Trip encounter. @@ -44,24 +44,24 @@ export const FieldTripEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - text: `${namespace}.intro_dialogue`, - speaker: `${namespace}.speaker`, + text: `${namespace}:intro_dialogue`, + speaker: `${namespace}:speaker`, }, ]) .withAutoHideIntroVisuals(false) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption( MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, - secondOptionPrompt: `${namespace}.second_option_prompt`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, + secondOptionPrompt: `${namespace}:second_option_prompt`, }) .withPreOptionPhase(async (scene: BattleScene): Promise => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -72,7 +72,7 @@ export const FieldTripEncounter: MysteryEncounter = label: move.getName(), handler: () => { // Pokemon and move selected - encounter.setDialogueToken("moveCategory", i18next.t(`${namespace}.physical`)); + encounter.setDialogueToken("moveCategory", i18next.t(`${namespace}:physical`)); pokemonAndMoveChosen(scene, pokemon, move, MoveCategory.PHYSICAL); return true; }, @@ -105,9 +105,9 @@ export const FieldTripEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - secondOptionPrompt: `${namespace}.second_option_prompt`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + secondOptionPrompt: `${namespace}:second_option_prompt`, }) .withPreOptionPhase(async (scene: BattleScene): Promise => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -118,7 +118,7 @@ export const FieldTripEncounter: MysteryEncounter = label: move.getName(), handler: () => { // Pokemon and move selected - encounter.setDialogueToken("moveCategory", i18next.t(`${namespace}.special`)); + encounter.setDialogueToken("moveCategory", i18next.t(`${namespace}:special`)); pokemonAndMoveChosen(scene, pokemon, move, MoveCategory.SPECIAL); return true; }, @@ -151,9 +151,9 @@ export const FieldTripEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - secondOptionPrompt: `${namespace}.second_option_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + secondOptionPrompt: `${namespace}:second_option_prompt`, }) .withPreOptionPhase(async (scene: BattleScene): Promise => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -164,7 +164,7 @@ export const FieldTripEncounter: MysteryEncounter = label: move.getName(), handler: () => { // Pokemon and move selected - encounter.setDialogueToken("moveCategory", i18next.t(`${namespace}.status`)); + encounter.setDialogueToken("moveCategory", i18next.t(`${namespace}:status`)); pokemonAndMoveChosen(scene, pokemon, move, MoveCategory.STATUS); return true; }, @@ -203,28 +203,28 @@ function pokemonAndMoveChosen(scene: BattleScene, pokemon: PlayerPokemon, move: if (!correctMove) { encounter.selectedOption!.dialogue!.selected = [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, { - text: `${namespace}.incorrect`, - speaker: `${namespace}.speaker`, + text: `${namespace}:incorrect`, + speaker: `${namespace}:speaker`, }, { - text: `${namespace}.incorrect_exp`, + text: `${namespace}:incorrect_exp`, }, ]; setEncounterExp(scene, scene.getParty().map((p) => p.id), 50); } else { encounter.selectedOption!.dialogue!.selected = [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, { - text: `${namespace}.correct`, - speaker: `${namespace}.speaker`, + text: `${namespace}:correct`, + speaker: `${namespace}:speaker`, }, { - text: `${namespace}.correct_exp`, + text: `${namespace}:correct_exp`, }, ]; setEncounterExp(scene, [pokemon.id], 100); diff --git a/src/data/mystery-encounters/encounters/fiery-fallout-encounter.ts b/src/data/mystery-encounters/encounters/fiery-fallout-encounter.ts index 6775aee6b30..cfb87a9e862 100644 --- a/src/data/mystery-encounters/encounters/fiery-fallout-encounter.ts +++ b/src/data/mystery-encounters/encounters/fiery-fallout-encounter.ts @@ -24,7 +24,7 @@ import { EncounterAnim } from "#enums/encounter-anims"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:fieryFallout"; +const namespace = "mysteryEncounters/fieryFallout"; /** * Damage percentage taken when suffering the heat. @@ -49,7 +49,7 @@ export const FieryFalloutEncounter: MysteryEncounter = .withFleeAllowed(false) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) .withOnInit((scene: BattleScene) => { @@ -122,16 +122,16 @@ export const FieryFalloutEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }, @@ -170,11 +170,11 @@ export const FieryFalloutEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }, @@ -197,7 +197,7 @@ export const FieryFalloutEncounter: MysteryEncounter = if (chosenPokemon.trySetStatus(StatusEffect.BURN)) { // Burn applied encounter.setDialogueToken("burnedPokemon", chosenPokemon.getNameToRender()); - queueEncounterMessage(scene, `${namespace}.option.2.target_burned`); + queueEncounterMessage(scene, `${namespace}:option.2.target_burned`); } } @@ -211,12 +211,12 @@ export const FieryFalloutEncounter: MysteryEncounter = .withPrimaryPokemonRequirement(new TypeRequirement(Type.FIRE, true, 1)) // Will set option3PrimaryName dialogue token automatically .withSecondaryPokemonRequirement(new TypeRequirement(Type.FIRE, true, 1)) // Will set option3SecondaryName dialogue token automatically .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }) @@ -251,6 +251,6 @@ function giveLeadPokemonCharcoal(scene: BattleScene) { const charcoal = generateModifierType(scene, modifierTypes.ATTACK_TYPE_BOOSTER, [Type.FIRE]) as AttackTypeBoosterModifierType; applyModifierTypeToPlayerPokemon(scene, leadPokemon, charcoal); scene.currentBattle.mysteryEncounter!.setDialogueToken("leadPokemon", leadPokemon.getNameToRender()); - queueEncounterMessage(scene, `${namespace}.found_charcoal`); + queueEncounterMessage(scene, `${namespace}:found_charcoal`); } } diff --git a/src/data/mystery-encounters/encounters/fight-or-flight-encounter.ts b/src/data/mystery-encounters/encounters/fight-or-flight-encounter.ts index b3afdaf5f17..aa3bace67f0 100644 --- a/src/data/mystery-encounters/encounters/fight-or-flight-encounter.ts +++ b/src/data/mystery-encounters/encounters/fight-or-flight-encounter.ts @@ -31,7 +31,7 @@ import { StatStageChangePhase } from "#app/phases/stat-stage-change-phase"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:fightOrFlight"; +const namespace = "mysteryEncounters/fightOrFlight"; /** * Fight or Flight encounter. @@ -48,7 +48,7 @@ export const FightOrFlightEncounter: MysteryEncounter = .withIntroSpriteConfigs([]) // Set in onInit() .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) .withOnInit((scene: BattleScene) => { @@ -67,7 +67,7 @@ export const FightOrFlightEncounter: MysteryEncounter = isBoss: true, tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON], mysteryEncounterBattleEffects: (pokemon: Pokemon) => { - queueEncounterMessage(pokemon.scene, `${namespace}.option.1.stat_boost`); + queueEncounterMessage(pokemon.scene, `${namespace}:option.1.stat_boost`); // Randomly boost 1 stat 2 stages // Cannot boost Spd, Acc, or Evasion pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [randSeedInt(4, 1)], 2)); @@ -120,16 +120,16 @@ export const FightOrFlightEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }, @@ -146,12 +146,12 @@ export const FightOrFlightEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL) .withPrimaryPokemonRequirement(new MoveRequirement(STEALING_MOVES)) // Will set option2PrimaryName and option2PrimaryMove dialogue tokens automatically .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.disabled_tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`, selected: [ { - text: `${namespace}.option.2.selected` + text: `${namespace}:option.2.selected` } ] }) @@ -170,11 +170,11 @@ export const FightOrFlightEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }, diff --git a/src/data/mystery-encounters/encounters/fun-and-games-encounter.ts b/src/data/mystery-encounters/encounters/fun-and-games-encounter.ts index 1d8bf42528b..c690faf28b7 100644 --- a/src/data/mystery-encounters/encounters/fun-and-games-encounter.ts +++ b/src/data/mystery-encounters/encounters/fun-and-games-encounter.ts @@ -25,7 +25,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { isPokemonValidForEncounterOptionSelection } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:funAndGames"; +const namespace = "mysteryEncounters/funAndGames"; /** * Fun and Games! encounter. @@ -72,13 +72,13 @@ export const FunAndGamesEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; scene.loadBgm("mystery_encounter_fun_and_games", "mystery_encounter_fun_and_games.mp3"); @@ -93,11 +93,11 @@ export const FunAndGamesEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withSceneRequirement(new MoneyRequirement(0, 1.5)) // Cost equal to 1 Max Potion .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }) @@ -112,7 +112,7 @@ export const FunAndGamesEncounter: MysteryEncounter = // Only Pokemon that are not KOed/legal can be selected const selectableFilter = (pokemon: Pokemon) => { - return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}.invalid_selection`); + return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}:invalid_selection`); }; return selectPokemonForOption(scene, onPokemonSelected, undefined, selectableFilter); @@ -141,11 +141,11 @@ export const FunAndGamesEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }, @@ -231,7 +231,7 @@ function handleLoseMinigame(scene: BattleScene) { scene.currentBattle.enemyParty = []; scene.currentBattle.mysteryEncounter!.doContinueEncounter = undefined; leaveEncounterWithoutBattle(scene, true); - await showEncounterText(scene, `${namespace}.ko`); + await showEncounterText(scene, `${namespace}:ko`); const reviveCost = scene.getWaveMoneyAmount(1.5); updatePlayerMoney(scene, -reviveCost, true, false); } @@ -257,19 +257,19 @@ function handleNextTurn(scene: BattleScene) { if (healthRatio < 0.03) { // Grand prize setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.MULTI_LENS], fillRemaining: false }); - resultMessageKey = `${namespace}.best_result`; + resultMessageKey = `${namespace}:best_result`; } else if (healthRatio < 0.15) { // 2nd prize setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.SCOPE_LENS], fillRemaining: false }); - resultMessageKey = `${namespace}.great_result`; + resultMessageKey = `${namespace}:great_result`; } else if (healthRatio < 0.33) { // 3rd prize setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.WIDE_LENS], fillRemaining: false }); - resultMessageKey = `${namespace}.good_result`; + resultMessageKey = `${namespace}:good_result`; } else { // No prize isHealPhase = true; - resultMessageKey = `${namespace}.bad_result`; + resultMessageKey = `${namespace}:bad_result`; } // End the battle @@ -279,7 +279,7 @@ function handleNextTurn(scene: BattleScene) { scene.currentBattle.mysteryEncounter!.doContinueEncounter = undefined; leaveEncounterWithoutBattle(scene, isHealPhase); // Must end the TurnInit phase prematurely so battle phases aren't added to queue - queueEncounterMessage(scene, `${namespace}.end_game`); + queueEncounterMessage(scene, `${namespace}:end_game`); queueEncounterMessage(scene, resultMessageKey); // Skip remainder of TurnInitPhase @@ -287,9 +287,9 @@ function handleNextTurn(scene: BattleScene) { } else { if (encounter.misc.turnsRemaining < 3) { // Display charging messages on turns that aren't the initial turn - queueEncounterMessage(scene, `${namespace}.charging_continue`); + queueEncounterMessage(scene, `${namespace}:charging_continue`); } - queueEncounterMessage(scene, `${namespace}.turn_remaining_${encounter.misc.turnsRemaining}`); + queueEncounterMessage(scene, `${namespace}:turn_remaining_${encounter.misc.turnsRemaining}`); encounter.misc.turnsRemaining--; } diff --git a/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts b/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts index 6d6b5d9f71e..cc66bdfb4c9 100644 --- a/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts +++ b/src/data/mystery-encounters/encounters/global-trade-system-encounter.ts @@ -27,7 +27,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { addPokemonDataToDexAndValidateAchievements } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:globalTradeSystem"; +const namespace = "mysteryEncounters/globalTradeSystem"; /** Base shiny chance of 512/65536 -> 1/128 odds, affected by events and Shiny Charms. Cannot exceed 1/16 odds. */ const WONDER_TRADE_SHINY_CHANCE = 512; @@ -93,12 +93,12 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, } ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -133,9 +133,9 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withHasDexProgress(true) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, - secondOptionPrompt: `${namespace}.option.1.trade_options_prompt`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, + secondOptionPrompt: `${namespace}:option.1.trade_options_prompt`, }) .withPreOptionPhase(async (scene: BattleScene): Promise => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -201,7 +201,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = // Show the trade animation await showTradeBackground(scene); await doPokemonTradeSequence(scene, tradedPokemon, newPlayerPokemon); - await showEncounterText(scene, `${namespace}.trade_received`, null, 0, true, 4000); + await showEncounterText(scene, `${namespace}:trade_received`, null, 0, true, 4000); scene.playBgm(encounter.misc.bgmKey); await addPokemonDataToDexAndValidateAchievements(scene, newPlayerPokemon); await hideTradeBackground(scene); @@ -216,8 +216,8 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withHasDexProgress(true) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, }) .withPreOptionPhase(async (scene: BattleScene): Promise => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -309,7 +309,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = // Show the trade animation await showTradeBackground(scene); await doPokemonTradeSequence(scene, tradedPokemon, newPlayerPokemon); - await showEncounterText(scene, `${namespace}.trade_received`, null, 0, true, 4000); + await showEncounterText(scene, `${namespace}:trade_received`, null, 0, true, 4000); scene.playBgm(encounter.misc.bgmKey); await addPokemonDataToDexAndValidateAchievements(scene, newPlayerPokemon); await hideTradeBackground(scene); @@ -323,9 +323,9 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - secondOptionPrompt: `${namespace}.option.3.trade_options_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + secondOptionPrompt: `${namespace}:option.3.trade_options_prompt`, }) .withPreOptionPhase(async (scene: BattleScene): Promise => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -355,7 +355,7 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = return it.isTransferable; }).length > 0; if (!meetsReqs) { - return getEncounterText(scene, `${namespace}.option.3.invalid_selection`) ?? null; + return getEncounterText(scene, `${namespace}:option.3.invalid_selection`) ?? null; } return null; @@ -403,18 +403,18 @@ export const GlobalTradeSystemEncounter: MysteryEncounter = // Generate a trainer name const traderName = generateRandomTraderName(); encounter.setDialogueToken("tradeTrainerName", traderName.trim()); - await showEncounterText(scene, `${namespace}.item_trade_selected`); + await showEncounterText(scene, `${namespace}:item_trade_selected`); leaveEncounterWithoutBattle(scene); }) .build() ) .withSimpleOption( { - buttonLabel: `${namespace}.option.4.label`, - buttonTooltip: `${namespace}.option.4.tooltip`, + buttonLabel: `${namespace}:option.4.label`, + buttonTooltip: `${namespace}:option.4.tooltip`, selected: [ { - text: `${namespace}.option.4.selected`, + text: `${namespace}:option.4.selected`, }, ], }, @@ -628,10 +628,10 @@ function doPokemonTradeSequence(scene: BattleScene, tradedPokemon: PlayerPokemon duration: 500, onComplete: async () => { scene.fadeOutBgm(1000, false); - await showEncounterText(scene, `${namespace}.pokemon_trade_selected`); + await showEncounterText(scene, `${namespace}:pokemon_trade_selected`); tradedPokemon.cry(); scene.playBgm("evolution"); - await showEncounterText(scene, `${namespace}.pokemon_trade_goodbye`); + await showEncounterText(scene, `${namespace}:pokemon_trade_goodbye`); tradedPokeball.setAlpha(0); tradedPokeball.setVisible(true); diff --git a/src/data/mystery-encounters/encounters/lost-at-sea-encounter.ts b/src/data/mystery-encounters/encounters/lost-at-sea-encounter.ts index 02426c2cab6..27b3bdd8cf7 100644 --- a/src/data/mystery-encounters/encounters/lost-at-sea-encounter.ts +++ b/src/data/mystery-encounters/encounters/lost-at-sea-encounter.ts @@ -21,7 +21,7 @@ const OPTION_2_REQUIRED_MOVE = Moves.FLY; */ const DAMAGE_PERCENTAGE: number = 25; /** The i18n namespace for the encounter */ -const namespace = "mysteryEncounter:lostAtSea"; +const namespace = "mysteryEncounters/lostAtSea"; /** * Lost at sea encounter. @@ -40,7 +40,7 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with y: 3, }, ]) - .withIntroDialogue([{ text: `${namespace}.intro` }]) + .withIntroDialogue([{ text: `${namespace}:intro` }]) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -50,22 +50,22 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption( // Option 1: Use a (non fainted) pokemon that can learn Surf to guide you back/ MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withPokemonCanLearnMoveRequirement(OPTION_1_REQUIRED_MOVE) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - disabledButtonLabel: `${namespace}.option.1.label_disabled`, - buttonTooltip: `${namespace}.option.1.tooltip`, - disabledButtonTooltip: `${namespace}.option.1.tooltip_disabled`, + buttonLabel: `${namespace}:option.1.label`, + disabledButtonLabel: `${namespace}:option.1.label_disabled`, + buttonTooltip: `${namespace}:option.1.tooltip`, + disabledButtonTooltip: `${namespace}:option.1.tooltip_disabled`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }) @@ -78,13 +78,13 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withPokemonCanLearnMoveRequirement(OPTION_2_REQUIRED_MOVE) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - disabledButtonLabel: `${namespace}.option.2.label_disabled`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.tooltip_disabled`, + buttonLabel: `${namespace}:option.2.label`, + disabledButtonLabel: `${namespace}:option.2.label_disabled`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.tooltip_disabled`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }) @@ -94,11 +94,11 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with .withSimpleOption( // Option 3: Wander aimlessly { - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }, @@ -118,7 +118,7 @@ export const LostAtSeaEncounter: MysteryEncounter = MysteryEncounterBuilder.with ) .withOutroDialogue([ { - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]) .build(); diff --git a/src/data/mystery-encounters/encounters/mysterious-challengers-encounter.ts b/src/data/mystery-encounters/encounters/mysterious-challengers-encounter.ts index ac257a8975f..af01ecbb97c 100644 --- a/src/data/mystery-encounters/encounters/mysterious-challengers-encounter.ts +++ b/src/data/mystery-encounters/encounters/mysterious-challengers-encounter.ts @@ -20,7 +20,7 @@ import { MysteryEncounterTier } from "#enums/mystery-encounter-tier"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:mysteriousChallengers"; +const namespace = "mysteryEncounters/mysteriousChallengers"; /** * Mysterious Challengers encounter. @@ -34,7 +34,7 @@ export const MysteriousChallengersEncounter: MysteryEncounter = .withIntroSpriteConfigs([]) // These are set in onInit() .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) .withOnInit((scene: BattleScene) => { @@ -125,16 +125,16 @@ export const MysteriousChallengersEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }, @@ -155,11 +155,11 @@ export const MysteriousChallengersEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }, @@ -180,11 +180,11 @@ export const MysteriousChallengersEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }, @@ -208,7 +208,7 @@ export const MysteriousChallengersEncounter: MysteryEncounter = ) .withOutroDialogue([ { - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]) .build(); diff --git a/src/data/mystery-encounters/encounters/mysterious-chest-encounter.ts b/src/data/mystery-encounters/encounters/mysterious-chest-encounter.ts index 4117de14fc4..9221cde0844 100644 --- a/src/data/mystery-encounters/encounters/mysterious-chest-encounter.ts +++ b/src/data/mystery-encounters/encounters/mysterious-chest-encounter.ts @@ -16,7 +16,7 @@ import { GameOverPhase } from "#app/phases/game-over-phase"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** i18n namespace for encounter */ -const namespace = "mysteryEncounter:mysteriousChest"; +const namespace = "mysteryEncounters/mysteriousChest"; const RAND_LENGTH = 100; const TRAP_PERCENT = 35; @@ -58,12 +58,12 @@ export const MysteriousChestEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, } ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -96,11 +96,11 @@ export const MysteriousChestEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }) @@ -141,7 +141,7 @@ export const MysteriousChestEncounter: MysteryEncounter = ], }); // Display result message then proceed to rewards - queueEncounterMessage(scene, `${namespace}.option.1.normal`); + queueEncounterMessage(scene, `${namespace}:option.1.normal`); leaveEncounterWithoutBattle(scene); } else if (roll >= RAND_LENGTH - COMMON_REWARDS_PERCENT - ULTRA_REWARDS_PERCENT) { // Choose between 3 ULTRA tier items (30%) @@ -153,19 +153,19 @@ export const MysteriousChestEncounter: MysteryEncounter = ], }); // Display result message then proceed to rewards - queueEncounterMessage(scene, `${namespace}.option.1.good`); + queueEncounterMessage(scene, `${namespace}:option.1.good`); leaveEncounterWithoutBattle(scene); } else if (roll >= RAND_LENGTH - COMMON_REWARDS_PERCENT - ULTRA_REWARDS_PERCENT - ROGUE_REWARDS_PERCENT) { // Choose between 2 ROGUE tier items (10%) setEncounterRewards(scene, { guaranteedModifierTiers: [ModifierTier.ROGUE, ModifierTier.ROGUE] }); // Display result message then proceed to rewards - queueEncounterMessage(scene, `${namespace}.option.1.great`); + queueEncounterMessage(scene, `${namespace}:option.1.great`); leaveEncounterWithoutBattle(scene); } else if (roll >= RAND_LENGTH - COMMON_REWARDS_PERCENT - ULTRA_REWARDS_PERCENT - ROGUE_REWARDS_PERCENT - MASTER_REWARDS_PERCENT) { // Choose 1 MASTER tier item (5%) setEncounterRewards(scene, { guaranteedModifierTiers: [ModifierTier.MASTER] }); // Display result message then proceed to rewards - queueEncounterMessage(scene, `${namespace}.option.1.amazing`); + queueEncounterMessage(scene, `${namespace}:option.1.amazing`); leaveEncounterWithoutBattle(scene); } else { // Your highest level unfainted Pokemon gets OHKO. Start battle against a Gimmighoul (35%) @@ -173,7 +173,7 @@ export const MysteriousChestEncounter: MysteryEncounter = koPlayerPokemon(scene, highestLevelPokemon); encounter.setDialogueToken("pokeName", highestLevelPokemon.getNameToRender()); - await showEncounterText(scene, `${namespace}.option.1.bad`); + await showEncounterText(scene, `${namespace}:option.1.bad`); // Handle game over edge case const allowedPokemon = scene.getParty().filter(p => p.isAllowedInBattle()); @@ -193,11 +193,11 @@ export const MysteriousChestEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }, diff --git a/src/data/mystery-encounters/encounters/part-timer-encounter.ts b/src/data/mystery-encounters/encounters/part-timer-encounter.ts index 4c31e83facb..f7eb2f2f1b4 100644 --- a/src/data/mystery-encounters/encounters/part-timer-encounter.ts +++ b/src/data/mystery-encounters/encounters/part-timer-encounter.ts @@ -15,7 +15,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { isPokemonValidForEncounterOptionSelection } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:partTimer"; +const namespace = "mysteryEncounters/partTimer"; /** * Part Timer encounter. @@ -45,11 +45,11 @@ export const PartTimerEncounter: MysteryEncounter = .withAutoHideIntroVisuals(false) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]) .withOnInit((scene: BattleScene) => { @@ -69,17 +69,17 @@ export const PartTimerEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption(MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected` + text: `${namespace}:option.1.selected` } ] }) @@ -118,7 +118,7 @@ export const PartTimerEncounter: MysteryEncounter = // Only Pokemon non-KOd pokemon can be selected const selectableFilter = (pokemon: Pokemon) => { - return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}.invalid_selection`); + return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}:invalid_selection`); }; return selectPokemonForOption(scene, onPokemonSelected, undefined, selectableFilter); @@ -132,14 +132,14 @@ export const PartTimerEncounter: MysteryEncounter = // Give money and do dialogue if (moneyMultiplier > 2.5) { - await showEncounterDialogue(scene, `${namespace}.job_complete_good`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:job_complete_good`, `${namespace}:speaker`); } else { - await showEncounterDialogue(scene, `${namespace}.job_complete_bad`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:job_complete_bad`, `${namespace}:speaker`); } const moneyChange = scene.getWaveMoneyAmount(moneyMultiplier); updatePlayerMoney(scene, moneyChange, true, false); await showEncounterText(scene, i18next.t("mysteryEncounterMessages:receive_money", { amount: moneyChange })); - await showEncounterText(scene, `${namespace}.pokemon_tired`); + await showEncounterText(scene, `${namespace}:pokemon_tired`); setEncounterRewards(scene, { fillRemaining: true }); leaveEncounterWithoutBattle(scene); @@ -149,11 +149,11 @@ export const PartTimerEncounter: MysteryEncounter = .withOption(MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected` + text: `${namespace}:option.2.selected` } ] }) @@ -195,7 +195,7 @@ export const PartTimerEncounter: MysteryEncounter = // Only Pokemon non-KOd pokemon can be selected const selectableFilter = (pokemon: Pokemon) => { - return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}.invalid_selection`); + return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}:invalid_selection`); }; return selectPokemonForOption(scene, onPokemonSelected, undefined, selectableFilter); @@ -209,14 +209,14 @@ export const PartTimerEncounter: MysteryEncounter = // Give money and do dialogue if (moneyMultiplier > 2.5) { - await showEncounterDialogue(scene, `${namespace}.job_complete_good`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:job_complete_good`, `${namespace}:speaker`); } else { - await showEncounterDialogue(scene, `${namespace}.job_complete_bad`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:job_complete_bad`, `${namespace}:speaker`); } const moneyChange = scene.getWaveMoneyAmount(moneyMultiplier); updatePlayerMoney(scene, moneyChange, true, false); await showEncounterText(scene, i18next.t("mysteryEncounterMessages:receive_money", { amount: moneyChange })); - await showEncounterText(scene, `${namespace}.pokemon_tired`); + await showEncounterText(scene, `${namespace}:pokemon_tired`); setEncounterRewards(scene, { fillRemaining: true }); leaveEncounterWithoutBattle(scene); @@ -228,12 +228,12 @@ export const PartTimerEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL) .withPrimaryPokemonRequirement(new MoveRequirement(CHARMING_MOVES)) // Will set option3PrimaryName and option3PrimaryMove dialogue tokens automatically .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }) @@ -264,11 +264,11 @@ export const PartTimerEncounter: MysteryEncounter = await transitionMysteryEncounterIntroVisuals(scene, false, false); // Give money and do dialogue - await showEncounterDialogue(scene, `${namespace}.job_complete_good`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:job_complete_good`, `${namespace}:speaker`); const moneyChange = scene.getWaveMoneyAmount(2.5); updatePlayerMoney(scene, moneyChange, true, false); await showEncounterText(scene, i18next.t("mysteryEncounterMessages:receive_money", { amount: moneyChange })); - await showEncounterText(scene, `${namespace}.pokemon_tired`); + await showEncounterText(scene, `${namespace}:pokemon_tired`); setEncounterRewards(scene, { fillRemaining: true }); leaveEncounterWithoutBattle(scene); @@ -277,8 +277,8 @@ export const PartTimerEncounter: MysteryEncounter = ) .withOutroDialogue([ { - speaker: `${namespace}.speaker`, - text: `${namespace}.outro`, + speaker: `${namespace}:speaker`, + text: `${namespace}:outro`, } ]) .build(); diff --git a/src/data/mystery-encounters/encounters/safari-zone-encounter.ts b/src/data/mystery-encounters/encounters/safari-zone-encounter.ts index 8b8fc5f73be..be5b9023eea 100644 --- a/src/data/mystery-encounters/encounters/safari-zone-encounter.ts +++ b/src/data/mystery-encounters/encounters/safari-zone-encounter.ts @@ -21,7 +21,7 @@ import { SummonPhase } from "#app/phases/summon-phase"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:safariZone"; +const namespace = "mysteryEncounters/safariZone"; const TRAINER_THROW_ANIMATION_TIMES = [512, 184, 768]; @@ -51,12 +51,12 @@ export const SafariZoneEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { scene.currentBattle.mysteryEncounter?.setDialogueToken("numEncounters", NUM_SAFARI_ENCOUNTERS.toString()); return true; @@ -65,11 +65,11 @@ export const SafariZoneEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withSceneRequirement(new MoneyRequirement(0, SAFARI_MONEY_MULTIPLIER)) // Cost equal to 1 Max Revive .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }) @@ -98,11 +98,11 @@ export const SafariZoneEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }, @@ -133,11 +133,11 @@ const safariZoneGameOptions: MysteryEncounterOption[] = [ MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.safari.1.label`, - buttonTooltip: `${namespace}.safari.1.tooltip`, + buttonLabel: `${namespace}:safari.1.label`, + buttonTooltip: `${namespace}:safari.1.tooltip`, selected: [ { - text: `${namespace}.safari.1.selected`, + text: `${namespace}:safari.1.selected`, } ], }) @@ -168,11 +168,11 @@ const safariZoneGameOptions: MysteryEncounterOption[] = [ MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.safari.2.label`, - buttonTooltip: `${namespace}.safari.2.tooltip`, + buttonLabel: `${namespace}:safari.2.label`, + buttonTooltip: `${namespace}:safari.2.tooltip`, selected: [ { - text: `${namespace}.safari.2.selected`, + text: `${namespace}:safari.2.selected`, }, ], }) @@ -186,9 +186,9 @@ const safariZoneGameOptions: MysteryEncounterOption[] = [ // 80% chance to increase flee stage +1 const fleeChangeResult = tryChangeFleeStage(scene, 1, 8); if (!fleeChangeResult) { - await showEncounterText(scene, getEncounterText(scene, `${namespace}.safari.busy_eating`) ?? "", null, 1000, false ); + await showEncounterText(scene, getEncounterText(scene, `${namespace}:safari.busy_eating`) ?? "", null, 1000, false ); } else { - await showEncounterText(scene, getEncounterText(scene, `${namespace}.safari.eating`) ?? "", null, 1000, false); + await showEncounterText(scene, getEncounterText(scene, `${namespace}:safari.eating`) ?? "", null, 1000, false); } await doEndTurn(scene, 1); @@ -198,11 +198,11 @@ const safariZoneGameOptions: MysteryEncounterOption[] = [ MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.safari.3.label`, - buttonTooltip: `${namespace}.safari.3.tooltip`, + buttonLabel: `${namespace}:safari.3.label`, + buttonTooltip: `${namespace}:safari.3.tooltip`, selected: [ { - text: `${namespace}.safari.3.selected`, + text: `${namespace}:safari.3.selected`, }, ], }) @@ -215,9 +215,9 @@ const safariZoneGameOptions: MysteryEncounterOption[] = [ // 80% chance to decrease catch stage -1 const catchChangeResult = tryChangeCatchStage(scene, -1, 8); if (!catchChangeResult) { - await showEncounterText(scene, getEncounterText(scene, `${namespace}.safari.beside_itself_angry`) ?? "", null, 1000, false ); + await showEncounterText(scene, getEncounterText(scene, `${namespace}:safari.beside_itself_angry`) ?? "", null, 1000, false ); } else { - await showEncounterText(scene, getEncounterText(scene, `${namespace}.safari.angry`) ?? "", null, 1000, false ); + await showEncounterText(scene, getEncounterText(scene, `${namespace}:safari.angry`) ?? "", null, 1000, false ); } await doEndTurn(scene, 2); @@ -227,8 +227,8 @@ const safariZoneGameOptions: MysteryEncounterOption[] = [ MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.safari.4.label`, - buttonTooltip: `${namespace}.safari.4.tooltip`, + buttonLabel: `${namespace}:safari.4.label`, + buttonTooltip: `${namespace}:safari.4.tooltip`, }) .withOptionPhase(async (scene: BattleScene) => { // Flee option @@ -253,7 +253,7 @@ async function summonSafariPokemon(scene: BattleScene) { const encounter = scene.currentBattle.mysteryEncounter!; // Message pokemon remaining encounter.setDialogueToken("remainingCount", encounter.misc.safariPokemonRemaining); - scene.queueMessage(getEncounterText(scene, `${namespace}.safari.remaining_count`) ?? "", null, true); + scene.queueMessage(getEncounterText(scene, `${namespace}:safari.remaining_count`) ?? "", null, true); // Generate pokemon using safariPokemonRemaining so they are always the same pokemon no matter how many turns are taken // Safari pokemon roll twice on shiny and HA chances, but are otherwise normal @@ -518,7 +518,7 @@ async function doEndTurn(scene: BattleScene, cursorIndex: number) { leaveEncounterWithoutBattle(scene, true); } } else { - scene.queueMessage(getEncounterText(scene, `${namespace}.safari.watching`) ?? "", 0, null, 1000); + scene.queueMessage(getEncounterText(scene, `${namespace}:safari.watching`) ?? "", 0, null, 1000); initSubsequentOptionSelect(scene, { overrideOptions: safariZoneGameOptions, startingCursorIndex: cursorIndex, hideDescription: true }); } } diff --git a/src/data/mystery-encounters/encounters/shady-vitamin-dealer-encounter.ts b/src/data/mystery-encounters/encounters/shady-vitamin-dealer-encounter.ts index d57a47cb689..a8ddfc28ae9 100644 --- a/src/data/mystery-encounters/encounters/shady-vitamin-dealer-encounter.ts +++ b/src/data/mystery-encounters/encounters/shady-vitamin-dealer-encounter.ts @@ -18,7 +18,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import i18next from "i18next"; /** the i18n namespace for this encounter */ -const namespace = "mysteryEncounter:shadyVitaminDealer"; +const namespace = "mysteryEncounters/shadyVitaminDealer"; const VITAMIN_DEALER_CHEAP_PRICE_MULTIPLIER = 1.5; const VITAMIN_DEALER_EXPENSIVE_PRICE_MULTIPLIER = 3.5; @@ -55,26 +55,26 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - text: `${namespace}.intro_dialogue`, - speaker: `${namespace}.speaker`, + text: `${namespace}:intro_dialogue`, + speaker: `${namespace}:speaker`, }, ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption( MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withSceneMoneyRequirement(0, VITAMIN_DEALER_CHEAP_PRICE_MULTIPLIER) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -103,7 +103,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = return i18next.t("partyUiHandler:cantBeUsed", { pokemonName: pokemon.getNameToRender() }) ?? null; } if (!encounter.pokemonMeetsPrimaryRequirements(scene, pokemon)) { - return getEncounterText(scene, `${namespace}.invalid_selection`) ?? null; + return getEncounterText(scene, `${namespace}:invalid_selection`) ?? null; } return null; @@ -139,7 +139,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = chosenPokemon.nature = newNature; encounter.setDialogueToken("newNature", getNatureName(newNature)); - queueEncounterMessage(scene, `${namespace}.cheap_side_effects`); + queueEncounterMessage(scene, `${namespace}:cheap_side_effects`); setEncounterExp(scene, [chosenPokemon.id], 100); chosenPokemon.updateInfo(); }) @@ -150,11 +150,11 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withSceneMoneyRequirement(0, VITAMIN_DEALER_EXPENSIVE_PRICE_MULTIPLIER) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -178,7 +178,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = // Only Pokemon that can gain benefits are unfainted const selectableFilter = (pokemon: Pokemon) => { - return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}.invalid_selection`); + return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}:invalid_selection`); }; return selectPokemonForOption(scene, onPokemonSelected, undefined, selectableFilter); @@ -200,7 +200,7 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = const encounter = scene.currentBattle.mysteryEncounter!; const chosenPokemon = encounter.misc.chosenPokemon; - queueEncounterMessage(scene, `${namespace}.no_bad_effects`); + queueEncounterMessage(scene, `${namespace}:no_bad_effects`); setEncounterExp(scene, [chosenPokemon.id], 100); chosenPokemon.updateInfo(); @@ -209,12 +209,12 @@ export const ShadyVitaminDealerEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, - speaker: `${namespace}.speaker` + text: `${namespace}:option.3.selected`, + speaker: `${namespace}:speaker` } ] }, diff --git a/src/data/mystery-encounters/encounters/slumbering-snorlax-encounter.ts b/src/data/mystery-encounters/encounters/slumbering-snorlax-encounter.ts index fe61766a888..5abd4839c0c 100644 --- a/src/data/mystery-encounters/encounters/slumbering-snorlax-encounter.ts +++ b/src/data/mystery-encounters/encounters/slumbering-snorlax-encounter.ts @@ -21,7 +21,7 @@ import { BerryType } from "#enums/berry-type"; import { MysteryEncounterPokemonData } from "#app/data/mystery-encounters/mystery-encounter-pokemon-data"; /** i18n namespace for the encounter */ -const namespace = "mysteryEncounter:slumberingSnorlax"; +const namespace = "mysteryEncounters/slumberingSnorlax"; /** * Sleeping Snorlax encounter. @@ -48,7 +48,7 @@ export const SlumberingSnorlaxEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) .withOnInit((scene: BattleScene) => { @@ -88,16 +88,16 @@ export const SlumberingSnorlaxEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }, @@ -123,11 +123,11 @@ export const SlumberingSnorlaxEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }, @@ -135,7 +135,7 @@ export const SlumberingSnorlaxEncounter: MysteryEncounter = // Fall asleep waiting for Snorlax // Full heal party scene.unshiftPhase(new PartyHealPhase(scene, true)); - queueEncounterMessage(scene, `${namespace}.option.2.rest_result`); + queueEncounterMessage(scene, `${namespace}:option.2.rest_result`); leaveEncounterWithoutBattle(scene); } ) @@ -144,12 +144,12 @@ export const SlumberingSnorlaxEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL) .withPrimaryPokemonRequirement(new MoveRequirement(STEALING_MOVES)) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected` + text: `${namespace}:option.3.selected` } ] }) diff --git a/src/data/mystery-encounters/encounters/teleporting-hijinks-encounter.ts b/src/data/mystery-encounters/encounters/teleporting-hijinks-encounter.ts index 386f4170156..f685bdae2a1 100644 --- a/src/data/mystery-encounters/encounters/teleporting-hijinks-encounter.ts +++ b/src/data/mystery-encounters/encounters/teleporting-hijinks-encounter.ts @@ -23,7 +23,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { getEncounterPokemonLevelForWave, STANDARD_ENCOUNTER_BOOSTED_LEVEL_MODIFIER } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; /** the i18n namespace for this encounter */ -const namespace = "mysteryEncounter:teleportingHijinks"; +const namespace = "mysteryEncounters/teleportingHijinks"; const MONEY_COST_MULTIPLIER = 1.75; const BIOME_CANDIDATES = [Biome.SPACE, Biome.FAIRY_CAVE, Biome.LABORATORY, Biome.ISLAND, Biome.WASTELAND, Biome.DOJO]; @@ -55,12 +55,12 @@ export const TeleportingHijinksEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, } ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; const price = scene.getWaveMoneyAmount(MONEY_COST_MULTIPLIER); @@ -76,11 +76,11 @@ export const TeleportingHijinksEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT) .withSceneMoneyRequirement(0, MONEY_COST_MULTIPLIER) // Must be able to pay teleport cost .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, } ], }) @@ -100,12 +100,12 @@ export const TeleportingHijinksEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL) .withPokemonTypeRequirement(MACHINE_INTERFACING_TYPES, true, 1) // Must have Steel or Electric type .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.disabled_tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, } ], }) @@ -119,11 +119,11 @@ export const TeleportingHijinksEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }, @@ -162,10 +162,10 @@ async function doBiomeTransitionDialogueAndBattleInit(scene: BattleScene) { const newBiome = filteredBiomes[randSeedInt(filteredBiomes.length)]; // Show dialogue and transition biome - await showEncounterText(scene, `${namespace}.transport`); + await showEncounterText(scene, `${namespace}:transport`); await Promise.all([animateBiomeChange(scene, newBiome), transitionMysteryEncounterIntroVisuals(scene)]); scene.playBgm(); - await showEncounterText(scene, `${namespace}.attacked`); + await showEncounterText(scene, `${namespace}:attacked`); // Init enemy const level = getEncounterPokemonLevelForWave(scene, STANDARD_ENCOUNTER_BOOSTED_LEVEL_MODIFIER); @@ -186,7 +186,7 @@ async function doBiomeTransitionDialogueAndBattleInit(scene: BattleScene) { isBoss: true, tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON], mysteryEncounterBattleEffects: (pokemon: Pokemon) => { - queueEncounterMessage(pokemon.scene, `${namespace}.boss_enraged`); + queueEncounterMessage(pokemon.scene, `${namespace}:boss_enraged`); pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, statChangesForBattle, 1)); } }], diff --git a/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts b/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts index e75e7e9f580..24e777d8c88 100644 --- a/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts +++ b/src/data/mystery-encounters/encounters/the-expert-pokemon-breeder-encounter.ts @@ -26,7 +26,7 @@ import { Type } from "#app/data/type"; import { getPokeballTintColor } from "#app/data/pokeball"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:expertPokemonBreeder"; +const namespace = "mysteryEncounters/theExpertPokemonBreeder"; const trainerNameKey = "trainerNames:expert_pokemon_breeder"; @@ -85,11 +85,11 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = .withIntroSpriteConfigs([]) // These are set in onInit() .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { speaker: trainerNameKey, - text: `${namespace}.intro_dialogue`, + text: `${namespace}:intro_dialogue`, }, ]) .withOnInit((scene: BattleScene) => { @@ -138,45 +138,45 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = // Dialogue and egg calcs for Pokemon 1 const [pokemon1CommonEggs, pokemon1RareEggs] = calculateEggRewardsForPokemon(pokemon1); - let pokemon1Tooltip = getEncounterText(scene, `${namespace}.option.1.tooltip_base`)!; + let pokemon1Tooltip = getEncounterText(scene, `${namespace}:option.1.tooltip_base`)!; if (pokemon1RareEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon1RareEggs, rarity: i18next.t("egg:greatTier") }); - pokemon1Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon1RareEggs, rarity: i18next.t("egg:greatTier") }); + pokemon1Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon1RareEggs", eggsText); } if (pokemon1CommonEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon1CommonEggs, rarity: i18next.t("egg:defaultTier") }); - pokemon1Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon1CommonEggs, rarity: i18next.t("egg:defaultTier") }); + pokemon1Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon1CommonEggs", eggsText); } encounter.options[0].dialogue!.buttonTooltip = pokemon1Tooltip; // Dialogue and egg calcs for Pokemon 2 const [pokemon2CommonEggs, pokemon2RareEggs] = calculateEggRewardsForPokemon(pokemon2); - let pokemon2Tooltip = getEncounterText(scene, `${namespace}.option.2.tooltip_base`)!; + let pokemon2Tooltip = getEncounterText(scene, `${namespace}:option.2.tooltip_base`)!; if (pokemon2RareEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon2RareEggs, rarity: i18next.t("egg:greatTier") }); - pokemon2Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon2RareEggs, rarity: i18next.t("egg:greatTier") }); + pokemon2Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon2RareEggs", eggsText); } if (pokemon2CommonEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon2CommonEggs, rarity: i18next.t("egg:defaultTier") }); - pokemon2Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon2CommonEggs, rarity: i18next.t("egg:defaultTier") }); + pokemon2Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon1CommonEggs", eggsText); } encounter.options[1].dialogue!.buttonTooltip = pokemon2Tooltip; // Dialogue and egg calcs for Pokemon 3 const [pokemon3CommonEggs, pokemon3RareEggs] = calculateEggRewardsForPokemon(pokemon3); - let pokemon3Tooltip = getEncounterText(scene, `${namespace}.option.3.tooltip_base`)!; + let pokemon3Tooltip = getEncounterText(scene, `${namespace}:option.3.tooltip_base`)!; if (pokemon3RareEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon3RareEggs, rarity: i18next.t("egg:greatTier") }); - pokemon3Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon3RareEggs, rarity: i18next.t("egg:greatTier") }); + pokemon3Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon3RareEggs", eggsText); } if (pokemon3CommonEggs > 0) { - const eggsText = i18next.t(`${namespace}.numEggs`, { count: pokemon3CommonEggs, rarity: i18next.t("egg:defaultTier") }); - pokemon3Tooltip += i18next.t(`${namespace}.eggs_tooltip`, { eggs: eggsText }); + const eggsText = i18next.t(`${namespace}:numEggs`, { count: pokemon3CommonEggs, rarity: i18next.t("egg:defaultTier") }); + pokemon3Tooltip += i18next.t(`${namespace}:eggs_tooltip`, { eggs: eggsText }); encounter.setDialogueToken("pokemon3CommonEggs", eggsText); } encounter.options[2].dialogue!.buttonTooltip = pokemon3Tooltip; @@ -195,18 +195,18 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption( MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, + buttonLabel: `${namespace}:option.1.label`, selected: [ { speaker: trainerNameKey, - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -228,17 +228,17 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = encounter.dialogue.outro = [ { speaker: trainerNameKey, - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]; if (encounter.dialogueTokens.hasOwnProperty("pokemon1CommonEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon1CommonEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon1CommonEggs"] }), }); } if (encounter.dialogueTokens.hasOwnProperty("pokemon1RareEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon1RareEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon1RareEggs"] }), }); } @@ -254,11 +254,11 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, + buttonLabel: `${namespace}:option.2.label`, selected: [ { speaker: trainerNameKey, - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -280,17 +280,17 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = encounter.dialogue.outro = [ { speaker: trainerNameKey, - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]; if (encounter.dialogueTokens.hasOwnProperty("pokemon2CommonEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon2CommonEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon2CommonEggs"] }), }); } if (encounter.dialogueTokens.hasOwnProperty("pokemon2RareEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon2RareEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon2RareEggs"] }), }); } @@ -306,11 +306,11 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, + buttonLabel: `${namespace}:option.3.label`, selected: [ { speaker: trainerNameKey, - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -332,17 +332,17 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = encounter.dialogue.outro = [ { speaker: trainerNameKey, - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]; if (encounter.dialogueTokens.hasOwnProperty("pokemon3CommonEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon3CommonEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon3CommonEggs"] }), }); } if (encounter.dialogueTokens.hasOwnProperty("pokemon3RareEggs")) { encounter.dialogue.outro.push({ - text: i18next.t(`${namespace}.gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon3RareEggs"] }), + text: i18next.t(`${namespace}:gained_eggs`, { numEggs: encounter.dialogueTokens["pokemon3RareEggs"] }), }); } @@ -357,7 +357,7 @@ export const TheExpertPokemonBreederEncounter: MysteryEncounter = .withOutroDialogue([ { speaker: trainerNameKey, - text: `${namespace}.outro`, + text: `${namespace}:outro`, }, ]) .build(); @@ -374,7 +374,7 @@ function getPartyConfig(scene: BattleScene): EnemyPartyConfig { trainerType: TrainerType.EXPERT_POKEMON_BREEDER, pokemonConfigs: [ { - nickname: i18next.t(`${namespace}.cleffa_1_nickname`, { speciesName: getPokemonSpecies(cleffaSpecies).getName() }), + nickname: i18next.t(`${namespace}:cleffa_1_nickname`, { speciesName: getPokemonSpecies(cleffaSpecies).getName() }), species: getPokemonSpecies(cleffaSpecies), isBoss: false, abilityIndex: 1, // Magic Guard @@ -394,7 +394,7 @@ function getPartyConfig(scene: BattleScene): EnemyPartyConfig { if (scene.arena.biomeType === Biome.SPACE) { // All 3 members always Cleffa line, but different configs baseConfig.pokemonConfigs!.push({ - nickname: i18next.t(`${namespace}.cleffa_2_nickname`, { speciesName: getPokemonSpecies(cleffaSpecies).getName() }), + nickname: i18next.t(`${namespace}:cleffa_2_nickname`, { speciesName: getPokemonSpecies(cleffaSpecies).getName() }), species: getPokemonSpecies(cleffaSpecies), isBoss: false, abilityIndex: 1, // Magic Guard @@ -405,7 +405,7 @@ function getPartyConfig(scene: BattleScene): EnemyPartyConfig { ivs: [31, 31, 31, 31, 31, 31] }, { - nickname: i18next.t(`${namespace}.cleffa_3_nickname`, { speciesName: getPokemonSpecies(cleffaSpecies).getName() }), + nickname: i18next.t(`${namespace}:cleffa_3_nickname`, { speciesName: getPokemonSpecies(cleffaSpecies).getName() }), species: getPokemonSpecies(cleffaSpecies), isBoss: false, abilityIndex: 2, // Friend Guard / Unaware @@ -471,7 +471,7 @@ function calculateEggRewardsForPokemon(pokemon: PlayerPokemon): [number, number] } function getEggOptions(scene: BattleScene, commonEggs: number, rareEggs: number) { - const eggDescription = i18next.t(`${namespace}.title`) + ":\n" + i18next.t(trainerNameKey); + const eggDescription = i18next.t(`${namespace}:title`) + ":\n" + i18next.t(trainerNameKey); const eggOptions: IEggOptions[] = []; if (commonEggs > 0) { @@ -540,7 +540,7 @@ function onGameOver(scene: BattleScene) { encounter.dialogue.outro = [ { speaker: trainerNameKey, - text: `${namespace}.outro_failed`, + text: `${namespace}:outro_failed`, }, ]; diff --git a/src/data/mystery-encounters/encounters/the-pokemon-salesman-encounter.ts b/src/data/mystery-encounters/encounters/the-pokemon-salesman-encounter.ts index 53e27022195..4e199493c24 100644 --- a/src/data/mystery-encounters/encounters/the-pokemon-salesman-encounter.ts +++ b/src/data/mystery-encounters/encounters/the-pokemon-salesman-encounter.ts @@ -18,7 +18,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { Abilities } from "#enums/abilities"; /** the i18n namespace for this encounter */ -const namespace = "mysteryEncounter:pokemonSalesman"; +const namespace = "mysteryEncounters/thePokemonSalesman"; const MAX_POKEMON_PRICE_MULTIPLIER = 4; @@ -45,16 +45,16 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - text: `${namespace}.intro_dialogue`, - speaker: `${namespace}.speaker`, + text: `${namespace}:intro_dialogue`, + speaker: `${namespace}:speaker`, }, ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -95,8 +95,8 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = // Always max price for shiny (flip HA back to normal), and add special messaging priceMultiplier = MAX_POKEMON_PRICE_MULTIPLIER; pokemon.abilityIndex = 0; - encounter.dialogue.encounterOptionsDialogue!.description = `${namespace}.description_shiny`; - encounter.options[0].dialogue!.buttonTooltip = `${namespace}.option.1.tooltip_shiny`; + encounter.dialogue.encounterOptionsDialogue!.description = `${namespace}:description_shiny`; + encounter.options[0].dialogue!.buttonTooltip = `${namespace}:option.1.tooltip_shiny`; } const price = scene.getWaveMoneyAmount(priceMultiplier); encounter.setDialogueToken("purchasePokemon", pokemon.getNameToRender()); @@ -116,11 +116,11 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = .withHasDexProgress(true) .withSceneMoneyRequirement(0, MAX_POKEMON_PRICE_MULTIPLIER) // Wave scaling money multiplier of 2 .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected_message`, + text: `${namespace}:option.1.selected_message`, } ], }) @@ -133,7 +133,7 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = updatePlayerMoney(scene, -price, true, false); // Show dialogue - await showEncounterDialogue(scene, `${namespace}.option.1.selected_dialogue`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:option.1.selected_dialogue`, `${namespace}:speaker`); await transitionMysteryEncounterIntroVisuals(scene); // "Catch" purchased pokemon @@ -147,11 +147,11 @@ export const ThePokemonSalesmanEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }, diff --git a/src/data/mystery-encounters/encounters/the-strong-stuff-encounter.ts b/src/data/mystery-encounters/encounters/the-strong-stuff-encounter.ts index 10537cbe200..bd99c8babf7 100644 --- a/src/data/mystery-encounters/encounters/the-strong-stuff-encounter.ts +++ b/src/data/mystery-encounters/encounters/the-strong-stuff-encounter.ts @@ -20,7 +20,7 @@ import { StatStageChangePhase } from "#app/phases/stat-stage-change-phase"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:theStrongStuff"; +const namespace = "mysteryEncounters/theStrongStuff"; // Halved for HP stat const HIGH_BST_REDUCTION_VALUE = 15; @@ -64,7 +64,7 @@ export const TheStrongStuffEncounter: MysteryEncounter = ]) // Set in onInit() .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) .withOnInit((scene: BattleScene) => { @@ -102,7 +102,7 @@ export const TheStrongStuffEncounter: MysteryEncounter = ], tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON], mysteryEncounterBattleEffects: (pokemon: Pokemon) => { - queueEncounterMessage(pokemon.scene, `${namespace}.option.2.stat_boost`); + queueEncounterMessage(pokemon.scene, `${namespace}:option.2.stat_boost`); pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, [Stat.DEF, Stat.SPDEF], 2)); } } @@ -117,16 +117,16 @@ export const TheStrongStuffEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected` + text: `${namespace}:option.1.selected` } ] }, @@ -159,11 +159,11 @@ export const TheStrongStuffEncounter: MysteryEncounter = encounter.setDialogueToken("reductionValue", HIGH_BST_REDUCTION_VALUE.toString()); encounter.setDialogueToken("increaseValue", BST_INCREASE_VALUE.toString()); - await showEncounterText(scene, `${namespace}.option.1.selected_2`, null, undefined, true); + await showEncounterText(scene, `${namespace}:option.1.selected_2`, null, undefined, true); encounter.dialogue.outro = [ { - text: `${namespace}.outro`, + text: `${namespace}:outro`, } ]; setEncounterRewards(scene, { fillRemaining: true }); @@ -173,11 +173,11 @@ export const TheStrongStuffEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }, diff --git a/src/data/mystery-encounters/encounters/the-winstrate-challenge-encounter.ts b/src/data/mystery-encounters/encounters/the-winstrate-challenge-encounter.ts index 60061efbc7a..9e813800b59 100644 --- a/src/data/mystery-encounters/encounters/the-winstrate-challenge-encounter.ts +++ b/src/data/mystery-encounters/encounters/the-winstrate-challenge-encounter.ts @@ -25,7 +25,7 @@ import { ModifierTier } from "#app/modifier/modifier-tier"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:theWinstrateChallenge"; +const namespace = "mysteryEncounters/theWinstrateChallenge"; /** * The Winstrate Challenge encounter. @@ -74,11 +74,11 @@ export const TheWinstrateChallengeEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]) .withAutoHideIntroVisuals(false) @@ -94,17 +94,17 @@ export const TheWinstrateChallengeEncounter: MysteryEncounter = return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.1.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.1.selected`, }, ], }, @@ -119,12 +119,12 @@ export const TheWinstrateChallengeEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected`, }, ], }, @@ -142,7 +142,7 @@ async function spawnNextTrainerOrEndEncounter(scene: BattleScene) { const nextConfig = encounter.enemyPartyConfigs.pop(); if (!nextConfig) { await transitionMysteryEncounterIntroVisuals(scene, false, false); - await showEncounterDialogue(scene, `${namespace}.victory`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:victory`, `${namespace}:speaker`); // Give 10x Voucher const newModifier = modifierTypes.VOUCHER_PREMIUM().newModifier(); @@ -150,7 +150,7 @@ async function spawnNextTrainerOrEndEncounter(scene: BattleScene) { scene.playSound("item_fanfare"); await showEncounterText(scene, i18next.t("battle:rewardGain", { modifierName: newModifier?.type.name })); - await showEncounterDialogue(scene, `${namespace}.victory_2`, `${namespace}.speaker`); + await showEncounterDialogue(scene, `${namespace}:victory_2`, `${namespace}:speaker`); scene.ui.clearText(); // Clears "Winstrate" title from screen as rewards get animated in const machoBrace = generateModifierTypeOption(scene, modifierTypes.MYSTERY_ENCOUNTER_MACHO_BRACE)!; machoBrace.type.tier = ModifierTier.MASTER; diff --git a/src/data/mystery-encounters/encounters/training-session-encounter.ts b/src/data/mystery-encounters/encounters/training-session-encounter.ts index ea59b8003f5..107e73c2fb7 100644 --- a/src/data/mystery-encounters/encounters/training-session-encounter.ts +++ b/src/data/mystery-encounters/encounters/training-session-encounter.ts @@ -23,7 +23,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { isPokemonValidForEncounterOptionSelection } from "#app/data/mystery-encounters/utils/encounter-pokemon-utils"; /** The i18n namespace for the encounter */ -const namespace = "mysteryEncounter:trainingSession"; +const namespace = "mysteryEncounters/trainingSession"; /** * Training Session encounter. @@ -49,22 +49,22 @@ export const TrainingSessionEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, } ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOption( MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withHasDexProgress(true) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -78,7 +78,7 @@ export const TrainingSessionEncounter: MysteryEncounter = // Only Pokemon that are not KOed/legal can be trained const selectableFilter = (pokemon: Pokemon) => { - return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}.invalid_selection`); + return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}:invalid_selection`); }; return selectPokemonForOption(scene, onPokemonSelected, undefined, selectableFilter); @@ -156,7 +156,7 @@ export const TrainingSessionEncounter: MysteryEncounter = scene.addModifier(mod, true, false, false, true); } scene.updateModifiers(true); - queueEncounterMessage(scene, `${namespace}.option.1.finished`); + queueEncounterMessage(scene, `${namespace}:option.1.finished`); }; setEncounterRewards(scene, { fillRemaining: true }, undefined, onBeforeRewardsPhase); @@ -170,12 +170,12 @@ export const TrainingSessionEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withHasDexProgress(true) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - secondOptionPrompt: `${namespace}.option.2.select_prompt`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + secondOptionPrompt: `${namespace}:option.2.select_prompt`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -204,7 +204,7 @@ export const TrainingSessionEncounter: MysteryEncounter = // Only Pokemon that are not KOed/legal can be trained const selectableFilter = (pokemon: Pokemon) => { - return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}.invalid_selection`); + return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}:invalid_selection`); }; return selectPokemonForOption(scene, onPokemonSelected, undefined, selectableFilter); @@ -221,7 +221,7 @@ export const TrainingSessionEncounter: MysteryEncounter = scene.removePokemonFromPlayerParty(playerPokemon, false); const onBeforeRewardsPhase = () => { - queueEncounterMessage(scene, `${namespace}.option.2.finished`); + queueEncounterMessage(scene, `${namespace}:option.2.finished`); // Add the pokemon back to party with Nature change playerPokemon.setNature(encounter.misc.chosenNature); scene.gameData.setPokemonCaught(playerPokemon, false); @@ -246,12 +246,12 @@ export const TrainingSessionEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withHasDexProgress(true) .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - secondOptionPrompt: `${namespace}.option.3.select_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + secondOptionPrompt: `${namespace}:option.3.select_prompt`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }) @@ -295,7 +295,7 @@ export const TrainingSessionEncounter: MysteryEncounter = // Only Pokemon that are not KOed/legal can be trained const selectableFilter = (pokemon: Pokemon) => { - return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}.invalid_selection`); + return isPokemonValidForEncounterOptionSelection(pokemon, scene, `${namespace}:invalid_selection`); }; return selectPokemonForOption(scene, onPokemonSelected, undefined, selectableFilter); @@ -316,7 +316,7 @@ export const TrainingSessionEncounter: MysteryEncounter = scene.removePokemonFromPlayerParty(playerPokemon, false); const onBeforeRewardsPhase = () => { - queueEncounterMessage(scene, `${namespace}.option.3.finished`); + queueEncounterMessage(scene, `${namespace}:option.3.finished`); // Add the pokemon back to party with ability change const abilityIndex = encounter.misc.abilityIndex; @@ -356,11 +356,11 @@ export const TrainingSessionEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.4.label`, - buttonTooltip: `${namespace}.option.4.tooltip`, + buttonLabel: `${namespace}:option.4.label`, + buttonTooltip: `${namespace}:option.4.tooltip`, selected: [ { - text: `${namespace}.option.4.selected`, + text: `${namespace}:option.4.selected`, }, ], }, diff --git a/src/data/mystery-encounters/encounters/trash-to-treasure-encounter.ts b/src/data/mystery-encounters/encounters/trash-to-treasure-encounter.ts index 4b2333297c0..9673924e6d1 100644 --- a/src/data/mystery-encounters/encounters/trash-to-treasure-encounter.ts +++ b/src/data/mystery-encounters/encounters/trash-to-treasure-encounter.ts @@ -19,7 +19,7 @@ import { PokemonMove } from "#app/field/pokemon"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for this encounter */ -const namespace = "mysteryEncounter:trashToTreasure"; +const namespace = "mysteryEncounters/trashToTreasure"; const SOUND_EFFECT_WAIT_TIME = 700; @@ -51,12 +51,12 @@ export const TrashToTreasureEncounter: MysteryEncounter = .withAutoHideIntroVisuals(false) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { const encounter = scene.currentBattle.mysteryEncounter!; @@ -90,11 +90,11 @@ export const TrashToTreasureEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }) @@ -123,18 +123,18 @@ export const TrashToTreasureEncounter: MysteryEncounter = MysteryEncounterOptionBuilder .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }) .withOptionPhase(async (scene: BattleScene) => { // Investigate garbage, battle Gmax Garbodor scene.setFieldScale(0.75); - await showEncounterText(scene, `${namespace}.option.2.selected_2`); + await showEncounterText(scene, `${namespace}:option.2.selected_2`); transitionMysteryEncounterIntroVisuals(scene); const encounter = scene.currentBattle.mysteryEncounter!; diff --git a/src/data/mystery-encounters/encounters/uncommon-breed-encounter.ts b/src/data/mystery-encounters/encounters/uncommon-breed-encounter.ts index 14ba7895434..d06720400c2 100644 --- a/src/data/mystery-encounters/encounters/uncommon-breed-encounter.ts +++ b/src/data/mystery-encounters/encounters/uncommon-breed-encounter.ts @@ -25,7 +25,7 @@ import { Stat } from "#enums/stat"; import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; /** the i18n namespace for the encounter */ -const namespace = "mysteryEncounter:uncommonBreed"; +const namespace = "mysteryEncounters/uncommonBreed"; /** * Uncommon Breed encounter. @@ -42,7 +42,7 @@ export const UncommonBreedEncounter: MysteryEncounter = .withIntroSpriteConfigs([]) // Set in onInit() .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, ]) .withOnInit((scene: BattleScene) => { @@ -85,7 +85,7 @@ export const UncommonBreedEncounter: MysteryEncounter = isBoss: false, tags: [BattlerTagType.MYSTERY_ENCOUNTER_POST_SUMMON], mysteryEncounterBattleEffects: (pokemon: Pokemon) => { - queueEncounterMessage(pokemon.scene, `${namespace}.option.1.stat_boost`); + queueEncounterMessage(pokemon.scene, `${namespace}:option.1.stat_boost`); pokemon.scene.unshiftPhase(new StatStageChangePhase(pokemon.scene, pokemon.getBattlerIndex(), true, statChangesForBattle, 1)); } }], @@ -125,16 +125,16 @@ export const UncommonBreedEncounter: MysteryEncounter = scene.time.delayedCall(500, () => scene.playSound("battle_anims/PRSFX- Spotlight2")); return true; }) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withSimpleOption( { - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }, @@ -167,12 +167,12 @@ export const UncommonBreedEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL) .withSceneRequirement(new PersistentModifierRequirement("BerryModifier", 4)) // Will set option2PrimaryName and option2PrimaryMove dialogue tokens automatically .withDialogue({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.disabled_tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`, selected: [ { - text: `${namespace}.option.2.selected` + text: `${namespace}:option.2.selected` } ] }) @@ -211,12 +211,12 @@ export const UncommonBreedEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL) .withPrimaryPokemonRequirement(new MoveRequirement(CHARMING_MOVES)) // Will set option2PrimaryName and option2PrimaryMove dialogue tokens automatically .withDialogue({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected` + text: `${namespace}:option.3.selected` } ] }) diff --git a/src/data/mystery-encounters/encounters/weird-dream-encounter.ts b/src/data/mystery-encounters/encounters/weird-dream-encounter.ts index 71e8491df69..1e68a894bc4 100644 --- a/src/data/mystery-encounters/encounters/weird-dream-encounter.ts +++ b/src/data/mystery-encounters/encounters/weird-dream-encounter.ts @@ -23,7 +23,7 @@ import { CLASSIC_MODE_MYSTERY_ENCOUNTER_WAVES } from "#app/game-mode"; import { Challenges } from "#enums/challenges"; /** i18n namespace for encounter */ -const namespace = "mysteryEncounter:weirdDream"; +const namespace = "mysteryEncounters/weirdDream"; /** Exclude Ultra Beasts, Paradox, Eternatus, and all legendary/mythical/trio pokemon that are below 570 BST */ const EXCLUDED_TRANSFORMATION_SPECIES = [ @@ -118,16 +118,16 @@ export const WeirdDreamEncounter: MysteryEncounter = ]) .withIntroDialogue([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]) - .withTitle(`${namespace}.title`) - .withDescription(`${namespace}.description`) - .withQuery(`${namespace}.query`) + .withTitle(`${namespace}:title`) + .withDescription(`${namespace}:description`) + .withQuery(`${namespace}:query`) .withOnInit((scene: BattleScene) => { scene.loadBgm("mystery_encounter_weird_dream", "mystery_encounter_weird_dream.mp3"); return true; @@ -141,11 +141,11 @@ export const WeirdDreamEncounter: MysteryEncounter = .newOptionWithMode(MysteryEncounterOptionMode.DEFAULT) .withHasDexProgress(true) .withDialogue({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, } ], }) @@ -165,7 +165,7 @@ export const WeirdDreamEncounter: MysteryEncounter = }) .withOptionPhase(async (scene: BattleScene) => { // Starts cutscene dialogue, but does not await so that cutscene plays as player goes through dialogue - const cutsceneDialoguePromise = showEncounterText(scene, `${namespace}.option.1.cutscene`); + const cutsceneDialoguePromise = showEncounterText(scene, `${namespace}:option.1.cutscene`); // Change the entire player's party // Wait for all new Pokemon assets to be loaded before showing transformation animations @@ -189,7 +189,7 @@ export const WeirdDreamEncounter: MysteryEncounter = await cutsceneDialoguePromise; doHideDreamBackground(scene); - await showEncounterText(scene, `${namespace}.option.1.dream_complete`); + await showEncounterText(scene, `${namespace}:option.1.dream_complete`); await doNewTeamPostProcess(scene, transformations); setEncounterRewards(scene, { guaranteedModifierTypeFuncs: [modifierTypes.MEMORY_MUSHROOM, modifierTypes.ROGUE_BALL, modifierTypes.MINT, modifierTypes.MINT]}); @@ -199,11 +199,11 @@ export const WeirdDreamEncounter: MysteryEncounter = ) .withSimpleOption( { - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }, diff --git a/src/data/mystery-encounters/mystery-encounter-requirements.ts b/src/data/mystery-encounters/mystery-encounter-requirements.ts index 1b14aa91847..5fa2a7066a5 100644 --- a/src/data/mystery-encounters/mystery-encounter-requirements.ts +++ b/src/data/mystery-encounters/mystery-encounter-requirements.ts @@ -8,13 +8,13 @@ import { TimeOfDay } from "#enums/time-of-day"; import { Nature } from "../nature"; import { EvolutionItem, pokemonEvolutions } from "../pokemon-evolutions"; import { FormChangeItem, pokemonFormChanges, SpeciesFormChangeItemTrigger } from "../pokemon-forms"; -import { SpeciesFormKey } from "../pokemon-species"; import { StatusEffect } from "../status-effect"; import { Type } from "../type"; import { WeatherType } from "../weather"; import { MysteryEncounterType } from "#enums/mystery-encounter-type"; import { AttackTypeBoosterModifier } from "#app/modifier/modifier"; import { AttackTypeBoosterModifierType } from "#app/modifier/modifier-type"; +import { SpeciesFormKey } from "#enums/species-form-key"; export interface EncounterRequirement { meetsRequirement(scene: BattleScene): boolean; // Boolean to see if a requirement is met diff --git a/src/data/pokemon-evolutions.ts b/src/data/pokemon-evolutions.ts index 698bbb8e9c9..fc1dfffb1ec 100644 --- a/src/data/pokemon-evolutions.ts +++ b/src/data/pokemon-evolutions.ts @@ -4,7 +4,6 @@ import Pokemon from "../field/pokemon"; import { Stat } from "#enums/stat"; import { Type } from "./type"; import * as Utils from "../utils"; -import { SpeciesFormKey } from "./pokemon-species"; import { WeatherType } from "./weather"; import { Nature } from "./nature"; import { Biome } from "#enums/biome"; @@ -12,6 +11,8 @@ import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import { TimeOfDay } from "#enums/time-of-day"; import { DamageMoneyRewardModifier, ExtraModifierModifier, MoneyMultiplierModifier } from "#app/modifier/modifier"; +import { SpeciesFormKey } from "#enums/species-form-key"; + export enum SpeciesWildEvolutionDelay { NONE, diff --git a/src/data/pokemon-forms.ts b/src/data/pokemon-forms.ts index 5c2dd06f7b3..37d8e5d2ffb 100644 --- a/src/data/pokemon-forms.ts +++ b/src/data/pokemon-forms.ts @@ -1,6 +1,5 @@ import { PokemonFormChangeItemModifier, TerastallizeModifier } from "../modifier/modifier"; import Pokemon from "../field/pokemon"; -import { SpeciesFormKey } from "./pokemon-species"; import { StatusEffect } from "./status-effect"; import { MoveCategory, allMoves } from "./move"; import { Type } from "./type"; @@ -13,6 +12,7 @@ import { getPokemonNameWithAffix } from "#app/messages"; import i18next from "i18next"; import { WeatherType } from "./weather"; import { Challenges } from "#app/enums/challenges"; +import { SpeciesFormKey } from "#enums/species-form-key"; export enum FormChangeItem { NONE, diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 94dbba958b5..ae1be63e4a0 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -16,6 +16,7 @@ import { Type } from "./type"; import { LevelMoves, pokemonFormLevelMoves, pokemonFormLevelMoves as pokemonSpeciesFormLevelMoves, pokemonSpeciesLevelMoves } from "./pokemon-level-moves"; import { Stat } from "#enums/stat"; import { Variant, VariantSet, variantColorCache, variantData } from "./variant"; +import { SpeciesFormKey } from "#enums/species-form-key"; export enum Region { NORMAL, @@ -928,20 +929,6 @@ export class PokemonForm extends PokemonSpeciesForm { } } -export enum SpeciesFormKey { - MEGA = "mega", - MEGA_X = "mega-x", - MEGA_Y = "mega-y", - PRIMAL = "primal", - ORIGIN = "origin", - INCARNATE = "incarnate", - THERIAN = "therian", - GIGANTAMAX = "gigantamax", - GIGANTAMAX_SINGLE = "gigantamax-single", - GIGANTAMAX_RAPID = "gigantamax-rapid", - ETERNAMAX = "eternamax" -} - export const allSpecies: PokemonSpecies[] = []; export function initSpecies() { diff --git a/src/enums/species-form-key.ts b/src/enums/species-form-key.ts new file mode 100644 index 00000000000..b324c876b87 --- /dev/null +++ b/src/enums/species-form-key.ts @@ -0,0 +1,13 @@ +export enum SpeciesFormKey { + MEGA = "mega", + MEGA_X = "mega-x", + MEGA_Y = "mega-y", + PRIMAL = "primal", + ORIGIN = "origin", + INCARNATE = "incarnate", + THERIAN = "therian", + GIGANTAMAX = "gigantamax", + GIGANTAMAX_SINGLE = "gigantamax-single", + GIGANTAMAX_RAPID = "gigantamax-rapid", + ETERNAMAX = "eternamax", +} diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index c66da0572ad..6afc0770a7f 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -4,7 +4,7 @@ import { Variant, VariantSet, variantColorCache } from "#app/data/variant"; import { variantData } from "#app/data/variant"; import BattleInfo, { PlayerBattleInfo, EnemyBattleInfo } from "../ui/battle-info"; import Move, { HighCritAttr, HitsTagAttr, applyMoveAttrs, FixedDamageAttr, VariableAtkAttr, allMoves, MoveCategory, TypelessAttr, CritOnlyAttr, getMoveTargets, OneHitKOAttr, VariableMoveTypeAttr, VariableDefAttr, AttackMove, ModifiedDamageAttr, VariableMoveTypeMultiplierAttr, IgnoreOpponentStatStagesAttr, SacrificialAttr, VariableMoveCategoryAttr, CounterDamageAttr, StatStageChangeAttr, RechargeAttr, ChargeAttr, IgnoreWeatherTypeDebuffAttr, BypassBurnDamageReductionAttr, SacrificialAttrOnHit, OneHitKOAccuracyAttr, RespectAttackTypeImmunityAttr, MoveTarget } from "../data/move"; -import { default as PokemonSpecies, PokemonSpeciesForm, SpeciesFormKey, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species"; +import { default as PokemonSpecies, PokemonSpeciesForm, getFusedSpeciesName, getPokemonSpecies, getPokemonSpeciesForm, getStarterValueFriendshipCap, speciesStarters, starterPassiveAbilities } from "../data/pokemon-species"; import { Constructor, isNullOrUndefined, randSeedInt } from "#app/utils"; import * as Utils from "../utils"; import { Type, TypeDamageMultiplier, getTypeDamageMultiplier, getTypeRgb } from "../data/type"; @@ -62,6 +62,7 @@ import { PokemonAnimType } from "#app/enums/pokemon-anim-type"; import { PLAYER_PARTY_MAX_SIZE } from "#app/constants"; import { MysteryEncounterPokemonData } from "#app/data/mystery-encounters/mystery-encounter-pokemon-data"; import { SwitchType } from "#enums/switch-type"; +import { SpeciesFormKey } from "#enums/species-form-key"; /** `64/65536 -> 1/1024` */ const BASE_SHINY_CHANCE = 64; diff --git a/src/loading-scene.ts b/src/loading-scene.ts index b577ba542bd..6e7a6735157 100644 --- a/src/loading-scene.ts +++ b/src/loading-scene.ts @@ -5,7 +5,6 @@ import { SceneBase } from "./scene-base"; import { WindowVariant, getWindowVariantSuffix } from "./ui/ui-theme"; import { isMobile } from "./touch-controls"; import * as Utils from "./utils"; -import { initI18n } from "./plugins/i18n"; import { initPokemonPrevolutions } from "#app/data/pokemon-evolutions"; import { initBiomes } from "#app/data/biomes"; import { initEggMoves } from "#app/data/egg-moves"; @@ -31,7 +30,6 @@ export class LoadingScene extends SceneBase { super(LoadingScene.KEY); Phaser.Plugins.PluginCache.register("Loader", CacheBustedLoaderPlugin, "load"); - initI18n(); } preload() { diff --git a/src/locales/ca_ES/config.ts b/src/locales/ca_ES/config.ts deleted file mode 100644 index b9f92bb8f49..00000000000 --- a/src/locales/ca_ES/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const caEsConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts deleted file mode 100644 index 582272d4087..00000000000 --- a/src/locales/de/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const deConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts deleted file mode 100644 index 6958c579dd5..00000000000 --- a/src/locales/en/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const enConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts deleted file mode 100644 index 28d9a2d9346..00000000000 --- a/src/locales/es/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const esConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts deleted file mode 100644 index d4c75a0ce24..00000000000 --- a/src/locales/fr/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const frConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts deleted file mode 100644 index 129c0f67466..00000000000 --- a/src/locales/it/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const itConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/ja/config.ts b/src/locales/ja/config.ts deleted file mode 100644 index f806a792d39..00000000000 --- a/src/locales/ja/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const jaConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/ko/config.ts b/src/locales/ko/config.ts deleted file mode 100644 index 049fb016d33..00000000000 --- a/src/locales/ko/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const koConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts deleted file mode 100644 index fc4ae9000b4..00000000000 --- a/src/locales/pt_BR/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import abilityTriggers from "./ability-trigger.json"; -import ability from "./ability.json"; -import achv from "./achv.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battleScene from "./battle-scene.json"; -import battle from "./battle.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import common from "./common.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import dialogue from "./dialogue.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import menu from "./menu.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import modifierType from "./modifier-type.json"; -import modifier from "./modifier.json"; -import moveTriggers from "./move-trigger.json"; -import move from "./move.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonForm from "./pokemon-form.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonSummary from "./pokemon-summary.json"; -import pokemon from "./pokemon.json"; -import runHistory from "./run-history.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import settings from "./settings.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import terrain from "./terrain.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import trainerTitles from "./trainer-titles.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const ptBrConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory: runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts deleted file mode 100644 index 15a69eb481a..00000000000 --- a/src/locales/zh_CN/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const zhCnConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/locales/zh_TW/config.ts b/src/locales/zh_TW/config.ts deleted file mode 100644 index d1388d336cc..00000000000 --- a/src/locales/zh_TW/config.ts +++ /dev/null @@ -1,191 +0,0 @@ -import common from "./common.json"; -import settings from "./settings.json"; -import ability from "./ability.json"; -import abilityTriggers from "./ability-trigger.json"; -import arenaFlyout from "./arena-flyout.json"; -import arenaTag from "./arena-tag.json"; -import achv from "./achv.json"; -import battle from "./battle.json"; -import battleScene from "./battle-scene.json"; -import battleInfo from "./battle-info.json"; -import battleMessageUiHandler from "./battle-message-ui-handler.json"; -import battlerTags from "./battler-tags.json"; -import berry from "./berry.json"; -import bgmName from "./bgm-name.json"; -import biome from "./biome.json"; -import challenges from "./challenges.json"; -import commandUiHandler from "./command-ui-handler.json"; -import dialogue from "./dialogue.json"; -import battleSpecDialogue from "./dialogue-final-boss.json"; -import miscDialogue from "./dialogue-misc.json"; -import doubleBattleDialogue from "./dialogue-double-battle.json"; -import egg from "./egg.json"; -import fightUiHandler from "./fight-ui-handler.json"; -import filterBar from "./filter-bar.json"; -import gameMode from "./game-mode.json"; -import gameStatsUiHandler from "./game-stats-ui-handler.json"; -import growth from "./growth.json"; -import menu from "./menu.json"; -import menuUiHandler from "./menu-ui-handler.json"; -import modifier from "./modifier.json"; -import modifierType from "./modifier-type.json"; -import move from "./move.json"; -import nature from "./nature.json"; -import partyUiHandler from "./party-ui-handler.json"; -import pokeball from "./pokeball.json"; -import pokemon from "./pokemon.json"; -import pokemonForm from "./pokemon-form.json"; -import battlePokemonForm from "./pokemon-form-battle.json"; -import pokemonInfo from "./pokemon-info.json"; -import pokemonInfoContainer from "./pokemon-info-container.json"; -import pokemonSummary from "./pokemon-summary.json"; -import saveSlotSelectUiHandler from "./save-slot-select-ui-handler.json"; -import splashMessages from "./splash-messages.json"; -import starterSelectUiHandler from "./starter-select-ui-handler.json"; -import statusEffect from "./status-effect.json"; -import trainerTitles from "./trainer-titles.json"; -import trainerClasses from "./trainer-classes.json"; -import trainerNames from "./trainer-names.json"; -import tutorial from "./tutorial.json"; -import voucher from "./voucher.json"; -import weather from "./weather.json"; -import terrain from "./terrain.json"; -import modifierSelectUiHandler from "./modifier-select-ui-handler.json"; -import moveTriggers from "./move-trigger.json"; -import runHistory from "./run-history.json"; -import mysteryEncounterMessages from "./mystery-encounter-messages.json"; -import lostAtSea from "./mystery-encounters/lost-at-sea-dialogue.json"; -import mysteriousChest from "./mystery-encounters/mysterious-chest-dialogue.json"; -import mysteriousChallengers from "./mystery-encounters/mysterious-challengers-dialogue.json"; -import darkDeal from "./mystery-encounters/dark-deal-dialogue.json"; -import departmentStoreSale from "./mystery-encounters/department-store-sale-dialogue.json"; -import fieldTrip from "./mystery-encounters/field-trip-dialogue.json"; -import fieryFallout from "./mystery-encounters/fiery-fallout-dialogue.json"; -import fightOrFlight from "./mystery-encounters/fight-or-flight-dialogue.json"; -import safariZone from "./mystery-encounters/safari-zone-dialogue.json"; -import shadyVitaminDealer from "./mystery-encounters/shady-vitamin-dealer-dialogue.json"; -import slumberingSnorlax from "./mystery-encounters/slumbering-snorlax-dialogue.json"; -import trainingSession from "./mystery-encounters/training-session-dialogue.json"; -import theStrongStuff from "./mystery-encounters/the-strong-stuff-dialogue.json"; -import pokemonSalesman from "./mystery-encounters/the-pokemon-salesman-dialogue.json"; -import offerYouCantRefuse from "./mystery-encounters/an-offer-you-cant-refuse-dialogue.json"; -import delibirdy from "./mystery-encounters/delibirdy-dialogue.json"; -import absoluteAvarice from "./mystery-encounters/absolute-avarice-dialogue.json"; -import aTrainersTest from "./mystery-encounters/a-trainers-test-dialogue.json"; -import trashToTreasure from "./mystery-encounters/trash-to-treasure-dialogue.json"; -import berriesAbound from "./mystery-encounters/berries-abound-dialogue.json"; -import clowningAround from "./mystery-encounters/clowning-around-dialogue.json"; -import partTimer from "./mystery-encounters/part-timer-dialogue.json"; -import dancingLessons from "./mystery-encounters/dancing-lessons-dialogue.json"; -import weirdDream from "./mystery-encounters/weird-dream-dialogue.json"; -import theWinstrateChallenge from "./mystery-encounters/the-winstrate-challenge-dialogue.json"; -import teleportingHijinks from "./mystery-encounters/teleporting-hijinks-dialogue.json"; -import bugTypeSuperfan from "./mystery-encounters/bug-type-superfan-dialogue.json"; -import funAndGames from "./mystery-encounters/fun-and-games-dialogue.json"; -import uncommonBreed from "./mystery-encounters/uncommon-breed-dialogue.json"; -import globalTradeSystem from "./mystery-encounters/global-trade-system-dialogue.json"; -import expertPokemonBreeder from "./mystery-encounters/the-expert-pokemon-breeder-dialogue.json"; - -/** - * Dialogue/Text token injection patterns that can be used: - * - `$` will be treated as a new line for Message and Dialogue strings. - * - `@d{}` will add a time delay to text animation for Message and Dialogue strings. - * - `@s{}` will play a specified sound effect for Message and Dialogue strings. - * - `@f{}` will fade the screen to black for the given duration, then fade back in for Message and Dialogue strings. - * - `{{}}` (MYSTERY ENCOUNTERS ONLY) will auto-inject the matching dialogue token value that is stored in {@link IMysteryEncounter.dialogueTokens}. - * - (see [i18next interpolations](https://www.i18next.com/translation-function/interpolation)) for more details. - * - `@[]{}` (STATIC TEXT ONLY, NOT USEABLE WITH {@link UI.showText()} OR {@link UI.showDialogue()}) will auto-color the given text to a specified {@link TextStyle} (e.g. `TextStyle.SUMMARY_GREEN`). - */ -export const zhTwConfig = { - ability, - abilityTriggers, - arenaFlyout, - arenaTag, - battle, - battleScene, - battleInfo, - battleMessageUiHandler, - battlePokemonForm, - battlerTags, - berry, - bgmName, - biome, - challenges, - commandUiHandler, - common, - achv, - dialogue, - battleSpecDialogue, - miscDialogue, - doubleBattleDialogue, - egg, - fightUiHandler, - filterBar, - gameMode, - gameStatsUiHandler, - growth, - menu, - menuUiHandler, - modifier, - modifierType, - move, - nature, - pokeball, - pokemon, - pokemonForm, - pokemonInfo, - pokemonInfoContainer, - pokemonSummary, - saveSlotSelectUiHandler, - settings, - splashMessages, - starterSelectUiHandler, - statusEffect, - terrain, - titles: trainerTitles, - trainerClasses, - trainerNames, - tutorial, - voucher, - weather, - partyUiHandler, - modifierSelectUiHandler, - moveTriggers, - runHistory, - mysteryEncounter: { - // DO NOT REMOVE - "unit_test_dialogue": "{{test}}{{test}} {{test{{test}}}} {{test1}} {{test\}} {{test\\}} {{test\\\}} {test}}", - mysteriousChallengers, - mysteriousChest, - darkDeal, - fightOrFlight, - slumberingSnorlax, - trainingSession, - departmentStoreSale, - shadyVitaminDealer, - fieldTrip, - safariZone, - lostAtSea, - fieryFallout, - theStrongStuff, - pokemonSalesman, - offerYouCantRefuse, - delibirdy, - absoluteAvarice, - aTrainersTest, - trashToTreasure, - berriesAbound, - clowningAround, - partTimer, - dancingLessons, - weirdDream, - theWinstrateChallenge, - teleportingHijinks, - bugTypeSuperfan, - funAndGames, - uncommonBreed, - globalTradeSystem, - expertPokemonBreeder - }, - mysteryEncounterMessages -}; diff --git a/src/main.ts b/src/main.ts index b5f813bdf2f..92ee267bf65 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,12 +1,11 @@ import Phaser from "phaser"; -import BattleScene from "./battle-scene"; import InvertPostFX from "./pipelines/invert"; import { version } from "../package.json"; import UIPlugin from "phaser3-rex-plugins/templates/ui/ui-plugin"; import BBCodeTextPlugin from "phaser3-rex-plugins/plugins/bbcodetext-plugin"; import InputTextPlugin from "phaser3-rex-plugins/plugins/inputtext-plugin"; import TransitionImagePackPlugin from "phaser3-rex-plugins/templates/transitionimagepack/transitionimagepack-plugin"; -import { LoadingScene } from "./loading-scene"; +import { initI18n } from "./plugins/i18n"; // Catch global errors and display them in an alert so users can report the issue. @@ -25,52 +24,6 @@ window.addEventListener("unhandledrejection", (event) => { //alert(errorString); }); -const config: Phaser.Types.Core.GameConfig = { - type: Phaser.WEBGL, - parent: "app", - scale: { - width: 1920, - height: 1080, - mode: Phaser.Scale.FIT - }, - plugins: { - global: [{ - key: "rexInputTextPlugin", - plugin: InputTextPlugin, - start: true - }, { - key: "rexBBCodeTextPlugin", - plugin: BBCodeTextPlugin, - start: true - }, { - key: "rexTransitionImagePackPlugin", - plugin: TransitionImagePackPlugin, - start: true - }], - scene: [{ - key: "rexUI", - plugin: UIPlugin, - mapping: "rexUI" - }] - }, - input: { - mouse: { - target: "app" - }, - touch: { - target: "app" - }, - gamepad: true - }, - dom: { - createContainer: true - }, - pixelArt: true, - pipeline: [ InvertPostFX ] as unknown as Phaser.Types.Core.PipelineConfig, - scene: [ LoadingScene, BattleScene ], - version: version -}; - /** * Sets this object's position relative to another object with a given offset */ @@ -91,8 +44,55 @@ document.fonts.load("16px emerald").then(() => document.fonts.load("10px pkmnems let game; -const startGame = () => { - game = new Phaser.Game(config); +const startGame = async () => { + await initI18n(); + const LoadingScene = (await import("./loading-scene")).LoadingScene; + const BattleScene = (await import("./battle-scene")).default; + game = new Phaser.Game({ + type: Phaser.WEBGL, + parent: "app", + scale: { + width: 1920, + height: 1080, + mode: Phaser.Scale.FIT + }, + plugins: { + global: [{ + key: "rexInputTextPlugin", + plugin: InputTextPlugin, + start: true + }, { + key: "rexBBCodeTextPlugin", + plugin: BBCodeTextPlugin, + start: true + }, { + key: "rexTransitionImagePackPlugin", + plugin: TransitionImagePackPlugin, + start: true + }], + scene: [{ + key: "rexUI", + plugin: UIPlugin, + mapping: "rexUI" + }] + }, + input: { + mouse: { + target: "app" + }, + touch: { + target: "app" + }, + gamepad: true + }, + dom: { + createContainer: true + }, + pixelArt: true, + pipeline: [ InvertPostFX ] as unknown as Phaser.Types.Core.PipelineConfig, + scene: [ LoadingScene, BattleScene ], + version: version + }); game.sound.pauseOnBlur = false; }; diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index fb69a96448a..7e4ef402ead 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -11,7 +11,6 @@ import * as Utils from "../utils"; import { getBerryEffectDescription, getBerryName } from "../data/berry"; import { Unlockables } from "../system/unlockables"; import { getStatusEffectDescriptor, StatusEffect } from "../data/status-effect"; -import { SpeciesFormKey } from "../data/pokemon-species"; import BattleScene from "../battle-scene"; import { getVoucherTypeIcon, getVoucherTypeName, VoucherType } from "../system/voucher"; import { FormChangeItem, pokemonFormChanges, SpeciesFormChangeCondition, SpeciesFormChangeItemTrigger } from "../data/pokemon-forms"; @@ -27,6 +26,7 @@ import { Moves } from "#enums/moves"; import { Species } from "#enums/species"; import { getPokemonNameWithAffix } from "#app/messages"; import { PermanentStat, TEMP_BATTLE_STATS, TempBattleStat, Stat, getStatKey } from "#app/enums/stat"; +import { SpeciesFormKey } from "#enums/species-form-key"; const outputModifierData = false; const useMaxWeightForOutput = false; diff --git a/src/phases/form-change-phase.ts b/src/phases/form-change-phase.ts index 1f18457146d..410163a70e4 100644 --- a/src/phases/form-change-phase.ts +++ b/src/phases/form-change-phase.ts @@ -1,6 +1,5 @@ import BattleScene from "../battle-scene"; import * as Utils from "../utils"; -import { SpeciesFormKey } from "../data/pokemon-species"; import { achvs } from "../system/achv"; import { SpeciesFormChange, getSpeciesFormChangeMessage } from "../data/pokemon-forms"; import { PlayerPokemon } from "../field/pokemon"; @@ -10,6 +9,7 @@ import { getPokemonNameWithAffix } from "../messages"; import { EndEvolutionPhase } from "./end-evolution-phase"; import { EvolutionPhase } from "./evolution-phase"; import { BattlerTagType } from "#app/enums/battler-tag-type"; +import { SpeciesFormKey } from "#enums/species-form-key"; export class FormChangePhase extends EvolutionPhase { private formChange: SpeciesFormChange; diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index ec3fe93c765..5f7be4768a3 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -1,18 +1,11 @@ +import { camelCaseToKebabCase, } from "#app/utils"; import i18next from "i18next"; import LanguageDetector from "i18next-browser-languagedetector"; +import HttpBackend from "i18next-http-backend"; import processor, { KoreanPostpositionProcessor } from "i18next-korean-postposition-processor"; +import pkg from "../../package.json"; -import { caEsConfig} from "#app/locales/ca_ES/config"; -import { deConfig } from "#app/locales/de/config"; -import { enConfig } from "#app/locales/en/config"; -import { esConfig } from "#app/locales/es/config"; -import { frConfig } from "#app/locales/fr/config"; -import { itConfig } from "#app/locales/it/config"; -import { koConfig } from "#app/locales/ko/config"; -import { jaConfig } from "#app/locales/ja/config"; -import { ptBrConfig } from "#app/locales/pt_BR/config"; -import { zhCnConfig } from "#app/locales/zh_CN/config"; -import { zhTwConfig } from "#app/locales/zh_TW/config"; +//#region Interfaces/Types interface LoadingFontFaceProperty { face: FontFace, @@ -20,6 +13,10 @@ interface LoadingFontFaceProperty { only?: Array } +//#region Constants + +let isInitialized = false; + const unicodeRanges = { fullwidth: "U+FF00-FFEF", hangul: "U+1100-11FF,U+3130-318F,U+A960-A97F,U+AC00-D7AF,U+D7B0-D7FF", @@ -28,6 +25,7 @@ const unicodeRanges = { CJKIdeograph: "U+4E00-9FFF", specialCharacters: "U+266A,U+2605,U+2665,U+2663" //♪.★,♥,♣ }; + const rangesByLanguage = { korean: [unicodeRanges.CJKCommon, unicodeRanges.hangul].join(","), chinese: [unicodeRanges.CJKCommon, unicodeRanges.fullwidth, unicodeRanges.CJKIdeograph].join(","), @@ -74,6 +72,19 @@ const fonts: Array = [ }, ]; +/** maps namespaces that deviate from the file-name */ +const namespaceMap = { + titles: "trainer-titles", + moveTriggers: "move-trigger", + abilityTriggers: "ability-trigger", + battlePokemonForm: "pokemon-form-battle", + miscDialogue: "dialogue-misc", + battleSpecDialogue: "dialogue-final-boss", + doubleBattleDialogue: "dialogue-double-battle", +}; + +//#region Functions + async function initFonts(language: string | undefined) { const results = await Promise.allSettled( fonts @@ -89,6 +100,11 @@ async function initFonts(language: string | undefined) { } } +//#region Exports + +/** + * Initialize i18n with fonts + */ export async function initI18n(): Promise { // Prevent reinitialization if (isInitialized) { @@ -113,15 +129,116 @@ export async function initI18n(): Promise { * A: In src/system/settings.ts, add a new case to the Setting.Language switch statement. */ + i18next.use(HttpBackend); i18next.use(LanguageDetector); i18next.use(processor); i18next.use(new KoreanPostpositionProcessor()); await i18next.init({ - nonExplicitSupportedLngs: true, fallbackLng: "en", - supportedLngs: ["en", "es", "fr", "it", "de", "zh", "pt", "ko", "ja", "ca"], + supportedLngs: ["en", "es", "fr", "it", "de", "zh-CN", "zh-TW", "pt-BR", "ko", "ja", "ca-ES"], + backend: { + loadPath(lng: string, [ ns ]: string[]) { + let fileName: string; + if (namespaceMap[ns]) { + fileName = namespaceMap[ns]; + } else if (ns.startsWith("mysteryEncounters/")) { + fileName = camelCaseToKebabCase(ns + "Dialogue"); + } else { + fileName = camelCaseToKebabCase(ns); + } + return `/locales/${lng}/${fileName}.json?v=${pkg.version}`; + }, + }, defaultNS: "menu", - ns: Object.keys(enConfig), + ns: [ + "ability", + "abilityTriggers", + "arenaFlyout", + "arenaTag", + "battle", + "battleScene", + "battleInfo", + "battleMessageUiHandler", + "battlePokemonForm", + "battlerTags", + "berry", + "bgmName", + "biome", + "challenges", + "commandUiHandler", + "common", + "achv", + "dialogue", + "battleSpecDialogue", + "miscDialogue", + "doubleBattleDialogue", + "egg", + "fightUiHandler", + "filterBar", + "gameMode", + "gameStatsUiHandler", + "growth", + "menu", + "menuUiHandler", + "modifier", + "modifierType", + "move", + "nature", + "pokeball", + "pokemon", + "pokemonForm", + "pokemonInfo", + "pokemonInfoContainer", + "pokemonSummary", + "saveSlotSelectUiHandler", + "settings", + "splashMessages", + "starterSelectUiHandler", + "statusEffect", + "terrain", + "titles", + "trainerClasses", + "trainerNames", + "tutorial", + "voucher", + "weather", + "partyUiHandler", + "modifierSelectUiHandler", + "moveTriggers", + "runHistory", + "mysteryEncounters/mysteriousChallengers", + "mysteryEncounters/mysteriousChest", + "mysteryEncounters/darkDeal", + "mysteryEncounters/fightOrFlight", + "mysteryEncounters/slumberingSnorlax", + "mysteryEncounters/trainingSession", + "mysteryEncounters/departmentStoreSale", + "mysteryEncounters/shadyVitaminDealer", + "mysteryEncounters/fieldTrip", + "mysteryEncounters/safariZone", + "mysteryEncounters/lostAtSea", + "mysteryEncounters/fieryFallout", + "mysteryEncounters/theStrongStuff", + "mysteryEncounters/thePokemonSalesman", + "mysteryEncounters/anOfferYouCantRefuse", + "mysteryEncounters/delibirdy", + "mysteryEncounters/absoluteAvarice", + "mysteryEncounters/aTrainersTest", + "mysteryEncounters/trashToTreasure", + "mysteryEncounters/berriesAbound", + "mysteryEncounters/clowningAround", + "mysteryEncounters/partTimer", + "mysteryEncounters/dancingLessons", + "mysteryEncounters/weirdDream", + "mysteryEncounters/theWinstrateChallenge", + "mysteryEncounters/teleportingHijinks", + "mysteryEncounters/bugTypeSuperfan", + "mysteryEncounters/funAndGames", + "mysteryEncounters/uncommonBreed", + "mysteryEncounters/globalTradeSystem", + "mysteryEncounters/theExpertPokemonBreeder", + "mysteryEncounterMessages", + ], detection: { lookupLocalStorage: "prLang" }, @@ -129,41 +246,6 @@ export async function initI18n(): Promise { interpolation: { escapeValue: false, }, - resources: { - en: { - ...enConfig - }, - es: { - ...esConfig - }, - fr: { - ...frConfig - }, - it: { - ...itConfig - }, - de: { - ...deConfig - }, - "pt-BR": { - ...ptBrConfig - }, - "zh-CN": { - ...zhCnConfig - }, - "zh-TW": { - ...zhTwConfig - }, - ko: { - ...koConfig - }, - ja: { - ...jaConfig - }, - "ca-ES": { - ...caEsConfig - } - }, postProcess: ["korean-postposition"], }); @@ -189,11 +271,10 @@ export async function initI18n(): Promise { await initFonts(localStorage.getItem("prLang") ?? undefined); } -export default i18next; - export function getIsInitialized(): boolean { return isInitialized; } -let isInitialized = false; +export default i18next; +//#endregion diff --git a/src/test/abilities/ability_timing.test.ts b/src/test/abilities/ability_timing.test.ts index fb3d3af1a6b..16437df06c9 100644 --- a/src/test/abilities/ability_timing.test.ts +++ b/src/test/abilities/ability_timing.test.ts @@ -47,6 +47,6 @@ describe("Ability Timing", () => { await game.phaseInterceptor.to("MessagePhase"); const message = game.textInterceptor.getLatestMessage(); - expect(message).toContain("Attack fell"); + expect(message).toContain("battle:statFell"); }, 5000); }); diff --git a/src/test/localization/status-effect.test.ts b/src/test/data/status-effect.test.ts similarity index 97% rename from src/test/localization/status-effect.test.ts rename to src/test/data/status-effect.test.ts index 72b4dbd3099..bca3bd21c70 100644 --- a/src/test/localization/status-effect.test.ts +++ b/src/test/data/status-effect.test.ts @@ -1,4 +1,11 @@ -import { StatusEffect, getStatusEffectActivationText, getStatusEffectDescriptor, getStatusEffectHealText, getStatusEffectObtainText, getStatusEffectOverlapText } from "#app/data/status-effect"; +import { + StatusEffect, + getStatusEffectActivationText, + getStatusEffectDescriptor, + getStatusEffectHealText, + getStatusEffectObtainText, + getStatusEffectOverlapText, +} from "#app/data/status-effect"; import { mockI18next } from "#test/utils/testUtils"; import i18next from "i18next"; import { afterEach, beforeAll, describe, expect, it, vi } from "vitest"; diff --git a/src/test/items/toxic_orb.test.ts b/src/test/items/toxic_orb.test.ts index 95336c0793e..66806083f6f 100644 --- a/src/test/items/toxic_orb.test.ts +++ b/src/test/items/toxic_orb.test.ts @@ -58,11 +58,10 @@ describe("Items - Toxic orb", () => { // Toxic orb should trigger here await game.phaseInterceptor.run(MessagePhase); const message = game.textInterceptor.getLatestMessage(); - expect(message).toContain("was badly poisoned by the Toxic Orb"); + expect(message).toContain("statusEffect:toxic.obtainSource"); await game.phaseInterceptor.run(MessagePhase); const message2 = game.textInterceptor.getLatestMessage(); - expect(message2).toContain("is hurt"); - expect(message2).toContain("by poison"); + expect(message2).toBe("statusEffect:toxic.activation"); expect(game.scene.getParty()[0].status!.effect).toBe(StatusEffect.TOXIC); }, 20000); }); diff --git a/src/test/localization/french.test.ts b/src/test/localization/french.test.ts deleted file mode 100644 index 92b4c82d7cb..00000000000 --- a/src/test/localization/french.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { initI18n } from "#app/plugins/i18n"; -import { Species } from "#enums/species"; -import GameManager from "#test/utils/gameManager"; -import i18next from "i18next"; -import Phaser from "phaser"; -import { afterEach, beforeAll, describe, expect, it } from "vitest"; - -describe("Lokalization - french", () => { - let phaserGame: Phaser.Game; - let game: GameManager; - - beforeAll(() => { - initI18n(); - phaserGame = new Phaser.Game({ - type: Phaser.HEADLESS, - }); - }); - - afterEach(() => { - game.phaseInterceptor.restoreOg(); - }); - - it("test bulbasaur name english", async () => { - game = new GameManager(phaserGame); - await game.startBattle([ - Species.BULBASAUR, - ]); - expect(game.scene.getParty()[0].name).toBe("Bulbasaur"); - }, 20000); - - it("test bulbasaure name french", async () => { - const locale = "fr"; - i18next.changeLanguage(locale); - localStorage.setItem("prLang", locale); - game = new GameManager(phaserGame); - - await game.startBattle([ - Species.BULBASAUR, - ]); - expect(game.scene.getParty()[0].name).toBe("Bulbizarre"); - }, 20000); -}); diff --git a/src/test/localization/terrain.test.ts b/src/test/localization/terrain.test.ts deleted file mode 100644 index ed280177a06..00000000000 --- a/src/test/localization/terrain.test.ts +++ /dev/null @@ -1,191 +0,0 @@ -import { TerrainType, getTerrainName } from "#app/data/terrain"; -import { getTerrainBlockMessage, getTerrainClearMessage, getTerrainStartMessage } from "#app/data/weather"; -import { Species } from "#enums/species"; -import GameManager from "#test/utils/gameManager"; -import { mockI18next } from "#test/utils/testUtils"; -import i18next from "i18next"; -import Phaser from "phaser"; -import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; - -describe("terrain", () => { - let phaserGame: Phaser.Game; - let game: GameManager; - - beforeAll(() => { - phaserGame = new Phaser.Game({ - type: Phaser.HEADLESS, - }); - i18next.init(); - }); - - beforeEach(() => { - game = new GameManager(phaserGame); - game.override.battleType("single"); - }); - - describe("NONE", () => { - const terrainType = TerrainType.NONE; - - it("should return the obtain text", () => { - mockI18next(); - - const text = getTerrainName(terrainType); - expect(text).toBe(""); - }); - - it("should return the start text", () => { - mockI18next(); - - const text = getTerrainStartMessage(terrainType); - expect(text).toBeNull(); - }); - - it("should return the clear text", () => { - mockI18next(); - const text = getTerrainClearMessage(terrainType); - expect(text).toBeNull(); - }); - - it("should return the block text", async () => { - await game.startBattle([Species.MAGIKARP]); - const pokemon = game.scene.getPlayerPokemon()!; - mockI18next(); - const text = getTerrainBlockMessage(pokemon, terrainType); - expect(text).toBe("terrain:defaultBlockMessage"); - }); - }); - - describe("MISTY", () => { - const terrainType = TerrainType.MISTY; - - it("should return the obtain text", () => { - mockI18next(); - - const text = getTerrainName(terrainType); - expect(text).toBe("terrain:misty"); - }); - - it("should return the start text", () => { - mockI18next(); - - const text = getTerrainStartMessage(terrainType); - expect(text).toBe("terrain:mistyStartMessage"); - }); - - it("should return the clear text", () => { - mockI18next(); - const text = getTerrainClearMessage(terrainType); - expect(text).toBe("terrain:mistyClearMessage"); - }); - - it("should return the block text", async () => { - await game.startBattle([Species.MAGIKARP]); - const pokemon = game.scene.getPlayerPokemon()!; - mockI18next(); - const text = getTerrainBlockMessage(pokemon, terrainType); - expect(text).toBe("terrain:mistyBlockMessage"); - }); - }); - - describe("ELECTRIC", () => { - const terrainType = TerrainType.ELECTRIC; - - it("should return the obtain text", () => { - mockI18next(); - - const text = getTerrainName(terrainType); - expect(text).toBe("terrain:electric"); - }); - - it("should return the start text", () => { - mockI18next(); - - const text = getTerrainStartMessage(terrainType); - expect(text).toBe("terrain:electricStartMessage"); - }); - - it("should return the clear text", () => { - mockI18next(); - const text = getTerrainClearMessage(terrainType); - expect(text).toBe("terrain:electricClearMessage"); - }); - - it("should return the block text", async () => { - await game.startBattle([Species.MAGIKARP]); - const pokemon = game.scene.getPlayerPokemon()!; - mockI18next(); - const text = getTerrainBlockMessage(pokemon, terrainType); - expect(text).toBe("terrain:defaultBlockMessage"); - }); - }); - - describe("GRASSY", () => { - const terrainType = TerrainType.GRASSY; - - it("should return the obtain text", () => { - mockI18next(); - - const text = getTerrainName(terrainType); - expect(text).toBe("terrain:grassy"); - }); - - it("should return the start text", () => { - mockI18next(); - - const text = getTerrainStartMessage(terrainType); - expect(text).toBe("terrain:grassyStartMessage"); - }); - - it("should return the clear text", () => { - mockI18next(); - const text = getTerrainClearMessage(terrainType); - expect(text).toBe("terrain:grassyClearMessage"); - }); - - it("should return the block text", async () => { - await game.startBattle([Species.MAGIKARP]); - const pokemon = game.scene.getPlayerPokemon()!; - mockI18next(); - const text = getTerrainBlockMessage(pokemon, terrainType); - expect(text).toBe("terrain:defaultBlockMessage"); - }); - }); - - describe("PSYCHIC", () => { - const terrainType = TerrainType.PSYCHIC; - - it("should return the obtain text", () => { - mockI18next(); - - const text = getTerrainName(terrainType); - expect(text).toBe("terrain:psychic"); - }); - - it("should return the start text", () => { - mockI18next(); - - const text = getTerrainStartMessage(terrainType); - expect(text).toBe("terrain:psychicStartMessage"); - }); - - it("should return the clear text", () => { - mockI18next(); - const text = getTerrainClearMessage(terrainType); - expect(text).toBe("terrain:psychicClearMessage"); - }); - - it("should return the block text", async () => { - await game.startBattle([Species.MAGIKARP]); - const pokemon = game.scene.getPlayerPokemon()!; - mockI18next(); - const text = getTerrainBlockMessage(pokemon, terrainType); - expect(text).toBe("terrain:defaultBlockMessage"); - }); - }); - - - afterEach(() => { - game.phaseInterceptor.restoreOg(); - vi.resetAllMocks(); - }); -}); diff --git a/src/test/mystery-encounter/encounters/a-trainers-test-encounter.test.ts b/src/test/mystery-encounter/encounters/a-trainers-test-encounter.test.ts index 3dc90427eb2..6078e136ccb 100644 --- a/src/test/mystery-encounter/encounters/a-trainers-test-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/a-trainers-test-encounter.test.ts @@ -17,7 +17,7 @@ import { CommandPhase } from "#app/phases/command-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import { PartyHealPhase } from "#app/phases/party-heal-phase"; -const namespace = "mysteryEncounter:aTrainersTest"; +const namespace = "mysteryEncounters/aTrainersTest"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -63,9 +63,9 @@ describe("A Trainer's Test - Mystery Encounter", () => { expect(ATrainersTestEncounter.dialogue.intro).toBeDefined(); expect(ATrainersTestEncounter.dialogue.intro?.[0].speaker).toBeDefined(); expect(ATrainersTestEncounter.dialogue.intro?.[0].text).toBeDefined(); - expect(ATrainersTestEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(ATrainersTestEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(ATrainersTestEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(ATrainersTestEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(ATrainersTestEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(ATrainersTestEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(ATrainersTestEncounter.options.length).toBe(2); }); @@ -94,8 +94,8 @@ describe("A Trainer's Test - Mystery Encounter", () => { const option = ATrainersTestEncounter.options[0]; expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); - expect(option.dialogue!.buttonLabel).toStrictEqual(`${namespace}.option.1.label`); - expect(option.dialogue!.buttonTooltip).toStrictEqual(`${namespace}.option.1.tooltip`); + expect(option.dialogue!.buttonLabel).toStrictEqual(`${namespace}:option.1.label`); + expect(option.dialogue!.buttonTooltip).toStrictEqual(`${namespace}:option.1.tooltip`); }); it("Should start battle against the trainer", async () => { @@ -106,7 +106,7 @@ describe("A Trainer's Test - Mystery Encounter", () => { expect(scene.getCurrentPhase()?.constructor.name).toBe(CommandPhase.name); expect(enemyField.length).toBe(1); expect(scene.currentBattle.trainer).toBeDefined(); - expect(["buck", "cheryl", "marley", "mira", "riley"].includes(scene.currentBattle.trainer!.config.name.toLowerCase())).toBeTruthy(); + expect(["trainerNames:buck", "trainerNames:cheryl", "trainerNames:marley", "trainerNames:mira", "trainerNames:riley"].includes(scene.currentBattle.trainer!.config.name)).toBeTruthy(); expect(enemyField[0]).toBeDefined(); }); @@ -145,8 +145,8 @@ describe("A Trainer's Test - Mystery Encounter", () => { const option = ATrainersTestEncounter.options[1]; expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); - expect(option.dialogue?.buttonLabel).toStrictEqual(`${namespace}.option.2.label`); - expect(option.dialogue?.buttonTooltip).toStrictEqual(`${namespace}.option.2.tooltip`); + expect(option.dialogue?.buttonLabel).toStrictEqual(`${namespace}:option.2.label`); + expect(option.dialogue?.buttonTooltip).toStrictEqual(`${namespace}:option.2.tooltip`); }); it("Should fully heal the party", async () => { diff --git a/src/test/mystery-encounter/encounters/absolute-avarice-encounter.test.ts b/src/test/mystery-encounter/encounters/absolute-avarice-encounter.test.ts index b73d2a42cc2..99d845c992d 100644 --- a/src/test/mystery-encounter/encounters/absolute-avarice-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/absolute-avarice-encounter.test.ts @@ -17,7 +17,7 @@ import { CommandPhase } from "#app/phases/command-phase"; import { MovePhase } from "#app/phases/move-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; -const namespace = "mysteryEncounter:absoluteAvarice"; +const namespace = "mysteryEncounters/absoluteAvarice"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.PLAINS; const defaultWave = 45; @@ -59,10 +59,10 @@ describe("Absolute Avarice - Mystery Encounter", () => { expect(AbsoluteAvariceEncounter.encounterType).toBe(MysteryEncounterType.ABSOLUTE_AVARICE); expect(AbsoluteAvariceEncounter.encounterTier).toBe(MysteryEncounterTier.GREAT); expect(AbsoluteAvariceEncounter.dialogue).toBeDefined(); - expect(AbsoluteAvariceEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(AbsoluteAvariceEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(AbsoluteAvariceEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(AbsoluteAvariceEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(AbsoluteAvariceEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(AbsoluteAvariceEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(AbsoluteAvariceEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(AbsoluteAvariceEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(AbsoluteAvariceEncounter.options.length).toBe(3); }); @@ -106,11 +106,11 @@ describe("Absolute Avarice - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -146,7 +146,7 @@ describe("Absolute Avarice - Mystery Encounter", () => { const pokemonId = partyPokemon.id; const pokemonItems = scene.findModifiers(m => m instanceof PokemonHeldItemModifier && (m as PokemonHeldItemModifier).pokemonId === pokemonId, true) as PokemonHeldItemModifier[]; - const revSeed = pokemonItems.find(i => i.type.name === "Reviver Seed"); + const revSeed = pokemonItems.find(i => i.type.name === "modifierType:ModifierType.REVIVER_SEED.name"); expect(revSeed).toBeDefined; expect(revSeed?.stackCount).toBe(1); } @@ -159,11 +159,11 @@ describe("Absolute Avarice - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }); @@ -217,11 +217,11 @@ describe("Absolute Avarice - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/an-offer-you-cant-refuse-encounter.test.ts b/src/test/mystery-encounter/encounters/an-offer-you-cant-refuse-encounter.test.ts index 88704746a3c..54e780aba50 100644 --- a/src/test/mystery-encounter/encounters/an-offer-you-cant-refuse-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/an-offer-you-cant-refuse-encounter.test.ts @@ -18,7 +18,7 @@ import { Moves } from "#enums/moves"; import { ShinyRateBoosterModifier } from "#app/modifier/modifier"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; -const namespace = "mysteryEncounter:offerYouCantRefuse"; +const namespace = "mysteryEncounters/anOfferYouCantRefuse"; /** Gyarados for Indimidate */ const defaultParty = [Species.GYARADOS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; @@ -63,12 +63,12 @@ describe("An Offer You Can't Refuse - Mystery Encounter", () => { expect(AnOfferYouCantRefuseEncounter.encounterTier).toBe(MysteryEncounterTier.GREAT); expect(AnOfferYouCantRefuseEncounter.dialogue).toBeDefined(); expect(AnOfferYouCantRefuseEncounter.dialogue.intro).toStrictEqual([ - { text: `${namespace}.intro` }, - { speaker: `${namespace}.speaker`, text: `${namespace}.intro_dialogue` } + { text: `${namespace}:intro` }, + { speaker: `${namespace}:speaker`, text: `${namespace}:intro_dialogue` } ]); - expect(AnOfferYouCantRefuseEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(AnOfferYouCantRefuseEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(AnOfferYouCantRefuseEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(AnOfferYouCantRefuseEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(AnOfferYouCantRefuseEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(AnOfferYouCantRefuseEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(AnOfferYouCantRefuseEncounter.options.length).toBe(3); }); @@ -93,8 +93,8 @@ describe("An Offer You Can't Refuse - Mystery Encounter", () => { expect(AnOfferYouCantRefuseEncounter.dialogueTokens?.strongestPokemon).toBeDefined(); expect(AnOfferYouCantRefuseEncounter.dialogueTokens?.price).toBeDefined(); - expect(AnOfferYouCantRefuseEncounter.dialogueTokens?.option2PrimaryAbility).toBe("Intimidate"); - expect(AnOfferYouCantRefuseEncounter.dialogueTokens?.moveOrAbility).toBe("Intimidate"); + expect(AnOfferYouCantRefuseEncounter.dialogueTokens?.option2PrimaryAbility).toBe("ability:intimidate.name"); + expect(AnOfferYouCantRefuseEncounter.dialogueTokens?.moveOrAbility).toBe("ability:intimidate.name"); expect(AnOfferYouCantRefuseEncounter.misc.pokemon instanceof PlayerPokemon).toBeTruthy(); expect(AnOfferYouCantRefuseEncounter.misc?.price?.toString()).toBe(AnOfferYouCantRefuseEncounter.dialogueTokens?.price); expect(onInitResult).toBe(true); @@ -106,12 +106,12 @@ describe("An Offer You Can't Refuse - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.1.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -169,13 +169,13 @@ describe("An Offer You Can't Refuse - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.tooltip_disabled`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.tooltip_disabled`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/berries-abound-encounter.test.ts b/src/test/mystery-encounter/encounters/berries-abound-encounter.test.ts index d71b982bfc7..225c06483fa 100644 --- a/src/test/mystery-encounter/encounters/berries-abound-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/berries-abound-encounter.test.ts @@ -19,7 +19,7 @@ import { CommandPhase } from "#app/phases/command-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import { Abilities } from "#enums/abilities"; -const namespace = "mysteryEncounter:berriesAbound"; +const namespace = "mysteryEncounters/berriesAbound"; const defaultParty = [Species.PYUKUMUKU, Species.MAGIKARP, Species.PIKACHU]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -65,10 +65,10 @@ describe("Berries Abound - Mystery Encounter", () => { expect(BerriesAboundEncounter.encounterType).toBe(MysteryEncounterType.BERRIES_ABOUND); expect(BerriesAboundEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(BerriesAboundEncounter.dialogue).toBeDefined(); - expect(BerriesAboundEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(BerriesAboundEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(BerriesAboundEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(BerriesAboundEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(BerriesAboundEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(BerriesAboundEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(BerriesAboundEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(BerriesAboundEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(BerriesAboundEncounter.options.length).toBe(3); }); @@ -95,11 +95,11 @@ describe("Berries Abound - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -166,8 +166,8 @@ describe("Berries Abound - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, }); }); @@ -190,7 +190,7 @@ describe("Berries Abound - Mystery Encounter", () => { // Should be enraged expect(enemyField[0].summonData.statStages).toEqual([0, 1, 0, 1, 1, 0, 0]); - expect(encounterTextSpy).toHaveBeenCalledWith(expect.any(BattleScene), `${namespace}.option.2.selected_bad`); + expect(encounterTextSpy).toHaveBeenCalledWith(expect.any(BattleScene), `${namespace}:option.2.selected_bad`); }); it("should start battle if fastest pokemon is slower than boss above wave 50", async () => { @@ -212,7 +212,7 @@ describe("Berries Abound - Mystery Encounter", () => { // Should be enraged expect(enemyField[0].summonData.statStages).toEqual([1, 1, 1, 1, 1, 0, 0]); - expect(encounterTextSpy).toHaveBeenCalledWith(expect.any(BattleScene), `${namespace}.option.2.selected_bad`); + expect(encounterTextSpy).toHaveBeenCalledWith(expect.any(BattleScene), `${namespace}:option.2.selected_bad`); }); it("Should skip battle when fastest pokemon is faster than boss", async () => { @@ -237,7 +237,7 @@ describe("Berries Abound - Mystery Encounter", () => { expect(option.modifierTypeOption.type.id).toContain("BERRY"); } - expect(EncounterDialogueUtils.showEncounterText).toHaveBeenCalledWith(expect.any(BattleScene), `${namespace}.option.2.selected`); + expect(EncounterDialogueUtils.showEncounterText).toHaveBeenCalledWith(expect.any(BattleScene), `${namespace}:option.2.selected`); expect(EncounterPhaseUtils.leaveEncounterWithoutBattle).toBeCalled(); }); }); diff --git a/src/test/mystery-encounter/encounters/bug-type-superfan-encounter.test.ts b/src/test/mystery-encounter/encounters/bug-type-superfan-encounter.test.ts index 247acc9e5b6..bdf0dc3c307 100644 --- a/src/test/mystery-encounter/encounters/bug-type-superfan-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/bug-type-superfan-encounter.test.ts @@ -21,7 +21,7 @@ import * as encounterPhaseUtils from "#app/data/mystery-encounters/utils/encount import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler"; -const namespace = "mysteryEncounter:bugTypeSuperfan"; +const namespace = "mysteryEncounters/bugTypeSuperfan"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.WEEDLE]; const defaultBiome = Biome.CAVE; const defaultWave = 24; @@ -188,16 +188,16 @@ describe("Bug-Type Superfan - Mystery Encounter", () => { expect(BugTypeSuperfanEncounter.dialogue).toBeDefined(); expect(BugTypeSuperfanEncounter.dialogue.intro).toStrictEqual([ { - text: `${namespace}.intro`, + text: `${namespace}:intro`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]); - expect(BugTypeSuperfanEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(BugTypeSuperfanEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(BugTypeSuperfanEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(BugTypeSuperfanEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(BugTypeSuperfanEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(BugTypeSuperfanEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(BugTypeSuperfanEncounter.options.length).toBe(3); }); @@ -226,12 +226,12 @@ describe("Bug-Type Superfan - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.1.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -398,9 +398,9 @@ describe("Bug-Type Superfan - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.disabled_tooltip` + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip` }); }); @@ -498,19 +498,19 @@ describe("Bug-Type Superfan - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.3.selected_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.3.selected_dialogue`, }, ], - secondOptionPrompt: `${namespace}.option.3.select_prompt`, + secondOptionPrompt: `${namespace}:option.3.select_prompt`, }); }); diff --git a/src/test/mystery-encounter/encounters/clowning-around-encounter.test.ts b/src/test/mystery-encounter/encounters/clowning-around-encounter.test.ts index 5ed5a9487de..80434df2f44 100644 --- a/src/test/mystery-encounter/encounters/clowning-around-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/clowning-around-encounter.test.ts @@ -33,7 +33,7 @@ import { MovePhase } from "#app/phases/move-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import { NewBattlePhase } from "#app/phases/new-battle-phase"; -const namespace = "mysteryEncounter:clowningAround"; +const namespace = "mysteryEncounters/clowningAround"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -75,15 +75,15 @@ describe("Clowning Around - Mystery Encounter", () => { expect(ClowningAroundEncounter.encounterTier).toBe(MysteryEncounterTier.ULTRA); expect(ClowningAroundEncounter.dialogue).toBeDefined(); expect(ClowningAroundEncounter.dialogue.intro).toStrictEqual([ - { text: `${namespace}.intro` }, + { text: `${namespace}:intro` }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]); - expect(ClowningAroundEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(ClowningAroundEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(ClowningAroundEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(ClowningAroundEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(ClowningAroundEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(ClowningAroundEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(ClowningAroundEncounter.options.length).toBe(3); }); @@ -152,12 +152,12 @@ describe("Clowning Around - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.1.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -229,19 +229,19 @@ describe("Clowning Around - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected`, }, { - text: `${namespace}.option.2.selected_2`, + text: `${namespace}:option.2.selected_2`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected_3`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected_3`, }, ], }); @@ -311,19 +311,19 @@ describe("Clowning Around - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.3.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.3.selected`, }, { - text: `${namespace}.option.3.selected_2`, + text: `${namespace}:option.3.selected_2`, }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.3.selected_3`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.3.selected_3`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/dancing-lessons-encounter.test.ts b/src/test/mystery-encounter/encounters/dancing-lessons-encounter.test.ts index cbf8251f2e7..107bc4f3c67 100644 --- a/src/test/mystery-encounter/encounters/dancing-lessons-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/dancing-lessons-encounter.test.ts @@ -20,7 +20,7 @@ import { MovePhase } from "#app/phases/move-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import { LearnMovePhase } from "#app/phases/learn-move-phase"; -const namespace = "mysteryEncounter:dancingLessons"; +const namespace = "mysteryEncounters/dancingLessons"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.PLAINS; const defaultWave = 45; @@ -62,10 +62,10 @@ describe("Dancing Lessons - Mystery Encounter", () => { expect(DancingLessonsEncounter.encounterType).toBe(MysteryEncounterType.DANCING_LESSONS); expect(DancingLessonsEncounter.encounterTier).toBe(MysteryEncounterTier.GREAT); expect(DancingLessonsEncounter.dialogue).toBeDefined(); - expect(DancingLessonsEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(DancingLessonsEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(DancingLessonsEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(DancingLessonsEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(DancingLessonsEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(DancingLessonsEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(DancingLessonsEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(DancingLessonsEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(DancingLessonsEncounter.options.length).toBe(3); }); @@ -83,11 +83,11 @@ describe("Dancing Lessons - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -143,11 +143,11 @@ describe("Dancing Lessons - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }); @@ -182,13 +182,13 @@ describe("Dancing Lessons - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, - secondOptionPrompt: `${namespace}.option.3.select_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, + secondOptionPrompt: `${namespace}:option.3.select_prompt`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/delibirdy-encounter.test.ts b/src/test/mystery-encounter/encounters/delibirdy-encounter.test.ts index dfa793fe7b5..e7a7c0bd50d 100644 --- a/src/test/mystery-encounter/encounters/delibirdy-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/delibirdy-encounter.test.ts @@ -17,7 +17,7 @@ import { generateModifierType } from "#app/data/mystery-encounters/utils/encount import { modifierTypes } from "#app/modifier/modifier-type"; import { BerryType } from "#enums/berry-type"; -const namespace = "mysteryEncounter:delibirdy"; +const namespace = "mysteryEncounters/delibirdy"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -58,11 +58,11 @@ describe("Delibird-y - Mystery Encounter", () => { expect(DelibirdyEncounter.encounterType).toBe(MysteryEncounterType.DELIBIRDY); expect(DelibirdyEncounter.encounterTier).toBe(MysteryEncounterTier.GREAT); expect(DelibirdyEncounter.dialogue).toBeDefined(); - expect(DelibirdyEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(DelibirdyEncounter.dialogue.outro).toStrictEqual([{ text: `${namespace}.outro` }]); - expect(DelibirdyEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(DelibirdyEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(DelibirdyEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(DelibirdyEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(DelibirdyEncounter.dialogue.outro).toStrictEqual([{ text: `${namespace}:outro` }]); + expect(DelibirdyEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(DelibirdyEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(DelibirdyEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(DelibirdyEncounter.options.length).toBe(3); }); @@ -80,11 +80,11 @@ describe("Delibird-y - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -174,12 +174,12 @@ describe("Delibird-y - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - secondOptionPrompt: `${namespace}.option.2.select_prompt`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + secondOptionPrompt: `${namespace}:option.2.select_prompt`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }); @@ -336,12 +336,12 @@ describe("Delibird-y - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - secondOptionPrompt: `${namespace}.option.3.select_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + secondOptionPrompt: `${namespace}:option.3.select_prompt`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/department-store-sale-encounter.test.ts b/src/test/mystery-encounter/encounters/department-store-sale-encounter.test.ts index f91e1a5a13c..e36c103b57d 100644 --- a/src/test/mystery-encounter/encounters/department-store-sale-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/department-store-sale-encounter.test.ts @@ -15,7 +15,7 @@ import { MysteryEncounterOptionMode } from "#enums/mystery-encounter-option-mode import { MysteryEncounterTier } from "#enums/mystery-encounter-tier"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; -const namespace = "mysteryEncounter:departmentStoreSale"; +const namespace = "mysteryEncounters/departmentStoreSale"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.PLAINS; const defaultWave = 37; @@ -59,15 +59,15 @@ describe("Department Store Sale - Mystery Encounter", () => { expect(DepartmentStoreSaleEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(DepartmentStoreSaleEncounter.dialogue).toBeDefined(); expect(DepartmentStoreSaleEncounter.dialogue.intro).toStrictEqual([ - { text: `${namespace}.intro` }, + { text: `${namespace}:intro` }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, } ]); - expect(DepartmentStoreSaleEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(DepartmentStoreSaleEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(DepartmentStoreSaleEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(DepartmentStoreSaleEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(DepartmentStoreSaleEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(DepartmentStoreSaleEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(DepartmentStoreSaleEncounter.options.length).toBe(4); }); @@ -85,8 +85,8 @@ describe("Department Store Sale - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, }); }); @@ -120,8 +120,8 @@ describe("Department Store Sale - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, }); }); @@ -156,8 +156,8 @@ describe("Department Store Sale - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, }); }); @@ -192,8 +192,8 @@ describe("Department Store Sale - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.4.label`, - buttonTooltip: `${namespace}.option.4.tooltip`, + buttonLabel: `${namespace}:option.4.label`, + buttonTooltip: `${namespace}:option.4.tooltip`, }); }); diff --git a/src/test/mystery-encounter/encounters/field-trip-encounter.test.ts b/src/test/mystery-encounter/encounters/field-trip-encounter.test.ts index 13550abb97c..d8efd340b63 100644 --- a/src/test/mystery-encounter/encounters/field-trip-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/field-trip-encounter.test.ts @@ -14,8 +14,9 @@ import { Moves } from "#enums/moves"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import { Mode } from "#app/ui/ui"; import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler"; +import i18next from "i18next"; -const namespace = "mysteryEncounter:fieldTrip"; +const namespace = "mysteryEncounters/fieldTrip"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -59,16 +60,16 @@ describe("Field Trip - Mystery Encounter", () => { expect(FieldTripEncounter.dialogue).toBeDefined(); expect(FieldTripEncounter.dialogue.intro).toStrictEqual([ { - text: `${namespace}.intro` + text: `${namespace}:intro` }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue` + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue` } ]); - expect(FieldTripEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(FieldTripEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(FieldTripEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(FieldTripEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(FieldTripEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(FieldTripEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(FieldTripEncounter.options.length).toBe(3); }); @@ -78,9 +79,9 @@ describe("Field Trip - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, - secondOptionPrompt: `${namespace}.second_option_prompt`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, + secondOptionPrompt: `${namespace}:second_option_prompt`, }); }); @@ -102,11 +103,11 @@ describe("Field Trip - Mystery Encounter", () => { expect(scene.ui.getMode()).to.equal(Mode.MODIFIER_SELECT); const modifierSelectHandler = scene.ui.handlers.find(h => h instanceof ModifierSelectUiHandler) as ModifierSelectUiHandler; expect(modifierSelectHandler.options.length).toEqual(5); - expect(modifierSelectHandler.options[0].modifierTypeOption.type.name).toBe("X Attack"); - expect(modifierSelectHandler.options[1].modifierTypeOption.type.name).toBe("X Defense"); - expect(modifierSelectHandler.options[2].modifierTypeOption.type.name).toBe("X Speed"); - expect(modifierSelectHandler.options[3].modifierTypeOption.type.name).toBe("Dire Hit"); - expect(modifierSelectHandler.options[4].modifierTypeOption.type.name).toBe("Rarer Candy"); + expect(modifierSelectHandler.options[0].modifierTypeOption.type.name).toBe("modifierType:TempStatStageBoosterItem.x_attack"); + expect(modifierSelectHandler.options[1].modifierTypeOption.type.name).toBe("modifierType:TempStatStageBoosterItem.x_defense"); + expect(modifierSelectHandler.options[2].modifierTypeOption.type.name).toBe("modifierType:TempStatStageBoosterItem.x_speed"); + expect(modifierSelectHandler.options[3].modifierTypeOption.type.name).toBe("modifierType:ModifierType.DIRE_HIT.name"); + expect(modifierSelectHandler.options[4].modifierTypeOption.type.name).toBe("modifierType:ModifierType.RARER_CANDY.name"); }); it("should leave encounter without battle", async () => { @@ -125,9 +126,9 @@ describe("Field Trip - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - secondOptionPrompt: `${namespace}.second_option_prompt`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + secondOptionPrompt: `${namespace}:second_option_prompt`, }); }); @@ -149,11 +150,11 @@ describe("Field Trip - Mystery Encounter", () => { expect(scene.ui.getMode()).to.equal(Mode.MODIFIER_SELECT); const modifierSelectHandler = scene.ui.handlers.find(h => h instanceof ModifierSelectUiHandler) as ModifierSelectUiHandler; expect(modifierSelectHandler.options.length).toEqual(5); - expect(modifierSelectHandler.options[0].modifierTypeOption.type.name).toBe("X Sp. Atk"); - expect(modifierSelectHandler.options[1].modifierTypeOption.type.name).toBe("X Sp. Def"); - expect(modifierSelectHandler.options[2].modifierTypeOption.type.name).toBe("X Speed"); - expect(modifierSelectHandler.options[3].modifierTypeOption.type.name).toBe("Dire Hit"); - expect(modifierSelectHandler.options[4].modifierTypeOption.type.name).toBe("Rarer Candy"); + expect(modifierSelectHandler.options[0].modifierTypeOption.type.name).toBe("modifierType:TempStatStageBoosterItem.x_sp_atk"); + expect(modifierSelectHandler.options[1].modifierTypeOption.type.name).toBe("modifierType:TempStatStageBoosterItem.x_sp_def"); + expect(modifierSelectHandler.options[2].modifierTypeOption.type.name).toBe("modifierType:TempStatStageBoosterItem.x_speed"); + expect(modifierSelectHandler.options[3].modifierTypeOption.type.name).toBe("modifierType:ModifierType.DIRE_HIT.name"); + expect(modifierSelectHandler.options[4].modifierTypeOption.type.name).toBe("modifierType:ModifierType.RARER_CANDY.name"); }); it("should leave encounter without battle", async () => { @@ -172,9 +173,9 @@ describe("Field Trip - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - secondOptionPrompt: `${namespace}.second_option_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + secondOptionPrompt: `${namespace}:second_option_prompt`, }); }); @@ -189,6 +190,7 @@ describe("Field Trip - Mystery Encounter", () => { }); it("Should give proper rewards on correct Special move option", async () => { + vi.spyOn(i18next, "t"); await game.runToMysteryEncounter(MysteryEncounterType.FIELD_TRIP, defaultParty); await runMysteryEncounterToEnd(game, 3, { pokemonNo: 1, optionNo: 3 }); await game.phaseInterceptor.to(SelectModifierPhase); @@ -196,11 +198,12 @@ describe("Field Trip - Mystery Encounter", () => { expect(scene.ui.getMode()).to.equal(Mode.MODIFIER_SELECT); const modifierSelectHandler = scene.ui.handlers.find(h => h instanceof ModifierSelectUiHandler) as ModifierSelectUiHandler; expect(modifierSelectHandler.options.length).toEqual(5); - expect(modifierSelectHandler.options[0].modifierTypeOption.type.name).toBe("X Accuracy"); - expect(modifierSelectHandler.options[1].modifierTypeOption.type.name).toBe("X Speed"); - expect(modifierSelectHandler.options[2].modifierTypeOption.type.name).toBe("5x Great Ball"); - expect(modifierSelectHandler.options[3].modifierTypeOption.type.name).toBe("IV Scanner"); - expect(modifierSelectHandler.options[4].modifierTypeOption.type.name).toBe("Rarer Candy"); + expect(modifierSelectHandler.options[0].modifierTypeOption.type.name).toBe("modifierType:TempStatStageBoosterItem.x_accuracy"); + expect(modifierSelectHandler.options[1].modifierTypeOption.type.name).toBe("modifierType:TempStatStageBoosterItem.x_speed"); + expect(modifierSelectHandler.options[2].modifierTypeOption.type.name).toBe("modifierType:ModifierType.AddPokeballModifierType.name"); + expect(i18next.t).toHaveBeenCalledWith("modifierType:ModifierType.AddPokeballModifierType.name", expect.objectContaining({ modifierCount: 5 })); + expect(modifierSelectHandler.options[3].modifierTypeOption.type.name).toBe("modifierType:ModifierType.IV_SCANNER.name"); + expect(modifierSelectHandler.options[4].modifierTypeOption.type.name).toBe("modifierType:ModifierType.RARER_CANDY.name"); }); it("should leave encounter without battle", async () => { diff --git a/src/test/mystery-encounter/encounters/fiery-fallout-encounter.test.ts b/src/test/mystery-encounter/encounters/fiery-fallout-encounter.test.ts index cd11aa2628b..24c2e083a72 100644 --- a/src/test/mystery-encounter/encounters/fiery-fallout-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/fiery-fallout-encounter.test.ts @@ -23,7 +23,7 @@ import { CommandPhase } from "#app/phases/command-phase"; import { MovePhase } from "#app/phases/move-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; -const namespace = "mysteryEncounter:fieryFallout"; +const namespace = "mysteryEncounters/fieryFallout"; /** Arcanine and Ninetails for 2 Fire types. Lapras, Gengar, Abra for burnable mon. */ const defaultParty = [Species.ARCANINE, Species.NINETALES, Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.VOLCANO; @@ -66,10 +66,10 @@ describe("Fiery Fallout - Mystery Encounter", () => { expect(FieryFalloutEncounter.encounterType).toBe(MysteryEncounterType.FIERY_FALLOUT); expect(FieryFalloutEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(FieryFalloutEncounter.dialogue).toBeDefined(); - expect(FieryFalloutEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(FieryFalloutEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(FieryFalloutEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(FieryFalloutEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(FieryFalloutEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(FieryFalloutEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(FieryFalloutEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(FieryFalloutEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(FieryFalloutEncounter.options.length).toBe(3); }); @@ -132,11 +132,11 @@ describe("Fiery Fallout - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -182,11 +182,11 @@ describe("Fiery Fallout - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }); @@ -205,7 +205,7 @@ describe("Fiery Fallout - Mystery Encounter", () => { const burnablePokemon = party.filter((pkm) => pkm.isAllowedInBattle() && !pkm.getTypes().includes(Type.FIRE)); const notBurnablePokemon = party.filter((pkm) => !pkm.isAllowedInBattle() || pkm.getTypes().includes(Type.FIRE)); - expect(scene.currentBattle.mysteryEncounter?.dialogueTokens["burnedPokemon"]).toBe("Gengar"); + expect(scene.currentBattle.mysteryEncounter?.dialogueTokens["burnedPokemon"]).toBe("pokemon:gengar"); burnablePokemon.forEach((pkm) => { expect(pkm.hp, `${pkm.name} should have received 20% damage: ${pkm.hp} / ${pkm.getMaxHp()} HP`).toBe(pkm.getMaxHp() - Math.floor(pkm.getMaxHp() * 0.2)); }); @@ -229,12 +229,12 @@ describe("Fiery Fallout - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/fight-or-flight-encounter.test.ts b/src/test/mystery-encounter/encounters/fight-or-flight-encounter.test.ts index df2f32231ba..20a84281530 100644 --- a/src/test/mystery-encounter/encounters/fight-or-flight-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/fight-or-flight-encounter.test.ts @@ -19,7 +19,7 @@ import { MysteryEncounterPhase } from "#app/phases/mystery-encounter-phases"; import { CommandPhase } from "#app/phases/command-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; -const namespace = "mysteryEncounter:fightOrFlight"; +const namespace = "mysteryEncounters/fightOrFlight"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -60,10 +60,10 @@ describe("Fight or Flight - Mystery Encounter", () => { expect(FightOrFlightEncounter.encounterType).toBe(MysteryEncounterType.FIGHT_OR_FLIGHT); expect(FightOrFlightEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(FightOrFlightEncounter.dialogue).toBeDefined(); - expect(FightOrFlightEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(FightOrFlightEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(FightOrFlightEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(FightOrFlightEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(FightOrFlightEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(FightOrFlightEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(FightOrFlightEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(FightOrFlightEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(FightOrFlightEncounter.options.length).toBe(3); }); @@ -90,11 +90,11 @@ describe("Fight or Flight - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -138,12 +138,12 @@ describe("Fight or Flight - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.disabled_tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, } ], }); diff --git a/src/test/mystery-encounter/encounters/fun-and-games-encounter.test.ts b/src/test/mystery-encounter/encounters/fun-and-games-encounter.test.ts index c337556728b..c3fa141f65c 100644 --- a/src/test/mystery-encounter/encounters/fun-and-games-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/fun-and-games-encounter.test.ts @@ -22,7 +22,7 @@ import { Moves } from "#enums/moves"; import { Command } from "#app/ui/command-ui-handler"; import * as EncounterPhaseUtils from "#app/data/mystery-encounters/utils/encounter-phase-utils"; -const namespace = "mysteryEncounter:funAndGames"; +const namespace = "mysteryEncounters/funAndGames"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -67,13 +67,13 @@ describe("Fun And Games! - Mystery Encounter", () => { expect(FunAndGamesEncounter.dialogue).toBeDefined(); expect(FunAndGamesEncounter.dialogue.intro).toStrictEqual([ { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, } ]); - expect(FunAndGamesEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(FunAndGamesEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(FunAndGamesEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(FunAndGamesEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(FunAndGamesEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(FunAndGamesEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(FunAndGamesEncounter.options.length).toBe(2); }); @@ -105,11 +105,11 @@ describe("Fun And Games! - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/global-trade-system-encounter.test.ts b/src/test/mystery-encounter/encounters/global-trade-system-encounter.test.ts index ec35b338365..17f6a74e480 100644 --- a/src/test/mystery-encounter/encounters/global-trade-system-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/global-trade-system-encounter.test.ts @@ -19,7 +19,7 @@ import { Mode } from "#app/ui/ui"; import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler"; import { ModifierTier } from "#app/modifier/modifier-tier"; -const namespace = "mysteryEncounter:globalTradeSystem"; +const namespace = "mysteryEncounters/globalTradeSystem"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -62,10 +62,10 @@ describe("Global Trade System - Mystery Encounter", () => { expect(GlobalTradeSystemEncounter.encounterType).toBe(MysteryEncounterType.GLOBAL_TRADE_SYSTEM); expect(GlobalTradeSystemEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(GlobalTradeSystemEncounter.dialogue).toBeDefined(); - expect(GlobalTradeSystemEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(GlobalTradeSystemEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(GlobalTradeSystemEncounter.options.length).toBe(4); }); @@ -76,10 +76,10 @@ describe("Global Trade System - Mystery Encounter", () => { expect(GlobalTradeSystemEncounter.encounterType).toBe(MysteryEncounterType.GLOBAL_TRADE_SYSTEM); expect(GlobalTradeSystemEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(GlobalTradeSystemEncounter.dialogue).toBeDefined(); - expect(GlobalTradeSystemEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(GlobalTradeSystemEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(GlobalTradeSystemEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(GlobalTradeSystemEncounter.options.length).toBe(4); }); @@ -97,9 +97,9 @@ describe("Global Trade System - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, - secondOptionPrompt: `${namespace}.option.1.trade_options_prompt`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, + secondOptionPrompt: `${namespace}:option.1.trade_options_prompt`, }); }); @@ -158,8 +158,8 @@ describe("Global Trade System - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip` + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip` }); }); @@ -192,9 +192,9 @@ describe("Global Trade System - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - secondOptionPrompt: `${namespace}.option.3.trade_options_prompt`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + secondOptionPrompt: `${namespace}:option.3.trade_options_prompt`, }); }); @@ -246,11 +246,11 @@ describe("Global Trade System - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.4.label`, - buttonTooltip: `${namespace}.option.4.tooltip`, + buttonLabel: `${namespace}:option.4.label`, + buttonTooltip: `${namespace}:option.4.tooltip`, selected: [ { - text: `${namespace}.option.4.selected`, + text: `${namespace}:option.4.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/lost-at-sea-encounter.test.ts b/src/test/mystery-encounter/encounters/lost-at-sea-encounter.test.ts index 02872334fac..bb7a74d6fd0 100644 --- a/src/test/mystery-encounter/encounters/lost-at-sea-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/lost-at-sea-encounter.test.ts @@ -16,7 +16,7 @@ import { MysteryEncounterPhase } from "#app/phases/mystery-encounter-phases"; import { PartyExpPhase } from "#app/phases/party-exp-phase"; -const namespace = "mysteryEncounter:lostAtSea"; +const namespace = "mysteryEncounters/lostAtSea"; /** Blastoise for surf. Pidgeot for fly. Abra for none. */ const defaultParty = [Species.BLASTOISE, Species.PIDGEOT, Species.ABRA]; const defaultBiome = Biome.SEA; @@ -59,10 +59,10 @@ describe("Lost at Sea - Mystery Encounter", () => { expect(LostAtSeaEncounter.encounterType).toBe(MysteryEncounterType.LOST_AT_SEA); expect(LostAtSeaEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(LostAtSeaEncounter.dialogue).toBeDefined(); - expect(LostAtSeaEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(LostAtSeaEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(LostAtSeaEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(LostAtSeaEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(LostAtSeaEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(LostAtSeaEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(LostAtSeaEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(LostAtSeaEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(LostAtSeaEncounter.options.length).toBe(3); }); @@ -86,8 +86,8 @@ describe("Lost at Sea - Mystery Encounter", () => { const onInitResult = onInit!(scene); expect(LostAtSeaEncounter.dialogueTokens?.damagePercentage).toBe("25"); - expect(LostAtSeaEncounter.dialogueTokens?.option1RequiredMove).toBe("Surf"); - expect(LostAtSeaEncounter.dialogueTokens?.option2RequiredMove).toBe("Fly"); + expect(LostAtSeaEncounter.dialogueTokens?.option1RequiredMove).toBe("move:surf.name"); + expect(LostAtSeaEncounter.dialogueTokens?.option2RequiredMove).toBe("move:fly.name"); expect(onInitResult).toBe(true); }); @@ -97,13 +97,13 @@ describe("Lost at Sea - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - disabledButtonLabel: `${namespace}.option.1.label_disabled`, - buttonTooltip: `${namespace}.option.1.tooltip`, - disabledButtonTooltip: `${namespace}.option.1.tooltip_disabled`, + buttonLabel: `${namespace}:option.1.label`, + disabledButtonLabel: `${namespace}:option.1.label_disabled`, + buttonTooltip: `${namespace}:option.1.tooltip`, + disabledButtonTooltip: `${namespace}:option.1.tooltip_disabled`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -160,13 +160,13 @@ describe("Lost at Sea - Mystery Encounter", () => { expect(option2.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option2.dialogue).toBeDefined(); expect(option2.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - disabledButtonLabel: `${namespace}.option.2.label_disabled`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.tooltip_disabled`, + buttonLabel: `${namespace}:option.2.label`, + disabledButtonLabel: `${namespace}:option.2.label_disabled`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.tooltip_disabled`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }); @@ -225,11 +225,11 @@ describe("Lost at Sea - Mystery Encounter", () => { expect(option3.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option3.dialogue).toBeDefined(); expect(option3.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/mysterious-challengers-encounter.test.ts b/src/test/mystery-encounter/encounters/mysterious-challengers-encounter.test.ts index 15cd3338fff..b8df60b60ec 100644 --- a/src/test/mystery-encounter/encounters/mysterious-challengers-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/mysterious-challengers-encounter.test.ts @@ -21,7 +21,7 @@ import MysteryEncounter from "#app/data/mystery-encounters/mystery-encounter"; import { CommandPhase } from "#app/phases/command-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; -const namespace = "mysteryEncounter:mysteriousChallengers"; +const namespace = "mysteryEncounters/mysteriousChallengers"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -64,10 +64,10 @@ describe("Mysterious Challengers - Mystery Encounter", () => { expect(MysteriousChallengersEncounter.encounterType).toBe(MysteryEncounterType.MYSTERIOUS_CHALLENGERS); expect(MysteriousChallengersEncounter.encounterTier).toBe(MysteryEncounterTier.GREAT); expect(MysteriousChallengersEncounter.dialogue).toBeDefined(); - expect(MysteriousChallengersEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(MysteriousChallengersEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(MysteriousChallengersEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(MysteriousChallengersEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(MysteriousChallengersEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(MysteriousChallengersEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(MysteriousChallengersEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(MysteriousChallengersEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(MysteriousChallengersEncounter.options.length).toBe(3); }); @@ -130,11 +130,11 @@ describe("Mysterious Challengers - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }); @@ -172,11 +172,11 @@ describe("Mysterious Challengers - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }); @@ -215,11 +215,11 @@ describe("Mysterious Challengers - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/part-timer-encounter.test.ts b/src/test/mystery-encounter/encounters/part-timer-encounter.test.ts index 061b6a61461..e359c4fd575 100644 --- a/src/test/mystery-encounter/encounters/part-timer-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/part-timer-encounter.test.ts @@ -15,7 +15,7 @@ import { PokemonMove } from "#app/field/pokemon"; import { Moves } from "#enums/moves"; import { MysteryEncounterPhase } from "#app/phases/mystery-encounter-phases"; -const namespace = "mysteryEncounter:partTimer"; +const namespace = "mysteryEncounters/partTimer"; // Pyukumuku for lowest speed, Regieleki for highest speed, Feebas for lowest "bulk", Melmetal for highest "bulk" const defaultParty = [Species.PYUKUMUKU, Species.REGIELEKI, Species.FEEBAS, Species.MELMETAL]; const defaultBiome = Biome.PLAINS; @@ -60,15 +60,15 @@ describe("Part-Timer - Mystery Encounter", () => { expect(PartTimerEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(PartTimerEncounter.dialogue).toBeDefined(); expect(PartTimerEncounter.dialogue.intro).toStrictEqual([ - { text: `${namespace}.intro` }, + { text: `${namespace}:intro` }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, } ]); - expect(PartTimerEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(PartTimerEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(PartTimerEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(PartTimerEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(PartTimerEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(PartTimerEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(PartTimerEncounter.options.length).toBe(3); }); @@ -86,11 +86,11 @@ describe("Part-Timer - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected` + text: `${namespace}:option.1.selected` } ] }); @@ -151,11 +151,11 @@ describe("Part-Timer - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected` + text: `${namespace}:option.2.selected` } ] }); @@ -216,12 +216,12 @@ describe("Part-Timer - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected` + text: `${namespace}:option.3.selected` } ] }); diff --git a/src/test/mystery-encounter/encounters/teleporting-hijinks-encounter.test.ts b/src/test/mystery-encounter/encounters/teleporting-hijinks-encounter.test.ts index f3723983b14..b12452f0a77 100644 --- a/src/test/mystery-encounter/encounters/teleporting-hijinks-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/teleporting-hijinks-encounter.test.ts @@ -17,7 +17,7 @@ import { Mode } from "#app/ui/ui"; import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler"; import { Abilities } from "#app/enums/abilities"; -const namespace = "mysteryEncounter:teleportingHijinks"; +const namespace = "mysteryEncounters/teleportingHijinks"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -64,10 +64,10 @@ describe("Teleporting Hijinks - Mystery Encounter", () => { expect(TeleportingHijinksEncounter.encounterType).toBe(MysteryEncounterType.TELEPORTING_HIJINKS); expect(TeleportingHijinksEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(TeleportingHijinksEncounter.dialogue).toBeDefined(); - expect(TeleportingHijinksEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(TeleportingHijinksEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(TeleportingHijinksEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(TeleportingHijinksEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(TeleportingHijinksEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(TeleportingHijinksEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(TeleportingHijinksEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(TeleportingHijinksEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(TeleportingHijinksEncounter.options.length).toBe(3); }); @@ -128,11 +128,11 @@ describe("Teleporting Hijinks - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -200,12 +200,12 @@ describe("Teleporting Hijinks - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.disabled_tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, } ], }); @@ -272,11 +272,11 @@ describe("Teleporting Hijinks - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, }, ], }); @@ -300,8 +300,8 @@ describe("Teleporting Hijinks - Mystery Encounter", () => { expect(scene.ui.getMode()).to.equal(Mode.MODIFIER_SELECT); const modifierSelectHandler = scene.ui.handlers.find(h => h instanceof ModifierSelectUiHandler) as ModifierSelectUiHandler; - expect(modifierSelectHandler.options.some(opt => opt.modifierTypeOption.type.name === "Metal Coat")).toBe(true); - expect(modifierSelectHandler.options.some(opt => opt.modifierTypeOption.type.name === "Magnet")).toBe(true); + expect(modifierSelectHandler.options.some(opt => opt.modifierTypeOption.type.name === "modifierType:AttackTypeBoosterItem.metal_coat")).toBe(true); + expect(modifierSelectHandler.options.some(opt => opt.modifierTypeOption.type.name === "modifierType:AttackTypeBoosterItem.magnet")).toBe(true); }); }); }); diff --git a/src/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts b/src/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts index 59765148ead..a0120522fd2 100644 --- a/src/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts @@ -19,7 +19,7 @@ import { TrainerType } from "#enums/trainer-type"; import { EggTier } from "#enums/egg-type"; import { PostMysteryEncounterPhase } from "#app/phases/mystery-encounter-phases"; -const namespace = "mysteryEncounter:expertPokemonBreeder"; +const namespace = "mysteryEncounters/theExpertPokemonBreeder"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -64,16 +64,16 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { expect(TheExpertPokemonBreederEncounter.dialogue).toBeDefined(); expect(TheExpertPokemonBreederEncounter.dialogue.intro).toStrictEqual([ { - text: `${namespace}.intro` + text: `${namespace}:intro` }, { speaker: "trainerNames:expert_pokemon_breeder", - text: `${namespace}.intro_dialogue` + text: `${namespace}:intro_dialogue` }, ]); - expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(TheExpertPokemonBreederEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(TheExpertPokemonBreederEncounter.options.length).toBe(3); }); @@ -113,12 +113,12 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, + buttonLabel: `${namespace}:option.1.label`, buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { speaker: "trainerNames:expert_pokemon_breeder", - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }); @@ -171,12 +171,12 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, + buttonLabel: `${namespace}:option.2.label`, buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { speaker: "trainerNames:expert_pokemon_breeder", - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }); @@ -229,12 +229,12 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, + buttonLabel: `${namespace}:option.3.label`, buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { speaker: "trainerNames:expert_pokemon_breeder", - text: `${namespace}.option.selected`, + text: `${namespace}:option.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/the-pokemon-salesman-encounter.test.ts b/src/test/mystery-encounter/encounters/the-pokemon-salesman-encounter.test.ts index e2b1fe8309b..24994b61b83 100644 --- a/src/test/mystery-encounter/encounters/the-pokemon-salesman-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/the-pokemon-salesman-encounter.test.ts @@ -15,7 +15,7 @@ import { MysteryEncounterTier } from "#enums/mystery-encounter-tier"; import { initSceneWithoutEncounterPhase } from "#test/utils/gameManagerUtils"; import { MysteryEncounterPhase } from "#app/phases/mystery-encounter-phases"; -const namespace = "mysteryEncounter:pokemonSalesman"; +const namespace = "mysteryEncounters/thePokemonSalesman"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -61,13 +61,13 @@ describe("The Pokemon Salesman - Mystery Encounter", () => { expect(encounterTier).toBe(MysteryEncounterTier.ULTRA); expect(dialogue).toBeDefined(); expect(dialogue.intro).toStrictEqual([ - { text: `${namespace}.intro` }, - { speaker: `${namespace}.speaker`, text: `${namespace}.intro_dialogue` } + { text: `${namespace}:intro` }, + { speaker: `${namespace}:speaker`, text: `${namespace}:intro_dialogue` } ]); const { title, description, query } = dialogue.encounterOptionsDialogue!; - expect(title).toBe(`${namespace}.title`); - expect(description).toMatch(new RegExp(`^${namespace}\\.description(_shiny)?$`)); - expect(query).toBe(`${namespace}.query`); + expect(title).toBe(`${namespace}:title`); + expect(description).toMatch(new RegExp(`^${namespace}\\:description(_shiny)?$`)); + expect(query).toBe(`${namespace}:query`); expect(options.length).toBe(2); }); @@ -112,11 +112,11 @@ describe("The Pokemon Salesman - Mystery Encounter", () => { expect(optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_DEFAULT); expect(dialogue).toBeDefined(); expect(dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: expect.stringMatching(new RegExp(`^${namespace}\\.option\\.1\\.tooltip(_shiny)?$`)), + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: expect.stringMatching(new RegExp(`^${namespace}\\:option\\.1\\.tooltip(_shiny)?$`)), selected: [ { - text: `${namespace}.option.1.selected_message`, + text: `${namespace}:option.1.selected_message`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/the-strong-stuff-encounter.test.ts b/src/test/mystery-encounter/encounters/the-strong-stuff-encounter.test.ts index 6930195b6cb..3df2f35f02b 100644 --- a/src/test/mystery-encounter/encounters/the-strong-stuff-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/the-strong-stuff-encounter.test.ts @@ -27,7 +27,7 @@ import { MovePhase } from "#app/phases/move-phase"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import { Abilities } from "#app/enums/abilities"; -const namespace = "mysteryEncounter:theStrongStuff"; +const namespace = "mysteryEncounters/theStrongStuff"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -72,10 +72,10 @@ describe("The Strong Stuff - Mystery Encounter", () => { expect(TheStrongStuffEncounter.encounterType).toBe(MysteryEncounterType.THE_STRONG_STUFF); expect(TheStrongStuffEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(TheStrongStuffEncounter.dialogue).toBeDefined(); - expect(TheStrongStuffEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(TheStrongStuffEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(TheStrongStuffEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(TheStrongStuffEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(TheStrongStuffEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(TheStrongStuffEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(TheStrongStuffEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(TheStrongStuffEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(TheStrongStuffEncounter.options.length).toBe(2); }); @@ -130,11 +130,11 @@ describe("The Strong Stuff - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -174,11 +174,11 @@ describe("The Strong Stuff - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/the-winstrate-challenge-encounter.test.ts b/src/test/mystery-encounter/encounters/the-winstrate-challenge-encounter.test.ts index 1efe6dbd7f8..93f01200203 100644 --- a/src/test/mystery-encounter/encounters/the-winstrate-challenge-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/the-winstrate-challenge-encounter.test.ts @@ -26,7 +26,7 @@ import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import { PartyHealPhase } from "#app/phases/party-heal-phase"; import { VictoryPhase } from "#app/phases/victory-phase"; -const namespace = "mysteryEncounter:theWinstrateChallenge"; +const namespace = "mysteryEncounters/theWinstrateChallenge"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -70,15 +70,15 @@ describe("The Winstrate Challenge - Mystery Encounter", () => { expect(TheWinstrateChallengeEncounter.encounterTier).toBe(MysteryEncounterTier.ROGUE); expect(TheWinstrateChallengeEncounter.dialogue).toBeDefined(); expect(TheWinstrateChallengeEncounter.dialogue.intro).toStrictEqual([ - { text: `${namespace}.intro` }, + { text: `${namespace}:intro` }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, } ]); - expect(TheWinstrateChallengeEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(TheWinstrateChallengeEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(TheWinstrateChallengeEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(TheWinstrateChallengeEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(TheWinstrateChallengeEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(TheWinstrateChallengeEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(TheWinstrateChallengeEncounter.options.length).toBe(2); }); @@ -247,12 +247,12 @@ describe("The Winstrate Challenge - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.1.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -311,12 +311,12 @@ describe("The Winstrate Challenge - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - speaker: `${namespace}.speaker`, - text: `${namespace}.option.2.selected`, + speaker: `${namespace}:speaker`, + text: `${namespace}:option.2.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/trash-to-treasure-encounter.test.ts b/src/test/mystery-encounter/encounters/trash-to-treasure-encounter.test.ts index bfeb249543f..7e92d17ba25 100644 --- a/src/test/mystery-encounter/encounters/trash-to-treasure-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/trash-to-treasure-encounter.test.ts @@ -23,7 +23,7 @@ import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; import { CommandPhase } from "#app/phases/command-phase"; import { MovePhase } from "#app/phases/move-phase"; -const namespace = "mysteryEncounter:trashToTreasure"; +const namespace = "mysteryEncounters/trashToTreasure"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -64,10 +64,10 @@ describe("Trash to Treasure - Mystery Encounter", () => { expect(TrashToTreasureEncounter.encounterType).toBe(MysteryEncounterType.TRASH_TO_TREASURE); expect(TrashToTreasureEncounter.encounterTier).toBe(MysteryEncounterTier.ULTRA); expect(TrashToTreasureEncounter.dialogue).toBeDefined(); - expect(TrashToTreasureEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(TrashToTreasureEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(TrashToTreasureEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(TrashToTreasureEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(TrashToTreasureEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(TrashToTreasureEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(TrashToTreasureEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(TrashToTreasureEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(TrashToTreasureEncounter.options.length).toBe(2); }); @@ -110,11 +110,11 @@ describe("Trash to Treasure - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -155,11 +155,11 @@ describe("Trash to Treasure - Mystery Encounter", () => { expect(option1.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option1.dialogue).toBeDefined(); expect(option1.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }); diff --git a/src/test/mystery-encounter/encounters/uncommon-breed-encounter.test.ts b/src/test/mystery-encounter/encounters/uncommon-breed-encounter.test.ts index 3943063d7c0..fe3106ac114 100644 --- a/src/test/mystery-encounter/encounters/uncommon-breed-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/uncommon-breed-encounter.test.ts @@ -26,7 +26,7 @@ import { BerryModifier } from "#app/modifier/modifier"; import { modifierTypes } from "#app/modifier/modifier-type"; import { Abilities } from "#enums/abilities"; -const namespace = "mysteryEncounter:uncommonBreed"; +const namespace = "mysteryEncounters/uncommonBreed"; const defaultParty = [Species.LAPRAS, Species.GENGAR, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -70,10 +70,10 @@ describe("Uncommon Breed - Mystery Encounter", () => { expect(UncommonBreedEncounter.encounterType).toBe(MysteryEncounterType.UNCOMMON_BREED); expect(UncommonBreedEncounter.encounterTier).toBe(MysteryEncounterTier.COMMON); expect(UncommonBreedEncounter.dialogue).toBeDefined(); - expect(UncommonBreedEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}.intro` }]); - expect(UncommonBreedEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(UncommonBreedEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(UncommonBreedEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(UncommonBreedEncounter.dialogue.intro).toStrictEqual([{ text: `${namespace}:intro` }]); + expect(UncommonBreedEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(UncommonBreedEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(UncommonBreedEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(UncommonBreedEncounter.options.length).toBe(3); }); @@ -100,11 +100,11 @@ describe("Uncommon Breed - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -170,12 +170,12 @@ describe("Uncommon Breed - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, - disabledButtonTooltip: `${namespace}.option.2.disabled_tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, + disabledButtonTooltip: `${namespace}:option.2.disabled_tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, } ], }); @@ -235,12 +235,12 @@ describe("Uncommon Breed - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DISABLED_OR_SPECIAL); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.3.label`, - buttonTooltip: `${namespace}.option.3.tooltip`, - disabledButtonTooltip: `${namespace}.option.3.disabled_tooltip`, + buttonLabel: `${namespace}:option.3.label`, + buttonTooltip: `${namespace}:option.3.tooltip`, + disabledButtonTooltip: `${namespace}:option.3.disabled_tooltip`, selected: [ { - text: `${namespace}.option.3.selected`, + text: `${namespace}:option.3.selected`, } ], }); diff --git a/src/test/mystery-encounter/encounters/weird-dream-encounter.test.ts b/src/test/mystery-encounter/encounters/weird-dream-encounter.test.ts index d858d631596..fdf9634e383 100644 --- a/src/test/mystery-encounter/encounters/weird-dream-encounter.test.ts +++ b/src/test/mystery-encounter/encounters/weird-dream-encounter.test.ts @@ -16,7 +16,7 @@ import { WeirdDreamEncounter } from "#app/data/mystery-encounters/encounters/wei import * as EncounterTransformationSequence from "#app/data/mystery-encounters/utils/encounter-transformation-sequence"; import { SelectModifierPhase } from "#app/phases/select-modifier-phase"; -const namespace = "mysteryEncounter:weirdDream"; +const namespace = "mysteryEncounters/weirdDream"; const defaultParty = [Species.MAGBY, Species.HAUNTER, Species.ABRA]; const defaultBiome = Biome.CAVE; const defaultWave = 45; @@ -60,16 +60,16 @@ describe("Weird Dream - Mystery Encounter", () => { expect(WeirdDreamEncounter.dialogue).toBeDefined(); expect(WeirdDreamEncounter.dialogue.intro).toStrictEqual([ { - text: `${namespace}.intro` + text: `${namespace}:intro` }, { - speaker: `${namespace}.speaker`, - text: `${namespace}.intro_dialogue`, + speaker: `${namespace}:speaker`, + text: `${namespace}:intro_dialogue`, }, ]); - expect(WeirdDreamEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}.title`); - expect(WeirdDreamEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}.description`); - expect(WeirdDreamEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}.query`); + expect(WeirdDreamEncounter.dialogue.encounterOptionsDialogue?.title).toBe(`${namespace}:title`); + expect(WeirdDreamEncounter.dialogue.encounterOptionsDialogue?.description).toBe(`${namespace}:description`); + expect(WeirdDreamEncounter.dialogue.encounterOptionsDialogue?.query).toBe(`${namespace}:query`); expect(WeirdDreamEncounter.options.length).toBe(2); }); @@ -95,11 +95,11 @@ describe("Weird Dream - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.1.label`, - buttonTooltip: `${namespace}.option.1.tooltip`, + buttonLabel: `${namespace}:option.1.label`, + buttonTooltip: `${namespace}:option.1.tooltip`, selected: [ { - text: `${namespace}.option.1.selected`, + text: `${namespace}:option.1.selected`, }, ], }); @@ -164,11 +164,11 @@ describe("Weird Dream - Mystery Encounter", () => { expect(option.optionMode).toBe(MysteryEncounterOptionMode.DEFAULT); expect(option.dialogue).toBeDefined(); expect(option.dialogue).toStrictEqual({ - buttonLabel: `${namespace}.option.2.label`, - buttonTooltip: `${namespace}.option.2.tooltip`, + buttonLabel: `${namespace}:option.2.label`, + buttonTooltip: `${namespace}:option.2.tooltip`, selected: [ { - text: `${namespace}.option.2.selected`, + text: `${namespace}:option.2.selected`, }, ], }); diff --git a/src/test/mystery-encounter/mystery-encounter-utils.test.ts b/src/test/mystery-encounter/mystery-encounter-utils.test.ts index 7a13db512aa..7958294737d 100644 --- a/src/test/mystery-encounter/mystery-encounter-utils.test.ts +++ b/src/test/mystery-encounter/mystery-encounter-utils.test.ts @@ -254,7 +254,7 @@ describe("Mystery Encounter Utils", () => { scene.currentBattle.mysteryEncounter.setDialogueToken("test", "value"); const result = getEncounterText(scene, "mysteryEncounter:unit_test_dialogue"); - expect(result).toEqual("valuevalue {{testvalue}} {{test1}} {{test}} {{test\\}} {{test\\}} {test}}"); + expect(result).toEqual("mysteryEncounter:unit_test_dialogue"); }); it("can perform nested dialogue token injection", () => { @@ -263,7 +263,7 @@ describe("Mystery Encounter Utils", () => { scene.currentBattle.mysteryEncounter.setDialogueToken("testvalue", "new"); const result = getEncounterText(scene, "mysteryEncounter:unit_test_dialogue"); - expect(result).toEqual("valuevalue {{testvalue}} {{test1}} {{test}} {{test\\}} {{test\\}} {test}}"); + expect(result).toEqual("mysteryEncounter:unit_test_dialogue"); }); }); @@ -275,7 +275,7 @@ describe("Mystery Encounter Utils", () => { const phaseSpy = vi.spyOn(game.scene, "unshiftPhase"); queueEncounterMessage(scene, "mysteryEncounter:unit_test_dialogue"); - expect(spy).toHaveBeenCalledWith("valuevalue {{testvalue}} {{test1}} {{test}} {{test\\}} {{test\\}} {test}}", null, true); + expect(spy).toHaveBeenCalledWith("mysteryEncounter:unit_test_dialogue", null, true); expect(phaseSpy).toHaveBeenCalledWith(expect.any(MessagePhase)); }); }); @@ -287,7 +287,7 @@ describe("Mystery Encounter Utils", () => { const spy = vi.spyOn(game.scene.ui, "showText"); await showEncounterText(scene, "mysteryEncounter:unit_test_dialogue"); - expect(spy).toHaveBeenCalledWith("valuevalue {{testvalue}} {{test1}} {{test}} {{test\\}} {{test\\}} {test}}", null, expect.any(Function), 0, true, null); + expect(spy).toHaveBeenCalledWith("mysteryEncounter:unit_test_dialogue", null, expect.any(Function), 0, true, null); }); }); @@ -298,7 +298,7 @@ describe("Mystery Encounter Utils", () => { const spy = vi.spyOn(game.scene.ui, "showDialogue"); await showEncounterDialogue(scene, "mysteryEncounter:unit_test_dialogue", "mysteryEncounter:unit_test_dialogue"); - expect(spy).toHaveBeenCalledWith("valuevalue {{testvalue}} {{test1}} {{test}} {{test\\}} {{test\\}} {test}}", "valuevalue {{testvalue}} {{test1}} {{test}} {{test\\}} {{test\\}} {test}}", null, expect.any(Function), 0); + expect(spy).toHaveBeenCalledWith("mysteryEncounter:unit_test_dialogue", "mysteryEncounter:unit_test_dialogue", null, expect.any(Function), 0); }); }); }); diff --git a/src/test/phases/mystery-encounter-phase.test.ts b/src/test/phases/mystery-encounter-phase.test.ts index 0a99cd00db3..76b0bd5a905 100644 --- a/src/test/phases/mystery-encounter-phase.test.ts +++ b/src/test/phases/mystery-encounter-phase.test.ts @@ -56,8 +56,9 @@ describe("Mystery Encounter Phases", () => { }); it("Selects an option for MysteryEncounterPhase", async() => { - const dialogueSpy = vi.spyOn(game.scene.ui, "showDialogue"); - const messageSpy = vi.spyOn(game.scene.ui, "showText"); + const { ui } = game.scene; + vi.spyOn(ui, "showDialogue"); + vi.spyOn(ui, "showText"); await game.runToMysteryEncounter(MysteryEncounterType.MYSTERIOUS_CHALLENGERS, [Species.CHARIZARD, Species.VOLCARONA]); game.onNextPrompt("MysteryEncounterPhase", Mode.MESSAGE, () => { @@ -74,12 +75,12 @@ describe("Mystery Encounter Phases", () => { // Waitfor required so that option select messages and preOptionPhase logic are handled await vi.waitFor(() => expect(game.scene.getCurrentPhase()?.constructor.name).toBe(MysteryEncounterOptionSelectedPhase.name)); - expect(game.scene.ui.getMode()).toBe(Mode.MESSAGE); - expect(dialogueSpy).toHaveBeenCalledTimes(1); - expect(messageSpy).toHaveBeenCalledTimes(2); - expect(dialogueSpy).toHaveBeenCalledWith("What's this?", "???", null, expect.any(Function)); - expect(messageSpy).toHaveBeenCalledWith("Mysterious challengers have appeared!", null, expect.any(Function), 750, true); - expect(messageSpy).toHaveBeenCalledWith("The trainer steps forward...", null, expect.any(Function), 300, true); + expect(ui.getMode()).toBe(Mode.MESSAGE); + expect(ui.showDialogue).toHaveBeenCalledTimes(1); + expect(ui.showText).toHaveBeenCalledTimes(2); + expect(ui.showDialogue).toHaveBeenCalledWith("battle:mysteryEncounterAppeared", "???", null, expect.any(Function)); + expect(ui.showText).toHaveBeenCalledWith("mysteryEncounters/mysteriousChallengers:intro", null, expect.any(Function), 750, true); + expect(ui.showText).toHaveBeenCalledWith("mysteryEncounters/mysteriousChallengers:option.selected", null, expect.any(Function), 300, true); }); }); diff --git a/src/test/ui/starter-select.test.ts b/src/test/ui/starter-select.test.ts index 6d26ebfd6b3..dd0761be392 100644 --- a/src/test/ui/starter-select.test.ts +++ b/src/test/ui/starter-select.test.ts @@ -66,11 +66,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); await new Promise((resolve) => { @@ -127,11 +127,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); await new Promise((resolve) => { @@ -191,11 +191,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); await new Promise((resolve) => { @@ -254,11 +254,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); await new Promise((resolve) => { @@ -315,11 +315,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); await new Promise((resolve) => { @@ -376,11 +376,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); await new Promise((resolve) => { @@ -436,11 +436,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); await new Promise((resolve) => { @@ -496,11 +496,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); let starterSelectUiHandler: StarterSelectUiHandler; @@ -561,11 +561,11 @@ describe("UI - Starter select", () => { resolve(); }); }); - expect(options.some(option => option.label === "Add to Party")).toBe(true); - expect(options.some(option => option.label === "Toggle IVs")).toBe(true); - expect(options.some(option => option.label === "Manage Moves")).toBe(true); - expect(options.some(option => option.label === "Use Candies")).toBe(true); - expect(options.some(option => option.label === "Cancel")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:addToParty")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:toggleIVs")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:manageMoves")).toBe(true); + expect(options.some(option => option.label === "starterSelectUiHandler:useCandies")).toBe(true); + expect(options.some(option => option.label === "menu:cancel")).toBe(true); optionSelectUiHandler?.processInput(Button.ACTION); let starterSelectUiHandler: StarterSelectUiHandler | undefined; diff --git a/src/test/ui/type-hints.test.ts b/src/test/ui/type-hints.test.ts index 726094b258a..82209859fb0 100644 --- a/src/test/ui/type-hints.test.ts +++ b/src/test/ui/type-hints.test.ts @@ -53,7 +53,7 @@ describe("UI - Type Hints", () => { const movesContainer = ui.getByName(FightUiHandler.MOVES_CONTAINER_NAME); const dragonClawText = movesContainer .getAll() - .find((text) => text.text === "Dragon Claw")! as unknown as MockText; + .find((text) => text.text === "move:dragonClaw.name")! as unknown as MockText; expect.soft(dragonClawText.color).toBe("#929292"); ui.getHandler().processInput(Button.ACTION); @@ -78,7 +78,7 @@ describe("UI - Type Hints", () => { const movesContainer = ui.getByName(FightUiHandler.MOVES_CONTAINER_NAME); const growlText = movesContainer .getAll() - .find((text) => text.text === "Growl")! as unknown as MockText; + .find((text) => text.text === "move:growl.name")! as unknown as MockText; expect.soft(growlText.color).toBe(undefined); ui.getHandler().processInput(Button.ACTION); diff --git a/src/test/utils/mocks/mocksContainer/mockText.ts b/src/test/utils/mocks/mocksContainer/mockText.ts index f0854fcd90a..faa32ff8a06 100644 --- a/src/test/utils/mocks/mocksContainer/mockText.ts +++ b/src/test/utils/mocks/mocksContainer/mockText.ts @@ -79,7 +79,14 @@ export default class MockText implements MockGameObject { return result; } - showText(text: string, delay?: integer | null, callback?: Function | null, callbackDelay?: integer | null, prompt?: boolean | null, promptDelay?: integer | null) { + showText( + text: string, + delay?: integer | null, + callback?: Function | null, + callbackDelay?: integer | null, + prompt?: boolean | null, + promptDelay?: integer | null + ) { this.scene.messageWrapper.showText(text, delay, callback, callbackDelay, prompt, promptDelay); if (callback) { callback(); @@ -115,16 +122,11 @@ export default class MockText implements MockGameObject { // return this.phaserText.once(event, callback, source); } - off(event, callback, obj) { - } + off(event, callback, obj) {} - removedFromScene() { + removedFromScene() {} - } - - addToDisplayList() { - - } + addToDisplayList() {} setStroke(color, thickness) { // Sets the stroke color and thickness. @@ -160,7 +162,7 @@ export default class MockText implements MockGameObject { * @param z The z position of this Game Object. Default 0. * @param w The w position of this Game Object. Default 0. */ - setPosition(x?: number, y?: number, z?: number, w?: number) { } + setPosition(x?: number, y?: number, z?: number, w?: number) {} setText(text) { // Sets the text this Game Object will display. @@ -298,4 +300,6 @@ export default class MockText implements MockGameObject { getAll() { return this.list; } + + on(_event: string | symbol, _fn: Function, _context?: any) {} } diff --git a/src/test/vitest.setup.ts b/src/test/vitest.setup.ts index 74129f20d26..9778204aa7b 100644 --- a/src/test/vitest.setup.ts +++ b/src/test/vitest.setup.ts @@ -5,13 +5,13 @@ import { initAbilities } from "#app/data/ability"; import { initBiomes } from "#app/data/biomes"; import { initEggMoves } from "#app/data/egg-moves"; import { initMoves } from "#app/data/move"; +import { initMysteryEncounters } from "#app/data/mystery-encounters/mystery-encounters"; import { initPokemonPrevolutions } from "#app/data/pokemon-evolutions"; import { initPokemonForms } from "#app/data/pokemon-forms"; import { initSpecies } from "#app/data/pokemon-species"; import { initAchievements } from "#app/system/achv"; import { initVouchers } from "#app/system/voucher"; import { initStatsKeys } from "#app/ui/game-stats-ui-handler"; -import { initMysteryEncounters } from "#app/data/mystery-encounters/mystery-encounters"; import { beforeAll, vi } from "vitest"; process.env.TZ = "UTC"; @@ -22,10 +22,31 @@ vi.mock("#app/overrides", async (importOriginal) => { return { default: defaultOverrides, - defaultOverrides + defaultOverrides, } satisfies typeof import("#app/overrides"); }); +vi.mock("i18next", () => ({ + default: { + use: () => {}, + t: (key: string) => key, + changeLanguage: () => Promise.resolve(), + init: () => Promise.resolve(), + resolvedLanguage: "en", + exists: () => true, + getDataByLanguage:() => ({ + en: { + keys: ["foo"] + }, + }), + services: { + formatter: { + add: () => {}, + } + }, + }, +})); + initVouchers(); initAchievements(); initStatsKeys(); @@ -46,6 +67,6 @@ beforeAll(() => { writable: true, value: { add: () => {}, - } + }, }); }); diff --git a/src/utils.ts b/src/utils.ts index 68331211fc0..7a0def1a950 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -640,3 +640,14 @@ export function isBetween(num: number, min: number, max: number): boolean { export function animationFileName(move: Moves): string { return Moves[move].toLowerCase().replace(/\_/g, "-"); } + +/** + * Transforms a camelCase string into a kebab-case string + * @param str The camelCase string + * @returns A kebab-case string + * + * @source {@link https://stackoverflow.com/a/67243723/} + */ +export function camelCaseToKebabCase(str: string): string { + return str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, (s, o) => (o ? "-" : "") + s.toLowerCase()); +}