Added catalan as a language (#3400)

This commit is contained in:
Jannik Tappert 2024-08-07 10:45:29 +02:00 committed by GitHub
parent a4c913d963
commit df9596a9dc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
51 changed files with 11754 additions and 4 deletions

View File

@ -0,0 +1,63 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const abilityTriggers: SimpleTranslationEntries = {
"blockRecoilDamage": "{{pokemonName}}'s {{abilityName}}\nprotected it from recoil!",
"badDreams": "{{pokemonName}} is tormented!",
"costar": "{{pokemonName}} copied {{allyName}}'s stat changes!",
"iceFaceAvoidedDamage": "{{pokemonName}} avoided\ndamage with {{abilityName}}!",
"perishBody": "{{pokemonName}}'s {{abilityName}}\nwill faint both pokemon in 3 turns!",
"poisonHeal": "{{pokemonName}}'s {{abilityName}}\nrestored its HP a little!",
"trace": "{{pokemonName}} copied {{targetName}}'s\n{{abilityName}}!",
"windPowerCharged": "Being hit by {{moveName}} charged {{pokemonName}} with power!",
"quickDraw": "{{pokemonName}} can act faster than normal, thanks to its Quick Draw!",
"blockItemTheft": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents item theft!",
"typeImmunityHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
"nonSuperEffectiveImmunity": "{{pokemonNameWithAffix}} avoided damage\nwith {{abilityName}}!",
"postDefendDisguise": "{{pokemonNameWithAffix}}'s disguise was busted!",
"moveImmunity": "It doesn't affect {{pokemonNameWithAffix}}!",
"reverseDrain": "{{pokemonNameWithAffix}} sucked up the liquid ooze!",
"postDefendTypeChange": "{{pokemonNameWithAffix}}'s {{abilityName}}\nmade it the {{typeName}} type!",
"postDefendContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
"postDefendAbilitySwap": "{{pokemonNameWithAffix}} swapped\nabilities with its target!",
"postDefendAbilityGive": "{{pokemonNameWithAffix}} gave its target\n{{abilityName}}!",
"postDefendMoveDisable": "{{pokemonNameWithAffix}}'s {{moveName}}\nwas disabled!",
"pokemonTypeChange": "{{pokemonNameWithAffix}} transformed into the {{moveType}} type!",
"postAttackStealHeldItem": "{{pokemonNameWithAffix}} stole\n{{defenderName}}'s {{stolenItemType}}!",
"postDefendStealHeldItem": "{{pokemonNameWithAffix}} stole\n{{attackerName}}'s {{stolenItemType}}!",
"copyFaintedAllyAbility": "{{pokemonNameWithAffix}}'s {{abilityName}} was taken over!",
"intimidateImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}} prevented it from being Intimidated!",
"postSummonAllyHeal": "{{pokemonNameWithAffix}} drank down all the\nmatcha that {{pokemonName}} made!",
"postSummonClearAllyStats": "{{pokemonNameWithAffix}}'s stat changes\nwere removed!",
"postSummonTransform": "{{pokemonNameWithAffix}} transformed\ninto {{targetName}}!",
"protectStat": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents lowering its {{statName}}!",
"statusEffectImmunityWithName": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents {{statusEffectName}}!",
"statusEffectImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents status problems!",
"battlerTagImmunity": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents {{battlerTagName}}!",
"forewarn": "{{pokemonNameWithAffix}} was forewarned about {{moveName}}!",
"frisk": "{{pokemonNameWithAffix}} frisked {{opponentName}}'s {{opponentAbilityName}}!",
"postWeatherLapseHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
"postWeatherLapseDamage": "{{pokemonNameWithAffix}} is hurt\nby its {{abilityName}}!",
"postTurnLootCreateEatenBerry": "{{pokemonNameWithAffix}} harvested one {{berryName}}!",
"postTurnHeal": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP a little!",
"fetchBall": "{{pokemonNameWithAffix}} found a\n{{pokeballName}}!",
"healFromBerryUse": "{{pokemonNameWithAffix}}'s {{abilityName}}\nrestored its HP!",
"arenaTrap": "{{pokemonNameWithAffix}}'s {{abilityName}}\nprevents switching!",
"postBattleLoot": "{{pokemonNameWithAffix}} picked up\n{{itemName}}!",
"postFaintContactDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
"postFaintHpDamage": "{{pokemonNameWithAffix}}'s {{abilityName}}\nhurt its attacker!",
"postSummonPressure": "{{pokemonNameWithAffix}} is exerting its Pressure!",
"postSummonMoldBreaker": "{{pokemonNameWithAffix}} breaks the mold!",
"postSummonAnticipation": "{{pokemonNameWithAffix}} shuddered!",
"postSummonTurboblaze": "{{pokemonNameWithAffix}} is radiating a blazing aura!",
"postSummonTeravolt": "{{pokemonNameWithAffix}} is radiating a bursting aura!",
"postSummonDarkAura": "{{pokemonNameWithAffix}} is radiating a Dark Aura!",
"postSummonFairyAura": "{{pokemonNameWithAffix}} is radiating a Fairy Aura!",
"postSummonNeutralizingGas": "{{pokemonNameWithAffix}}'s Neutralizing Gas filled the area!",
"postSummonAsOneGlastrier": "{{pokemonNameWithAffix}} has two Abilities!",
"postSummonAsOneSpectrier": "{{pokemonNameWithAffix}} has two Abilities!",
"postSummonVesselOfRuin": "{{pokemonNameWithAffix}}'s Vessel of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
"postSummonSwordOfRuin": "{{pokemonNameWithAffix}}'s Sword of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
"postSummonTabletsOfRuin": "{{pokemonNameWithAffix}}'s Tablets of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
"postSummonBeadsOfRuin": "{{pokemonNameWithAffix}}'s Beads of Ruin lowered the {{statName}}\nof all surrounding Pokémon!",
"preventBerryUse": "{{pokemonNameWithAffix}} is too\nnervous to eat berries!",
} as const;

1244
src/locales/ca-ES/ability.ts Normal file

File diff suppressed because it is too large Load Diff

274
src/locales/ca-ES/achv.ts Normal file
View File

@ -0,0 +1,274 @@
import { AchievementTranslationEntries } from "#app/interfaces/locales.js";
// Achievement translations for the when the player character is male
export const PGMachv: AchievementTranslationEntries = {
"Achievements": {
name: "Achievements",
},
"Locked": {
name: "Locked",
},
"MoneyAchv": {
description: "Accumulate a total of ₽{{moneyAmount}}",
},
"10K_MONEY": {
name: "Money Haver",
},
"100K_MONEY": {
name: "Rich",
},
"1M_MONEY": {
name: "Millionaire",
},
"10M_MONEY": {
name: "One Percenter",
},
"DamageAchv": {
description: "Inflict {{damageAmount}} damage in one hit",
},
"250_DMG": {
name: "Hard Hitter",
},
"1000_DMG": {
name: "Harder Hitter",
},
"2500_DMG": {
name: "That's a Lotta Damage!",
},
"10000_DMG": {
name: "One Punch Man",
},
"HealAchv": {
description: "Heal {{healAmount}} {{HP}} at once with a move, ability, or held item",
},
"250_HEAL": {
name: "Novice Healer",
},
"1000_HEAL": {
name: "Big Healer",
},
"2500_HEAL": {
name: "Cleric",
},
"10000_HEAL": {
name: "Recovery Master",
},
"LevelAchv": {
description: "Level up a Pokémon to Lv{{level}}",
},
"LV_100": {
name: "But Wait, There's More!",
},
"LV_250": {
name: "Elite",
},
"LV_1000": {
name: "To Go Even Further Beyond",
},
"RibbonAchv": {
description: "Accumulate a total of {{ribbonAmount}} Ribbons",
},
"10_RIBBONS": {
name: "Pokémon League Champion",
},
"25_RIBBONS": {
name: "Great League Champion",
},
"50_RIBBONS": {
name: "Ultra League Champion",
},
"75_RIBBONS": {
name: "Rogue League Champion",
},
"100_RIBBONS": {
name: "Master League Champion",
},
"TRANSFER_MAX_BATTLE_STAT": {
name: "Teamwork",
description: "Baton pass to another party member with at least one stat maxed out",
},
"MAX_FRIENDSHIP": {
name: "Friendmaxxing",
description: "Reach max friendship on a Pokémon",
},
"MEGA_EVOLVE": {
name: "Megamorph",
description: "Mega evolve a Pokémon",
},
"GIGANTAMAX": {
name: "Absolute Unit",
description: "Gigantamax a Pokémon",
},
"TERASTALLIZE": {
name: "STAB Enthusiast",
description: "Terastallize a Pokémon",
},
"STELLAR_TERASTALLIZE": {
name: "The Hidden Type",
description: "Stellar Terastallize a Pokémon",
},
"SPLICE": {
name: "Infinite Fusion",
description: "Splice two Pokémon together with DNA Splicers",
},
"MINI_BLACK_HOLE": {
name: "A Hole Lot of Items",
description: "Acquire a Mini Black Hole",
},
"CATCH_MYTHICAL": {
name: "Mythical",
description: "Catch a mythical Pokémon",
},
"CATCH_SUB_LEGENDARY": {
name: "(Sub-)Legendary",
description: "Catch a sub-legendary Pokémon",
},
"CATCH_LEGENDARY": {
name: "Legendary",
description: "Catch a legendary Pokémon",
},
"SEE_SHINY": {
name: "Shiny",
description: "Find a shiny Pokémon in the wild",
},
"SHINY_PARTY": {
name: "That's Dedication",
description: "Have a full party of shiny Pokémon",
},
"HATCH_MYTHICAL": {
name: "Mythical Egg",
description: "Hatch a mythical Pokémon from an egg",
},
"HATCH_SUB_LEGENDARY": {
name: "Sub-Legendary Egg",
description: "Hatch a sub-legendary Pokémon from an egg",
},
"HATCH_LEGENDARY": {
name: "Legendary Egg",
description: "Hatch a legendary Pokémon from an egg",
},
"HATCH_SHINY": {
name: "Shiny Egg",
description: "Hatch a shiny Pokémon from an egg",
},
"HIDDEN_ABILITY": {
name: "Hidden Potential",
description: "Catch a Pokémon with a hidden ability",
},
"PERFECT_IVS": {
name: "Certificate of Authenticity",
description: "Get perfect IVs on a Pokémon",
},
"CLASSIC_VICTORY": {
name: "Undefeated",
description: "Beat the game in classic mode",
},
"MONO_GEN_ONE": {
name: "The Original Rival",
description: "Complete the generation one only challenge.",
},
"MONO_GEN_TWO": {
name: "Generation 1.5",
description: "Complete the generation two only challenge.",
},
"MONO_GEN_THREE": {
name: "Too much water?",
description: "Complete the generation three only challenge.",
},
"MONO_GEN_FOUR": {
name: "Is she really the hardest?",
description: "Complete the generation four only challenge.",
},
"MONO_GEN_FIVE": {
name: "All Original",
description: "Complete the generation five only challenge.",
},
"MONO_GEN_SIX": {
name: "Almost Royalty",
description: "Complete the generation six only challenge.",
},
"MONO_GEN_SEVEN": {
name: "Only Technically",
description: "Complete the generation seven only challenge.",
},
"MONO_GEN_EIGHT": {
name: "A Champion Time!",
description: "Complete the generation eight only challenge.",
},
"MONO_GEN_NINE": {
name: "She was going easy on you",
description: "Complete the generation nine only challenge.",
},
"MonoType": {
description: "Complete the {{type}} monotype challenge.",
},
"MONO_NORMAL": {
name: "Extra Ordinary",
},
"MONO_FIGHTING": {
name: "I Know Kung Fu",
},
"MONO_FLYING": {
name: "Angry Birds",
},
"MONO_POISON": {
name: "Kanto's Favourite",
},
"MONO_GROUND": {
name: "Forecast: Earthquakes",
},
"MONO_ROCK": {
name: "Brock Hard",
},
"MONO_BUG": {
name: "You Like Jazz?",
},
"MONO_GHOST": {
name: "Who You Gonna Call?",
},
"MONO_STEEL": {
name: "Iron Giant",
},
"MONO_FIRE": {
name: "I Cast Fireball!",
},
"MONO_WATER": {
name: "When It Rains, It Pours",
},
"MONO_GRASS": {
name: "Can't Touch This",
},
"MONO_ELECTRIC": {
name: "Aim For The Horn!",
},
"MONO_PSYCHIC": {
name: "Big Brain Energy",
},
"MONO_ICE": {
name: "Walking On Thin Ice",
},
"MONO_DRAGON": {
name: "Pseudo-Legend Club",
},
"MONO_DARK": {
name: "It's Just A Phase",
},
"MONO_FAIRY": {
name: "Hey! Listen!",
},
"FRESH_START": {
name: "First Try!",
description: "Complete the Fresh Start challenge."
}
} as const;
// Achievement translations for the when the player character is female (it for now uses the same translations as the male version)
export const PGFachv: AchievementTranslationEntries = PGMachv;

View File

@ -0,0 +1,49 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const arenaFlyout: SimpleTranslationEntries = {
// Title
"activeBattleEffects": "Active Battle Effects",
"player": "Player",
"neutral": "Neutral",
"enemy": "Enemy",
// WeatherType
"sunny": "Sunny",
"rain": "Rain",
"sandstorm": "Sandstorm",
"hail": "Hail",
"snow": "Snow",
"fog": "Fog",
"heavyRain": "Heavy Rain",
"harshSun": "Harsh Sun",
"strongWinds": "Strong Winds",
// TerrainType
"misty": "Misty Terrain",
"electric": "Electric Terrain",
"grassy": "Grassy Terrain",
"psychic": "Psychic Terrain",
// ArenaTagType
"mudSport": "Mud Sport",
"waterSport": "Water Sport",
"spikes": "Spikes",
"toxicSpikes": "Toxic Spikes",
"mist": "Mist",
"futureSight": "Future Sight",
"doomDesire": "Doom Desire",
"wish": "Wish",
"stealthRock": "Stealth Rock",
"stickyWeb": "Sticky Web",
"trickRoom": "Trick Room",
"gravity": "Gravity",
"reflect": "Reflect",
"lightScreen": "Light Screen",
"auroraVeil": "Aurora Veil",
"quickGuard": "Quick Guard",
"wideGuard": "Wide Guard",
"matBlock": "Mat Block",
"craftyShield": "Crafty Shield",
"tailwind": "Tailwind",
"happyHour": "Happy Hour",
};

View File

@ -0,0 +1,53 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const arenaTag: SimpleTranslationEntries = {
"yourTeam": "your team",
"opposingTeam": "the opposing team",
"arenaOnRemove": "{{moveName}}'s effect wore off.",
"arenaOnRemovePlayer": "{{moveName}}'s effect wore off\non your side.",
"arenaOnRemoveEnemy": "{{moveName}}'s effect wore off\non the foe's side.",
"mistOnAdd": "{{pokemonNameWithAffix}}'s team became\nshrouded in mist!",
"mistApply": "The mist prevented\nthe lowering of stats!",
"reflectOnAdd": "Reflect reduced the damage of physical moves.",
"reflectOnAddPlayer": "Reflect reduced the damage of physical moves on your side.",
"reflectOnAddEnemy": "Reflect reduced the damage of physical moves on the foe's side.",
"lightScreenOnAdd": "Light Screen reduced the damage of special moves.",
"lightScreenOnAddPlayer": "Light Screen reduced the damage of special moves on your side.",
"lightScreenOnAddEnemy": "Light Screen reduced the damage of special moves on the foe's side.",
"auroraVeilOnAdd": "Aurora Veil reduced the damage of moves.",
"auroraVeilOnAddPlayer": "Aurora Veil reduced the damage of moves on your side.",
"auroraVeilOnAddEnemy": "Aurora Veil reduced the damage of moves on the foe's side.",
"conditionalProtectOnAdd": "{{moveName}} protected team!",
"conditionalProtectOnAddPlayer": "{{moveName}} protected your team!",
"conditionalProtectOnAddEnemy": "{{moveName}} protected the\nopposing team!",
"conditionalProtectApply": "{{moveName}} protected {{pokemonNameWithAffix}}!",
"matBlockOnAdd": "{{pokemonNameWithAffix}} intends to flip up a mat\nand block incoming attacks!",
"noCritOnAddPlayer": "The {{moveName}} shielded your\nteam from critical hits!",
"noCritOnAddEnemy": "The {{moveName}} shielded the opposing\nteam from critical hits!",
"noCritOnRemove": "{{pokemonNameWithAffix}}'s {{moveName}}\nwore off!",
"wishTagOnAdd": "{{pokemonNameWithAffix}}'s wish\ncame true!",
"mudSportOnAdd": "Electricity's power was weakened!",
"mudSportOnRemove": "The effects of Mud Sport\nhave faded.",
"waterSportOnAdd": "Fire's power was weakened!",
"waterSportOnRemove": "The effects of Water Sport\nhave faded.",
"spikesOnAdd": "{{moveName}} were scattered\nall around {{opponentDesc}}'s feet!",
"spikesActivateTrap": "{{pokemonNameWithAffix}} is hurt\nby the spikes!",
"toxicSpikesOnAdd": "{{moveName}} were scattered\nall around {{opponentDesc}}'s feet!",
"toxicSpikesActivateTrapPoison": "{{pokemonNameWithAffix}} absorbed the {{moveName}}!",
"stealthRockOnAdd": "Pointed stones float in the air\naround {{opponentDesc}}!",
"stealthRockActivateTrap": "Pointed stones dug into\n{{pokemonNameWithAffix}}!",
"stickyWebOnAdd": "A {{moveName}} has been laid out on the ground around the opposing team!",
"stickyWebActivateTrap": "The opposing {{pokemonName}} was caught in a sticky web!",
"trickRoomOnAdd": "{{pokemonNameWithAffix}} twisted\nthe dimensions!",
"trickRoomOnRemove": "The twisted dimensions\nreturned to normal!",
"gravityOnAdd": "Gravity intensified!",
"gravityOnRemove": "Gravity returned to normal!",
"tailwindOnAdd": "The Tailwind blew from behind team!",
"tailwindOnAddPlayer": "The Tailwind blew from behind\nyour team!",
"tailwindOnAddEnemy": "The Tailwind blew from behind\nthe opposing team!",
"tailwindOnRemove": "Team's Tailwind petered out!",
"tailwindOnRemovePlayer": "Your team's Tailwind petered out!",
"tailwindOnRemoveEnemy": "The opposing team's Tailwind petered out!",
"happyHourOnAdd": "Everyone is caught up in the happy atmosphere!",
"happyHourOnRemove": "The atmosphere returned to normal.",
} as const;

View File

@ -0,0 +1,5 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const battleInfo: SimpleTranslationEntries = {
"generation": "Generation {{generation}}",
} as const;

View File

@ -0,0 +1,10 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const battleMessageUiHandler: SimpleTranslationEntries = {
"ivBest": "Best",
"ivFantastic": "Fantastic",
"ivVeryGood": "Very Good",
"ivPrettyGood": "Pretty Good",
"ivDecent": "Decent",
"ivNoGood": "No Good",
} as const;

159
src/locales/ca-ES/battle.ts Normal file
View File

@ -0,0 +1,159 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const battle: SimpleTranslationEntries = {
"bossAppeared": "{{bossName}} appeared.",
"trainerAppeared": "{{trainerName}}\nwould like to battle!",
"trainerAppearedDouble": "{{trainerName}}\nwould like to battle!",
"trainerSendOut": "{{trainerName}} sent out\n{{pokemonName}}!",
"singleWildAppeared": "A wild {{pokemonName}} appeared!",
"multiWildAppeared": "A wild {{pokemonName1}}\nand {{pokemonName2}} appeared!",
"playerComeBack": "Come back, {{pokemonName}}!",
"trainerComeBack": "{{trainerName}} withdrew {{pokemonName}}!",
"playerGo": "Go! {{pokemonName}}!",
"trainerGo": "{{trainerName}} sent out {{pokemonName}}!",
"switchQuestion": "Will you switch\n{{pokemonName}}?",
"trainerDefeated": "You defeated\n{{trainerName}}!",
"moneyWon": "You got\n₽{{moneyAmount}} for winning!",
"moneyPickedUp": "You picked up ₽{{moneyAmount}}!",
"pokemonCaught": "{{pokemonName}} was caught!",
"addedAsAStarter": "{{pokemonName}} has been\nadded as a starter!",
"partyFull": "Your party is full.\nRelease a Pokémon to make room for {{pokemonName}}?",
"pokemon": "Pokémon",
"sendOutPokemon": "Go! {{pokemonName}}!",
"hitResultCriticalHit": "A critical hit!",
"hitResultSuperEffective": "It's super effective!",
"hitResultNotVeryEffective": "It's not very effective…",
"hitResultNoEffect": "It doesn't affect {{pokemonName}}!",
"hitResultOneHitKO": "It's a one-hit KO!",
"attackFailed": "But it failed!",
"attackMissed": "{{pokemonNameWithAffix}} avoided the attack!",
"attackHitsCount": "Hit {{count}} time(s)!",
"rewardGain": "You received\n{{modifierName}}!",
"expGain": "{{pokemonName}} gained\n{{exp}} EXP. Points!",
"levelUp": "{{pokemonName}} grew to\nLv. {{level}}!",
"learnMove": "{{pokemonName}} learned\n{{moveName}}!",
"learnMovePrompt": "{{pokemonName}} wants to learn the\nmove {{moveName}}.",
"learnMoveLimitReached": "However, {{pokemonName}} already\nknows four moves.",
"learnMoveReplaceQuestion": "Should a move be forgotten and\nreplaced with {{moveName}}?",
"learnMoveStopTeaching": "Stop trying to teach\n{{moveName}}?",
"learnMoveNotLearned": "{{pokemonName}} did not learn the\nmove {{moveName}}.",
"learnMoveForgetQuestion": "Which move should be forgotten?",
"learnMoveForgetSuccess": "{{pokemonName}} forgot how to\nuse {{moveName}}.",
"countdownPoof": "@d{32}1, @d{15}2, and@d{15}… @d{15}… @d{15}… @d{15}@s{pb_bounce_1}Poof!",
"learnMoveAnd": "And…",
"levelCapUp": "The level cap\nhas increased to {{levelCap}}!",
"moveNotImplemented": "{{moveName}} is not yet implemented and cannot be selected.",
"moveNoPP": "There's no PP left for\nthis move!",
"moveDisabled": "{{moveName}} is disabled!",
"noPokeballForce": "An unseen force\nprevents using Poké Balls.",
"noPokeballTrainer": "You can't catch\nanother trainer's Pokémon!",
"noPokeballMulti": "You can only throw a Poké Ball\nwhen there is one Pokémon remaining!",
"noPokeballStrong": "The target Pokémon is too strong to be caught!\nYou need to weaken it first!",
"noEscapeForce": "An unseen force\nprevents escape.",
"noEscapeTrainer": "You can't run\nfrom a trainer battle!",
"noEscapePokemon": "{{pokemonName}}'s {{moveName}}\nprevents {{escapeVerb}}!",
"runAwaySuccess": "You got away safely!",
"runAwayCannotEscape": "You can't escape!",
"escapeVerbSwitch": "switching",
"escapeVerbFlee": "fleeing",
"notDisabled": "{{pokemonName}}'s {{moveName}} is disabled\nno more!",
"turnEndHpRestore": "{{pokemonName}}'s HP was restored.",
"hpIsFull": "{{pokemonName}}'s\nHP is full!",
"skipItemQuestion": "Are you sure you want to skip taking an item?",
"eggHatching": "Oh?",
"ivScannerUseQuestion": "Use IV Scanner on {{pokemonName}}?",
"wildPokemonWithAffix": "Wild {{pokemonName}}",
"foePokemonWithAffix": "Foe {{pokemonName}}",
"useMove": "{{pokemonNameWithAffix}} used {{moveName}}!",
"drainMessage": "{{pokemonName}} had its\nenergy drained!",
"regainHealth": "{{pokemonName}} regained\nhealth!",
"stealEatBerry": "{{pokemonName}} stole and ate\n{{targetName}}'s {{berryName}}!",
"ppHealBerry": "{{pokemonNameWithAffix}} restored PP to its move {{moveName}}\nusing its {{berryName}}!",
"hpHealBerry": "{{pokemonNameWithAffix}} restored its health using\nits {{berryName}}!",
"fainted": "{{pokemonNameWithAffix}} fainted!",
"statsAnd": "and",
"stats": "Stats",
"statRose_one": "{{pokemonNameWithAffix}}'s {{stats}} rose!",
"statRose_other": "{{pokemonNameWithAffix}}'s {{stats}} rose!",
"statSharplyRose_one": "{{pokemonNameWithAffix}}'s {{stats}} sharply rose!",
"statSharplyRose_other": "{{pokemonNameWithAffix}}'s {{stats}} sharply rose!",
"statRoseDrastically_one": "{{pokemonNameWithAffix}}'s {{stats}} rose drastically!",
"statRoseDrastically_other": "{{pokemonNameWithAffix}}'s {{stats}} rose drastically!",
"statWontGoAnyHigher_one": "{{pokemonNameWithAffix}}'s {{stats}} won't go any higher!",
"statWontGoAnyHigher_other": "{{pokemonNameWithAffix}}'s {{stats}} won't go any higher!",
"statFell_one": "{{pokemonNameWithAffix}}'s {{stats}} fell!",
"statFell_other": "{{pokemonNameWithAffix}}'s {{stats}} fell!",
"statHarshlyFell_one": "{{pokemonNameWithAffix}}'s {{stats}} harshly fell!",
"statHarshlyFell_other": "{{pokemonNameWithAffix}}'s {{stats}} harshly fell!",
"statSeverelyFell_one": "{{pokemonNameWithAffix}}'s {{stats}} severely fell!",
"statSeverelyFell_other": "{{pokemonNameWithAffix}}'s {{stats}} severely fell!",
"statWontGoAnyLower_one": "{{pokemonNameWithAffix}}'s {{stats}} won't go any lower!",
"statWontGoAnyLower_other": "{{pokemonNameWithAffix}}'s {{stats}} won't go any lower!",
"transformedIntoType": "{{pokemonName}} transformed\ninto the {{type}} type!",
"retryBattle": "Would you like to retry from the start of the battle?",
"unlockedSomething": "{{unlockedThing}}\nhas been unlocked.",
"congratulations": "Congratulations!",
"beatModeFirstTime": "{{speciesName}} beat {{gameMode}} Mode for the first time!\nYou received {{newModifier}}!",
"ppReduced": "It reduced the PP of {{targetName}}'s\n{{moveName}} by {{reduction}}!",
"battlerTagsRechargingLapse": "{{pokemonNameWithAffix}} must\nrecharge!",
"battlerTagsTrappedOnAdd": "{{pokemonNameWithAffix}} can no\nlonger escape!",
"battlerTagsTrappedOnRemove": "{{pokemonNameWithAffix}} was freed\nfrom {{moveName}}!",
"battlerTagsFlinchedLapse": "{{pokemonNameWithAffix}} flinched!",
"battlerTagsConfusedOnAdd": "{{pokemonNameWithAffix}} became\nconfused!",
"battlerTagsConfusedOnRemove": "{{pokemonNameWithAffix}} snapped\nout of confusion!",
"battlerTagsConfusedOnOverlap": "{{pokemonNameWithAffix}} is\nalready confused!",
"battlerTagsConfusedLapse": "{{pokemonNameWithAffix}} is\nconfused!",
"battlerTagsConfusedLapseHurtItself": "It hurt itself in its\nconfusion!",
"battlerTagsDestinyBondLapseIsBoss": "{{pokemonNameWithAffix}} is unaffected\nby the effects of Destiny Bond.",
"battlerTagsDestinyBondLapse": "{{pokemonNameWithAffix}} took\n{{pokemonNameWithAffix2}} down with it!",
"battlerTagsInfatuatedOnAdd": "{{pokemonNameWithAffix}} fell in love\nwith {{sourcePokemonName}}!",
"battlerTagsInfatuatedOnOverlap": "{{pokemonNameWithAffix}} is\nalready in love!",
"battlerTagsInfatuatedLapse": "{{pokemonNameWithAffix}} is in love\nwith {{sourcePokemonName}}!",
"battlerTagsInfatuatedLapseImmobilize": "{{pokemonNameWithAffix}} is\nimmobilized by love!",
"battlerTagsInfatuatedOnRemove": "{{pokemonNameWithAffix}} got over\nits infatuation.",
"battlerTagsSeededOnAdd": "{{pokemonNameWithAffix}} was seeded!",
"battlerTagsSeededLapse": "{{pokemonNameWithAffix}}'s health is\nsapped by Leech Seed!",
"battlerTagsSeededLapseShed": "{{pokemonNameWithAffix}}'s Leech Seed\nsucked up the liquid ooze!",
"battlerTagsNightmareOnAdd": "{{pokemonNameWithAffix}} began\nhaving a Nightmare!",
"battlerTagsNightmareOnOverlap": "{{pokemonNameWithAffix}} is\nalready locked in a Nightmare!",
"battlerTagsNightmareLapse": "{{pokemonNameWithAffix}} is locked\nin a Nightmare!",
"battlerTagsEncoreOnAdd": "{{pokemonNameWithAffix}} got\nan Encore!",
"battlerTagsEncoreOnRemove": "{{pokemonNameWithAffix}}'s Encore\nended!",
"battlerTagsHelpingHandOnAdd": "{{pokemonNameWithAffix}} is ready to\nhelp {{pokemonName}}!",
"battlerTagsIngrainLapse": "{{pokemonNameWithAffix}} absorbed\nnutrients with its roots!",
"battlerTagsIngrainOnTrap": "{{pokemonNameWithAffix}} planted its roots!",
"battlerTagsAquaRingOnAdd": "{{pokemonNameWithAffix}} surrounded\nitself with a veil of water!",
"battlerTagsAquaRingLapse": "{{moveName}} restored\n{{pokemonName}}'s HP!",
"battlerTagsDrowsyOnAdd": "{{pokemonNameWithAffix}} grew drowsy!",
"battlerTagsDamagingTrapLapse": "{{pokemonNameWithAffix}} is hurt\nby {{moveName}}!",
"battlerTagsBindOnTrap": "{{pokemonNameWithAffix}} was squeezed by\n{{sourcePokemonName}}'s {{moveName}}!",
"battlerTagsWrapOnTrap": "{{pokemonNameWithAffix}} was Wrapped\nby {{sourcePokemonName}}!",
"battlerTagsVortexOnTrap": "{{pokemonNameWithAffix}} was trapped\nin the vortex!",
"battlerTagsClampOnTrap": "{{sourcePokemonNameWithAffix}} Clamped\n{{pokemonName}}!",
"battlerTagsSandTombOnTrap": "{{pokemonNameWithAffix}} became trapped\nby {{moveName}}!",
"battlerTagsMagmaStormOnTrap": "{{pokemonNameWithAffix}} became trapped\nby swirling magma!",
"battlerTagsSnapTrapOnTrap": "{{pokemonNameWithAffix}} got trapped\nby a snap trap!",
"battlerTagsThunderCageOnTrap": "{{sourcePokemonNameWithAffix}} trapped\n{{pokemonNameWithAffix}}!",
"battlerTagsInfestationOnTrap": "{{pokemonNameWithAffix}} has been afflicted \nwith an infestation by {{sourcePokemonNameWithAffix}}!",
"battlerTagsProtectedOnAdd": "{{pokemonNameWithAffix}}\nprotected itself!",
"battlerTagsProtectedLapse": "{{pokemonNameWithAffix}}\nprotected itself!",
"battlerTagsEnduringOnAdd": "{{pokemonNameWithAffix}} braced\nitself!",
"battlerTagsEnduringLapse": "{{pokemonNameWithAffix}} endured\nthe hit!",
"battlerTagsSturdyLapse": "{{pokemonNameWithAffix}} endured\nthe hit!",
"battlerTagsPerishSongLapse": "{{pokemonNameWithAffix}}'s perish count fell to {{turnCount}}.",
"battlerTagsCenterOfAttentionOnAdd": "{{pokemonNameWithAffix}} became the center\nof attention!",
"battlerTagsTruantLapse": "{{pokemonNameWithAffix}} is\nloafing around!",
"battlerTagsSlowStartOnAdd": "{{pokemonNameWithAffix}} can't\nget it going!",
"battlerTagsSlowStartOnRemove": "{{pokemonNameWithAffix}} finally\ngot its act together!",
"battlerTagsHighestStatBoostOnAdd": "{{pokemonNameWithAffix}}'s {{statName}}\nwas heightened!",
"battlerTagsHighestStatBoostOnRemove": "The effects of {{pokemonNameWithAffix}}'s\n{{abilityName}} wore off!",
"battlerTagsMagnetRisenOnAdd": "{{pokemonNameWithAffix}} levitated with electromagnetism!",
"battlerTagsMagnetRisenOnRemove": "{{pokemonNameWithAffix}}'s electromagnetism wore off!",
"battlerTagsCritBoostOnAdd": "{{pokemonNameWithAffix}} is getting\npumped!",
"battlerTagsCritBoostOnRemove": "{{pokemonNameWithAffix}} relaxed.",
"battlerTagsSaltCuredOnAdd": "{{pokemonNameWithAffix}} is being salt cured!",
"battlerTagsSaltCuredLapse": "{{pokemonNameWithAffix}} is hurt by {{moveName}}!",
"battlerTagsCursedOnAdd": "{{pokemonNameWithAffix}} cut its own HP and put a curse on the {{pokemonName}}!",
"battlerTagsCursedLapse": "{{pokemonNameWithAffix}} is afflicted by the Curse!",
"battlerTagsStockpilingOnAdd": "{{pokemonNameWithAffix}} stockpiled {{stockpiledCount}}!"
} as const;

View File

@ -0,0 +1,12 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const battlerTags: SimpleTranslationEntries = {
"trappedDesc": "trapping",
"flinchedDesc": "flinching",
"confusedDesc": "confusion",
"infatuatedDesc": "infatuation",
"seedDesc": "seeding",
"nightmareDesc": "nightmares",
"ingrainDesc": "roots",
"drowsyDesc": "drowsiness",
} as const;

View File

@ -0,0 +1,48 @@
import { BerryTranslationEntries } from "#app/interfaces/locales";
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;

View File

@ -0,0 +1,146 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const bgmName: SimpleTranslationEntries = {
"music": "Music: ",
"missing_entries" : "{{name}}",
"battle_kanto_champion": "B2W2 Kanto Champion Battle",
"battle_johto_champion": "B2W2 Johto Champion Battle",
"battle_hoenn_champion_g5": "B2W2 Hoenn Champion Battle",
"battle_hoenn_champion_g6": "ORAS Hoenn Champion Battle",
"battle_sinnoh_champion": "B2W2 Sinnoh Champion Battle",
"battle_champion_alder": "BW Unova Champion Battle",
"battle_champion_iris": "B2W2 Unova Champion Battle",
"battle_kalos_champion": "XY Kalos Champion Battle",
"battle_alola_champion": "USUM Alola Champion Battle",
"battle_galar_champion": "SWSH Galar Champion Battle",
"battle_champion_geeta": "SV Champion Geeta Battle",
"battle_champion_nemona": "SV Champion Nemona Battle",
"battle_champion_kieran": "SV Champion Kieran Battle",
"battle_hoenn_elite": "ORAS Elite Four Battle",
"battle_unova_elite": "BW Elite Four Battle",
"battle_kalos_elite": "XY Elite Four Battle",
"battle_alola_elite": "SM Elite Four Battle",
"battle_galar_elite": "SWSH League Tournament Battle",
"battle_paldea_elite": "SV Elite Four Battle",
"battle_bb_elite": "SV BB League Elite Four Battle",
"battle_final_encounter": "PMD RTDX Rayquaza's Domain",
"battle_final": "BW Ghetsis Battle",
"battle_kanto_gym": "B2W2 Kanto Gym Battle",
"battle_johto_gym": "B2W2 Johto Gym Battle",
"battle_hoenn_gym": "B2W2 Hoenn Gym Battle",
"battle_sinnoh_gym": "B2W2 Sinnoh Gym Battle",
"battle_unova_gym": "BW Unova Gym Battle",
"battle_kalos_gym": "XY Kalos Gym Battle",
"battle_galar_gym": "SWSH Galar Gym Battle",
"battle_paldea_gym": "SV Paldea Gym Battle",
"battle_legendary_kanto": "XY Kanto Legendary Battle",
"battle_legendary_raikou": "HGSS Raikou Battle",
"battle_legendary_entei": "HGSS Entei Battle",
"battle_legendary_suicune": "HGSS Suicune Battle",
"battle_legendary_lugia": "HGSS Lugia Battle",
"battle_legendary_ho_oh": "HGSS Ho-oh Battle",
"battle_legendary_regis_g5": "B2W2 Legendary Titan Battle",
"battle_legendary_regis_g6": "ORAS Legendary Titan Battle",
"battle_legendary_gro_kyo": "ORAS Groudon & Kyogre Battle",
"battle_legendary_rayquaza": "ORAS Rayquaza Battle",
"battle_legendary_deoxys": "ORAS Deoxys Battle",
"battle_legendary_lake_trio": "ORAS Lake Guardians Battle",
"battle_legendary_sinnoh": "ORAS Sinnoh Legendary Battle",
"battle_legendary_dia_pal": "ORAS Dialga & Palkia Battle",
"battle_legendary_giratina": "ORAS Giratina Battle",
"battle_legendary_arceus": "HGSS Arceus Battle",
"battle_legendary_unova": "BW Unova Legendary Battle",
"battle_legendary_kyurem": "BW Kyurem Battle",
"battle_legendary_res_zek": "BW Reshiram & Zekrom Battle",
"battle_legendary_xern_yvel": "XY Xerneas & Yveltal Battle",
"battle_legendary_tapu": "SM Tapu Battle",
"battle_legendary_sol_lun": "SM Solgaleo & Lunala Battle",
"battle_legendary_ub": "SM Ultra Beast Battle",
"battle_legendary_dusk_dawn": "USUM Dusk Mane & Dawn Wings Necrozma Battle",
"battle_legendary_ultra_nec": "USUM Ultra Necrozma Battle",
"battle_legendary_zac_zam": "SWSH Zacian & Zamazenta Battle",
"battle_legendary_glas_spec": "SWSH Glastrier & Spectrier Battle",
"battle_legendary_calyrex": "SWSH Calyrex Battle",
"battle_legendary_birds_galar": "SWSH Galarian Legendary Birds Battle",
"battle_legendary_ruinous": "SV Treasures of Ruin Battle",
"battle_legendary_kor_mir": "SV Depths of Area Zero Battle",
"battle_legendary_loyal_three": "SV Loyal Three Battle",
"battle_legendary_ogerpon": "SV Ogerpon Battle",
"battle_legendary_terapagos": "SV Terapagos Battle",
"battle_legendary_pecharunt": "SV Pecharunt Battle",
"battle_rival": "BW Rival Battle",
"battle_rival_2": "BW N Battle",
"battle_rival_3": "BW Final N Battle",
"battle_trainer": "BW Trainer Battle",
"battle_wild": "BW Wild Battle",
"battle_wild_strong": "BW Strong Wild Battle",
"end_summit": "PMD RTDX Sky Tower Summit",
"battle_rocket_grunt": "HGSS Team Rocket Battle",
"battle_aqua_magma_grunt": "ORAS Team Aqua & Magma Battle",
"battle_galactic_grunt": "BDSP Team Galactic Battle",
"battle_plasma_grunt": "BW Team Plasma Battle",
"battle_flare_grunt": "XY Team Flare Battle",
"battle_rocket_boss": "USUM Giovanni Battle",
"battle_aqua_magma_boss": "ORAS Archie & Maxie Battle",
"battle_galactic_boss": "BDSP Cyrus Battle",
"battle_plasma_boss": "B2W2 Ghetsis Battle",
"battle_flare_boss": "XY Lysandre Battle",
// Biome Music
"abyss": "PMD EoS Dark Crater",
"badlands": "PMD EoS Barren Valley",
"beach": "PMD EoS Drenched Bluff",
"cave": "PMD EoS Sky Peak Cave",
"construction_site": "PMD EoS Boulder Quarry",
"desert": "PMD EoS Northern Desert",
"dojo": "PMD EoS Marowak Dojo",
"end": "PMD RTDX Sky Tower",
"factory": "PMD EoS Concealed Ruins",
"fairy_cave": "PMD EoS Star Cave",
"forest": "PMD EoS Dusk Forest",
"grass": "PMD EoS Apple Woods",
"graveyard": "PMD EoS Mystifying Forest",
"ice_cave": "PMD EoS Vast Ice Mountain",
"island": "PMD EoS Craggy Coast",
"jungle": "Lmz - Jungle", // The composer thinks about a more creative name
"laboratory": "Firel - Laboratory", // The composer thinks about a more creative name
"lake": "PMD EoS Crystal Cave",
"meadow": "PMD EoS Sky Peak Forest",
"metropolis": "Firel - Metropolis", // The composer thinks about a more creative name
"mountain": "PMD EoS Mt. Horn",
"plains": "PMD EoS Sky Peak Prairie",
"power_plant": "PMD EoS Far Amp Plains",
"ruins": "PMD EoS Deep Sealed Ruin",
"sea": "Andr06 - Marine Mystique", // Name defined by the composer
"seabed": "Firel - Seabed", // The composer thinks about a more creative name
"slum": "Andr06 - Sneaky Snom", // Name defined by the composer
"snowy_forest": "PMD EoS Sky Peak Snowfield",
"space": "Firel - Aether",
"swamp": "PMD EoS Surrounded Sea",
"tall_grass": "PMD EoS Foggy Forest",
"temple": "PMD EoS Aegis Cave",
"town": "PMD EoS Random Dungeon Theme 3",
"volcano": "PMD EoS Steam Cave",
"wasteland": "PMD EoS Hidden Highland",
// Encounter
"encounter_ace_trainer": "BW Trainers' Eyes Meet (Ace Trainer)",
"encounter_backpacker": "BW Trainers' Eyes Meet (Backpacker)",
"encounter_clerk": "BW Trainers' Eyes Meet (Clerk)",
"encounter_cyclist": "BW Trainers' Eyes Meet (Cyclist)",
"encounter_lass": "BW Trainers' Eyes Meet (Lass)",
"encounter_parasol_lady": "BW Trainers' Eyes Meet (Parasol Lady)",
"encounter_pokefan": "BW Trainers' Eyes Meet (Poke Fan)",
"encounter_psychic": "BW Trainers' Eyes Meet (Psychic)",
"encounter_rich": "BW Trainers' Eyes Meet (Gentleman)",
"encounter_rival": "BW Cheren",
"encounter_roughneck": "BW Trainers' Eyes Meet (Roughneck)",
"encounter_scientist": "BW Trainers' Eyes Meet (Scientist)",
"encounter_twins": "BW Trainers' Eyes Meet (Twins)",
"encounter_youngster": "BW Trainers' Eyes Meet (Youngster)",
// Other
"heal": "BW Pokémon Heal",
"menu": "PMD EoS Welcome to the World of Pokémon!",
"title": "PMD EoS Top Menu Theme",
} as const;

View File

@ -0,0 +1,40 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const biome: SimpleTranslationEntries = {
"unknownLocation": "Somewhere you can\'t remember",
"TOWN": "Town",
"PLAINS": "Plains",
"GRASS": "Grassy Field",
"TALL_GRASS": "Tall Grass",
"METROPOLIS": "Metropolis",
"FOREST": "Forest",
"SEA": "Sea",
"SWAMP": "Swamp",
"BEACH": "Beach",
"LAKE": "Lake",
"SEABED": "Seabed",
"MOUNTAIN": "Mountain",
"BADLANDS": "Badlands",
"CAVE": "Cave",
"DESERT": "Desert",
"ICE_CAVE": "Ice Cave",
"MEADOW": "Meadow",
"POWER_PLANT": "Power Plant",
"VOLCANO": "Volcano",
"GRAVEYARD": "Graveyard",
"DOJO": "Dojo",
"FACTORY": "Factory",
"RUINS": "Ancient Ruins",
"WASTELAND": "Wasteland",
"ABYSS": "Abyss",
"SPACE": "Space",
"CONSTRUCTION_SITE": "Construction Site",
"JUNGLE": "Jungle",
"FAIRY_CAVE": "Fairy Cave",
"TEMPLE": "Temple",
"SLUM": "Slum",
"SNOWY_FOREST": "Snowy Forest",
"ISLAND": "Island",
"LABORATORY": "Laboratory",
"END": "???",
} as const;

View File

@ -0,0 +1,32 @@
import { TranslationEntries } from "#app/interfaces/locales.js";
export const challenges: TranslationEntries = {
"title": "Challenge Modifiers",
"illegalEvolution": "{{pokemon}} changed into an ineligble pokémon\nfor this challenge!",
"singleGeneration": {
"name": "Mono Gen",
"desc": "You can only use Pokémon from Generation {{gen}}.",
"desc_default": "You can only use Pokémon from the chosen generation.",
"gen_1": "one",
"gen_2": "two",
"gen_3": "three",
"gen_4": "four",
"gen_5": "five",
"gen_6": "six",
"gen_7": "seven",
"gen_8": "eight",
"gen_9": "nine",
},
"singleType": {
"name": "Mono Type",
"desc": "You can only use Pokémon with the {{type}} type.",
"desc_default": "You can only use Pokémon of the chosen type."
//types in pokemon-info
},
"freshStart": {
"name": "Fresh Start",
"desc": "You can only use the original starters, and only as if you had just started PokéRogue.",
"value.0": "Off",
"value.1": "On",
}
} as const;

View File

@ -0,0 +1,9 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const commandUiHandler: SimpleTranslationEntries = {
"fight": "Fight",
"ball": "Ball",
"pokemon": "Pokémon",
"run": "Run",
"actionMessage": "What will\n{{pokemonName}} do?",
} as const;

View File

@ -0,0 +1,10 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const common: SimpleTranslationEntries = {
"start": "Start",
"luckIndicator": "Luck:",
"shinyOnHover": "Shiny",
"commonShiny": "Common",
"rareShiny": "Rare",
"epicShiny": "Epic",
} as const;

116
src/locales/ca-ES/config.ts Normal file
View File

@ -0,0 +1,116 @@
import { common } from "./common.js";
import { settings } from "./settings.js";
import { ability } from "./ability";
import { abilityTriggers } from "./ability-trigger";
import { arenaFlyout } from "./arena-flyout";
import { arenaTag } from "./arena-tag";
import { PGFachv, PGMachv } from "./achv";
import { battle } from "./battle";
import { battleInfo } from "./battle-info";
import { battleMessageUiHandler } from "./battle-message-ui-handler";
import { battlerTags } from "./battler-tags";
import { berry } from "./berry";
import { bgmName } from "./bgm-name";
import { biome } from "./biome";
import { challenges } from "./challenges";
import { commandUiHandler } from "./command-ui-handler";
import {
PGFbattleSpecDialogue,
PGFdialogue,
PGFdoubleBattleDialogue,
PGFmiscDialogue,
PGMbattleSpecDialogue,
PGMdialogue,
PGMdoubleBattleDialogue,
PGMmiscDialogue
} from "./dialogue";
import { egg } from "./egg";
import { fightUiHandler } from "./fight-ui-handler";
import { filterBar } from "./filter-bar";
import { gameMode } from "./game-mode";
import { gameStatsUiHandler } from "./game-stats-ui-handler";
import { growth } from "./growth";
import { menu } from "./menu";
import { menuUiHandler } from "./menu-ui-handler";
import { modifier } from "./modifier";
import { modifierType } from "./modifier-type";
import { move } from "./move";
import { nature } from "./nature";
import { partyUiHandler } from "./party-ui-handler";
import { pokeball } from "./pokeball";
import { pokemon } from "./pokemon";
import { pokemonForm, battlePokemonForm } from "./pokemon-form";
import { pokemonInfo } from "./pokemon-info";
import { pokemonInfoContainer } from "./pokemon-info-container";
import { pokemonSummary } from "./pokemon-summary";
import { saveSlotSelectUiHandler } from "./save-slot-select-ui-handler";
import { splashMessages } from "./splash-messages";
import { starterSelectUiHandler } from "./starter-select-ui-handler";
import { statusEffect } from "./status-effect";
import { titles, trainerClasses, trainerNames } from "./trainers";
import { tutorial } from "./tutorial";
import { voucher } from "./voucher";
import { terrain, weather } from "./weather";
import { modifierSelectUiHandler } from "./modifier-select-ui-handler";
import { moveTriggers } from "./move-trigger";
export const caESConfig = {
ability: ability,
abilityTriggers: abilityTriggers,
arenaFlyout: arenaFlyout,
arenaTag: arenaTag,
battle: battle,
battleInfo: battleInfo,
battleMessageUiHandler: battleMessageUiHandler,
battlePokemonForm: battlePokemonForm,
battlerTags: battlerTags,
berry: berry,
bgmName: bgmName,
biome: biome,
challenges: challenges,
commandUiHandler: commandUiHandler,
common: common,
PGMachv: PGMachv,
PGFachv: PGFachv,
PGMdialogue: PGMdialogue,
PGFdialogue: PGFdialogue,
PGMbattleSpecDialogue: PGMbattleSpecDialogue,
PGFbattleSpecDialogue: PGFbattleSpecDialogue,
PGMmiscDialogue: PGMmiscDialogue,
PGFmiscDialogue: PGFmiscDialogue,
PGMdoubleBattleDialogue: PGMdoubleBattleDialogue,
PGFdoubleBattleDialogue: PGFdoubleBattleDialogue,
egg: egg,
fightUiHandler: fightUiHandler,
filterBar: filterBar,
gameMode: gameMode,
gameStatsUiHandler: gameStatsUiHandler,
growth: growth,
menu: menu,
menuUiHandler: menuUiHandler,
modifier: modifier,
modifierType: modifierType,
move: move,
nature: nature,
pokeball: pokeball,
pokemon: pokemon,
pokemonForm: pokemonForm,
pokemonInfo: pokemonInfo,
pokemonInfoContainer: pokemonInfoContainer,
pokemonSummary: pokemonSummary,
saveSlotSelectUiHandler: saveSlotSelectUiHandler,
settings: settings,
splashMessages: splashMessages,
starterSelectUiHandler: starterSelectUiHandler,
statusEffect: statusEffect,
terrain: terrain,
titles: titles,
trainerClasses: trainerClasses,
trainerNames: trainerNames,
tutorial: tutorial,
voucher: voucher,
weather: weather,
partyUiHandler: partyUiHandler,
modifierSelectUiHandler: modifierSelectUiHandler,
moveTriggers: moveTriggers
};

File diff suppressed because it is too large Load Diff

28
src/locales/ca-ES/egg.ts Normal file
View File

@ -0,0 +1,28 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const egg: SimpleTranslationEntries = {
"egg": "Egg",
"greatTier": "Rare",
"ultraTier": "Epic",
"masterTier": "Legendary",
"defaultTier": "Common",
"hatchWavesMessageSoon": "Sounds can be heard coming from inside! It will hatch soon!",
"hatchWavesMessageClose": "It appears to move occasionally. It may be close to hatching.",
"hatchWavesMessageNotClose": "What will hatch from this? It doesn't seem close to hatching.",
"hatchWavesMessageLongTime": "It looks like this Egg will take a long time to hatch.",
"gachaTypeLegendary": "Legendary Rate Up",
"gachaTypeMove": "Rare Egg Move Rate Up",
"gachaTypeShiny": "Shiny Rate Up",
"selectMachine": "Select a machine.",
"notEnoughVouchers": "You don't have enough vouchers!",
"tooManyEggs": "You have too many eggs!",
"pull": "Pull",
"pulls": "Pulls",
"sameSpeciesEgg": "{{species}} will hatch from this egg!",
"hatchFromTheEgg": "{{pokemonName}} hatched from the egg!",
"eggMoveUnlock": "Egg Move unlocked: {{moveName}}",
"rareEggMoveUnlock": "Rare Egg Move unlocked: {{moveName}}",
"moveUPGacha": "Move UP!",
"shinyUPGacha": "Shiny UP!",
"legendaryUPGacha": "UP!",
} as const;

View File

@ -0,0 +1,9 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const fightUiHandler: SimpleTranslationEntries = {
"pp": "PP",
"power": "Power",
"accuracy": "Accuracy",
"abilityFlyInText": " {{pokemonName}}'s {{passive}}{{abilityName}}",
"passive": "Passive ", // The space at the end is important
} as const;

View File

@ -0,0 +1,33 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const filterBar: SimpleTranslationEntries = {
"genFilter": "Gen",
"typeFilter": "Type",
"caughtFilter": "Caught",
"unlocksFilter": "Unlocks",
"miscFilter": "Misc",
"sortFilter": "Sort",
"all": "All",
"normal": "Normal",
"uncaught": "Uncaught",
"passive": "Passive",
"passiveUnlocked": "Passive Unlocked",
"passiveLocked": "Passive Locked",
"costReduction": "Cost Reduction",
"costReductionUnlocked": "Cost Reduction Unlocked",
"costReductionLocked": "Cost Reduction Locked",
"ribbon": "Ribbon",
"hasWon": "Ribbon - Yes",
"hasNotWon": "Ribbon - No",
"hiddenAbility": "Hidden Ability",
"hasHiddenAbility": "Hidden Ability - Yes",
"noHiddenAbility": "Hidden Ability - No",
"pokerus": "Pokerus",
"hasPokerus": "Pokerus - Yes",
"noPokerus": "Pokerus - No",
"sortByNumber": "No.",
"sortByCost": "Cost",
"sortByCandies": "Candy Count",
"sortByIVs": "IVs",
"sortByName": "Name",
};

View File

@ -0,0 +1,10 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const gameMode: SimpleTranslationEntries = {
"classic": "Classic",
"endless": "Endless",
"endlessSpliced": "Endless (Spliced)",
"dailyRun": "Daily Run",
"unknown": "Unknown",
"challenge": "Challenge",
} as const;

View File

@ -0,0 +1,44 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const gameStatsUiHandler: SimpleTranslationEntries = {
"stats": "Stats",
"playTime": "Play Time",
"totalBattles": "Total Battles",
"starters": "Starters",
"shinyStarters": "Shiny Starters",
"speciesSeen": "Species Seen",
"speciesCaught": "Species Caught",
"ribbonsOwned": "Ribbons Owned",
"classicRuns": "Classic Runs",
"classicWins": "Classic Wins",
"dailyRunAttempts": "Daily Run Attempts",
"dailyRunWins": "Daily Run Wins",
"endlessRuns": "Endless Runs",
"highestWaveEndless": "Highest Wave (Endless)",
"highestMoney": "Highest Money",
"highestDamage": "Highest Damage",
"highestHPHealed": "Highest HP Healed",
"pokemonEncountered": "Pokémon Encountered",
"pokemonDefeated": "Pokémon Defeated",
"pokemonCaught": "Pokémon Caught",
"eggsHatched": "Eggs Hatched",
"subLegendsSeen": "Sub-Legends Seen",
"subLegendsCaught": "Sub-Legends Caught",
"subLegendsHatched": "Sub-Legends Hatched",
"legendsSeen": "Legends Seen",
"legendsCaught": "Legends Caught",
"legendsHatched": "Legends Hatched",
"mythicalsSeen": "Mythicals Seen",
"mythicalsCaught": "Mythicals Caught",
"mythicalsHatched": "Mythicals Hatched",
"shiniesSeen": "Shinies Seen",
"shiniesCaught": "Shinies Caught",
"shiniesHatched": "Shinies Hatched",
"pokemonFused": "Pokémon Fused",
"trainersDefeated": "Trainers Defeated",
"eggsPulled": "Eggs Pulled",
"rareEggsPulled": "Rare Eggs Pulled",
"epicEggsPulled": "Epic Eggs Pulled",
"legendaryEggsPulled": "Legendary Eggs Pulled",
"manaphyEggsPulled": "Manaphy Eggs Pulled",
} as const;

View File

@ -0,0 +1,10 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const growth: SimpleTranslationEntries = {
"Erratic": "Erratic",
"Fast": "Fast",
"Medium_Fast": "Medium Fast",
"Medium_Slow": "Medium Slow",
"Slow": "Slow",
"Fluctuating": "Fluctuating"
} as const;

View File

@ -0,0 +1,28 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const menuUiHandler: SimpleTranslationEntries = {
"GAME_SETTINGS": "Game Settings",
"ACHIEVEMENTS": "Achievements",
"STATS": "Stats",
"VOUCHERS": "Vouchers",
"EGG_LIST": "Egg List",
"EGG_GACHA": "Egg Gacha",
"MANAGE_DATA": "Manage Data",
"COMMUNITY": "Community",
"SAVE_AND_QUIT": "Save and Quit",
"LOG_OUT": "Log Out",
"slot": "Slot {{slotNumber}}",
"importSession": "Import Session",
"importSlotSelect": "Select a slot to import to.",
"exportSession": "Export Session",
"exportSlotSelect": "Select a slot to export from.",
"importData": "Import Data",
"exportData": "Export Data",
"linkDiscord": "Link Discord",
"unlinkDiscord": "Unlink Discord",
"linkGoogle": "Link Google",
"unlinkGoogle": "Unlink Google",
"cancel": "Cancel",
"losingProgressionWarning": "You will lose any progress since the beginning of the battle. Proceed?",
"noEggs": "You are not hatching\nany eggs at the moment!"
} as const;

62
src/locales/ca-ES/menu.ts Normal file
View File

@ -0,0 +1,62 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
/**
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
* contents or directly related to Pokemon data. This includes menu navigation, settings,
* account interactions, descriptive text, etc.
*/
export const menu: SimpleTranslationEntries = {
"cancel": "Cancel",
"continue": "Continue",
"dailyRun": "Daily Run (Beta)",
"loadGame": "Load Game",
"newGame": "New Game",
"settings": "Settings",
"selectGameMode": "Select a game mode.",
"logInOrCreateAccount": "Log in or create an account to start. No email required!",
"username": "Username",
"password": "Password",
"login": "Login",
"orUse": "Or use",
"register": "Register",
"emptyUsername": "Username must not be empty",
"invalidLoginUsername": "The provided username is invalid",
"invalidRegisterUsername": "Username must only contain letters, numbers, or underscores",
"invalidLoginPassword": "The provided password is invalid",
"invalidRegisterPassword": "Password must be 6 characters or longer",
"usernameAlreadyUsed": "The provided username is already in use",
"accountNonExistent": "The provided user does not exist",
"unmatchingPassword": "The provided password does not match",
"passwordNotMatchingConfirmPassword": "Password must match confirm password",
"confirmPassword": "Confirm Password",
"registrationAgeWarning": "By registering, you confirm you are of 13 years of age or older.",
"backToLogin": "Back to Login",
"failedToLoadSaveData": "Failed to load save data. Please reload the page.\nIf this persists, please check #announcements in Discord.",
"sessionSuccess": "Session loaded successfully.",
"failedToLoadSession": "Your session data could not be loaded.\nIt may be corrupted.",
"boyOrGirl": "Are you a boy or a girl?",
"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}}!",
"dailyRankings": "Daily Rankings",
"weeklyRankings": "Weekly Rankings",
"noRankings": "No Rankings",
"positionIcon": "#",
"usernameScoreboard": "Username",
"score": "Score",
"wave": "Wave",
"loading": "Loading…",
"loadingAsset": "Loading asset: {{assetName}}",
"playersOnline": "Players Online",
"yes":"Yes",
"no":"No",
"disclaimer": "DISCLAIMER",
"disclaimerDescription": "This game is an unfinished product; it might have playability issues (including the potential loss of save data),\n change without notice, and may or may not be updated further or completed.",
"choosePokemon": "Choose a Pokémon.",
"renamePokemon": "Rename Pokémon",
"rename": "Rename",
"nickname": "Nickname",
"errorServerDown": "Oops! There was an issue contacting the server.\n\nYou may leave this window open,\nthe game will automatically reconnect.",
} as const;

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifierSelectUiHandler: SimpleTranslationEntries = {
"transfer": "Transfer",
"reroll": "Reroll",
"lockRarities": "Lock Rarities",
"checkTeam": "Check Team",
"transferDesc": "Transfer a held item from one Pokémon to another.",
"rerollDesc": "Spend money to reroll your item options.",
"lockRaritiesDesc": "Lock item rarities on reroll (affects reroll cost).",
"checkTeamDesc": "Check your team or use a form changing item.",
"rerollCost": "₽{{formattedMoney}}",
"itemCost": "₽{{formattedMoney}}"
} as const;

View File

@ -0,0 +1,456 @@
import { ModifierTypeTranslationEntries } from "#app/interfaces/locales";
export const modifierType: ModifierTypeTranslationEntries = {
ModifierType: {
"AddPokeballModifierType": {
name: "{{modifierCount}}x {{pokeballName}}",
description: "Receive {{pokeballName}} x{{modifierCount}} (Inventory: {{pokeballAmount}}) \nCatch Rate: {{catchRate}}",
},
"AddVoucherModifierType": {
name: "{{modifierCount}}x {{voucherTypeName}}",
description: "Receive {{voucherTypeName}} x{{modifierCount}}.",
},
"PokemonHeldItemModifierType": {
extra: {
"inoperable": "{{pokemonName}} can't take\nthis item!",
"tooMany": "{{pokemonName}} has too many\nof this item!",
}
},
"PokemonHpRestoreModifierType": {
description: "Restores {{restorePoints}} HP or {{restorePercent}}% HP for one Pokémon, whichever is higher.",
extra: {
"fully": "Fully restores HP for one Pokémon.",
"fullyWithStatus": "Fully restores HP for one Pokémon and heals any status ailment.",
}
},
"PokemonReviveModifierType": {
description: "Revives one Pokémon and restores {{restorePercent}}% HP.",
},
"PokemonStatusHealModifierType": {
description: "Heals any status ailment for one Pokémon.",
},
"PokemonPpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for one Pokémon move.",
extra: {
"fully": "Restores all PP for one Pokémon move.",
}
},
"PokemonAllMovePpRestoreModifierType": {
description: "Restores {{restorePoints}} PP for all of one Pokémon's moves.",
extra: {
"fully": "Restores all PP for all of one Pokémon's moves.",
}
},
"PokemonPpUpModifierType": {
description: "Permanently increases PP for one Pokémon move by {{upPoints}} for every 5 maximum PP (maximum 3).",
},
"PokemonNatureChangeModifierType": {
name: "{{natureName}} Mint",
description: "Changes a Pokémon's nature to {{natureName}} and permanently unlocks the nature for the starter.",
},
"DoubleBattleChanceBoosterModifierType": {
description: "Doubles the chance of an encounter being a double battle for {{battleCount}} battles.",
},
"TempBattleStatBoosterModifierType": {
description: "Increases the {{tempBattleStatName}} of all party members by 1 stage for 5 battles.",
},
"AttackTypeBoosterModifierType": {
description: "Increases the power of a Pokémon's {{moveType}}-type moves by 20%.",
},
"PokemonLevelIncrementModifierType": {
description: "Increases a Pokémon's level by {{levels}}.",
},
"AllPokemonLevelIncrementModifierType": {
description: "Increases all party members' level by {{levels}}.",
},
"PokemonBaseStatBoosterModifierType": {
description: "Increases the holder's base {{statName}} by 10%. The higher your IVs, the higher the stack limit.",
},
"AllPokemonFullHpRestoreModifierType": {
description: "Restores 100% HP for all Pokémon.",
},
"AllPokemonFullReviveModifierType": {
description: "Revives all fainted Pokémon, fully restoring HP.",
},
"MoneyRewardModifierType": {
description: "Grants a {{moneyMultiplier}} amount of money (₽{{moneyAmount}}).",
extra: {
"small": "small",
"moderate": "moderate",
"large": "large",
},
},
"ExpBoosterModifierType": {
description: "Increases gain of EXP. Points by {{boostPercent}}%.",
},
"PokemonExpBoosterModifierType": {
description: "Increases the holder's gain of EXP. Points by {{boostPercent}}%.",
},
"PokemonFriendshipBoosterModifierType": {
description: "Increases friendship gain per victory by 50%.",
},
"PokemonMoveAccuracyBoosterModifierType": {
description: "Increases move accuracy by {{accuracyAmount}} (maximum 100).",
},
"PokemonMultiHitModifierType": {
description: "Attacks hit one additional time at the cost of a 60/75/82.5% power reduction per stack respectively.",
},
"TmModifierType": {
name: "TM{{moveId}} - {{moveName}}",
description: "Teach {{moveName}} to a Pokémon.",
},
"TmModifierTypeWithInfo": {
name: "TM{{moveId}} - {{moveName}}",
description: "Teach {{moveName}} to a Pokémon\n(Hold C or Shift for more info).",
},
"EvolutionItemModifierType": {
description: "Causes certain Pokémon to evolve.",
},
"FormChangeItemModifierType": {
description: "Causes certain Pokémon to change form.",
},
"FusePokemonModifierType": {
description: "Combines two Pokémon (transfers Ability, splits base stats and types, shares move pool).",
},
"TerastallizeModifierType": {
name: "{{teraType}} Tera Shard",
description: "{{teraType}} Terastallizes the holder for up to 10 battles.",
},
"ContactHeldItemTransferChanceModifierType": {
description: "Upon attacking, there is a {{chancePercent}}% chance the foe's held item will be stolen.",
},
"TurnHeldItemTransferModifierType": {
description: "Every turn, the holder acquires one held item from the foe.",
},
"EnemyAttackStatusEffectChanceModifierType": {
description: "Adds a {{chancePercent}}% chance to inflict {{statusEffect}} with attack moves.",
},
"EnemyEndureChanceModifierType": {
description: "Adds a {{chancePercent}}% chance of enduring a hit.",
},
"RARE_CANDY": { name: "Rare Candy" },
"RARER_CANDY": { name: "Rarer Candy" },
"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." },
"MAP": { name: "Map", description: "Allows you to choose your destination at a crossroads." },
"POTION": { name: "Potion" },
"SUPER_POTION": { name: "Super Potion" },
"HYPER_POTION": { name: "Hyper Potion" },
"MAX_POTION": { name: "Max Potion" },
"FULL_RESTORE": { name: "Full Restore" },
"REVIVE": { name: "Revive" },
"MAX_REVIVE": { name: "Max Revive" },
"FULL_HEAL": { name: "Full Heal" },
"SACRED_ASH": { name: "Sacred Ash" },
"REVIVER_SEED": { name: "Reviver Seed", description: "Revives the holder for 1/2 HP upon fainting from a direct hit." },
"WHITE_HERB": { name: "White Herb", description: "An item to be held by a Pokémon. It will restore any lowered stat in battle." },
"ETHER": { name: "Ether" },
"MAX_ETHER": { name: "Max Ether" },
"ELIXIR": { name: "Elixir" },
"MAX_ELIXIR": { name: "Max Elixir" },
"PP_UP": { name: "PP Up" },
"PP_MAX": { name: "PP Max" },
"LURE": { name: "Lure" },
"SUPER_LURE": { name: "Super Lure" },
"MAX_LURE": { name: "Max Lure" },
"MEMORY_MUSHROOM": { name: "Memory Mushroom", description: "Recall one Pokémon's forgotten move." },
"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." },
"OVAL_CHARM": { name: "Oval Charm", description: "When multiple Pokémon participate in a battle, each gets an extra 10% of the total EXP." },
"EXP_CHARM": { name: "EXP. Charm" },
"SUPER_EXP_CHARM": { name: "Super EXP. Charm" },
"GOLDEN_EXP_CHARM": { name: "Golden EXP. Charm" },
"LUCKY_EGG": { name: "Lucky Egg" },
"GOLDEN_EGG": { name: "Golden Egg" },
"SOOTHE_BELL": { name: "Soothe Bell" },
"SCOPE_LENS": { name: "Scope Lens", description: "It's a lens for scoping out weak points. It boosts the holder's critical-hit ratio."},
"LEEK": { name: "Leek", description: "This very long and stiff stalk of leek boosts the critical-hit ratio of Farfetch'd's moves."},
"EVIOLITE": { name: "Eviolite", description: "This mysterious evolutionary lump boosts the Defense and Sp. Def stats when held by a Pokémon that can still evolve." },
"SOUL_DEW": { name: "Soul Dew", description: "Increases the influence of a Pokémon's nature on its stats by 10% (additive)." },
"NUGGET": { name: "Nugget" },
"BIG_NUGGET": { name: "Big Nugget" },
"RELIC_GOLD": { name: "Relic Gold" },
"AMULET_COIN": { name: "Amulet Coin", description: "Increases money rewards by 20%." },
"GOLDEN_PUNCH": { name: "Golden Punch", description: "Grants 50% of direct damage inflicted as money." },
"COIN_CASE": { name: "Coin Case", description: "After every 10th battle, receive 10% of your money in interest." },
"LOCK_CAPSULE": { name: "Lock Capsule", description: "Allows you to lock item rarities when rerolling items." },
"GRIP_CLAW": { name: "Grip Claw" },
"WIDE_LENS": { name: "Wide Lens" },
"MULTI_LENS": { name: "Multi Lens" },
"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." },
"BERRY_POUCH": { name: "Berry Pouch", description: "Adds a 30% chance that a used berry will not be consumed." },
"FOCUS_BAND": { name: "Focus Band", description: "Adds a 10% chance to survive with 1 HP after being damaged enough to faint." },
"QUICK_CLAW": { name: "Quick Claw", description: "Adds a 10% chance to move first regardless of speed (after priority)." },
"KINGS_ROCK": { name: "King's Rock", description: "Adds a 10% chance an attack move will cause the opponent to flinch." },
"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." },
"TOXIC_ORB": { name: "Toxic Orb", description: "It's a bizarre orb that exudes toxins when touched and will badly poison the holder during battle." },
"FLAME_ORB": { name: "Flame Orb", description: "It's a bizarre orb that gives off heat when touched and will affect the holder with a burn during battle." },
"BATON": { name: "Baton", description: "Allows passing along effects when switching Pokémon, which also bypasses traps." },
"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." },
"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." },
"DNA_SPLICERS": { name: "DNA Splicers" },
"MINI_BLACK_HOLE": { name: "Mini Black Hole" },
"GOLDEN_POKEBALL": { name: "Golden Poké Ball", description: "Adds 1 extra item option at the end of every battle." },
"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_BURN_CHANCE": { name: "Burn Token" },
"ENEMY_STATUS_EFFECT_HEAL_CHANCE": { name: "Full Heal Token", description: "Adds a 2.5% 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." },
},
SpeciesBoosterItem: {
"LIGHT_BALL": { name: "Light Ball", description: "It's a mysterious orb that boosts Pikachu's Attack and Sp. Atk stats." },
"THICK_CLUB": { name: "Thick Club", description: "This hard bone of unknown origin boosts Cubone or Marowak's Attack stat." },
"METAL_POWDER": { name: "Metal Powder", description: "Extremely fine yet hard, this odd powder boosts Ditto's Defense stat." },
"QUICK_POWDER": { name: "Quick Powder", description: "Extremely fine yet hard, this odd powder boosts Ditto's Speed stat." }
},
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",
},
TempBattleStatBoosterStatName: {
"ATK": "Attack",
"DEF": "Defense",
"SPATK": "Sp. Atk",
"SPDEF": "Sp. Def",
"SPD": "Speed",
"ACC": "Accuracy",
"CRIT": "Critical Hit Ratio",
"EVA": "Evasiveness",
"DEFAULT": "???",
},
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",
},
BaseStatBoosterItem: {
"hp_up": "HP Up",
"protein": "Protein",
"iron": "Iron",
"calcium": "Calcium",
"zinc": "Zinc",
"carbos": "Carbos",
},
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",
"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",
},
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",
"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_GLOBE": "Lustrous Globe",
"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",
"FIST_PLATE": "Fist Plate",
"SKY_PLATE": "Sky Plate",
"TOXIC_PLATE": "Toxic Plate",
"EARTH_PLATE": "Earth Plate",
"STONE_PLATE": "Stone Plate",
"INSECT_PLATE": "Insect Plate",
"SPOOKY_PLATE": "Spooky Plate",
"IRON_PLATE": "Iron Plate",
"FLAME_PLATE": "Flame Plate",
"SPLASH_PLATE": "Splash Plate",
"MEADOW_PLATE": "Meadow Plate",
"ZAP_PLATE": "Zap Plate",
"MIND_PLATE": "Mind Plate",
"ICICLE_PLATE": "Icicle Plate",
"DRACO_PLATE": "Draco Plate",
"DREAD_PLATE": "Dread Plate",
"PIXIE_PLATE": "Pixie Plate",
"BLANK_PLATE": "Blank Plate",
"LEGEND_PLATE": "Legend Plate",
"FIGHTING_MEMORY": "Fighting Memory",
"FLYING_MEMORY": "Flying Memory",
"POISON_MEMORY": "Poison Memory",
"GROUND_MEMORY": "Ground Memory",
"ROCK_MEMORY": "Rock Memory",
"BUG_MEMORY": "Bug Memory",
"GHOST_MEMORY": "Ghost Memory",
"STEEL_MEMORY": "Steel Memory",
"FIRE_MEMORY": "Fire Memory",
"WATER_MEMORY": "Water Memory",
"GRASS_MEMORY": "Grass Memory",
"ELECTRIC_MEMORY": "Electric Memory",
"PSYCHIC_MEMORY": "Psychic Memory",
"ICE_MEMORY": "Ice Memory",
"DRAGON_MEMORY": "Dragon Memory",
"DARK_MEMORY": "Dark Memory",
"FAIRY_MEMORY": "Fairy Memory",
"BLANK_MEMORY": "Blank Memory",
},
} as const;

