New spanish translations and literals for all langs (#552)

* Spanish translations for intro messages and some menus. Added Empty (save file) to lang files

* Spanish translations + new literals in all langs

* Spanish translations, new literals for all langs (starter-select-ui-handler)

* Two translations

* Resolving accidental overwrite in french menu.ts

* New starter-select-ui-handler lang files for all langs

---------

Co-authored-by: rnicar <rj.nieto.car@gmail.com>
pull/420/head^2
ArceUseless 2024-05-06 18:02:45 +02:00 committed by GitHub
parent 78ae7c9f0a
commit bde7620ac0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
14 changed files with 221 additions and 38 deletions

View File

@ -43,5 +43,4 @@ export const menu: SimpleTranslationEntries = {
"empty":"Empty", "empty":"Empty",
"yes":"Yes", "yes":"Yes",
"no":"No", "no":"No",
"confirmStartTeam":'Begin with these Pokémon?',
} as const; } as const;

View File

@ -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"
}

View File

@ -43,5 +43,4 @@ export const menu: SimpleTranslationEntries = {
"empty":"Empty", "empty":"Empty",
"yes":"Yes", "yes":"Yes",
"no":"No", "no":"No",
"confirmStartTeam":'Begin with these Pokémon?',
} as const; } as const;

View File

@ -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"
}

View File

@ -13,6 +13,22 @@ export const menu: SimpleTranslationEntries = {
"newGame": "Nueva partida", "newGame": "Nueva partida",
"selectGameMode": "Elige un modo de juego.", "selectGameMode": "Elige un modo de juego.",
"logInOrCreateAccount": "Inicia sesión o crea una cuenta para empezar. ¡No se requiere correo electrónico!", "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.", "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.", "sessionSuccess": "Sesión cargada con éxito.",
"failedToLoadSession": "No se ha podido cargar los datos de tu sesión.\nPuede que estén corruptos.", "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", "empty":"Vacío",
"yes":"Sí", "yes":"Sí",
"no":"No", "no":"No",
"confirmStartTeam":'¿Comenzar con estos Pokémon?',
} as const; } as const;

View File

@ -4,13 +4,13 @@ export const pokemonStat: SimpleTranslationEntries = {
"HP": "PV", "HP": "PV",
"HPshortened": "PV", "HPshortened": "PV",
"ATK": "Ataque", "ATK": "Ataque",
"ATKshortened": "Ataque", "ATKshortened": "Ata",
"DEF": "Defensa", "DEF": "Defensa",
"DEFshortened": "Defensa", "DEFshortened": "Def",
"SPATK": "At. Esp.", "SPATK": "At. Esp.",
"SPATKshortened": "At. Esp.", "SPATKshortened": "AtEsp",
"SPDEF": "Def. Esp.", "SPDEF": "Def. Esp.",
"SPDEFshortened": "Def. Esp.", "SPDEFshortened": "DefEsp",
"SPD": "Velocidad", "SPD": "Velocidad",
"SPDshortened": "Veloc." "SPDshortened": "Veloc."
} as const; } as const;

View File

@ -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"
}

View File

