pokerogue/public/locales/de/battle.json
flx-sta 95386861bb
[Qol][Refactor] i18n lazy-loading (#4327)
* 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
2024-10-01 21:55:16 +01:00

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!"
}