Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Added pokemon nicknames/renaming #2570

Merged
merged 32 commits into from
Jul 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
e43f2d8
Added basic temp renaming
sirzento Jun 24, 2024
3791f77
Made nickname persistant after reloading
sirzento Jun 24, 2024
aec82ce
Localization and cancel button
sirzento Jun 24, 2024
82f31d1
Fixed instant rename on active pokemon
sirzento Jun 24, 2024
8364955
Small bugfix to prevent console errors
sirzento Jun 24, 2024
9751c21
Changed logic to use the new nickname field. Replaced most .name with…
sirzento Jun 25, 2024
e4e04f3
Changed evolution message. Removed log messagesc
sirzento Jun 25, 2024
82ab7b6
Added localization keys for other languages
sirzento Jun 25, 2024
24e8789
Removed empty lines
sirzento Jun 25, 2024
35d1606
Merge branch 'main' into rename
sirzento Jun 25, 2024
46c1e0a
French translation
sirzento Jun 26, 2024
d128fa1
Chinese translation
sirzento Jun 26, 2024
fb90b49
Portuguese (Brazil) translation
sirzento Jun 27, 2024
dcef8e8
Korean translation
sirzento Jun 27, 2024
f4385ce
Merge branch 'main' into rename
sirzento Jun 28, 2024
7dcd7f9
Merge branch 'main' into rename
sirzento Jul 1, 2024
d5b8cef
Update menu.ts
sirzento Jul 1, 2024
f012271
Update menu.ts [Localization(it)]
NicusPulcis Jul 3, 2024
69b739f
Merge branch 'main' into rename
sirzento Jul 5, 2024
d717e8f
Merge branch 'beta' into rename
sirzento Jul 10, 2024
11bb6ca
Changed most .getNameToRender() instance to getPokemonNameWithAffix()
sirzento Jul 12, 2024
96b336e
Merge branch 'beta' into rename
sirzento Jul 12, 2024
272d875
Changed wild encounter messages back to just use the name without affix.
sirzento Jul 12, 2024
f9375d8
Merge branch 'rename' of https://github.com/sirzento/pokerogue into r…
sirzento Jul 12, 2024
a100738
Merge branch 'beta' into rename
sirzento Jul 12, 2024
4193408
Merge pull request #3 from NicusPulcis/patch-39
sirzento Jul 13, 2024
5080d9d
Merge branch 'beta' into rename
sirzento Jul 13, 2024
afe5a12
Merge branch 'beta' into rename
sirzento Jul 17, 2024
e376008
Added localization for the party ui rename selection
sirzento Jul 17, 2024
86feaf8
Escaping nickname characters to support all characters
sirzento Jul 17, 2024
b6494ee
Better Error handling
sirzento Jul 17, 2024
7e27c1b
Update src/field/pokemon.ts
sirzento Jul 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/data/ability.ts
Original file line number Diff line number Diff line change
Expand Up @@ -752,7 +752,7 @@ export class PostDefendApplyBattlerTagAbAttr extends PostDefendAbAttr {
if (this.condition(pokemon, attacker, move)) {
if (!pokemon.getTag(this.tagType)) {
pokemon.addTag(this.tagType, undefined, undefined, pokemon.id);
pokemon.scene.queueMessage(i18next.t("abilityTriggers:windPowerCharged", { pokemonName: pokemon.name, moveName: move.name }));
pokemon.scene.queueMessage(i18next.t("abilityTriggers:windPowerCharged", { pokemonName: getPokemonNameWithAffix(pokemon), moveName: move.name }));
}
return true;
}
Expand Down Expand Up @@ -2936,7 +2936,7 @@ export class PostTurnStatusHealAbAttr extends PostTurnAbAttr {
const scene = pokemon.scene;
const abilityName = (!passive ? pokemon.getAbility() : pokemon.getPassiveAbility()).name;
scene.unshiftPhase(new PokemonHealPhase(scene, pokemon.getBattlerIndex(),
Math.max(Math.floor(pokemon.getMaxHp() / 8), 1), i18next.t("abilityTriggers:poisonHeal", { pokemonName: pokemon.name, abilityName: abilityName}), true));
Math.max(Math.floor(pokemon.getMaxHp() / 8), 1), i18next.t("abilityTriggers:poisonHeal", { pokemonName: getPokemonNameWithAffix(pokemon), abilityName: abilityName}), true));
return true;
}
}
Expand Down Expand Up @@ -3912,7 +3912,7 @@ export class IceFaceBlockPhysicalAbAttr extends ReceivedMoveDamageMultiplierAbAt
* @returns {string} - The trigger message.
*/
getTriggerMessage(pokemon: Pokemon, abilityName: string, ...args: any[]): string {
return i18next.t("abilityTriggers:iceFaceAvoidedDamage", { pokemonName: pokemon.name, abilityName: abilityName });
return i18next.t("abilityTriggers:iceFaceAvoidedDamage", { pokemonName: getPokemonNameWithAffix(pokemon), abilityName: abilityName });
}
}

