diff --git a/public/images/types_de.png b/public/images/types_de.png index 8b644f1041c..1e919335116 100644 Binary files a/public/images/types_de.png and b/public/images/types_de.png differ diff --git a/src/locales/de/biome.ts b/src/locales/de/biome.ts index 8359b36176e..03a7556a5d5 100644 --- a/src/locales/de/biome.ts +++ b/src/locales/de/biome.ts @@ -1,40 +1,40 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; 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", + "unknownLocation": "An einem unbekannten Ort", + "TOWN": "Stadt", + "PLAINS": "Ebene", + "GRASS": "Grasfeld", + "TALL_GRASS": "Hohes Gras", + "METROPOLIS": "Metropole", + "FOREST": "Wald", + "SEA": "Meer", + "SWAMP": "Sumpf", + "BEACH": "Strand", + "LAKE": "See", + "SEABED": "Meeresboden", + "MOUNTAIN": "Berg", + "BADLANDS": "Kargland", + "CAVE": "Höhle", + "DESERT": "Wüste", + "ICE_CAVE": "Eishöhle", + "MEADOW": "Weide", + "POWER_PLANT": "Kraftwerk", + "VOLCANO": "Vulkan", + "GRAVEYARD": "Friedhof", "DOJO": "Dojo", - "FACTORY": "Factory", - "RUINS": "Ancient Ruins", - "WASTELAND": "Wasteland", - "ABYSS": "The Abyss", - "SPACE": "Stratosphere", - "CONSTRUCTION_SITE": "Construction Site", - "JUNGLE": "Jungle", - "FAIRY_CAVE": "Fairy Cave", - "TEMPLE": "Temple", - "SLUM": "Slum", - "SNOWY_FOREST": "Snowy Forest", - "ISLAND": "Island", - "LABORATORY": "Laboratory", - "END": "Final Destination", -} as const; \ No newline at end of file + "FACTORY": "Fabrik", + "RUINS": "Alte Ruinen", + "WASTELAND": "Ödland", + "ABYSS": "Der Abgrund", + "SPACE": "Stratosphäre", + "CONSTRUCTION_SITE": "Baustelle", + "JUNGLE": "Dschungel", + "FAIRY_CAVE": "Feenhöhle", + "TEMPLE": "Tempel", + "SLUM": "Elendsviertel", + "SNOWY_FOREST": "Verschneiter Wald", + "ISLAND": "Insel", + "LABORATORY": "Labor", + "END": "Ende", +} as const; diff --git a/src/locales/de/menu.ts b/src/locales/de/menu.ts index 7d96f9130eb..033653668b7 100644 --- a/src/locales/de/menu.ts +++ b/src/locales/de/menu.ts @@ -35,11 +35,11 @@ export const menu: SimpleTranslationEntries = { "boyOrGirl": "Bist du ein Junge oder ein Mädchen?", "boy": "Junge", "girl": "Mädchen", - "evolving": "What?\n{{pokemonName}} is evolving!", - "stoppedEvolving": "{{pokemonName}} stopped evolving.", - "pauseEvolutionsQuestion": "Would you like to pause evolutions for {{pokemonName}}?\nEvolutions can be re-enabled from the party screen.", - "evolutionsPaused": "Evolutions have been paused for {{pokemonName}}.", - "evolutionDone": "Congratulations!\nYour {{pokemonName}} evolved into {{evolvedPokemonName}}!", + "evolving": "Was?\n{{pokemonName}} entwickelt sich!", + "stoppedEvolving": "{{pokemonName}} hat aufgehört sich zu entwickeln.", + "pauseEvolutionsQuestion": "Willst du die Entwicklungen für {{pokemonName}} pausieren?\nEntwicklungen können vom Team-Menü aus fortgesetzt werden.", + "evolutionsPaused": "Entwicklungen für {{pokemonName}} wurden pausiert.", + "evolutionDone": "Glückwunsch!\nDein {{pokemonName}} hat sich in {{evolvedPokemonName}} entwickelt!", "dailyRankings": "Tägliche Rangliste", "weeklyRankings": "Wöchentliche Rangliste", "noRankings": "Keine Rangliste", diff --git a/src/locales/de/party-ui-handler.ts b/src/locales/de/party-ui-handler.ts index 728a619f96f..9b9ae7e8737 100644 --- a/src/locales/de/party-ui-handler.ts +++ b/src/locales/de/party-ui-handler.ts @@ -1,17 +1,21 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const partyUiHandler: SimpleTranslationEntries = { - "choosePokemon": "Choose a Pokémon.", - "cantReleaseInBattle": "You can\'t release a Pokémon that\'s in battle!", - "what2doWithPoke": "Do what with this Pokémon?", - "cancelShort": "Cancel", - "selectMove": "Select a move.", - "selectHeldItemTransfer": "Select a held item to transfer.", - "selectSplice": "Select another Pokémon to splice.", - "deactivate": "Deactivate", - "activate": "Activate", - "SEND_OUT": "Send Out", - "SUMMARY": "Summary", - "RELEASE": "Release", - "CANCEL": "Cancel" + "choosePokemon": "Wähle ein Pokémon.", + "cantReleaseInBattle": "Kämpfende Pokémon können\n nicht freigelassen werden.", + "what2doWithPoke": "Was möchtest du mit diesem Pokémon tun?", + "cancelShort": "Abbrechen", + "selectMove": "Wähle eine Attacke.", + "selectHeldItemTransfer": "Wähle welches Item du übertragen möchtest.", + "selectSplice": "Wähle ein Pokémon zum verbinden.", + "deactivate": "Deaktivieren", + "activate": "Aktivieren", + "SEND_OUT": "Einwechseln", + "SUMMARY": "Info", + "RELEASE": "Freilassen", + "CANCEL": "Abbrechen", + "unpauseEvolution": "{{pokemonName}} kann jetzt wieder\nentwickelt werden.", + "unsplicePokemon": "Willst du wirklich {{fusionSpeciesName}}\nvon {{pokemonName}} trennen? {{fusionSpeciesName}} wird freigelassen.", + "spliceRevertText": "{{fusionName}} wurde wieder zu {{pokemonName}}.", + "releasePokemon": "Willst du {{pokemonName}} wirklich freilassen?", } as const; \ No newline at end of file diff --git a/src/locales/de/starter-select-ui-handler.ts b/src/locales/de/starter-select-ui-handler.ts index e08dacbcd6a..25421398f56 100644 --- a/src/locales/de/starter-select-ui-handler.ts +++ b/src/locales/de/starter-select-ui-handler.ts @@ -16,8 +16,8 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "gen7": "VII", "gen8": "VIII", "gen9": "IX", - "growthRate": "Wachstum:", - "ability": "Fhgkeit:", + "growthRate": "Wachstumrate:", + "ability": "Fähigkeit:", "passive": "Passiv:", "nature": "Wesen:", "eggMoves": "Ei-Attacken", @@ -40,7 +40,7 @@ export const starterSelectUiHandler: SimpleTranslationEntries = { "disablePassive": "Passiv-Skill deaktivieren", "locked": "Gesperrt", "disabled": "Deaktiviert", - "uncaught": "Uncaught", - "luck":" Luck", - "form": "Form" + "uncaught": "Nicht gefangen", + "luck":" Glück", + "form": "Form", } diff --git a/src/locales/de/summary-ui-handler.ts b/src/locales/de/summary-ui-handler.ts index 0c67f0a2a8d..f7ca9108a79 100644 --- a/src/locales/de/summary-ui-handler.ts +++ b/src/locales/de/summary-ui-handler.ts @@ -3,15 +3,15 @@ import { SimpleTranslationEntries } from "#app/plugins/i18n"; export const SummaryUiHandler: SimpleTranslationEntries = { "pokemonInfo": "Pokémon Info", //Currently unused "originalTrainer": "OT", - "type": "Type", - "natureBeforeText": "", - "natureAfterText": " nature", - "apparently": "apparently", - "metAtLv":"met at Lv", + "type": "Typ", + "natureBeforeText": "Wesen: ", + "natureAfterText": "", + "apparently": "Wahrscheinlich", + "metAtLv":"getroffen auf Lvl. ", "status": "Status", "lvl": "Lvl", - "unknown": 'Unknown', - "expPoints": "EXP. Points", - "nextLv": "Next Lv.", - "moveStats": "Power\nAccuracy\nCategory" + "unknown": 'Unbekannt', + "expPoints": "EP", + "nextLv": "Nächstes Lv", + "moveStats": "Stärke\nGenauigkeit\nKategorie", } as const; \ No newline at end of file diff --git a/src/locales/en/party-ui-handler.ts b/src/locales/en/party-ui-handler.ts index 728a619f96f..63e62a17caa 100644 --- a/src/locales/en/party-ui-handler.ts +++ b/src/locales/en/party-ui-handler.ts @@ -13,5 +13,10 @@ export const partyUiHandler: SimpleTranslationEntries = { "SEND_OUT": "Send Out", "SUMMARY": "Summary", "RELEASE": "Release", - "CANCEL": "Cancel" + "CANCEL": "Cancel", + "unpauseEvolution": "Evolutions have been unpaused for {{pokemonName}}", + "unsplicePokemon": "`Do you really want to unsplice {{fusionSpeciesName}}\nfrom {{pokemonName}? {{fusionSpeciesName}} will be lost.", + "spliceRevertText": "{{fusionName}} was reverted to {{pokemonName}}.", + "releasePokemon": "Do you really want to release {{pokemonName}}?", + } as const; \ No newline at end of file diff --git a/src/locales/es/party-ui-handler.ts b/src/locales/es/party-ui-handler.ts index 2e944a41563..e0581141a23 100644 --- a/src/locales/es/party-ui-handler.ts +++ b/src/locales/es/party-ui-handler.ts @@ -13,5 +13,10 @@ export const partyUiHandler: SimpleTranslationEntries = { "SEND_OUT": "Cambiar", "SUMMARY": "Datos", "RELEASE": "Liberar", - "CANCEL": "Cancelar" + "CANCEL": "Cancelar", + "unpauseEvolution": "Evolutions have been unpaused for {{pokemonName}}", + "unsplicePokemon": "`Do you really want to unsplice {{fusionSpeciesName}}\nfrom {{pokemonName}? {{fusionSpeciesName}} will be lost.", + "spliceRevertText": "{{fusionName}} was reverted to {{pokemonName}}.", + "releasePokemon": "Do you really want to release {{pokemonName}}?", + } as const; \ No newline at end of file diff --git a/src/locales/fr/party-ui-handler.ts b/src/locales/fr/party-ui-handler.ts index ffdddbddaba..43127e16ad1 100644 --- a/src/locales/fr/party-ui-handler.ts +++ b/src/locales/fr/party-ui-handler.ts @@ -13,5 +13,10 @@ export const partyUiHandler: SimpleTranslationEntries = { "SEND_OUT": "Envoyer", "SUMMARY": "Résumé", "RELEASE": "Relâcher", - "CANCEL": "Annuler" + "CANCEL": "Annuler", + "unpauseEvolution": "Evolutions have been unpaused for {{pokemonName}}", + "unsplicePokemon": "`Do you really want to unsplice {{fusionSpeciesName}}\nfrom {{pokemonName}? {{fusionSpeciesName}} will be lost.", + "spliceRevertText": "{{fusionName}} was reverted to {{pokemonName}}.", + "releasePokemon": "Do you really want to release {{pokemonName}}?", } as const; + diff --git a/src/locales/it/party-ui-handler.ts b/src/locales/it/party-ui-handler.ts index 728a619f96f..63e62a17caa 100644 --- a/src/locales/it/party-ui-handler.ts +++ b/src/locales/it/party-ui-handler.ts @@ -13,5 +13,10 @@ export const partyUiHandler: SimpleTranslationEntries = { "SEND_OUT": "Send Out", "SUMMARY": "Summary", "RELEASE": "Release", - "CANCEL": "Cancel" + "CANCEL": "Cancel", + "unpauseEvolution": "Evolutions have been unpaused for {{pokemonName}}", + "unsplicePokemon": "`Do you really want to unsplice {{fusionSpeciesName}}\nfrom {{pokemonName}? {{fusionSpeciesName}} will be lost.", + "spliceRevertText": "{{fusionName}} was reverted to {{pokemonName}}.", + "releasePokemon": "Do you really want to release {{pokemonName}}?", + } as const; \ No newline at end of file diff --git a/src/locales/pt_BR/party-ui-handler.ts b/src/locales/pt_BR/party-ui-handler.ts index 728a619f96f..63e62a17caa 100644 --- a/src/locales/pt_BR/party-ui-handler.ts +++ b/src/locales/pt_BR/party-ui-handler.ts @@ -13,5 +13,10 @@ export const partyUiHandler: SimpleTranslationEntries = { "SEND_OUT": "Send Out", "SUMMARY": "Summary", "RELEASE": "Release", - "CANCEL": "Cancel" + "CANCEL": "Cancel", + "unpauseEvolution": "Evolutions have been unpaused for {{pokemonName}}", + "unsplicePokemon": "`Do you really want to unsplice {{fusionSpeciesName}}\nfrom {{pokemonName}? {{fusionSpeciesName}} will be lost.", + "spliceRevertText": "{{fusionName}} was reverted to {{pokemonName}}.", + "releasePokemon": "Do you really want to release {{pokemonName}}?", + } as const; \ No newline at end of file diff --git a/src/locales/zh_CN/party-ui-handler.ts b/src/locales/zh_CN/party-ui-handler.ts index 728a619f96f..63e62a17caa 100644 --- a/src/locales/zh_CN/party-ui-handler.ts +++ b/src/locales/zh_CN/party-ui-handler.ts @@ -13,5 +13,10 @@ export const partyUiHandler: SimpleTranslationEntries = { "SEND_OUT": "Send Out", "SUMMARY": "Summary", "RELEASE": "Release", - "CANCEL": "Cancel" + "CANCEL": "Cancel", + "unpauseEvolution": "Evolutions have been unpaused for {{pokemonName}}", + "unsplicePokemon": "`Do you really want to unsplice {{fusionSpeciesName}}\nfrom {{pokemonName}? {{fusionSpeciesName}} will be lost.", + "spliceRevertText": "{{fusionName}} was reverted to {{pokemonName}}.", + "releasePokemon": "Do you really want to release {{pokemonName}}?", + } as const; \ No newline at end of file diff --git a/src/ui/party-ui-handler.ts b/src/ui/party-ui-handler.ts index 36a1d2ff3e0..bdeb4131c57 100644 --- a/src/ui/party-ui-handler.ts +++ b/src/ui/party-ui-handler.ts @@ -303,18 +303,18 @@ export default class PartyUiHandler extends MessageUiHandler { this.clearOptions(); ui.playSelect(); pokemon.pauseEvolutions = false; - this.showText(`Evolutions have been unpaused for ${pokemon.name}.`, null, () => this.showText(null, 0), null, true); + this.showText(i18next.t("partyUiHandler:unpauseEvolution",{pokemonName: pokemon.name}), null, () => this.showText(null, 0), null, true); } else if (option === PartyOption.UNSPLICE) { this.clearOptions(); ui.playSelect(); - this.showText(`Do you really want to unsplice ${pokemon.fusionSpecies.name}\nfrom ${pokemon.name}? ${pokemon.fusionSpecies.name} will be lost.`, null, () => { + this.showText(i18next.t("partyUiHandler:unsplicePokemon",{fusionSpeciesName: pokemon.fusionSpecies.name, pokemonName: pokemon.name}), null, () => { ui.setModeWithoutClear(Mode.CONFIRM, () => { const fusionName = pokemon.name; pokemon.unfuse().then(() => { this.clearPartySlots(); this.populatePartySlots(); ui.setMode(Mode.PARTY); - this.showText(`${fusionName} was reverted to ${pokemon.name}.`, null, () => { + this.showText(i18next.t("partyUiHandler:spliceRevertText",{fusionName: fusionName,pokemonName: pokemon.name}), null, () => { ui.setMode(Mode.PARTY); this.showText(null, 0); }, null, true); @@ -328,7 +328,7 @@ export default class PartyUiHandler extends MessageUiHandler { this.clearOptions(); ui.playSelect(); if (this.cursor >= this.scene.currentBattle.getBattlerCount()) { - this.showText(`Do you really want to release ${pokemon.name}?`, null, () => { + this.showText(i18next.t("partyUiHandler:releasePokemon",{pokemonName: pokemon.name}), null, () => { ui.setModeWithoutClear(Mode.CONFIRM, () => { ui.setMode(Mode.PARTY); this.doRelease(this.cursor); diff --git a/src/ui/starter-select-ui-handler.ts b/src/ui/starter-select-ui-handler.ts index dfdc13151a2..00f2e0d23e1 100644 --- a/src/ui/starter-select-ui-handler.ts +++ b/src/ui/starter-select-ui-handler.ts @@ -238,12 +238,22 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonNameText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonNameText); + let growthRateXPosition = 34; + switch (i18next.language) { + case 'de': + growthRateXPosition = 38; + break; + default: + growthRateXPosition = 34; + break + } + this.pokemonGrowthRateLabelText = addTextObject(this.scene, 8, 106, i18next.t("starterSelectUiHandler:growthRate"), TextStyle.SUMMARY_ALT, { fontSize: '36px' }); this.pokemonGrowthRateLabelText.setOrigin(0, 0); this.pokemonGrowthRateLabelText.setVisible(false); this.starterSelectContainer.add(this.pokemonGrowthRateLabelText); - this.pokemonGrowthRateText = addTextObject(this.scene, 34, 106, '', TextStyle.SUMMARY_PINK, { fontSize: '36px' }); + this.pokemonGrowthRateText = addTextObject(this.scene, growthRateXPosition, 106, '', TextStyle.SUMMARY_PINK, { fontSize: '36px' }); this.pokemonGrowthRateText.setOrigin(0, 0); this.starterSelectContainer.add(this.pokemonGrowthRateText); @@ -262,6 +272,9 @@ export default class StarterSelectUiHandler extends MessageUiHandler { case 'pt_BR': starterInfoXPosition = 32; break; + case 'de': + starterInfoXPosition = 36; + break; default: starterInfoXPosition = 31; break @@ -274,6 +287,9 @@ export default class StarterSelectUiHandler extends MessageUiHandler { case 'pt_BR': starterInfoTextSize = '47px'; break; + case 'de': + starterInfoTextSize = '52px'; + break; default: starterInfoTextSize = '56px'; break @@ -461,12 +477,12 @@ export default class StarterSelectUiHandler extends MessageUiHandler { this.pokemonSprite.setPipeline(this.scene.spritePipeline, { tone: [ 0.0, 0.0, 0.0, 0.0 ], ignoreTimeTint: true }); this.starterSelectContainer.add(this.pokemonSprite); - this.type1Icon = this.scene.add.sprite(8, 98, 'types'); + this.type1Icon = this.scene.add.sprite(8, 98, `types${Utils.verifyLang(i18next.language) ? `_${i18next.language}` : ''}`); this.type1Icon.setScale(0.5); this.type1Icon.setOrigin(0, 0); this.starterSelectContainer.add(this.type1Icon); - this.type2Icon = this.scene.add.sprite(26, 98, 'types'); + this.type2Icon = this.scene.add.sprite(26, 98, `types${Utils.verifyLang(i18next.language) ? `_${i18next.language}` : ''}`); this.type2Icon.setScale(0.5); this.type2Icon.setOrigin(0, 0); this.starterSelectContainer.add(this.type2Icon); diff --git a/src/ui/summary-ui-handler.ts b/src/ui/summary-ui-handler.ts index 5e1de555602..3476465465a 100644 --- a/src/ui/summary-ui-handler.ts +++ b/src/ui/summary-ui-handler.ts @@ -108,6 +108,8 @@ export default class SummaryUiHandler extends UiHandler { setup() { const ui = this.getUi(); + const language = i18next.language; + this.summaryContainer = this.scene.add.container(0, 0); this.summaryContainer.setVisible(false); ui.add(this.summaryContainer); @@ -225,7 +227,17 @@ export default class SummaryUiHandler extends UiHandler { moveEffectBg.setOrigin(0, 0); this.moveEffectContainer.add(moveEffectBg); - const moveEffectLabels = addTextObject(this.scene, 8, 12, i18next.t('summaryUiHandler:moveStats'), TextStyle.SUMMARY); + let moveStatsXValue = 8; + switch (language) { + case 'de': + moveStatsXValue = 3; + break; + default: + moveStatsXValue = 8; + break; + } + + const moveEffectLabels = addTextObject(this.scene, moveStatsXValue, 12, i18next.t('summaryUiHandler:moveStats'), TextStyle.SUMMARY); moveEffectLabels.setLineSpacing(9); moveEffectLabels.setOrigin(0, 0);