feat: add exercise informations and first l10n strings

This commit is contained in:
Patryk Hegenberg 2026-01-12 09:47:51 +01:00
parent 253f694424
commit bf9a54c8b1
8 changed files with 900 additions and 59 deletions

203
lib/l10n/app_de.arb Normal file
View file

@ -0,0 +1,203 @@
{
"enterTheArena": "BETRITT DIE ARENA",
"introText": "Die Eisengolems sind erwacht. Die Schwerkraft-Dämonen ziehen die Welt in den Abgrund.\n\nNur ein wahrer Streetlifter kann sie aufhalten. Bist du bereit, deinen Körper in eine Waffe zu schmieden?",
"featureArmorTitle": "Schmiede deine Rüstung",
"featureArmorDesc": "Progressive Overload basierend auf Wendler 5/3/1.",
"featureMonstersTitle": "Erschlage Monster",
"featureMonstersDesc": "Verwandle jede Wiederholung in Schaden gegen epische Feinde.",
"featureLootTitle": "Sammle Beute",
"featureLootDesc": "Verdiene XP, steige auf und schalte neue Ausrüstung frei.",
"beginJourney": "BEGINNE DEINE REISE",
"loginPrompt": "Schon ein Held? Hier einloggen",
"loginWelcomeBack": "WILLKOMMEN ZURÜCK",
"loginSubtitle": "Zeit für das nächste Level",
"loginErrorInvalid": "Ungültige E-Mail oder Passwort",
"loginErrorConnection": "Keine Verbindung zum Server.\nBitte prüfe deine Internetverbindung.",
"loginErrorTimeout": "Zeitüberschreitung.\nBitte versuche es erneut.",
"loginErrorGeneric": "Login fehlgeschlagen. Bitte erneut versuchen.",
"emailLabel": "E-Mail",
"emailEmptyError": "Bitte gib deine E-Mail ein",
"emailInvalidError": "Bitte gib eine gültige E-Mail ein",
"passwordLabel": "Passwort",
"passwordEmptyError": "Bitte gib dein Passwort ein",
"passwordLengthError": "Passwort muss mindestens 8 Zeichen haben",
"loginButton": "ANMELDEN",
"loginNoAccount": "Kein Account? ",
"loginRegisterButton": "REGISTRIEREN",
"registerTitle": "KONTO ERSTELLEN",
"registerSubtitle": "Beginne deine Reise",
"registerEmailHelper": "Wird für den Login verwendet",
"continueButton": "WEITER",
"registerHaveAccount": "Bereits registriert? ",
"registerLoginButton": "LOGIN",
"hubNoActiveCycle": "Kein aktiver Zyklus",
"hubCreateCycle": "Neuen Zyklus starten",
"hubCycleLabel": "Zyklus",
"hubActiveLabel": "Aktiv",
"hubActiveYes": "Ja",
"navHistory": "Historie",
"navInventory": "Inventar",
"navStats": "Statistik",
"navCodex": "Kodex",
"missionBriefingTitle": "MISSION BRIEFING",
"missionBriefingBody": "Der Feind flieht! Wir haben ein 20-Minuten-Fenster, um ihn abzufangen.",
"missionBriefingDensity": "Kampfdichte: {sets} Sätze",
"@missionBriefingDensity": {
"placeholders": {
"sets": {
"type": "int"
}
}
},
"missionBriefingInterval": "Intervall: Alle {seconds} Sekunden",
"@missionBriefingInterval": {
"placeholders": {
"seconds": {
"type": "String"
}
}
},
"missionBriefingHardcore": "⚠️ HARDCORE MODUS",
"abortButton": "ABBRECHEN",
"engageButton": "ANGREIFEN",
"inventoryTitle": "Ausrüstung verwalten",
"saveButton": "SPEICHERN",
"inventoryBarbellWeight": "Hantelstangengewicht",
"inventoryPresets": "Schnellwahl",
"inventoryPresetHome": "Home Gym",
"inventoryPresetCommercial": "Fitnessstudio",
"inventoryPresetMinimal": "Minimal",
"inventoryPlates": "Verfügbare Scheiben",
"inventoryBands": "Widerstandsbänder (Hilfe)",
"saveChangesButton": "ÄNDERUNGEN SPEICHERN",
"inventoryUpdatedSuccess": "Inventar erfolgreich aktualisiert",
"inventorySaveError": "Fehler beim Speichern: {error}",
"@inventorySaveError": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"statsTitle": "Statistik & Zyklen",
"statsProgressAnalysis": "Fortschrittsanalyse",
"statsCycleTitle": "ZYKLUS {number}",
"@statsCycleTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"statsCurrentTM": "Aktuelle Trainingsmaxima (TM)",
"statsFinishCycle": "ZYKLUS BEENDEN & LEVEL UP",
"statsCycleFinishedTitle": "Dungeon gesäubert!",
"statsCycleFinishedBody": "Du hast die Wächter dieses Zyklus besiegt. Doch tiefer im Dungeon warten stärkere Feinde...",
"statsTMIncreased": "Deine Trainingsmaxima wurden erhöht:",
"statsStalled": "STAGNIERT",
"statsEnterNextLevel": "NÄCHSTES LEVEL BETRETEN",
"historyTitle": "Quest Log",
"historyEmptyTitle": "Noch keine Quests abgeschlossen",
"historyEmptyBody": "Absolviere ein Training, um dein Journal zu füllen",
"historyUnknownWorkout": "Unbekanntes Training",
"battleWave": "WELLE {current} / {total}",
"@battleWave": {
"placeholders": {
"current": {"type": "int"},
"total": {"type": "int"}
}
},
"battleSet": "Satz {current} von {total}",
"@battleSet": {
"placeholders": {
"current": {"type": "int"},
"total": {"type": "int"}
}
},
"battleWeight": "GEWICHT",
"battleReps": "WH",
"battleAssistance": "UNTERSTÜTZUNG",
"battleCompleteSet": "SATZ ABSCHLIESSEN",
"battleRest": "PAUSE",
"battleSkipRest": "WEITER",
"battleUpNext": "NÄCHSTES: {exercise}",
"@battleUpNext": {
"placeholders": {
"exercise": {"type": "String"}
}
},
"battleRaidComplete": "RAID ERFOLGREICH!",
"battleBackToHub": "ZUR ZENTRALE",
"levelUpTitle": "LEVEL AUFSTIEG!",
"levelUpBody": "Du bist stärker geworden!",
"levelUpSubtitle": "Die Monster erzittern vor deiner neuen Macht.",
"battleAbandonTitle": "Raid abbrechen?",
"battleAbandonBody": "Dein Fortschritt wird nicht gespeichert.",
"cancelButton": "ABBRECHEN",
"abandonButton": "AUFGEBEN",
"amrapResultTitle": "🔥 AMRAP ERGEBNIS 🔥",
"amrapResultBody": "Alles gegeben! Wie viele waren es?",
"amrapConfirm": "ERGEBNIS BESTÄTIGEN",
"emomFinishedTitle": "MISSION ERFÜLLT",
"emomFinishedBody": "Die Zeit ist um. Hast du durchgehalten?",
"emomSetsCompleted": "SÄTZE ABGESCHLOSSEN",
"emomConfirm": "BESTÄTIGEN & BEENDEN",
"emomRepsPerRound": "Wiederholungen pro Runde",
"questTabDailies": "TÄGLICH",
"questTabJourney": "REISE",
"questEmptyDailies": "Keine täglichen Quests.\nKomm morgen wieder!",
"questEmptyJourney": "Deine Reise hat gerade erst begonnen.",
"setupProfileTitle": "Profil einrichten",
"bodyweightTitle": "Wie schwer bist du aktuell?",
"bodyweightSubtitle": "Wir benötigen dies zur Berechnung deiner Weighted Calisthenics Übungen",
"unitKg": "KG",
"unitLbs": "LBS",
"strengthTestTitle": "Stärke-Test",
"strengthTestSubtitle": "Kampf-Kalibrierung",
"strengthTestBody": "Wir müssen dein aktuelles Kraftlevel ermitteln, um die richtigen Monster zuzuweisen.",
"strengthLegs": "Beinkraft",
"strengthPull": "Zugkraft (Pull)",
"strengthPush": "Druckkraft (Push)",
"exerciseSquat": "Kniebeuge (Back Squat)",
"exercisePullup": "Weighted Pull-up",
"exerciseRow": "Pendlay Row",
"exerciseDip": "Weighted Dip",
"exerciseBench": "Bankdrücken",
"canDoOneRep": "Schaffst du 1 Rep?",
"isAssisted": "Mit Band-Hilfe?",
"addWeightLabel": "Zusatzgewicht (kg)",
"weightLabel": "Gewicht (kg)",
"bandAssistanceLabel": "Band-Hilfe (kg)",
"rowWeightLabel": "Ruder-Gewicht (kg)",
"repsLabel": "Wiederholungen",
"reps5rmLabel": "5RM Wiederholungen (meist 5)",
"est1rm": "Geschätztes 1RM",
"trainingMaxLabel": "Trainingsmaximum (90%)",
"adjustedWendler": "Angepasst: Wendler 5/3/1",
"tmExplanation": "Dein \"Trainingsmaximum\" (TM) ist deine Basis-Kampfkraft (90% vom 1RM). Bei Eigengewichtsübungen passen wir die Strategie an.",
"setupEquipmentTitle": "Ausrüstung Setup",
"setupInventoryTitle": "Ausrüstungsinventar",
"setupInventorySubtitle": "Sag uns, welche Ausrüstung du hast",
"setupBandsSubtitle": "Wähle Bänder für Pullup/Dip Unterstützung",
"nextStepButton": "NÄCHSTER SCHRITT",
"setupAvatarTitle": "Wähle deinen Helden",
"finishButton": "FERTIGSTELLEN",
"setupAvatarSubtitle": "So werden dich die Legenden in Erinnerung behalten.",
"secureAccountTitle": "Konto sichern",
"secureAccountBody": "Wähle ein starkes Passwort, um deinen Fortschritt zu schützen",
"confirmPasswordLabel": "Passwort bestätigen",
"passwordsDoNotMatch": "Passwörter stimmen nicht überein",
"confirmButton": "BESTÄTIGEN"
}

