diff --git a/src/locales/de/menu.ts b/src/locales/de/menu.ts index 3f86ae41a7e..aa4604f9db2 100644 --- a/src/locales/de/menu.ts +++ b/src/locales/de/menu.ts @@ -43,5 +43,4 @@ export const menu: SimpleTranslationEntries = { "empty":"Empty", "yes":"Yes", "no":"No", - "confirmStartTeam":'Begin with these Pokémon?', } as const; \ No newline at end of file diff --git a/src/locales/de/starter-select-ui-handler.ts b/src/locales/de/starter-select-ui-handler.ts new file mode 100644 index 00000000000..c7595cb2f95 --- /dev/null +++ b/src/locales/de/starter-select-ui-handler.ts @@ -0,0 +1,32 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The menu namespace holds most miscellaneous text that isn't directly part of the game's + * contents or directly related to Pokemon data. This includes menu navigation, settings, + * account interactions, descriptive text, etc. + */ +export const starterSelectUiHandler: SimpleTranslationEntries = { + "confirmStartTeam":'Begin with these Pokémon?', + "growthRate": "Growth Rate:", + "ability": "Ability:", + "passive": "Passive:", + "nature": "Nature:", + "eggMoves": 'Egg Moves', + "start": "Start", + "addToParty": "Add to Party", + "toggleIVs": 'Toggle IVs', + "manageMoves": 'Manage Moves', + "useCandies": 'Use Candies', + "selectMoveSwapOut": "Select a move to swap out.", + "selectMoveSwapWith": "Select a move to swap with", + "unlockPassive": "Unlock Passive", + "reduceCost": "Reduce Cost", + "cycleShiny": "R: Cycle Shiny", + "cycleForm": 'F: Cycle Form', + "cycleGender": 'G: Cycle Gender', + "cycleAbility": 'E: Cycle Ability', + "cycleNature": 'N: Cycle Nature', + "cycleVariant": 'V: Cycle Variant', + "enablePassive": "Enable Passive", + "disablePassive": "Disable Passive" +} \ No newline at end of file diff --git a/src/locales/en/menu.ts b/src/locales/en/menu.ts index 887f3d87834..7a5043a98e2 100644 --- a/src/locales/en/menu.ts +++ b/src/locales/en/menu.ts @@ -43,5 +43,4 @@ export const menu: SimpleTranslationEntries = { "empty":"Empty", "yes":"Yes", "no":"No", - "confirmStartTeam":'Begin with these Pokémon?', } as const; \ No newline at end of file diff --git a/src/locales/en/starter-select-ui-handler.ts b/src/locales/en/starter-select-ui-handler.ts new file mode 100644 index 00000000000..c7595cb2f95 --- /dev/null +++ b/src/locales/en/starter-select-ui-handler.ts @@ -0,0 +1,32 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The menu namespace holds most miscellaneous text that isn't directly part of the game's + * contents or directly related to Pokemon data. This includes menu navigation, settings, + * account interactions, descriptive text, etc. + */ +export const starterSelectUiHandler: SimpleTranslationEntries = { + "confirmStartTeam":'Begin with these Pokémon?', + "growthRate": "Growth Rate:", + "ability": "Ability:", + "passive": "Passive:", + "nature": "Nature:", + "eggMoves": 'Egg Moves', + "start": "Start", + "addToParty": "Add to Party", + "toggleIVs": 'Toggle IVs', + "manageMoves": 'Manage Moves', + "useCandies": 'Use Candies', + "selectMoveSwapOut": "Select a move to swap out.", + "selectMoveSwapWith": "Select a move to swap with", + "unlockPassive": "Unlock Passive", + "reduceCost": "Reduce Cost", + "cycleShiny": "R: Cycle Shiny", + "cycleForm": 'F: Cycle Form', + "cycleGender": 'G: Cycle Gender', + "cycleAbility": 'E: Cycle Ability', + "cycleNature": 'N: Cycle Nature', + "cycleVariant": 'V: Cycle Variant', + "enablePassive": "Enable Passive", + "disablePassive": "Disable Passive" +} \ No newline at end of file diff --git a/src/locales/es/menu.ts b/src/locales/es/menu.ts index 5569c1e1668..4839630bc56 100644 --- a/src/locales/es/menu.ts +++ b/src/locales/es/menu.ts @@ -13,6 +13,22 @@ export const menu: SimpleTranslationEntries = { "newGame": "Nueva partida", "selectGameMode": "Elige un modo de juego.", "logInOrCreateAccount": "Inicia sesión o crea una cuenta para empezar. ¡No se requiere correo electrónico!", + "username": "Usuario", + "password": "Contraseña", + "login": "Iniciar Sesión", + "register": "Registrarse", + "emptyUsername": "El usuario no puede estar vacío", + "invalidLoginUsername": "El usuario no es válido", + "invalidRegisterUsername": "El usuario solo puede contener letras, números y guiones bajos", + "invalidLoginPassword": "La contraseña no es válida", + "invalidRegisterPassword": "Contraseña debe tener 6 o más caracter.", + "usernameAlreadyUsed": "El usuario ya está en uso", + "accountNonExistent": "El usuario no existe", + "unmatchingPassword": "La contraseña no coincide", + "passwordNotMatchingConfirmPassword": "Las contraseñas deben coincidir", + "confirmPassword": "Confirmar Contra.", + "registrationAgeWarning": "Al registrarte, confirmas tener 13 o más años de edad.", + "backToLogin": "Volver al Login", "failedToLoadSaveData": "No se ha podido cargar los datos guardados. Por favor, recarga la página.\nSi el fallo continúa, por favor contacta al administrador.", "sessionSuccess": "Sesión cargada con éxito.", "failedToLoadSession": "No se ha podido cargar los datos de tu sesión.\nPuede que estén corruptos.", @@ -27,5 +43,4 @@ export const menu: SimpleTranslationEntries = { "empty":"Vacío", "yes":"Sí", "no":"No", - "confirmStartTeam":'¿Comenzar con estos Pokémon?', } as const; \ No newline at end of file diff --git a/src/locales/es/pokemon-stat.ts b/src/locales/es/pokemon-stat.ts index 276b099bf74..514ef19891b 100644 --- a/src/locales/es/pokemon-stat.ts +++ b/src/locales/es/pokemon-stat.ts @@ -4,13 +4,13 @@ export const pokemonStat: SimpleTranslationEntries = { "HP": "PV", "HPshortened": "PV", "ATK": "Ataque", - "ATKshortened": "Ataque", + "ATKshortened": "Ata", "DEF": "Defensa", - "DEFshortened": "Defensa", + "DEFshortened": "Def", "SPATK": "At. Esp.", - "SPATKshortened": "At. Esp.", + "SPATKshortened": "AtEsp", "SPDEF": "Def. Esp.", - "SPDEFshortened": "Def. Esp.", + "SPDEFshortened": "DefEsp", "SPD": "Velocidad", "SPDshortened": "Veloc." } as const; \ No newline at end of file diff --git a/src/locales/es/starter-select-ui-handler.ts b/src/locales/es/starter-select-ui-handler.ts new file mode 100644 index 00000000000..629e2563260 --- /dev/null +++ b/src/locales/es/starter-select-ui-handler.ts @@ -0,0 +1,32 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The menu namespace holds most miscellaneous text that isn't directly part of the game's + * contents or directly related to Pokemon data. This includes menu navigation, settings, + * account interactions, descriptive text, etc. + */ +export const starterSelectUiHandler: SimpleTranslationEntries = { + "confirmStartTeam":'¿Comenzar con estos Pokémon?', + "growthRate": "Crecimiento:", + "ability": "Habilid:", + "passive": "Pasiva:", + "nature": "Natur:", + "eggMoves": "Mov. Huevo", + "start": "Iniciar", + "addToParty": "Añadir a Equipo", + "toggleIVs": "Mostrar IVs", + "manageMoves": "Gestionar Movs.", + "useCandies": "Usar Caramelos", + "selectMoveSwapOut": "Elige el movimiento que sustituir.", + "selectMoveSwapWith": "Elige el movimiento que sustituirá a", + "unlockPassive": "Añadir Pasiva", + "reduceCost": "Reducir Coste", + "cycleShiny": "R: Cambiar Shiny", + "cycleForm": 'F: Cambiar Forma', + "cycleGender": 'G: Cambiar Género', + "cycleAbility": 'E: Cambiar Habilidad', + "cycleNature": 'N: Cambiar Naturaleza', + "cycleVariant": 'V: Cambiar Variante', + "enablePassive": "Activar Pasiva", + "disablePassive": "Desactivar Pasiva" +} \ No newline at end of file diff --git a/src/locales/es/tutorial.ts b/src/locales/es/tutorial.ts index e179ca55cee..6e131f9b0c9 100644 --- a/src/locales/es/tutorial.ts +++ b/src/locales/es/tutorial.ts @@ -10,9 +10,9 @@ export const tutorial: SimpleTranslationEntries = { $ajustes de tu navegador.`, "accessMenu": `Para acceder al menú, pulsa M o Escape cuando\ntengas el control. - $El menú contiene la configuración y otras funciones.`, + $El menú contiene los ajustes y otras funciones.`, - "menu": `Desde este menú podrás acceder a la configuración. + "menu": `Desde este menú podrás acceder a los ajustes. $Podrás cambiar la velocidad del juego, el estilo de la ventana y demás. $Hay más opciones, ¡así que pruébalas todas!`, diff --git a/src/locales/fr/menu.ts b/src/locales/fr/menu.ts index 7cea2c6d306..b073bbbfbf4 100644 --- a/src/locales/fr/menu.ts +++ b/src/locales/fr/menu.ts @@ -38,5 +38,4 @@ export const menu: SimpleTranslationEntries = { "empty":"Vide", "yes":"Oui", "no":"Non", - "confirmStartTeam":'Commencer avec ces Pokémon ?', } as const; diff --git a/src/locales/fr/starter-select-ui-handler.ts b/src/locales/fr/starter-select-ui-handler.ts new file mode 100644 index 00000000000..f91194f0cfe --- /dev/null +++ b/src/locales/fr/starter-select-ui-handler.ts @@ -0,0 +1,32 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The menu namespace holds most miscellaneous text that isn't directly part of the game's + * contents or directly related to Pokemon data. This includes menu navigation, settings, + * account interactions, descriptive text, etc. + */ +export const starterSelectUiHandler: SimpleTranslationEntries = { + "confirmStartTeam":'Commencer avec ces Pokémon ?', + "growthRate": "Growth Rate:", + "ability": "Ability:", + "passive": "Passive:", + "nature": "Nature:", + "eggMoves": 'Egg Moves', + "start": "Start", + "addToParty": "Add to Party", + "toggleIVs": 'Toggle IVs', + "manageMoves": 'Manage Moves', + "useCandies": 'Use Candies', + "selectMoveSwapOut": "Select a move to swap out.", + "selectMoveSwapWith": "Select a move to swap with", + "unlockPassive": "Unlock Passive", + "reduceCost": "Reduce Cost", + "cycleShiny": "R: Cycle Shiny", + "cycleForm": 'F: Cycle Form', + "cycleGender": 'G: Cycle Gender', + "cycleAbility": 'E: Cycle Ability', + "cycleNature": 'N: Cycle Nature', + "cycleVariant": 'V: Cycle Variant', + "enablePassive": "Enable Passive", + "disablePassive": "Disable Passive" +} \ No newline at end of file diff --git a/src/locales/it/menu.ts b/src/locales/it/menu.ts index df685cd7f49..1344b21cc53 100644 --- a/src/locales/it/menu.ts +++ b/src/locales/it/menu.ts @@ -43,5 +43,4 @@ export const menu: SimpleTranslationEntries = { "empty":"Vuoto", "yes":"Si", "no":"No", - "confirmStartTeam":'Vuoi iniziare con questi Pokémon?', } as const; \ No newline at end of file diff --git a/src/locales/it/starter-select-ui-handler.ts b/src/locales/it/starter-select-ui-handler.ts new file mode 100644 index 00000000000..b9dc4ccacb0 --- /dev/null +++ b/src/locales/it/starter-select-ui-handler.ts @@ -0,0 +1,32 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +/** + * The menu namespace holds most miscellaneous text that isn't directly part of the game's + * contents or directly related to Pokemon data. This includes menu navigation, settings, + * account interactions, descriptive text, etc. + */ +export const starterSelectUiHandler: SimpleTranslationEntries = { + "confirmStartTeam":'Vuoi iniziare con questi Pokémon?', + "growthRate": "Growth Rate:", + "ability": "Ability:", + "passive": "Passive:", + "nature": "Nature:", + "eggMoves": 'Egg Moves', + "start": "Start", + "addToParty": "Add to Party", + "toggleIVs": 'Toggle IVs', + "manageMoves": 'Manage Moves', + "useCandies": 'Use Candies', + "selectMoveSwapOut": "Select a move to swap out.", + "selectMoveSwapWith": "Select a move to swap with", + "unlockPassive": "Unlock Passive", + "reduceCost": "Reduce Cost", + "cycleShiny": "R: Cycle Shiny", + "cycleForm": 'F: Cycle Form', + "cycleGender": 'G: Cycle Gender', + "cycleAbility": 'E: Cycle Ability', + "cycleNature": 'N: Cycle Nature', + "cycleVariant": 'V: Cycle Variant', + "enablePassive": "Enable Passive", + "disablePassive": "Disable Passive" +} \ No newline at end of file diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index c3a8ac536a1..8ad0711f596 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -67,6 +67,12 @@ import { tutorial as frTutorial } from '../locales/fr/tutorial'; import { tutorial as itTutorial} from '../locales/it/tutorial'; import { tutorial as deTutorial } from '../locales/de/tutorial'; +import { starterSelectUiHandler as enStarterSelectUiHandler } from '../locales/en/starter-select-ui-handler'; +import { starterSelectUiHandler as esStarterSelectUiHandler } from '../locales/es/starter-select-ui-handler'; +import { starterSelectUiHandler as frStarterSelectUiHandler } from '../locales/fr/starter-select-ui-handler'; +import { starterSelectUiHandler as itStarterSelectUiHandler} from '../locales/it/starter-select-ui-handler'; +import { starterSelectUiHandler as deStarterSelectUiHandler } from '../locales/de/starter-select-ui-handler'; + export interface SimpleTranslationEntries { [key: string]: string } @@ -136,6 +142,7 @@ export function initI18n(): void { commandUiHandler: enCommandUiHandler, fightUiHandler: enFightUiHandler, tutorial: enTutorial, + starterSelectUiHandler: enStarterSelectUiHandler }, es: { menu: esMenu, @@ -149,6 +156,7 @@ export function initI18n(): void { commandUiHandler: esCommandUiHandler, fightUiHandler: esFightUiHandler, tutorial: esTutorial, + starterSelectUiHandler: esStarterSelectUiHandler }, fr: { menu: frMenu, @@ -162,6 +170,7 @@ export function initI18n(): void { commandUiHandler: frCommandUiHandler, fightUiHandler: frFightUiHandler, tutorial: frTutorial, + starterSelectUiHandler: frStarterSelectUiHandler }, it: { menu: itMenu, @@ -175,6 +184,7 @@ export function initI18n(): void { commandUiHandler: itCommandUiHandler, fightUiHandler: itFightUiHandler, tutorial: itTutorial, + starterSelectUiHandler: itStarterSelectUiHandler }, de: { menu: deMenu, @@ -188,6 +198,7 @@ export function initI18n(): void { commandUiHandler: deCommandUiHandler, fightUiHandler: deFightUiHandler, tutorial: deTutorial, + starterSelectUiHandler: deStarterSelectUiHandler } }, }); @@ -208,6 +219,7 @@ declare module 'i18next' { commandUiHandler: typeof enCommandUiHandler; fightUiHandler: typeof enFightUiHandler; tutorial: typeof enTutorial; + starterSelectUiHandler: typeof enStarterSelectUiHandler; }; } } diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index 7fe39d2fe2b..aa97b655a6b 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -227,7 +227,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonNameText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonNameText); - this.pokemonGrowthRateLabelText = addTextObject(this.scene, 8, 106, 'Growth Rate:', TextStyle.SUMMARY_ALT, { fontSize: '36px' }); + this.pokemonGrowthRateLabelText = addTextObject(this.scene, 8, 106, i18next.t("starterSelectUiHandler:growthRate"), TextStyle.SUMMARY_ALT, { fontSize: '36px' }); this.pokemonGrowthRateLabelText.setOrigin(0, 0); this.pokemonGrowthRateLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonGrowthRateLabelText); @@ -244,7 +244,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonUncaughtText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonUncaughtText); - this.pokemonAbilityLabelText = addTextObject(this.scene, 6, 127, 'Ability:', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + this.pokemonAbilityLabelText = addTextObject(this.scene, 6, 127, i18next.t("starterSelectUiHandler:ability"), TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonAbilityLabelText.setOrigin(0, 0); this.pokemonAbilityLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonAbilityLabelText); @@ -253,7 +253,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonAbilityText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonAbilityText); - this.pokemonPassiveLabelText = addTextObject(this.scene, 6, 136, 'Passive:', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + this.pokemonPassiveLabelText = addTextObject(this.scene, 6, 136, i18next.t("starterSelectUiHandler:passive"), TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonPassiveLabelText.setOrigin(0, 0); this.pokemonPassiveLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonPassiveLabelText); @@ -262,7 +262,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonPassiveText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonPassiveText); - this.pokemonNatureLabelText = addTextObject(this.scene, 6, 145, 'Nature:', TextStyle.SUMMARY_ALT, { fontSize: '56px' }); + this.pokemonNatureLabelText = addTextObject(this.scene, 6, 145, i18next.t("starterSelectUiHandler:nature"), TextStyle.SUMMARY_ALT, { fontSize: '56px' }); this.pokemonNatureLabelText.setOrigin(0, 0); this.pokemonNatureLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonNatureLabelText); @@ -327,7 +327,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.valueLimitLabel.setOrigin(0.5, 0); this.starterSelectContainer.add(this.valueLimitLabel); - const startLabel = addTextObject(this.scene, 124, 162, 'Start', TextStyle.TOOLTIP_CONTENT); + const startLabel = addTextObject(this.scene, 124, 162, i18next.t("starterSelectUiHandler:start"), TextStyle.TOOLTIP_CONTENT); startLabel.setOrigin(0.5, 0); this.starterSelectContainer.add(startLabel); @@ -512,7 +512,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonEggMovesContainer = this.scene.add.container(102, 85); this.pokemonEggMovesContainer.setScale(0.375); - const eggMovesLabel = addTextObject(this.scene, -46, 0, 'Egg Moves', TextStyle.WINDOW_ALT); + const eggMovesLabel = addTextObject(this.scene, -46, 0, i18next.t("starterSelectUiHandler:eggMoves"), TextStyle.WINDOW_ALT); eggMovesLabel.setOrigin(0.5, 0); this.pokemonEggMovesContainer.add(eggMovesLabel); @@ -734,7 +734,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { else if (this.starterCursors.length < 6) { const options = [ { - label: 'Add to Party', + label: i18next.t("starterSelectUiHandler:addToParty"), handler: () => { ui.setMode(Mode.STARTER_SELECT); let isDupe = false; @@ -771,7 +771,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { overrideSound: true }, { - label: 'Toggle IVs', + label: i18next.t("starterSelectUiHandler:toggleIVs"), handler: () => { this.toggleStatsMode(); ui.setMode(Mode.STARTER_SELECT); @@ -782,14 +782,14 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (this.speciesStarterMoves.length > 1) { const showSwapOptions = (moveset: StarterMoveset) => { ui.setMode(Mode.STARTER_SELECT).then(() => { - ui.showText('Select a move to swap out.', null, () => { + ui.showText(i18next.t("starterSelectUiHandler:selectMoveSwapOut"), null, () => { ui.setModeWithoutClear(Mode.OPTION_SELECT, { options: moveset.map((m: Moves, i: number) => { const option: OptionSelectItem = { label: allMoves[m].name, handler: () => { ui.setMode(Mode.STARTER_SELECT).then(() => { - ui.showText(`Select a move to swap with ${allMoves[m].name}.`, null, () => { + ui.showText(`${i18next.t("starterSelectUiHandler:selectMoveSwapWith")} ${allMoves[m].name}.`, null, () => { ui.setModeWithoutClear(Mode.OPTION_SELECT, { options: this.speciesStarterMoves.filter((sm: Moves) => sm !== m).map(sm => { // make an option for each available starter move @@ -803,7 +803,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }; return option; }).concat({ - label: 'Cancel', + label: i18next.t("menu:cancel"), handler: () => { showSwapOptions(this.starterMoveset); return true; @@ -819,7 +819,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }; return option; }).concat({ - label: 'Cancel', + label: i18next.t("menu:cancel"), handler: () => { this.clearText(); ui.setMode(Mode.STARTER_SELECT); @@ -833,7 +833,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }); }; options.push({ - label: 'Manage Moves', + label: i18next.t("starterSelectUiHandler:manageMoves"), handler: () => { showSwapOptions(this.starterMoveset); return true; @@ -846,7 +846,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (passiveAttr & PassiveAttr.UNLOCKED) { if (!(passiveAttr & PassiveAttr.ENABLED)) { options.push({ - label: 'Enable Passive', + label: i18next.t("starterSelectUiHandler:enablePassive"), handler: () => { starterData.passiveAttr |= PassiveAttr.ENABLED; ui.setMode(Mode.STARTER_SELECT); @@ -856,7 +856,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }); } else { options.push({ - label: 'Disable Passive', + label: i18next.t("starterSelectUiHandler:disablePassive"), handler: () => { starterData.passiveAttr ^= PassiveAttr.ENABLED; ui.setMode(Mode.STARTER_SELECT); @@ -871,7 +871,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (!(passiveAttr & PassiveAttr.UNLOCKED)) { const passiveCost = getPassiveCandyCount(speciesStarters[this.lastSpecies.speciesId]); options.push({ - label: `x${passiveCost} Unlock Passive (${allAbilities[starterPassiveAbilities[this.lastSpecies.speciesId]].name})`, + label: `x${passiveCost} ${i18next.t("starterSelectUiHandler:unlockPassive")} (${allAbilities[starterPassiveAbilities[this.lastSpecies.speciesId]].name})`, handler: () => { if (candyCount >= passiveCost) { starterData.passiveAttr |= PassiveAttr.UNLOCKED | PassiveAttr.ENABLED; @@ -895,7 +895,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { if (valueReduction < 2) { const reductionCost = getValueReductionCandyCounts(speciesStarters[this.lastSpecies.speciesId])[valueReduction]; options.push({ - label: `x${reductionCost} Reduce Cost`, + label: `x${reductionCost} ${i18next.t("starterSelectUiHandler:reduceCost")}`, handler: () => { if (candyCount >= reductionCost) { starterData.valueReduction++; @@ -918,7 +918,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }); } options.push({ - label: 'Cancel', + label: i18next.t("menu:cancel"), handler: () => { ui.setMode(Mode.STARTER_SELECT); return true; @@ -931,7 +931,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }; if (!pokemonPrevolutions.hasOwnProperty(this.lastSpecies.speciesId)) { options.push({ - label: 'Use Candies', + label: i18next.t("starterSelectUiHandler:useCandies"), handler: () => { ui.setMode(Mode.STARTER_SELECT).then(() => showUseCandies()); return true; @@ -939,7 +939,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { }); } options.push({ - label: 'Cancel', + label: i18next.t("menu:cancel"), handler: () => { ui.setMode(Mode.STARTER_SELECT); return true; @@ -1108,17 +1108,17 @@ export default class StarterSelectUiHandler extends MessageUiHandler { let cycleInstructionLines = []; if (this.speciesStarterDexEntry?.caughtAttr) { if (this.canCycleShiny) - cycleInstructionLines.push('R: Cycle Shiny'); + cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleShiny")); if (this.canCycleForm) - cycleInstructionLines.push('F: Cycle Form'); + cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleForm")); if (this.canCycleGender) - cycleInstructionLines.push('G: Cycle Gender'); + cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleGender")); if (this.canCycleAbility) - cycleInstructionLines.push('E: Cycle Ability'); + cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleAbility")); if (this.canCycleNature) - cycleInstructionLines.push('N: Cycle Nature'); + cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleNature")); if (this.canCycleVariant) - cycleInstructionLines.push('V: Cycle Variant'); + cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleVariant")); } if (cycleInstructionLines.length > 2) { @@ -1697,7 +1697,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.clearText(); }; - ui.showText(i18next.t("menu:confirmStartTeam"), null, () => { + ui.showText(i18next.t("starterSelectUiHandler:confirmStartTeam"), null, () => { ui.setModeWithoutClear(Mode.CONFIRM, () => { const startRun = (gameMode: GameModes) => { this.scene.gameMode = gameModes[gameMode];