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 2f6b988f32e..6750051c3c4 100644 --- a/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts +++ b/src/data/mystery-encounters/encounters/bug-type-superfan-encounter.ts @@ -514,7 +514,7 @@ export const BugTypeSuperfanEncounter: MysteryEncounter = MysteryEncounterBuilde function getTrainerConfigForWave(waveIndex: number) { // Bug type superfan trainer config const config = trainerConfigs[TrainerType.BUG_TYPE_SUPERFAN].clone(); - config.name = i18next.t("trainerNames:bug_type_superfan"); + config.name = i18next.t("trainerNames:bugTypeSuperfan"); let pool3Copy = POOL_3_POKEMON.slice(0); pool3Copy = randSeedShuffle(pool3Copy); 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 6d0ff11f07a..5d97dd1fd67 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 @@ -33,7 +33,7 @@ import i18next from "i18next"; /** the i18n namespace for the encounter */ const namespace = "mysteryEncounters/theExpertPokemonBreeder"; -const trainerNameKey = "trainerNames:expert_pokemon_breeder"; +const trainerNameKey = "trainerNames:expertPokemonBreeder"; const FIRST_STAGE_EVOLUTION_WAVE = 45; const SECOND_STAGE_EVOLUTION_WAVE = 60; diff --git a/src/data/trainers/trainer-config.ts b/src/data/trainers/trainer-config.ts index 123996aa403..f0fead6641d 100644 --- a/src/data/trainers/trainer-config.ts +++ b/src/data/trainers/trainer-config.ts @@ -43,7 +43,7 @@ import type { } from "#types/trainer-funcs"; import { coerceArray, isNullOrUndefined, randSeedInt, randSeedIntRange, randSeedItem } from "#utils/common"; import { getPokemonSpecies } from "#utils/pokemon-utils"; -import { toCamelCase, toSnakeCase, toTitleCase } from "#utils/strings"; +import { toCamelCase, toTitleCase } from "#utils/strings"; import i18next from "i18next"; /** Minimum BST for Pokemon generated onto the Elite Four's teams */ @@ -288,7 +288,7 @@ export class TrainerConfig { initI18n(); } // Set the localized name for the female rival. - this.nameFemale = i18next.t("trainerNames:rival_female"); + this.nameFemale = i18next.t("trainerNames:rivalFemale"); } else { // Otherwise, assign the provided female name. this.nameFemale = nameFemale!; // TODO: is this bang correct? @@ -552,7 +552,7 @@ export class TrainerConfig { this.setPartyMemberFunc(-(s + 1), getRandomPartyMemberFunc(coerceArray(speciesPool))); }); - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + const nameForCall = toCamelCase(this.name); this.name = i18next.t(`trainerNames:${nameForCall}`); this.setHasVoucher(false); this.setTitle(title); @@ -577,7 +577,7 @@ export class TrainerConfig { this.setPartyTemplates(trainerPartyTemplates.ELITE_FOUR); - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + const nameForCall = toCamelCase(this.name); this.name = i18next.t(`trainerNames:${nameForCall}`); this.setMoneyMultiplier(2); this.setBoss(); @@ -618,7 +618,7 @@ export class TrainerConfig { this.setSpeciesFilter(p => p.isOfType(specialtyType)); this.setSpecialtyType(specialtyType); } - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + const nameForCall = toCamelCase(this.name); this.name = i18next.t(`trainerNames:${nameForCall}`); this.setTitle(title); this.setMoneyMultiplier(2.5); @@ -666,7 +666,7 @@ export class TrainerConfig { this.setSpecialtyType(specialtyType); // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + const nameForCall = toCamelCase(this.name); this.name = i18next.t(`trainerNames:${nameForCall}`); // Set the title to "gym_leader". (this is the key in the i18n file) @@ -727,7 +727,7 @@ export class TrainerConfig { } // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. - const nameForCall = toSnakeCase(this.name); + const nameForCall = toCamelCase(this.name); this.name = i18next.t(`trainerNames:${nameForCall}`); // Set the title to "elite_four". (this is the key in the i18n file) @@ -764,7 +764,7 @@ export class TrainerConfig { this.setPartyTemplates(trainerPartyTemplates.CHAMPION); // Localize the trainer's name by converting it to lowercase and replacing spaces with underscores. - const nameForCall = this.name.toLowerCase().replace(/\s/g, "_"); + const nameForCall = toCamelCase(this.name); this.name = i18next.t(`trainerNames:${nameForCall}`); // Set the title to "champion". (this is the key in the i18n file) @@ -794,7 +794,7 @@ export class TrainerConfig { if (!getIsInitialized()) { initI18n(); } - this.name = i18next.t(`trainerNames:${name.toLowerCase().replace(/\s/g, "_")}`); + this.name = i18next.t(`trainerNames:${toCamelCase(name)}`); return this; } diff --git a/src/field/trainer.ts b/src/field/trainer.ts index a35cca46c46..d3825aae26b 100644 --- a/src/field/trainer.ts +++ b/src/field/trainer.ts @@ -23,7 +23,7 @@ import { } from "#trainers/trainer-party-template"; import { randSeedInt, randSeedItem, randSeedWeightedItem } from "#utils/common"; import { getPokemonSpecies } from "#utils/pokemon-utils"; -import { toCamelCase, toSnakeCase } from "#utils/strings"; +import { toCamelCase } from "#utils/strings"; import i18next from "i18next"; export class Trainer extends Phaser.GameObjects.Container { @@ -208,7 +208,7 @@ export class Trainer extends Phaser.GameObjects.Container { if (this.config.titleDouble && this.variant === TrainerVariant.DOUBLE && !this.config.doubleOnly) { title = this.config.titleDouble; - name = i18next.t(`trainerNames:${toSnakeCase(this.config.nameDouble)}`); + name = i18next.t(`trainerNames:${toCamelCase(this.config.nameDouble)}`); } console.log(title ? `${title} ${name}` : name); diff --git a/src/ui/game-stats-ui-handler.ts b/src/ui/game-stats-ui-handler.ts index d2a9779f515..4ddb80fcc00 100644 --- a/src/ui/game-stats-ui-handler.ts +++ b/src/ui/game-stats-ui-handler.ts @@ -308,8 +308,8 @@ export class GameStatsUiHandler extends UiHandler { private getUsername(): string { const usernameReplacement = globalScene.gameData.gender === PlayerGender.FEMALE - ? i18next.t("trainerNames:player_f") - : i18next.t("trainerNames:player_m"); + ? i18next.t("trainerNames:playerF") + : i18next.t("trainerNames:playerM"); const displayName = !globalScene.hideUsername ? (loggedInUser?.username ?? i18next.t("common:guest")) diff --git a/src/ui/run-history-ui-handler.ts b/src/ui/run-history-ui-handler.ts index 457c48654a3..6f4d9024832 100644 --- a/src/ui/run-history-ui-handler.ts +++ b/src/ui/run-history-ui-handler.ts @@ -337,7 +337,7 @@ class RunEntryContainer extends Phaser.GameObjects.Container { // Because of the interesting mechanics behind rival names, the rival name and title have to be retrieved differently const RIVAL_TRAINER_ID_THRESHOLD = 375; if (data.trainer.trainerType >= RIVAL_TRAINER_ID_THRESHOLD) { - const rivalName = tObj.variant === TrainerVariant.FEMALE ? "trainerNames:rival_female" : "trainerNames:rival"; + const rivalName = tObj.variant === TrainerVariant.FEMALE ? "trainerNames:rivalFemale" : "trainerNames:rival"; const gameOutcomeLabel = addTextObject( 8, 5, diff --git a/src/ui/run-info-ui-handler.ts b/src/ui/run-info-ui-handler.ts index 288f74a1ed8..5fc0f37c72d 100644 --- a/src/ui/run-info-ui-handler.ts +++ b/src/ui/run-info-ui-handler.ts @@ -337,7 +337,7 @@ export class RunInfoUiHandler extends UiHandler { if (this.runInfo.trainer.trainerType >= RIVAL_TRAINER_ID_THRESHOLD) { trainerName = trainerObj.variant === TrainerVariant.FEMALE - ? i18next.t("trainerNames:rival_female") + ? i18next.t("trainerNames:rivalFemale") : i18next.t("trainerNames:rival"); } else { trainerName = trainerObj.getName(0, true); diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index 01d9b981563..b6447f03587 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -808,8 +808,8 @@ export class SummaryUiHandler extends UiHandler { globalScene.gameData.gender === PlayerGender.FEMALE ? TextStyle.SUMMARY_PINK : TextStyle.SUMMARY_BLUE; const usernameReplacement = globalScene.gameData.gender === PlayerGender.FEMALE - ? i18next.t("trainerNames:player_f") - : i18next.t("trainerNames:player_m"); + ? i18next.t("trainerNames:playerF") + : i18next.t("trainerNames:playerM"); // TODO: should add field for original trainer name to Pokemon object, to support gift/traded Pokemon from MEs const trainerText = addBBCodeTextObject( diff --git a/src/ui/title-ui-handler.ts b/src/ui/title-ui-handler.ts index 36e37500a64..5ae195231e5 100644 --- a/src/ui/title-ui-handler.ts +++ b/src/ui/title-ui-handler.ts @@ -122,8 +122,8 @@ export class TitleUiHandler extends OptionSelectUiHandler { genderSplash(): void { if (this.splashMessage === "splashMessages:aprilFools.helloKyleAmber") { globalScene.gameData.gender === PlayerGender.MALE - ? this.splashMessageText.setText(i18next.t(this.splashMessage, { name: i18next.t("trainerNames:player_m") })) - : this.splashMessageText.setText(i18next.t(this.splashMessage, { name: i18next.t("trainerNames:player_f") })); + ? this.splashMessageText.setText(i18next.t(this.splashMessage, { name: i18next.t("trainerNames:playerM") })) + : this.splashMessageText.setText(i18next.t(this.splashMessage, { name: i18next.t("trainerNames:playerF") })); } } diff --git a/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts b/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts index 31584048c78..f9cc13c856b 100644 --- a/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts +++ b/test/mystery-encounter/encounters/the-expert-breeder-encounter.test.ts @@ -70,7 +70,7 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { text: `${namespace}:intro`, }, { - speaker: "trainerNames:expert_pokemon_breeder", + speaker: "trainerNames:expertPokemonBreeder", text: `${namespace}:introDialogue`, }, ]); @@ -123,7 +123,7 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { - speaker: "trainerNames:expert_pokemon_breeder", + speaker: "trainerNames:expertPokemonBreeder", text: `${namespace}:option.selected`, }, ], @@ -208,7 +208,7 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { - speaker: "trainerNames:expert_pokemon_breeder", + speaker: "trainerNames:expertPokemonBreeder", text: `${namespace}:option.selected`, }, ], @@ -290,7 +290,7 @@ describe("The Expert Pokémon Breeder - Mystery Encounter", () => { buttonTooltip: expect.any(String), // Varies based on pokemon selected: [ { - speaker: "trainerNames:expert_pokemon_breeder", + speaker: "trainerNames:expertPokemonBreeder", text: `${namespace}:option.selected`, }, ],