Expand Down
8 changes: 4 additions & 4 deletions src/data/arena-tag.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Arena } from "../field/arena";
import { Type } from "./type";
import * as Utils from "../utils";
import { MoveCategory, allMoves, MoveTarget } from "./move";
import { getPokemonMessage } from "../messages";
import { getPokemonMessage, getPokemonNameWithAffix } from "../messages";
import Pokemon, { HitResult, PokemonMove } from "../field/pokemon";
import { MoveEffectPhase, PokemonHealPhase, ShowAbilityPhase, StatChangePhase } from "../phases";
import { StatusEffect } from "./status-effect";
Expand Down Expand Up @@ -635,7 +635,7 @@ class StealthRockTag extends ArenaTrapTag {

if (damageHpRatio) {
const damage = Math.ceil(pokemon.getMaxHp() * damageHpRatio);
pokemon.scene.queueMessage(`Pointed stones dug into\n${pokemon.name}!`);
pokemon.scene.queueMessage(`Pointed stones dug into\n${getPokemonNameWithAffix(pokemon)}!`);
pokemon.damageAndUpdate(damage, HitResult.OTHER);
if (pokemon.turnData) {
pokemon.turnData.damageTaken += damage;
Expand Down Expand Up @@ -677,7 +677,7 @@ class StickyWebTag extends ArenaTrapTag {
const cancelled = new Utils.BooleanHolder(false);
applyAbAttrs(ProtectStatAbAttr, pokemon, cancelled);
if (!cancelled.value) {
pokemon.scene.queueMessage(`The opposing ${pokemon.name} was caught in a sticky web!`);
pokemon.scene.queueMessage(`The opposing ${getPokemonNameWithAffix(pokemon)} was caught in a sticky web!`);
const statLevels = new Utils.NumberHolder(-1);
pokemon.scene.unshiftPhase(new StatChangePhase(pokemon.scene, pokemon.getBattlerIndex(), false, [BattleStat.SPD], statLevels.value));
}
Expand Down Expand Up @@ -759,7 +759,7 @@ class TailwindTag extends ArenaTag {
// Apply the CHARGED tag to party members with the WIND_POWER ability
if (pokemon.hasAbility(Abilities.WIND_POWER) && !pokemon.getTag(BattlerTagType.CHARGED)) {
pokemon.addTag(BattlerTagType.CHARGED);
pokemon.scene.queueMessage(i18next.t("abilityTriggers:windPowerCharged", { pokemonName: pokemon.name, moveName: this.getMoveName() }));
pokemon.scene.queueMessage(i18next.t("abilityTriggers:windPowerCharged", { pokemonName: getPokemonNameWithAffix(pokemon), moveName: this.getMoveName() }));
}
// Raise attack by one stage if party member has WIND_RIDER ability
if (pokemon.hasAbility(Abilities.WIND_RIDER)) {
Expand Down
14 changes: 7 additions & 7 deletions src/data/battler-tags.ts
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ export class InfatuatedTag extends BattlerTag {
pokemon.scene.queueMessage(
i18next.t("battle:battlerTagsInfatuatedOnAdd", {
pokemonNameWithAffix: getPokemonNameWithAffix(pokemon),
sourcePokemonName: pokemon.scene.getPokemonById(this.sourceId).name
sourcePokemonName: getPokemonNameWithAffix(pokemon.scene.getPokemonById(this.sourceId))
})
);
}
Expand All @@ -353,7 +353,7 @@ export class InfatuatedTag extends BattlerTag {
pokemon.scene.queueMessage(
i18next.t("battle:battlerTagsInfatuatedLapse", {
pokemonNameWithAffix: getPokemonNameWithAffix(pokemon),
sourcePokemonName: pokemon.scene.getPokemonById(this.sourceId).name
sourcePokemonName: getPokemonNameWithAffix(pokemon.scene.getPokemonById(this.sourceId))
})
);
pokemon.scene.unshiftPhase(new CommonAnimPhase(pokemon.scene, pokemon.getBattlerIndex(), undefined, CommonAnim.ATTRACT));
Expand Down Expand Up @@ -581,7 +581,7 @@ export class HelpingHandTag extends BattlerTag {
pokemon.scene.queueMessage(
i18next.t("battle:battlerTagsHelpingHandOnAdd", {
pokemonNameWithAffix: getPokemonNameWithAffix(pokemon.scene.getPokemonById(this.sourceId)),
pokemonName: pokemon.name
pokemonName: getPokemonNameWithAffix(pokemon)
})
);
}
Expand Down Expand Up @@ -682,7 +682,7 @@ export class AquaRingTag extends BattlerTag {
Math.floor(pokemon.getMaxHp() / 16),
i18next.t("battle:battlerTagsAquaRingLapse", {
moveName: this.getMoveName(),
pokemonName: pokemon.name
pokemonName: getPokemonNameWithAffix(pokemon)
}),
true));
}
Expand Down Expand Up @@ -801,7 +801,7 @@ export class BindTag extends DamagingTrapTag {
getTrapMessage(pokemon: Pokemon): string {
return i18next.t("battle:battlerTagsBindOnTrap", {
pokemonNameWithAffix: getPokemonNameWithAffix(pokemon),
sourcePokemonName: pokemon.scene.getPokemonById(this.sourceId).name,
sourcePokemonName: getPokemonNameWithAffix(pokemon.scene.getPokemonById(this.sourceId)),
moveName: this.getMoveName()
});
}
Expand All @@ -815,7 +815,7 @@ export class WrapTag extends DamagingTrapTag {
getTrapMessage(pokemon: Pokemon): string {
return i18next.t("battle:battlerTagsWrapOnTrap", {
pokemonNameWithAffix: getPokemonNameWithAffix(pokemon),
sourcePokemonName: pokemon.scene.getPokemonById(this.sourceId).name
sourcePokemonName: getPokemonNameWithAffix(pokemon.scene.getPokemonById(this.sourceId))
});
}
}
Expand Down Expand Up @@ -850,7 +850,7 @@ export class ClampTag extends DamagingTrapTag {
getTrapMessage(pokemon: Pokemon): string {
return i18next.t("battle:battlerTagsClampOnTrap", {
sourcePokemonNameWithAffix: getPokemonNameWithAffix(pokemon.scene.getPokemonById(this.sourceId)),
pokemonName: pokemon.name,
pokemonName: getPokemonNameWithAffix(pokemon),
});
}
}
Expand Down
16 changes: 8 additions & 8 deletions src/data/move.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1576,11 +1576,11 @@ export class HitHealAttr extends MoveEffectAttr {
if (this.healStat) {
// Strength Sap formula
healAmount = target.getBattleStat(this.healStat);
message = i18next.t("battle:drainMessage", {pokemonName: target.name});
message = i18next.t("battle:drainMessage", {pokemonName: getPokemonNameWithAffix(target)});
} else {
// Default healing formula used by draining moves like Absorb, Draining Kiss, Bitter Blade, etc.
healAmount = Math.max(Math.floor(user.turnData.currDamageDealt * this.healRatio), 1);
message = i18next.t("battle:regainHealth", {pokemonName: user.name});
message = i18next.t("battle:regainHealth", {pokemonName: getPokemonNameWithAffix(user)});
}
if (reverseDrain) {
user.turnData.damageTaken += healAmount;
Expand Down Expand Up @@ -2378,7 +2378,7 @@ export class DelayedAttackAttr extends OverrideMoveEffectAttr {
if (args.length < 2 || !args[1]) {
new MoveChargeAnim(this.chargeAnim, move.id, user).play(user.scene, () => {
(args[0] as Utils.BooleanHolder).value = true;
user.scene.queueMessage(getPokemonMessage(user, ` ${this.chargeText.replace("{TARGET}", target.name)}`));
user.scene.queueMessage(getPokemonMessage(user, ` ${this.chargeText.replace("{TARGET}", getPokemonNameWithAffix(target))}`));
user.pushMoveHistory({ move: move.id, targets: [ target.getBattlerIndex() ], result: MoveResult.OTHER });
user.scene.arena.addTag(this.tagType, 3, move.id, user.id, ArenaTagSide.BOTH, false, target.getBattlerIndex());

Expand Down Expand Up @@ -4090,7 +4090,7 @@ export class CurseAttr extends MoveEffectAttr {
user.scene.queueMessage(
i18next.t("battle:battlerTagsCursedOnAdd", {
pokemonNameWithAffix: getPokemonNameWithAffix(user),
pokemonName: target.name
pokemonName: getPokemonNameWithAffix(target)
})
);

Expand Down Expand Up @@ -4486,7 +4486,7 @@ export class SwapArenaTagsAttr extends MoveEffectAttr {
}


user.scene.queueMessage( `${user.name} swapped the battle effects affecting each side of the field!`);
user.scene.queueMessage( `${getPokemonNameWithAffix(user)} swapped the battle effects affecting each side of the field!`);
return true;
}
}
Expand Down Expand Up @@ -4527,7 +4527,7 @@ export class RevivalBlessingAttr extends MoveEffectAttr {
const slotIndex = user.scene.getEnemyParty().findIndex(p => pokemon.id === p.id);
pokemon.resetStatus();
pokemon.heal(Math.min(Math.max(Math.ceil(Math.floor(0.5 * pokemon.getMaxHp())), 1), pokemon.getMaxHp()));
user.scene.queueMessage(`${pokemon.name} was revived!`,0,true);
user.scene.queueMessage(`${getPokemonNameWithAffix(pokemon)} was revived!`,0,true);

if (user.scene.currentBattle.double && user.scene.getEnemyParty().length > 1) {
const allyPokemon = user.getAlly();
Expand Down Expand Up @@ -4716,7 +4716,7 @@ export class CopyTypeAttr extends MoveEffectAttr {
user.summonData.types = target.getTypes(true);
user.updateInfo();

user.scene.queueMessage(getPokemonMessage(user, `'s type\nchanged to match ${target.name}'s!`));
user.scene.queueMessage(getPokemonMessage(user, `'s type\nchanged to match ${getPokemonNameWithAffix(target)}'s!`));

return true;
}
Expand Down Expand Up @@ -5098,7 +5098,7 @@ export class ReducePpMoveAttr extends MoveEffectAttr {
const lastPpUsed = movesetMove.ppUsed;
movesetMove.ppUsed = Math.min(movesetMove.ppUsed + this.reduction, movesetMove.getMovePp());

const message = i18next.t("battle:ppReduced", {targetName: target.name, moveName: movesetMove.getName(), reduction: movesetMove.ppUsed - lastPpUsed});
const message = i18next.t("battle:ppReduced", {targetName: getPokemonNameWithAffix(target), moveName: movesetMove.getName(), reduction: movesetMove.ppUsed - lastPpUsed});

user.scene.queueMessage(message);

Expand Down
3 changes: 2 additions & 1 deletion src/data/pokemon-forms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { Abilities } from "#enums/abilities";
import { Moves } from "#enums/moves";
import { Species } from "#enums/species";
import { TimeOfDay } from "#enums/time-of-day";
import { getPokemonNameWithAffix } from "#app/messages.js";

export enum FormChangeItem {
NONE,
Expand Down Expand Up @@ -369,7 +370,7 @@ export function getSpeciesFormChangeMessage(pokemon: Pokemon, formChange: Specie
return `${prefix}${preName} Eternamaxed\ninto ${pokemon.name}!`;
}
if (isRevert) {
return `${prefix}${pokemon.name} reverted\nto its original form!`;
return `${prefix}${getPokemonNameWithAffix(pokemon)} reverted\nto its original form!`;
}
return `${prefix}${preName} changed form!`;
}
Expand Down
3 changes: 2 additions & 1 deletion src/egg-hatch-phase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { achvs } from "./system/achv";
import PokemonInfoContainer from "./ui/pokemon-info-container";
import EggCounterContainer from "./ui/egg-counter-container";
import { EggCountChangedEvent } from "./events/egg";
import { getPokemonNameWithAffix } from "./messages";

/**
* Class that represents egg hatching
Expand Down Expand Up @@ -342,7 +343,7 @@ export class EggHatchPhase extends Phase {

this.scene.playSoundWithoutBgm("evolution_fanfare");

this.scene.ui.showText(i18next.t("egg:hatchFromTheEgg", { pokemonName: this.pokemon.name }), null, () => {
this.scene.ui.showText(i18next.t("egg:hatchFromTheEgg", { pokemonName: getPokemonNameWithAffix(this.pokemon) }), null, () => {
this.scene.gameData.updateSpeciesDexIvs(this.pokemon.species.speciesId, this.pokemon.ivs);
this.scene.gameData.setPokemonCaught(this.pokemon, true, true).then(() => {
this.scene.gameData.setEggMoveUnlocked(this.pokemon.species, this.eggMoveIndex).then(() => {
Expand Down
3 changes: 2 additions & 1 deletion src/evolution-phase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { cos, sin } from "./field/anims";
import { PlayerPokemon } from "./field/pokemon";
import { getTypeRgb } from "./data/type";
import i18next from "i18next";
import { getPokemonNameWithAffix } from "./messages";

export class EvolutionPhase extends Phase {
protected pokemon: PlayerPokemon;
Expand Down Expand Up @@ -116,7 +117,7 @@ export class EvolutionPhase extends Phase {

doEvolution(): void {
const evolutionHandler = this.scene.ui.getHandler() as EvolutionSceneHandler;
const preName = this.pokemon.name;
const preName = getPokemonNameWithAffix(this.pokemon);

this.scene.ui.showText(i18next.t("menu:evolving", { pokemonName: preName }), null, () => {
this.pokemon.cry();
Expand Down
20 changes: 18 additions & 2 deletions src/field/pokemon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ import { BerryType } from "#enums/berry-type";
import { Biome } from "#enums/biome";
import { Moves } from "#enums/moves";
import { Species } from "#enums/species";
import { getPokemonNameWithAffix } from "#app/messages.js";

export enum FieldPosition {
CENTER,
Expand All @@ -60,6 +61,7 @@ export enum FieldPosition {
export default abstract class Pokemon extends Phaser.GameObjects.Container {
public id: integer;
public name: string;
public nickname: string;
public species: PokemonSpecies;
public formIndex: integer;
public abilityIndex: integer;
Expand Down Expand Up @@ -153,6 +155,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
this.variant = 0;
}
this.nature = dataSource.nature || 0 as Nature;
this.nickname = dataSource.nickname;
this.natureOverride = dataSource.natureOverride !== undefined ? dataSource.natureOverride : -1;
this.moveset = dataSource.moveset;
this.status = dataSource.status;
Expand Down Expand Up @@ -226,6 +229,19 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
this.calculateStats();
}


getNameToRender() {
try {
if (this.nickname) {
return decodeURIComponent(escape(atob(this.nickname)));
}
return this.name;
} catch (err) {
console.error(`Failed to decode nickname for ${this.name}`, err);
return this.name;
}
}

init(): void {
this.fieldPosition = FieldPosition.CENTER;

Expand Down Expand Up @@ -1999,7 +2015,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
this.scene.queueMessage(i18next.t("battle:hitResultNotVeryEffective"));
break;
case HitResult.NO_EFFECT:
this.scene.queueMessage(i18next.t("battle:hitResultNoEffect", { pokemonName: this.name }));
this.scene.queueMessage(i18next.t("battle:hitResultNoEffect", { pokemonName: getPokemonNameWithAffix(this) }));
break;
case HitResult.IMMUNE:
this.scene.queueMessage(`${this.name} is unaffected!`);
Expand Down Expand Up @@ -2032,7 +2048,7 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
defendingSidePlayField.forEach((p) => applyPreDefendAbAttrs(FieldPriorityMoveImmunityAbAttr, p, source, move, cancelled, typeMultiplier));
}
if (!typeMultiplier.value) {
this.scene.queueMessage(i18next.t("battle:hitResultNoEffect", { pokemonName: this.name }));
this.scene.queueMessage(i18next.t("battle:hitResultNoEffect", { pokemonName: getPokemonNameWithAffix(this) }));
}
result = cancelled.value || !typeMultiplier.value ? HitResult.NO_EFFECT : HitResult.STATUS;
break;
Expand Down
5 changes: 3 additions & 2 deletions src/form-change-phase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import PartyUiHandler from "./ui/party-ui-handler";
import { BattleSpec } from "#enums/battle-spec";
import { BattlePhase, MovePhase, PokemonHealPhase } from "./phases";
import { getTypeRgb } from "./data/type";
import { getPokemonNameWithAffix } from "./messages";

export class FormChangePhase extends EvolutionPhase {
private formChange: SpeciesFormChange;
Expand All @@ -34,7 +35,7 @@ export class FormChangePhase extends EvolutionPhase {
}

doEvolution(): void {
const preName = this.pokemon.name;
const preName = getPokemonNameWithAffix(this.pokemon);

this.pokemon.getPossibleForm(this.formChange).then(transformedPokemon => {

Expand Down Expand Up @@ -191,7 +192,7 @@ export class QuietFormChangePhase extends BattlePhase {
return this.end();
}

const preName = this.pokemon.name;
const preName = getPokemonNameWithAffix(this.pokemon);

if (!this.pokemon.isOnField()) {
this.pokemon.changeForm(this.formChange).then(() => {
Expand Down
4 changes: 4 additions & 0 deletions src/locales/de/menu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,9 @@ export const menu: SimpleTranslationEntries = {
"no":"Nein",
"disclaimer": "HAFTUNGSAUSSCHLUSS",
"disclaimerDescription": "Dieses Spiel ist ein unfertiges Produkt. Es kann spielbeinträchtigende Fehler (bis hin zum Verlust des Speicherstandes)\n aufweisen, sich ohne Vorankündigung ändern und es gibt keine Garantie dass es weiterentwickelt oder fertiggestellt wird.",
"choosePokemon": "Wähle ein Pokémon.",
"renamePokemon": "Pokémon umbennenen",
"rename": "Umbenennen",
"nickname": "Spitzname",
"errorServerDown": "Ups! Es gab einen Fehler beim Versuch\nden Server zu kontaktieren\nLasse dieses Fenster offen\nDu wirst automatisch neu verbunden.",
} as const;
1 change: 1 addition & 0 deletions src/locales/de/party-ui-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const partyUiHandler: SimpleTranslationEntries = {
"PASS_BATON": "Stafette nutzen",
"UNPAUSE_EVOLUTION": "Entwicklung fortsetzen",
"REVIVE": "Wiederbeleben",
"RENAME": "Umbenennen",

"choosePokemon": "Wähle ein Pokémon.",
"doWhatWithThisPokemon": "Was soll mit diesem Pokémon geschehen?",
Expand Down
4 changes: 4 additions & 0 deletions src/locales/en/menu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,9 @@ export const menu: SimpleTranslationEntries = {
"no":"No",
"disclaimer": "DISCLAIMER",
"disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed.",
"choosePokemon": "Choose a Pokémon.",
"renamePokemon": "Rename Pokémon",
"rename": "Rename",
"nickname": "Nickname",
"errorServerDown": "Oops! There was an issue contacting the server.\n\nYou may leave this window open,\nthe game will automatically reconnect.",
} as const;
1 change: 1 addition & 0 deletions src/locales/en/party-ui-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const partyUiHandler: SimpleTranslationEntries = {
"PASS_BATON": "Pass Baton",
"UNPAUSE_EVOLUTION": "Unpause Evolution",
"REVIVE": "Revive",
"RENAME": "Rename",

"choosePokemon": "Choose a Pokémon.",
"doWhatWithThisPokemon": "Do what with this Pokémon?",
Expand Down
4 changes: 4 additions & 0 deletions src/locales/es/menu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,9 @@ export const menu: SimpleTranslationEntries = {
"no":"No",
"disclaimer": "AVISO",
"disclaimerDescription": "Este juego es un producto inacabado; puede tener problemas de jugabilidad (incluyendo la posible pérdida\n de datos de guardado),cambiar sin avisar, y puede o no puede ser actualizado hasta ser completado.",
"choosePokemon": "Choose a Pokémon.",
"renamePokemon": "Rename Pokémon",
"rename": "Rename",
"nickname": "Nickname",
"errorServerDown": "¡Ups! Ha habido un problema al contactar con el servidor.\n\nPuedes mantener esta ventana abierta,\nel juego se reconectará automáticamente.",
} as const;
1 change: 1 addition & 0 deletions src/locales/es/party-ui-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ export const partyUiHandler: SimpleTranslationEntries = {
"PASS_BATON": "Relevo",
"UNPAUSE_EVOLUTION": "Reanudar Evolución",
"REVIVE": "Revivir",
"RENAME": "Rename",

"choosePokemon": "Elige a un Pokémon.",
"doWhatWithThisPokemon": "¿Que quieres hacer con este Pokémon?",
Expand Down
Loading
Loading