feat: add complete multilanguage support for german and english

This commit is contained in:
Patryk Hegenberg 2026-01-21 15:44:37 +01:00
parent d4be30cf74
commit e5c61447a3
25 changed files with 500 additions and 168 deletions

View file

@ -33,6 +33,7 @@
"registerHaveAccount": "Bereits registriert? ",
"registerLoginButton": "LOGIN",
"hubCycleComplete": "Zyklus beendet! Beende ihn in den Stats.",
"hubNoActiveCycle": "Kein aktiver Zyklus",
"hubCreateCycle": "Neuen Zyklus starten",
"hubCycleLabel": "Zyklus",
@ -153,6 +154,26 @@
"emomConfirm": "BESTÄTIGEN & BEENDEN",
"emomRepsPerRound": "Wiederholungen pro Runde",
"questDailyBounties": "TÄGLICHE KOPFGELDER",
"questViewAll": "ALLE ANZEIGEN >",
"questClaim": "EINSAMMELN",
"questRewardCollected": "Belohnung: {xp} XP erhalten!",
"@questRewardCollected": {
"placeholders": {
"xp": {
"type": "int"
}
}
},
"guideNotFound": "Keine Schriftrolle für diese Technik gefunden.",
"guideExecution": "AUSFÜHRUNG",
"guideMistakes": "HÄUFIGE FEHLER",
"guideAttributes": "BETROFFENE ATTRIBUTE",
"guideDiffNovice": "ANFÄNGER",
"guideDiffAdept": "FORTGESCHRITTEN",
"guideDiffMaster": "MEISTER",
"questTabDailies": "TÄGLICH",
"questTabJourney": "REISE",
"questEmptyDailies": "Keine täglichen Quests.\nKomm morgen wieder!",
@ -203,6 +224,32 @@
"passwordsDoNotMatch": "Passwörter stimmen nicht überein",
"confirmButton": "BESTÄTIGEN",
"battleTitle": "Kampf",
"battleNoExercises": "Keine Übungen konfiguriert",
"battleWeekDay": "Woche {week} - Tag {day}",
"@battleWeekDay": {
"placeholders": {
"week": {"type": "int"},
"day": {"type": "int"}
}
},
"bodyweight": "Körpergewicht",
"battleBossDefeated": "BOSS BESIEGT!",
"timerComplete": "Zeit abgelaufen!",
"battleRepsPerRound": "{reps} Reps pro Runde",
"@battleRepsPerRound": {
"placeholders": {
"reps": {"type": "int"}
}
},
"battleWeightKg": "GEWICHT: {weight} kg",
"@battleWeightKg": {
"placeholders": {
"weight": {"type": "double", "format": "decimalPattern"}
}
},
"commonConfirm": "BESTÄTIGEN",
"guidePullupTitle": "Weighted Pull-Up",
"guidePullupLore": "Den Körper gegen die Schwerkraft zu ziehen, ist der ultimative Beweis für Oberkörperkraft.",
"guidePullupSteps": "Greife die Stange etwas weiter als schulterbreit (Obergriff)|Aktiviere den Core und ziehe die Schulterblätter nach unten/hinten|Ziehe dich hoch, bis das Kinn über der Stange ist|Lasse dich kontrolliert wieder ab",
@ -384,6 +431,44 @@
"lobbyStatusActive": "Raid startet...",
"lobbyStatusEntering": "Betrete das Schlachtfeld...",
"unknownMember": "Unbekannt",
"leaderboardTitle": "HALL OF FAME",
"leaderboardHero": "Held #{id}",
"@leaderboardHero": {
"placeholders": {
"id": {"type": "String"}
}
},
"leaderboardSubtitle": "Stufe {level} • {xp} XP",
"@leaderboardSubtitle": {
"placeholders": {
"level": {"type": "int"},
"xp": {"type": "int"}
}
},
"exportEmailSubject": "SLRPG Daten Export",
"exportEmailBody": "Deine SLRPG Trainingsdaten (DSGVO Export)",
"deleteConfirmationWord": "LÖSCHEN",
"timerPause": "PAUSE",
"timerReset": "RESET",
"timerSkip": "SKIP",
"timerRestart": "NEUSTART",
"genderMale": "Männlich",
"genderFemale": "Weiblich",
"timerIgnite": "STARTEN",
"timerResume": "FORTSETZEN",
"timerReady": "BEREIT?",
"timerPaused": "PAUSIERT",
"timerRound": "RUNDE {current} / {total}",
"@timerRound": {
"placeholders": {
"current": {"type": "int"},
"total": {"type": "int"}
}
},
"connectivityError": "Keine Internetverbindung verfügbar.",
"connectivityMultiplayerError": "Für Multiplayer wird eine Internetverbindung benötigt.",
@ -393,5 +478,60 @@
"errorNotFound": "Daten konnten nicht gefunden werden.",
"errorEntryNotUnique": "Dieser Eintrag ist bereits vergeben.",
"errorAuthenticationFailed": "E-Mail oder Passwort falsch.",
"errorIllegalRequest": "Ungültige Anfrage."
"errorIllegalRequest": "Ungültige Anfrage.",
"commonLevel": "Stufe",
"commonRequired": "Erforderlich",
"commonUpdate": "AKTUALISIEREN",
"commonEdit": "BEARBEITEN",
"commonLogout": "ABMELDEN",
"commonSave": "SPEICHERN",
"commonCancel": "ABBRECHEN",
"commonConfirm": "BESTÄTIGEN",
"profileEditTitle": "Profil bearbeiten",
"profileEditAppearance": "Aussehen bearbeiten",
"profileSelectScenery": "Hintergrund wählen",
"profileBodyweightUpdated": "Körpergewicht aktualisiert",
"profileChangePassword": "Passwort ändern",
"profileOldPassword": "Altes Passwort",
"profileNewPassword": "Neues Passwort",
"profileConfirmNewPassword": "Bestätigen",
"profilePassMismatch": "Stimmt nicht überein",
"profilePassMinChars": "Min 8 Zeichen",
"profilePassChangedSuccess": "Passwort erfolgreich geändert",
"profilePhysicalStats": "Physische Werte",
"profileCurrentBodyweight": "Aktuelles Gewicht",
"profileTrainingFocus": "Trainingsfokus",
"profileAccessoryTemplate": "Assistenz-Template",
"profileAccountSecurity": "Kontosicherheit",
"profileDangerZone": "Gefahrenzone",
"profileResetProgress": "Fortschritt zurücksetzen",
"profileResetProgressSubtitle": "Setzt Level, XP und Historie zurück",
"profileResetConfirmTitle": "Fortschritt löschen?",
"profileResetConfirmBody": "Dies löscht alle Workouts und setzt Level auf 1. Nicht widerruflich.",
"profileDeleteAccount": "Account löschen",
"profileDeleteAccountSubtitle": "Löscht Account und Daten dauerhaft",
"profileDeleteConfirmTitle": "Account löschen?",
"profileDeleteConfirmBody": "Bist du sicher? Alle Daten gehen verloren.",
"templateStrengthOnly": "Nur Stärke",
"templateStrengthOnlyDesc": "Hauptübungen + FSL. Pur & Schnell.",
"templateHypertrophy": "Hypertrophie Support",
"templateHypertrophyDesc": "Bodybuilding-Assistenz für Muskelpanzer.",
"templateConditioning": "Der Motor (Ausdauer)",
"templateConditioningDesc": "15 min Kettlebell Intervalle.",
"templateActiveJourneys": "AKTIVE REISEN",
"templatePullupJourney": "Quest: Der erste Klimmzug",
"templatePullupJourneyDesc": "Spezifische Progression für das eigene Körpergewicht.",
"setupFailed": "Setup fehlgeschlagen: {error}",
"@setupFailed": {
"placeholders": {
"error": {
"type": "Object"
}
}
},
"setupEmailExists": "E-Mail existiert bereits. Bitte einloggen."
}