View File

@ -0,0 +1,14 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const modifier: SimpleTranslationEntries = {
"surviveDamageApply": "{{pokemonNameWithAffix}} hung on\nusing its {{typeName}}!",
"turnHealApply": "{{pokemonNameWithAffix}} restored a little HP using\nits {{typeName}}!",
"hitHealApply": "{{pokemonNameWithAffix}} restored a little HP using\nits {{typeName}}!",
"pokemonInstantReviveApply": "{{pokemonNameWithAffix}} was revived\nby its {{typeName}}!",
"pokemonResetNegativeStatStageApply": "{{pokemonNameWithAffix}}'s lowered stats were restored\nby its {{typeName}}!",
"moneyInterestApply": "You received interest of ₽{{moneyAmount}}\nfrom the {{typeName}}!",
"turnHeldItemTransferApply": "{{pokemonNameWithAffix}}'s {{itemName}} was absorbed\nby {{pokemonName}}'s {{typeName}}!",
"contactHeldItemTransferApply": "{{pokemonNameWithAffix}}'s {{itemName}} was snatched\nby {{pokemonName}}'s {{typeName}}!",
"enemyTurnHealApply": "{{pokemonNameWithAffix}}\nrestored some HP!",
"bypassSpeedChanceApply": "{{pokemonName}} can act faster than normal, thanks to its {{itemName}}!",
} as const;

