mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2024-12-01 11:16:21 +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.5 KiB
JSON
113 lines
7.5 KiB
JSON
{
|
|
"bossAppeared": "{{bossName}} erscheint.",
|
|
"trainerAppeared": "{{trainerName}} möchte kämpfen!",
|
|
"trainerAppearedDouble": "{{trainerName}} möchten kämpfen!",
|
|
"trainerSendOut": "{{trainerName}} setzt {{pokemonName}} ein!",
|
|
"singleWildAppeared": "Ein wildes {{pokemonName}} erscheint!",
|
|
"multiWildAppeared": "Ein wildes {{pokemonName1}} und {{pokemonName2}} erscheinen!",
|
|
"playerComeBack": "Komm zurück, {{pokemonName}}!",
|
|
"trainerComeBack": "{{trainerName}} ruft {{pokemonName}} zurück!",
|
|
"playerGo": "Los! {{pokemonName}}!",
|
|
"trainerGo": "{{trainerName}} sendet {{pokemonName}} raus!",
|
|
"switchQuestion": "Möchtest du {{pokemonName}} auswechseln?",
|
|
"trainerDefeated": "{{trainerName}} wurde besiegt!",
|
|
"moneyWon": "Du gewinnst {{moneyAmount}} ₽!",
|
|
"moneyPickedUp": "Du hebst {{moneyAmount}} ₽ auf!",
|
|
"pokemonCaught": "{{pokemonName}} wurde gefangen!",
|
|
"pokemonObtained": "Du erhältst {{pokemonName}}!",
|
|
"pokemonBrokeFree": "Mist!\nDas Pokémon hat sich befreit!",
|
|
"pokemonFled": "Das wilde {{pokemonName}} ist geflohen!",
|
|
"playerFled": "Du bist vor dem wilden {{pokemonName}} geflohen!",
|
|
"addedAsAStarter": "{{pokemonName}} wurde als Starterpokémon hinzugefügt!",
|
|
"partyFull": "Dein Team ist voll. Möchtest du ein Pokémon durch {{pokemonName}} ersetzen?",
|
|
"pokemon": "Pokémon",
|
|
"sendOutPokemon": "Los, {{pokemonName}}!",
|
|
"hitResultCriticalHit": "Ein Volltreffer!",
|
|
"hitResultSuperEffective": "Das ist sehr effektiv!",
|
|
"hitResultNotVeryEffective": "Das ist nicht sehr effektiv…",
|
|
"hitResultNoEffect": "Es hat keine Wirkung auf {{pokemonName}}…",
|
|
"hitResultImmune": "{{pokemonName}} ist unversehrt!",
|
|
"hitResultOneHitKO": "Ein K.O.-Treffer!",
|
|
"attackFailed": "Es ist fehlgeschlagen!",
|
|
"attackMissed": "Die Attacke hat {{pokemonNameWithAffix}} verfehlt!",
|
|
"attackHitsCount": "{{count}}-mal getroffen!",
|
|
"rewardGain": "Du erhältst {{modifierName}}!",
|
|
"rewardGainCount": "Du erhältst {{count}} {{modifierName}}!",
|
|
"expGain": "{{pokemonName}} erhält {{exp}} Erfahrungspunkte!",
|
|
"levelUp": "{{pokemonName}} erreicht Lv. {{level}}!",
|
|
"learnMove": "{{pokemonName}} erlernt {{moveName}}!",
|
|
"learnMovePrompt": "{{pokemonName}} versucht, {{moveName}} zu erlernen.",
|
|
"learnMoveLimitReached": "Aber {{pokemonName}} kann nur maximal vier Attacken erlernen.",
|
|
"learnMoveReplaceQuestion": "Soll eine bekannte Attacke durch {{moveName}} ersetzt werden?",
|
|
"learnMoveStopTeaching": "{{moveName}} nicht erlernen?",
|
|
"learnMoveNotLearned": "{{pokemonName}} hat {{moveName}} nicht erlernt.",
|
|
"learnMoveForgetQuestion": "Welche Attacke soll vergessen werden?",
|
|
"learnMoveForgetSuccess": "{{pokemonName}} hat {{moveName}} vergessen.",
|
|
"countdownPoof": "@d{32}Eins, @d{15}zwei @d{15}und@d{15}… @d{15}… @d{15}… @d{15}@s{se/pb_bounce_1}schwupp!",
|
|
"learnMoveAnd": "Und…",
|
|
"levelCapUp": "Die Levelbeschränkung wurde auf {{levelCap}} erhöht!",
|
|
"moveNotImplemented": "{{moveName}} ist noch nicht implementiert und kann nicht ausgewählt werden.",
|
|
"moveNoPP": "Es sind keine AP für diese Attacke mehr übrig!",
|
|
"moveDisabled": "{{moveName}} ist deaktiviert!",
|
|
"canOnlyUseMove": "{{pokemonName}} kann keine andere Attacke als {{moveName}} einsetzen!",
|
|
"moveCannotBeSelected": "{{moveName}} kann nicht ausgewählt werden!",
|
|
"disableInterruptedMove": "{{moveName}} von {{pokemonNameWithAffix}} ist blockiert!",
|
|
"throatChopInterruptedMove": "{{pokemonName}} kann die Attacke durch die Wirkung von Neck Strike nicht einsetzen!",
|
|
"noPokeballForce": "Eine unsichtbare Kraft verhindert die Nutzung von Pokébällen.",
|
|
"noPokeballTrainer": "Du kannst das Pokémon eines anderen Trainers nicht fangen!",
|
|
"noPokeballMulti": "Du kannst erst einen Pokéball werfen, wenn nur noch ein Pokémon übrig ist!",
|
|
"noPokeballStrong": "Das Ziel-Pokémon ist zu stark, um gefangen zu werden! Du musst es zuerst schwächen!",
|
|
"noPokeballMysteryEncounter": "You aren't able to\ncatch this Pokémon!",
|
|
"noEscapeForce": "Eine unsichtbare Kraft verhindert die Flucht.",
|
|
"noEscapeTrainer": "Du kannst nicht aus einem Trainerkampf fliehen!",
|
|
"noEscapePokemon": "{{moveName}} von {{pokemonName}} verhindert {{escapeVerb}}!",
|
|
"runAwaySuccess": "Du bist entkommen!",
|
|
"runAwayCannotEscape": "Flucht gescheitert!",
|
|
"escapeVerbSwitch": "auswechseln",
|
|
"escapeVerbFlee": "flucht",
|
|
"notDisabled": "{{moveName}} von {{pokemonName}} ist nicht mehr deaktiviert!",
|
|
"turnEndHpRestore": "Die KP von {{pokemonName}} wurden wiederhergestellt.",
|
|
"hpIsFull": "Die KP von {{pokemonName}} sind voll!",
|
|
"skipItemQuestion": "Bist du sicher, dass du kein Item nehmen willst?",
|
|
"itemStackFull": "Du hast bereits zu viele von {{fullItemName}}. Du erhältst stattdessen {{itemName}}.",
|
|
"eggHatching": "Oh?",
|
|
"eggSkipPrompt": "Zur Ei-Zusammenfassung springen?",
|
|
"ivScannerUseQuestion": "IV-Scanner auf {{pokemonName}} benutzen?",
|
|
"wildPokemonWithAffix": "{{pokemonName}} (wild)",
|
|
"foePokemonWithAffix": "{{pokemonName}} (Gegner)",
|
|
"useMove": "{{pokemonNameWithAffix}} setzt {{moveName}} ein!",
|
|
"drainMessage": "{{pokemonName}} wurde Energie abgesaugt",
|
|
"regainHealth": "KP von {{pokemonName}} wurden wieder aufgefrischt!",
|
|
"stealEatBerry": "{{pokemonName}} hat {{targetName}} seine {{berryName}} weggefuttert!",
|
|
"ppHealBerry": "{{berryName}} von {{pokemonNameWithAffix}} füllt AP von {{moveName}} auf!",
|
|
"hpHealBerry": "{{berryName}} füllt KP von {{pokemonNameWithAffix}} auf!",
|
|
"fainted": "{{pokemonNameWithAffix}} wurde besiegt!",
|
|
"statsAnd": "und",
|
|
"stats": "Alle Werte",
|
|
"statRose_one": "{{stats}} von {{pokemonNameWithAffix}} steigt!",
|
|
"statRose_other": "{{stats}} von {{pokemonNameWithAffix}} steigen!",
|
|
"statSharplyRose_one": "{{stats}} von {{pokemonNameWithAffix}} steigt stark!",
|
|
"statSharplyRose_other": "{{stats}} von {{pokemonNameWithAffix}} steigen stark!",
|
|
"statRoseDrastically_one": "{{stats}} von {{pokemonNameWithAffix}} steigt drastisch!",
|
|
"statRoseDrastically_other": "{{stats}} von {{pokemonNameWithAffix}} steigen drastisch!",
|
|
"statWontGoAnyHigher_one": "{{stats}} von {{pokemonNameWithAffix}} kann nicht weiter erhöht werden!",
|
|
"statWontGoAnyHigher_other": "{{stats}} von {{pokemonNameWithAffix}} können nicht weiter erhöht werden!",
|
|
"statFell_one": "{{stats}} von {{pokemonNameWithAffix}} sinkt!",
|
|
"statFell_other": "{{stats}} von {{pokemonNameWithAffix}} sinken!",
|
|
"statHarshlyFell_one": "{{stats}} von {{pokemonNameWithAffix}} sinkt stark!",
|
|
"statHarshlyFell_other": "{{stats}} von {{pokemonNameWithAffix}} sinken stark!",
|
|
"statSeverelyFell_one": "{{stats}} von {{pokemonNameWithAffix}} sinkt drastisch!",
|
|
"statSeverelyFell_other": "{{stats}} von {{pokemonNameWithAffix}} sinken drastisch!",
|
|
"statWontGoAnyLower_one": "{{stats}} von {{pokemonNameWithAffix}} kann nicht weiter sinken!",
|
|
"statWontGoAnyLower_other": "{{stats}} von {{pokemonNameWithAffix}} können nicht weiter sinken!",
|
|
"transformedIntoType": "{{pokemonName}} transformed\ninto the {{type}} type!",
|
|
"retryBattle": "Möchtest du vom Beginn des Kampfes neustarten?",
|
|
"unlockedSomething": "{{unlockedThing}} wurde freigeschaltet.",
|
|
"congratulations": "Glückwunsch!",
|
|
"beatModeFirstTime": "{{speciesName}} hat den {{gameMode}} Modus zum ersten Mal beendet! Du erhältst {{newModifier}}!",
|
|
"ppReduced": "{{moveName}} von {{targetName}} wird um {{reduction}} AP reduziert!",
|
|
"mysteryEncounterAppeared": "Was ist das?",
|
|
"battlerTagsHealBlock": "{{pokemonNameWithAffix}} kann nicht geheilt werden, da die Heilung blockiert wird!",
|
|
"battlerTagsHealBlockOnRemove": "{{pokemonNameWithAffix}} kann wieder geheilt werden!"
|
|
}
|