View file

@ -33,6 +33,7 @@
"registerHaveAccount": "Already have an account? ",
"registerLoginButton": "LOGIN",
"hubCycleComplete": "Cycle complete! Finish it in stats.",
"hubNoActiveCycle": "No active cycle",
"hubCreateCycle": "Create New Cycle",
"hubCycleLabel": "Cycle",
@ -153,6 +154,26 @@
"emomConfirm": "CONFIRM & FINISH",
"emomRepsPerRound": "Reps per Round",
"questDailyBounties": "DAILY BOUNTIES",
"questViewAll": "VIEW ALL >",
"questClaim": "CLAIM",
"questRewardCollected": "Reward collected: {xp} XP!",
"@questRewardCollected": {
"placeholders": {
"xp": {
"type": "int"
}
}
},
"guideNotFound": "No ancient scroll found for this technique.",
"guideExecution": "EXECUTION",
"guideMistakes": "COMMON MISTAKES",
"guideAttributes": "ATTRIBUTES AFFECTED",
"guideDiffNovice": "NOVICE",
"guideDiffAdept": "ADEPT",
"guideDiffMaster": "MASTER",
"questTabDailies": "DAILIES",
"questTabJourney": "JOURNEY",
"questEmptyDailies": "No daily quests available.\nCome back tomorrow!",
@ -203,6 +224,32 @@
"passwordsDoNotMatch": "Passwords do not match",
"confirmButton": "CONFIRM",
"battleTitle": "Battle",
"battleNoExercises": "No exercises configured",
"battleWeekDay": "Week {week} - Day {day}",
"@battleWeekDay": {
"placeholders": {
"week": {"type": "int"},
"day": {"type": "int"}
}
},
"bodyweight": "Bodyweight",
"battleBossDefeated": "BOSS DEFEATED!",
"timerComplete": "Time Complete!",
"battleRepsPerRound": "{reps} Reps per Round",
"@battleRepsPerRound": {
"placeholders": {
"reps": {"type": "int"}
}
},
"battleWeightKg": "WEIGHT: {weight} kg",
"@battleWeightKg": {
"placeholders": {
"weight": {"type": "double", "format": "decimalPattern"}
}
},
"commonConfirm": "CONFIRM",
"guidePullupTitle": "Weighted Pull-Up",
"guidePullupLore": "Pulling your body against gravity is the ultimate proof of upper body strength.",
"guidePullupSteps": "Grip the bar slightly wider than shoulder width (overhand)|Engage core and pull shoulder blades down/back|Pull yourself up until chin is over the bar|Lower yourself with control",
@ -398,6 +445,44 @@
"lobbyStatusActive": "Raid is starting...",
"lobbyStatusEntering": "Entering Battle...",
"unknownMember": "Unknown",
"leaderboardTitle": "HALL OF FAME",
"leaderboardHero": "Hero #{id}",
"@leaderboardHero": {
"placeholders": {
"id": {"type": "String"}
}
},
"leaderboardSubtitle": "Level {level} • {xp} XP",
"@leaderboardSubtitle": {
"placeholders": {
"level": {"type": "int"},
"xp": {"type": "int"}
}
},
"exportEmailSubject": "SLRPG Data Export",
"exportEmailBody": "Your SLRPG training data (GDPR export)",
"deleteConfirmationWord": "DELETE",
"timerPause": "PAUSE",
"timerReset": "RESET",
"timerSkip": "SKIP",
"timerRestart": "RESTART",
"genderMale": "Male",
"genderFemale": "Female",
"timerIgnite": "IGNITE ENGINE",
"timerResume": "RESUME",
"timerReady": "READY?",
"timerPaused": "PAUSED",
"timerRound": "ROUND {current} / {total}",
"@timerRound": {
"placeholders": {
"current": {"type": "int"},
"total": {"type": "int"}
}
},
"connectivityError": "No internet connection available.",
"connectivityMultiplayerError": "Active internet connection required for multiplayer.",
@ -407,5 +492,60 @@
"errorNotFound": "Data not found.",
"errorEntryNotUnique": "Entry already exists.",
"errorAuthenticationFailed": "E-Mail or Passwort wrong.",
"errorIllegalRequest": "Illegal Request."
"errorIllegalRequest": "Illegal Request.",
"commonLevel": "Lvl",
"commonRequired": "Required",
"commonUpdate": "UPDATE",
"commonEdit": "EDIT",
"commonLogout": "LOGOUT",
"commonSave": "SAVE",
"commonCancel": "CANCEL",
"commonConfirm": "CONFIRM",
"profileEditTitle": "Edit Profile",
"profileEditAppearance": "Edit Appearance",
"profileSelectScenery": "Select Scenery",
"profileBodyweightUpdated": "Bodyweight updated",
"profileChangePassword": "Change Password",
"profileOldPassword": "Old Password",
"profileNewPassword": "New Password",
"profileConfirmNewPassword": "Confirm New",
"profilePassMismatch": "Mismatch",
"profilePassMinChars": "Min 8 chars",
"profilePassChangedSuccess": "Password changed successfully",
"profilePhysicalStats": "Physical Stats",
"profileCurrentBodyweight": "Current Bodyweight",
"profileTrainingFocus": "Training Focus",
"profileAccessoryTemplate": "Accessory Template",
"profileAccountSecurity": "Account Security",
"profileDangerZone": "Danger Zone",
"profileResetProgress": "Reset Progress",
"profileResetProgressSubtitle": "Resets Level, XP and Training History",
"profileResetConfirmTitle": "Reset Progress?",
"profileResetConfirmBody": "This will delete all your workouts and reset your Level to 1. This cannot be undone.",
"profileDeleteAccount": "Delete Account",
"profileDeleteAccountSubtitle": "Permanently delete your account and data",
"profileDeleteConfirmTitle": "Delete Account?",
"profileDeleteConfirmBody": "Are you sure you want to delete your account? All data will be lost forever.",
"templateStrengthOnly": "Strength Only",
"templateStrengthOnlyDesc": "Main Lifts + FSL. Pure & Fast.",
"templateHypertrophy": "Hypertrophy Support",
"templateHypertrophyDesc": "Bodybuilding accessories to build muscle armor.",
"templateConditioning": "The Engine (Conditioning)",
"templateConditioningDesc": "15 min Kettlebell intervals to boost stamina.",
"templateActiveJourneys": "ACTIVE JOURNEYS",
"templatePullupJourney": "Quest: The First Pull-Up",
"templatePullupJourneyDesc": "Specific progression to master your bodyweight.",
"setupFailed": "Setup failed: {error}",
"@setupFailed": {
"placeholders": {
"error": {
"type": "Object"
}
}
},
"setupEmailExists": "Email already exists. Please login or use another email."
}