View File

@ -0,0 +1,62 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const moveTriggers: SimpleTranslationEntries = {
"hitWithRecoil" : "{{pokemonName}} was damaged by the recoil!",
"cutHpPowerUpMove": "{{pokemonName}} cut its own HP to power up its move!",
"absorbedElectricity": "{{pokemonName}} absorbed electricity!",
"switchedStatChanges": "{{pokemonName}} switched stat changes with the target!",
"goingAllOutForAttack": "{{pokemonName}} is going all out for this attack!",
"regainedHealth": "{{pokemonName}} regained\nhealth!",
"keptGoingAndCrashed": "{{pokemonName}} kept going\nand crashed!",
"fled": "{{pokemonName}} fled!",
"cannotBeSwitchedOut": "{{pokemonName}} can't be switched out!",
"swappedAbilitiesWithTarget": "{{pokemonName}} swapped\nabilities with its target!",
"coinsScatteredEverywhere": "Coins were scattered everywhere!",
"attackedByItem": "{{pokemonName}} is about to be attacked by its {{itemName}}!",
"whippedUpAWhirlwind": "{{pokemonName}} whipped\nup a whirlwind!",
"flewUpHigh": "{{pokemonName}} flew\nup high!",
"tookInSunlight": "{{pokemonName}} absorbed light!",
"dugAHole": "{{pokemonName}} burrowed its way under the ground!",
"loweredItsHead": "{{pokemonName}} tucked in its head!",
"isGlowing": "{{pokemonName}} became cloaked in a harsh light!",
"bellChimed": "A bell chimed!",
"foresawAnAttack": "{{pokemonName}} foresaw\nan attack!",
"hidUnderwater": "{{pokemonName}} hid\nunderwater!",
"soothingAromaWaftedThroughArea": "A soothing aroma wafted through the area!",
"sprangUp": "{{pokemonName}} sprang up!",
"choseDoomDesireAsDestiny": "{{pokemonName}} chose\nDoom Desire as its destiny!",
"vanishedInstantly": "{{pokemonName}} vanished\ninstantly!",
"tookTargetIntoSky": "{{pokemonName}} took {{targetName}}\ninto the sky!",
"becameCloakedInFreezingLight": "{{pokemonName}} became cloaked\nin a freezing light!",
"becameCloakedInFreezingAir": "{{pokemonName}} became cloaked\nin freezing air!",
"isChargingPower": "{{pokemonName}} is absorbing power!",
"burnedItselfOut": "{{pokemonName}} burned itself out!",
"startedHeatingUpBeak": "{{pokemonName}} started\nheating up its beak!",
"isOverflowingWithSpacePower": "{{pokemonName}} is overflowing\nwith space power!",
"usedUpAllElectricity": "{{pokemonName}} used up all its electricity!",
"stoleItem": "{{pokemonName}} stole\n{{targetName}}'s {{itemName}}!",
"incineratedItem": "{{pokemonName}} incinerated\n{{targetName}}'s {{itemName}}!",
"knockedOffItem": "{{pokemonName}} knocked off\n{{targetName}}'s {{itemName}}!",
"tookMoveAttack": "{{pokemonName}} took\nthe {{moveName}} attack!",
"cutOwnHpAndMaximizedStat": "{{pokemonName}} cut its own HP\nand maximized its {{statName}}!",
"copiedStatChanges": "{{pokemonName}} copied\n{{targetName}}'s stat changes!",
"magnitudeMessage": "Magnitude {{magnitude}}!",
"tookAimAtTarget": "{{pokemonName}} took aim\nat {{targetName}}!",
"transformedIntoType": "{{pokemonName}} transformed\ninto the {{typeName}} type!",
"copiedMove": "{{pokemonName}} copied\n{{moveName}}!",
"sketchedMove": "{{pokemonName}} sketched\n{{moveName}}!",
"acquiredAbility": "The {{pokemonName}} acquired\n{{abilityName}}!",
"copiedTargetAbility": "{{pokemonName}} copied the {{targetName}}'s\n{{abilityName}}!",
"transformedIntoTarget": "{{pokemonName}} transformed\ninto {{targetName}}!",
"tryingToTakeFoeDown": "{{pokemonName}} is hoping to take its attacker down with it!",
"addType": "{{typeName}} was added to\n{{pokemonName}}!",
"cannotUseMove": "{{pokemonName}} cannot use {{moveName}}!",
"healHp": "{{pokemonName}} had its HP restored.",
"sacrificialFullRestore": "{{pokemonName}}'s Healing Wish\nwas granted!",
"invertStats": "{{pokemonName}}'s stat changes\nwere all reversed!",
"resetStats": "{{pokemonName}}'s stat changes\nwere eliminated!",
"faintCountdown": "{{pokemonName}}\nwill faint in {{turnCount}} turns.",
"copyType": "{{pokemonName}}'s type became the same as\n{{targetPokemonName}}'s type!",
"suppressAbilities": "{{pokemonName}}'s ability\nwas suppressed!",
"swapArenaTags": "{{pokemonName}} swapped the battle effects affecting each side of the field!",
} as const;