@ -10,9 +10,9 @@ export const tutorial: SimpleTranslationEntries = {
$ajustes de tu navegador.`, $ajustes de tu navegador.`,
"accessMenu": `Para acceder al menú, pulsa M o Escape cuando\ntengas el control. "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. $Podrás cambiar la velocidad del juego, el estilo de la ventana y demás.
$Hay más opciones, ¡así que pruébalas todas!`, $Hay más opciones, ¡así que pruébalas todas!`,

View File

@ -38,5 +38,4 @@ export const menu: SimpleTranslationEntries = {
"empty":"Vide", "empty":"Vide",
"yes":"Oui", "yes":"Oui",
"no":"Non", "no":"Non",
"confirmStartTeam":'Commencer avec ces Pokémon ?',
} as const; } as const;

View File

@ -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"
}

View File

@ -43,5 +43,4 @@ export const menu: SimpleTranslationEntries = {
"empty":"Vuoto", "empty":"Vuoto",
"yes":"Si", "yes":"Si",
"no":"No", "no":"No",
"confirmStartTeam":'Vuoi iniziare con questi Pokémon?',
} as const; } as const;

View File

@ -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"
}

View File

@ -67,6 +67,12 @@ import { tutorial as frTutorial } from '../locales/fr/tutorial';
import { tutorial as itTutorial} from '../locales/it/tutorial'; import { tutorial as itTutorial} from '../locales/it/tutorial';
import { tutorial as deTutorial } from '../locales/de/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 { export interface SimpleTranslationEntries {
[key: string]: string [key: string]: string
} }
@ -136,6 +142,7 @@ export function initI18n(): void {
commandUiHandler: enCommandUiHandler, commandUiHandler: enCommandUiHandler,
fightUiHandler: enFightUiHandler, fightUiHandler: enFightUiHandler,
tutorial: enTutorial, tutorial: enTutorial,
starterSelectUiHandler: enStarterSelectUiHandler
}, },
es: { es: {
menu: esMenu, menu: esMenu,
@ -149,6 +156,7 @@ export function initI18n(): void {
commandUiHandler: esCommandUiHandler, commandUiHandler: esCommandUiHandler,
fightUiHandler: esFightUiHandler, fightUiHandler: esFightUiHandler,
tutorial: esTutorial, tutorial: esTutorial,
starterSelectUiHandler: esStarterSelectUiHandler
}, },
fr: { fr: {
menu: frMenu, menu: frMenu,
@ -162,6 +170,7 @@ export function initI18n(): void {
commandUiHandler: frCommandUiHandler, commandUiHandler: frCommandUiHandler,
fightUiHandler: frFightUiHandler, fightUiHandler: frFightUiHandler,
tutorial: frTutorial, tutorial: frTutorial,
starterSelectUiHandler: frStarterSelectUiHandler
}, },
it: { it: {
menu: itMenu, menu: itMenu,
@ -175,6 +184,7 @@ export function initI18n(): void {
commandUiHandler: itCommandUiHandler, commandUiHandler: itCommandUiHandler,
fightUiHandler: itFightUiHandler, fightUiHandler: itFightUiHandler,
tutorial: itTutorial, tutorial: itTutorial,
starterSelectUiHandler: itStarterSelectUiHandler
}, },
de: { de: {
menu: deMenu, menu: deMenu,
@ -188,6 +198,7 @@ export function initI18n(): void {
commandUiHandler: deCommandUiHandler, commandUiHandler: deCommandUiHandler,
fightUiHandler: deFightUiHandler, fightUiHandler: deFightUiHandler,
tutorial: deTutorial, tutorial: deTutorial,
starterSelectUiHandler: deStarterSelectUiHandler
} }
}, },
}); });
@ -208,6 +219,7 @@ declare module 'i18next' {
commandUiHandler: typeof enCommandUiHandler; commandUiHandler: typeof enCommandUiHandler;
fightUiHandler: typeof enFightUiHandler; fightUiHandler: typeof enFightUiHandler;
tutorial: typeof enTutorial; tutorial: typeof enTutorial;
starterSelectUiHandler: typeof enStarterSelectUiHandler;
}; };
} }
} }

View File

@ -227,7 +227,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.pokemonNameText.setOrigin(0, 0); this.pokemonNameText.setOrigin(0, 0);
this.starterSelectContainer.add(this.pokemonNameText); 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.setOrigin(0, 0);
this.pokemonGrowthRateLabelText.setVisible(false); this.pokemonGrowthRateLabelText.setVisible(false);
this.starterSelectContainer.add(this.pokemonGrowthRateLabelText); this.starterSelectContainer.add(this.pokemonGrowthRateLabelText);
@ -244,7 +244,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.pokemonUncaughtText.setOrigin(0, 0); this.pokemonUncaughtText.setOrigin(0, 0);
this.starterSelectContainer.add(this.pokemonUncaughtText); 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.setOrigin(0, 0);
this.pokemonAbilityLabelText.setVisible(false); this.pokemonAbilityLabelText.setVisible(false);
this.starterSelectContainer.add(this.pokemonAbilityLabelText); this.starterSelectContainer.add(this.pokemonAbilityLabelText);
@ -253,7 +253,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.pokemonAbilityText.setOrigin(0, 0); this.pokemonAbilityText.setOrigin(0, 0);
this.starterSelectContainer.add(this.pokemonAbilityText); 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.setOrigin(0, 0);
this.pokemonPassiveLabelText.setVisible(false); this.pokemonPassiveLabelText.setVisible(false);
this.starterSelectContainer.add(this.pokemonPassiveLabelText); this.starterSelectContainer.add(this.pokemonPassiveLabelText);
@ -262,7 +262,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.pokemonPassiveText.setOrigin(0, 0); this.pokemonPassiveText.setOrigin(0, 0);
this.starterSelectContainer.add(this.pokemonPassiveText); 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.setOrigin(0, 0);
this.pokemonNatureLabelText.setVisible(false); this.pokemonNatureLabelText.setVisible(false);
this.starterSelectContainer.add(this.pokemonNatureLabelText); this.starterSelectContainer.add(this.pokemonNatureLabelText);
@ -327,7 +327,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.valueLimitLabel.setOrigin(0.5, 0); this.valueLimitLabel.setOrigin(0.5, 0);
this.starterSelectContainer.add(this.valueLimitLabel); 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); startLabel.setOrigin(0.5, 0);
this.starterSelectContainer.add(startLabel); this.starterSelectContainer.add(startLabel);
@ -512,7 +512,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.pokemonEggMovesContainer = this.scene.add.container(102, 85); this.pokemonEggMovesContainer = this.scene.add.container(102, 85);
this.pokemonEggMovesContainer.setScale(0.375); 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); eggMovesLabel.setOrigin(0.5, 0);
this.pokemonEggMovesContainer.add(eggMovesLabel); this.pokemonEggMovesContainer.add(eggMovesLabel);
@ -734,7 +734,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
else if (this.starterCursors.length < 6) { else if (this.starterCursors.length < 6) {
const options = [ const options = [
{ {
label: 'Add to Party', label: i18next.t("starterSelectUiHandler:addToParty"),
handler: () => { handler: () => {
ui.setMode(Mode.STARTER_SELECT); ui.setMode(Mode.STARTER_SELECT);
let isDupe = false; let isDupe = false;
@ -771,7 +771,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
overrideSound: true overrideSound: true
}, },
{ {
label: 'Toggle IVs', label: i18next.t("starterSelectUiHandler:toggleIVs"),
handler: () => { handler: () => {
this.toggleStatsMode(); this.toggleStatsMode();
ui.setMode(Mode.STARTER_SELECT); ui.setMode(Mode.STARTER_SELECT);
@ -782,14 +782,14 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
if (this.speciesStarterMoves.length > 1) { if (this.speciesStarterMoves.length > 1) {
const showSwapOptions = (moveset: StarterMoveset) => { const showSwapOptions = (moveset: StarterMoveset) => {
ui.setMode(Mode.STARTER_SELECT).then(() => { 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, { ui.setModeWithoutClear(Mode.OPTION_SELECT, {
options: moveset.map((m: Moves, i: number) => { options: moveset.map((m: Moves, i: number) => {
const option: OptionSelectItem = { const option: OptionSelectItem = {
label: allMoves[m].name, label: allMoves[m].name,
handler: () => { handler: () => {
ui.setMode(Mode.STARTER_SELECT).then(() => { 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, { ui.setModeWithoutClear(Mode.OPTION_SELECT, {
options: this.speciesStarterMoves.filter((sm: Moves) => sm !== m).map(sm => { options: this.speciesStarterMoves.filter((sm: Moves) => sm !== m).map(sm => {
// make an option for each available starter move // make an option for each available starter move
@ -803,7 +803,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}; };
return option; return option;
}).concat({ }).concat({
label: 'Cancel', label: i18next.t("menu:cancel"),
handler: () => { handler: () => {
showSwapOptions(this.starterMoveset); showSwapOptions(this.starterMoveset);
return true; return true;
@ -819,7 +819,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}; };
return option; return option;
}).concat({ }).concat({
label: 'Cancel', label: i18next.t("menu:cancel"),
handler: () => { handler: () => {
this.clearText(); this.clearText();
ui.setMode(Mode.STARTER_SELECT); ui.setMode(Mode.STARTER_SELECT);
@ -833,7 +833,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}); });
}; };
options.push({ options.push({
label: 'Manage Moves', label: i18next.t("starterSelectUiHandler:manageMoves"),
handler: () => { handler: () => {
showSwapOptions(this.starterMoveset); showSwapOptions(this.starterMoveset);
return true; return true;
@ -846,7 +846,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
if (passiveAttr & PassiveAttr.UNLOCKED) { if (passiveAttr & PassiveAttr.UNLOCKED) {
if (!(passiveAttr & PassiveAttr.ENABLED)) { if (!(passiveAttr & PassiveAttr.ENABLED)) {
options.push({ options.push({
label: 'Enable Passive', label: i18next.t("starterSelectUiHandler:enablePassive"),
handler: () => { handler: () => {
starterData.passiveAttr |= PassiveAttr.ENABLED; starterData.passiveAttr |= PassiveAttr.ENABLED;
ui.setMode(Mode.STARTER_SELECT); ui.setMode(Mode.STARTER_SELECT);
@ -856,7 +856,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}); });
} else { } else {
options.push({ options.push({
label: 'Disable Passive', label: i18next.t("starterSelectUiHandler:disablePassive"),
handler: () => { handler: () => {
starterData.passiveAttr ^= PassiveAttr.ENABLED; starterData.passiveAttr ^= PassiveAttr.ENABLED;
ui.setMode(Mode.STARTER_SELECT); ui.setMode(Mode.STARTER_SELECT);
@ -871,7 +871,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
if (!(passiveAttr & PassiveAttr.UNLOCKED)) { if (!(passiveAttr & PassiveAttr.UNLOCKED)) {
const passiveCost = getPassiveCandyCount(speciesStarters[this.lastSpecies.speciesId]); const passiveCost = getPassiveCandyCount(speciesStarters[this.lastSpecies.speciesId]);
options.push({ 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: () => { handler: () => {
if (candyCount >= passiveCost) { if (candyCount >= passiveCost) {
starterData.passiveAttr |= PassiveAttr.UNLOCKED | PassiveAttr.ENABLED; starterData.passiveAttr |= PassiveAttr.UNLOCKED | PassiveAttr.ENABLED;
@ -895,7 +895,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
if (valueReduction < 2) { if (valueReduction < 2) {
const reductionCost = getValueReductionCandyCounts(speciesStarters[this.lastSpecies.speciesId])[valueReduction]; const reductionCost = getValueReductionCandyCounts(speciesStarters[this.lastSpecies.speciesId])[valueReduction];
options.push({ options.push({
label: `x${reductionCost} Reduce Cost`, label: `x${reductionCost} ${i18next.t("starterSelectUiHandler:reduceCost")}`,
handler: () => { handler: () => {
if (candyCount >= reductionCost) { if (candyCount >= reductionCost) {
starterData.valueReduction++; starterData.valueReduction++;
@ -918,7 +918,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}); });
} }
options.push({ options.push({
label: 'Cancel', label: i18next.t("menu:cancel"),
handler: () => { handler: () => {
ui.setMode(Mode.STARTER_SELECT); ui.setMode(Mode.STARTER_SELECT);
return true; return true;
@ -931,7 +931,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}; };
if (!pokemonPrevolutions.hasOwnProperty(this.lastSpecies.speciesId)) { if (!pokemonPrevolutions.hasOwnProperty(this.lastSpecies.speciesId)) {
options.push({ options.push({
label: 'Use Candies', label: i18next.t("starterSelectUiHandler:useCandies"),
handler: () => { handler: () => {
ui.setMode(Mode.STARTER_SELECT).then(() => showUseCandies()); ui.setMode(Mode.STARTER_SELECT).then(() => showUseCandies());
return true; return true;
@ -939,7 +939,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
}); });
} }
options.push({ options.push({
label: 'Cancel', label: i18next.t("menu:cancel"),
handler: () => { handler: () => {
ui.setMode(Mode.STARTER_SELECT); ui.setMode(Mode.STARTER_SELECT);
return true; return true;
@ -1108,17 +1108,17 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
let cycleInstructionLines = []; let cycleInstructionLines = [];
if (this.speciesStarterDexEntry?.caughtAttr) { if (this.speciesStarterDexEntry?.caughtAttr) {
if (this.canCycleShiny) if (this.canCycleShiny)
cycleInstructionLines.push('R: Cycle Shiny'); cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleShiny"));
if (this.canCycleForm) if (this.canCycleForm)
cycleInstructionLines.push('F: Cycle Form'); cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleForm"));
if (this.canCycleGender) if (this.canCycleGender)
cycleInstructionLines.push('G: Cycle Gender'); cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleGender"));
if (this.canCycleAbility) if (this.canCycleAbility)
cycleInstructionLines.push('E: Cycle Ability'); cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleAbility"));
if (this.canCycleNature) if (this.canCycleNature)
cycleInstructionLines.push('N: Cycle Nature'); cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleNature"));
if (this.canCycleVariant) if (this.canCycleVariant)
cycleInstructionLines.push('V: Cycle Variant'); cycleInstructionLines.push(i18next.t("starterSelectUiHandler:cycleVariant"));
} }
if (cycleInstructionLines.length > 2) { if (cycleInstructionLines.length > 2) {
@ -1697,7 +1697,7 @@ export default class StarterSelectUiHandler extends MessageUiHandler {
this.clearText(); this.clearText();
}; };
ui.showText(i18next.t("menu:confirmStartTeam"), null, () => { ui.showText(i18next.t("starterSelectUiHandler:confirmStartTeam"), null, () => {
ui.setModeWithoutClear(Mode.CONFIRM, () => { ui.setModeWithoutClear(Mode.CONFIRM, () => {
const startRun = (gameMode: GameModes) => { const startRun = (gameMode: GameModes) => {
this.scene.gameMode = gameModes[gameMode]; this.scene.gameMode = gameModes[gameMode];