From f2b5a1b6f4aa4603188af6ca5a3024164abc845c Mon Sep 17 00:00:00 2001 From: Tempoanon <163687446+TempsRay@users.noreply.github.com> Date: Thu, 16 May 2024 23:11:53 -0400 Subject: [PATCH 01/32] Fix some Pokemon classifications (#857) --- src/data/move.ts | 2 +- src/data/pokemon-species.ts | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 81e6c8f8566..7f0e03266e8 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -1921,7 +1921,7 @@ export class CopyStatsAttr extends MoveEffectAttr { target.updateInfo(); user.updateInfo(); - target.scene.queueMessage(getPokemonMessage(user, 'copied\n') + getPokemonMessage(target, `'s stat changes!`)); + target.scene.queueMessage(getPokemonMessage(user, ' copied\n') + getPokemonMessage(target, `'s stat changes!`)); return true; } diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index c8f99936941..218423d3232 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -1504,7 +1504,7 @@ export function initSpecies() { new PokemonForm("Origin Forme", "origin", Type.WATER, Type.DRAGON, 6.3, 659, Abilities.PRESSURE, Abilities.NONE, Abilities.TELEPATHY, 680, 90, 100, 100, 150, 120, 120, 3, 0, 340), ), new PokemonSpecies(Species.HEATRAN, 4, true, false, false, "Lava Dome Pokémon", Type.FIRE, Type.STEEL, 1.7, 430, Abilities.FLASH_FIRE, Abilities.NONE, Abilities.FLAME_BODY, 600, 91, 90, 106, 130, 106, 77, 3, 100, 300, GrowthRate.SLOW, 50, false), - new PokemonSpecies(Species.REGIGIGAS, 4, false, true, false, "Colossal Pokémon", Type.NORMAL, null, 3.7, 420, Abilities.SLOW_START, Abilities.NONE, Abilities.NORMALIZE, 670, 110, 160, 110, 80, 110, 100, 3, 0, 335, GrowthRate.SLOW, null, false), + new PokemonSpecies(Species.REGIGIGAS, 4, true, false, false, "Colossal Pokémon", Type.NORMAL, null, 3.7, 420, Abilities.SLOW_START, Abilities.NONE, Abilities.NORMALIZE, 670, 110, 160, 110, 80, 110, 100, 3, 0, 335, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.GIRATINA, 4, false, true, false, "Renegade Pokémon", Type.GHOST, Type.DRAGON, 4.5, 750, Abilities.PRESSURE, Abilities.NONE, Abilities.TELEPATHY, 680, 150, 100, 120, 100, 120, 90, 3, 0, 340, GrowthRate.SLOW, null, false, true, new PokemonForm("Altered Forme", "altered", Type.GHOST, Type.DRAGON, 4.5, 750, Abilities.PRESSURE, Abilities.NONE, Abilities.TELEPATHY, 680, 150, 100, 120, 100, 120, 90, 3, 0, 340), new PokemonForm("Origin Forme", "origin", Type.GHOST, Type.DRAGON, 6.9, 650, Abilities.LEVITATE, Abilities.NONE, Abilities.NONE, 680, 150, 120, 100, 120, 100, 90, 3, 0, 340), @@ -1931,7 +1931,7 @@ export function initSpecies() { new PokemonForm("Active Mode", "active", Type.FAIRY, null, 3, 215, Abilities.FAIRY_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 340) ), new PokemonSpecies(Species.YVELTAL, 6, false, true, false, "Destruction Pokémon", Type.DARK, Type.FLYING, 5.8, 203, Abilities.DARK_AURA, Abilities.NONE, Abilities.NONE, 680, 126, 131, 95, 131, 98, 99, 45, 0, 340, GrowthRate.SLOW, null, false), - new PokemonSpecies(Species.ZYGARDE, 6, true, false, false, "Order Pokémon", Type.DRAGON, Type.GROUND, 5, 305, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, GrowthRate.SLOW, null, false, false, + new PokemonSpecies(Species.ZYGARDE, 6, false, true, false, "Order Pokémon", Type.DRAGON, Type.GROUND, 5, 305, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, GrowthRate.SLOW, null, false, false, new PokemonForm("50% Forme", "50", Type.DRAGON, Type.GROUND, 5, 305, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, false, ""), new PokemonForm("10% Forme", "10", Type.DRAGON, Type.GROUND, 1.2, 33.5, Abilities.AURA_BREAK, Abilities.NONE, Abilities.NONE, 486, 54, 100, 71, 61, 85, 115, 3, 0, 300), new PokemonForm("50% Forme Power Construct", "50-pc", Type.DRAGON, Type.GROUND, 5, 305, Abilities.POWER_CONSTRUCT, Abilities.NONE, Abilities.NONE, 600, 108, 100, 121, 81, 95, 95, 3, 0, 300, false, ""), @@ -2285,7 +2285,7 @@ export function initSpecies() { new PokemonSpecies(Species.REGIDRAGO, 8, true, false, false, "Dragon Orb Pokémon", Type.DRAGON, null, 2.1, 200, Abilities.DRAGONS_MAW, Abilities.NONE, Abilities.NONE, 580, 200, 100, 50, 100, 50, 80, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.GLASTRIER, 8, true, false, false, "Wild Horse Pokémon", Type.ICE, null, 2.2, 800, Abilities.CHILLING_NEIGH, Abilities.NONE, Abilities.NONE, 580, 100, 145, 130, 65, 110, 30, 3, 35, 290, GrowthRate.SLOW, null, false), new PokemonSpecies(Species.SPECTRIER, 8, true, false, false, "Swift Horse Pokémon", Type.GHOST, null, 2, 44.5, Abilities.GRIM_NEIGH, Abilities.NONE, Abilities.NONE, 580, 100, 65, 60, 145, 80, 130, 3, 35, 290, GrowthRate.SLOW, null, false), - new PokemonSpecies(Species.CALYREX, 8, true, false, false, "King Pokémon", Type.PSYCHIC, Type.GRASS, 1.1, 7.7, Abilities.UNNERVE, Abilities.NONE, Abilities.NONE, 500, 100, 80, 80, 80, 80, 80, 3, 100, 250, GrowthRate.SLOW, null, false, true, + new PokemonSpecies(Species.CALYREX, 8, false, true, false, "King Pokémon", Type.PSYCHIC, Type.GRASS, 1.1, 7.7, Abilities.UNNERVE, Abilities.NONE, Abilities.NONE, 500, 100, 80, 80, 80, 80, 80, 3, 100, 250, GrowthRate.SLOW, null, false, true, new PokemonForm("Normal", "", Type.PSYCHIC, Type.GRASS, 1.1, 7.7, Abilities.UNNERVE, Abilities.NONE, Abilities.NONE, 500, 100, 80, 80, 80, 80, 80, 3, 100, 250), new PokemonForm("Ice", "ice", Type.PSYCHIC, Type.ICE, 2.4, 809.1, Abilities.AS_ONE_GLASTRIER, Abilities.NONE, Abilities.NONE, 680, 100, 165, 150, 85, 130, 50, 3, 100, 250), new PokemonForm("Shadow", "shadow", Type.PSYCHIC, Type.GHOST, 2.4, 53.6, Abilities.AS_ONE_SPECTRIER, Abilities.NONE, Abilities.NONE, 680, 100, 85, 80, 165, 100, 150, 3, 100, 250), @@ -2453,10 +2453,10 @@ export function initSpecies() { new PokemonForm("Unremarkable Form", "unremarkable", Type.GRASS, Type.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178), new PokemonForm("Masterpiece Form", "masterpiece", Type.GRASS, Type.GHOST, 0.2, 2.2, Abilities.HOSPITALITY, Abilities.NONE, Abilities.HEATPROOF, 508, 71, 60, 106, 121, 80, 70, 60, 50, 178), ), - new PokemonSpecies(Species.OKIDOGI, 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.FIGHTING, 1.8, 92.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.GUARD_DOG, 555, 88, 128, 115, 58, 86, 80, 3, 0, 276, GrowthRate.SLOW, 100, false), - new PokemonSpecies(Species.MUNKIDORI, 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.PSYCHIC, 1, 12.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.FRISK, 555, 88, 75, 66, 130, 90, 106, 3, 0, 276, GrowthRate.SLOW, 100, false), - new PokemonSpecies(Species.FEZANDIPITI, 9, false, true, false, "Retainer Pokémon", Type.POISON, Type.FAIRY, 1.4, 30.1, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.TECHNICIAN, 555, 88, 91, 82, 70, 125, 99, 3, 0, 276, GrowthRate.SLOW, 100, false), - new PokemonSpecies(Species.OGERPON, 9, false, true, false, "Mask Pokémon", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275, GrowthRate.SLOW, 0, false, false, + new PokemonSpecies(Species.OKIDOGI, 9, true, false, false, "Retainer Pokémon", Type.POISON, Type.FIGHTING, 1.8, 92.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.GUARD_DOG, 555, 88, 128, 115, 58, 86, 80, 3, 0, 276, GrowthRate.SLOW, 100, false), + new PokemonSpecies(Species.MUNKIDORI, 9, true, false, false, "Retainer Pokémon", Type.POISON, Type.PSYCHIC, 1, 12.2, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.FRISK, 555, 88, 75, 66, 130, 90, 106, 3, 0, 276, GrowthRate.SLOW, 100, false), + new PokemonSpecies(Species.FEZANDIPITI, 9, true, false, false, "Retainer Pokémon", Type.POISON, Type.FAIRY, 1.4, 30.1, Abilities.TOXIC_CHAIN, Abilities.NONE, Abilities.TECHNICIAN, 555, 88, 91, 82, 70, 125, 99, 3, 0, 276, GrowthRate.SLOW, 100, false), + new PokemonSpecies(Species.OGERPON, 9, true, false, false, "Mask Pokémon", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275, GrowthRate.SLOW, 0, false, false, new PokemonForm("Teal Mask", "teal-mask", Type.GRASS, null, 1.2, 39.8, Abilities.DEFIANT, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275), new PokemonForm("Wellspring Mask", "wellspring-mask", Type.GRASS, Type.WATER, 1.2, 39.8, Abilities.WATER_ABSORB, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275), new PokemonForm("Hearthflame Mask", "hearthflame-mask", Type.GRASS, Type.FIRE, 1.2, 39.8, Abilities.MOLD_BREAKER, Abilities.NONE, Abilities.NONE, 550, 80, 120, 84, 60, 96, 110, 5, 50, 275), From f2dff2cd25202afaa5bd2f9fb9bfb97a9f2ed7c0 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Fri, 17 May 2024 00:20:18 -0400 Subject: [PATCH 02/32] End card only shows in classic mode --- src/phases.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/phases.ts b/src/phases.ts index 90d9a54d288..91e098edf1f 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -3663,7 +3663,7 @@ export class GameOverPhase extends BattlePhase { this.end(); } - if (this.victory) { + if (this.victory && this.scene.gameMode.isClassic) { this.scene.ui.fadeIn(500).then(() => { this.scene.charSprite.showCharacter(`rival_${this.scene.gameData.gender === PlayerGender.FEMALE ? 'm' : 'f'}`, getCharVariantFromDialogue(miscDialogue.ending[this.scene.gameData.gender === PlayerGender.FEMALE ? 0 : 1])).then(() => { this.scene.ui.showDialogue(miscDialogue.ending[this.scene.gameData.gender === PlayerGender.FEMALE ? 0 : 1], this.scene.gameData.gender === PlayerGender.FEMALE ? trainerConfigs[TrainerType.RIVAL].name : trainerConfigs[TrainerType.RIVAL].nameFemale, null, () => { From 0cd305d78acf79964c193a7c6ae078fee3f92ce3 Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Fri, 17 May 2024 00:01:35 -0500 Subject: [PATCH 03/32] Fix Trainer Localization Typos (#1010) Took a look at some of the entries for trainers and adjusted accordingly. it looks like all of these trainer types were grabbed from an online source as a sort of future-proofing which is good, but resulted in some errors. Some of which have already been fixed, and some which are included here. Also prevents an issue if there is a missing image and displays a warning in the console instead of a crash. --- src/field/trainer.ts | 21 +++++++++++++++++---- src/locales/de/trainers.ts | 14 +++++++++----- src/locales/en/trainers.ts | 14 +++++++++----- src/locales/es/trainers.ts | 14 +++++++++----- src/locales/fr/trainers.ts | 14 +++++++++----- src/locales/it/trainers.ts | 14 +++++++++----- src/locales/pt_BR/trainers.ts | 14 +++++++++----- src/locales/zh_CN/trainers.ts | 14 +++++++++----- 8 files changed, 80 insertions(+), 39 deletions(-) diff --git a/src/field/trainer.ts b/src/field/trainer.ts index 9213dc0135d..faa691406b9 100644 --- a/src/field/trainer.ts +++ b/src/field/trainer.ts @@ -378,16 +378,29 @@ export default class Trainer extends Phaser.GameObjects.Container { }; const sprites = this.getSprites(); const tintSprites = this.getTintSprites(); - sprites[0].play(trainerAnimConfig); - tintSprites[0].play(trainerAnimConfig); + + // Don't try to play an animation when there isn't one + if (sprites.length > 1) { + sprites[0].play(trainerAnimConfig); + tintSprites[0].play(trainerAnimConfig); + } + else + console.warn(`No animation found for '${this.getKey()}'. Is this intentional?`); + if (this.variant === TrainerVariant.DOUBLE && !this.config.doubleOnly) { const partnerTrainerAnimConfig = { key: this.getKey(true), repeat: 0, startFrame: 0 }; - sprites[1].play(partnerTrainerAnimConfig); - tintSprites[1].play(partnerTrainerAnimConfig); + + // Don't try to play an animation when there isn't one + if (sprites.length > 1) { + sprites[1].play(partnerTrainerAnimConfig); + tintSprites[1].play(partnerTrainerAnimConfig); + } + else + console.warn(`No animation found for '${this.getKey()}'. Is this intentional?`); } } diff --git a/src/locales/de/trainers.ts b/src/locales/de/trainers.ts index 90d6cbf20b1..1820c7eb281 100644 --- a/src/locales/de/trainers.ts +++ b/src/locales/de/trainers.ts @@ -44,8 +44,8 @@ export const trainerClasses: SimpleTranslationEntries = { "depot_agent": "Bahnangestellter", "doctor": "Arzt", "doctor_female": "Ärztin", - "fishermen": "Angler", - "fishermen_female": "Angler", // Seems to be the same in german but exists in other languages like italian + "fisherman": "Angler", + "fisherman_female": "Angler", // Seems to be the same in german but exists in other languages like italian "gentleman": "Gentleman", "guitarist": "Gitarrist", "guitarist_female": "Gitarristin", @@ -61,15 +61,15 @@ export const trainerClasses: SimpleTranslationEntries = { "maid": "Zofe", "madame": "Madam", "medical_team": "Mediziner", - "musican": "Musiker", + "musician": "Musiker", "hex_maniac": "Hexe", "nurse": "Pflegerin", "nursery_aide": "Erzieherin", "officer": "Polizist", "parasol_lady": "Schirmdame", "pilot": "Pilot", - "poké_fan": "Pokéfan", - "poké_fan_family": "Pokéfan-Pärchen", + "pokefan": "Pokéfan", + "pokefan_family": "Pokéfan-Pärchen", "preschooler": "Vorschüler", "preschooler_female": "Vorschülerin", "preschoolers": "Vorschüler", @@ -80,8 +80,12 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "Pokémon-Ranger", "ranger": "Ranger", "restaurant_staff": "Restaurant Angestellte", + "rich": "Rich", + "rich_female": "Rich", "rich_boy": "Schnösel", "rich_couple": "Reiches Paar", + "rich_kid": "Rich Kid", + "rich_kid_female": "Rich Kid", "rich_kids": "Schnösel", "roughneck": "Raufbold", "scientist": "Forscher", diff --git a/src/locales/en/trainers.ts b/src/locales/en/trainers.ts index a02383a4f54..d824baeba8f 100644 --- a/src/locales/en/trainers.ts +++ b/src/locales/en/trainers.ts @@ -44,8 +44,8 @@ export const trainerClasses: SimpleTranslationEntries = { "depot_agent": "Depot Agent", "doctor": "Doctor", "doctor_female": "Doctor", - "fishermen": "Fishermen", - "fishermen_female": "Fishermen", + "fisherman": "Fisherman", + "fisherman_female": "Fisherman", "gentleman": "Gentleman", "guitarist": "Guitarist", "guitarist_female": "Guitarist", @@ -61,15 +61,15 @@ export const trainerClasses: SimpleTranslationEntries = { "maid": "Maid", "madame": "Madame", "medical_team": "Medical Team", - "musican": "Musician", + "musician": "Musician", "hex_maniac": "Hex Maniac", "nurse": "Nurse", "nursery_aide": "Nursery Aide", "officer": "Officer", "parasol_lady": "Parasol Lady", "pilot": "Pilot", - "poké_fan": "Poké Fan", - "poké_fan_family": "Poké Fan Family", + "pokefan": "Poké Fan", + "pokefan_family": "Poké Fan Family", "preschooler": "Preschooler", "preschooler_female": "Preschooler", "preschoolers": "Preschoolers", @@ -80,8 +80,12 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "Pokémon Ranger", "ranger": "Ranger", "restaurant_staff": "Restaurant Staff", + "rich": "Rich", + "rich_female": "Rich", "rich_boy": "Rich Boy", "rich_couple": "Rich Couple", + "rich_kid": "Rich Kid", + "rich_kid_female": "Rich Kid", "rich_kids": "Rich Kids", "roughneck": "Roughneck", "scientist": "Scientist", diff --git a/src/locales/es/trainers.ts b/src/locales/es/trainers.ts index a02383a4f54..443718693ca 100644 --- a/src/locales/es/trainers.ts +++ b/src/locales/es/trainers.ts @@ -44,8 +44,8 @@ export const trainerClasses: SimpleTranslationEntries = { "depot_agent": "Depot Agent", "doctor": "Doctor", "doctor_female": "Doctor", - "fishermen": "Fishermen", - "fishermen_female": "Fishermen", + "fisherman": "Fisherman", + "fisherman_female": "Fisherman", "gentleman": "Gentleman", "guitarist": "Guitarist", "guitarist_female": "Guitarist", @@ -61,15 +61,15 @@ export const trainerClasses: SimpleTranslationEntries = { "maid": "Maid", "madame": "Madame", "medical_team": "Medical Team", - "musican": "Musician", + "musician": "Musician", "hex_maniac": "Hex Maniac", "nurse": "Nurse", "nursery_aide": "Nursery Aide", "officer": "Officer", "parasol_lady": "Parasol Lady", "pilot": "Pilot", - "poké_fan": "Poké Fan", - "poké_fan_family": "Poké Fan Family", + "pokefan": "Poké Fan", + "pokefan_family": "Poké Fan Family", "preschooler": "Preschooler", "preschooler_female": "Preschooler", "preschoolers": "Preschoolers", @@ -80,8 +80,12 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "Pokémon Ranger", "ranger": "Ranger", "restaurant_staff": "Restaurant Staff", + "rich": "Rich", + "rich_female": "Rich", "rich_boy": "Rich Boy", "rich_couple": "Rich Couple", + "rich_kid": "Rich Kid", + "rich_kid_female": "Rich Kid", "rich_kids": "Rich Kids", "roughneck": "Roughneck", "scientist": "Scientist", diff --git a/src/locales/fr/trainers.ts b/src/locales/fr/trainers.ts index 146a2766f37..2d5c78bbfc5 100644 --- a/src/locales/fr/trainers.ts +++ b/src/locales/fr/trainers.ts @@ -44,8 +44,8 @@ export const trainerClasses: SimpleTranslationEntries = { "depot_agent": "Cheminot", "doctor": "Docteur", "doctor_female": "Docteure", - "fishermen": "Pêcheur", - "fishermen_female": "Pêcheuse", + "fisherman": "Pêcheur", + "fisherman_female": "Pêcheuse", "gentleman": "Gentleman", "guitarist": "Guitariste", "guitarist_female": "Guitariste", @@ -60,16 +60,16 @@ export const trainerClasses: SimpleTranslationEntries = { "linebacker": "Quaterback", "maid": "Gouvernante", "madame": "Mondaine", - "musican": "Musicien", "medical_team": "Médecins", + "musician": "Musicien", "hex_maniac": "Mystimaniac", "nurse": "Infirmière", "nursery_aide": "Institutrice", "officer": "Policier", "parasol_lady": "Sœur Parasol", "pilot": "Pilote", - "poké_fan": "Poké Fan", - "poké_fan_family": "Couple de Pokéfans", + "pokefan": "Poké Fan", + "pokefan_family": "Couple de Pokéfans", "preschooler": "Petit", "preschooler_female": "Petite", "preschoolers": "Petits", @@ -80,8 +80,12 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "Pokémon Rangers", "ranger": "Ranger", "restaurant_staff": "Serveurs", + "rich": "Rich", + "rich_female": "Rich", "rich_boy": "Richard", "rich_couple": "Couple de Bourgeois", + "rich_kid": "Rich Kid", + "rich_kid_female": "Rich Kid", "rich_kids": "Richards", "roughneck": "Loubard", "scientist": "Scientifique", diff --git a/src/locales/it/trainers.ts b/src/locales/it/trainers.ts index a02383a4f54..443718693ca 100644 --- a/src/locales/it/trainers.ts +++ b/src/locales/it/trainers.ts @@ -44,8 +44,8 @@ export const trainerClasses: SimpleTranslationEntries = { "depot_agent": "Depot Agent", "doctor": "Doctor", "doctor_female": "Doctor", - "fishermen": "Fishermen", - "fishermen_female": "Fishermen", + "fisherman": "Fisherman", + "fisherman_female": "Fisherman", "gentleman": "Gentleman", "guitarist": "Guitarist", "guitarist_female": "Guitarist", @@ -61,15 +61,15 @@ export const trainerClasses: SimpleTranslationEntries = { "maid": "Maid", "madame": "Madame", "medical_team": "Medical Team", - "musican": "Musician", + "musician": "Musician", "hex_maniac": "Hex Maniac", "nurse": "Nurse", "nursery_aide": "Nursery Aide", "officer": "Officer", "parasol_lady": "Parasol Lady", "pilot": "Pilot", - "poké_fan": "Poké Fan", - "poké_fan_family": "Poké Fan Family", + "pokefan": "Poké Fan", + "pokefan_family": "Poké Fan Family", "preschooler": "Preschooler", "preschooler_female": "Preschooler", "preschoolers": "Preschoolers", @@ -80,8 +80,12 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "Pokémon Ranger", "ranger": "Ranger", "restaurant_staff": "Restaurant Staff", + "rich": "Rich", + "rich_female": "Rich", "rich_boy": "Rich Boy", "rich_couple": "Rich Couple", + "rich_kid": "Rich Kid", + "rich_kid_female": "Rich Kid", "rich_kids": "Rich Kids", "roughneck": "Roughneck", "scientist": "Scientist", diff --git a/src/locales/pt_BR/trainers.ts b/src/locales/pt_BR/trainers.ts index 7c12814dfae..af6393bce8e 100644 --- a/src/locales/pt_BR/trainers.ts +++ b/src/locales/pt_BR/trainers.ts @@ -44,8 +44,8 @@ export const trainerClasses: SimpleTranslationEntries = { "depot_agent": "Ferroviário", "doctor": "Doutor", "doctor_female": "Doutora", - "fishermen": "Pescador", - "fishermen_female": "Pescadora", + "fisherman": "Pescador", + "fisherman_female": "Pescadora", "gentleman": "Gentleman", "guitarist": "Guitarrista", "guitarist_female": "Guitarrista", @@ -60,16 +60,16 @@ export const trainerClasses: SimpleTranslationEntries = { "linebacker": "Zagueiro", "maid": "Doméstica", "madame": "Madame", - "musican": "Músico", "medical_team": "Medical Team", + "musician": "Músico", "hex_maniac": "Ocultista", "nurse": "Enfermeira", "nursery_aide": "Professora do Berçário", "officer": "Policial", "parasol_lady": "Moça de Sombrinha", "pilot": "Piloto", - "poké_fan": "Pokefã", - "poké_fan_family": "Poké Fan Family", + "pokefan": "Pokefã", + "pokefan_family": "Poké Fan Family", "preschooler": "Menino do Prezinho", "preschooler_female": "Menina do Prezinho", "preschoolers": "Preschoolers", @@ -80,8 +80,12 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "Pokémon Ranger", "ranger": "Guarda", "restaurant_staff": "Restaurant Staff", + "rich": "Rich", + "rich_female": "Rich", "rich_boy": "Rich Boy", "rich_couple": "Rich Couple", + "rich_kid": "Rich Kid", + "rich_kid_female": "Rich Kid", "rich_kids": "Rich Kids", "roughneck": "Arruaceiro", "scientist": "Cientista", diff --git a/src/locales/zh_CN/trainers.ts b/src/locales/zh_CN/trainers.ts index 5db37c78a6b..fae8301c627 100644 --- a/src/locales/zh_CN/trainers.ts +++ b/src/locales/zh_CN/trainers.ts @@ -44,8 +44,8 @@ export const trainerClasses: SimpleTranslationEntries = { "depot_agent": "铁路员工", "doctor": "医生", "doctor_female": "医生", - "fishermen": "垂钓者", - "fishermen_female": "垂钓者", + "fisherman": "垂钓者", + "fisherman_female": "垂钓者", "gentleman": "绅士", "guitarist": "吉他手", "guitarist_female": "吉他手", @@ -61,15 +61,15 @@ export const trainerClasses: SimpleTranslationEntries = { "maid": "女仆", "madame": "女士", "medical_team": "医疗团队", - "musican": "音乐家", + "musician": "音乐家", "hex_maniac": "灵异迷", "nurse": "护士", "nursery_aide": "幼儿园老师", "officer": "警察", "parasol_lady": "阳伞姐姐", "pilot": "飞行员", - "poké_fan": "发烧友俱乐部", - "poké_fan_family": "同好夫妇", + "pokefan": "发烧友俱乐部", + "pokefan_family": "同好夫妇", "preschooler": "幼儿园小朋友", "preschooler_female": "幼儿园小朋友", "preschoolers": "幼儿园小朋友组合", @@ -80,8 +80,12 @@ export const trainerClasses: SimpleTranslationEntries = { "pokémon_rangers": "宝可梦巡护员组合", "ranger": "巡护员", "restaurant_staff": "服务生组合", + "rich": "Rich", + "rich_female": "Rich", "rich_boy": "富家少爷", "rich_couple": "富豪夫妇", + "rich_kid": "Rich Kid", + "rich_kid_female": "Rich Kid", "rich_kids": "富二代组合", "roughneck": "光头男", "scientist": "研究员", From b4f643f0faea8890c660bd060f8f690b2b5ba1e0 Mon Sep 17 00:00:00 2001 From: Jakub Hanko <60473007+JakubHanko@users.noreply.github.com> Date: Fri, 17 May 2024 07:42:43 +0200 Subject: [PATCH 04/32] Use getBattleStat instead of getStat in BattleStatRatioPowerAttr (#742) * Use getBattleStat instead of getStat in BattleStatRatioPowerAttr * Change unnecessary let into const * Refactor BattleStatRatioPowerAttr into two distinct classes * Add TSDoc for the new classes --- src/data/move.ts | 76 ++++++++++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 28 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 7f0e03266e8..99ef179ad30 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -2129,36 +2129,27 @@ export class WeightPowerAttr extends VariablePowerAttr { } } -export class BattleStatRatioPowerAttr extends VariablePowerAttr { - private stat: Stat; - private invert: boolean; - - constructor(stat: Stat, invert: boolean = false) { - super(); - - this.stat = stat; - this.invert = invert; - } - +/** + * Attribute used for Electro Ball move. + * @extends VariablePowerAttr + * @see {@linkcode apply} + **/ +export class ElectroBallPowerAttr extends VariablePowerAttr { + /** + * Move that deals more damage the faster {@linkcode BattleStat.SPD} + * the user is compared to the target. + * @param user Pokemon that used the move + * @param target The target of the move + * @param move Move with this attribute + * @param args N/A + * @returns true if the function succeeds + */ apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { const power = args[0] as Utils.NumberHolder; - const statRatio = target.getStat(this.stat) / user.getStat(this.stat); + const statRatio = target.getBattleStat(Stat.SPD) / user.getBattleStat(Stat.SPD); const statThresholds = [ 0.25, 1 / 3, 0.5, 1, -1 ]; - let statThresholdPowers = [ 150, 120, 80, 60, 40 ]; - - if (this.invert) { - // Gyro ball uses a specific formula - let userSpeed = user.getBattleStat(this.stat); - if (userSpeed < 1) { - // Gen 6+ always have 1 base power - power.value = 1; - return true; - } - let bp = Math.floor(Math.min(150, 25 * target.getBattleStat(this.stat) / userSpeed + 1)); - power.value = bp; - return true; - } + const statThresholdPowers = [ 150, 120, 80, 60, 40 ]; let w = 0; while (w < statThresholds.length - 1 && statRatio > statThresholds[w]) { @@ -2167,7 +2158,36 @@ export class BattleStatRatioPowerAttr extends VariablePowerAttr { } power.value = statThresholdPowers[w]; + return true; + } +} + +/** + * Attribute used for Gyro Ball move. + * @extends VariablePowerAttr + * @see {@linkcode apply} + **/ +export class GyroBallPowerAttr extends VariablePowerAttr { + /** + * Move that deals more damage the slower {@linkcode BattleStat.SPD} + * the user is compared to the target. + * @param user Pokemon that used the move + * @param target The target of the move + * @param move Move with this attribute + * @param args N/A + * @returns true if the function succeeds + */ + apply(user: Pokemon, target: Pokemon, move: Move, args: any[]): boolean { + const power = args[0] as Utils.NumberHolder; + const userSpeed = user.getBattleStat(Stat.SPD); + if (userSpeed < 1) { + // Gen 6+ always have 1 base power + power.value = 1; + return true; + } + + power.value = Math.floor(Math.min(150, 25 * target.getBattleStat(Stat.SPD) / userSpeed + 1)); return true; } } @@ -5388,7 +5408,7 @@ export function initMoves() { .attr(StatChangeAttr, BattleStat.SPD, -1, true) .punchingMove(), new AttackMove(Moves.GYRO_BALL, Type.STEEL, MoveCategory.PHYSICAL, -1, 100, 5, -1, 0, 4) - .attr(BattleStatRatioPowerAttr, Stat.SPD, true) + .attr(GyroBallPowerAttr) .ballBombMove(), new SelfStatusMove(Moves.HEALING_WISH, Type.PSYCHIC, -1, 10, -1, 0, 4) .attr(SacrificialFullRestoreAttr) @@ -5741,7 +5761,7 @@ export function initMoves() { .condition(unknownTypeCondition) .attr(hitsSameTypeAttr), new AttackMove(Moves.ELECTRO_BALL, Type.ELECTRIC, MoveCategory.SPECIAL, -1, 100, 10, -1, 0, 5) - .attr(BattleStatRatioPowerAttr, Stat.SPD) + .attr(ElectroBallPowerAttr) .ballBombMove(), new StatusMove(Moves.SOAK, Type.WATER, 100, 20, -1, 0, 5) .attr(ChangeTypeAttr, Type.WATER), From 61938869c1f80cbb97a716e8b136b7d7b64694cc Mon Sep 17 00:00:00 2001 From: Gerafique <155723753+Gerafique@users.noreply.github.com> Date: Fri, 17 May 2024 11:56:11 +0200 Subject: [PATCH 05/32] Added German Translations for menu.ts (#960) --- src/locales/de/menu.ts | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/locales/de/menu.ts b/src/locales/de/menu.ts index 7d96f9130eb..0d33fb4cbd8 100644 --- a/src/locales/de/menu.ts +++ b/src/locales/de/menu.ts @@ -12,10 +12,10 @@ export const menu: SimpleTranslationEntries = { "loadGame": "Spiel laden", "newGame": "Neues Spiel", "selectGameMode": "Wähle einen Spielmodus", - "logInOrCreateAccount": "Logge dich ein oder erstelle einen Account zum starten. Keine Email nötig!", + "logInOrCreateAccount": "Melde dich an oder erstelle einen Account zum starten. Keine Email nötig!", "username": "Benutzername", "password": "Passwort", - "login": "Einloggen", + "login": "Anmelden", "register": "Registrieren", "emptyUsername": "Benutzername darf nicht leer sein", "invalidLoginUsername": "Der eingegebene Benutzername ist ungültig", @@ -26,20 +26,20 @@ export const menu: SimpleTranslationEntries = { "accountNonExistent": "Der eingegebene Benutzer existiert nicht", "unmatchingPassword": "Das eingegebene Passwort stimmt nicht überein", "passwordNotMatchingConfirmPassword": "Passwort muss mit Bestätigungspasswort übereinstimmen", - "confirmPassword": "Besätige Passwort", + "confirmPassword": "Bestätige Passwort", "registrationAgeWarning": "Mit der Registrierung bestätigen Sie, dass Sie 13 Jahre oder älter sind.", - "backToLogin": "Zurück zum Einloggen", + "backToLogin": "Zurück zur Anmeldung", "failedToLoadSaveData": "Speicherdaten konnten nicht geladen werden. Bitte laden Sie die Seite neu.\nWenn dies weiterhin der Fall ist, wenden Sie sich bitte an den Administrator.", "sessionSuccess": "Sitzung erfolgreich geladen.", "failedToLoadSession": "Ihre Sitzungsdaten konnten nicht geladen werden.\nSie könnten beschädigt sein.", "boyOrGirl": "Bist du ein Junge oder ein Mädchen?", "boy": "Junge", "girl": "Mädchen", - "evolving": "What?\n{{pokemonName}} is evolving!", - "stoppedEvolving": "{{pokemonName}} stopped evolving.", - "pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.", - "evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.", - "evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!", + "evolving": "Nanu?\n{{pokemonName}} entwickelt sich!", + "stoppedEvolving": "Hm? {{pokemonName}} hat die Entwicklung \nabgebrochen.", // "Hm? Entwicklung wurde abgebrochen!" without naming the pokemon seems to be the original. + "pauseEvolutionsQuestion": "Die Entwicklung von {{pokemonName}} vorübergehend pausieren?\nEntwicklungen können im Gruppenmenü wieder aktiviert werden.", + "evolutionsPaused": "Entwicklung von {{pokemonName}} pausiert.", + "evolutionDone": "Glückwunsch!\nDein {{pokemonName}} entwickelte sich zu {{evolvedPokemonName}}!", "dailyRankings": "Tägliche Rangliste", "weeklyRankings": "Wöchentliche Rangliste", "noRankings": "Keine Rangliste", @@ -48,4 +48,4 @@ export const menu: SimpleTranslationEntries = { "empty":"Leer", "yes":"Ja", "no":"Nein", -} as const; \ No newline at end of file +} as const; From 250142083a21214d6cd4823239809c5741d215a9 Mon Sep 17 00:00:00 2001 From: FanHua Date: Fri, 17 May 2024 18:09:08 +0800 Subject: [PATCH 06/32] Implements localization for BerryType (#1007) --- src/data/berry.ts | 29 ++++------------------ src/locales/de/berry.ts | 48 +++++++++++++++++++++++++++++++++++++ src/locales/de/config.ts | 2 ++ src/locales/en/berry.ts | 48 +++++++++++++++++++++++++++++++++++++ src/locales/en/config.ts | 3 +++ src/locales/es/berry.ts | 48 +++++++++++++++++++++++++++++++++++++ src/locales/es/config.ts | 2 ++ src/locales/fr/berry.ts | 48 +++++++++++++++++++++++++++++++++++++ src/locales/fr/config.ts | 2 ++ src/locales/it/berry.ts | 48 +++++++++++++++++++++++++++++++++++++ src/locales/it/config.ts | 2 ++ src/locales/pt_BR/berry.ts | 48 +++++++++++++++++++++++++++++++++++++ src/locales/pt_BR/config.ts | 2 ++ src/locales/zh_CN/berry.ts | 48 +++++++++++++++++++++++++++++++++++++ src/locales/zh_CN/config.ts | 2 ++ src/plugins/i18n.ts | 10 ++++++++ 16 files changed, 366 insertions(+), 24 deletions(-) create mode 100644 src/locales/de/berry.ts create mode 100644 src/locales/en/berry.ts create mode 100644 src/locales/es/berry.ts create mode 100644 src/locales/fr/berry.ts create mode 100644 src/locales/it/berry.ts create mode 100644 src/locales/pt_BR/berry.ts create mode 100644 src/locales/zh_CN/berry.ts diff --git a/src/data/berry.ts b/src/data/berry.ts index 96b50caa932..1521f3488ef 100644 --- a/src/data/berry.ts +++ b/src/data/berry.ts @@ -7,6 +7,7 @@ import { BattlerTagType } from "./enums/battler-tag-type"; import { getStatusEffectHealText } from "./status-effect"; import * as Utils from "../utils"; import { DoubleBerryEffectAbAttr, ReduceBerryUseThresholdAbAttr, applyAbAttrs } from "./ability"; +import i18next from '../plugins/i18n'; export enum BerryType { SITRUS, @@ -22,32 +23,12 @@ export enum BerryType { LEPPA } -export function getBerryName(berryType: BerryType) { - return `${Utils.toReadableString(BerryType[berryType])} Berry`; +export function getBerryName(berryType: BerryType): string { + return i18next.t(`berry:${BerryType[berryType]}.name`); } -export function getBerryEffectDescription(berryType: BerryType) { - switch (berryType) { - case BerryType.SITRUS: - return 'Restores 25% HP if HP is below 50%'; - case BerryType.LUM: - return 'Cures any non-volatile status condition and confusion'; - case BerryType.ENIGMA: - return 'Restores 25% HP if hit by a super effective move'; - case BerryType.LIECHI: - case BerryType.GANLON: - case BerryType.PETAYA: - case BerryType.APICOT: - case BerryType.SALAC: - const stat = (berryType - BerryType.LIECHI) as BattleStat; - return `Raises ${getBattleStatName(stat)} if HP is below 25%`; - case BerryType.LANSAT: - return 'Raises critical hit ratio if HP is below 25%'; - case BerryType.STARF: - return 'Sharply raises a random stat if HP is below 25%'; - case BerryType.LEPPA: - return 'Restores 10 PP to a move if its PP reaches 0'; - } +export function getBerryEffectDescription(berryType: BerryType): string { + return i18next.t(`berry:${BerryType[berryType]}.effect`); } export type BerryPredicate = (pokemon: Pokemon) => boolean; diff --git a/src/locales/de/berry.ts b/src/locales/de/berry.ts new file mode 100644 index 00000000000..8c8bc5ee280 --- /dev/null +++ b/src/locales/de/berry.ts @@ -0,0 +1,48 @@ +import { BerryTranslationEntries } from "#app/plugins/i18n"; + +export const berry: BerryTranslationEntries = { + "SITRUS": { + name: "Sitrus Berry", + effect: "Restores 25% HP if HP is below 50%", + }, + "LUM": { + name: "Lum Berry", + effect: "Cures any non-volatile status condition and confusion", + }, + "ENIGMA": { + name: "Enigma Berry", + effect: "Restores 25% HP if hit by a super effective move", + }, + "LIECHI": { + name: "Liechi Berry", + effect: "Raises Attack if HP is below 25%", + }, + "GANLON": { + name: "Ganlon Berry", + effect: "Raises Defense if HP is below 25%", + }, + "PETAYA": { + name: "Petaya Berry", + effect: "Raises Sp. Atk if HP is below 25%", + }, + "APICOT": { + name: "Apicot Berry", + effect: "Raises Sp. Def if HP is below 25%", + }, + "SALAC": { + name: "Salac Berry", + effect: "Raises Speed if HP is below 25%", + }, + "LANSAT": { + name: "Lansat Berry", + effect: "Raises critical hit ratio if HP is below 25%", + }, + "STARF": { + name: "Starf Berry", + effect: "Sharply raises a random stat if HP is below 25%", + }, + "LEPPA": { + name: "Leppa Berry", + effect: "Restores 10 PP to a move if its PP reaches 0", + }, +} as const; \ No newline at end of file diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 44bd5a66f1a..9ff1699778b 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -18,6 +18,7 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { berry } from "./berry"; export const deConfig = { @@ -43,4 +44,5 @@ export const deConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + berry: berry, } diff --git a/src/locales/en/berry.ts b/src/locales/en/berry.ts new file mode 100644 index 00000000000..8c8bc5ee280 --- /dev/null +++ b/src/locales/en/berry.ts @@ -0,0 +1,48 @@ +import { BerryTranslationEntries } from "#app/plugins/i18n"; + +export const berry: BerryTranslationEntries = { + "SITRUS": { + name: "Sitrus Berry", + effect: "Restores 25% HP if HP is below 50%", + }, + "LUM": { + name: "Lum Berry", + effect: "Cures any non-volatile status condition and confusion", + }, + "ENIGMA": { + name: "Enigma Berry", + effect: "Restores 25% HP if hit by a super effective move", + }, + "LIECHI": { + name: "Liechi Berry", + effect: "Raises Attack if HP is below 25%", + }, + "GANLON": { + name: "Ganlon Berry", + effect: "Raises Defense if HP is below 25%", + }, + "PETAYA": { + name: "Petaya Berry", + effect: "Raises Sp. Atk if HP is below 25%", + }, + "APICOT": { + name: "Apicot Berry", + effect: "Raises Sp. Def if HP is below 25%", + }, + "SALAC": { + name: "Salac Berry", + effect: "Raises Speed if HP is below 25%", + }, + "LANSAT": { + name: "Lansat Berry", + effect: "Raises critical hit ratio if HP is below 25%", + }, + "STARF": { + name: "Starf Berry", + effect: "Sharply raises a random stat if HP is below 25%", + }, + "LEPPA": { + name: "Leppa Berry", + effect: "Restores 10 PP to a move if its PP reaches 0", + }, +} as const; \ No newline at end of file diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index 2962633e26a..b2dfe9c9b4c 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -18,6 +18,8 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { berry } from "./berry"; + export const enConfig = { ability: ability, @@ -42,4 +44,5 @@ export const enConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + berry: berry, } diff --git a/src/locales/es/berry.ts b/src/locales/es/berry.ts new file mode 100644 index 00000000000..8c8bc5ee280 --- /dev/null +++ b/src/locales/es/berry.ts @@ -0,0 +1,48 @@ +import { BerryTranslationEntries } from "#app/plugins/i18n"; + +export const berry: BerryTranslationEntries = { + "SITRUS": { + name: "Sitrus Berry", + effect: "Restores 25% HP if HP is below 50%", + }, + "LUM": { + name: "Lum Berry", + effect: "Cures any non-volatile status condition and confusion", + }, + "ENIGMA": { + name: "Enigma Berry", + effect: "Restores 25% HP if hit by a super effective move", + }, + "LIECHI": { + name: "Liechi Berry", + effect: "Raises Attack if HP is below 25%", + }, + "GANLON": { + name: "Ganlon Berry", + effect: "Raises Defense if HP is below 25%", + }, + "PETAYA": { + name: "Petaya Berry", + effect: "Raises Sp. Atk if HP is below 25%", + }, + "APICOT": { + name: "Apicot Berry", + effect: "Raises Sp. Def if HP is below 25%", + }, + "SALAC": { + name: "Salac Berry", + effect: "Raises Speed if HP is below 25%", + }, + "LANSAT": { + name: "Lansat Berry", + effect: "Raises critical hit ratio if HP is below 25%", + }, + "STARF": { + name: "Starf Berry", + effect: "Sharply raises a random stat if HP is below 25%", + }, + "LEPPA": { + name: "Leppa Berry", + effect: "Restores 10 PP to a move if its PP reaches 0", + }, +} as const; \ No newline at end of file diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index a986bbfc75c..61b01cfa6b5 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -18,6 +18,7 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { berry } from "./berry"; export const esConfig = { @@ -43,4 +44,5 @@ export const esConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + berry: berry, } diff --git a/src/locales/fr/berry.ts b/src/locales/fr/berry.ts new file mode 100644 index 00000000000..8c8bc5ee280 --- /dev/null +++ b/src/locales/fr/berry.ts @@ -0,0 +1,48 @@ +import { BerryTranslationEntries } from "#app/plugins/i18n"; + +export const berry: BerryTranslationEntries = { + "SITRUS": { + name: "Sitrus Berry", + effect: "Restores 25% HP if HP is below 50%", + }, + "LUM": { + name: "Lum Berry", + effect: "Cures any non-volatile status condition and confusion", + }, + "ENIGMA": { + name: "Enigma Berry", + effect: "Restores 25% HP if hit by a super effective move", + }, + "LIECHI": { + name: "Liechi Berry", + effect: "Raises Attack if HP is below 25%", + }, + "GANLON": { + name: "Ganlon Berry", + effect: "Raises Defense if HP is below 25%", + }, + "PETAYA": { + name: "Petaya Berry", + effect: "Raises Sp. Atk if HP is below 25%", + }, + "APICOT": { + name: "Apicot Berry", + effect: "Raises Sp. Def if HP is below 25%", + }, + "SALAC": { + name: "Salac Berry", + effect: "Raises Speed if HP is below 25%", + }, + "LANSAT": { + name: "Lansat Berry", + effect: "Raises critical hit ratio if HP is below 25%", + }, + "STARF": { + name: "Starf Berry", + effect: "Sharply raises a random stat if HP is below 25%", + }, + "LEPPA": { + name: "Leppa Berry", + effect: "Restores 10 PP to a move if its PP reaches 0", + }, +} as const; \ No newline at end of file diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 8de3e186d59..ef8f8bb7538 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -18,6 +18,7 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { berry } from "./berry"; export const frConfig = { @@ -43,5 +44,6 @@ export const frConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + berry: berry, } diff --git a/src/locales/it/berry.ts b/src/locales/it/berry.ts new file mode 100644 index 00000000000..8c8bc5ee280 --- /dev/null +++ b/src/locales/it/berry.ts @@ -0,0 +1,48 @@ +import { BerryTranslationEntries } from "#app/plugins/i18n"; + +export const berry: BerryTranslationEntries = { + "SITRUS": { + name: "Sitrus Berry", + effect: "Restores 25% HP if HP is below 50%", + }, + "LUM": { + name: "Lum Berry", + effect: "Cures any non-volatile status condition and confusion", + }, + "ENIGMA": { + name: "Enigma Berry", + effect: "Restores 25% HP if hit by a super effective move", + }, + "LIECHI": { + name: "Liechi Berry", + effect: "Raises Attack if HP is below 25%", + }, + "GANLON": { + name: "Ganlon Berry", + effect: "Raises Defense if HP is below 25%", + }, + "PETAYA": { + name: "Petaya Berry", + effect: "Raises Sp. Atk if HP is below 25%", + }, + "APICOT": { + name: "Apicot Berry", + effect: "Raises Sp. Def if HP is below 25%", + }, + "SALAC": { + name: "Salac Berry", + effect: "Raises Speed if HP is below 25%", + }, + "LANSAT": { + name: "Lansat Berry", + effect: "Raises critical hit ratio if HP is below 25%", + }, + "STARF": { + name: "Starf Berry", + effect: "Sharply raises a random stat if HP is below 25%", + }, + "LEPPA": { + name: "Leppa Berry", + effect: "Restores 10 PP to a move if its PP reaches 0", + }, +} as const; \ No newline at end of file diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 6892c9c8cad..3d8d9b0e4b7 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -18,6 +18,7 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { berry } from "./berry"; export const itConfig = { @@ -43,4 +44,5 @@ export const itConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + berry: berry, } diff --git a/src/locales/pt_BR/berry.ts b/src/locales/pt_BR/berry.ts new file mode 100644 index 00000000000..8c8bc5ee280 --- /dev/null +++ b/src/locales/pt_BR/berry.ts @@ -0,0 +1,48 @@ +import { BerryTranslationEntries } from "#app/plugins/i18n"; + +export const berry: BerryTranslationEntries = { + "SITRUS": { + name: "Sitrus Berry", + effect: "Restores 25% HP if HP is below 50%", + }, + "LUM": { + name: "Lum Berry", + effect: "Cures any non-volatile status condition and confusion", + }, + "ENIGMA": { + name: "Enigma Berry", + effect: "Restores 25% HP if hit by a super effective move", + }, + "LIECHI": { + name: "Liechi Berry", + effect: "Raises Attack if HP is below 25%", + }, + "GANLON": { + name: "Ganlon Berry", + effect: "Raises Defense if HP is below 25%", + }, + "PETAYA": { + name: "Petaya Berry", + effect: "Raises Sp. Atk if HP is below 25%", + }, + "APICOT": { + name: "Apicot Berry", + effect: "Raises Sp. Def if HP is below 25%", + }, + "SALAC": { + name: "Salac Berry", + effect: "Raises Speed if HP is below 25%", + }, + "LANSAT": { + name: "Lansat Berry", + effect: "Raises critical hit ratio if HP is below 25%", + }, + "STARF": { + name: "Starf Berry", + effect: "Sharply raises a random stat if HP is below 25%", + }, + "LEPPA": { + name: "Leppa Berry", + effect: "Restores 10 PP to a move if its PP reaches 0", + }, +} as const; \ No newline at end of file diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index af714a36316..157df19a80b 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -14,6 +14,7 @@ import { pokemonStat } from "./pokemon-stat"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { berry } from "./berry"; export const ptBrConfig = { @@ -33,4 +34,5 @@ export const ptBrConfig = { growth: growth, weather: weather, modifierType: modifierType, + berry: berry, } \ No newline at end of file diff --git a/src/locales/zh_CN/berry.ts b/src/locales/zh_CN/berry.ts new file mode 100644 index 00000000000..8c8bc5ee280 --- /dev/null +++ b/src/locales/zh_CN/berry.ts @@ -0,0 +1,48 @@ +import { BerryTranslationEntries } from "#app/plugins/i18n"; + +export const berry: BerryTranslationEntries = { + "SITRUS": { + name: "Sitrus Berry", + effect: "Restores 25% HP if HP is below 50%", + }, + "LUM": { + name: "Lum Berry", + effect: "Cures any non-volatile status condition and confusion", + }, + "ENIGMA": { + name: "Enigma Berry", + effect: "Restores 25% HP if hit by a super effective move", + }, + "LIECHI": { + name: "Liechi Berry", + effect: "Raises Attack if HP is below 25%", + }, + "GANLON": { + name: "Ganlon Berry", + effect: "Raises Defense if HP is below 25%", + }, + "PETAYA": { + name: "Petaya Berry", + effect: "Raises Sp. Atk if HP is below 25%", + }, + "APICOT": { + name: "Apicot Berry", + effect: "Raises Sp. Def if HP is below 25%", + }, + "SALAC": { + name: "Salac Berry", + effect: "Raises Speed if HP is below 25%", + }, + "LANSAT": { + name: "Lansat Berry", + effect: "Raises critical hit ratio if HP is below 25%", + }, + "STARF": { + name: "Starf Berry", + effect: "Sharply raises a random stat if HP is below 25%", + }, + "LEPPA": { + name: "Leppa Berry", + effect: "Restores 10 PP to a move if its PP reaches 0", + }, +} as const; \ No newline at end of file diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 19afba381b8..69f07a4f1a7 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -18,6 +18,7 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { berry } from "./berry"; export const zhCnConfig = { @@ -43,4 +44,5 @@ export const zhCnConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + berry: berry, } diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 807e1a1b550..30cc4bfcac2 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -46,6 +46,15 @@ export interface ModifierTypeTranslationEntries { TeraType: SimpleTranslationEntries, } +export interface BerryTranslationEntry { + name: string, + effect: string +} + +export interface BerryTranslationEntries { + [key: string]: BerryTranslationEntry +} + export interface Localizable { localize(): void; } @@ -139,6 +148,7 @@ declare module 'i18next' { egg: SimpleTranslationEntries; weather: SimpleTranslationEntries; modifierType: ModifierTypeTranslationEntries; + berry: BerryTranslationEntries; }; } } From a44c1587d443f453683c07a8466ddd001d0c865a Mon Sep 17 00:00:00 2001 From: Laeticia PIERRE Date: Fri, 17 May 2024 12:13:32 +0200 Subject: [PATCH 07/32] Fix some fr (#1013) * Fix some modifier-type fr * Fix some trainers fr * Fix DYNAMAX_BAND fr --- src/locales/fr/modifier-type.ts | 6 +++--- src/locales/fr/trainers.ts | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/fr/modifier-type.ts b/src/locales/fr/modifier-type.ts index 96aeeccf4f8..95daf50f9b1 100644 --- a/src/locales/fr/modifier-type.ts +++ b/src/locales/fr/modifier-type.ts @@ -52,7 +52,7 @@ export const modifierType: ModifierTypeTranslationEntries = { description: "Double les chances de tomber sur un combat double pendant {{battleCount}} combats", }, "TempBattleStatBoosterModifierType": { - description: "Augmente d’1 cran {{tempBattleStatName}} pour tout l’équipe pendant 5 combats", + description: "Augmente d’1 cran {{tempBattleStatName}} pour toute l’équipe pendant 5 combats", }, "AttackTypeBoosterModifierType": { description: "Augmente de 20% la puissance des capacités de type {{moveType}} d’un Pokémon", @@ -129,7 +129,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "RARER_CANDY": { name: "Hyper Bonbon" }, "MEGA_BRACELET": { name: "Méga-Bracelet", description: "Débloque les Méga-Gemmes" }, - "DYNAMAX_BAND": { name: "Poignet Dynamax", description: "Débloque les Maxi Champis" }, + "DYNAMAX_BAND": { name: "Poignet Dynamax", description: "Débloque le Dynamax" }, "TERA_ORB": { name: "Orbe Téracristal", description: "Débloque les Téra-Éclats" }, "MAP": { name: "Carte", description: "Vous permet de choisir votre destination à un croisement" }, @@ -264,7 +264,7 @@ export const modifierType: ModifierTypeTranslationEntries = { "fairy_feather": "Plume Enchantée", }, BaseStatBoosterItem: { - "hp_up": "PP Plus", + "hp_up": "PV Plus", "protein": "Protéine", "iron": "Fer", "calcium": "Calcium", diff --git a/src/locales/fr/trainers.ts b/src/locales/fr/trainers.ts index 2d5c78bbfc5..e5386288cb2 100644 --- a/src/locales/fr/trainers.ts +++ b/src/locales/fr/trainers.ts @@ -81,11 +81,11 @@ export const trainerClasses: SimpleTranslationEntries = { "ranger": "Ranger", "restaurant_staff": "Serveurs", "rich": "Rich", - "rich_female": "Rich", - "rich_boy": "Richard", + "rich_female": "Mondaine", + "rich_boy": "Gentleman", "rich_couple": "Couple de Bourgeois", - "rich_kid": "Rich Kid", - "rich_kid_female": "Rich Kid", + "rich_kid": "Richard", + "rich_kid_female": "Mademoiselle", "rich_kids": "Richards", "roughneck": "Loubard", "scientist": "Scientifique", From 96af567cd4d014ffa6afe554d1d2f26fb068022b Mon Sep 17 00:00:00 2001 From: Lugiad Date: Fri, 17 May 2024 12:21:35 +0200 Subject: [PATCH 08/32] IV Scanner Results Translation (#990) * Update battle-message-ui-handler.ts * Update i18n.ts * Update config.ts * Update config.ts * Update config.ts * Update config.ts * Update config.ts * Update config.ts * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Update battle-message-ui-handler.ts * German battle-message-ui-handler.ts * Update config.ts --------- Co-authored-by: Benjamin Odom --- src/locales/de/battle-message-ui-handler.ts | 10 ++++++++ src/locales/de/config.ts | 5 ++-- src/locales/en/battle-message-ui-handler.ts | 10 ++++++++ src/locales/en/config.ts | 5 ++-- src/locales/es/battle-message-ui-handler.ts | 10 ++++++++ src/locales/es/config.ts | 5 ++-- src/locales/fr/battle-message-ui-handler.ts | 10 ++++++++ src/locales/fr/config.ts | 6 ++--- src/locales/it/battle-message-ui-handler.ts | 10 ++++++++ src/locales/it/config.ts | 5 ++-- .../pt_BR/battle-message-ui-handler.ts | 10 ++++++++ .../zh_CN/battle-message-ui-handler.ts | 10 ++++++++ src/locales/zh_CN/config.ts | 5 ++-- src/plugins/i18n.ts | 3 ++- src/ui/battle-message-ui-handler.ts | 25 ++++++++++--------- 15 files changed, 103 insertions(+), 26 deletions(-) create mode 100644 src/locales/de/battle-message-ui-handler.ts create mode 100644 src/locales/en/battle-message-ui-handler.ts create mode 100644 src/locales/es/battle-message-ui-handler.ts create mode 100644 src/locales/fr/battle-message-ui-handler.ts create mode 100644 src/locales/it/battle-message-ui-handler.ts create mode 100644 src/locales/pt_BR/battle-message-ui-handler.ts create mode 100644 src/locales/zh_CN/battle-message-ui-handler.ts diff --git a/src/locales/de/battle-message-ui-handler.ts b/src/locales/de/battle-message-ui-handler.ts new file mode 100644 index 00000000000..daedb8550d0 --- /dev/null +++ b/src/locales/de/battle-message-ui-handler.ts @@ -0,0 +1,10 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const battleMessageUiHandler: SimpleTranslationEntries = { + "ivBest": "Sensationell", + "ivFantastic": "Fantastisch", + "ivVeryGood": "Sehr Gut", + "ivPrettyGood": "Gut", + "ivDecent": "Nicht Übel", + "ivNoGood": "Schlecht", +} as const; diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 9ff1699778b..7aeeeb7a925 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -18,9 +18,9 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; - export const deConfig = { ability: ability, abilityTriggers: abilityTriggers, @@ -44,5 +44,6 @@ export const deConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, -} +} \ No newline at end of file diff --git a/src/locales/en/battle-message-ui-handler.ts b/src/locales/en/battle-message-ui-handler.ts new file mode 100644 index 00000000000..346f856872c --- /dev/null +++ b/src/locales/en/battle-message-ui-handler.ts @@ -0,0 +1,10 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const battleMessageUiHandler: SimpleTranslationEntries = { + "ivBest": "Best", + "ivFantastic": "Fantastic", + "ivVeryGood": "Very Good", + "ivPrettyGood": "Pretty Good", + "ivDecent": "Decent", + "ivNoGood": "No Good", +} as const; \ No newline at end of file diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index b2dfe9c9b4c..6b23d2f2983 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -18,9 +18,9 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; - export const enConfig = { ability: ability, abilityTriggers: abilityTriggers, @@ -44,5 +44,6 @@ export const enConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, -} +} \ No newline at end of file diff --git a/src/locales/es/battle-message-ui-handler.ts b/src/locales/es/battle-message-ui-handler.ts new file mode 100644 index 00000000000..346f856872c --- /dev/null +++ b/src/locales/es/battle-message-ui-handler.ts @@ -0,0 +1,10 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const battleMessageUiHandler: SimpleTranslationEntries = { + "ivBest": "Best", + "ivFantastic": "Fantastic", + "ivVeryGood": "Very Good", + "ivPrettyGood": "Pretty Good", + "ivDecent": "Decent", + "ivNoGood": "No Good", +} as const; \ No newline at end of file diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index 61b01cfa6b5..a3b06982d33 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -18,9 +18,9 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; - export const esConfig = { ability: ability, abilityTriggers: abilityTriggers, @@ -44,5 +44,6 @@ export const esConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, -} +} \ No newline at end of file diff --git a/src/locales/fr/battle-message-ui-handler.ts b/src/locales/fr/battle-message-ui-handler.ts new file mode 100644 index 00000000000..8dc980d49a4 --- /dev/null +++ b/src/locales/fr/battle-message-ui-handler.ts @@ -0,0 +1,10 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const battleMessageUiHandler: SimpleTranslationEntries = { + "ivBest": "Exceptionnel", + "ivFantastic": "Fantastique", + "ivVeryGood": "Très bon", + "ivPrettyGood": "Bon", + "ivDecent": "Passable…", + "ivNoGood": "Pas top…", +} as const; diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index ef8f8bb7538..867a08621bb 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -18,9 +18,9 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; - export const frConfig = { ability: ability, abilityTriggers: abilityTriggers, @@ -44,6 +44,6 @@ export const frConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, -} - +} \ No newline at end of file diff --git a/src/locales/it/battle-message-ui-handler.ts b/src/locales/it/battle-message-ui-handler.ts new file mode 100644 index 00000000000..346f856872c --- /dev/null +++ b/src/locales/it/battle-message-ui-handler.ts @@ -0,0 +1,10 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const battleMessageUiHandler: SimpleTranslationEntries = { + "ivBest": "Best", + "ivFantastic": "Fantastic", + "ivVeryGood": "Very Good", + "ivPrettyGood": "Pretty Good", + "ivDecent": "Decent", + "ivNoGood": "No Good", +} as const; \ No newline at end of file diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 3d8d9b0e4b7..89d78304120 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -18,9 +18,9 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; - export const itConfig = { ability: ability, abilityTriggers: abilityTriggers, @@ -44,5 +44,6 @@ export const itConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, -} +} \ No newline at end of file diff --git a/src/locales/pt_BR/battle-message-ui-handler.ts b/src/locales/pt_BR/battle-message-ui-handler.ts new file mode 100644 index 00000000000..346f856872c --- /dev/null +++ b/src/locales/pt_BR/battle-message-ui-handler.ts @@ -0,0 +1,10 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const battleMessageUiHandler: SimpleTranslationEntries = { + "ivBest": "Best", + "ivFantastic": "Fantastic", + "ivVeryGood": "Very Good", + "ivPrettyGood": "Pretty Good", + "ivDecent": "Decent", + "ivNoGood": "No Good", +} as const; \ No newline at end of file diff --git a/src/locales/zh_CN/battle-message-ui-handler.ts b/src/locales/zh_CN/battle-message-ui-handler.ts new file mode 100644 index 00000000000..346f856872c --- /dev/null +++ b/src/locales/zh_CN/battle-message-ui-handler.ts @@ -0,0 +1,10 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const battleMessageUiHandler: SimpleTranslationEntries = { + "ivBest": "Best", + "ivFantastic": "Fantastic", + "ivVeryGood": "Very Good", + "ivPrettyGood": "Pretty Good", + "ivDecent": "Decent", + "ivNoGood": "No Good", +} as const; \ No newline at end of file diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 69f07a4f1a7..9c3a62f59f0 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -18,9 +18,9 @@ import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; +import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; - export const zhCnConfig = { ability: ability, abilityTriggers: abilityTriggers, @@ -44,5 +44,6 @@ export const zhCnConfig = { trainerNames: trainerNames, tutorial: tutorial, weather: weather, + battleMessageUiHandler: battleMessageUiHandler, berry: berry, -} +} \ No newline at end of file diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 30cc4bfcac2..5c9de28fe82 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -148,6 +148,7 @@ declare module 'i18next' { egg: SimpleTranslationEntries; weather: SimpleTranslationEntries; modifierType: ModifierTypeTranslationEntries; + battleMessageUiHandler: SimpleTranslationEntries; berry: BerryTranslationEntries; }; } @@ -159,4 +160,4 @@ export function getIsInitialized(): boolean { return isInitialized; } -let isInitialized = false; \ No newline at end of file +let isInitialized = false; diff --git a/src/ui/battle-message-ui-handler.ts b/src/ui/battle-message-ui-handler.ts index abcf04b7cc8..b7dccef52b5 100644 --- a/src/ui/battle-message-ui-handler.ts +++ b/src/ui/battle-message-ui-handler.ts @@ -7,6 +7,7 @@ import { getStatName, Stat } from "../data/pokemon-stat"; import { addWindow } from "./ui-theme"; import BBCodeText from "phaser3-rex-plugins/plugins/bbcodetext"; import {Button} from "../enums/buttons"; +import i18next from '../plugins/i18n'; export default class BattleMessageUiHandler extends MessageUiHandler { private levelUpStatsContainer: Phaser.GameObjects.Container; @@ -234,20 +235,20 @@ export default class BattleMessageUiHandler extends MessageUiHandler { const textStyle: TextStyle = isBetter ? TextStyle.SUMMARY_GREEN : TextStyle.SUMMARY; const color = getTextColor(textStyle, false, uiTheme); return `[color=${color}][shadow=${getTextColor(textStyle, true, uiTheme)}]${text}[/shadow][/color]`; - }; +}; - if (value > 30) - return coloredText('Best', value > starterIvs[typeIv]); - if (value === 30) - return coloredText('Fantastic', value > starterIvs[typeIv]); - if (value > 20) - return coloredText('Very Good', value > starterIvs[typeIv]); - if (value > 10) - return coloredText('Pretty Good', value > starterIvs[typeIv]); - if (value > 0) - return coloredText('Decent', value > starterIvs[typeIv]); + if (value > 30) + return coloredText(i18next.t('battleMessageUiHandler:ivBest'), value > starterIvs[typeIv]); + if (value === 30) + return coloredText(i18next.t('battleMessageUiHandler:ivFantastic'), value > starterIvs[typeIv]); + if (value > 20) + return coloredText(i18next.t('battleMessageUiHandler:ivVeryGood'), value > starterIvs[typeIv]); + if (value > 10) + return coloredText(i18next.t('battleMessageUiHandler:ivPrettyGood'), value > starterIvs[typeIv]); + if (value > 0) + return coloredText(i18next.t('battleMessageUiHandler:ivDecent'), value > starterIvs[typeIv]); - return coloredText('No Good', value > starterIvs[typeIv]); + return coloredText(i18next.t('battleMessageUiHandler:ivNoGood'), value > starterIvs[typeIv]); } showNameText(name: string): void { From b0fd32b1a45034c603c8c4ee603f4eed0cf1c655 Mon Sep 17 00:00:00 2001 From: Lugiad Date: Fri, 17 May 2024 12:22:58 +0200 Subject: [PATCH 09/32] Update French berry.ts (#1023) --- src/locales/fr/berry.ts | 46 ++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/locales/fr/berry.ts b/src/locales/fr/berry.ts index 8c8bc5ee280..dd6b387f4cc 100644 --- a/src/locales/fr/berry.ts +++ b/src/locales/fr/berry.ts @@ -2,47 +2,47 @@ import { BerryTranslationEntries } from "#app/plugins/i18n"; export const berry: BerryTranslationEntries = { "SITRUS": { - name: "Sitrus Berry", - effect: "Restores 25% HP if HP is below 50%", + name: "Baie Sitrus", + effect: "Restaure 25% des PV s’ils sont inférieurs à 50%", }, "LUM": { - name: "Lum Berry", - effect: "Cures any non-volatile status condition and confusion", + name: "Baie Prine", + effect: "Soigne tout problème de statut permanant et la confusion", }, "ENIGMA": { - name: "Enigma Berry", - effect: "Restores 25% HP if hit by a super effective move", + name: "Baie Enigma", + effect: "Restaure 25% des PV si touché par une capacité super efficace", }, "LIECHI": { - name: "Liechi Berry", - effect: "Raises Attack if HP is below 25%", + name: "Baie Lichii", + effect: "Augmente l’Attaque si les PV sont inférieurs à 25%", }, "GANLON": { - name: "Ganlon Berry", - effect: "Raises Defense if HP is below 25%", + name: "Baie Lingan", + effect: "Augmente la Défense si les PV sont inférieurs à 25%", }, "PETAYA": { - name: "Petaya Berry", - effect: "Raises Sp. Atk if HP is below 25%", + name: "Baie Pitaye", + effect: "Augmente l’Atq. Spé. si les PV sont inférieurs à 25%", }, "APICOT": { - name: "Apicot Berry", - effect: "Raises Sp. Def if HP is below 25%", + name: "Baie Abriko", + effect: "Augmente la Déf. Spé. si les PV sont inférieurs à 25%", }, "SALAC": { - name: "Salac Berry", - effect: "Raises Speed if HP is below 25%", + name: "Baie Sailak", + effect: "Augmente la Vitesse si les PV sont inférieurs à 25%", }, "LANSAT": { - name: "Lansat Berry", - effect: "Raises critical hit ratio if HP is below 25%", + name: "Baie Lansat", + effect: "Augmente le taux de coups critiques si les PV sont inférieurs à 25%", }, "STARF": { - name: "Starf Berry", - effect: "Sharply raises a random stat if HP is below 25%", + name: "Baie Frista", + effect: "Augmente énormément une statistique au hasard si les PV sont inférieurs à 25%", }, "LEPPA": { - name: "Leppa Berry", - effect: "Restores 10 PP to a move if its PP reaches 0", + name: "Baie Mepo", + effect: "Restaure 10 PP à une capacité dès que ses PP tombent à 0", }, -} as const; \ No newline at end of file +} as const; From 48c745deee1f2f2b58ad438ff95b949c7c898d4e Mon Sep 17 00:00:00 2001 From: Lugiad Date: Fri, 17 May 2024 12:23:23 +0200 Subject: [PATCH 10/32] Update French trainers.ts (#1020) --- src/locales/fr/trainers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/fr/trainers.ts b/src/locales/fr/trainers.ts index e5386288cb2..c73f0b1b1c5 100644 --- a/src/locales/fr/trainers.ts +++ b/src/locales/fr/trainers.ts @@ -35,7 +35,7 @@ export const trainerClasses: SimpleTranslationEntries = { "clerk": "Employé", "clerk_female": "Employée", "colleagues": "Collègues de Bureau", - "crush_kin": "Crush Kin", + "crush_kin": "Duo Baston", "cyclist": "Cycliste", "cyclist_female": "Cycliste", "cyclists": "Cyclistes", From 0c660f599d7f1105d5c7671abd8c2de52a20ef25 Mon Sep 17 00:00:00 2001 From: Somod1 <160222354+Somod1@users.noreply.github.com> Date: Fri, 17 May 2024 18:23:44 +0800 Subject: [PATCH 11/32] Add files via upload (#1022) --- src/locales/zh_CN/berry.ts | 94 +++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/src/locales/zh_CN/berry.ts b/src/locales/zh_CN/berry.ts index 8c8bc5ee280..08b16d58e68 100644 --- a/src/locales/zh_CN/berry.ts +++ b/src/locales/zh_CN/berry.ts @@ -1,48 +1,48 @@ -import { BerryTranslationEntries } from "#app/plugins/i18n"; - -export const berry: BerryTranslationEntries = { - "SITRUS": { - name: "Sitrus Berry", - effect: "Restores 25% HP if HP is below 50%", - }, - "LUM": { - name: "Lum Berry", - effect: "Cures any non-volatile status condition and confusion", - }, - "ENIGMA": { - name: "Enigma Berry", - effect: "Restores 25% HP if hit by a super effective move", - }, - "LIECHI": { - name: "Liechi Berry", - effect: "Raises Attack if HP is below 25%", - }, - "GANLON": { - name: "Ganlon Berry", - effect: "Raises Defense if HP is below 25%", - }, - "PETAYA": { - name: "Petaya Berry", - effect: "Raises Sp. Atk if HP is below 25%", - }, - "APICOT": { - name: "Apicot Berry", - effect: "Raises Sp. Def if HP is below 25%", - }, - "SALAC": { - name: "Salac Berry", - effect: "Raises Speed if HP is below 25%", - }, - "LANSAT": { - name: "Lansat Berry", - effect: "Raises critical hit ratio if HP is below 25%", - }, - "STARF": { - name: "Starf Berry", - effect: "Sharply raises a random stat if HP is below 25%", - }, - "LEPPA": { - name: "Leppa Berry", - effect: "Restores 10 PP to a move if its PP reaches 0", - }, +import { BerryTranslationEntries } from "#app/plugins/i18n"; + +export const berry: BerryTranslationEntries = { + "SITRUS": { + name: "文柚果", + effect: "HP低于50%时,回复最大HP的25%", + }, + "LUM": { + name: "木子果", + effect: "治愈任何异常状态和混乱状态", + }, + "ENIGMA": { + name: "谜芝果", + effect: "受到效果绝佳的招式攻击时,回复25%最大HP", + }, + "LIECHI": { + name: "枝荔果", + effect: "HP低于25%时,攻击提升一个等级", + }, + "GANLON": { + name: "龙睛果", + effect: "HP低于25%时,防御提升一个等级", + }, + "PETAYA": { + name: "龙火果", + effect: "HP低于25%时,特攻提升一个等级", + }, + "APICOT": { + name: "杏仔果", + effect: "HP低于25%时,特防提升一个等级", + }, + "SALAC": { + name: "沙鳞果", + effect: "HP低于25%时,速度提升一个等级", + }, + "LANSAT": { + name: "兰萨果", + effect: "HP低于25%时,击中要害率提升两个等级", + }, + "STARF": { + name: "星桃果", + effect: "HP低于25%时,提高随机一项能力两个等级", + }, + "LEPPA": { + name: "苹野果", + effect: "有招式的PP降到0时,恢复该招式10PP", + }, } as const; \ No newline at end of file From 4362d49e6b8ed80798e7a0b58755aa3b0a36e923 Mon Sep 17 00:00:00 2001 From: Calvin Keats Date: Fri, 17 May 2024 05:25:21 -0500 Subject: [PATCH 12/32] Use localization for damaging weather messages (#1017) --- src/data/weather.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/data/weather.ts b/src/data/weather.ts index eb30f22f36b..c8bd47fc12d 100644 --- a/src/data/weather.ts +++ b/src/data/weather.ts @@ -1,5 +1,5 @@ import { Biome } from "./enums/biome"; -import { getPokemonMessage } from "../messages"; +import { getPokemonMessage, getPokemonPrefix } from "../messages"; import Pokemon from "../field/pokemon"; import { Type } from "./type"; import Move, { AttackMove } from "./move"; @@ -172,9 +172,9 @@ export function getWeatherLapseMessage(weatherType: WeatherType): string { export function getWeatherDamageMessage(weatherType: WeatherType, pokemon: Pokemon): string { switch (weatherType) { case WeatherType.SANDSTORM: - return getPokemonMessage(pokemon, ' is buffeted\nby the sandstorm!'); + return i18next.t('weather:sandstormDamageMessage', {pokemonPrefix: getPokemonPrefix(pokemon), pokemonName: pokemon.name}); case WeatherType.HAIL: - return getPokemonMessage(pokemon, ' is pelted\nby the hail!'); + return i18next.t('weather:hailDamageMessage', {pokemonPrefix: getPokemonPrefix(pokemon), pokemonName: pokemon.name}); } return null; From edf3a6aa36cdbee56bc2a224b1af78d3a02624d0 Mon Sep 17 00:00:00 2001 From: Tempoanon <163687446+TempsRay@users.noreply.github.com> Date: Fri, 17 May 2024 06:28:22 -0400 Subject: [PATCH 13/32] Fix tinted caught icon false positive (#892) * Fix tinted caught icon false positive * Remove unused import * Rename and optimize * Block comment * use 3 equals --- src/ui/battle-info.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/ui/battle-info.ts b/src/ui/battle-info.ts index f2e48911e07..88bc3230ce3 100644 --- a/src/ui/battle-info.ts +++ b/src/ui/battle-info.ts @@ -260,8 +260,23 @@ export default class BattleInfo extends Phaser.GameObjects.Container { if (!this.player) { const dexEntry = pokemon.scene.gameData.dexData[pokemon.species.speciesId]; this.ownedIcon.setVisible(!!dexEntry.caughtAttr); - const dexAttr = pokemon.getDexAttr(); - if ((dexEntry.caughtAttr & dexAttr) < dexAttr || !(pokemon.scene.gameData.starterData[pokemon.species.getRootSpeciesId()].abilityAttr & Math.pow(2, pokemon.abilityIndex))) + const opponentPokemonDexAttr = pokemon.getDexAttr(); + + // Check if Player owns all genders and forms of the Pokemon + const missingDexAttrs = ((dexEntry.caughtAttr & opponentPokemonDexAttr) < opponentPokemonDexAttr); + + /** + * If the opposing Pokemon only has 1 normal ability and is using the hidden ability it should have the same behavior + * if it had 2 normal abilities. This code checks if that is the case and uses the correct opponent Pokemon abilityIndex (2) + * for calculations so it aligns with where the hidden ability is stored in the starter data's abilityAttr (4) + */ + const opponentPokemonOneNormalAbility = (pokemon.species.getAbilityCount() === 2); + const opponentPokemonAbilityIndex = (opponentPokemonOneNormalAbility && pokemon.abilityIndex === 1) ? 2 : pokemon.abilityIndex; + const opponentPokemonAbilityAttr = Math.pow(2, opponentPokemonAbilityIndex); + + const rootFormHasHiddenAbility = pokemon.scene.gameData.starterData[pokemon.species.getRootSpeciesId()].abilityAttr & opponentPokemonAbilityAttr; + + if (missingDexAttrs || !rootFormHasHiddenAbility) this.ownedIcon.setTint(0x808080); if (this.boss) From 10437142b60b1049b4abd65f6d6d6b06afb1210c Mon Sep 17 00:00:00 2001 From: William Burleson <72857839+Admiral-Billy@users.noreply.github.com> Date: Fri, 17 May 2024 06:51:48 -0400 Subject: [PATCH 14/32] Fix daily run freeze (#1025) --- src/phases.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/phases.ts b/src/phases.ts index 91e098edf1f..1137c85afa6 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -3545,10 +3545,12 @@ export class GameOverModifierRewardPhase extends ModifierRewardPhase { this.scene.addModifier(newModifier).then(() => { this.scene.playSound('level_up_fanfare'); this.scene.ui.setMode(Mode.MESSAGE); + this.scene.ui.fadeIn(250).then(() => { this.scene.ui.showText(`You received\n${newModifier.type.name}!`, null, () => { this.scene.time.delayedCall(1500, () => this.scene.arenaBg.setVisible(true)); resolve(); }, null, true, 1500); + }); }); }) } From bfa12fd48dd17171917fc907ba62ee9356263adc Mon Sep 17 00:00:00 2001 From: Calvin Keats Date: Fri, 17 May 2024 06:54:51 -0500 Subject: [PATCH 15/32] Update ETHER and similar items to use total max PP instead of base PP (#1014) --- src/modifier/modifier-type.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 50bf2f78a0c..1e21af58564 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -1194,11 +1194,11 @@ const modifierPool: ModifierPool = { return thresholdPartyMemberCount; }, 3), new WeightedModifierType(modifierTypes.ETHER, (party: Pokemon[]) => { - const thresholdPartyMemberCount = Math.min(party.filter(p => p.hp && p.getMoveset().filter(m => (m.getMove().pp - m.ppUsed) <= 5).length).length, 3); + const thresholdPartyMemberCount = Math.min(party.filter(p => p.hp && p.getMoveset().filter(m => (m.getMovePp() - m.ppUsed) <= 5).length).length, 3); return thresholdPartyMemberCount * 3; }, 9), new WeightedModifierType(modifierTypes.MAX_ETHER, (party: Pokemon[]) => { - const thresholdPartyMemberCount = Math.min(party.filter(p => p.hp && p.getMoveset().filter(m => (m.getMove().pp - m.ppUsed) <= 5).length).length, 3); + const thresholdPartyMemberCount = Math.min(party.filter(p => p.hp && p.getMoveset().filter(m => (m.getMovePp() - m.ppUsed) <= 5).length).length, 3); return thresholdPartyMemberCount; }, 3), new WeightedModifierType(modifierTypes.LURE, 2), @@ -1237,11 +1237,11 @@ const modifierPool: ModifierPool = { return thresholdPartyMemberCount; }, 3), new WeightedModifierType(modifierTypes.ELIXIR, (party: Pokemon[]) => { - const thresholdPartyMemberCount = Math.min(party.filter(p => p.hp && p.getMoveset().filter(m => (m.getMove().pp - m.ppUsed) <= 5).length).length, 3); + const thresholdPartyMemberCount = Math.min(party.filter(p => p.hp && p.getMoveset().filter(m => (m.getMovePp() - m.ppUsed) <= 5).length).length, 3); return thresholdPartyMemberCount * 3; }, 9), new WeightedModifierType(modifierTypes.MAX_ELIXIR, (party: Pokemon[]) => { - const thresholdPartyMemberCount = Math.min(party.filter(p => p.hp && p.getMoveset().filter(m => (m.getMove().pp - m.ppUsed) <= 5).length).length, 3); + const thresholdPartyMemberCount = Math.min(party.filter(p => p.hp && p.getMoveset().filter(m => (m.getMovePp() - m.ppUsed) <= 5).length).length, 3); return thresholdPartyMemberCount; }, 3), new WeightedModifierType(modifierTypes.DIRE_HIT, 4), From 03c4b1b821849771e19c6eb4698ed57000ba5b3f Mon Sep 17 00:00:00 2001 From: Brandon Rodgers Date: Fri, 17 May 2024 09:49:04 -0400 Subject: [PATCH 16/32] Update battler-tags.ts (#1030) Corrected the TrappedTag class so no Ghosts can be trapped Added special canAdd function to IngrainTag so all Ghosts can use Ingrain not just Trevenant and Phantump. --- src/data/battler-tags.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/data/battler-tags.ts b/src/data/battler-tags.ts index 6ab249864cd..4c3f09cab30 100644 --- a/src/data/battler-tags.ts +++ b/src/data/battler-tags.ts @@ -15,7 +15,6 @@ import { TerrainType } from "./terrain"; import { WeatherType } from "./weather"; import { BattleStat } from "./battle-stat"; import { allAbilities } from "./ability"; -import { Species } from "./enums/species"; export enum BattlerTagLapseType { FAINT, @@ -120,9 +119,8 @@ export class TrappedTag extends BattlerTag { canAdd(pokemon: Pokemon): boolean { const isGhost = pokemon.isOfType(Type.GHOST); const isTrapped = pokemon.getTag(BattlerTagType.TRAPPED); - const isAllowedGhostType = pokemon.species.speciesId === Species.PHANTUMP || pokemon.species.speciesId === Species.TREVENANT; - return !isTrapped && (!isGhost || isAllowedGhostType); + return !isTrapped && !isGhost; } onAdd(pokemon: Pokemon): void { @@ -503,11 +501,26 @@ export class HelpingHandTag extends BattlerTag { } } +/** + * Applies the Ingrain tag to a pokemon + * @extends TrappedTag + */ export class IngrainTag extends TrappedTag { constructor(sourceId: integer) { super(BattlerTagType.INGRAIN, BattlerTagLapseType.TURN_END, 1, Moves.INGRAIN, sourceId); } + /** + * Check if the Ingrain tag can be added to the pokemon + * @param pokemon {@linkcode Pokemon} The pokemon to check if the tag can be added to + * @returns boolean True if the tag can be added, false otherwise + */ + canAdd(pokemon: Pokemon): boolean { + const isTrapped = pokemon.getTag(BattlerTagType.TRAPPED); + + return !isTrapped; + } + lapse(pokemon: Pokemon, lapseType: BattlerTagLapseType): boolean { const ret = lapseType !== BattlerTagLapseType.CUSTOM || super.lapse(pokemon, lapseType); From 3cc9c93643a496f35e9333a43b5776e4f4d27531 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Fri, 17 May 2024 11:43:11 -0300 Subject: [PATCH 17/32] Type localization instead of TeraType (#981) * Type localization, now type-boosting items descriptions are fully translated * pokemon-stat refactoration * reverted import changes --- src/data/pokemon-stat.ts | 12 ++++----- src/locales/de/config.ts | 4 +-- src/locales/de/modifier-type.ts | 22 ---------------- src/locales/de/pokemon-info.ts | 41 ++++++++++++++++++++++++++++++ src/locales/de/pokemon-stat.ts | 16 ------------ src/locales/en/config.ts | 4 +-- src/locales/en/modifier-type.ts | 22 ---------------- src/locales/en/pokemon-info.ts | 41 ++++++++++++++++++++++++++++++ src/locales/en/pokemon-stat.ts | 16 ------------ src/locales/es/config.ts | 4 +-- src/locales/es/modifier-type.ts | 22 ---------------- src/locales/es/pokemon-info.ts | 41 ++++++++++++++++++++++++++++++ src/locales/es/pokemon-stat.ts | 16 ------------ src/locales/fr/config.ts | 4 +-- src/locales/fr/modifier-type.ts | 22 ---------------- src/locales/fr/pokemon-info.ts | 41 ++++++++++++++++++++++++++++++ src/locales/fr/pokemon-stat.ts | 16 ------------ src/locales/it/config.ts | 4 +-- src/locales/it/modifier-type.ts | 22 ---------------- src/locales/it/pokemon-info.ts | 41 ++++++++++++++++++++++++++++++ src/locales/it/pokemon-stat.ts | 16 ------------ src/locales/pt_BR/config.ts | 4 +-- src/locales/pt_BR/modifier-type.ts | 22 ---------------- src/locales/pt_BR/pokemon-info.ts | 41 ++++++++++++++++++++++++++++++ src/locales/pt_BR/pokemon-stat.ts | 16 ------------ src/locales/zh_CN/config.ts | 4 +-- src/locales/zh_CN/modifier-type.ts | 22 ---------------- src/locales/zh_CN/pokemon-info.ts | 41 ++++++++++++++++++++++++++++++ src/locales/zh_CN/pokemon-stat.ts | 16 ------------ src/modifier/modifier-type.ts | 6 ++--- src/plugins/i18n.ts | 7 +++-- 31 files changed, 315 insertions(+), 291 deletions(-) create mode 100644 src/locales/de/pokemon-info.ts delete mode 100644 src/locales/de/pokemon-stat.ts create mode 100644 src/locales/en/pokemon-info.ts delete mode 100644 src/locales/en/pokemon-stat.ts create mode 100644 src/locales/es/pokemon-info.ts delete mode 100644 src/locales/es/pokemon-stat.ts create mode 100644 src/locales/fr/pokemon-info.ts delete mode 100644 src/locales/fr/pokemon-stat.ts create mode 100644 src/locales/it/pokemon-info.ts delete mode 100644 src/locales/it/pokemon-stat.ts create mode 100644 src/locales/pt_BR/pokemon-info.ts delete mode 100644 src/locales/pt_BR/pokemon-stat.ts create mode 100644 src/locales/zh_CN/pokemon-info.ts delete mode 100644 src/locales/zh_CN/pokemon-stat.ts diff --git a/src/data/pokemon-stat.ts b/src/data/pokemon-stat.ts index b22eaefe876..94e710c981b 100644 --- a/src/data/pokemon-stat.ts +++ b/src/data/pokemon-stat.ts @@ -13,22 +13,22 @@ export function getStatName(stat: Stat, shorten: boolean = false) { let ret: string; switch (stat) { case Stat.HP: - ret = !shorten ? i18next.t('pokemonStat:HP') : i18next.t('pokemonStat:HPshortened'); + ret = !shorten ? i18next.t('pokemonInfo:Stat.HP') : i18next.t('pokemonInfo:Stat.HPshortened'); break; case Stat.ATK: - ret = !shorten ? i18next.t('pokemonStat:ATK') : i18next.t('pokemonStat:ATKshortened'); + ret = !shorten ? i18next.t('pokemonInfo:Stat.ATK') : i18next.t('pokemonInfo:Stat.ATKshortened'); break; case Stat.DEF: - ret = !shorten ? i18next.t('pokemonStat:DEF') : i18next.t('pokemonStat:DEFshortened'); + ret = !shorten ? i18next.t('pokemonInfo:Stat.DEF') : i18next.t('pokemonInfo:Stat.DEFshortened'); break; case Stat.SPATK: - ret = !shorten ? i18next.t('pokemonStat:SPATK') : i18next.t('pokemonStat:SPATKshortened'); + ret = !shorten ? i18next.t('pokemonInfo:Stat.SPATK') : i18next.t('pokemonInfo:Stat.SPATKshortened'); break; case Stat.SPDEF: - ret = !shorten ? i18next.t('pokemonStat:SPDEF') : i18next.t('pokemonStat:SPDEFshortened'); + ret = !shorten ? i18next.t('pokemonInfo:Stat.SPDEF') : i18next.t('pokemonInfo:Stat.SPDEFshortened'); break; case Stat.SPD: - ret = !shorten ? i18next.t('pokemonStat:SPD') : i18next.t('pokemonStat:SPDshortened'); + ret = !shorten ? i18next.t('pokemonInfo:Stat.SPD') : i18next.t('pokemonInfo:Stat.SPDshortened'); break; } return ret; diff --git a/src/locales/de/config.ts b/src/locales/de/config.ts index 7aeeeb7a925..af52d8bc51b 100644 --- a/src/locales/de/config.ts +++ b/src/locales/de/config.ts @@ -12,7 +12,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; -import { pokemonStat } from "./pokemon-stat"; +import { pokemonInfo } from "./pokemon-info"; import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; @@ -36,7 +36,7 @@ export const deConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, - pokemonStat: pokemonStat, + pokemonInfo: pokemonInfo, splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, diff --git a/src/locales/de/modifier-type.ts b/src/locales/de/modifier-type.ts index dea1421ac20..95346548c44 100644 --- a/src/locales/de/modifier-type.ts +++ b/src/locales/de/modifier-type.ts @@ -385,26 +385,4 @@ export const modifierType: ModifierTypeTranslationEntries = { "CHILL_DRIVE": "Gefriermodul", "DOUSE_DRIVE": "Aquamodul", }, - TeraType: { - "UNKNOWN": "Unbekannt", - "NORMAL": "Normal", - "FIGHTING": "Kampf", - "FLYING": "Flug", - "POISON": "Gift", - "GROUND": "Boden", - "ROCK": "Gestein", - "BUG": "Käfer", - "GHOST": "Geist", - "STEEL": "Stahl", - "FIRE": "Feuer", - "WATER": "Wasser", - "GRASS": "Pflanze", - "ELECTRIC": "Elektro", - "PSYCHIC": "Psycho", - "ICE": "Eis", - "DRAGON": "Drache", - "DARK": "Unlicht", - "FAIRY": "Fee", - "STELLAR": "Stellar", - }, } as const; \ No newline at end of file diff --git a/src/locales/de/pokemon-info.ts b/src/locales/de/pokemon-info.ts new file mode 100644 index 00000000000..772a09cb656 --- /dev/null +++ b/src/locales/de/pokemon-info.ts @@ -0,0 +1,41 @@ +import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; + +export const pokemonInfo: PokemonInfoTranslationEntries = { + Stat: { + "HP": "Max. KP", + "HPshortened": "MaxKP", + "ATK": "Angriff", + "ATKshortened": "Ang", + "DEF": "Verteidigung", + "DEFshortened": "Vert", + "SPATK": "Sp. Ang", + "SPATKshortened": "SpAng", + "SPDEF": "Sp. Vert", + "SPDEFshortened": "SpVert", + "SPD": "Initiative", + "SPDshortened": "Init", + }, + + Type: { + "UNKNOWN": "Unbekannt", + "NORMAL": "Normal", + "FIGHTING": "Kampf", + "FLYING": "Flug", + "POISON": "Gift", + "GROUND": "Boden", + "ROCK": "Gestein", + "BUG": "Käfer", + "GHOST": "Geist", + "STEEL": "Stahl", + "FIRE": "Feuer", + "WATER": "Wasser", + "GRASS": "Pflanze", + "ELECTRIC": "Elektro", + "PSYCHIC": "Psycho", + "ICE": "Eis", + "DRAGON": "Drache", + "DARK": "Unlicht", + "FAIRY": "Fee", + "STELLAR": "Stellar", + }, +} as const; \ No newline at end of file diff --git a/src/locales/de/pokemon-stat.ts b/src/locales/de/pokemon-stat.ts deleted file mode 100644 index 531b5022b68..00000000000 --- a/src/locales/de/pokemon-stat.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const pokemonStat: SimpleTranslationEntries = { - "HP": "Max. KP", - "HPshortened": "MaxKP", - "ATK": "Angriff", - "ATKshortened": "Ang", - "DEF": "Verteidigung", - "DEFshortened": "Vert", - "SPATK": "Sp. Ang", - "SPATKshortened": "SpAng", - "SPDEF": "Sp. Vert", - "SPDEFshortened": "SpVert", - "SPD": "Initiative", - "SPDshortened": "Init" -} as const; \ No newline at end of file diff --git a/src/locales/en/config.ts b/src/locales/en/config.ts index 6b23d2f2983..984b0fa239f 100644 --- a/src/locales/en/config.ts +++ b/src/locales/en/config.ts @@ -12,7 +12,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; -import { pokemonStat } from "./pokemon-stat"; +import { pokemonInfo } from "./pokemon-info"; import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; @@ -36,7 +36,7 @@ export const enConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, - pokemonStat: pokemonStat, + pokemonInfo: pokemonInfo, splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, diff --git a/src/locales/en/modifier-type.ts b/src/locales/en/modifier-type.ts index 043d7a705d5..31d4abbce29 100644 --- a/src/locales/en/modifier-type.ts +++ b/src/locales/en/modifier-type.ts @@ -384,26 +384,4 @@ export const modifierType: ModifierTypeTranslationEntries = { "CHILL_DRIVE": "Chill Drive", "DOUSE_DRIVE": "Douse Drive", }, - TeraType: { - "UNKNOWN": "Unknown", - "NORMAL": "Normal", - "FIGHTING": "Fighting", - "FLYING": "Flying", - "POISON": "Poison", - "GROUND": "Ground", - "ROCK": "Rock", - "BUG": "Bug", - "GHOST": "Ghost", - "STEEL": "Steel", - "FIRE": "Fire", - "WATER": "Water", - "GRASS": "Grass", - "ELECTRIC": "Electric", - "PSYCHIC": "Psychic", - "ICE": "Ice", - "DRAGON": "Dragon", - "DARK": "Dark", - "FAIRY": "Fairy", - "STELLAR": "Stellar", - }, } as const; \ No newline at end of file diff --git a/src/locales/en/pokemon-info.ts b/src/locales/en/pokemon-info.ts new file mode 100644 index 00000000000..2c7ee78f07a --- /dev/null +++ b/src/locales/en/pokemon-info.ts @@ -0,0 +1,41 @@ +import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; + +export const pokemonInfo: PokemonInfoTranslationEntries = { + Stat: { + "HP": "Max. HP", + "HPshortened": "MaxHP", + "ATK": "Attack", + "ATKshortened": "Atk", + "DEF": "Defense", + "DEFshortened": "Def", + "SPATK": "Sp. Atk", + "SPATKshortened": "SpAtk", + "SPDEF": "Sp. Def", + "SPDEFshortened": "SpDef", + "SPD": "Speed", + "SPDshortened": "Spd" + }, + + Type: { + "UNKNOWN": "Unknown", + "NORMAL": "Normal", + "FIGHTING": "Fighting", + "FLYING": "Flying", + "POISON": "Poison", + "GROUND": "Ground", + "ROCK": "Rock", + "BUG": "Bug", + "GHOST": "Ghost", + "STEEL": "Steel", + "FIRE": "Fire", + "WATER": "Water", + "GRASS": "Grass", + "ELECTRIC": "Electric", + "PSYCHIC": "Psychic", + "ICE": "Ice", + "DRAGON": "Dragon", + "DARK": "Dark", + "FAIRY": "Fairy", + "STELLAR": "Stellar", + }, +} as const; \ No newline at end of file diff --git a/src/locales/en/pokemon-stat.ts b/src/locales/en/pokemon-stat.ts deleted file mode 100644 index 7a209461b11..00000000000 --- a/src/locales/en/pokemon-stat.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const pokemonStat: SimpleTranslationEntries = { - "HP": "Max. HP", - "HPshortened": "MaxHP", - "ATK": "Attack", - "ATKshortened": "Atk", - "DEF": "Defense", - "DEFshortened": "Def", - "SPATK": "Sp. Atk", - "SPATKshortened": "SpAtk", - "SPDEF": "Sp. Def", - "SPDEFshortened": "SpDef", - "SPD": "Speed", - "SPDshortened": "Spd" -} as const; \ No newline at end of file diff --git a/src/locales/es/config.ts b/src/locales/es/config.ts index a3b06982d33..92349028899 100644 --- a/src/locales/es/config.ts +++ b/src/locales/es/config.ts @@ -12,7 +12,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; -import { pokemonStat } from "./pokemon-stat"; +import { pokemonInfo } from "./pokemon-info"; import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; @@ -36,7 +36,7 @@ export const esConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, - pokemonStat: pokemonStat, + pokemonInfo: pokemonInfo, splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, diff --git a/src/locales/es/modifier-type.ts b/src/locales/es/modifier-type.ts index 043d7a705d5..31d4abbce29 100644 --- a/src/locales/es/modifier-type.ts +++ b/src/locales/es/modifier-type.ts @@ -384,26 +384,4 @@ export const modifierType: ModifierTypeTranslationEntries = { "CHILL_DRIVE": "Chill Drive", "DOUSE_DRIVE": "Douse Drive", }, - TeraType: { - "UNKNOWN": "Unknown", - "NORMAL": "Normal", - "FIGHTING": "Fighting", - "FLYING": "Flying", - "POISON": "Poison", - "GROUND": "Ground", - "ROCK": "Rock", - "BUG": "Bug", - "GHOST": "Ghost", - "STEEL": "Steel", - "FIRE": "Fire", - "WATER": "Water", - "GRASS": "Grass", - "ELECTRIC": "Electric", - "PSYCHIC": "Psychic", - "ICE": "Ice", - "DRAGON": "Dragon", - "DARK": "Dark", - "FAIRY": "Fairy", - "STELLAR": "Stellar", - }, } as const; \ No newline at end of file diff --git a/src/locales/es/pokemon-info.ts b/src/locales/es/pokemon-info.ts new file mode 100644 index 00000000000..fabc7220f3c --- /dev/null +++ b/src/locales/es/pokemon-info.ts @@ -0,0 +1,41 @@ +import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; + +export const pokemonInfo: PokemonInfoTranslationEntries = { + Stat: { + "HP": "PV", + "HPshortened": "PV", + "ATK": "Ataque", + "ATKshortened": "Ata", + "DEF": "Defensa", + "DEFshortened": "Def", + "SPATK": "At. Esp.", + "SPATKshortened": "AtEsp", + "SPDEF": "Def. Esp.", + "SPDEFshortened": "DefEsp", + "SPD": "Velocidad", + "SPDshortened": "Veloc." + }, + + Type: { + "UNKNOWN": "Unknown", + "NORMAL": "Normal", + "FIGHTING": "Fighting", + "FLYING": "Flying", + "POISON": "Poison", + "GROUND": "Ground", + "ROCK": "Rock", + "BUG": "Bug", + "GHOST": "Ghost", + "STEEL": "Steel", + "FIRE": "Fire", + "WATER": "Water", + "GRASS": "Grass", + "ELECTRIC": "Electric", + "PSYCHIC": "Psychic", + "ICE": "Ice", + "DRAGON": "Dragon", + "DARK": "Dark", + "FAIRY": "Fairy", + "STELLAR": "Stellar", + }, +} as const; \ No newline at end of file diff --git a/src/locales/es/pokemon-stat.ts b/src/locales/es/pokemon-stat.ts deleted file mode 100644 index 514ef19891b..00000000000 --- a/src/locales/es/pokemon-stat.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const pokemonStat: SimpleTranslationEntries = { - "HP": "PV", - "HPshortened": "PV", - "ATK": "Ataque", - "ATKshortened": "Ata", - "DEF": "Defensa", - "DEFshortened": "Def", - "SPATK": "At. Esp.", - "SPATKshortened": "AtEsp", - "SPDEF": "Def. Esp.", - "SPDEFshortened": "DefEsp", - "SPD": "Velocidad", - "SPDshortened": "Veloc." -} as const; \ No newline at end of file diff --git a/src/locales/fr/config.ts b/src/locales/fr/config.ts index 867a08621bb..ecec8de6cb0 100644 --- a/src/locales/fr/config.ts +++ b/src/locales/fr/config.ts @@ -12,7 +12,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; -import { pokemonStat } from "./pokemon-stat"; +import { pokemonInfo } from "./pokemon-info"; import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; @@ -36,7 +36,7 @@ export const frConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, - pokemonStat: pokemonStat, + pokemonInfo: pokemonInfo, splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, diff --git a/src/locales/fr/modifier-type.ts b/src/locales/fr/modifier-type.ts index 95daf50f9b1..f8697c04259 100644 --- a/src/locales/fr/modifier-type.ts +++ b/src/locales/fr/modifier-type.ts @@ -384,26 +384,4 @@ export const modifierType: ModifierTypeTranslationEntries = { "CHILL_DRIVE": "Module Aqua", "DOUSE_DRIVE": "Module Choc", }, - TeraType: { - "UNKNOWN": "Inconnu", - "NORMAL": "Normal", - "FIGHTING": "Combat", - "FLYING": "Vol", - "POISON": "Poison", - "GROUND": "Sol", - "ROCK": "Roche", - "BUG": "Insecte", - "GHOST": "Spectre", - "STEEL": "Acier", - "FIRE": "Feu", - "WATER": "Eau", - "GRASS": "Plante", - "ELECTRIC": "Électrik", - "PSYCHIC": "Psy", - "ICE": "Glace", - "DRAGON": "Dragon", - "DARK": "Ténèbres", - "FAIRY": "Fée", - "STELLAR": "Stellaire", - }, } as const; diff --git a/src/locales/fr/pokemon-info.ts b/src/locales/fr/pokemon-info.ts new file mode 100644 index 00000000000..0c246bd96a4 --- /dev/null +++ b/src/locales/fr/pokemon-info.ts @@ -0,0 +1,41 @@ +import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; + +export const pokemonInfo: PokemonInfoTranslationEntries = { + Stat: { + "HP": "PV", + "HPshortened": "PV", + "ATK": "Attaque", + "ATKshortened": "Atq", + "DEF": "Défense", + "DEFshortened": "Déf", + "SPATK": "Atq. Spé.", + "SPATKshortened": "AtqSp", + "SPDEF": "Déf. Spé.", + "SPDEFshortened": "DéfSp", + "SPD": "Vitesse", + "SPDshortened": "Vit" + }, + + Type: { + "UNKNOWN": "Inconnu", + "NORMAL": "Normal", + "FIGHTING": "Combat", + "FLYING": "Vol", + "POISON": "Poison", + "GROUND": "Sol", + "ROCK": "Roche", + "BUG": "Insecte", + "GHOST": "Spectre", + "STEEL": "Acier", + "FIRE": "Feu", + "WATER": "Eau", + "GRASS": "Plante", + "ELECTRIC": "Électrik", + "PSYCHIC": "Psy", + "ICE": "Glace", + "DRAGON": "Dragon", + "DARK": "Ténèbres", + "FAIRY": "Fée", + "STELLAR": "Stellaire", + }, +} as const; diff --git a/src/locales/fr/pokemon-stat.ts b/src/locales/fr/pokemon-stat.ts deleted file mode 100644 index 62aa97fc1fd..00000000000 --- a/src/locales/fr/pokemon-stat.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const pokemonStat: SimpleTranslationEntries = { - "HP": "PV", - "HPshortened": "PV", - "ATK": "Attaque", - "ATKshortened": "Atq", - "DEF": "Défense", - "DEFshortened": "Déf", - "SPATK": "Atq. Spé.", - "SPATKshortened": "AtqSp", - "SPDEF": "Déf. Spé.", - "SPDEFshortened": "DéfSp", - "SPD": "Vitesse", - "SPDshortened": "Vit" -} as const; diff --git a/src/locales/it/config.ts b/src/locales/it/config.ts index 89d78304120..a9c80dc673d 100644 --- a/src/locales/it/config.ts +++ b/src/locales/it/config.ts @@ -12,7 +12,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; -import { pokemonStat } from "./pokemon-stat"; +import { pokemonInfo } from "./pokemon-info"; import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; @@ -36,7 +36,7 @@ export const itConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, - pokemonStat: pokemonStat, + pokemonInfo: pokemonInfo, splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, diff --git a/src/locales/it/modifier-type.ts b/src/locales/it/modifier-type.ts index 7f342309acf..87deece71fe 100644 --- a/src/locales/it/modifier-type.ts +++ b/src/locales/it/modifier-type.ts @@ -384,26 +384,4 @@ export const modifierType: ModifierTypeTranslationEntries = { "CHILL_DRIVE": "Gelomodulo", "DOUSE_DRIVE": "Idromodulo", }, - TeraType: { - "UNKNOWN": "Sconosciuto", - "NORMAL": "Normale", - "FIGHTING": "Lotta", - "FLYING": "Volante", - "POISON": "Veleno", - "GROUND": "Terra", - "ROCK": "Roccia", - "BUG": "Coleottero", - "GHOST": "Spettro", - "STEEL": "Acciaio", - "FIRE": "Fuoco", - "WATER": "Acqua", - "GRASS": "Erba", - "ELECTRIC": "Elettro", - "PSYCHIC": "Psico", - "ICE": "Ghiaccio", - "DRAGON": "Drago", - "DARK": "Buio", - "FAIRY": "Folletto", - "STELLAR": "Astrale", - }, } as const; \ No newline at end of file diff --git a/src/locales/it/pokemon-info.ts b/src/locales/it/pokemon-info.ts new file mode 100644 index 00000000000..617b2157da2 --- /dev/null +++ b/src/locales/it/pokemon-info.ts @@ -0,0 +1,41 @@ +import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; + +export const pokemonInfo: PokemonInfoTranslationEntries = { + Stat: { + "HP": "PS Max", + "HPshortened": "PS", + "ATK": "Attacco", + "ATKshortened": "Att", + "DEF": "Difesa", + "DEFshortened": "Dif", + "SPATK": "Att. Sp.", + "SPATKshortened": "AttSp", + "SPDEF": "Dif. Sp.", + "SPDEFshortened": "DifSp", + "SPD": "Velocità", + "SPDshortened": "Vel" + }, + + Type: { + "UNKNOWN": "Sconosciuto", + "NORMAL": "Normale", + "FIGHTING": "Lotta", + "FLYING": "Volante", + "POISON": "Veleno", + "GROUND": "Terra", + "ROCK": "Roccia", + "BUG": "Coleottero", + "GHOST": "Spettro", + "STEEL": "Acciaio", + "FIRE": "Fuoco", + "WATER": "Acqua", + "GRASS": "Erba", + "ELECTRIC": "Elettro", + "PSYCHIC": "Psico", + "ICE": "Ghiaccio", + "DRAGON": "Drago", + "DARK": "Buio", + "FAIRY": "Folletto", + "STELLAR": "Astrale", + }, +} as const; diff --git a/src/locales/it/pokemon-stat.ts b/src/locales/it/pokemon-stat.ts deleted file mode 100644 index b2c023aa383..00000000000 --- a/src/locales/it/pokemon-stat.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const pokemonStat: SimpleTranslationEntries = { - "HP": "PS Max", - "HPshortened": "PS", - "ATK": "Attacco", - "ATKshortened": "Att", - "DEF": "Difesa", - "DEFshortened": "Dif", - "SPATK": "Att. Sp.", - "SPATKshortened": "AttSp", - "SPDEF": "Dif. Sp.", - "SPDEFshortened": "DifSp", - "SPD": "Velocità", - "SPDshortened": "Vel" -} as const; diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 157df19a80b..29d3c8b4195 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -10,7 +10,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; -import { pokemonStat } from "./pokemon-stat"; +import { pokemonInfo } from "./pokemon-info"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; @@ -26,7 +26,7 @@ export const ptBrConfig = { menu: menu, move: move, pokeball: pokeball, - pokemonStat: pokemonStat, + pokemonInfo: pokemonInfo, pokemon: pokemon, starterSelectUiHandler: starterSelectUiHandler, tutorial: tutorial, diff --git a/src/locales/pt_BR/modifier-type.ts b/src/locales/pt_BR/modifier-type.ts index 043d7a705d5..31d4abbce29 100644 --- a/src/locales/pt_BR/modifier-type.ts +++ b/src/locales/pt_BR/modifier-type.ts @@ -384,26 +384,4 @@ export const modifierType: ModifierTypeTranslationEntries = { "CHILL_DRIVE": "Chill Drive", "DOUSE_DRIVE": "Douse Drive", }, - TeraType: { - "UNKNOWN": "Unknown", - "NORMAL": "Normal", - "FIGHTING": "Fighting", - "FLYING": "Flying", - "POISON": "Poison", - "GROUND": "Ground", - "ROCK": "Rock", - "BUG": "Bug", - "GHOST": "Ghost", - "STEEL": "Steel", - "FIRE": "Fire", - "WATER": "Water", - "GRASS": "Grass", - "ELECTRIC": "Electric", - "PSYCHIC": "Psychic", - "ICE": "Ice", - "DRAGON": "Dragon", - "DARK": "Dark", - "FAIRY": "Fairy", - "STELLAR": "Stellar", - }, } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/pokemon-info.ts b/src/locales/pt_BR/pokemon-info.ts new file mode 100644 index 00000000000..99cef266c6f --- /dev/null +++ b/src/locales/pt_BR/pokemon-info.ts @@ -0,0 +1,41 @@ +import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; + +export const pokemonInfo: PokemonInfoTranslationEntries = { + Stat: { + "HP": "PS", + "HPshortened": "PS", + "ATK": "Ataque", + "ATKshortened": "Ata", + "DEF": "Defesa", + "DEFshortened": "Def", + "SPATK": "At. Esp.", + "SPATKshortened": "AtEsp", + "SPDEF": "Def. Esp.", + "SPDEFshortened": "DefEsp", + "SPD": "Veloc.", + "SPDshortened": "Veloc." + }, + + Type: { + "UNKNOWN": "Desconhecido", + "NORMAL": "Normal", + "FIGHTING": "Lutador", + "FLYING": "Voador", + "POISON": "Veneno", + "GROUND": "Terra", + "ROCK": "Pedra", + "BUG": "Inseto", + "GHOST": "Fantasma", + "STEEL": "Aço", + "FIRE": "Fogo", + "WATER": "Água", + "GRASS": "Grama", + "ELECTRIC": "Elétrico", + "PSYCHIC": "Psíquico", + "ICE": "Gelo", + "DRAGON": "Dragão", + "DARK": "Sombrio", + "FAIRY": "Fada", + "STELLAR": "Estelar" + }, +} as const; \ No newline at end of file diff --git a/src/locales/pt_BR/pokemon-stat.ts b/src/locales/pt_BR/pokemon-stat.ts deleted file mode 100644 index 5f5e2c23584..00000000000 --- a/src/locales/pt_BR/pokemon-stat.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const pokemonStat: SimpleTranslationEntries = { - "HP": "PS", - "HPshortened": "PS", - "ATK": "Ataque", - "ATKshortened": "Ata", - "DEF": "Defesa", - "DEFshortened": "Def", - "SPATK": "At. Esp.", - "SPATKshortened": "AtEsp", - "SPDEF": "Def. Esp.", - "SPDEFshortened": "DefEsp", - "SPD": "Veloc.", - "SPDshortened": "Veloc." -} as const; \ No newline at end of file diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index 9c3a62f59f0..cfdc7ab0d18 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -12,7 +12,7 @@ import { move } from "./move"; import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; -import { pokemonStat } from "./pokemon-stat"; +import { pokemonInfo } from "./pokemon-info"; // import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; import { titles, trainerClasses, trainerNames } from "./trainers"; @@ -36,7 +36,7 @@ export const zhCnConfig = { nature: nature, pokeball: pokeball, pokemon: pokemon, - pokemonStat: pokemonStat, + pokemonInfo: pokemonInfo, // splashMessages: splashMessages, starterSelectUiHandler: starterSelectUiHandler, titles: titles, diff --git a/src/locales/zh_CN/modifier-type.ts b/src/locales/zh_CN/modifier-type.ts index 80ddc1f92dd..9555eb3ce7d 100644 --- a/src/locales/zh_CN/modifier-type.ts +++ b/src/locales/zh_CN/modifier-type.ts @@ -384,26 +384,4 @@ export const modifierType: ModifierTypeTranslationEntries = { "CHILL_DRIVE": "冰冻卡带", "DOUSE_DRIVE": "水流卡带", }, - TeraType: { - "UNKNOWN": "Unknown", - "NORMAL": "一般", - "FIGHTING": "格斗", - "FLYING": "飞行", - "POISON": "毒", - "GROUND": "地面", - "ROCK": "岩石", - "BUG": "虫", - "GHOST": "幽灵", - "STEEL": "钢", - "FIRE": "火", - "WATER": "水", - "GRASS": "草", - "ELECTRIC": "电", - "PSYCHIC": "超能力", - "ICE": "冰", - "DRAGON": "龙", - "DARK": "恶", - "FAIRY": "妖精", - "STELLAR": "星晶", - }, } as const; \ No newline at end of file diff --git a/src/locales/zh_CN/pokemon-info.ts b/src/locales/zh_CN/pokemon-info.ts new file mode 100644 index 00000000000..d99d8edfd76 --- /dev/null +++ b/src/locales/zh_CN/pokemon-info.ts @@ -0,0 +1,41 @@ +import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; + +export const pokemonInfo: PokemonInfoTranslationEntries = { + Stat: { + "HP": "最大HP", + "HPshortened": "最大HP", + "ATK": "攻击", + "ATKshortened": "攻击", + "DEF": "防御", + "DEFshortened": "防御", + "SPATK": "特攻", + "SPATKshortened": "特攻", + "SPDEF": "特防", + "SPDEFshortened": "特防", + "SPD": "速度", + "SPDshortened": "速度" + }, + + Type: { + "UNKNOWN": "Unknown", + "NORMAL": "一般", + "FIGHTING": "格斗", + "FLYING": "飞行", + "POISON": "毒", + "GROUND": "地面", + "ROCK": "岩石", + "BUG": "虫", + "GHOST": "幽灵", + "STEEL": "钢", + "FIRE": "火", + "WATER": "水", + "GRASS": "草", + "ELECTRIC": "电", + "PSYCHIC": "超能力", + "ICE": "冰", + "DRAGON": "龙", + "DARK": "恶", + "FAIRY": "妖精", + "STELLAR": "星晶", + }, +} as const; \ No newline at end of file diff --git a/src/locales/zh_CN/pokemon-stat.ts b/src/locales/zh_CN/pokemon-stat.ts deleted file mode 100644 index d30922c46a0..00000000000 --- a/src/locales/zh_CN/pokemon-stat.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const pokemonStat: SimpleTranslationEntries = { - "HP": "最大HP", - "HPshortened": "最大HP", - "ATK": "攻击", - "ATKshortened": "攻击", - "DEF": "防御", - "DEFshortened": "防御", - "SPATK": "特攻", - "SPATKshortened": "特攻", - "SPDEF": "特防", - "SPDEFshortened": "特防", - "SPD": "速度", - "SPDshortened": "速度" -} as const; \ No newline at end of file diff --git a/src/modifier/modifier-type.ts b/src/modifier/modifier-type.ts index 1e21af58564..278de2f18e8 100644 --- a/src/modifier/modifier-type.ts +++ b/src/modifier/modifier-type.ts @@ -511,7 +511,7 @@ export class AttackTypeBoosterModifierType extends PokemonHeldItemModifierType i getDescription(scene: BattleScene): string { // TODO: Need getTypeName? - return i18next.t(`modifierType:ModifierType.AttackTypeBoosterModifierType.description`, { moveType: Utils.toReadableString(Type[this.moveType]) }); + return i18next.t(`modifierType:ModifierType.AttackTypeBoosterModifierType.description`, { moveType: i18next.t(`pokemonInfo:Type.${Type[this.moveType]}`) }); } getPregenArgs(): any[] { @@ -898,11 +898,11 @@ export class TerastallizeModifierType extends PokemonHeldItemModifierType implem } get name(): string { - return i18next.t(`modifierType:ModifierType.TerastallizeModifierType.name`, { teraType: i18next.t(`modifierType:TeraType.${Type[this.teraType]}`) }); + return i18next.t(`modifierType:ModifierType.TerastallizeModifierType.name`, { teraType: i18next.t(`pokemonInfo:Type.${Type[this.teraType]}`) }); } getDescription(scene: BattleScene): string { - return i18next.t(`modifierType:ModifierType.TerastallizeModifierType.description`, { teraType: i18next.t(`modifierType:TeraType.${Type[this.teraType]}`) }); + return i18next.t(`modifierType:ModifierType.TerastallizeModifierType.description`, { teraType: i18next.t(`pokemonInfo:Type.${Type[this.teraType]}`) }); } getPregenArgs(): any[] { diff --git a/src/plugins/i18n.ts b/src/plugins/i18n.ts index 5c9de28fe82..790a3c729c8 100644 --- a/src/plugins/i18n.ts +++ b/src/plugins/i18n.ts @@ -43,7 +43,10 @@ export interface ModifierTypeTranslationEntries { BaseStatBoosterItem: SimpleTranslationEntries, EvolutionItem: SimpleTranslationEntries, FormChangeItem: SimpleTranslationEntries, - TeraType: SimpleTranslationEntries, +} +export interface PokemonInfoTranslationEntries { + Stat: SimpleTranslationEntries, + Type: SimpleTranslationEntries, } export interface BerryTranslationEntry { @@ -134,7 +137,7 @@ declare module 'i18next' { ability: AbilityTranslationEntries; pokeball: SimpleTranslationEntries; pokemon: SimpleTranslationEntries; - pokemonStat: SimpleTranslationEntries; + pokemonInfo: PokemonInfoTranslationEntries; commandUiHandler: SimpleTranslationEntries; fightUiHandler: SimpleTranslationEntries; titles: SimpleTranslationEntries; From 09b820161f03655a3dc60a72c4e404a4b80d5016 Mon Sep 17 00:00:00 2001 From: Jannik Tappert <38758606+CodeTappert@users.noreply.github.com> Date: Fri, 17 May 2024 17:21:11 +0200 Subject: [PATCH 18/32] Localized Weather, Berries and Splash Messages (#1034) * Localized Weather, Berries and Splash Messages * Berry messages are now correct --- src/locales/de/berry.ts | 44 +++++++++++----------- src/locales/de/splash-messages.ts | 62 +++++++++++++++---------------- src/locales/de/weather.ts | 50 ++++++++++++------------- 3 files changed, 78 insertions(+), 78 deletions(-) diff --git a/src/locales/de/berry.ts b/src/locales/de/berry.ts index 8c8bc5ee280..bba64597f6b 100644 --- a/src/locales/de/berry.ts +++ b/src/locales/de/berry.ts @@ -2,47 +2,47 @@ import { BerryTranslationEntries } from "#app/plugins/i18n"; export const berry: BerryTranslationEntries = { "SITRUS": { - name: "Sitrus Berry", - effect: "Restores 25% HP if HP is below 50%", + name: "Tsitrubeere", + effect: "Stellt 25% der KP wieder her, wenn die KP unter 50% sind" }, "LUM": { - name: "Lum Berry", - effect: "Cures any non-volatile status condition and confusion", + name: "Prunusbeere", + effect: "Heilt jede nichtflüchtige Statusveränderung und Verwirrung" }, "ENIGMA": { - name: "Enigma Berry", - effect: "Restores 25% HP if hit by a super effective move", + name: "Enigmabeere", + effect: "Stellt 25% der KP wieder her, wenn der Träger von einer sehr effektiven Attacke getroffen wird", }, "LIECHI": { - name: "Liechi Berry", - effect: "Raises Attack if HP is below 25%", + name: "Lydzibeere", + effect: "Steigert den Angriff, wenn die KP unter 25% sind" }, "GANLON": { - name: "Ganlon Berry", - effect: "Raises Defense if HP is below 25%", + name: "Linganbeere", + effect: "Steigert die Verteidigung, wenn die KP unter 25% sind" }, "PETAYA": { - name: "Petaya Berry", - effect: "Raises Sp. Atk if HP is below 25%", + name: "Tahaybeere", + effect: "Steigert den Spezial-Angriff, wenn die KP unter 25% sind" }, "APICOT": { - name: "Apicot Berry", - effect: "Raises Sp. Def if HP is below 25%", + name: "Apikobeere", + effect: "Steigert die Spezial-Verteidigung, wenn die KP unter 25% sind" }, "SALAC": { - name: "Salac Berry", - effect: "Raises Speed if HP is below 25%", + name: "Salkabeere", + effect: "Steigert die Initiative, wenn die KP unter 25% sind" }, "LANSAT": { - name: "Lansat Berry", - effect: "Raises critical hit ratio if HP is below 25%", + name: "Lansatbeere", + effect: "Erhöht die Volltrefferchance, wenn die KP unter 25% sind" }, "STARF": { - name: "Starf Berry", - effect: "Sharply raises a random stat if HP is below 25%", + name: "Krambobeere", + effect: "Erhöht eine Statuswert stark, wenn die KP unter 25% sind" }, "LEPPA": { - name: "Leppa Berry", - effect: "Restores 10 PP to a move if its PP reaches 0", + name: "Jonagobeere", + effect: "Stellt 10 AP für eine Attacke wieder her, wenn deren AP auf 0 fallen" }, } as const; \ No newline at end of file diff --git a/src/locales/de/splash-messages.ts b/src/locales/de/splash-messages.ts index 6815d7f1824..4bbe9a25492 100644 --- a/src/locales/de/splash-messages.ts +++ b/src/locales/de/splash-messages.ts @@ -1,37 +1,37 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const splashMessages: SimpleTranslationEntries = { - "battlesWon": "Battles Won!", - "joinTheDiscord": "Join the Discord!", - "infiniteLevels": "Infinite Levels!", - "everythingStacks": "Everything Stacks!", - "optionalSaveScumming": "Optional Save Scumming!", - "biomes": "35 Biomes!", + "battlesWon": "Kämpfe gewonnen!", + "joinTheDiscord": "Tritt dem Discord bei!", + "infiniteLevels": "Unendliche Level!", + "everythingStacks": "Alles stapelt sich!", + "optionalSaveScumming": "Optionales Save Scumming!", + "biomes": "35 Biome!", "openSource": "Open Source!", - "playWithSpeed": "Play with 5x Speed!", - "liveBugTesting": "Live Bug Testing!", - "heavyInfluence": "Heavy RoR2 Influence!", + "playWithSpeed": "Spiele mit fünffacher Geschwindigkeit!", + "liveBugTesting": "Live-Bug-Tests!", + "heavyInfluence": "Starker RoR2-Einfluss!", "pokemonRiskAndPokemonRain": "Pokémon Risk and Pokémon Rain!", - "nowWithMoreSalt": "Now with 33% More Salt!", - "infiniteFusionAtHome": "Infinite Fusion at Home!", - "brokenEggMoves": "Broken Egg Moves!", - "magnificent": "Magnificent!", - "mubstitute": "Mubstitute!", - "thatsCrazy": "That\'s Crazy!", - "oranceJuice": "Orance Juice!", - "questionableBalancing": "Questionable Balancing!", - "coolShaders": "Cool Shaders!", - "aiFree": "AI-Free!", - "suddenDifficultySpikes": "Sudden Difficulty Spikes!", - "basedOnAnUnfinishedFlashGame": "Based on an Unfinished Flash Game!", - "moreAddictiveThanIntended": "More Addictive than Intended!", - "mostlyConsistentSeeds": "Mostly Consistent Seeds!", - "achievementPointsDontDoAnything": "Achievement Points Don\'t Do Anything!", - "youDoNotStartAtLevel": "You Do Not Start at Level 2000!", - "dontTalkAboutTheManaphyEggIncident": "Don\'t Talk About the Manaphy Egg Incident!", - "alsoTryPokengine": "Also Try Pokéngine!", - "alsoTryEmeraldRogue": "Also Try Emerald Rogue!", - "alsoTryRadicalRed": "Also Try Radical Red!", - "eeveeExpo": "Eevee Expo!", - "ynoproject": "YNOproject!", + "nowWithMoreSalt": "Jetzt mit 33% mehr Salz!", + "infiniteFusionAtHome": "Wir haben Infinite Fusionen zu Hause!", + "brokenEggMoves": "Übermächtige Ei-Attacken!", + "magnificent": "Herrlich!", + "mubstitute": "Melegator!", + "thatsCrazy": "Das ist verrückt!", + "oranceJuice": "Orangensaft!", + "questionableBalancing": "Fragwürdiges Balancing!", + "coolShaders": "Coole Shader!", + "aiFree": "Ohne KI!", + "suddenDifficultySpikes": "Plötzliche Schwierigkeitsspitzen!", + "basedOnAnUnfinishedFlashGame": "Basierend auf einem unfertigen Flash-Spiel!", + "moreAddictiveThanIntended": "Süchtig machender als beabsichtigt!", + "mostlyConsistentSeeds": "Meistens konsistente Seeds!", + "achievementPointsDontDoAnything": "Erungenschaftspunkte tun nichts!", + "youDoNotStartAtLevel": "Du startest nicht auf Level 2000!", + "dontTalkAboutTheManaphyEggIncident": "Wir reden nicht über den Manaphy-Ei-Vorfall!", + "alsoTryPokengine": "Versuche auch Pokéngine!", + "alsoTryEmeraldRogue": "Versuche auch Emerald Rogue!", + "alsoTryRadicalRed": "Versuche auch Radical Red!", + "eeveeExpo": "Evoli-Expo!", + "ynoproject": "YNO-Projekt!", } as const; \ No newline at end of file diff --git a/src/locales/de/weather.ts b/src/locales/de/weather.ts index 0c5635de736..6e40714f88f 100644 --- a/src/locales/de/weather.ts +++ b/src/locales/de/weather.ts @@ -4,41 +4,41 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; * The weather namespace holds text displayed when weather is active during a battle */ export const weather: SimpleTranslationEntries = { - "sunnyStartMessage": "Die Sonne hellt auf!", - "sunnyLapseMessage": "Die Sonne blendet.", - "sunnyClearMessage": "Die Sonne schwächt ab.", + "sunnyStartMessage": "Die Sonnenlicht wird stärker!", + "sunnyLapseMessage": "Die Sonnenlicht ist stark.", + "sunnyClearMessage": "Die Sonnenlicht verliert wieder an Intensität.", "rainStartMessage": "Es fängt an zu regnen!", - "rainLapseMessage": "Es regnet weiterhin.", - "rainClearMessage": "Es hört auf zu regnen.", + "rainLapseMessage": "Es regnet weiter.", + "rainClearMessage": "Der Regen lässt nach.", - "sandstormStartMessage": "Ein Sandsturm braut sich zusammen!", + "sandstormStartMessage": "Ein Sandsturm kommt auf!", "sandstormLapseMessage": "Der Sandsturm tobt.", - "sandstormClearMessage": "Der Sandsturm lässt nach.", - "sandstormDamageMessage": "{{pokemonPrefix}}{{pokemonName}} ist vom\nSandsturm beeinträchtigt!", + "sandstormClearMessage": "Der Sandsturm legt sich.", + "sandstormDamageMessage": " Der Sandsturm fügt {{pokemonPrefix}}{{pokemonName}} Schaden zu!", "hailStartMessage": "Es fängt an zu hageln!", - "hailLapseMessage": "Es hagelt weiterhin.", - "hailClearMessage": "Es hört auf zu hageln.", - "hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} ist vom\nHagel beeinträchtigt!", + "hailLapseMessage": "Der Hagelsturm tobt.", + "hailClearMessage": "Der Hagelsturm legt sich.", + "hailDamageMessage": "{{pokemonPrefix}}{{pokemonName}} wird von Hagelkörnern getroffen!", "snowStartMessage": "Es fängt an zu schneien!", - "snowLapseMessage": "Es schneit weiterhin.", - "snowClearMessage": "Es hört auf zu schneien.", + "snowLapseMessage": "Der Schneesturm tobt.", + "snowClearMessage": "Der Schneesturm legt sich.", - "fogStartMessage": "Es fängt an zu nebeln!", - "fogLapseMessage": "Es nebelt weiterhin.", - "fogClearMessage": "Es hört auf zu nebeln.", + "fogStartMessage": "Am Boden breitet sich dichter Nebel aus!", + "fogLapseMessage": "Der Nebel bleibt dicht.", + "fogClearMessage": "Der Nebel lichtet sich.", - "heavyRainStartMessage": "Ein Starkregen beginnt!", - "heavyRainLapseMessage": "Der Starkregen hält an.", - "heavyRainClearMessage": "Der Starkregen lässt nach.", + "heavyRainStartMessage": "Es fängt an, in Strömen zu regnen!", + "heavyRainLapseMessage": "Der strömende Regen hält an.", + "heavyRainClearMessage": "Der strömende Regen lässt nach.", - "harshSunStartMessage": "Das Sonnenlicht wird wärmer!", - "harshSunLapseMessage": "Das Sonnenlicht brennt.", - "harshSunClearMessage": "Das Sonnenlicht schwächt ab.", + "harshSunStartMessage": "Das Sonnenlicht wird sehr viel stärker!", + "harshSunLapseMessage": "Das Sonnenlicht ist sehr stark.", + "harshSunClearMessage": "Das Sonnenlicht verliert an Intensität.", - "strongWindsStartMessage": "Ein starker Wind zieht auf!", - "strongWindsLapseMessage": "Der starke Wind tobt.", - "strongWindsClearMessage": "Der starke Wind legt sich." + "strongWindsStartMessage": "Alle Flug-Pokémon werden von rätselhaften Luftströmungen geschützt!", + "strongWindsLapseMessage": "Die rätselhafte Luftströmung hält an.", + "strongWindsClearMessage": "Die rätselhafte Luftströmung hat sich wieder geleget.", } From 8c21bdc0a1f76762991edaa2286a35854d4aeb13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Fri, 17 May 2024 12:39:13 -0300 Subject: [PATCH 19/32] New ptBR localization (#1028) * Some translations (battle, modifier-type, trainer) * More translations and fixes * Minor fixes * finished translations * minor fix * removed tera type --- src/locales/pt_BR/ability-trigger.ts | 5 + .../pt_BR/battle-message-ui-handler.ts | 12 +- src/locales/pt_BR/battle.ts | 4 +- src/locales/pt_BR/berry.ts | 44 +- src/locales/pt_BR/config.ts | 14 +- src/locales/pt_BR/egg.ts | 21 + src/locales/pt_BR/modifier-type.ts | 494 +++++++++--------- src/locales/pt_BR/move.ts | 2 +- src/locales/pt_BR/pokeball.ts | 6 +- src/locales/pt_BR/splash-messages.ts | 37 ++ src/locales/pt_BR/trainers.ts | 62 +-- src/locales/zh_CN/config.ts | 1 + 12 files changed, 388 insertions(+), 314 deletions(-) create mode 100644 src/locales/pt_BR/ability-trigger.ts create mode 100644 src/locales/pt_BR/egg.ts create mode 100644 src/locales/pt_BR/splash-messages.ts diff --git a/src/locales/pt_BR/ability-trigger.ts b/src/locales/pt_BR/ability-trigger.ts new file mode 100644 index 00000000000..f539af8373a --- /dev/null +++ b/src/locales/pt_BR/ability-trigger.ts @@ -0,0 +1,5 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const abilityTriggers: SimpleTranslationEntries = { + 'blockRecoilDamage' : `{{abilityName}} de {{pokemonName}}\nprotegeu-o do dano de recuo!`, +} as const; \ No newline at end of file diff --git a/src/locales/pt_BR/battle-message-ui-handler.ts b/src/locales/pt_BR/battle-message-ui-handler.ts index 346f856872c..03a5b464ecb 100644 --- a/src/locales/pt_BR/battle-message-ui-handler.ts +++ b/src/locales/pt_BR/battle-message-ui-handler.ts @@ -1,10 +1,10 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const battleMessageUiHandler: SimpleTranslationEntries = { - "ivBest": "Best", - "ivFantastic": "Fantastic", - "ivVeryGood": "Very Good", - "ivPrettyGood": "Pretty Good", - "ivDecent": "Decent", - "ivNoGood": "No Good", + "ivBest": "Melhor", + "ivFantastic": "Fantástico", + "ivVeryGood": "Muito Bom", + "ivPrettyGood": "Bom", + "ivDecent": "Regular", + "ivNoGood": "Ruim", } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/battle.ts b/src/locales/pt_BR/battle.ts index 8d8ce72ef67..cc49abc7a7c 100644 --- a/src/locales/pt_BR/battle.ts +++ b/src/locales/pt_BR/battle.ts @@ -3,13 +3,13 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const battle: SimpleTranslationEntries = { "bossAppeared": "{{bossName}} apareceu.", "trainerAppeared": "{{trainerName}}\nquer batalhar!", - "trainerAppearedDouble": "{{trainerName}}\nwould like to battle!", + "trainerAppearedDouble": "{{trainerName}}\nquerem batalhar!", "singleWildAppeared": "Um {{pokemonName}} selvagem apareceu!", "multiWildAppeared": "Um {{pokemonName1}} e um {{pokemonName2}} selvagens\napareceram!", "playerComeBack": "{{pokemonName}}, retorne!", "trainerComeBack": "{{trainerName}} retirou {{pokemonName}} da batalha!", "playerGo": "{{pokemonName}}, eu escolho você!", - "trainerGo": "{{trainerName}} enviou {{pokemonName}}!", + "trainerGo": "{{trainerName}} escolheu {{pokemonName}}!", "switchQuestion": "Quer trocar\nde {{pokemonName}}?", "trainerDefeated": "Você derrotou\n{{trainerName}}!", "pokemonCaught": "{{pokemonName}} foi capturado!", diff --git a/src/locales/pt_BR/berry.ts b/src/locales/pt_BR/berry.ts index 8c8bc5ee280..c5a9d882530 100644 --- a/src/locales/pt_BR/berry.ts +++ b/src/locales/pt_BR/berry.ts @@ -2,47 +2,47 @@ import { BerryTranslationEntries } from "#app/plugins/i18n"; export const berry: BerryTranslationEntries = { "SITRUS": { - name: "Sitrus Berry", - effect: "Restores 25% HP if HP is below 50%", + name: "Fruta Sitrus", + effect: "Restaura 25% dos PS se os PS estiverem abaixo de 50%", }, "LUM": { - name: "Lum Berry", - effect: "Cures any non-volatile status condition and confusion", + name: "Fruta Lum", + effect: "Cura qualquer mudança de estado ou confusão", }, "ENIGMA": { - name: "Enigma Berry", - effect: "Restores 25% HP if hit by a super effective move", + name: "Fruta Enigma", + effect: "Restaura 25% dos PS se atingido por um golpe supereficaz", }, "LIECHI": { - name: "Liechi Berry", - effect: "Raises Attack if HP is below 25%", + name: "Fruta Liechi", + effect: "Aumenta o Ataque se os PS estiverem abaixo de 25%", }, "GANLON": { - name: "Ganlon Berry", - effect: "Raises Defense if HP is below 25%", + name: "Fruta Ganlon", + effect: "Aumenta a Defesa se os PS estiverem abaixo de 25%", }, "PETAYA": { - name: "Petaya Berry", - effect: "Raises Sp. Atk if HP is below 25%", + name: "Fruta Petaya", + effect: "Aumenta o Ataque Especial se os PS estiverem abaixo de 25%", }, "APICOT": { - name: "Apicot Berry", - effect: "Raises Sp. Def if HP is below 25%", + name: "Fruta Apicot", + effect: "Aumenta a Defesa Especial se os PS estiverem abaixo de 25%", }, "SALAC": { - name: "Salac Berry", - effect: "Raises Speed if HP is below 25%", + name: "Fruta Salac", + effect: "Aumenta a Velocidade se os PS estiverem abaixo de 25%", }, "LANSAT": { - name: "Lansat Berry", - effect: "Raises critical hit ratio if HP is below 25%", + name: "Fruta Lansat", + effect: "Aumenta a chance de acerto crítico se os PS estiverem abaixo de 25%", }, "STARF": { - name: "Starf Berry", - effect: "Sharply raises a random stat if HP is below 25%", + name: "Fruta Starf", + effect: "Aumenta drasticamente um atributo aleatório se os PS estiverem abaixo de 25%", }, "LEPPA": { - name: "Leppa Berry", - effect: "Restores 10 PP to a move if its PP reaches 0", + name: "Fruta Leppa", + effect: "Restaura 10 PP de um movimento se seus PP acabarem", }, } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/config.ts b/src/locales/pt_BR/config.ts index 29d3c8b4195..457fc4c125a 100644 --- a/src/locales/pt_BR/config.ts +++ b/src/locales/pt_BR/config.ts @@ -1,6 +1,8 @@ import { ability } from "./ability"; +import { abilityTriggers } from "./ability-trigger"; import { battle } from "./battle"; import { commandUiHandler } from "./command-ui-handler"; +import { egg } from "./egg"; import { fightUiHandler } from "./fight-ui-handler"; import { growth } from "./growth"; import { menu } from "./menu"; @@ -11,16 +13,20 @@ import { nature } from "./nature"; import { pokeball } from "./pokeball"; import { pokemon } from "./pokemon"; import { pokemonInfo } from "./pokemon-info"; +import { splashMessages } from "./splash-messages"; import { starterSelectUiHandler } from "./starter-select-ui-handler"; +import { titles, trainerClasses, trainerNames } from "./trainers"; import { tutorial } from "./tutorial"; import { weather } from "./weather"; import { berry } from "./berry"; -export const ptBrConfig = { +export const ptBrConfig = { ability: ability, + abilityTriggers: abilityTriggers, battle: battle, commandUiHandler: commandUiHandler, + egg: egg, fightUiHandler: fightUiHandler, menuUiHandler: menuUiHandler, menu: menu, @@ -29,10 +35,14 @@ export const ptBrConfig = { pokemonInfo: pokemonInfo, pokemon: pokemon, starterSelectUiHandler: starterSelectUiHandler, + titles: titles, + trainerClasses: trainerClasses, + trainerNames: trainerNames, tutorial: tutorial, + splashMessages: splashMessages, nature: nature, growth: growth, weather: weather, modifierType: modifierType, berry: berry, -} \ No newline at end of file +} diff --git a/src/locales/pt_BR/egg.ts b/src/locales/pt_BR/egg.ts new file mode 100644 index 00000000000..1d38fd5c694 --- /dev/null +++ b/src/locales/pt_BR/egg.ts @@ -0,0 +1,21 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const egg: SimpleTranslationEntries = { + "egg": "Ovo", + "greatTier": "Raro", + "ultraTier": "Épico", + "masterTier": "Lendário", + "defaultTier": "Comum", + "hatchWavesMessageSoon": "Barulhos podem ser ouvidos vindo de dentro! Vai chocar em breve!", + "hatchWavesMessageClose": "Parece se mover ocasionalmente. Pode estar perto de chocar.", + "hatchWavesMessageNotClose": "O que vai nascer disso? Não parece estar perto de chocar.", + "hatchWavesMessageLongTime": "Parece que este ovo vai demorar bastante para chocar.", + "gachaTypeLegendary": "Chance de Lendário Aumentada", + "gachaTypeMove": "Chance de Movimento de Ovo Raro Aumentada", + "gachaTypeShiny": "Chance de Shiny Aumentada", + "selectMachine": "Escolha uma máquina.", + "notEnoughVouchers": "Você não tem vouchers suficientes!", + "tooManyEggs": "Você já tem muitos ovos!", + "pull": "Prêmio", + "pulls": "Prêmios" +} as const; \ No newline at end of file diff --git a/src/locales/pt_BR/modifier-type.ts b/src/locales/pt_BR/modifier-type.ts index 31d4abbce29..1ffc6d3187f 100644 --- a/src/locales/pt_BR/modifier-type.ts +++ b/src/locales/pt_BR/modifier-type.ts @@ -4,384 +4,384 @@ export const modifierType: ModifierTypeTranslationEntries = { ModifierType: { "AddPokeballModifierType": { name: "{{modifierCount}}x {{pokeballName}}", - description: "Receive {{pokeballName}} x{{modifierCount}} (Inventory: {{pokeballAmount}}) \nCatch Rate: {{catchRate}}", + description: "Ganhe x{{modifierCount}} {{pokeballName}} (Mochila: {{pokeballAmount}}) \nChance de captura: {{catchRate}}", }, "AddVoucherModifierType": { name: "{{modifierCount}}x {{voucherTypeName}}", - description: "Receive {{voucherTypeName}} x{{modifierCount}}", + description: "Ganhe x{{modifierCount}} {{voucherTypeName}}", }, "PokemonHeldItemModifierType": { extra: { - "inoperable": "{{pokemonName}} can't take\nthis item!", - "tooMany": "{{pokemonName}} has too many\nof this item!", + "inoperable": "{{pokemonName}} não pode\nsegurar esse item!", + "tooMany": "{{pokemonName}} tem muitos\nmuitos deste item!", } }, "PokemonHpRestoreModifierType": { - description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher", + description: "Restaura {{restorePoints}} PS ou {{restorePercent}}% PS de um Pokémon, o que for maior", extra: { - "fully": "Fully restores HP for one Pokémon", - "fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment", + "fully": "Restaura totalmente os PS de um Pokémon", + "fullyWithStatus": "Restaura totalmente os PS de um Pokémon e cura qualquer mudança de estado", } }, "PokemonReviveModifierType": { - description: "Revives one Pokémon and restores {{restorePercent}}% HP", + description: "Reanima um Pokémon e restaura {{restorePercent}}% PS", }, "PokemonStatusHealModifierType": { - description: "Heals any status ailment for one Pokémon", + description: "Cura uma mudança de estado de um Pokémon", }, "PokemonPpRestoreModifierType": { - description: "Restores {{restorePoints}} PP for one Pokémon move", + description: "Restaura {{restorePoints}} PP para um movimento de um Pokémon", extra: { - "fully": "Restores all PP for one Pokémon move", + "fully": "Restaura todos os PP para um movimento de um Pokémon", } }, "PokemonAllMovePpRestoreModifierType": { - description: "Restores {{restorePoints}} PP for all of one Pokémon's moves", + description: "Restaura {{restorePoints}} PP para todos os movimentos de um Pokémon", extra: { - "fully": "Restores all PP for all of one Pokémon's moves", + "fully": "Restaura todos os PP para todos os movimentos de um Pokémon", } }, "PokemonPpUpModifierType": { - description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3)", + description: "Aumenta permanentemente os PP para o movimento de um Pokémon em {{upPoints}} para cada 5 PP máximos (máximo 3)", }, "PokemonNatureChangeModifierType": { name: "{{natureName}} Mint", - description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.", + description: "Muda a natureza de um Pokémon para {{natureName}} e a desbloqueia permanentemente para seu inicial", }, "DoubleBattleChanceBoosterModifierType": { - description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles", + description: "Dobra as chances de encontrar uma batalha em dupla por {{battleCount}} batalhas", }, "TempBattleStatBoosterModifierType": { - description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles", + description: "Aumenta o atributo de {{tempBattleStatName}} para todos os membros da equipe por 5 batalhas", }, "AttackTypeBoosterModifierType": { - description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%", + description: "Aumenta o poder dos ataques do tipo {{moveType}} de um Pokémon em 20%", }, "PokemonLevelIncrementModifierType": { - description: "Increases a Pokémon's level by 1", + description: "Aumenta em 1 o nível de um Pokémon", }, "AllPokemonLevelIncrementModifierType": { - description: "Increases all party members' level by 1", + description: "Aumenta em 1 os níveis de todos os Pokémon", }, "PokemonBaseStatBoosterModifierType": { - description: "Increases the holder's base {{statName}} by 10%. The higher your IVs, the higher the stack limit.", + description: "Aumenta o atributo base de {{statName}} em 10%. Quanto maior os IVs, maior o limite de aumento", }, "AllPokemonFullHpRestoreModifierType": { - description: "Restores 100% HP for all Pokémon", + description: "Restaura totalmente os PS de todos os Pokémon", }, "AllPokemonFullReviveModifierType": { - description: "Revives all fainted Pokémon, fully restoring HP", + description: "Reanima todos os Pokémon, restaurando totalmente seus PS", }, "MoneyRewardModifierType": { - description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}})", + description: "Garante uma quantidade {{moneyMultiplier}} de dinheiro (₽{{moneyAmount}})", extra: { - "small": "small", - "moderate": "moderate", - "large": "large", + "small": "pequena", + "moderate": "moderada", + "large": "grande", }, }, "ExpBoosterModifierType": { - description: "Increases gain of EXP. Points by {{boostPercent}}%", + description: "Aumenta o ganho de pontos de experiência em {{boostPercent}}%", }, "PokemonExpBoosterModifierType": { - description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%", + description: "Aumenta o ganho de pontos de experiência de quem segura em {{boostPercent}}%", }, "PokemonFriendshipBoosterModifierType": { - description: "Increases friendship gain per victory by 50%", + description: "Aumenta o ganho de amizade por vitória em 50%", }, "PokemonMoveAccuracyBoosterModifierType": { - description: "Increases move accuracy by {{accuracyAmount}} (maximum 100)", + description: "Aumenta a precisão dos movimentos em {{accuracyAmount}} (máximo 100)", }, "PokemonMultiHitModifierType": { - description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively", + description: "Ataques acertam uma vez adicional ao custo de uma redução de poder de 60/75/82.5% por item, respectivamente", }, "TmModifierType": { name: "TM{{moveId}} - {{moveName}}", - description: "Teach {{moveName}} to a Pokémon", + description: "Ensina {{moveName}} a um Pokémon", }, "EvolutionItemModifierType": { - description: "Causes certain Pokémon to evolve", + description: "Faz certos Pokémon evoluírem", }, "FormChangeItemModifierType": { - description: "Causes certain Pokémon to change form", + description: "Faz certos Pokémon mudarem de forma", }, "FusePokemonModifierType": { - description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool)", + description: "Combina dois Pokémon (transfere Habilidade, divide os atributos base e tipos, compartilha os movimentos)", }, "TerastallizeModifierType": { - name: "{{teraType}} Tera Shard", - description: "{{teraType}} Terastallizes the holder for up to 10 battles", + name: "{{teraType}} Fragmento Tera", + description: "{{teraType}} Terastaliza um Pokémon por até 10 batalhas", }, "ContactHeldItemTransferChanceModifierType": { - description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen", + description: "Quando atacar, tem {{chancePercent}}% de chance de roubar um item do oponente", }, "TurnHeldItemTransferModifierType": { - description: "Every turn, the holder acquires one held item from the foe", + description: "Todo turno, o Pokémon ganha um item aleatório do oponente", }, "EnemyAttackStatusEffectChanceModifierType": { - description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves", + description: "Ganha {{chancePercent}}% de chance de infligir {{statusEffect}} com ataques", }, "EnemyEndureChanceModifierType": { - description: "Adds a {{chancePercent}}% chance of enduring a hit", + description: "Ganha {{chancePercent}}% de chance de sobreviver a um ataque que o faria desmaiar", }, - "RARE_CANDY": { name: "Rare Candy" }, - "RARER_CANDY": { name: "Rarer Candy" }, + "RARE_CANDY": { name: "Doce Raro" }, + "RARER_CANDY": { name: "Doce Raríssimo" }, - "MEGA_BRACELET": { name: "Mega Bracelet", description: "Mega Stones become available" }, - "DYNAMAX_BAND": { name: "Dynamax Band", description: "Max Mushrooms become available" }, - "TERA_ORB": { name: "Tera Orb", description: "Tera Shards become available" }, + "MEGA_BRACELET": { name: "Mega Bracelete", description: "Mega Stones become available" }, + "DYNAMAX_BAND": { name: "Bracelete Dynamax", description: "Max Mushrooms become available" }, + "TERA_ORB": { name: "Orbe Tera", description: "Fragmentos Tera ficam disponíveis" }, - "MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads" }, + "MAP": { name: "Mapa", description: "Permite escolher a próxima rota" }, - "POTION": { name: "Potion" }, - "SUPER_POTION": { name: "Super Potion" }, - "HYPER_POTION": { name: "Hyper Potion" }, - "MAX_POTION": { name: "Max Potion" }, - "FULL_RESTORE": { name: "Full Restore" }, + "POTION": { name: "Poção" }, + "SUPER_POTION": { name: "Super Poção" }, + "HYPER_POTION": { name: "Hiper Poção" }, + "MAX_POTION": { name: "Poção Máxima" }, + "FULL_RESTORE": { name: "Restaurador" }, - "REVIVE": { name: "Revive" }, - "MAX_REVIVE": { name: "Max Revive" }, + "REVIVE": { name: "Reanimador" }, + "MAX_REVIVE": { name: "Reanimador Máximo" }, - "FULL_HEAL": { name: "Full Heal" }, + "FULL_HEAL": { name: "Cura Total" }, - "SACRED_ASH": { name: "Sacred Ash" }, + "SACRED_ASH": { name: "Cinza Sagrada" }, - "REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting" }, + "REVIVER_SEED": { name: "Semente Reanimadora", description: "Após desmaiar, reanima com 50% de PS" }, - "ETHER": { name: "Ether" }, - "MAX_ETHER": { name: "Max Ether" }, + "ETHER": { name: "Éter" }, + "MAX_ETHER": { name: "Éter Máximo" }, "ELIXIR": { name: "Elixir" }, - "MAX_ELIXIR": { name: "Max Elixir" }, + "MAX_ELIXIR": { name: "Elixir Máximo" }, - "PP_UP": { name: "PP Up" }, - "PP_MAX": { name: "PP Max" }, + "PP_UP": { name: "Mais PP" }, + "PP_MAX": { name: "PP Máximo" }, - "LURE": { name: "Lure" }, - "SUPER_LURE": { name: "Super Lure" }, - "MAX_LURE": { name: "Max Lure" }, + "LURE": { name: "Incenso" }, + "SUPER_LURE": { name: "Super Incenso" }, + "MAX_LURE": { name: "Incenso Máximo" }, - "MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move" }, + "MEMORY_MUSHROOM": { name: "Cogumemória", description: "Relembra um movimento esquecido" }, - "EXP_SHARE": { name: "EXP. All", description: "Non-participants receive 20% of a single participant's EXP. Points" }, - "EXP_BALANCE": { name: "EXP. Balance", description: "Weighs EXP. Points received from battles towards lower-leveled party members" }, + "EXP_SHARE": { name: "Compart. de Exp.", description: "Distribui pontos de experiência para todos os membros da equipe" }, + "EXP_BALANCE": { name: "Balanceador de Exp.", description: "Distribui pontos de experiência principalmente para os Pokémon mais fracos" }, - "OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP" }, + "OVAL_CHARM": { name: "Amuleto Oval", description: "Quando vários Pokémon participam de uma batalha, cada um recebe 10% extra de pontos de experiência" }, - "EXP_CHARM": { name: "EXP. Charm" }, - "SUPER_EXP_CHARM": { name: "Super EXP. Charm" }, - "GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" }, + "EXP_CHARM": { name: "Amuleto de Exp." }, + "SUPER_EXP_CHARM": { name: "Super Amuleto de Exp." }, + "GOLDEN_EXP_CHARM": { name: "Amuleto de Exp. Dourado" }, - "LUCKY_EGG": { name: "Lucky Egg" }, - "GOLDEN_EGG": { name: "Golden Egg" }, + "LUCKY_EGG": { name: "Ovo da Sorte" }, + "GOLDEN_EGG": { name: "Ovo Dourado" }, - "SOOTHE_BELL": { name: "Soothe Bell" }, + "SOOTHE_BELL": { name: "Guizo" }, - "SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)" }, + "SOUL_DEW": { name: "Joia da Alma", description: "Aumenta a influência da natureza de um Pokémon em seus atributos em 10% (cumulativo)" }, - "NUGGET": { name: "Nugget" }, - "BIG_NUGGET": { name: "Big Nugget" }, - "RELIC_GOLD": { name: "Relic Gold" }, + "NUGGET": { name: "Pepita" }, + "BIG_NUGGET": { name: "Pepita Grande" }, + "RELIC_GOLD": { name: "Relíquia de Ouro" }, - "AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%" }, - "GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of damage inflicted as money" }, - "COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest" }, + "AMULET_COIN": { name: "Moeda Amuleto", description: "Aumenta a recompensa de dinheiro em 50%" }, + "GOLDEN_PUNCH": { name: "Soco Dourado", description: "Concede 50% do dano causado em dinheiro" }, + "COIN_CASE": { name: "Moedeira", description: "Após cada 10ª batalha, recebe 10% de seu dinheiro em juros" }, - "LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items" }, + "LOCK_CAPSULE": { name: "Cápsula de Travamento", description: "Permite que você trave raridades de itens ao rolar novamente" }, - "GRIP_CLAW": { name: "Grip Claw" }, - "WIDE_LENS": { name: "Wide Lens" }, + "GRIP_CLAW": { name: "Garra-Aperto" }, + "WIDE_LENS": { name: "Lente Ampla" }, - "MULTI_LENS": { name: "Multi Lens" }, + "MULTI_LENS": { name: "Multi Lentes" }, - "HEALING_CHARM": { name: "Healing Charm", description: "Increases the effectiveness of HP restoring moves and items by 10% (excludes Revives)" }, - "CANDY_JAR": { name: "Candy Jar", description: "Increases the number of levels added by Rare Candy items by 1" }, + "HEALING_CHARM": { name: "Amuleto de Cura", description: "Aumenta a eficácia dos movimentos e itens que restauram PS em 10% (exceto Reanimador)" }, + "CANDY_JAR": { name: "Pote de Doces", description: "Aumenta o número de níveis adicionados pelo Doce Raro em 1" }, - "BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 25% chance that a used berry will not be consumed" }, + "BERRY_POUCH": { name: "Bolsa de Berries", description: "Adiciona uma chance de 25% de que uma berry usada não seja consumida" }, - "FOCUS_BAND": { name: "Focus Band", description: "Adds a 10% chance to survive with 1 HP after being damaged enough to faint" }, + "FOCUS_BAND": { name: "Bandana", description: "Adiciona uma chance de 10% de sobreviver com 1 PS após ser danificado o suficiente para desmaiar" }, - "QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)" }, + "QUICK_CLAW": { name: "Garra Rápida", description: "Adiciona uma chance de 10% de atacar primeiro, ignorando sua velocidade (após prioridades)" }, - "KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch" }, + "KINGS_ROCK": { name: "Pedra do Rei", description: "Adiciona uma chance de 10% de movimentos fazerem o oponente hesitar" }, - "LEFTOVERS": { name: "Leftovers", description: "Heals 1/16 of a Pokémon's maximum HP every turn" }, - "SHELL_BELL": { name: "Shell Bell", description: "Heals 1/8 of a Pokémon's dealt damage" }, + "LEFTOVERS": { name: "Sobras", description: "Cura 1/16 dos PS máximos de um Pokémon a cada turno" }, + "SHELL_BELL": { name: "Concha-Sino", description: "Cura 1/8 do dano causado por um Pokémon" }, - "BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps" }, + "BATON": { name: "Bastão", description: "Permite passar mudanças de atributo ao trocar Pokémon, ignorando armadilhas" }, - "SHINY_CHARM": { name: "Shiny Charm", description: "Dramatically increases the chance of a wild Pokémon being Shiny" }, - "ABILITY_CHARM": { name: "Ability Charm", description: "Dramatically increases the chance of a wild Pokémon having a Hidden Ability" }, + "SHINY_CHARM": { name: "Amuleto Brilhante", description: "Aumenta drasticamente a chance de um Pokémon selvagem ser Shiny" }, + "ABILITY_CHARM": { name: "Amuleto de Habilidade", description: "Aumenta drasticamente a chance de um Pokémon selvagem ter uma Habilidade Oculta" }, - "IV_SCANNER": { name: "IV Scanner", description: "Allows scanning the IVs of wild Pokémon. 2 IVs are revealed per stack. The best IVs are shown first" }, + "IV_SCANNER": { name: "Scanner de IVs", description: "Permite escanear os IVs de Pokémon selvagens. 2 IVs são revelados por item. Os melhores IVs são mostrados primeiro" }, - "DNA_SPLICERS": { name: "DNA Splicers" }, + "DNA_SPLICERS": { name: "Splicer de DNA" }, - "MINI_BLACK_HOLE": { name: "Mini Black Hole" }, + "MINI_BLACK_HOLE": { name: "Mini Buraco Negro" }, - "GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle" }, + "GOLDEN_POKEBALL": { name: "Poké Bola Dourada", description: "Adiciona 1 opção de item extra ao final de cada batalha" }, - "ENEMY_DAMAGE_BOOSTER": { name: "Damage Token", description: "Increases damage by 5%" }, - "ENEMY_DAMAGE_REDUCTION": { name: "Protection Token", description: "Reduces incoming damage by 2.5%" }, - "ENEMY_HEAL": { name: "Recovery Token", description: "Heals 2% of max HP every turn" }, - "ENEMY_ATTACK_POISON_CHANCE": { name: "Poison Token" }, - "ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Paralyze Token" }, - "ENEMY_ATTACK_SLEEP_CHANCE": { name: "Sleep Token" }, - "ENEMY_ATTACK_FREEZE_CHANCE": { name: "Freeze Token" }, - "ENEMY_ATTACK_BURN_CHANCE": { name: "Burn Token" }, - "ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Full Heal Token", description: "Adds a 10% chance every turn to heal a status condition" }, - "ENEMY_ENDURE_CHANCE": { name: "Endure Token" }, - "ENEMY_FUSED_CHANCE": { name: "Fusion Token", description: "Adds a 1% chance that a wild Pokémon will be a fusion" }, + "ENEMY_DAMAGE_BOOSTER": { name: "Token de Dano", description: "Aumenta o dano em 5%" }, + "ENEMY_DAMAGE_REDUCTION": { name: "Token de Proteção", description: "Reduz o dano recebido em 2,5%" }, + "ENEMY_HEAL": { name: "Token de Recuperação", description: "Cura 2% dos PS máximos a cada turno" }, + "ENEMY_ATTACK_POISON_CHANCE": { name: "Token de Veneno" }, + "ENEMY_ATTACK_PARALYZE_CHANCE": { name: "Token de Paralisia" }, + "ENEMY_ATTACK_SLEEP_CHANCE": { name: "Token de Sono" }, + "ENEMY_ATTACK_FREEZE_CHANCE": { name: "Token de Congelamento" }, + "ENEMY_ATTACK_BURN_CHANCE": { name: "Token de Queimadura" }, + "ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Token de Cura Total", description: "Adiciona uma chance de 10% a cada turno de curar uma condição de status" }, + "ENEMY_ENDURE_CHANCE": { name: "Token de Persistência" }, + "ENEMY_FUSED_CHANCE": { name: "Token de Fusão", description: "Adiciona uma chance de 1% de que um Pokémon selvagem seja uma fusão" }, }, TempBattleStatBoosterItem: { - "x_attack": "X Attack", - "x_defense": "X Defense", - "x_sp_atk": "X Sp. Atk", - "x_sp_def": "X Sp. Def", - "x_speed": "X Speed", - "x_accuracy": "X Accuracy", - "dire_hit": "Dire Hit", + "x_attack": "Ataque X", + "x_defense": "Defesa X", + "x_sp_atk": "Ataque Esp. X", + "x_sp_def": "Defesa Esp. X", + "x_speed": "Velocidade X", + "x_accuracy": "Precisão X", + "dire_hit": "Direto", }, AttackTypeBoosterItem: { - "silk_scarf": "Silk Scarf", - "black_belt": "Black Belt", - "sharp_beak": "Sharp Beak", - "poison_barb": "Poison Barb", - "soft_sand": "Soft Sand", - "hard_stone": "Hard Stone", - "silver_powder": "Silver Powder", - "spell_tag": "Spell Tag", - "metal_coat": "Metal Coat", - "charcoal": "Charcoal", - "mystic_water": "Mystic Water", - "miracle_seed": "Miracle Seed", - "magnet": "Magnet", - "twisted_spoon": "Twisted Spoon", - "never_melt_ice": "Never-Melt Ice", - "dragon_fang": "Dragon Fang", - "black_glasses": "Black Glasses", - "fairy_feather": "Fairy Feather", + "silk_scarf": "Lenço de Seda", + "black_belt": "Faixa Preta", + "sharp_beak": "Bico Afiado", + "poison_barb": "Farpa Venenosa", + "soft_sand": "Areia Macia", + "hard_stone": "Pedra Dura", + "silver_powder": "Pó de Prata", + "spell_tag": "Talismã de Feitiço", + "metal_coat": "Revestimento Metálico", + "charcoal": "Carvão", + "mystic_water": "Água Mística", + "miracle_seed": "Semente Milagrosa", + "magnet": "Ímã", + "twisted_spoon": "Colher Torcida", + "never_melt_ice": "Gelo Eterno", + "dragon_fang": "Presa de Dragão", + "black_glasses": "Óculos Escuros", + "fairy_feather": "Pena de Fada", }, BaseStatBoosterItem: { - "hp_up": "HP Up", - "protein": "Protein", - "iron": "Iron", - "calcium": "Calcium", - "zinc": "Zinc", - "carbos": "Carbos", + "hp_up": "Mais PS", + "protein": "Proteína", + "iron": "Ferro", + "calcium": "Cálcio", + "zinc": "Zinco", + "carbos": "Carboidrato", }, EvolutionItem: { "NONE": "None", - "LINKING_CORD": "Linking Cord", - "SUN_STONE": "Sun Stone", - "MOON_STONE": "Moon Stone", - "LEAF_STONE": "Leaf Stone", - "FIRE_STONE": "Fire Stone", - "WATER_STONE": "Water Stone", - "THUNDER_STONE": "Thunder Stone", - "ICE_STONE": "Ice Stone", - "DUSK_STONE": "Dusk Stone", - "DAWN_STONE": "Dawn Stone", - "SHINY_STONE": "Shiny Stone", - "CRACKED_POT": "Cracked Pot", - "SWEET_APPLE": "Sweet Apple", - "TART_APPLE": "Tart Apple", - "STRAWBERRY_SWEET": "Strawberry Sweet", - "UNREMARKABLE_TEACUP": "Unremarkable Teacup", + "LINKING_CORD": "Cabo de Conexão", + "SUN_STONE": "Pedra do Sol", + "MOON_STONE": "Pedra da Lua", + "LEAF_STONE": "Pedra da Folha", + "FIRE_STONE": "Pedra do Fogo", + "WATER_STONE": "Pedra da Água", + "THUNDER_STONE": "Pedra do Trovão", + "ICE_STONE": "Pedra do Gelo", + "DUSK_STONE": "Pedra do Crepúsculo", + "DAWN_STONE": "Pedra da Alvorada", + "SHINY_STONE": "Pedra Brilhante", + "CRACKED_POT": "Vaso Quebrado", + "SWEET_APPLE": "Maçã Doce", + "TART_APPLE": "Maçã Azeda", + "STRAWBERRY_SWEET": "Doce de Morango", + "UNREMARKABLE_TEACUP": "Xícara Comum", - "CHIPPED_POT": "Chipped Pot", - "BLACK_AUGURITE": "Black Augurite", - "GALARICA_CUFF": "Galarica Cuff", - "GALARICA_WREATH": "Galarica Wreath", - "PEAT_BLOCK": "Peat Block", - "AUSPICIOUS_ARMOR": "Auspicious Armor", - "MALICIOUS_ARMOR": "Malicious Armor", - "MASTERPIECE_TEACUP": "Masterpiece Teacup", - "METAL_ALLOY": "Metal Alloy", - "SCROLL_OF_DARKNESS": "Scroll Of Darkness", - "SCROLL_OF_WATERS": "Scroll Of Waters", - "SYRUPY_APPLE": "Syrupy Apple", + "CHIPPED_POT": "Pote Lascado", + "BLACK_AUGURITE": "Mineral Negro", + "GALARICA_CUFF": "Bracelete de Galar", + "GALARICA_WREATH": "Coroa de Galar", + "PEAT_BLOCK": "Bloco de Turfa", + "AUSPICIOUS_ARMOR": "Armadura Prometida", + "MALICIOUS_ARMOR": "Armadura Maldita", + "MASTERPIECE_TEACUP": "Xícara Excepcional", + "METAL_ALLOY": "Liga de Metal", + "SCROLL_OF_DARKNESS": "Pergaminho da Escuridão", + "SCROLL_OF_WATERS": "Pergaminho da Água", + "SYRUPY_APPLE": "Xarope de Maçã", }, FormChangeItem: { "NONE": "None", - "ABOMASITE": "Abomasite", - "ABSOLITE": "Absolite", - "AERODACTYLITE": "Aerodactylite", - "AGGRONITE": "Aggronite", - "ALAKAZITE": "Alakazite", - "ALTARIANITE": "Altarianite", - "AMPHAROSITE": "Ampharosite", - "AUDINITE": "Audinite", - "BANETTITE": "Banettite", - "BEEDRILLITE": "Beedrillite", - "BLASTOISINITE": "Blastoisinite", - "BLAZIKENITE": "Blazikenite", - "CAMERUPTITE": "Cameruptite", - "CHARIZARDITE_X": "Charizardite X", - "CHARIZARDITE_Y": "Charizardite Y", - "DIANCITE": "Diancite", - "GALLADITE": "Galladite", - "GARCHOMPITE": "Garchompite", - "GARDEVOIRITE": "Gardevoirite", - "GENGARITE": "Gengarite", - "GLALITITE": "Glalitite", - "GYARADOSITE": "Gyaradosite", - "HERACRONITE": "Heracronite", - "HOUNDOOMINITE": "Houndoominite", - "KANGASKHANITE": "Kangaskhanite", - "LATIASITE": "Latiasite", - "LATIOSITE": "Latiosite", - "LOPUNNITE": "Lopunnite", - "LUCARIONITE": "Lucarionite", - "MANECTITE": "Manectite", - "MAWILITE": "Mawilite", - "MEDICHAMITE": "Medichamite", - "METAGROSSITE": "Metagrossite", - "MEWTWONITE_X": "Mewtwonite X", - "MEWTWONITE_Y": "Mewtwonite Y", - "PIDGEOTITE": "Pidgeotite", - "PINSIRITE": "Pinsirite", - "RAYQUAZITE": "Rayquazite", - "SABLENITE": "Sablenite", - "SALAMENCITE": "Salamencite", - "SCEPTILITE": "Sceptilite", - "SCIZORITE": "Scizorite", - "SHARPEDONITE": "Sharpedonite", - "SLOWBRONITE": "Slowbronite", - "STEELIXITE": "Steelixite", - "SWAMPERTITE": "Swampertite", - "TYRANITARITE": "Tyranitarite", - "VENUSAURITE": "Venusaurite", + "ABOMASITE": "Abomasita", + "ABSOLITE": "Absolita", + "AERODACTYLITE": "Aerodactylita", + "AGGRONITE": "Aggronita", + "ALAKAZITE": "Alakazita", + "ALTARIANITE": "Altarianita", + "AMPHAROSITE": "Ampharosita", + "AUDINITE": "Audinita", + "BANETTITE": "Banettita", + "BEEDRILLITE": "Beedrillita", + "BLASTOISINITE": "Blastoisinita", + "BLAZIKENITE": "Blazikenita", + "CAMERUPTITE": "Cameruptita", + "CHARIZARDITE X": "Charizardita X", + "CHARIZARDITE Y": "Charizardita Y", + "DIANCITE": "Diancita", + "GALLADITE": "Galladita", + "GARCHOMPITE": "Garchompita", + "GARDEVOIRITE": "Gardevoirita", + "GENGARITE": "Gengarita", + "GLALITITE": "Glalitita", + "GYARADOSITE": "Gyaradosita", + "HERACRONITE": "Heracronita", + "HOUNDOOMINITE": "Houndoominita", + "KANGASKHANITE": "Kangaskhanita", + "LATIASITE": "Latiasita", + "LATIOSITE": "Latiosita", + "LOPUNNITE": "Lopunnita", + "LUCARIONITE": "Lucarionita", + "MANECTITE": "Manectita", + "MAWILITE": "Mawilita", + "MEDICHAMITE": "Medichamita", + "METAGROSSITE": "Metagrossita", + "MEWTWONITE X": "Mewtwonita X", + "MEWTWONITE Y": "Mewtwonita Y", + "PIDGEOTITE": "Pidgeotita", + "PINSIRITE": "Pinsirita", + "SABLENITE": "Sablenita", + "RAYQUAZITE": "Rayquazita", + "SALAMENCITE": "Salamencita", + "SCEPTILITE": "Sceptilita", + "SCIZORITE": "Scizorita", + "SHARPEDONITE": "Sharpedonita", + "SLOWBRONITE": "Slowbronita", + "STEELIXITE": "Steelixita", + "SWAMPERTITE": "Swampertita", + "TYRANITARITE": "Tyranitarita", + "VENUSAURITE": "Venusaurita", - "BLUE_ORB": "Blue Orb", - "RED_ORB": "Red Orb", - "SHARP_METEORITE": "Sharp Meteorite", - "HARD_METEORITE": "Hard Meteorite", - "SMOOTH_METEORITE": "Smooth Meteorite", - "ADAMANT_CRYSTAL": "Adamant Crystal", - "LUSTROUS_ORB": "Lustrous Orb", - "GRISEOUS_CORE": "Griseous Core", - "REVEAL_GLASS": "Reveal Glass", - "GRACIDEA": "Gracidea", - "MAX_MUSHROOMS": "Max Mushrooms", - "DARK_STONE": "Dark Stone", - "LIGHT_STONE": "Light Stone", - "PRISON_BOTTLE": "Prison Bottle", - "N_LUNARIZER": "N Lunarizer", - "N_SOLARIZER": "N Solarizer", - "RUSTED_SWORD": "Rusted Sword", - "RUSTED_SHIELD": "Rusted Shield", - "ICY_REINS_OF_UNITY": "Icy Reins Of Unity", - "SHADOW_REINS_OF_UNITY": "Shadow Reins Of Unity", - "WELLSPRING_MASK": "Wellspring Mask", - "HEARTHFLAME_MASK": "Hearthflame Mask", - "CORNERSTONE_MASK": "Cornerstone Mask", - "SHOCK_DRIVE": "Shock Drive", - "BURN_DRIVE": "Burn Drive", - "CHILL_DRIVE": "Chill Drive", - "DOUSE_DRIVE": "Douse Drive", + "BLUE_ORB": "Orbe Azul", + "RED_ORB": "Orbe Vermelha", + "SHARP_METEORITE": "Meteorito Afiado", + "HARD_METEORITE": "Meteorito Duro", + "SMOOTH_METEORITE": " Meteorito Liso", + "ADAMANT_CRYSTAL": "Cristal Adamante", + "LUSTROUS_ORB": "Orbe Pérola", + "GRISEOUS_CORE": "Núcleo Platinado", + "REVEAL_GLASS": "Espelho da Verdade", + "GRACIDEA": "Gracídea", + "MAX_MUSHROOMS": "Cogumax", + "DARK_STONE": "Pedra das Trevas", + "LIGHT_STONE": "Pedra da Luz", + "PRISON_BOTTLE": "Garrafa Prisão", + "N_LUNARIZER": "Lunarizador N", + "N_SOLARIZER": "Solarizador N", + "RUSTED_SWORD": "Espada Enferrujada", + "RUSTED_SHIELD": "Escudo Enferrujado", + "ICY_REINS_OF_UNITY": "Rédeas de Gelo da União", + "SHADOW_REINS_OF_UNITY": "Rédeas Sombrias da União", + "WELLSPRING_MASK": "Máscara Nascente", + "HEARTHFLAME_MASK": "Máscara Fornalha", + "CORNERSTONE_MASK": "Máscara Alicerce", + "SHOCK_DRIVE": "MagneDisco", + "BURN_DRIVE": "IgneDisco", + "CHILL_DRIVE": "CrioDisco", + "DOUSE_DRIVE": "HidroDisco", }, } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/move.ts b/src/locales/pt_BR/move.ts index 97f24efee37..ce55b5264ec 100644 --- a/src/locales/pt_BR/move.ts +++ b/src/locales/pt_BR/move.ts @@ -3583,7 +3583,7 @@ export const move: MoveTranslationEntries = { }, "revivalBlessing": { name: "Revival Blessing", - effect: "O usuário concede uma bênção amorosa, revivendo um Pokémon da equipe que tenha desmaiado e restaurando metade do máximo de PS desse Pokémon." + effect: "O usuário concede uma bênção amorosa, reanimando um Pokémon da equipe que tenha desmaiado e restaurando metade do máximo de PS desse Pokémon." }, "saltCure": { name: "Salt Cure", diff --git a/src/locales/pt_BR/pokeball.ts b/src/locales/pt_BR/pokeball.ts index 26624d87134..c93af437ba2 100644 --- a/src/locales/pt_BR/pokeball.ts +++ b/src/locales/pt_BR/pokeball.ts @@ -4,7 +4,7 @@ export const pokeball: SimpleTranslationEntries = { "pokeBall": "Poké Bola", "greatBall": "Grande Bola", "ultraBall": "Ultra Bola", - "rogueBall": "Rogue Bola", - "masterBall": "Master Bola", - "luxuryBall": "Bola de Luxo", + "rogueBall": "Bola Rogue", + "masterBall": "Bole Mestra", + "luxuryBall": "Bola Luxo", } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/splash-messages.ts b/src/locales/pt_BR/splash-messages.ts new file mode 100644 index 00000000000..85c11300a9f --- /dev/null +++ b/src/locales/pt_BR/splash-messages.ts @@ -0,0 +1,37 @@ +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const splashMessages: SimpleTranslationEntries = { + "battlesWon": "Batalhas Ganhas!", + "joinTheDiscord": "Junte-se ao Discord!", + "infiniteLevels": "Níveis Infinitos!", + "everythingStacks": "Tudo Acumula!", + "optionalSaveScumming": "Você Pode Dar F5!", + "biomes": "35 Biomas!", + "openSource": "Código Aberto!", + "playWithSpeed": "Jogue na Velocidade 5x!", + "liveBugTesting": "Testamos os Bugs Ao Vivo!", + "heavyInfluence": "Grande Influência de RoR2!", + "pokemonRiskAndPokemonRain": "Pokémon Risk e Pokémon Rain!", + "nowWithMoreSalt": "O Choro é Livre!", + "infiniteFusionAtHome": "Infinite Fusion da Shopee!", + "brokenEggMoves": "Mov. de Ovo Apelões!", + "magnificent": "Magnífico!", + "mubstitute": "Mubstituto!", + "thatsCrazy": "Que Doidera!", + "oranceJuice": "Suco de Laranja!", + "questionableBalancing": "Balanceamento Questionável!", + "coolShaders": "Shader Maneiros!", + "aiFree": "Livre de IA!", + "suddenDifficultySpikes": "Ficou Difícil do Nada!", + "basedOnAnUnfinishedFlashGame": "Baseado num Jogo Online Inacabado!", + "moreAddictiveThanIntended": "Mais Viciante do que Planejado!", + "mostlyConsistentSeeds": "Consistente (na Maioria das Vezes)!", + "achievementPointsDontDoAnything": "Pontos de Conquista Não Fazem Nada!", + "youDoNotStartAtLevel": "Você Não Começa no Nível 2000!", + "dontTalkAboutTheManaphyEggIncident": "Não Fale do Incidente do Ovo de Manaphy!", + "alsoTryPokengine": "Também Jogue Pokéngine!", + "alsoTryEmeraldRogue": "Também Jogue Emerald Rogue!", + "alsoTryRadicalRed": "Também Jogue Radical Red!", + "eeveeExpo": "Eevee Expo!", + "ynoproject": "YNOproject!", +} as const; \ No newline at end of file diff --git a/src/locales/pt_BR/trainers.ts b/src/locales/pt_BR/trainers.ts index af6393bce8e..baf796a34db 100644 --- a/src/locales/pt_BR/trainers.ts +++ b/src/locales/pt_BR/trainers.ts @@ -16,10 +16,10 @@ export const titles: SimpleTranslationEntries = { export const trainerClasses: SimpleTranslationEntries = { "ace_trainer": "Trinador Ás", "ace_trainer_female": "Trinadora Ás", - "ace_duo": "Ace Duo", + "ace_duo": "Dupla Ás", "artist": "Artista", "artist_female": "Artista", - "backpackers": "Backpackers", + "backpackers": "Mochileiros", "backers": "Torcedores", "backpacker": "Mochileiro", "backpacker_female": "Mochileira", @@ -31,36 +31,36 @@ export const trainerClasses: SimpleTranslationEntries = { "black_belt": "Faixa Preta", "breeder": "Criador", "breeder_female": "Criadora", - "breeders": "Breeders", + "breeders": "Criadores", "clerk": "Funcionário", "clerk_female": "Funcionária", - "colleagues": "Colleagues", - "crush_kin": "Crush Kin", + "colleagues": "Funcionários", + "crush_kin": "Casal Lutador", "cyclist": "Ciclista", "cyclist_female": "Ciclista", - "cyclists": "Cyclists", + "cyclists": "Ciclistas", "dancer": "Dançarino", "dancer_female": "Dançarina", "depot_agent": "Ferroviário", "doctor": "Doutor", "doctor_female": "Doutora", - "fisherman": "Pescador", - "fisherman_female": "Pescadora", - "gentleman": "Gentleman", + "fishermen": "Pescador", + "fishermen_female": "Pescadora", + "gentleman": "Cavalheiro", "guitarist": "Guitarrista", "guitarist_female": "Guitarrista", "harlequin": "Arlequim", "hiker": "Montanhista", "hooligans": "Bandoleiro", - "hoopster": "Jogador de basquete", - "infielder": "Jogador de baseball", + "hoopster": "Jogador de Basquete", + "infielder": "Jogador de Baseball", "janitor": "Faxineiro", "lady": "Dama", "lass": "Senhorita", "linebacker": "Zagueiro", "maid": "Doméstica", "madame": "Madame", - "medical_team": "Medical Team", + "medical_team": "Equipe Médica", "musician": "Músico", "hex_maniac": "Ocultista", "nurse": "Enfermeira", @@ -68,48 +68,48 @@ export const trainerClasses: SimpleTranslationEntries = { "officer": "Policial", "parasol_lady": "Moça de Sombrinha", "pilot": "Piloto", - "pokefan": "Pokefã", - "pokefan_family": "Poké Fan Family", + "poké_fan": "Pokefã", + "poké_fan_family": "Família Pokefã", "preschooler": "Menino do Prezinho", "preschooler_female": "Menina do Prezinho", - "preschoolers": "Preschoolers", + "preschoolers": "Alunos do Prezinho", "psychic": "Médium", "psychic_female": "Médium", - "psychics": "Psychics", - "pokémon_ranger": "Pokémon Ranger", - "pokémon_rangers": "Pokémon Ranger", + "psychics": "Médiuns", + "pokémon_ranger": "Guarda Pokémon", + "pokémon_rangers": "Guardas Pokémon", "ranger": "Guarda", - "restaurant_staff": "Restaurant Staff", - "rich": "Rich", - "rich_female": "Rich", - "rich_boy": "Rich Boy", - "rich_couple": "Rich Couple", - "rich_kid": "Rich Kid", - "rich_kid_female": "Rich Kid", - "rich_kids": "Rich Kids", + "restaurant_staff": "Equipe do Restaurante", + "rich": "Burguês", + "rich_female": "Burguesa", + "rich_boy": "Riquinho", + "rich_couple": "Casal Burguês", + "rich_kid": "Garoto Rico", + "rich_kid_female": "Garota Rica", + "rich_kids": "Garotos Ricos", "roughneck": "Arruaceiro", "scientist": "Cientista", "scientist_female": "Cientista", - "scientists": "Scientists", + "scientists": "Cientistas", "smasher": "Tenista", "snow_worker": "Operário da Neve", "snow_worker_female": "Operária da Neve", "striker": "Atacante", "school_kid": "Estudante", "school_kid_female": "Estudante", - "school_kids": "School Kids", + "school_kids": "Estudantes", "swimmer": "Nadador", "swimmer_female": "Nadadora", - "swimmers": "Swimmers", + "swimmers": "Nadadores", "twins": "Gêmeos", "veteran": "Veterano", "veteran_female": "Veterana", - "veteran_duo": "Veteran Duo", + "veteran_duo": "Dupla Veterana", "waiter": "Garçom", "waitress": "Garçonete", "worker": "Operário", "worker_female": "Operária", - "workers": "Workers", + "workers": "Operários", "youngster": "Jovem", } as const; diff --git a/src/locales/zh_CN/config.ts b/src/locales/zh_CN/config.ts index cfdc7ab0d18..10fe2bc884e 100644 --- a/src/locales/zh_CN/config.ts +++ b/src/locales/zh_CN/config.ts @@ -21,6 +21,7 @@ import { weather } from "./weather"; import { battleMessageUiHandler } from "./battle-message-ui-handler"; import { berry } from "./berry"; + export const zhCnConfig = { ability: ability, abilityTriggers: abilityTriggers, From a2299ee0557b673ad588c0cf2cdbaa9b4395c2cb Mon Sep 17 00:00:00 2001 From: Alessandro Bruzzese <69127023+Bruzzii@users.noreply.github.com> Date: Fri, 17 May 2024 18:43:38 +0200 Subject: [PATCH 20/32] Update Italian trainers.ts (#1037) --- src/locales/it/trainers.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/it/trainers.ts b/src/locales/it/trainers.ts index 443718693ca..32488a845ba 100644 --- a/src/locales/it/trainers.ts +++ b/src/locales/it/trainers.ts @@ -2,13 +2,13 @@ import {SimpleTranslationEntries} from "#app/plugins/i18n"; // Titles of special trainers like gym leaders, elite four, and the champion export const titles: SimpleTranslationEntries = { - "elite_four": "Elite Four", - "gym_leader": "Gym Leader", - "gym_leader_female": "Gym Leader", - "champion": "Champion", - "rival": "Rival", - "professor": "Professor", - "frontier_brain": "Frontier Brain", + "elite_four": "Superquattro", + "gym_leader": "Capopalestra", + "gym_leader_female": "Capopalestra", + "champion": "Campione", + "rival": "Rivale", + "professor": "Professore", + "frontier_brain": "Asso Lotta", // Maybe if we add the evil teams we can add "Team Rocket" and "Team Aqua" etc. here as well as "Team Rocket Boss" and "Team Aqua Admin" etc. } as const; From d2a8c4a150a3f3521618e06c3698afbbc5d8d26a Mon Sep 17 00:00:00 2001 From: Alessandro Bruzzese <69127023+Bruzzii@users.noreply.github.com> Date: Fri, 17 May 2024 18:58:47 +0200 Subject: [PATCH 21/32] Update Italian berry.ts (#1039) --- src/locales/it/berry.ts | 44 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/locales/it/berry.ts b/src/locales/it/berry.ts index 8c8bc5ee280..27a30438a59 100644 --- a/src/locales/it/berry.ts +++ b/src/locales/it/berry.ts @@ -2,47 +2,47 @@ import { BerryTranslationEntries } from "#app/plugins/i18n"; export const berry: BerryTranslationEntries = { "SITRUS": { - name: "Sitrus Berry", - effect: "Restores 25% HP if HP is below 50%", + name: "Baccacedro", + effect: "Restituisce il 25% dei PS se i PS sono sotto il 50%", }, "LUM": { - name: "Lum Berry", - effect: "Cures any non-volatile status condition and confusion", + name: "Baccaprugna", + effect: "Se tenuta da un Pokémon risolve qualsiasi problema di stato", }, "ENIGMA": { - name: "Enigma Berry", - effect: "Restores 25% HP if hit by a super effective move", + name: "Baccaenigma", + effect: "Restituisce il 25% dei PS se viene colpito da una mossa superefficace", }, "LIECHI": { - name: "Liechi Berry", - effect: "Raises Attack if HP is below 25%", + name: "Baccalici", + effect: "Aumenta l'Attacco se i PS sono sotto il 25%", }, "GANLON": { - name: "Ganlon Berry", - effect: "Raises Defense if HP is below 25%", + name: "Baccalongan", + effect: "Aumenta la Difesa se i PS sono sotto il 25%", }, "PETAYA": { - name: "Petaya Berry", - effect: "Raises Sp. Atk if HP is below 25%", + name: "Baccapitaya", + effect: "Aumenta l'Attacco Speciale se i PS sono sotto il 25%", }, "APICOT": { - name: "Apicot Berry", - effect: "Raises Sp. Def if HP is below 25%", + name: "Baccacocca", + effect: "Aumenta la Difesa Speciale se i PS sono sotto il 25%", }, "SALAC": { - name: "Salac Berry", - effect: "Raises Speed if HP is below 25%", + name: "Baccasalak", + effect: "Aumenta la Velocità se i PS sono sotto il 25%", }, "LANSAT": { - name: "Lansat Berry", - effect: "Raises critical hit ratio if HP is below 25%", + name: "Baccalangsa", + effect: "Aumenta la probabilità di Colpo Critico se i PS sono sotto il 25%", }, "STARF": { - name: "Starf Berry", - effect: "Sharply raises a random stat if HP is below 25%", + name: "Baccambola", + effect: "Aumenta drasticamente una statistica casuale se i PS sono sotto il 25%", }, "LEPPA": { - name: "Leppa Berry", - effect: "Restores 10 PP to a move if its PP reaches 0", + name: "Baccamela", + effect: "Ripristina 10 PP a una mossa se i suoi PP raggiungono lo 0", }, } as const; \ No newline at end of file From b55fb8db371d2ba225efc3288b23dbc9ff8db77d Mon Sep 17 00:00:00 2001 From: Alessandro Bruzzese <69127023+Bruzzii@users.noreply.github.com> Date: Fri, 17 May 2024 19:02:51 +0200 Subject: [PATCH 22/32] Update Italian battle-message-ui-handler.ts (#1040) --- src/locales/it/battle-message-ui-handler.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/locales/it/battle-message-ui-handler.ts b/src/locales/it/battle-message-ui-handler.ts index 346f856872c..917de48fd5e 100644 --- a/src/locales/it/battle-message-ui-handler.ts +++ b/src/locales/it/battle-message-ui-handler.ts @@ -1,10 +1,10 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const battleMessageUiHandler: SimpleTranslationEntries = { - "ivBest": "Best", - "ivFantastic": "Fantastic", - "ivVeryGood": "Very Good", - "ivPrettyGood": "Pretty Good", - "ivDecent": "Decent", - "ivNoGood": "No Good", + "ivBest": "Stellare", + "ivFantastic": "Eccellente", + "ivVeryGood": "Notevole", + "ivPrettyGood": "Normale", + "ivDecent": "Sufficiente", + "ivNoGood": "Mediocre", } as const; \ No newline at end of file From 7935f280896bb938aae4eea3bc95434be730d8cc Mon Sep 17 00:00:00 2001 From: Alessandro Bruzzese <69127023+Bruzzii@users.noreply.github.com> Date: Fri, 17 May 2024 19:18:03 +0200 Subject: [PATCH 23/32] Update Italian battle.ts (#1042) --- src/locales/it/battle.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/it/battle.ts b/src/locales/it/battle.ts index 3eff2493ed6..c9cf46554c0 100644 --- a/src/locales/it/battle.ts +++ b/src/locales/it/battle.ts @@ -23,16 +23,16 @@ export const battle: SimpleTranslationEntries = { "attackFailed": "Ma ha fallito!", "attackHitsCount": `Colpito {{count}} volta/e!`, "expGain": "{{pokemonName}} ha guadagnato\n{{exp}} Punti Esperienza!", - "levelUp": "{{pokemonName}} è salito al \nlivello {{level}}!", - "learnMove": "{{pokemonName}} impara \n{{moveName}}!", + "levelUp": "{{pokemonName}} è salito al\nlivello {{level}}!", + "learnMove": "{{pokemonName}} impara\n{{moveName}}!", "learnMovePrompt": "{{pokemonName}} vorrebbe imparare\n{{moveName}}.", - "learnMoveLimitReached": "Tuttavia, {{pokemonName}} \nconosce già quattro mosse.", - "learnMoveReplaceQuestion": "Vuoi che ne dimentichi una e al suo \nposto la sostituisca con {{moveName}}?", - "learnMoveStopTeaching": "Vuoi smettere di fargli imparare \n{{moveName}}?", + "learnMoveLimitReached": "Tuttavia, {{pokemonName}}\nconosce già quattro mosse.", + "learnMoveReplaceQuestion": "Vuoi che ne dimentichi una e al suo\nposto apprenda {{moveName}}?", + "learnMoveStopTeaching": "Vuoi smettere di fargli imparare\n{{moveName}}?", "learnMoveNotLearned": "{{pokemonName}} non ha imparato\n{{moveName}}.", "learnMoveForgetQuestion": "Quale mossa deve dimenticare?", "learnMoveForgetSuccess": "{{pokemonName}} ha dimenticato la mossa\n{{moveName}}.", - "countdownPoof": "@d{32}1, @d{15}2, @d{15}e@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Puff!", + "countdownPoof": "@d{32}1, @d{15}2, @d{15}e@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}ta-daaaa!", "learnMoveAnd": "E…", "levelCapUp": "Il livello massimo\nè aumentato a {{levelCap}}!", "moveNotImplemented": "{{moveName}} non è ancora implementata e non può essere selezionata.", @@ -51,6 +51,6 @@ export const battle: SimpleTranslationEntries = { "escapeVerbFlee": "fuggendo", "notDisabled": "{{pokemonName}}'s {{moveName}} non è più\ndisabilitata!", "skipItemQuestion": "Sei sicuro di non voler prendere nessun oggetto?", - "eggHatching": "Oh?", + "eggHatching": "Oh!", "ivScannerUseQuestion": "Vuoi usare lo scanner di IV su {{pokemonName}}?" } as const; \ No newline at end of file From 04a345a6cc927c4d8857ab8a36279f623a50c96b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Ricardo=20Fleury=20Oliveira?= Date: Fri, 17 May 2024 14:19:38 -0300 Subject: [PATCH 24/32] fixed master ball (#1043) --- src/locales/pt_BR/pokeball.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/pt_BR/pokeball.ts b/src/locales/pt_BR/pokeball.ts index c93af437ba2..75d81ebde03 100644 --- a/src/locales/pt_BR/pokeball.ts +++ b/src/locales/pt_BR/pokeball.ts @@ -5,6 +5,6 @@ export const pokeball: SimpleTranslationEntries = { "greatBall": "Grande Bola", "ultraBall": "Ultra Bola", "rogueBall": "Bola Rogue", - "masterBall": "Bole Mestra", + "masterBall": "Bola Mestra", "luxuryBall": "Bola Luxo", } as const; \ No newline at end of file From 6880c7afe01a724b4bb231f366862ff008051164 Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Fri, 17 May 2024 12:37:38 -0500 Subject: [PATCH 25/32] Updated Logic when Animating Trainer Sprites (#1016) Updated the check in place when attempting to play a trainer sprite. Separated it into a separate function to reduce reusing code and to make it easier to exit early when failures occur. --- src/field/trainer.ts | 45 ++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/field/trainer.ts b/src/field/trainer.ts index faa691406b9..60497239488 100644 --- a/src/field/trainer.ts +++ b/src/field/trainer.ts @@ -370,6 +370,34 @@ export default class Trainer extends Phaser.GameObjects.Container { this.getTintSprites().map((tintSprite, i) => tintSprite.setTexture(this.getKey(!!i)).setFrame(0)); } + /** + * Attempts to animate a given set of {@linkcode Phaser.GameObjects.Sprite} + * @see {@linkcode Phaser.GameObjects.Sprite.play} + * @param sprite {@linkcode Phaser.GameObjects.Sprite} to animate + * @param tintSprite {@linkcode Phaser.GameObjects.Sprite} placed on top of the sprite to add a color tint + * @param animConfig {@linkcode Phaser.Types.Animations.PlayAnimationConfig} to pass to {@linkcode Phaser.GameObjects.Sprite.play} + * @returns true if the sprite was able to be animated + */ + tryPlaySprite(sprite: Phaser.GameObjects.Sprite, tintSprite: Phaser.GameObjects.Sprite, animConfig: Phaser.Types.Animations.PlayAnimationConfig): boolean { + // Show an error in the console if there isn't a texture loaded + if (sprite.texture.key === '__MISSING') { + console.error(`No texture found for '${animConfig.key}'!`); + + return false; + } + // Don't try to play an animation when there isn't one + if (sprite.texture.frameTotal <= 1) { + console.warn(`No animation found for '${animConfig.key}'. Is this intentional?`); + + return false; + } + + sprite.play(animConfig); + tintSprite.play(animConfig); + + return true; + } + playAnim(): void { const trainerAnimConfig = { key: this.getKey(), @@ -379,14 +407,9 @@ export default class Trainer extends Phaser.GameObjects.Container { const sprites = this.getSprites(); const tintSprites = this.getTintSprites(); - // Don't try to play an animation when there isn't one - if (sprites.length > 1) { - sprites[0].play(trainerAnimConfig); - tintSprites[0].play(trainerAnimConfig); - } - else - console.warn(`No animation found for '${this.getKey()}'. Is this intentional?`); + this.tryPlaySprite(sprites[0], tintSprites[0], trainerAnimConfig); + // Queue an animation for the second trainer if this is a double battle against two separate trainers if (this.variant === TrainerVariant.DOUBLE && !this.config.doubleOnly) { const partnerTrainerAnimConfig = { key: this.getKey(true), @@ -394,13 +417,7 @@ export default class Trainer extends Phaser.GameObjects.Container { startFrame: 0 }; - // Don't try to play an animation when there isn't one - if (sprites.length > 1) { - sprites[1].play(partnerTrainerAnimConfig); - tintSprites[1].play(partnerTrainerAnimConfig); - } - else - console.warn(`No animation found for '${this.getKey()}'. Is this intentional?`); + this.tryPlaySprite(sprites[1], tintSprites[1], partnerTrainerAnimConfig); } } From 0a871fb0d05c156a08926d5d74cc9fb2d2795619 Mon Sep 17 00:00:00 2001 From: Madmadness65 Date: Fri, 17 May 2024 12:41:16 -0500 Subject: [PATCH 26/32] Fix cut off dialogue for Morty --- src/data/dialogue.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/data/dialogue.ts b/src/data/dialogue.ts index e54196d9e25..8d1be662f73 100644 --- a/src/data/dialogue.ts +++ b/src/data/dialogue.ts @@ -909,7 +909,8 @@ export const trainerTypeDialogue = { }, [TrainerType.MORTY]: { encounter: [ - `With a little more, I could see a future in which I meet the legendary Pokémon. You're going to help me reach that level!`, + `With a little more, I could see a future in which I meet the legendary Pokémon. + $You're going to help me reach that level!`, `It's said that a rainbow-hued Pokémon will come down to appear before a truly powerful Trainer. $I believed that tale, so I have secretly trained here all my life. As a result, I can now see what others cannot. $I see a shadow of the person who will make the Pokémon appear. @@ -924,7 +925,8 @@ export const trainerTypeDialogue = { `I see… Your journey has taken you to far-away places and you have witnessed much more than I. $I envy you for that…`, `How is this possible…`, - `I don't think our potentials are so different. But you seem to have something more than that… So be it.`, + `I don't think our potentials are so different. + $But you seem to have something more than that… So be it.`, `Guess I need more training.`, `That's a shame.` ], From fa6ab299467c3fb2dcfb699bdf6f8410f7a4912b Mon Sep 17 00:00:00 2001 From: Somod1 <160222354+Somod1@users.noreply.github.com> Date: Sat, 18 May 2024 02:36:52 +0800 Subject: [PATCH 27/32] Update zh_CN translation (#1047) * Add files via upload * Update zh-CN translation Adjusted some Chinese translations and added line breaks to some item descriptions in modifier-type.ts * Add files via upload --- src/locales/zh_CN/fight-ui-handler.ts | 12 ++-- src/locales/zh_CN/growth.ts | 18 +++--- src/locales/zh_CN/modifier-type.ts | 40 +++++++------- src/locales/zh_CN/pokemon-info.ts | 80 +++++++++++++-------------- 4 files changed, 75 insertions(+), 75 deletions(-) diff --git a/src/locales/zh_CN/fight-ui-handler.ts b/src/locales/zh_CN/fight-ui-handler.ts index d86767bd13d..8287a4d80db 100644 --- a/src/locales/zh_CN/fight-ui-handler.ts +++ b/src/locales/zh_CN/fight-ui-handler.ts @@ -1,7 +1,7 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const fightUiHandler: SimpleTranslationEntries = { - "pp": "PP", - "power": "威力", - "accuracy": "命中率", +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const fightUiHandler: SimpleTranslationEntries = { + "pp": "PP", + "power": "威力", + "accuracy": "命中", } as const; \ No newline at end of file diff --git a/src/locales/zh_CN/growth.ts b/src/locales/zh_CN/growth.ts index daeeed63385..49d6b59a935 100644 --- a/src/locales/zh_CN/growth.ts +++ b/src/locales/zh_CN/growth.ts @@ -1,10 +1,10 @@ -import { SimpleTranslationEntries } from "#app/plugins/i18n"; - -export const growth: SimpleTranslationEntries = { - "Erratic": "最快", - "Fast": "快", - "Medium_Fast": "较快", - "Medium_Slow": "较慢", - "Slow": "慢", - "Fluctuating": "最慢" +import { SimpleTranslationEntries } from "#app/plugins/i18n"; + +export const growth: SimpleTranslationEntries = { + "Erratic": "最快", + "Fast": "较快", + "Medium_Fast": "快", + "Medium_Slow": "慢", + "Slow": "较慢", + "Fluctuating": "最慢" } as const; \ No newline at end of file diff --git a/src/locales/zh_CN/modifier-type.ts b/src/locales/zh_CN/modifier-type.ts index 9555eb3ce7d..e826c743fbc 100644 --- a/src/locales/zh_CN/modifier-type.ts +++ b/src/locales/zh_CN/modifier-type.ts @@ -20,7 +20,7 @@ export const modifierType: ModifierTypeTranslationEntries = { description: "为一只宝可梦回复 {{restorePoints}} HP 或 {{restorePercent}}% HP,取最大值", extra: { "fully": "为一只宝可梦回复全部HP", - "fullyWithStatus": "为一只宝可梦回复全部HP并消除所有负面状态", + "fullyWithStatus": "为一只宝可梦回复全部HP并消除所有负面\n状态", } }, "PokemonReviveModifierType": { @@ -42,11 +42,11 @@ export const modifierType: ModifierTypeTranslationEntries = { } }, "PokemonPpUpModifierType": { - description: "为一只宝可梦的一个招式永久增加{{upPoints}}点PP每5点当前最大PP (最多3点)", + description: "为一只宝可梦的一个招式永久增加{{upPoints}}点\nPP每5点当前最大PP (最多3点)", }, "PokemonNatureChangeModifierType": { name: "{{natureName}}薄荷", - description: "将一只宝可梦的性格改为{{natureName}}并为该宝可梦永久解锁该性格.", + description: "将一只宝可梦的性格改为{{natureName}}并为该宝可\n梦永久解锁该性格.", }, "DoubleBattleChanceBoosterModifierType": { description: "接下来的{{battleCount}}场战斗是双打的概率翻倍", @@ -64,7 +64,7 @@ export const modifierType: ModifierTypeTranslationEntries = { description: "所有成员宝可梦等级提升1级", }, "PokemonBaseStatBoosterModifierType": { - description: "增加持有者的{{statName}}10%. 个体值越高堆叠上限越高.", + description: "增加持有者的{{statName}}10%,个体值越高堆叠\n上限越高.", }, "AllPokemonFullHpRestoreModifierType": { description: "所有宝可梦完全回复HP", @@ -81,10 +81,10 @@ export const modifierType: ModifierTypeTranslationEntries = { }, }, "ExpBoosterModifierType": { - description: "EXP.获取量增加{{boostPercent}}%", + description: "经验值获取量增加{{boostPercent}}%", }, "PokemonExpBoosterModifierType": { - description: "持有者EXP.获取量增加{{boostPercent}}%", + description: "持有者经验值获取量增加{{boostPercent}}%", }, "PokemonFriendshipBoosterModifierType": { description: "每场战斗获得的好感度提升50%", @@ -93,7 +93,7 @@ export const modifierType: ModifierTypeTranslationEntries = { description: "招式命中率增加{{accuracyAmount}} (最大100)", }, "PokemonMultiHitModifierType": { - description: "攻击造成一次额外伤害,每次堆叠额外伤害分别衰减60/75/82.5%", + description: "攻击造成一次额外伤害,每次堆叠额外伤害\n分别衰减60/75/82.5%", }, "TmModifierType": { name: "招式学习器 {{moveId}} - {{moveName}}", @@ -106,7 +106,7 @@ export const modifierType: ModifierTypeTranslationEntries = { description: "使某些宝可梦更改形态", }, "FusePokemonModifierType": { - description: "融合两只宝可梦 (改变特性, 平分基础点数和属性, 共享招式池)", + description: "融合两只宝可梦 (改变特性, 平分基础点数\n和属性, 共享招式池)", }, "TerastallizeModifierType": { name: "{{teraType}}太晶碎块", @@ -128,9 +128,9 @@ export const modifierType: ModifierTypeTranslationEntries = { "RARE_CANDY": { name: "神奇糖果" }, "RARER_CANDY": { name: "超神奇糖果" }, - "MEGA_BRACELET": { name: "超级手镯", description: "能让携带着超级石战斗的宝可梦进行超级进化" }, - "DYNAMAX_BAND": { name: "极巨腕带", description: "能让携带着极巨菇菇战斗的宝可梦进行极巨化" }, - "TERA_ORB": { name: "太晶珠", description: "能让携带着太晶碎块战斗的宝可梦进行太晶化" }, + "MEGA_BRACELET": { name: "超级手镯", description: "能让携带着超级石战斗的宝可梦进行\n超级进化" }, + "DYNAMAX_BAND": { name: "极巨腕带", description: "能让携带着极巨菇菇战斗的宝可梦进行\n极巨化" }, + "TERA_ORB": { name: "太晶珠", description: "能让携带着太晶碎块战斗的宝可梦进行\n太晶化" }, "MAP": { name: "地图", description: "允许你在切换宝可梦群落时选择目的地"}, @@ -165,9 +165,9 @@ export const modifierType: ModifierTypeTranslationEntries = { "MEMORY_MUSHROOM": { name: "回忆蘑菇", description: "回忆一个宝可梦已经遗忘的招式" }, "EXP_SHARE": { name: "学习装置", description: "未参加对战的宝可梦获得20%的经验值" }, - "EXP_BALANCE": { name: "均衡型学习装置", description: "增加战斗中获得的EXP.分配给低级成员宝可梦的权重" }, + "EXP_BALANCE": { name: "均衡型学习装置", description: "队伍中的低级宝可梦获得更多经验值" }, - "OVAL_CHARM": { name: "圆形护符", description: "当多只宝可梦参与战斗, 分别获得总EXP.10%的额外EXP." }, + "OVAL_CHARM": { name: "圆形护符", description: "当多只宝可梦参与战斗,分别获得总经验值\n10%的额外经验值" }, "EXP_CHARM": { name: "经验护符" }, "SUPER_EXP_CHARM": { name: "超级经验护符" }, @@ -200,21 +200,21 @@ export const modifierType: ModifierTypeTranslationEntries = { "BERRY_POUCH": { name: "树果袋", description: "使用树果时有25%的几率不会消耗树果" }, - "FOCUS_BAND": { name: "气势头带", description: "携带该道具的宝可梦有10%几率在受到攻击而将陷入濒死状态时,保留1点HP不陷入濒死状态。" }, + "FOCUS_BAND": { name: "气势头带", description: "携带该道具的宝可梦有10%几率在受到\n攻击而将陷入濒死状态时,保留1点HP不陷入濒死状态" }, - "QUICK_CLAW": { name: "先制之爪", description: "有10%的几率无视速度优先使出招式 (先制技能优先)" }, + "QUICK_CLAW": { name: "先制之爪", description: "有10%的几率无视速度优先使出招式\n(先制技能优先)" }, - "KINGS_ROCK": { name: "王者之证", description: "携带该道具的宝可梦使用任意原本不会造成畏缩状态的攻击招式并造成伤害时,有10%几率使目标陷入畏缩状态。" }, + "KINGS_ROCK": { name: "王者之证", description: "携带该道具的宝可梦使用任意原本不会造成\n畏缩状态的攻击招式并造成伤害时,有\n10%几率使目标陷入畏缩状态" }, - "LEFTOVERS": { name: "吃剩的东西", description: "携带该道具的宝可梦在每个回合结束时恢复最大HP的1/16" }, - "SHELL_BELL": { name: "贝壳之铃", description: "携带该道具的宝可梦在攻击对方成功造成伤害时,携带者的HP会恢复其所造成伤害的1/8" }, + "LEFTOVERS": { name: "吃剩的东西", description: "携带该道具的宝可梦在每个回合结束时恢复\n最大HP的1/16" }, + "SHELL_BELL": { name: "贝壳之铃", description: "携带该道具的宝可梦在攻击对方成功造成伤\n害时,携带者的HP会恢复其所造成伤害\n的1/8" }, - "BATON": { name: "接力棒", description: "允许在切换宝可梦时保留能力变化, 对陷阱同样生效" }, + "BATON": { name: "接力棒", description: "允许在切换宝可梦时保留能力变化, 对陷阱\n同样生效" }, "SHINY_CHARM": { name: "闪耀护符", description: "显著增加野生宝可梦的闪光概率" }, "ABILITY_CHARM": { name: "特性护符", description: "显著增加野生宝可梦有隐藏特性的概率" }, - "IV_SCANNER": { name: "个体值探测器", description: "允许扫描野生宝可梦的个体值。 每个次显示2个个体值. 最好的个体值优先显示" }, + "IV_SCANNER": { name: "个体值探测器", description: "允许扫描野生宝可梦的个体值。 每个次显示\n2个个体值. 最好的个体值优先显示" }, "DNA_SPLICERS": { name: "基因之楔" }, diff --git a/src/locales/zh_CN/pokemon-info.ts b/src/locales/zh_CN/pokemon-info.ts index d99d8edfd76..09c843bb8c2 100644 --- a/src/locales/zh_CN/pokemon-info.ts +++ b/src/locales/zh_CN/pokemon-info.ts @@ -1,41 +1,41 @@ -import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; - -export const pokemonInfo: PokemonInfoTranslationEntries = { - Stat: { - "HP": "最大HP", - "HPshortened": "最大HP", - "ATK": "攻击", - "ATKshortened": "攻击", - "DEF": "防御", - "DEFshortened": "防御", - "SPATK": "特攻", - "SPATKshortened": "特攻", - "SPDEF": "特防", - "SPDEFshortened": "特防", - "SPD": "速度", - "SPDshortened": "速度" - }, - - Type: { - "UNKNOWN": "Unknown", - "NORMAL": "一般", - "FIGHTING": "格斗", - "FLYING": "飞行", - "POISON": "毒", - "GROUND": "地面", - "ROCK": "岩石", - "BUG": "虫", - "GHOST": "幽灵", - "STEEL": "钢", - "FIRE": "火", - "WATER": "水", - "GRASS": "草", - "ELECTRIC": "电", - "PSYCHIC": "超能力", - "ICE": "冰", - "DRAGON": "龙", - "DARK": "恶", - "FAIRY": "妖精", - "STELLAR": "星晶", - }, +import { PokemonInfoTranslationEntries } from "#app/plugins/i18n"; + +export const pokemonInfo: PokemonInfoTranslationEntries = { + Stat: { + "HP": "最大HP", + "HPshortened": "最大HP", + "ATK": "攻击", + "ATKshortened": "攻击", + "DEF": "防御", + "DEFshortened": "防御", + "SPATK": "特攻", + "SPATKshortened": "特攻", + "SPDEF": "特防", + "SPDEFshortened": "特防", + "SPD": "速度", + "SPDshortened": "速度" + }, + + Type: { + "UNKNOWN": "未知", + "NORMAL": "一般", + "FIGHTING": "格斗", + "FLYING": "飞行", + "POISON": "毒", + "GROUND": "地面", + "ROCK": "岩石", + "BUG": "虫", + "GHOST": "幽灵", + "STEEL": "钢", + "FIRE": "火", + "WATER": "水", + "GRASS": "草", + "ELECTRIC": "电", + "PSYCHIC": "超能力", + "ICE": "冰", + "DRAGON": "龙", + "DARK": "恶", + "FAIRY": "妖精", + "STELLAR": "星晶", + }, } as const; \ No newline at end of file From 6bcf4e008a77026a47a22605c482b1045a4243a0 Mon Sep 17 00:00:00 2001 From: Charlie Giang <146129103+charliegiang@users.noreply.github.com> Date: Fri, 17 May 2024 15:03:55 -0500 Subject: [PATCH 28/32] Fix sparkly swirl cure status (#1051) --- src/data/move.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/data/move.ts b/src/data/move.ts index 99ef179ad30..8814aa745bf 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -6483,7 +6483,8 @@ export function initMoves() { new AttackMove(Moves.FREEZY_FROST, Type.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7) .attr(ResetStatsAttr), new AttackMove(Moves.SPARKLY_SWIRL, Type.FAIRY, MoveCategory.SPECIAL, 120, 85, 5, -1, 0, 7) - .attr(PartyStatusCureAttr, null, Abilities.NONE), + .attr(PartyStatusCureAttr, null, Abilities.NONE) + .target(MoveTarget.PARTY), new AttackMove(Moves.VEEVEE_VOLLEY, Type.NORMAL, MoveCategory.PHYSICAL, -1, -1, 20, -1, 0, 7) .attr(FriendshipPowerAttr), new AttackMove(Moves.DOUBLE_IRON_BASH, Type.STEEL, MoveCategory.PHYSICAL, 60, 100, 5, 30, 0, 7) From 1f1c243415cdc58d9049f9dc176f4f897da88869 Mon Sep 17 00:00:00 2001 From: Madmadness65 Date: Fri, 17 May 2024 15:37:34 -0500 Subject: [PATCH 29/32] Revert "Fix sparkly swirl cure status (#1051)" This reverts commit 6bcf4e008a77026a47a22605c482b1045a4243a0. --- src/data/move.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/data/move.ts b/src/data/move.ts index 8814aa745bf..99ef179ad30 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -6483,8 +6483,7 @@ export function initMoves() { new AttackMove(Moves.FREEZY_FROST, Type.ICE, MoveCategory.SPECIAL, 100, 90, 10, -1, 0, 7) .attr(ResetStatsAttr), new AttackMove(Moves.SPARKLY_SWIRL, Type.FAIRY, MoveCategory.SPECIAL, 120, 85, 5, -1, 0, 7) - .attr(PartyStatusCureAttr, null, Abilities.NONE) - .target(MoveTarget.PARTY), + .attr(PartyStatusCureAttr, null, Abilities.NONE), new AttackMove(Moves.VEEVEE_VOLLEY, Type.NORMAL, MoveCategory.PHYSICAL, -1, -1, 20, -1, 0, 7) .attr(FriendshipPowerAttr), new AttackMove(Moves.DOUBLE_IRON_BASH, Type.STEEL, MoveCategory.PHYSICAL, 60, 100, 5, 30, 0, 7) From 5dd017fa30c5e0423b0169881d7b23efbcadb599 Mon Sep 17 00:00:00 2001 From: Matthew Olker Date: Fri, 17 May 2024 18:13:12 -0400 Subject: [PATCH 30/32] Begin shiny weekend --- src/field/pokemon.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/field/pokemon.ts b/src/field/pokemon.ts index eb08af3da55..0a5e0a6a991 100644 --- a/src/field/pokemon.ts +++ b/src/field/pokemon.ts @@ -1096,8 +1096,11 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { let shinyThreshold = new Utils.IntegerHolder(32); if (thresholdOverride === undefined) { - if (!this.hasTrainer()) + if (!this.hasTrainer()) { + if (new Date() < new Date('2024-05-21')) + shinyThreshold.value *= 3; this.scene.applyModifiers(ShinyRateBoosterModifier, true, shinyThreshold); + } } else shinyThreshold.value = thresholdOverride; From f3c4a3838b842e30f2021044c80de63b4a60dda8 Mon Sep 17 00:00:00 2001 From: snnh <90502347+snnh@users.noreply.github.com> Date: Sat, 18 May 2024 09:16:24 +0800 Subject: [PATCH 31/32] Update and fix zh_CN translation (#1070) * Update zh_CN translation * fix zh_CN translation --- src/locales/zh_CN/battle-message-ui-handler.ts | 12 ++++++------ src/locales/zh_CN/weather.ts | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/locales/zh_CN/battle-message-ui-handler.ts b/src/locales/zh_CN/battle-message-ui-handler.ts index 346f856872c..843a8886093 100644 --- a/src/locales/zh_CN/battle-message-ui-handler.ts +++ b/src/locales/zh_CN/battle-message-ui-handler.ts @@ -1,10 +1,10 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const battleMessageUiHandler: SimpleTranslationEntries = { - "ivBest": "Best", - "ivFantastic": "Fantastic", - "ivVeryGood": "Very Good", - "ivPrettyGood": "Pretty Good", - "ivDecent": "Decent", - "ivNoGood": "No Good", + "ivBest": "最棒", + "ivFantastic": "了不起", + "ivVeryGood": "非常好", + "ivPrettyGood": "相当好", + "ivDecent": "一般般", + "ivNoGood": "也许不行", } as const; \ No newline at end of file diff --git a/src/locales/zh_CN/weather.ts b/src/locales/zh_CN/weather.ts index 50fb2227b2b..5d88ac351bc 100644 --- a/src/locales/zh_CN/weather.ts +++ b/src/locales/zh_CN/weather.ts @@ -8,14 +8,14 @@ export const weather: SimpleTranslationEntries = { "sunnyLapseMessage": "日照很强。", "sunnyClearMessage": "日照复原了。", - "rainStartMessage": "下大雨了!", + "rainStartMessage": "开始下雨了!", "rainLapseMessage": "雨继续下。", "rainClearMessage": "雨停了。", - "sandstormStartMessage": "开始刮沙尘暴了!", - "sandstormLapseMessage": "沙尘暴肆虐。", - "sandstormClearMessage": "沙尘暴停止了。", - "sandstormDamageMessage": "沙尘暴袭击了{{pokemonPrefix}}{{pokemonName}}!", + "sandstormStartMessage": "开始刮沙暴了!", + "sandstormLapseMessage": "沙暴肆虐。", + "sandstormClearMessage": "沙暴停止了!", + "sandstormDamageMessage": "沙暴袭击了{{pokemonPrefix}}{{pokemonName}}!", "hailStartMessage": "开始下冰雹了!", "hailLapseMessage": "冰雹继续肆虐。", From 4a9664c04c2d3c77d97c0a92a9f83f66944fc013 Mon Sep 17 00:00:00 2001 From: Benjamin Odom Date: Fri, 17 May 2024 20:20:02 -0500 Subject: [PATCH 32/32] Fix Entry Hazard Miss (#984) * Fix Entry Hazard Miss Made Entry Hazards bypass the accuracy check as they cannot miss a target. There's still one more bug to fix with this but it requires way more code changes. This change needed to be done as well, so I'm getting it out early. * Update move.ts --- src/data/move.ts | 1 + src/phases.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/data/move.ts b/src/data/move.ts index 99ef179ad30..6849a0fe7ce 100644 --- a/src/data/move.ts +++ b/src/data/move.ts @@ -55,6 +55,7 @@ export enum MoveTarget { /** {@link https://bulbapedia.bulbagarden.net/wiki/Category:Moves_that_target_all_Pok%C3%A9mon Moves that target all Pokemon} */ ALL, USER_SIDE, + /** {@link https://bulbapedia.bulbagarden.net/wiki/Category:Entry_hazard-creating_moves Entry hazard-creating moves} */ ENEMY_SIDE, BOTH_SIDES, PARTY diff --git a/src/phases.ts b/src/phases.ts index 1137c85afa6..f70fe9e857a 100644 --- a/src/phases.ts +++ b/src/phases.ts @@ -2597,7 +2597,8 @@ export class MoveEffectPhase extends PokemonPhase { } hitCheck(target: Pokemon): boolean { - if (this.move.getMove().moveTarget === MoveTarget.USER) + // Moves targeting the user and entry hazards can't miss + if ([MoveTarget.USER, MoveTarget.ENEMY_SIDE].includes(this.move.getMove().moveTarget)) return true; const user = this.getUserPokemon();