3812
src/locales/ca-ES/move.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,29 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const nature: SimpleTranslationEntries = {
"Hardy": "Hardy",
"Lonely": "Lonely",
"Brave": "Brave",
"Adamant": "Adamant",
"Naughty": "Naughty",
"Bold": "Bold",
"Docile": "Docile",
"Relaxed": "Relaxed",
"Impish": "Impish",
"Lax": "Lax",
"Timid": "Timid",
"Hasty": "Hasty",
"Serious": "Serious",
"Jolly": "Jolly",
"Naive": "Naive",
"Modest": "Modest",
"Mild": "Mild",
"Quiet": "Quiet",
"Bashful": "Bashful",
"Rash": "Rash",
"Calm": "Calm",
"Gentle": "Gentle",
"Sassy": "Sassy",
"Careful": "Careful",
"Quirky": "Quirky"
} as const;

View File

@ -0,0 +1,54 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const partyUiHandler: SimpleTranslationEntries = {
"SEND_OUT": "Send Out",
"SUMMARY": "Summary",
"CANCEL": "Cancel",
"RELEASE": "Release",
"APPLY": "Apply",
"TEACH": "Teach",
"SPLICE": "Splice",
"UNSPLICE": "Unsplice",
"ACTIVATE": "Activate",
"DEACTIVATE": "Deactivate",
"TRANSFER": "Transfer",
"ALL": "All",
"PASS_BATON": "Pass Baton",
"UNPAUSE_EVOLUTION": "Unpause Evolution",
"REVIVE": "Revive",
"RENAME": "Rename",
"choosePokemon": "Choose a Pokémon.",
"doWhatWithThisPokemon": "Do what with this Pokémon?",
"noEnergy": "{{pokemonName}} has no energy\nleft to battle!",
"hasEnergy": "{{pokemonName}} still has energy\nto battle!",
"cantBeUsed": "{{pokemonName}} can't be used in\nthis challenge!",
"tooManyItems": "{{pokemonName}} has too many\nof this item!",
"anyEffect": "It won't have any effect.",
"unpausedEvolutions": "Evolutions have been unpaused for {{pokemonName}}.",
"unspliceConfirmation": "Do you really want to unsplice {{fusionName}}\nfrom {{pokemonName}}? {{fusionName}} will be lost.",
"wasReverted": "{{fusionName}} was reverted to {{pokemonName}}.",
"releaseConfirmation": "Do you really want to release {{pokemonName}}?",
"releaseInBattle": "You can't release a Pokémon that's in battle!",
"selectAMove": "Select a move.",
"changeQuantity": "Select a held item to transfer.\nUse < and > to change the quantity.",
"selectAnotherPokemonToSplice": "Select another Pokémon to splice.",
"cancel": "Cancel",
// Slot TM text
"able": "Able",
"notAble": "Not able",
"learned": "Learned",
// Releasing messages
"goodbye": "Goodbye, {{pokemonName}}!",
"byebye": "Byebye, {{pokemonName}}!",
"farewell": "Farewell, {{pokemonName}}!",
"soLong": "So long, {{pokemonName}}!",
"thisIsWhereWePart": "This is where we part, {{pokemonName}}!",
"illMissYou": "I'll miss you, {{pokemonName}}!",
"illNeverForgetYou": "I'll never forget you, {{pokemonName}}!",
"untilWeMeetAgain": "Until we meet again, {{pokemonName}}!",
"sayonara": "Sayonara, {{pokemonName}}!",
"smellYaLater": "Smell ya later, {{pokemonName}}!",
} as const;

