mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2024-11-29 10:16:14 +00:00
95386861bb
* move: locales files to `/public` (from `/src`) * install: i18next-http-backend module * implement: i18next language lazy-loading * remove: all `config.ts` files (for locales) * disable: enConfig import in i18next.d.ts * remove: console.log from utils.camelCaseToKebabCase() * remove localization tests we don't need to test if i18next is working. This is the job of i18next itself * mock i18next for tests * fix: tests that have to use the i18next key now instead of the english translation * fix: absolute-avarice-encounter test * fix: loading mystery-encounter translations with lazy-load * fix: 2 mystery encounter translation loading * replace: i18next mocks any vi.fn() calls * fix: new namespace usage in ME tests now using "mysteryEncounters/..." * fix: delibirdy encounter not being language specific the encounter was checking if the modifier name includes `Berry` which is only true for english. Instead it has to check if the modifier is an instance of BerryModifier * fix: the-expert-pokemon-breeder the new i18n pattern requires a different namespacing which has been adopted * fix: GTS encounter tests * add: `MockText.on()` * fix: berries abound test * chore: apply review suggestion from @DayKev * update i18next.d.ts * chore: fix i18next.d.ts * fix: `dialogue-misc` switchup between `en` and `ja` * move: `SpeciesFormKey` into enum there was an issue with circular dependencies * replace: `#app/enums/` with `#enums/` for `SpeciesFormKey` imports * re-sync locales from `beta` * rename: `ca_ES` -> `ca-ES` * rename: `pt_BR` -> `pt-BR` * rename: `zh_CN` -> `zh-CN` * rename: `zh_TW` -> `zh-TW` * fix loading Species-Form-Key in poemon-evo. * update: i18next `supporterLngs` ... and remove `nonExplicitSupportedLngs` * fix: `${namespace}.` -> `${namespace}:` thanks @MokaStitcher
113 lines
7.8 KiB
JSON
113 lines
7.8 KiB
JSON
{
|
||
"bossAppeared": "Un {{bossName}} apparait.",
|
||
"trainerAppeared": "Un combat est lancé\npar {{trainerName}} !",
|
||
"trainerAppearedDouble": "Un combat est lancé\npar {{trainerName}} !",
|
||
"trainerSendOut": "{{pokemonName}} est envoyé par\n{{trainerName}} !",
|
||
"singleWildAppeared": "Un {{pokemonName}} sauvage apparait !",
|
||
"multiWildAppeared": "Un {{pokemonName1}} et un {{pokemonName2}}\nsauvages apparaissent !",
|
||
"playerComeBack": "{{pokemonName}} !\nReviens !",
|
||
"trainerComeBack": "{{trainerName}} retire\n{{pokemonName}} !",
|
||
"playerGo": "{{pokemonName}} ! Go !",
|
||
"trainerGo": "{{pokemonName}} est envoyé par\n{{trainerName}} !",
|
||
"switchQuestion": "Voulez-vous changer\n{{pokemonName}} ?",
|
||
"trainerDefeated": "Vous avez battu\n{{trainerName}} !",
|
||
"moneyWon": "Vous remportez\n{{moneyAmount}} ₽ !",
|
||
"moneyPickedUp": "Vous obtenez {{moneyAmount}} ₽ !",
|
||
"pokemonCaught": "Vous avez attrapé\n{{pokemonName}} !",
|
||
"pokemonObtained": "Vous obtenez\nun {{pokemonName}} !",
|
||
"pokemonBrokeFree": "Oh, non !\nLe Pokémon s’est libéré !",
|
||
"pokemonFled": "Le {{pokemonName}} sauvage\nprend la fuite !",
|
||
"playerFled": "Vous fuyez le {{pokemonName}} !",
|
||
"addedAsAStarter": "{{pokemonName}} est ajouté\ncomme starter !",
|
||
"partyFull": "Votre équipe est pleine.\nRelâcher un Pokémon pour {{pokemonName}} ?",
|
||
"pokemon": "de Pokémon",
|
||
"sendOutPokemon": "{{pokemonName}} ! Go !",
|
||
"hitResultCriticalHit": "Coup critique !",
|
||
"hitResultSuperEffective": "C’est super efficace !",
|
||
"hitResultNotVeryEffective": "Ce n’est pas très efficace…",
|
||
"hitResultNoEffect": "Ça n’affecte pas {{pokemonName}}…",
|
||
"hitResultImmune": "{{pokemonName}} n’est pas affecté !",
|
||
"hitResultOneHitKO": "K.O. en un coup !",
|
||
"attackFailed": "Mais cela échoue !",
|
||
"attackMissed": "{{pokemonNameWithAffix}}\névite l’attaque !",
|
||
"attackHitsCount": "Touché {{count}} fois !",
|
||
"rewardGain": "Vous recevez\n{{modifierName}} !",
|
||
"rewardGainCount": "Vous recevez\n{{count}} {{modifierName}} !",
|
||
"expGain": "{{pokemonName}} gagne\n{{exp}} Points d’Exp !",
|
||
"levelUp": "{{pokemonName}} monte au\nN. {{level}} !",
|
||
"learnMove": "{{pokemonName}} apprend\n{{moveName}} !",
|
||
"learnMovePrompt": "{{pokemonName}} veut apprendre\n{{moveName}}.",
|
||
"learnMoveLimitReached": "Cependant, {{pokemonName}} connait\ndéjà quatre capacités.",
|
||
"learnMoveReplaceQuestion": "Voulez-vous oublier une capacité\net la remplacer par {{moveName}} ?",
|
||
"learnMoveStopTeaching": "Arrêter d’apprendre\n{{moveName}} ?",
|
||
"learnMoveNotLearned": "{{pokemonName}} n’a pas appris\n{{moveName}}.",
|
||
"learnMoveForgetQuestion": "Quelle capacité doit être oubliée ?",
|
||
"learnMoveForgetSuccess": "{{pokemonName}} oublie comment\nutiliser {{moveName}}.",
|
||
"countdownPoof": "@d{32}1, @d{15}2, @d{15}et@d{15}… @d{15}… @d{15}… @d{15}@s{se/pb_bounce_1}Tadaaa !",
|
||
"learnMoveAnd": "Et…",
|
||
"levelCapUp": "La limite de niveau\na été augmentée à {{levelCap}} !",
|
||
"moveNotImplemented": "{{moveName}} n’est pas encore implémenté et ne peut pas être sélectionné.",
|
||
"moveNoPP": "Il n’y a plus de PP pour\ncette capacité !",
|
||
"moveDisabled": "{{moveName}} est sous entrave !",
|
||
"canOnlyUseMove": "{{pokemonName}} ne peut utiliser\nque la capacité {{moveName}} !",
|
||
"moveCannotBeSelected": "La capacité {{moveName}}\nne peut pas être choisie !",
|
||
"disableInterruptedMove": "Il y a une entrave sur la capacité {{moveName}}\nde{{pokemonNameWithAffix}} !",
|
||
"throatChopInterruptedMove": "Exécu-Son empêche {{pokemonName}}\nd’utiliser la capacité !",
|
||
"noPokeballForce": "Une force mystérieuse\nempêche l’utilisation des Poké Balls.",
|
||
"noPokeballTrainer": "Le Dresseur détourne la Ball\nVoler, c’est mal !",
|
||
"noPokeballMulti": "Impossible ! On ne peut pas viser\nquand il y a deux Pokémon !",
|
||
"noPokeballStrong": "Le Pokémon est trop fort pour être capturé !\nVous devez d’abord l’affaiblir !",
|
||
"noPokeballMysteryEncounter": "Vous ne pouvez pas\nattraper ce Pokémon !",
|
||
"noEscapeForce": "Une force mystérieuse\nempêche la fuite.",
|
||
"noEscapeTrainer": "On ne s’enfuit pas d’un\ncombat de Dresseurs !",
|
||
"noEscapePokemon": "{{moveName}} de {{pokemonName}}\nempêche {{escapeVerb}} !",
|
||
"runAwaySuccess": "Vous prenez la fuite !",
|
||
"runAwayCannotEscape": "Fuite impossible !",
|
||
"escapeVerbSwitch": "le changement",
|
||
"escapeVerbFlee": "la fuite",
|
||
"notDisabled": "La capacité {{moveName}}\nde {{pokemonName}} n’est plus sous entrave !",
|
||
"turnEndHpRestore": "{{pokemonName}} récupère des PV !",
|
||
"hpIsFull": "Les PV de {{pokemonName}}\nsont au maximum !",
|
||
"skipItemQuestion": "Êtes-vous sûr·e de ne pas vouloir prendre d’objet ?",
|
||
"itemStackFull": "Quantité maximale de {{fullItemName}} atteinte.\nVous recevez {{itemName}} à la place.",
|
||
"eggHatching": "Hein ?",
|
||
"eggSkipPrompt": "Aller directement au résumé des Œufs éclos ?",
|
||
"ivScannerUseQuestion": "Utiliser le Scanner d’IV\nsur {{pokemonName}} ?",
|
||
"wildPokemonWithAffix": "{{pokemonName}} sauvage",
|
||
"foePokemonWithAffix": "{{pokemonName}} ennemi",
|
||
"useMove": "{{pokemonNameWithAffix}} utilise\n{{moveName}} !",
|
||
"stealEatBerry": "{{pokemonName}} vole et mange\nla {{berryName}} de {{targetName}} !",
|
||
"ppHealBerry": "La {{berryName}} de {{pokemonNameWithAffix}}\nrestaure les PP de sa capacité {{moveName}} !",
|
||
"hpHealBerry": "La {{berryName}} de {{pokemonNameWithAffix}}\nrestaure son énergie !",
|
||
"drainMessage": "L’énergie de {{pokemonName}}\nest drainée !",
|
||
"regainHealth": "{{pokemonName}} récupère\ndes PV !",
|
||
"fainted": "{{pokemonNameWithAffix}}\nest K.O. !",
|
||
"statsAnd": "et",
|
||
"stats": "Les stats",
|
||
"statRose_one": "{{stats}} de {{pokemonNameWithAffix}}\naugmente !",
|
||
"statRose_other": "{{stats}}\nde {{pokemonNameWithAffix}} augmentent !",
|
||
"statSharplyRose_one": "{{stats}} de {{pokemonNameWithAffix}}\naugmente beaucoup !",
|
||
"statSharplyRose_other": "{{stats}}\nde {{pokemonNameWithAffix}} augmentent beaucoup !",
|
||
"statRoseDrastically_one": "{{stats}} de {{pokemonNameWithAffix}}\naugmente énormément !",
|
||
"statRoseDrastically_other": "{{stats}}\nde {{pokemonNameWithAffix}} augmentent énormément !",
|
||
"statWontGoAnyHigher_one": "{{stats}} de {{pokemonNameWithAffix}}\nne peut plus augmenter !",
|
||
"statWontGoAnyHigher_other": "{{stats}}\nde {{pokemonNameWithAffix}} ne peuvent plus augmenter !",
|
||
"statFell_one": "{{stats}} de {{pokemonNameWithAffix}}\nbaisse !",
|
||
"statFell_other": "{{stats}}\nde {{pokemonNameWithAffix}} baissent !",
|
||
"statHarshlyFell_one": "{{stats}} de {{pokemonNameWithAffix}}\nbaisse beaucoup !",
|
||
"statHarshlyFell_other": "{{stats}}\nde {{pokemonNameWithAffix}} baissent beaucoup !",
|
||
"statSeverelyFell_one": "{{stats}} de {{pokemonNameWithAffix}}\nbaisse énormément !",
|
||
"statSeverelyFell_other": "{{stats}}\nde {{pokemonNameWithAffix}} baissent énormément !",
|
||
"statWontGoAnyLower_one": "{{stats}} de {{pokemonNameWithAffix}}\nne peut plus baisser !",
|
||
"statWontGoAnyLower_other": "{{stats}}\nde {{pokemonNameWithAffix}} ne peuvent plus baisser !",
|
||
"transformedIntoType": "{{pokemonName}} prend\nle type {{type}} !",
|
||
"retryBattle": "Voulez-vous réessayer depuis le début du combat ?",
|
||
"unlockedSomething": "{{unlockedThing}}\na été débloqué.",
|
||
"congratulations": "Félicitations !",
|
||
"beatModeFirstTime": "{{speciesName}} a battu le mode {{gameMode}} pour la première fois !\nVous avez reçu {{newModifier}} !",
|
||
"ppReduced": "Les PP de la capacité {{moveName}}\nde{{targetName}} baissent de {{reduction}} !",
|
||
"mysteryEncounterAppeared": "Hein ?\nC’est quoi ça ?",
|
||
"battlerTagsHealBlock": "{{pokemonNameWithAffix}} ne peut pas guérir !",
|
||
"battlerTagsHealBlockOnRemove": "Le blocage de soins qui affectait\n{{pokemonNameWithAffix}} s’est dissipé !"
|
||
}
|