203
lib/l10n/app_en.arb Normal file
View file

@ -0,0 +1,203 @@
{
"enterTheArena": "ENTER THE ARENA",
"introText": "The Iron Golems have awakened. The Gravity Demons are pulling the world into the abyss.\n\nOnly a true Streetlifter can stop them. Are you ready to forge your body into a weapon?",
"featureArmorTitle": "Build Your Armor",
"featureArmorDesc": "Progressive overload based on Wendler 5/3/1.",
"featureMonstersTitle": "Slay Monsters",
"featureMonstersDesc": "Turn every rep into damage against epic foes.",
"featureLootTitle": "Gather Loot",
"featureLootDesc": "Earn XP, level up, and unlock new gear.",
"beginJourney": "BEGIN YOUR JOURNEY",
"loginPrompt": "Already a hero? Login here",
"loginWelcomeBack": "WELCOME BACK",
"loginSubtitle": "Time to level up your strength",
"loginErrorInvalid": "Invalid email or password",
"loginErrorConnection": "Could not connect to server.\nPlease check your internet connection.",
"loginErrorTimeout": "Connection timeout.\nPlease try again.",
"loginErrorGeneric": "Login failed. Please try again.",
"emailLabel": "Email",
"emailEmptyError": "Please enter your email",
"emailInvalidError": "Please enter a valid email",
"passwordLabel": "Password",
"passwordEmptyError": "Please enter your password",
"passwordLengthError": "Password must be at least 8 characters",
"loginButton": "LOGIN",
"loginNoAccount": "Don't have an account? ",
"loginRegisterButton": "REGISTER",
"registerTitle": "CREATE ACCOUNT",
"registerSubtitle": "Begin your strength journey",
"registerEmailHelper": "You will use this to login",
"continueButton": "CONTINUE",
"registerHaveAccount": "Already have an account? ",
"registerLoginButton": "LOGIN",
"hubNoActiveCycle": "No active cycle",
"hubCreateCycle": "Create New Cycle",
"hubCycleLabel": "Cycle",
"hubActiveLabel": "Active",
"hubActiveYes": "Yes",
"navHistory": "History",
"navInventory": "Inventory",
"navStats": "Stats",
"navCodex": "Codex",
"missionBriefingTitle": "MISSION BRIEFING",
"missionBriefingBody": "The enemy is fleeing! We have a 20-minute window to intercept.",
"missionBriefingDensity": "Combat Density: {sets} Sets",
"@missionBriefingDensity": {
"placeholders": {
"sets": {
"type": "int"
}
}
},
"missionBriefingInterval": "Interval: Every {seconds} seconds",
"@missionBriefingInterval": {
"placeholders": {
"seconds": {
"type": "String"
}
}
},
"missionBriefingHardcore": "⚠️ HARDCORE MODE",
"abortButton": "ABORT",
"engageButton": "ENGAGE",
"inventoryTitle": "Manage Equipment",
"saveButton": "SAVE",
"inventoryBarbellWeight": "Barbell Weight",
"inventoryPresets": "Quick Presets",
"inventoryPresetHome": "Home Gym",
"inventoryPresetCommercial": "Commercial",
"inventoryPresetMinimal": "Minimal",
"inventoryPlates": "Plates Available",
"inventoryBands": "Resistance Bands (Assistance)",
"saveChangesButton": "SAVE CHANGES",
"inventoryUpdatedSuccess": "Inventory updated successfully",
"inventorySaveError": "Error saving: {error}",
"@inventorySaveError": {
"placeholders": {
"error": {
"type": "String"
}
}
},
"statsTitle": "Statistics & Cycles",
"statsProgressAnalysis": "Progress Analysis",
"statsCycleTitle": "CYCLE {number}",
"@statsCycleTitle": {
"placeholders": {
"number": {
"type": "int"
}
}
},
"statsCurrentTM": "Current Training Maxes (TM)",
"statsFinishCycle": "FINISH CYCLE & LEVEL UP",
"statsCycleFinishedTitle": "Dungeon Cleared!",
"statsCycleFinishedBody": "You have defeated the guardians of this cycle. But deeper in the dungeon, stronger foes await...",
"statsTMIncreased": "Your Training Maxes have increased:",
"statsStalled": "STALLED",
"statsEnterNextLevel": "ENTER NEXT LEVEL",
"historyTitle": "Quest Log",
"historyEmptyTitle": "No completed quests yet",
"historyEmptyBody": "Complete a workout to fill your journal",
"historyUnknownWorkout": "Unknown Workout",
"battleWave": "WAVE {current} / {total}",
"@battleWave": {
"placeholders": {
"current": {"type": "int"},
"total": {"type": "int"}
}
},
"battleSet": "Set {current} of {total}",
"@battleSet": {
"placeholders": {
"current": {"type": "int"},
"total": {"type": "int"}
}
},
"battleWeight": "WEIGHT",
"battleReps": "REPS",
"battleAssistance": "ASSISTANCE",
"battleCompleteSet": "COMPLETE SET",
"battleRest": "REST",
"battleSkipRest": "SKIP REST",
"battleUpNext": "UP NEXT: {exercise}",
"@battleUpNext": {
"placeholders": {
"exercise": {"type": "String"}
}
},
"battleRaidComplete": "RAID COMPLETE!",
"battleBackToHub": "BACK TO HUB",
"levelUpTitle": "LEVEL UP!",
"levelUpBody": "You have grown stronger!",
"levelUpSubtitle": "The monsters tremble at your new power.",
"battleAbandonTitle": "Abandon Raid?",
"battleAbandonBody": "Your progress will not be saved.",
"cancelButton": "CANCEL",
"abandonButton": "ABANDON",
"amrapResultTitle": "🔥 AMRAP RESULT 🔥",
"amrapResultBody": "Go all out! How many did you get?",
"amrapConfirm": "CONFIRM RESULT",
"emomFinishedTitle": "MISSION ACCOMPLISHED",
"emomFinishedBody": "Time is up. Did you push further?",
"emomSetsCompleted": "SETS COMPLETED",
"emomConfirm": "CONFIRM & FINISH",
"emomRepsPerRound": "Reps per Round",
"questTabDailies": "DAILIES",
"questTabJourney": "JOURNEY",
"questEmptyDailies": "No daily quests available.\nCome back tomorrow!",
"questEmptyJourney": "Your journey has just begun.",
"setupProfileTitle": "Setup Profile",
"bodyweightTitle": "What's your current bodyweight?",
"bodyweightSubtitle": "We need this to calculate your weighted calisthenics exercises",
"unitKg": "KG",
"unitLbs": "LBS",
"strengthTestTitle": "Strength Test",
"strengthTestSubtitle": "Combat Calibration",
"strengthTestBody": "We need to assess your current power level to assign the correct monsters.",
"strengthLegs": "Leg Strength",
"strengthPull": "Pull Strength",
"strengthPush": "Push Strength",
"exerciseSquat": "Back Squat",
"exercisePullup": "Weighted Pull-up",
"exerciseRow": "Pendlay Row",
"exerciseDip": "Weighted Dip",
"exerciseBench": "Bench Press",
"canDoOneRep": "Can do 1 rep?",
"isAssisted": "Assisted (Bands)?",
"addWeightLabel": "Add. Weight (kg)",
"weightLabel": "Weight (kg)",
"bandAssistanceLabel": "Band Assistance (kg)",
"rowWeightLabel": "Row Weight (kg)",
"repsLabel": "Reps",
"reps5rmLabel": "5RM Reps (usually 5)",
"est1rm": "Est. 1RM",
"trainingMaxLabel": "Training Max (90%)",
"adjustedWendler": "Adjusted: Wendler 5/3/1",
"tmExplanation": "Your \"Training Max\" (TM) is your base combat power (90% of 1RM). For bodyweight exercises, we adjust the strategy.",
"setupEquipmentTitle": "Equipment Setup",
"setupInventoryTitle": "Equipment Inventory",
"setupInventorySubtitle": "Tell us what equipment you have available",
"setupBandsSubtitle": "Select bands you have for pullup/dip assistance",
"nextStepButton": "NEXT STEP",
"setupAvatarTitle": "Choose Your Hero",
"finishButton": "FINISH",
"setupAvatarSubtitle": "This is how the legends will remember you.",
"secureAccountTitle": "Secure Your Account",
"secureAccountBody": "Choose a strong password to protect your progress",
"confirmPasswordLabel": "Confirm Password",
"passwordsDoNotMatch": "Passwords do not match",
"confirmButton": "CONFIRM"
}