View File

@ -0,0 +1,10 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const pokeball: SimpleTranslationEntries = {
"pokeBall": "Poké Ball",
"greatBall": "Great Ball",
"ultraBall": "Ultra Ball",
"rogueBall": "Rogue Ball",
"masterBall": "Master Ball",
"luxuryBall": "Luxury Ball",
} as const;

View File

@ -0,0 +1,197 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const battlePokemonForm: SimpleTranslationEntries = {
"mega": "Mega {{pokemonName}}",
"mega-x": "Mega {{pokemonName}} X",
"mega-y": "Mega {{pokemonName}} Y",
"primal": "Primal {{pokemonName}}",
"gigantamax": "G-Max {{pokemonName}}",
"eternamax": "E-Max {{pokemonName}}",
"megaChange": "{{preName}} Mega Evolved\ninto {{pokemonName}}!",
"gigantamaxChange": "{{preName}} Gigantamaxed\ninto {{pokemonName}}!",
"eternamaxChange": "{{preName}} Eternamaxed\ninto {{pokemonName}}!",
"revertChange": "{{pokemonName}} reverted\nto its original form!",
"formChange": "{{preName}} changed form!",
} as const;
export const pokemonForm: SimpleTranslationEntries = {
// Starters forms
// 1G
"pikachuCosplay": "Cosplay",
"pikachuCoolCosplay": "Cool Cosplay",
"pikachuBeautyCosplay": "Beauty Cosplay",
"pikachuCuteCosplay": "Cute Cosplay",
"pikachuSmartCosplay": "Smart Cosplay",
"pikachuToughCosplay": "Tough Cosplay",
"pikachuPartner": "Partner",
"eeveePartner": "Partner",
// 2G
"pichuSpiky": "Spiky",
"unownA": "A",
"unownB": "B",
"unownC": "C",
"unownD": "D",
"unownE": "E",
"unownF": "F",
"unownG": "G",
"unownH": "H",
"unownI": "I",
"unownJ": "J",
"unownK": "K",
"unownL": "L",
"unownM": "M",
"unownN": "N",
"unownO": "O",
"unownP": "P",
"unownQ": "Q",
"unownR": "R",
"unownS": "S",
"unownT": "T",
"unownU": "U",
"unownV": "V",
"unownW": "W",
"unownX": "X",
"unownY": "Y",
"unownZ": "Z",
"unownExclamation": "!",
"unownQuestion": "?",
// 3G
"castformSunny": "Sunny",
"castformRainy": "Rainy",
"castformSnowy": "Snowy",
"deoxysNormal": "Normal",
// 4G
"burmyPlant": "Plant",
"burmySandy": "Sandy",
"burmyTrash": "Trash",
"shellosEast": "East",
"shellosWest": "West",
"rotomHeat": "Heat",
"rotomWash": "Wash",
"rotomFrost": "Frost",
"rotomFan": "Fan",
"rotomMow": "Mow",
"giratinaAltered": "Altered",
"shayminLand": "Land",
// 5G
"basculinRedStriped": "Red Striped",
"basculinBlueStriped": "Blue Striped",
"basculinWhiteStriped": "White Striped",
"deerlingSpring": "Spring",
"deerlingSummer": "Summer",
"deerlingAutumn": "Autumn",
"deerlingWinter": "Winter",
"tornadusIncarnate": "Incarnate",
"thundurusIncarnate": "Incarnate",
"landorusIncarnate": "Incarnate",
"keldeoOrdinary": "Ordinary",
"meloettaAria": "Aria",
// 6G
"froakieBattleBond": "Battle Bond",
"scatterbugMeadow": "Meadow",
"scatterbugIcySnow": "Icy Snow",
"scatterbugPolar": "Polar",
"scatterbugTundra": "Tundra",
"scatterbugContinental": "Continental",
"scatterbugGarden": "Garden",
"scatterbugElegant": "Elegant",
"scatterbugModern": "Modern",
"scatterbugMarine": "Marine",
"scatterbugArchipelago": "Archipelago",
"scatterbugHighPlains": "High Plains",
"scatterbugSandstorm": "Sandstorm",
"scatterbugRiver": "River",
"scatterbugMonsoon": "Monsoon",
"scatterbugSavanna": "Savanna",
"scatterbugSun": "Sun",
"scatterbugOcean": "Ocean",
"scatterbugJungle": "Jungle",
"scatterbugFancy": "Fancy",
"scatterbugPokeBall": "Poké Ball",
"flabebeRed": "Red",
"flabebeYellow": "Yellow",
"flabebeOrange": "Orange",
"flabebeBlue": "Blue",
"flabebeWhite": "White",
"furfrouHeart": "Heart",
"furfrouStar": "Star",
"furfrouDiamond": "Diamond",
"furfrouDebutante": "Debutante",
"furfrouMatron": "Matron",
"furfrouDandy": "Dandy",
"furfrouLaReine": "La Reine",
"furfrouKabuki": "Kabuki",
"furfrouPharaoh": "Pharaoh",
"pumpkabooSmall": "Small",
"pumpkabooLarge": "Large",
"pumpkabooSuper": "Super",
"xerneasNeutral": "Neutral",
"xerneasActive": "Active",
"zygarde50": "50% Forme",
"zygarde10": "10% Forme",
"zygarde50Pc": "50% Forme Power Construct",
"zygarde10Pc": "10% Forme Power Construct",
"zygardeComplete": "Complete Forme",
// 7G
"oricorioBaile": "Baile",
"oricorioPompom": "Pom-Pom",
"oricorioPau": "Pau",
"oricorioSensu": "Sensu",
"rockruffOwnTempo": "Own Tempo",
"miniorRedMeteor": "Red Meteor",
"miniorOrangeMeteor": "Orange Meteor",
"miniorYellowMeteor": "Yellow Meteor",
"miniorGreenMeteor": "Green Meteor",
"miniorBlueMeteor": "Blue Meteor",
"miniorIndigoMeteor": "Indigo Meteor",
"miniorVioletMeteor": "Violet Meteor",
"miniorRed": "Red",
"miniorOrange": "Orange",
"miniorYellow": "Yellow",
"miniorGreen": "Green",
"miniorBlue": "Blue",
"miniorIndigo": "Indigo",
"miniorViolet": "Violet",
"mimikyuDisguised": "Disguised",
"mimikyuBusted": "Busted",
"magearnaOriginal": "Original",
"marshadowZenith": "Zenith",
// 8G
"sinisteaPhony": "Phony",
"sinisteaAntique": "Antique",
"eiscueNoIce": "No Ice",
"indeedeeMale": "Male",
"indeedeeFemale": "Female",
"morpekoFullBelly": "Full Belly",
"zacianHeroOfManyBattles": "Hero Of Many Battles",
"zamazentaHeroOfManyBattles": "Hero Of Many Battles",
"zarudeDada": "Dada",
"enamorusIncarnate": "Incarnate",
// 9G
"squawkabillyGreenPlumage": "Green Plumage",
"squawkabillyBluePlumage": "Blue Plumage",
"squawkabillyYellowPlumage": "Yellow Plumage",
"squawkabillyWhitePlumage": "White Plumage",
"tatsugiriCurly": "Curly",
"tatsugiriDroopy": "Droopy",
"tatsugiriStretchy": "Stretchy",
"gimmighoulChest": "Chest",
"gimmighoulRoaming": "Roaming",
"koraidonApexBuild": "Apex Build",
"koraidonLimitedBuild":"Limited Build",
"koraidonSprintingBuild":"Sprinting Build",
"koraidonSwimmingBuild":"Swimming Build",
"koraidonGlidingBuild":"Gliding Build",
"miraidonUltimateMode":"Ultimate Mode",
"miraidonLowPowerMode":"Low Power Mode",
"miraidonDriveMode":"Drive Mode",
"miraidonAquaticMode":"Aquatic Mode",
"miraidonGlideMode":"Glide Mode",
"poltchageistCounterfeit": "Counterfeit",
"poltchageistArtisan": "Artisan",
"paldeaTaurosCombat": "Combat",
"paldeaTaurosBlaze": "Blaze",
"paldeaTaurosAqua": "Aqua",
} as const;

View File

@ -0,0 +1,9 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const pokemonInfoContainer: SimpleTranslationEntries = {
"moveset": "Moveset",
"gender": "Gender:",
"ability": "Ability:",
"nature": "Nature:",
"form": "Form:"
} as const;

View File

@ -0,0 +1,43 @@
import { PokemonInfoTranslationEntries } from "#app/interfaces/locales";
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",
"ACC": "Accuracy",
"EVA": "Evasiveness"
},
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;

View File

@ -0,0 +1,20 @@
import { TranslationEntries } from "#app/interfaces/locales";
export const pokemonSummary: TranslationEntries = {
"pokemonInfo": "Pokémon Info",
"status": "Status",
"powerAccuracyCategory": "Power\nAccuracy\nCategory",
"type": "Type",
"unknownTrainer": "Unknown",
"ot": "OT",
"nature": "nature",
"expPoints": "Exp. Points",
"nextLv": "Next Lv.",
"cancel": "Cancel",
"memoString": "{{natureFragment}} nature,\n{{metFragment}}",
"metFragment": {
"normal": "met at Lv{{level}},\n{{biome}}.",
"apparently": "apparently met at Lv{{level}},\n{{biome}}.",
},
} as const;

1086
src/locales/ca-ES/pokemon.ts Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,9 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const saveSlotSelectUiHandler: SimpleTranslationEntries = {
"overwriteData": "Overwrite the data in the selected slot?",
"loading": "Loading...",
"wave": "Wave",
"lv": "Lv",
"empty": "Empty",
} as const;

View File

@ -0,0 +1,100 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales.js";
export const settings: SimpleTranslationEntries = {
"boy": "Boy",
"girl": "Girl",
"general": "General",
"display": "Display",
"audio": "Audio",
"gamepad": "Gamepad",
"keyboard": "Keyboard",
"gameSpeed": "Game Speed",
"hpBarSpeed": "HP Bar Speed",
"expGainsSpeed": "EXP Gains Speed",
"expPartyDisplay": "Show EXP Party",
"skipSeenDialogues": "Skip Seen Dialogues",
"battleStyle": "Battle Style",
"enableRetries": "Enable Retries",
"tutorials": "Tutorials",
"touchControls": "Touch Controls",
"vibrations": "Vibrations",
"normal": "Normal",
"fast": "Fast",
"faster": "Faster",
"skip": "Skip",
"levelUpNotifications": "Level Up Notifications",
"on": "On",
"off": "Off",
"switch": "Switch",
"set": "Set",
"auto": "Auto",
"disabled": "Disabled",
"language": "Language",
"change": "Change",
"uiTheme": "UI Theme",
"default": "Default",
"legacy": "Legacy",
"windowType": "Window Type",
"moneyFormat": "Money Format",
"damageNumbers": "Damage Numbers",
"simple": "Simple",
"fancy": "Fancy",
"abbreviated": "Abbreviated",
"moveAnimations": "Move Animations",
"showStatsOnLevelUp": "Show Stats on Level Up",
"candyUpgradeNotification": "Candy Upgrade Notification",
"passivesOnly": "Passives Only",
"candyUpgradeDisplay": "Candy Upgrade Display",
"icon": "Icon",
"animation": "Animation",
"moveInfo": "Move Info",
"showMovesetFlyout": "Show Moveset Flyout",
"showArenaFlyout": "Show Arena Flyout",
"showTimeOfDayWidget": "Show Time of Day Widget",
"timeOfDayAnimation": "Time of Day Animation",
"bounce": "Bounce",
"timeOfDay_back": "Back",
"spriteSet": "Sprite Set",
"consistent": "Consistent",
"mixedAnimated": "Mixed Animated",
"fusionPaletteSwaps": "Fusion Palette Swaps",
"playerGender": "Player Gender",
"typeHints": "Type Hints",
"masterVolume": "Master Volume",
"bgmVolume": "BGM Volume",
"seVolume": "SE Volume",
"musicPreference": "Music Preference",
"mixed": "Mixed",
"gamepadPleasePlug": "Please Plug in a Gamepad or Press a Button",
"delete": "Delete",
"keyboardPleasePress": "Please Press a Key on Your Keyboard",
"reset": "Reset",
"requireReload": "Reload Required",
"action": "Action",
"back": "Back",
"pressToBind": "Press to Bind",
"pressButton": "Press a Button...",
"buttonUp": "Up",
"buttonDown": "Down",
"buttonLeft": "Left",
"buttonRight": "Right",
"buttonAction": "Action",
"buttonMenu": "Menu",
"buttonSubmit": "Submit",
"buttonCancel": "Cancel",
"buttonStats": "Stats",
"buttonCycleForm": "Cycle Form",
"buttonCycleShiny": "Cycle Shiny",
"buttonCycleGender": "Cycle Gender",
"buttonCycleAbility": "Cycle Ability",
"buttonCycleNature": "Cycle Nature",
"buttonCycleVariant": "Cycle Variant",
"buttonSpeedUp": "Speed Up",
"buttonSlowDown": "Slow Down",
"alt": " (Alt)",
"mute": "Mute",
"controller": "Controller",
"gamepadSupport": "Gamepad Support",
"showBgmBar": "Show Music Names",
"shopOverlayOpacity": "Shop Overlay Opacity"
} as const;

View File

@ -0,0 +1,38 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const splashMessages: SimpleTranslationEntries = {
"battlesWon": "Battles Won!",
"joinTheDiscord": "Join the Discord!",
"infiniteLevels": "Infinite Levels!",
"everythingStacks": "Everything Stacks!",
"optionalSaveScumming": "Optional Save Scumming!",
"biomes": "35 Biomes!",
"openSource": "Open Source!",
"playWithSpeed": "Play with 5x Speed!",
"liveBugTesting": "Live Bug Testing!",
"heavyInfluence": "Heavy RoR2 Influence!",
"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!",
"breedersInSpace": "Breeders in space!",
} as const;

View File

@ -0,0 +1,49 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
/**
* The menu namespace holds most miscellaneous text that isn't directly part of the game's
* contents or directly related to Pokemon data. This includes menu navigation, settings,
* account interactions, descriptive text, etc.
*/
export const starterSelectUiHandler: SimpleTranslationEntries = {
"confirmStartTeam": "Begin with these Pokémon?",
"confirmExit": "Do you want to exit?",
"invalidParty": "This is not a valid starting party!",
"gen1": "I",
"gen2": "II",
"gen3": "III",
"gen4": "IV",
"gen5": "V",
"gen6": "VI",
"gen7": "VII",
"gen8": "VIII",
"gen9": "IX",
"growthRate": "Growth Rate:",
"ability": "Ability:",
"passive": "Passive:",
"nature": "Nature:",
"eggMoves": "Egg Moves",
"addToParty": "Add to Party",
"removeFromParty": "Remove from Party",
"toggleIVs": "Toggle IVs",
"manageMoves": "Manage Moves",
"manageNature": "Manage Nature",
"useCandies": "Use Candies",
"selectNature": "Select nature.",
"selectMoveSwapOut": "Select a move to swap out.",
"selectMoveSwapWith": "Select a move to swap with",
"unlockPassive": "Unlock Passive",
"reduceCost": "Reduce Cost",
"sameSpeciesEgg": "Buy an Egg",
"cycleShiny": ": Shiny",
"cycleForm": ": Form",
"cycleGender": ": Gender",
"cycleAbility": ": Ability",
"cycleNature": ": Nature",
"cycleVariant": ": Variant",
"enablePassive": "Enable Passive",
"disablePassive": "Disable Passive",
"locked": "Locked",
"disabled": "Disabled",
"uncaught": "Uncaught"
};

View File

@ -0,0 +1,67 @@
import { StatusEffectTranslationEntries } from "#app/interfaces/locales.js";
export const statusEffect: StatusEffectTranslationEntries = {
none: {
name: "None",
description: "",
obtain: "",
obtainSource: "",
activation: "",
overlap: "",
heal: ""
},
poison: {
name: "Poison",
description: "poisoning",
obtain: "{{pokemonNameWithAffix}}\nwas poisoned!",
obtainSource: "{{pokemonNameWithAffix}}\nwas poisoned by the {{sourceText}}!",
activation: "{{pokemonNameWithAffix}} is hurt\nby poison!",
overlap: "{{pokemonNameWithAffix}} is\nalready poisoned!",
heal: "{{pokemonNameWithAffix}} was\ncured of its poison!"
},
toxic: {
name: "Toxic",
description: "poisoning",
obtain: "{{pokemonNameWithAffix}}\nwas badly poisoned!",
obtainSource: "{{pokemonNameWithAffix}}\nwas badly poisoned by the {{sourceText}}!",
activation: "{{pokemonNameWithAffix}} is hurt\nby poison!",
overlap: "{{pokemonNameWithAffix}} is\nalready poisoned!",
heal: "{{pokemonNameWithAffix}} was\ncured of its poison!"
},
paralysis: {
name: "Paralysis",
description: "paralysis",
obtain: "{{pokemonNameWithAffix}} was paralyzed,\nIt may be unable to move!",
obtainSource: "{{pokemonNameWithAffix}} was paralyzed by the {{sourceText}}!\nIt may be unable to move!",
activation: "{{pokemonNameWithAffix}} is paralyzed!\nIt can't move!",
overlap: "{{pokemonNameWithAffix}} is\nalready paralyzed!",
heal: "{{pokemonNameWithAffix}} was\nhealed of paralysis!"
},
sleep: {
name: "Sleep",
description: "sleep",
obtain: "{{pokemonNameWithAffix}}\nfell asleep!",
obtainSource: "{{pokemonNameWithAffix}}\nfell asleep from the {{sourceText}}!",
activation: "{{pokemonNameWithAffix}} is fast asleep.",
overlap: "{{pokemonNameWithAffix}} is\nalready asleep!",
heal: "{{pokemonNameWithAffix}} woke up!"
},
freeze: {
name: "Freeze",
description: "freezing",
obtain: "{{pokemonNameWithAffix}}\nwas frozen solid!",
obtainSource: "{{pokemonNameWithAffix}}\nwas frozen solid by the {{sourceText}}!",
activation: "{{pokemonNameWithAffix}} is\nfrozen solid!",
overlap: "{{pokemonNameWithAffix}} is\nalready frozen!",
heal: "{{pokemonNameWithAffix}} was\ndefrosted!"
},
burn: {
name: "Burn",
description: "burn",
obtain: "{{pokemonNameWithAffix}}\nwas burned!",
obtainSource: "{{pokemonNameWithAffix}}\nwas burned by the {{sourceText}}!",
activation: "{{pokemonNameWithAffix}} is hurt\nby its burn!",
overlap: "{{pokemonNameWithAffix}} is\nalready burned!",
heal: "{{pokemonNameWithAffix}} was\nhealed of its burn!"
},
} as const;

View File

@ -0,0 +1,302 @@
import {SimpleTranslationEntries} from "#app/interfaces/locales";
// Titles of special trainers like gym leaders, elite four, and the champion
export const titles: SimpleTranslationEntries = {
"elite_four": "Elite Four",
"elite_four_female": "Elite Four",
"gym_leader": "Gym Leader",
"gym_leader_female": "Gym Leader",
"gym_leader_double": "Gym Leader Duo",
"champion": "Champion",
"champion_female": "Champion",
"champion_double": "Champion Duo",
"rival": "Rival",
"professor": "Professor",
"frontier_brain": "Frontier Brain",
"rocket_boss": "Team Rocket Boss",
"magma_boss": "Team Magma Boss",
"aqua_boss": "Team Aqua Boss",
"galactic_boss": "Team Galactic Boss",
"plasma_boss": "Team Plasma Boss",
"flare_boss": "Team Flare Boss",
// 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;
// Titles of trainers like "Youngster" or "Lass"
export const trainerClasses: SimpleTranslationEntries = {
"ace_trainer": "Ace Trainer",
"ace_trainer_female": "Ace Trainer",
"ace_duo": "Ace Duo",
"artist": "Artist",
"artist_female": "Artist",
"backers": "Backers",
"backpacker": "Backpacker",
"backpacker_female": "Backpacker",
"backpackers": "Backpackers",
"baker": "Baker",
"battle_girl": "Battle Girl",
"beauty": "Beauty",
"beginners": "Beginners",
"biker": "Biker",
"black_belt": "Black Belt",
"breeder": "Breeder",
"breeder_female": "Breeder",
"breeders": "Breeders",
"clerk": "Clerk",
"clerk_female": "Clerk",
"colleagues": "Colleagues",
"crush_kin": "Crush Kin",
"cyclist": "Cyclist",
"cyclist_female": "Cyclist",
"cyclists": "Cyclists",
"dancer": "Dancer",
"dancer_female": "Dancer",
"depot_agent": "Depot Agent",
"doctor": "Doctor",
"doctor_female": "Doctor",
"firebreather": "Firebreather",
"fisherman": "Fisherman",
"fisherman_female": "Fisherman",
"gentleman": "Gentleman",
"guitarist": "Guitarist",
"guitarist_female": "Guitarist",
"harlequin": "Harlequin",
"hiker": "Hiker",
"hooligans": "Hooligans",
"hoopster": "Hoopster",
"infielder": "Infielder",
"janitor": "Janitor",
"lady": "Lady",
"lass": "Lass",
"linebacker": "Linebacker",
"maid": "Maid",
"madame": "Madame",
"medical_team": "Medical Team",
"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_female": "Poké Fan",
"pokéfan_family": "Poké Fan Family",
"preschooler": "Preschooler",
"preschooler_female": "Preschooler",
"preschoolers": "Preschoolers",
"psychic": "Psychic",
"psychic_female": "Psychic",
"psychics": "Psychics",
"pokémon_ranger": "Pokémon Ranger",
"pokémon_ranger_female": "Pokémon Ranger",
"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",
"sailor": "Sailor",
"scientist": "Scientist",
"scientist_female": "Scientist",
"scientists": "Scientists",
"smasher": "Smasher",
"snow_worker": "Snow Worker",
"snow_worker_female": "Snow Worker",
"striker": "Striker",
"school_kid": "School Kid",
"school_kid_female": "School Kid",
"school_kids": "School Kids",
"swimmer": "Swimmer",
"swimmer_female": "Swimmer",
"swimmers": "Swimmers",
"twins": "Twins",
"veteran": "Veteran",
"veteran_female": "Veteran",
"veteran_duo": "Veteran Duo",
"waiter": "Waiter",
"waitress": "Waitress",
"worker": "Worker",
"worker_female": "Worker",
"workers": "Workers",
"youngster": "Youngster",
"rocket_grunt": "Rocket Grunt",
"rocket_grunts": "Rocket Grunts",
"rocket_grunt_female": "Rocket Grunt",
"rocket_admin": "Rocket Admin",
"rocket_admin_female": "Rocket Admin",
"magma_grunt": "Magma Grunt",
"magma_grunt_female": "Magma Grunt",
"magma_grunts": "Magma Grunts",
"magma_admin": "Magma Admin",
"magma_admin_female": "Magma Admin",
"aqua_grunt": "Aqua Grunt",
"aqua_grunt_female": "Aqua Grunt",
"aqua_grunts": "Aqua Grunts",
"aqua_admin": "Aqua Admin",
"aqua_admin_female": "Aqua Admin",
"galactic_grunt": "Galactic Grunt",
"galactic_grunt_female": "Galactic Grunt",
"galactic_grunts": "Galactic Grunts",
"galactic_admin": "Galactic Admin",
"galactic_admin_female": "Galactic Admin",
"plasma_grunt": "Plasma Grunt",
"plasma_grunt_female": "Plasma Grunt",
"plasma_grunts": "Plasma Grunts",
"plasma_sage": "Plasma Sage",
"flare_grunt": "Flare Grunt",
"flare_grunt_female": "Flare Grunt",
"flare_grunts": "Flare Grunts",
"flare_admin": "Flare Admin",
"flare_admin_female": "Flare Admin",
} as const;
// Names of special trainers like gym leaders, elite four, and the champion
export const trainerNames: SimpleTranslationEntries = {
"brock": "Brock",
"misty": "Misty",
"lt_surge": "Lt Surge",
"erika": "Erika",
"janine": "Janine",
"sabrina": "Sabrina",
"blaine": "Blaine",
"giovanni": "Giovanni",
"falkner": "Falkner",
"bugsy": "Bugsy",
"whitney": "Whitney",
"morty": "Morty",
"chuck": "Chuck",
"jasmine": "Jasmine",
"pryce": "Pryce",
"clair": "Clair",
"roxanne": "Roxanne",
"brawly": "Brawly",
"wattson": "Wattson",
"flannery": "Flannery",
"norman": "Norman",
"winona": "Winona",
"tate": "Tate",
"liza": "Liza",
"juan": "Juan",
"roark": "Roark",
"gardenia": "Gardenia",
"maylene": "Maylene",
"crasher_wake": "Crasher Wake",
"fantina": "Fantina",
"byron": "Byron",
"candice": "Candice",
"volkner": "Volkner",
"cilan": "Cilan",
"chili": "Chili",
"cress": "Cress",
"cheren": "Cheren",
"lenora": "Lenora",
"roxie": "Roxie",
"burgh": "Burgh",
"elesa": "Elesa",
"clay": "Clay",
"skyla": "Skyla",
"brycen": "Brycen",
"drayden": "Drayden",
"marlon": "Marlon",
"viola": "Viola",
"grant": "Grant",
"korrina": "Korrina",
"ramos": "Ramos",
"clemont": "Clemont",
"valerie": "Valerie",
"olympia": "Olympia",
"wulfric": "Wulfric",
"milo": "Milo",
"nessa": "Nessa",
"kabu": "Kabu",
"bea": "Bea",
"allister": "Allister",
"opal": "Opal",
"bede": "Bede",
"gordie": "Gordie",
"melony": "Melony",
"piers": "Piers",
"marnie": "Marnie",
"raihan": "Raihan",
"katy": "Katy",
"brassius": "Brassius",
"iono": "Iono",
"kofu": "Kofu",
"larry": "Larry",
"ryme": "Ryme",
"tulip": "Tulip",
"grusha": "Grusha",
"lorelei": "Lorelei",
"bruno": "Bruno",
"agatha": "Agatha",
"lance": "Lance",
"will": "Will",
"koga": "Koga",
"karen": "Karen",
"sidney": "Sidney",
"phoebe": "Phoebe",
"glacia": "Glacia",
"drake": "Drake",
"aaron": "Aaron",
"bertha": "Bertha",
"flint": "Flint",
"lucian": "Lucian",
"shauntal": "Shauntal",
"marshal": "Marshal",
"grimsley": "Grimsley",
"caitlin": "Caitlin",
"malva": "Malva",
"siebold": "Siebold",
"wikstrom": "Wikstrom",
"drasna": "Drasna",
"hala": "Hala",
"molayne": "Molayne",
"olivia": "Olivia",
"acerola": "Acerola",
"kahili": "Kahili",
"rika": "Rika",
"poppy": "Poppy",
"hassel": "Hassel",
"crispin": "Crispin",
"amarys": "Amarys",
"lacey": "Lacey",
"drayton": "Drayton",
"blue": "Blue",
"red": "Red",
"steven": "Steven",
"wallace": "Wallace",
"cynthia": "Cynthia",
"alder": "Alder",
"iris": "Iris",
"diantha": "Diantha",
"hau": "Hau",
"geeta": "Geeta",
"nemona": "Nemona",
"kieran": "Kieran",
"leon": "Leon",
"rival": "Finn",
"rival_female": "Ivy",
"maxie": "Maxie",
"archie": "Archie",
"cyrus": "Cyrus",
"ghetsis": "Ghetsis",
"lysandre": "Lysandre",
// Double Names
"blue_red_double": "Blue & Red",
"red_blue_double": "Red & Blue",
"tate_liza_double": "Tate & Liza",
"liza_tate_double": "Liza & Tate",
"steven_wallace_double": "Steven & Wallace",
"wallace_steven_double": "Wallace & Steven",
"alder_iris_double": "Alder & Iris",
"iris_alder_double": "Iris & Alder",
"marnie_piers_double": "Marnie & Piers",
"piers_marnie_double": "Piers & Marnie",
} as const;

View File

@ -0,0 +1,44 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const tutorial: SimpleTranslationEntries = {
"intro": `Welcome to PokéRogue! This is a battle-focused Pokémon fangame with roguelite elements.
$This game is not monetized and we claim no ownership of Pokémon nor of the copyrighted assets used.
$The game is a work in progress, but fully playable.\nFor bug reports, please use the Discord community.
$If the game runs slowly, please ensure 'Hardware Acceleration' is turned on in your browser settings.`,
"accessMenu": "To access the menu, press M or Escape while awaiting input.\nThe menu contains settings and various features.",
"menu": `From this menu you can access the settings.
$From the settings you can change game speed, window style, and other options.
$There are also various other features here, so be sure to check them all!`,
"starterSelect": `From this screen, you can select your starters by pressing\nZ or the Space bar. These are your initial party members.
$Each starter has a value. Your party can have up to\n6 members as long as the total does not exceed 10.
$You can also select gender, ability, and form depending on\nthe variants you've caught or hatched.
$The IVs for a species are also the best of every one you've\ncaught or hatched, so try to get lots of the same species!`,
"pokerus": `A daily random 3 selectable starters have a purple border.
$If you see a starter you own with one of these,\ntry adding it to your party. Be sure to check its summary!`,
"statChange": `Stat changes persist across battles as long as your Pokémon aren't recalled.
$Your Pokémon are recalled before a trainer battle and before entering a new biome.
$You can view the stat changes for any Pokémon on the field by holding C or Shift.
$You can also view the moveset for an enemy Pokémon by holding V.
$This only reveals moves that you've seen the Pokémon use this battle.`,
"selectItem": `After every battle, you are given a choice of 3 random items.\nYou may only pick one.
$These range from consumables, to Pokémon held items, to passive permanent items.
$Most non-consumable item effects will stack in various ways.
$Some items will only show up if they can be used, such as evolution items.
$You can also transfer held items between Pokémon using the transfer option.
$The transfer option will appear in the bottom right once you have obtained a held item.
$You may purchase consumable items with money, and a larger variety will be available the further you get.
$Be sure to buy these before you pick your random item, as it will progress to the next battle once you do.`,
"eggGacha": `From this screen, you can redeem your vouchers for\nPokémon eggs.
$Eggs have to be hatched and get closer to hatching after\nevery battle. Rarer eggs take longer to hatch.
$Hatched Pokémon also won't be added to your party, they will\nbe added to your starters.
$Pokémon hatched from eggs generally have better IVs than\nwild Pokémon.
$Some Pokémon can only even be obtained from eggs.
$There are 3 different machines to pull from with different\nbonuses, so pick the one that suits you best!`,
} as const;

View File

@ -0,0 +1,11 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
export const voucher: SimpleTranslationEntries = {
"vouchers": "Vouchers",
"eggVoucher": "Egg Voucher",
"eggVoucherPlus": "Egg Voucher Plus",
"eggVoucherPremium": "Egg Voucher Premium",
"eggVoucherGold": "Egg Voucher Gold",
"locked": "Locked",
"defeatTrainer": "Defeat {{trainerName}}"
} as const;

View File

@ -0,0 +1,66 @@
import { SimpleTranslationEntries } from "#app/interfaces/locales";
/**
* The weather namespace holds text displayed when weather is active during a battle
*/
export const weather: SimpleTranslationEntries = {
"sunnyStartMessage": "The sunlight got bright!",
"sunnyLapseMessage": "The sunlight is strong.",
"sunnyClearMessage": "The sunlight faded.",
"rainStartMessage": "A downpour started!",
"rainLapseMessage": "The downpour continues.",
"rainClearMessage": "The rain stopped.",
"sandstormStartMessage": "A sandstorm brewed!",
"sandstormLapseMessage": "The sandstorm rages.",
"sandstormClearMessage": "The sandstorm subsided.",
"sandstormDamageMessage": "{{pokemonNameWithAffix}} is buffeted\nby the sandstorm!",
"hailStartMessage": "It started to hail!",
"hailLapseMessage": "Hail continues to fall.",
"hailClearMessage": "The hail stopped.",
"hailDamageMessage": "{{pokemonNameWithAffix}} is pelted\nby the hail!",
"snowStartMessage": "It started to snow!",
"snowLapseMessage": "The snow is falling down.",
"snowClearMessage": "The snow stopped.",
"fogStartMessage": "A thick fog emerged!",
"fogLapseMessage": "The fog continues.",
"fogClearMessage": "The fog disappeared.",
"heavyRainStartMessage": "A heavy downpour started!",
"heavyRainLapseMessage": "The heavy downpour continues.",
"heavyRainClearMessage": "The heavy rain stopped.",
"harshSunStartMessage": "The sunlight got hot!",
"harshSunLapseMessage": "The sun is scorching hot.",
"harshSunClearMessage": "The harsh sunlight faded.",
"strongWindsStartMessage": "A heavy wind began!",
"strongWindsLapseMessage": "The wind blows intensely.",
"strongWindsEffectMessage": "The mysterious air current weakened the attack!",
"strongWindsClearMessage": "The heavy wind stopped."
};
export const terrain: SimpleTranslationEntries = {
"misty": "Misty",
"mistyStartMessage": "Mist swirled around the battlefield!",
"mistyClearMessage": "The mist disappeared from the battlefield.",
"mistyBlockMessage": "{{pokemonNameWithAffix}} surrounds itself with a protective mist!",
"electric": "Electric",
"electricStartMessage": "An electric current ran across the battlefield!",
"electricClearMessage": "The electricity disappeared from the battlefield.",
"grassy": "Grassy",
"grassyStartMessage": "Grass grew to cover the battlefield!",
"grassyClearMessage": "The grass disappeared from the battlefield.",
"psychic": "Psychic",
"psychicStartMessage": "The battlefield got weird!",
"psychicClearMessage": "The weirdness disappeared from the battlefield!",
"defaultBlockMessage": "{{pokemonNameWithAffix}} is protected by the {{terrainName}} Terrain!"
};

View File

@ -2,6 +2,7 @@ import i18next from "i18next";
import LanguageDetector from "i18next-browser-languagedetector"; import LanguageDetector from "i18next-browser-languagedetector";
import processor, { KoreanPostpositionProcessor } from "i18next-korean-postposition-processor"; import processor, { KoreanPostpositionProcessor } from "i18next-korean-postposition-processor";
import { caESConfig} from "#app/locales/ca-ES/config.js";
import { deConfig } from "#app/locales/de/config.js"; import { deConfig } from "#app/locales/de/config.js";
import { enConfig } from "#app/locales/en/config.js"; import { enConfig } from "#app/locales/en/config.js";
import { esConfig } from "#app/locales/es/config.js"; import { esConfig } from "#app/locales/es/config.js";
@ -44,12 +45,12 @@ const fonts: Array<LoadingFontFaceProperty> = [
{ {
face: new FontFace("emerald", "url(./fonts/unifont-15.1.05.subset.woff2)", { unicodeRange: rangesByLanguage.chinese }), face: new FontFace("emerald", "url(./fonts/unifont-15.1.05.subset.woff2)", { unicodeRange: rangesByLanguage.chinese }),
extraOptions: { sizeAdjust: "70%", format: "woff2" }, extraOptions: { sizeAdjust: "70%", format: "woff2" },
only: [ "en", "es", "fr", "it", "de", "zh", "pt", "ko" ], only: [ "en", "es", "fr", "it", "de", "zh", "pt", "ko", "ca" ],
}, },
{ {
face: new FontFace("pkmnems", "url(./fonts/unifont-15.1.05.subset.woff2)", { unicodeRange: rangesByLanguage.chinese }), face: new FontFace("pkmnems", "url(./fonts/unifont-15.1.05.subset.woff2)", { unicodeRange: rangesByLanguage.chinese }),
extraOptions: { format: "woff2" }, extraOptions: { format: "woff2" },
only: [ "en", "es", "fr", "it", "de", "zh", "pt", "ko" ], only: [ "en", "es", "fr", "it", "de", "zh", "pt", "ko", "ca" ],
}, },
// japanese // japanese
{ {
@ -108,7 +109,7 @@ export async function initI18n(): Promise<void> {
await i18next.init({ await i18next.init({
nonExplicitSupportedLngs: true, nonExplicitSupportedLngs: true,
fallbackLng: "en", fallbackLng: "en",
supportedLngs: ["en", "es", "fr", "it", "de", "zh", "pt", "ko", "ja"], supportedLngs: ["en", "es", "fr", "it", "de", "zh", "pt", "ko", "ja", "ca"],
defaultNS: "menu", defaultNS: "menu",
ns: Object.keys(enConfig), ns: Object.keys(enConfig),
detection: { detection: {
@ -148,6 +149,9 @@ export async function initI18n(): Promise<void> {
}, },
ja: { ja: {
...jaConfig ...jaConfig
},
"ca-ES": {
...caESConfig
} }
}, },
postProcess: ["korean-postposition"], postProcess: ["korean-postposition"],

View File

@ -767,6 +767,10 @@ export function setSetting(scene: BattleScene, setting: string, value: integer):
label: "日本語", label: "日本語",
handler: () => changeLocaleHandler("ja") handler: () => changeLocaleHandler("ja")
}, },
{
label: "Català",
handler: () => changeLocaleHandler("ca-ES")
},
{ {
label: i18next.t("settings:back"), label: i18next.t("settings:back"),
handler: () => cancelHandler() handler: () => cancelHandler()

View File

@ -85,6 +85,12 @@ export default class SettingsDisplayUiHandler extends AbstractSettingsUiHandler
label: "日本語", label: "日本語",
}; };
break; break;
case "ca-ES":
this.settings[languageIndex].options[0] = {
value: "Català",
label: "Català",
};
break;
default: default:
this.settings[languageIndex].options[0] = { this.settings[languageIndex].options[0] = {
value: "English", value: "English",

View File

@ -107,7 +107,11 @@ const languageSettings: { [key: string]: LanguageSetting } = {
"ja":{ "ja":{
starterInfoTextSize: "51px", starterInfoTextSize: "51px",
instructionTextSize: "38px", instructionTextSize: "38px",
} },
"ca-ES":{
starterInfoTextSize: "56px",
instructionTextSize: "38px",
},
}; };
const starterCandyCosts: { passive: integer, costReduction: [integer, integer], egg: integer }[] = [ const starterCandyCosts: { passive: integer, costReduction: [integer, integer], egg: integer }[] = [