Files
HealthLog/messages/de.json
T

6515 lines
324 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"save": "Speichern",
"cancel": "Abbrechen",
"delete": "Löschen",
"undo": "Rückgängig",
"edit": "Bearbeiten",
"moreOptions": "Weitere Optionen",
"create": "Erstellen",
"close": "Schließen",
"loading": "Laden...",
"loadFailed": "Konnte nicht geladen werden",
"error": "Fehler",
"saved": "Gespeichert",
"pullToRefresh": "Wird aktualisiert …",
"no": "Nein",
"noData": "Keine Daten vorhanden",
"optional": "Optional",
"active": "Aktiv",
"inactive": "Inaktiv",
"enabled": "Aktiviert",
"disabled": "Deaktiviert",
"networkError": "Netzwerkfehler",
"unknownError": "Unbekannter Fehler",
"copied": "Kopiert!",
"or": "oder",
"unknown": "Unbekannt",
"add": "Hinzufügen",
"import": "Importieren",
"test": "Test",
"reset": "Zurücksetzen",
"copy": "Kopieren",
"copyDetails": "Details kopieren",
"retry": "Erneut versuchen",
"reportIssue": "Fehler melden",
"showPassword": "Passwort anzeigen",
"hidePassword": "Passwort verbergen"
},
"doctorReport": {
"title": "Gesundheitsbericht",
"subtitle": "HealthLog — Persönlicher Gesundheitsbericht",
"patient": "Patient",
"dateOfBirth": "Geburtsdatum",
"gender": "Geschlecht",
"genderMale": "Männlich",
"genderFemale": "Weiblich",
"genderOther": "Divers",
"height": "Körpergröße",
"period": "Berichtszeitraum",
"createdOn": "Erstellt am",
"vitalsTitle": "Vitalparameter — Übersicht",
"colParameter": "Parameter",
"colCurrent": "Aktuell",
"colAvgPeriod": "Ø Zeitraum",
"colMin": "Min",
"colMax": "Max",
"colN": "n",
"bpClassificationTitle": "Blutdruck — ESH-Klassifikation (2023)",
"avgBp": "Durchschnittlicher Blutdruck",
"classification": "Klassifikation",
"bmiTitle": "Body-Mass-Index (BMI)",
"bmiRow": "BMI: {bmi} kg/m² — Klassifikation: {class} (WHO)",
"complianceTitle": "Therapietreue",
"glp1Title": "GLP-1-Therapie",
"glp1WeightSummary": "Gewicht im Berichtszeitraum: {start} kg → {end} kg ({delta} kg)",
"glp1CurrentDose": "Aktuelle Dosis: {value} {unit} (seit {since})",
"glp1Compliance": "Therapietreue: {taken} / {total} ({rate}%)",
"glp1SideEffectsTitle": "Erfasste Nebenwirkungen",
"colGlp1Date": "Datum",
"colGlp1Dose": "Dosis",
"colGlp1Note": "Notiz",
"colGlp1SideEffect": "Nebenwirkung",
"colMedication": "Medikament",
"colTaken": "Eingenommen",
"colSkipped": "Übersprungen",
"colMissed": "Verpasst",
"colTotal": "Gesamt",
"colExpected": "Erwartet",
"colComplianceRate": "Therapietreue",
"moodTitle": "Stimmungsverlauf",
"moodSummary": "Durchschnitt: {avg} / 5,0 · Einträge: {count} · Bereich: {min}–{max}",
"colMood": "Stimmung",
"colCount": "Anzahl",
"colShare": "Anteil",
"footerDisclaimer1": "Dieser Bericht wurde automatisch aus selbst erfassten Daten generiert und dient ausschließlich zur Unterstützung",
"footerDisclaimer2": "des Arzt-Patienten-Gesprächs. Er ersetzt keine ärztliche Diagnose. Korrelationen implizieren keine Kausalität.",
"footerSource": "Quelle: HealthLog | Zeitzone: Europe/Berlin | Erstellt: {timestamp}",
"typeWeight": "Körpergewicht",
"typeBpSys": "Systolischer Blutdruck",
"typeBpDia": "Diastolischer Blutdruck",
"typePulse": "Ruhepuls",
"typeBodyFat": "Körperfettanteil",
"typeSleep": "Schlafdauer",
"typeSteps": "Aktivität (Schritte)",
"typeTotalBodyWater": "Gesamtkörperwasser",
"typeBoneMass": "Knochenmasse",
"typeOxygenSaturation": "Sauerstoffsättigung",
"unitSteps": "Schritte",
"bmiUnderweight": "Untergewicht",
"bmiNormal": "Normalgewicht",
"bmiOverweight": "Übergewicht (Präadipositas)",
"bmiObeseGrade1": "Adipositas Grad I",
"bmiObeseGrade2": "Adipositas Grad II",
"bmiObeseGrade3": "Adipositas Grad III",
"bpOptimal": "Optimal",
"bpNormal": "Normal",
"bpHighNormal": "Hochnormal",
"bpHypertensionGrade1": "Hypertonie Grad 1",
"bpHypertensionGrade2": "Hypertonie Grad 2",
"bpHypertensionGrade3": "Hypertonie Grad 3",
"moodAwful": "Sehr schlecht",
"moodBad": "Schlecht",
"moodNeutral": "Neutral",
"moodGood": "Gut",
"moodGreat": "Sehr gut",
"typeGlucoseFasting": "Glukose (nüchtern)",
"typeGlucosePostprandial": "Glukose (postprandial)",
"typeGlucoseRandom": "Glukose (beliebig)",
"typeGlucoseBedtime": "Glukose (vor dem Schlafen)",
"glucoseClassificationTitle": "Blutzucker — Referenzbereiche (ADA 2024 / DDG)",
"glucoseRow": "{label}: Ø {avg} {unit} (Ziel {rangeMin}–{rangeMax}) — {class}",
"glucoseInTarget": "im Ziel",
"glucoseBelowTarget": "unter Ziel",
"glucoseAboveTarget": "über Ziel",
"practiceLabel": "Praxis",
"dialog": {
"title": "Arztbericht (PDF)",
"description": "Lege den Auswertungszeitraum fest und (optional) den Praxisnamen — beide erscheinen auf dem Deckblatt.",
"startLabel": "Von",
"endLabel": "Bis",
"practiceLabel": "Praxis / Klinik (optional)",
"practicePlaceholder": "z. B. Dr. Müller — Hausarztpraxis",
"preset90d": "Letzte 90 Tage",
"preset180d": "Letzte 6 Monate",
"preset365d": "Letzte 12 Monate",
"submit": "PDF erstellen",
"cancel": "Abbrechen",
"errorEndBeforeStart": "Das Ende-Datum darf nicht vor dem Start liegen.",
"errorRangeTooLong": "Der Auswertungszeitraum darf maximal 2 Jahre umfassen.",
"errorInvalidDate": "Bitte wähle ein gültiges Start- und Ende-Datum."
},
"sections": {
"title": "Inhalte auswählen",
"bp": "Blutdruck",
"weight": "Gewicht",
"pulse": "Ruhepuls",
"bmi": "Body-Mass-Index (BMI)",
"mood": "Stimmung",
"moodSensitive": "Sensibel — standardmäßig aus.",
"compliance": "Therapietreue",
"sleep": "Schlafdauer",
"cycle": "Menstruationszyklus",
"empty": "Für den gewählten Zeitraum liegen noch keine Daten vor. Der Bericht enthält dennoch das Deckblatt.",
"unavailableHint": "Keine Daten in diesem Zeitraum",
"labs": "Laborwerte"
},
"insurer": "Krankenkasse",
"insuranceNumber": "Versichertennr.",
"summaryTitle": "Klinische Zusammenfassung",
"summaryReadings": "Über {days} Tage erfasst: {count} Messwerte über {params} Parameter.",
"summaryTrend": "{label}: zuletzt {latest} {arrow}",
"summaryAdherence": "Medikamenten-Therapietreue: {rate}% (gewichteter Mittelwert).",
"chartsTitle": "Trend-Diagramme",
"aiSummaryTitle": "KI-Zusammenfassung — nicht klinisch validiert",
"aiSummaryDisclaimer": "Dieser Abschnitt wurde automatisch von einem KI-Modell erzeugt und ist nicht klinisch validiert. Er ersetzt keine ärztliche Beurteilung.",
"packageReadme": "HealthLog Gesundheitsakte\n\nDieses Paket enthält:\n- report.pdf: den Gesundheitsbericht für die ärztliche Vorlage.\n- bundle.json: dieselben Daten als HL7-FHIR-R4-Dokument (Bundle), ePA-kompatibel.\n\nErstellt mit HealthLog.",
"wellnessTitle": "Wellness-Zusammenfassung",
"wellnessDisclaimer": "Dies sind beschreibende Wellness-Werte, die aus deinen erfassten Signalen berechnet werden (0–100). Sie sind keine klinischen Beurteilungen oder Diagnosen.",
"wellnessRecovery": "Erholung",
"wellnessStress": "Stress",
"wellnessStrain": "Belastung",
"cycleTitle": "Menstruationszyklus",
"cycleLmp": "Letzte Periode",
"cycleAvgLength": "Durchschnittliche Zykluslänge",
"cycleAvgPeriod": "Durchschnittliche Periodendauer",
"cyclePhase": "Aktuelle Phase",
"cycleDays": "Tage",
"cycleColStart": "Periodenbeginn",
"cycleColLength": "Zykluslänge (Tage)",
"cycleColPeriod": "Periodendauer (Tage)",
"cyclePhases": {
"MENSTRUAL": "Menstruation",
"FOLLICULAR": "Follikelphase",
"OVULATORY": "Ovulation",
"LUTEAL": "Lutealphase"
},
"labsTitle": "Laborwerte",
"labsColAnalyte": "Biomarker",
"labsColValue": "Wert",
"labsColReference": "Referenz",
"labsColStatus": "Status",
"labsColDate": "Datum"
},
"errorBoundary": {
"title": "Da ist etwas schiefgelaufen",
"description": "Ein unerwarteter Fehler ist aufgetreten. Du kannst es erneut versuchen, die technischen Details kopieren oder einen Bug-Report öffnen."
},
"notFound": {
"title": "Diese Seite existiert nicht.",
"backToDashboard": "Zurück zum Dashboard"
},
"offlineBanner": {
"message": "Keine Verbindung — Änderungen werden gespeichert, sobald du wieder online bist."
},
"demoBanner": {
"message": "Demo-Modus — Änderungen werden nicht gespeichert."
},
"nav": {
"dashboard": "Dashboard",
"measurements": "Messungen",
"medications": "Medikamente",
"insights": "Insights",
"targets": "Zielwerte",
"achievements": "Erfolge",
"settings": "Einstellungen",
"bugreport": "Bugreport",
"admin": "Admin-Konsole",
"logout": "Abmelden",
"login": "Anmelden",
"about": "Über HealthLog",
"notifications": "Benachrichtigungen",
"theme": "Darstellung",
"themeSystem": "System",
"themeDark": "Dunkel",
"themeLight": "Hell",
"collapseSidebar": "Einklappen",
"userMenu": "Benutzermenü",
"accountSettings": "Kontoeinstellungen",
"mood": "Stimmung",
"workouts": "Workouts",
"coach": "Coach",
"skipToContent": "Zum Inhalt springen",
"sidebar": "Sidebar",
"mainNavigation": "Hauptnavigation",
"mobileNavigation": "Mobile Navigation",
"breadcrumb": "Brotkrumen-Navigation",
"loadingScreen": "Laden…",
"more": "Mehr",
"moreSheetTitle": "Mehr",
"moreSheetDescription": "Zum Rest von HealthLog springen.",
"capture": {
"title": "Erfassen",
"description": "Was möchtest du erfassen?",
"measurement": "Messung",
"measurementDescription": "Gewicht, Blutdruck, Puls und mehr",
"medication": "Medikament",
"medicationDescription": "Eine Dosis als genommen markieren",
"mood": "Stimmung",
"moodDescription": "Stimmung und Tags erfassen"
},
"cycle": "Zyklus",
"labs": "Laborwerte",
"recovery": "Erholung",
"vorsorge": "Vorsorge"
},
"auth": {
"login": "Anmelden",
"register": "Registrieren",
"username": "Benutzername",
"password": "Passwort",
"email": "E-Mail-Adresse",
"emailPlaceholder": "name@beispiel.de",
"emailOrUsername": "E-Mail-Adresse oder Benutzername",
"emailOrUsernamePlaceholder": "name@beispiel.de oder benutzername",
"loginWithPasskey": "Mit Passkey anmelden",
"loginWithPassword": "Mit Passwort anmelden",
"noAccount": "Noch kein Konto?",
"hasAccount": "Bereits ein Konto?",
"loginFailed": "Anmeldung fehlgeschlagen",
"registerFailed": "Registrierung fehlgeschlagen",
"invitedBanner": "Du wurdest eingeladen — erstelle dein Konto, auch wenn die Registrierung sonst geschlossen ist.",
"createAccount": "Konto erstellen",
"newAccount": "Neues Konto erstellen",
"backToPasskey": "Zurück zu Passkey",
"passkeySetupLater": "Passkeys kannst du jederzeit in den Einstellungen einrichten.",
"passwordMinLength": "Min. 12 Zeichen",
"passwordTooShort": "Passwort muss mindestens {minLength} Zeichen lang sein.",
"privacyPolicy": "Datenschutzerklärung"
},
"dashboard": {
"title": "Dashboard",
"greeting": {
"morning": "Guten Morgen",
"day": "Hallo",
"evening": "Guten Abend"
},
"welcomeBack": "{greeting}, willkommen zurück.",
"welcomeBackWithName": "{greeting} {name}, willkommen zurück.",
"hero": {
"scoreLabel": "Health Score",
"scoreProvisional": "Noch nicht genug Daten",
"scoreComputing": "Score wird berechnet …",
"doses": {
"summary": "{taken} von {scheduled} Dosen genommen",
"nextAt": "Nächste um {time}",
"allDone": "Alle Dosen für heute erledigt",
"none": "Heute keine Dosen geplant"
},
"verdict": {
"doseOverdue": "Eine Dosis {name} ist überfällig.",
"doseOverdueNoName": "Eine Dosis ist überfällig.",
"bpHigh": "Dein letzter Blutdruck war sehr hoch ({sys}/{dia}). Miss in Ruhe noch einmal nach.",
"doseUpcoming": "Um {time} steht {name} an.",
"doseUpcomingNoName": "Um {time} steht eine Dosis an.",
"weightDrift": "Dein Gewicht bewegt sich diese Woche vom Zielbereich weg.",
"shortNights": "Deine Nächte waren zuletzt kurz — im Schnitt {hours} h.",
"silence": "Seit {days} Tagen keine Messung. Ein kurzer Eintrag hält dein Bild aktuell.",
"scoreDrop": "Dein Score liegt {points} Punkte unter der Vorwoche.",
"allQuiet": "Alles ruhig — heute gibt es nichts, das deine Aufmerksamkeit braucht."
},
"action": {
"takeDose": "Jetzt eintragen",
"viewBp": "Blutdruck ansehen",
"viewWeight": "Gewicht ansehen",
"viewSleep": "Schlaf ansehen",
"logMeasurement": "Messung erfassen",
"viewInsights": "Insights öffnen"
}
},
"greetingSalutation": "Hallo, {name}",
"streakLabel": "Tage in Folge",
"weight": "Gewicht",
"bloodPressure": "Blutdruck",
"pulse": "Puls",
"bodyFat": "Körperfett",
"sleep": "Schlaf",
"steps": "Schritte",
"vo2Max": "VO₂ max",
"vo2MaxUnit": "mL/(kg·min)",
"bpInTarget": "BD im Zielbereich",
"weightShort": "Gewicht",
"bloodPressureSysShort": "BD (Sys)",
"bloodPressureDiaShort": "BD (Dia)",
"pulseShort": "Puls",
"bodyFatShort": "KF",
"moodShort": "Stimmung",
"sleepShort": "Schlaf",
"stepsShort": "Schritte",
"vo2MaxShort": "VO₂ max",
"bpInTargetShort": "BD-Ziel",
"bpInTargetWindow90": "BD-Ziel · 90 T",
"bpInTargetWindowDynamic": "BD-Ziel · {days} T",
"bpInTargetCollecting": "sammelt noch Daten",
"medications": "Medikamente",
"quickAddMeasurement": "Messung erfassen",
"quickAddMood": "Stimmung erfassen",
"quickAddMedicationIntake": "Einnahme erfassen",
"customizeDashboard": "Dashboard anpassen",
"medicationIntakeQuickAdd": {
"sheetTitle": "Medikamenteneinnahme erfassen",
"sheetDescription": "Dosis, Zeitpunkt und Medikament in wenigen Tipps protokollieren.",
"medicationLabel": "Medikament",
"medicationPlaceholder": "Medikament auswählen",
"doseLabel": "Dosis",
"dosePlaceholder": "z. B. 5 mg",
"doseHint": "Vorbelegt mit der Standarddosis. Passe sie an, um eine abweichende Dosis nur für diese Einnahme zu erfassen.",
"timeLabel": "Zeitpunkt",
"saveError": "Einnahme konnte nicht gespeichert werden.",
"emptyTitle": "Noch keine Medikamente angelegt",
"emptyDescription": "Lege zuerst ein Medikament mit Zeitfenster an, damit du die Einnahme protokollieren kannst.",
"emptyCta": "Medikament anlegen"
},
"quickEntryDiscard": {
"title": "Eintrag verwerfen?",
"description": "Du hast nicht gespeicherte Eingaben. Formular schließen und das Getippte verwerfen?",
"confirm": "Verwerfen",
"cancel": "Weiter bearbeiten"
},
"compliance7d": "Therapietreue (7 Tage)",
"mood": "Stimmung",
"customizeTitle": "Dashboard-Layout",
"heroToggleLabel": "Tagesüberblick",
"heroToggleDescription": "Zeigt Begrüßung, Score, Tagesfokus und Dosen-Status ganz oben auf dem Dashboard.",
"layoutReset": "Auf Defaults zurücksetzen",
"layoutSaveSuccess": "Dashboard-Layout gespeichert",
"layoutSaveError": "Layout konnte nicht gespeichert werden",
"layoutResetSuccess": "Auf Standard-Layout zurückgesetzt",
"layoutUsingDefaults": "Standard-Layout aktiv",
"layoutCustomized": "Eigenes Layout aktiv",
"moveUp": "Nach oben",
"moveDown": "Nach unten",
"layoutTileColumn": "Kachel",
"layoutChartColumn": "Chart",
"dragHandle": "Zum Verschieben ziehen",
"dragHandleHint": "Pfeiltasten Hoch/Runter, oder Leertaste plus Pfeiltasten am fokussierten Griff.",
"emptyTitle": "Dein Dashboard ist leer",
"emptyDescription": "Erfasse den ersten Messwert oder Stimmungseintrag. Kacheln und Charts erscheinen automatisch, sobald Daten vorhanden sind.",
"emptyAddMeasurement": "Ersten Messwert erfassen",
"staleHint": "Letzter Wert vor {count} T.",
"staleHintWeeksOne": "Letzter Wert vor 1 Woche",
"staleHintWeeksOther": "Letzter Wert vor {count} Wochen",
"staleHintMonthsOne": "Letzter Wert vor 1 Monat",
"staleHintMonthsOther": "Letzter Wert vor {count} Monaten",
"coachCta": "Frag den Coach",
"recentWorkouts": {
"title": "Letzte Workouts",
"viewAll": "Alle anzeigen",
"loading": "Workouts werden geladen…",
"empty": {
"title": "Noch keine Workouts",
"cta": "Öffne die Apple-Health-App auf dem iPhone, damit Workouts hier erscheinen."
}
},
"metric": {
"title": {
"weight": "Gewicht",
"bloodPressure": "Blutdruck",
"pulse": "Puls",
"bodyFat": "Körperfett",
"glucose": "Blutzucker",
"sleep": "Schlaf",
"steps": "Schritte",
"totalBodyWater": "Gesamtkörperwasser",
"boneMass": "Knochenmasse",
"oxygenSaturation": "Sauerstoffsättigung"
},
"unit": {
"weight": "kg",
"bloodPressure": "mmHg",
"pulse": "bpm",
"bodyFat": "%",
"glucose": "mg/dL",
"sleep": "h",
"steps": "Schritte",
"totalBodyWater": "kg",
"boneMass": "kg",
"oxygenSaturation": "%"
}
}
},
"measurements": {
"title": "Messungen",
"subtitle": "Gewicht, Blutdruck, Puls und mehr",
"addMeasurement": "Hinzufügen",
"editMeasurement": "Messwert bearbeiten",
"type": "Typ",
"value": "Wert",
"date": "Datum",
"source": "Quelle",
"notes": "Notizen",
"typeWeight": "Gewicht",
"typeBloodPressure": "Blutdruck",
"typeBpSys": "Sys",
"typeBpDia": "Dia",
"typePulse": "Puls",
"typeBodyFat": "Körperfett",
"typeSleep": "Schlaf",
"typeSteps": "Schritte",
"typeBloodGlucose": "Blutzucker",
"typeTotalBodyWater": "Gesamtkörperwasser",
"typeBoneMass": "Knochenmasse",
"typeOxygenSaturation": "Sauerstoffsättigung",
"typeHeartRateVariability": "Herzfrequenzvariabilität",
"typeRestingHeartRate": "Ruheherzfrequenz",
"typeActiveEnergyBurned": "Aktive Energie",
"typeFlightsClimbed": "Treppen",
"typeWalkingRunningDistance": "Geh- und Laufstrecke",
"typeVo2Max": "VO₂max",
"typeBodyTemperature": "Körpertemperatur",
"typeFatFreeMass": "Fettfreie Masse",
"typeFatMass": "Fettmasse",
"typeMuscleMass": "Muskelmasse",
"typeSkinTemperature": "Hauttemperatur",
"typePulseWaveVelocity": "Pulswellengeschwindigkeit",
"typeVascularAge": "Gefäßalter",
"typeVisceralFat": "Viszerales Fett",
"typeAudioExposureEnv": "Lärmbelastung (Umgebung)",
"typeAudioExposureHeadphone": "Lärmbelastung (Kopfhörer)",
"typeTimeInDaylight": "Zeit im Tageslicht",
"typeWalkingSteadiness": "Gehstabilität",
"typeAudioExposureEvent": "Lautes-Hören-Ereignis",
"typeRespiratoryRate": "Atemfrequenz",
"typeBodyMassIndex": "Body-Mass-Index",
"typeLeanBodyMass": "Magermasse",
"typeWalkingHeartRateAverage": "Geh-Puls (Mittelwert)",
"typeWalkingAsymmetry": "Gang-Asymmetrie",
"typeWalkingDoubleSupport": "Gang-Doppelstand",
"typeWalkingStepLength": "Schrittlänge",
"typeWalkingSpeed": "Gehgeschwindigkeit",
"glucoseContext": "Kontext",
"glucoseContextFasting": "Nüchtern (≥8 h ohne Nahrung)",
"glucoseContextPostprandial": "Postprandial (2 h nach dem Essen)",
"glucoseContextRandom": "Beliebig / ohne Kontext",
"glucoseContextBedtime": "Vor dem Schlafen",
"unitHours": "Stunden",
"unitSteps": "Schritte",
"sourceManual": "Manuell",
"sourceWithings": "Withings",
"sourceImport": "Import",
"sourceAppleHealth": "Apple Health",
"systolicLabel": "Systolisch (mmHg)",
"diastolicLabel": "Diastolisch (mmHg)",
"pulseLabel": "Puls (bpm)",
"valueWithUnit": "Wert ({unit})",
"timestamp": "Zeitpunkt",
"timestampBackdateHint": "Datum und Uhrzeit anpassen, um einen vergangenen Wert zu erfassen.",
"notesPlaceholder": "z.B. nach dem Essen",
"formReset": "Formular zurücksetzen",
"saveError": "Fehler beim Speichern",
"duplicateTimestamp": "Zum gewählten Zeitpunkt existiert bereits ein Messwert dieses Typs.",
"deleteError": "Fehler beim Löschen",
"deletedToast": "Messwert gelöscht",
"restoredToast": "Messwert wiederhergestellt",
"restoreError": "Wiederherstellen fehlgeschlagen",
"invalidValue": "Bitte einen gültigen Wert eingeben.",
"invalidTimestamp": "Bitte einen gültigen Zeitpunkt wählen.",
"loginRequired": "Bitte anmelden, um Messwerte zu sehen.",
"allTypes": "Alle Typen",
"filterByType": "Nach Typ filtern",
"measurementCount": "{count} Messwerte",
"emptyTitle": "Noch keine Messwerte",
"emptyDescription": "Erfasse Gewicht, Blutdruck, Puls oder andere Werte, um Trends zu erkennen.",
"emptyFilteredTitle": "Kein Messwert passt zum Filter",
"emptyFilteredDescription": "Wähle einen anderen Typ oder lösche den Filter, um alle Messwerte zu sehen.",
"emptyAddFirst": "Ersten Messwert erfassen",
"emptyResetFilter": "Alle Typen anzeigen",
"comment": "Kommentar",
"actions": "Aktionen",
"deleteConfirmTitle": "Messwert löschen?",
"deleteConfirmDescription": "Dieser Messwert wird gelöscht. Direkt danach kannst du das kurz rückgängig machen.",
"pageInfo": "Seite {page} von {total}",
"previousPage": "Vorherige Seite",
"nextPage": "Nächste Seite",
"dailyTotalCaption": "({count} Einzelwerte)",
"sleepNapCaption": "+{count} Nickerchen",
"sleepAwakeningsCaption": "{count} Wachphasen",
"expandDay": "Einzelwerte dieses Tages anzeigen",
"collapseDay": "Einzelwerte dieses Tages ausblenden",
"loadError": "Messwerte konnten nicht geladen werden.",
"typeCardioRecovery": "Erholungspuls",
"typeWristTemperature": "Handgelenktemperatur",
"typeFallCount": "Stürze",
"typeSixMinuteWalkDistance": "6-Minuten-Gehstrecke",
"typeStairAscentSpeed": "Treppensteig-Tempo",
"typeStairDescentSpeed": "Treppab-Tempo",
"typeBreathingDisturbances": "Atemaussetzer im Schlaf",
"typeIrregularRhythmNotification": "Hinweis auf unregelmäßigen Rhythmus",
"typeHighHeartRateEvent": "Hinweis auf hohe Herzfrequenz",
"typeLowHeartRateEvent": "Hinweis auf niedrige Herzfrequenz",
"typeWalkingSteadinessEvent": "Hinweis zur Gehstabilität",
"typeBreathingDisturbanceEvent": "Atemstörung",
"typeRecoveryScore": "Erholungs-Score",
"typeStressScore": "Stress-Score",
"typeStrainScore": "Belastungs-Score",
"typeHrvRmssd": "HRV (RMSSD)",
"typeDayStrain": "Tagesbelastung",
"typeWorkoutStrain": "Trainingsbelastung",
"typeSleepPerformance": "Schlafleistung",
"typeSleepEfficiency": "Schlafeffizienz",
"typeSleepConsistency": "Schlafkonsistenz",
"typeSleepNeed": "Schlafbedarf",
"typeEnergyExpenditureKj": "Energieverbrauch",
"typeAverageHeartRate": "Durchschnittlicher Puls",
"typeMaxHeartRate": "Maximaler Puls",
"typeSleepDisturbanceCount": "Schlafstörungen",
"typeAnsCharge": "ANS-Ladung",
"typeCardioLoad": "Kardio-Belastung",
"typeSleepScore": "Schlafscore",
"typeBodyTemperatureDeviation": "Körpertemperaturabweichung",
"filterBySource": "Nach Quelle filtern",
"sourceComputed": "Berechnet",
"sourceWhoop": "WHOOP",
"sourceFitbit": "Fitbit",
"bulkDeleteSuccess": "{count} Messungen gelöscht",
"bulkDeleteError": "Fehler beim Löschen der ausgewählten Messungen",
"bulkDeleteConfirmTitle": "{count} Messungen löschen?",
"bulkDeleteConfirmBody": "Die {count} ausgewählten Messungen werden endgültig gelöscht."
},
"mood": {
"title": "Stimmung",
"subtitle": "Stimmungsverlauf und Einträge",
"addEntry": "Hinzufügen",
"editEntry": "Eintrag bearbeiten",
"moodLevel": "Stimmung",
"heroQuestion": "Wie geht's dir?",
"factorYes": "Ja",
"factorNo": "Nein",
"factorRatingOption": "{label}: {value} von {max}",
"tags": "Tags",
"tagsPlaceholder": "z.B. Sport, Arbeit, Familie",
"tagsHelp": "Kommagetrennt eingeben",
"timestamp": "Zeitpunkt",
"date": "Datum",
"source": "Quelle",
"levelSuperGut": "Super gut",
"levelGut": "Gut",
"levelOkay": "Okay",
"levelSchlecht": "Schlecht",
"levelLausig": "Lausig",
"sourceMoodlog": "moodLog",
"allMoods": "Alle Stimmungen",
"entryCount": "{count} Einträge",
"emptyTitle": "Noch keine Stimmungseinträge",
"emptyDescription": "Erfasse, wie du dich heute fühlst, um Muster über die Zeit zu erkennen.",
"emptyFilteredTitle": "Kein Eintrag passt zum Filter",
"emptyFilteredDescription": "Wähle eine andere Stimmungsstufe oder lösche den Filter, um alle Einträge zu sehen.",
"emptyAddFirst": "Erste Stimmung erfassen",
"emptyResetFilter": "Alle Stimmungen anzeigen",
"actions": "Aktionen",
"formReset": "Formular zurücksetzen",
"noteCharCount": "{count}/{max}",
"formResetConfirmTitle": "Formular zurücksetzen?",
"formResetConfirmBody": "Damit werden die eingegebene Stimmung, Tags und Notiz gelöscht. Das lässt sich nicht rückgängig machen.",
"formResetConfirmAction": "Zurücksetzen",
"saveError": "Fehler beim Speichern",
"deleteError": "Fehler beim Löschen",
"deletedToast": "Eintrag gelöscht",
"restoredToast": "Eintrag wiederhergestellt",
"restoreError": "Wiederherstellen fehlgeschlagen",
"invalidTimestamp": "Bitte einen gültigen Zeitpunkt wählen.",
"deleteConfirmTitle": "Eintrag löschen?",
"deleteConfirmDescription": "Dieser Stimmungseintrag wird gelöscht. Direkt danach kannst du das kurz rückgängig machen.",
"pageInfo": "Seite {page} von {total}",
"previousPage": "Vorherige Seite",
"nextPage": "Nächste Seite",
"loginRequired": "Bitte anmelden, um Stimmungseinträge zu sehen.",
"note": "Notiz",
"noteCollapse": "Notiz einklappen",
"noteExpand": "Notiz vollständig anzeigen",
"notePlaceholder": "Notiz dazu, wie du dich fühlst…",
"tagPicker": "Tags",
"tagCategory": {
"feelings": "Gefühle",
"sleep": "Schlaf",
"health": "Gesundheit",
"social": "Soziales",
"work": "Arbeit",
"hobbies": "Hobbys",
"factors": "Faktoren",
"custom": "Eigene"
},
"tag": {
"happy": "glücklich",
"excited": "aufgeregt",
"grateful": "dankbar",
"relaxed": "entspannt",
"content": "zufrieden",
"tired": "müde",
"unsure": "unsicher",
"bored": "gelangweilt",
"tense": "angespannt",
"angry": "wütend",
"stressed": "gestresst",
"sad": "traurig",
"sleptWell": "gut geschlafen",
"sleptOk": "mäßig geschlafen",
"sleptPoorly": "schlecht geschlafen",
"earlyNight": "früh im Bett",
"workedOut": "trainiert",
"ateWell": "gesund gegessen",
"hydrated": "Wasser getrunken",
"walked": "spazieren",
"alcohol": "Alkohol",
"family": "Familie",
"friends": "Freunde",
"party": "Party",
"alone": "allein",
"productive": "produktiv",
"overtime": "Überstunden",
"dayOff": "Feierabend",
"travel": "Reise",
"sickDay": "Krankheitstag",
"movies": "Filme",
"reading": "gelesen",
"gaming": "gezockt",
"music": "Musik",
"outdoors": "draußen",
"fastFood": "Fast Food",
"noSweets": "keine Süßigkeiten",
"bigMeal": "üppige Mahlzeit",
"factorWork": "Arbeit",
"factorSocial": "Soziales",
"factorSleepQuality": "Schlafqualität",
"factorStress": "Stress",
"factorConflict": "Konflikt",
"factorFamily": "Familie",
"factorSadness": "Traurigkeit",
"praise": "Lob"
},
"filterBySource": "Nach Quelle filtern",
"sourceManual": "Manuell",
"sourceWeb": "Web",
"sourceTelegram": "Telegram",
"sourceDaylio": "Daylio",
"bulkDeleteSuccess": "{count} Einträge gelöscht",
"bulkDeleteError": "Fehler beim Löschen der ausgewählten Einträge",
"bulkDeleteConfirmTitle": "{count} Einträge löschen?",
"bulkDeleteConfirmBody": "Die {count} ausgewählten Stimmungseinträge werden endgültig gelöscht.",
"customize": "Stimmungs-Tags anpassen",
"addTagInline": "Tag hinzufügen",
"manage": {
"groupsTitle": "Gruppen",
"groupsDescription": "Lege eigene Gruppen an und bestimme ihre Reihenfolge in der Auswahl.",
"newGroup": "Neue Gruppe",
"groupLabel": "Gruppenname",
"groupIcon": "Symbol",
"groupCreated": "Gruppe erstellt",
"groupRenamed": "Gruppe gespeichert",
"groupDeleteTitle": "Gruppe löschen?",
"groupDeleteBody": "Tags aus dieser Gruppe wandern zurück in ihre ursprüngliche Gruppe. Es werden keine Einträge gelöscht.",
"groupDeleted": "Gruppe gelöscht",
"groupEmpty": "Noch keine eigenen Gruppen.",
"groupLimitReached": "Gruppen-Limit erreicht",
"tagsTitle": "Tags",
"tagsDescription": "Blende Tags aus, sortiere und verschiebe sie oder bearbeite sie.",
"newTag": "Neuer Tag",
"tagLabel": "Tag-Name",
"tagIcon": "Symbol",
"tagGroup": "Gruppe",
"usageCount": "{count} Einträge",
"hideTag": "Tag ausblenden",
"showTag": "Tag einblenden",
"moveToGroup": "In Gruppe verschieben",
"archive": "Archivieren",
"restore": "Wiederherstellen",
"archivedTitle": "Archivierte Tags",
"archivedDescription": "Archivierte Tags bleiben in deinen bisherigen Einträgen erhalten – sie verschwinden nur aus der Auswahl.",
"archivedEmpty": "Nichts archiviert.",
"purgeTitle": "Tag endgültig löschen?",
"purgeBody": "Der Tag wird aus {count} bisherigen Einträgen entfernt. Das lässt sich nicht rückgängig machen.",
"purgeAction": "Endgültig löschen",
"purged": "Tag gelöscht",
"tagLimitReached": "Tag-Limit erreicht",
"iconPickerTitle": "Symbol wählen",
"iconSearchPlaceholder": "Symbole durchsuchen…",
"iconSearchEmpty": "Kein passendes Symbol.",
"iconSearchClear": "Suche leeren",
"orderSave": "Reihenfolge speichern",
"orderSaved": "Reihenfolge gespeichert",
"moveUp": "Nach oben",
"moveDown": "Nach unten",
"iconGroupEmotions": "Gefühle",
"iconGroupActivities": "Aktivitäten",
"iconGroupHealth": "Gesundheit",
"iconGroupFood": "Essen & Trinken",
"iconGroupWeather": "Wetter",
"iconGroupPlaces": "Orte",
"iconGroupMisc": "Sonstiges"
},
"sectionMoreTags": "Weitere Tags",
"sectionFactors": "Faktoren",
"sectionNoteDetails": "Notiz & Details",
"quickTagsHelp": "Häufig genutzte Tags – ein Tipp genügt",
"quickTagsExpand": "Weitere"
},
"medications": {
"title": "Medikamente",
"subtitle": "Medikation, Zeitpläne & Einnahmen",
"loginRequired": "Bitte anmelden, um Medikamente zu verwalten.",
"addMedication": "Hinzufügen",
"editMedication": "Medikament bearbeiten",
"newMedication": "Neues Medikament",
"firstMedication": "Erstes Medikament anlegen",
"addChoice": {
"logIntake": "Einnahme erfassen",
"newMedication": "Neues Medikament"
},
"takeAllDue": {
"button": "Alle fälligen einnehmen",
"dialogTitle": "Fällige Medikamente einnehmen",
"dialogDescription": "Diese Medikamente sind jetzt fällig. Bestätige, um sie alle als genommen zu erfassen.",
"confirm": "Alle einnehmen ({count})",
"successToast": "{count} Einnahmen erfasst",
"partialToast": "{taken} erfasst, {failed} fehlgeschlagen – bitte erneut versuchen",
"failedToast": "Keine Einnahme erfasst – bitte erneut versuchen"
},
"logIntake": {
"dialogTitle": "Einnahme erfassen",
"dialogDescription": "Erfasse eine Dosis für ein vorhandenes Medikament. Du kannst sie auf ein vergangenes Datum und eine vergangene Uhrzeit zurückdatieren.",
"medicationLabel": "Medikament",
"slotLabel": "Einnahmeslot",
"slotNone": "Kein bestimmter Slot",
"doseLabel": "Dosis",
"doseHint": "Vorbelegt mit der Dosis des Medikaments bzw. Slots. Passe sie an, um eine abweichende Dosis nur für diese Einnahme zu erfassen.",
"takenAtLabel": "Datum und Uhrzeit",
"takenAtHint": "Standard ist jetzt; wähle ein früheres Datum und eine frühere Uhrzeit, um eine vergangene Dosis zu erfassen.",
"skippedLabel": "Als übersprungen erfassen",
"noMedications": "Lege zuerst ein Medikament an, dann kannst du Einnahmen dafür erfassen.",
"cancel": "Abbrechen",
"submit": "Einnahme erfassen",
"slotError": "Der gewählte Slot konnte keiner Uhrzeit zugeordnet werden. Bitte wähle einen anderen Slot oder „Kein bestimmter Slot“."
},
"emptyTitle": "Noch keine Medikamente",
"emptyDescription": "Lege Medikamente, Dosierungen und Einnahmefenster an, um die Therapietreue zu erfassen.",
"loadFailed": "Medikamente konnten nicht geladen werden",
"retryLoad": "Erneut laden",
"name": "Name",
"dose": "Dosis",
"scheduleFrom": "Von",
"scheduleTo": "Bis",
"scheduleLabel": "Bezeichnung",
"scheduleDays": "Tage",
"scheduleDaily": "Täglich",
"inactive": "Pausiert",
"intakeHistory": "Einnahme-Verlauf",
"openDetailPage": "Medikament-Detailseite öffnen",
"deleteConfirm": "Medikament löschen?",
"compliance": "Therapietreue",
"importIntakes": "Einnahmen importieren",
"importDescription": "JSON-Array mit Einnahme-Daten einfügen. Erwartetes Format:",
"importUploadFile": "JSON-Datei hochladen",
"importPaste": "JSON hier einfügen...",
"importSelected": "Ausgewählt: {name}",
"importFileLoaded": "Datei \"{name}\" geladen",
"importInvalidJson": "Datei enthält kein gültiges JSON",
"importNoArray": "Kein Array gefunden",
"importResult": "{imported} Einnahmen importiert",
"importDuplicatesSkipped": "{count} Duplikate übersprungen",
"importInvalidSkipped": "{count} ungültige Einträge übersprungen",
"importFailed": "Import fehlgeschlagen",
"importInvalidFormat": "Ungültiges JSON-Format",
"apiEndpointTitle": "API-Endpoint: {name}",
"apiEndpointDescription": "Nutze diesen Endpoint, um Einnahmen per API zu erfassen (z.B. via iPhone-Kurzbefehl oder cron-Job).",
"apiEndpointActive": "API-Endpoint aktiv",
"apiEndpointActivated": "API-Endpoint aktiviert",
"apiEndpointDeactivated": "API-Endpoint deaktiviert",
"apiTokenCount": "Aktiv ({count} Token)",
"apiToken": "API-Token",
"apiTokenActiveHint": "Endpoint ist aktiv. Vorhandene Tokens bleiben gültig, können aber nicht erneut im Klartext angezeigt werden.",
"apiTokenActivateHint": "Aktiviere den Endpoint, um einen neuen Token zu erstellen.",
"apiTokenOnceHint": "Der Token wird nur bei der Erstellung einmal im Klartext angezeigt.",
"requestExample": "Request-Beispiel",
"statusLoadFailed": "Status konnte nicht geladen werden",
"changeFailed": "Ändern fehlgeschlagen",
"categoryBloodPressure": "Blutdrucksenker",
"categoryVitamin": "Vitamine",
"categoryThyroid": "Schilddrüse",
"categoryHormone": "Hormone",
"categorySupplement": "Nahrungsergänzung",
"categoryPainRelief": "Schmerzmittel",
"categoryAllergy": "Allergie",
"categoryDigestive": "Magen/Darm",
"categorySkin": "Hautpflege",
"categorySleepAid": "Schlafmittel",
"categoryDiabetes": "Diabetes",
"categoryAntibiotic": "Antibiotikum",
"categoryOther": "Sonstiges",
"daysSun": "So",
"daysMon": "Mo",
"daysTue": "Di",
"daysWed": "Mi",
"daysThu": "Do",
"daysFri": "Fr",
"daysSat": "Sa",
"back": "Zurück",
"today": "Heute",
"yesterday": "Gestern",
"tomorrow": "Morgen",
"asNeededMarker": "Bei Bedarf",
"withoutNotification": "Ohne Benachrichtigung",
"pausedSince": "Pausiert seit",
"takeNow": "Jetzt einnehmen",
"lastDoseYesterday": "Letzte Dosis gestern",
"lastDoseDaysAgo": "Letzte Dosis vor {count} Tagen",
"overdue": "Überfällig",
"veryOverdue": "Stark überfällig",
"compliance7d": "Therapietreue (7 Tage)",
"compliance30d": "Therapietreue (30 Tage)",
"complianceWindow": "Therapietreue ({days} Tage)",
"complianceUnavailable": "Therapietreue konnte nicht geladen werden",
"complianceInfo": "Anteil der erfassten an den erwarteten Dosen. Wöchentliche Pläne zählen wochenweise.",
"complianceInfoLabel": "Was bedeutet Therapietreue?",
"complianceDoses": "{count} Dosen",
"lastIntake": "Letzte Einnahme:",
"nextIntake": "Nächste Einnahme:",
"nextIntakeOverdue": "Überfällig · {time} — noch nachholbar",
"dayStreak": "Tage Serie",
"dayStreakOne": "Tag Serie",
"cycleNextDoseToday": "Nächste Dosis heute",
"cycleNextDoseTomorrow": "Nächste Dosis morgen",
"cycleNextDoseInDays": "Nächste Dosis in {days} Tagen",
"cycleDueToday": "Heute fällig",
"cycleOverdue": "Überfällig",
"cycleNoClosedCycles": "Noch keine abgeschlossenen Dosiszyklen",
"taken": "Genommen",
"skipped": "Übersprungen",
"intakeToastTaken": "{name} als genommen erfasst",
"intakeToastSkipped": "{name} übersprungen",
"intakeToastFailed": "{name} konnte nicht erfasst werden – bitte erneut versuchen",
"intakeUndo": "Rückgängig",
"intakeUndone": "Eintrag zurückgenommen",
"intakeUndoFailed": "Rückgängig fehlgeschlagen – im Verlauf korrigieren",
"weekdaySunday": "Sonntag",
"weekdayMonday": "Montag",
"weekdayTuesday": "Dienstag",
"weekdayWednesday": "Mittwoch",
"weekdayThursday": "Donnerstag",
"weekdayFriday": "Freitag",
"weekdaySaturday": "Samstag",
"weekdaySundayPlural": "Sonntags",
"weekdayMondayPlural": "Montags",
"weekdayTuesdayPlural": "Dienstags",
"weekdayWednesdayPlural": "Mittwochs",
"weekdayThursdayPlural": "Donnerstags",
"weekdayFridayPlural": "Freitags",
"weekdaySaturdayPlural": "Samstags",
"formType": "Typ",
"formDose": "Dosis",
"formUnit": "Einheit",
"formSchedule": "Zeitfenster",
"formTreatmentClass": "Behandlungsklasse",
"formTreatmentClassHelp": "Wähle „GLP-1-Injektion“ für wöchentliche Spritzen wie Mounjaro, Ozempic, Wegovy, Zepbound. Schaltet die Körperkarte und das GLP-1-Logbuch frei.",
"treatmentClassGeneric": "Standard-Medikament",
"treatmentClassGlp1": "GLP-1-Injektion",
"glp1WeeklyPresetTitle": "Einmal wöchentlich am …",
"glp1WeeklyPresetHelp": "Die meisten GLP-1-Rezeptoragonisten werden einmal pro Woche injiziert. Tippe einen Tag, um den Rhythmus zu setzen.",
"glp1WeeklyPresetSuggest": "Letzten gewählten Wochentag übernehmen",
"glp1DosesPerUnit": "Dosen pro Pen / Ampulle",
"glp1DosesPerUnitPlaceholder": "z. B. 4 für einen Mounjaro KwikPen",
"glp1DosesPerUnitHelp": "Optional — Mounjaro KwikPen = 4, Ozempic 0,25/0,5 mg = 4, Wegovy Einmal-Pen = 1. Leer lassen, wenn keine Dosis-pro-Pen-Verfolgung gewünscht ist.",
"glp1LastInjection": "{label}",
"glp1LastInjectionWithSite": "{label} · {site}",
"glp1NextInjectionDays": "{label} (in {days} Tagen)",
"glp1NextInjectionToday": "heute",
"glp1NextInjectionTomorrow": "morgen",
"glp1RotationLast": "Letzte Stelle: {site}",
"glp1RotationSuggested": "Empfohlen: {site}",
"glp1LogSideEffect": "Nebenwirkung loggen",
"sideEffects": {
"section": "Nebenwirkungen",
"addCta": "Erfassen",
"sheetTitle": "Nebenwirkung erfassen",
"categoryLabel": "Kategorie",
"entryLabel": "Symptom",
"severityLabel": "Schweregrad",
"severity": {
"mild": "Leicht",
"moderate": "Mittel",
"significant": "Deutlich",
"severe": "Stark",
"verySevere": "Sehr stark"
},
"notesLabel": "Notiz (optional)",
"notesPlaceholder": "Was du dir merken willst, max. 280 Zeichen",
"submitCta": "Speichern",
"cancelCta": "Abbrechen",
"emptyState": "Noch keine Nebenwirkungen erfasst. Tracking hilft dir und deiner Ärztin, Muster über die Zeit zu erkennen.",
"recentTitle": "Letzte 30 Tage",
"loading": "Wird geladen…",
"deleteCta": "Löschen",
"deleteConfirm": "Eintrag löschen?",
"deleteError": "Eintrag konnte nicht gelöscht werden",
"errorSeverity": "Schweregrad muss zwischen 1 und 5 liegen",
"errorEntry": "Bitte ein Symptom auswählen",
"categories": {
"gi": "Magen-Darm",
"metabolic": "Stoffwechsel",
"injectionSite": "Injektionsstelle",
"cognitive": "Kognition",
"glp1Specific": "GLP-1 spezifisch"
},
"entries": {
"nausea": "Übelkeit",
"vomiting": "Erbrechen",
"diarrhea": "Durchfall",
"constipation": "Verstopfung",
"abdominalPain": "Bauchschmerzen",
"hypoglycemiaSymptoms": "Unterzucker-Symptome",
"dehydration": "Dehydratation",
"anorexia": "Appetitverlust",
"electrolyteFatigue": "Elektrolyt-Müdigkeit",
"injectionRedness": "Rötung Einstichstelle",
"injectionSwelling": "Schwellung Einstichstelle",
"injectionBruising": "Bluterguss Einstichstelle",
"injectionInduration": "Verhärtung Einstichstelle",
"brainFog": "Konzentrationsnebel",
"dizziness": "Schwindel",
"lowMood": "Gedrückte Stimmung",
"lowEnergy": "Energielosigkeit",
"earlySatiety": "Frühes Sättigungsgefühl",
"gastroparesisLike": "Verlangsamte Magenentleerung",
"dysgeusia": "Geschmacksveränderung",
"gallbladderDiscomfort": "Gallenblasen-Beschwerden"
}
},
"scheduling": {
"naturalLanguage": {
"title": "Medikament beschreiben",
"description": "Beschreibe das Medikament in eigenen Worten — das Formular wird automatisch vorausgefüllt.",
"placeholder": "z. B. Mounjaro 5 mg wöchentlich am Mittwochmorgen ab nächstem Montag",
"submit": "Extrahieren",
"submitBusy": "Wird verarbeitet …",
"cancel": "Abbrechen",
"examples": {
"label": "Eines dieser Beispiele übernehmen",
"weekly": "Mounjaro 5 mg wöchentlich am Mittwochmorgen",
"daily": "Ibuprofen 200 mg täglich, 3-mal am Tag",
"rolling": "Methotrexat 7,5 mg alle 7 Tage nach der letzten Spritze"
},
"error": {
"empty": "Bitte zuerst eine Beschreibung eingeben.",
"tooLong": "Beschreibung muss unter 2000 Zeichen bleiben.",
"rateLimit": "Zu viele Anfragen — bitte kurz warten und erneut versuchen.",
"noProvider": "Kein KI-Anbieter konfiguriert — bitte in den Einstellungen einrichten.",
"budget": "Tägliches KI-Budget erreicht — bitte morgen erneut versuchen.",
"network": "KI-Anbieter nicht erreichbar — bitte erneut versuchen."
}
},
"cadence": {
"section": "Rhythmus",
"label": "Wie oft",
"kind": {
"daily": "Jeden Tag",
"weekdays": "An bestimmten Wochentagen",
"everyNWeeks": "Alle N Wochen an bestimmten Tagen",
"monthly": "Monatlich an einem bestimmten Tag",
"everyNMonths": "Alle N Monate an einem bestimmten Tag",
"yearly": "Einmal im Jahr",
"rolling": "Alle N Tage seit der letzten Einnahme (flexibel)",
"rollingExplainer": "Zählt ab der letzten erfassten Einnahme — pausiert, wenn du eine Dosis auslässt.",
"oneShot": "Einmaldosis"
},
"weekdays": {
"label": "Wochentage",
"short": {
"mo": "Mo",
"tu": "Di",
"we": "Mi",
"th": "Do",
"fr": "Fr",
"sa": "Sa",
"su": "So"
},
"long": {
"mo": "Montag",
"tu": "Dienstag",
"we": "Mittwoch",
"th": "Donnerstag",
"fr": "Freitag",
"sa": "Samstag",
"su": "Sonntag"
}
},
"intervalWeeks": {
"suffix": "Wochen"
},
"dayOfMonth": {
"label": "Tag"
},
"intervalMonths": {
"suffix": "Monate",
"dayOnLabel": "am Tag"
},
"yearly": {
"date": {
"label": "Datum"
}
},
"rollingDays": {
"suffix": "Tage"
}
},
"timesOfDay": {
"section": "Uhrzeiten",
"label": "Uhrzeiten",
"empty": {
"cta": "Erste Uhrzeit hinzufügen."
},
"add": "Uhrzeit hinzufügen",
"remove": "Entfernen",
"presets": {
"morning": "Morgens",
"noon": "Mittags",
"evening": "Abends",
"night": "Nachts"
},
"max": {
"reached": "Maximum erreicht — bitte zuerst eine Uhrzeit entfernen."
}
},
"courseWindow": {
"section": "Behandlungszeitraum",
"startsOn": {
"label": "Beginnt am"
},
"endsOn": {
"label": "Endet am"
},
"noEndDate": "Kein Enddatum",
"oneShotCaption": "(einmalige Dosis)",
"invalidRange": "Das Enddatum muss am oder nach dem Startdatum liegen."
}
},
"wizard": {
"header": {
"stepOf": "Schritt {current} von {total}",
"createTitle": "Neues Medikament",
"editTitle": "{name} bearbeiten"
},
"nav": {
"back": "Zurück",
"next": "Weiter",
"save": "Speichern",
"saveEdit": "Änderungen speichern",
"nextHint": "Weiter: {step}",
"reviewHint": "Weiter: Speichern",
"jumpFirst": "Zum ersten Schritt springen",
"jumpLast": "Zur Übersicht und zum Speichern springen"
},
"nl": {
"button": "Beschreiben"
},
"steps": {
"step1": {
"title": "Wie heißt das Medikament?",
"subline": "Genau so wie es auf der Packung steht.",
"label": "Name",
"placeholder": "z. B. Ramipril",
"short": "Name"
},
"step2": {
"title": "Was für ein Medikament ist das?",
"subline": "Wir nutzen das für passende Vorlagen und Auswertungen.",
"short": "Art"
},
"step3": {
"title": "Wie hoch ist die Dosis?",
"subline": "Eine Tablette, ein Hub, ein Tropfen — je nach Form.",
"amountLabel": "Menge",
"amountPlaceholder": "z. B. 5",
"unitLabel": "Einheit",
"unit": {
"mg": "mg",
"ml": "ml",
"iu": "I.E.",
"mcg": "µg",
"g": "g",
"tablets": "Tablette(n)",
"capsules": "Kapsel(n)",
"drops": "Tropfen",
"puffs": "Hub",
"sprays": "Sprühstoß",
"pieces": "Stück",
"other": "Sonstige"
},
"deliveryFormLabel": "Darreichung",
"deliveryForm": {
"ORAL": "Oral",
"INJECTION": "Injektion",
"OTHER": "Sonstige"
},
"dosesPerUnitLabel": "Dosen pro Einheit",
"dosesPerUnitPlaceholder": "z. B. 4",
"dosesPerUnitHint": "Dosen pro Pen / Ampulle — leer lassen, wenn kein Bestand getrackt wird.",
"injectionSiteToggle": "Injektionsstellen-Rotation",
"injectionSiteHint": "Optionaler Rotationshelfer. Die Stelle jeder Dosis wird beim Eintragen der Einnahme erfasst.",
"short": "Dosis",
"unitsPerDoseLabel": "Einheiten pro Dosis",
"unitsPerDoseHint": "z. B. 2 Tabletten à 2 mg für eine 4-mg-Dosis – oder ½ Tablette bei geteilter Dosis"
},
"step4": {
"title": "Über welchen Zeitraum nimmst du es?",
"subline": "Heute reicht ein Startdatum. Ein Ende kannst du später setzen.",
"short": "Zeitraum"
},
"step5": {
"title": "Wie oft nimmst du es?",
"subline": "Wähle die Regelmäßigkeit — die Details kommen im nächsten Schritt.",
"short": "Takt"
},
"step6": {
"title": "Wie sieht das im Detail aus?",
"subline": "Trage Wochentage, Intervalle oder den Tag im Monat ein.",
"intervalWeeks": {
"label": "Alle",
"suffix": "Wochen"
},
"dayOfMonth": {
"label": "Am",
"suffix": "Tag des Monats"
},
"rollingDays": {
"label": "Alle",
"suffix": "Tage ab der letzten Einnahme"
},
"short": "Details"
},
"step7": {
"title": "Wann nimmst du es?",
"subline": "Eine oder mehrere Uhrzeiten — die Erinnerungen richten sich danach.",
"presetsLabel": "Tagespresets",
"presets": {
"morning": "Morgens",
"noon": "Mittags",
"evening": "Abends",
"night": "Nachts"
},
"short": "Zeiten"
},
"step8": {
"title": "Fertig — soll HealthLog dich erinnern?",
"subline": "Du kannst alles unten nochmal prüfen, bevor du speicherst.",
"remindersLabel": "Erinnerungen aktiv",
"remindersDescription": "Push, Telegram oder ntfy — je nach deinen Einstellungen.",
"noChannelHint": "Erinnerungen brauchen einen Benachrichtigungskanal — aktuell ist keiner aktiv.",
"noChannelHintLink": "Benachrichtigungen einrichten",
"multiScheduleNote": "Dieses Medikament hat mehrere Zeitpläne. Den Detail-Editor öffnen wir in einer späteren Version.",
"short": "Fertig"
}
},
"classRow": {
"bloodPressure": "Blutdruck",
"diabetes": "Diabetes",
"hormone": "Hormone",
"glp1": "GLP-1-Injektion",
"painRelief": "Schmerz",
"allergy": "Allergie",
"vitamin": "Vitamine",
"supplement": "Nahrungsergänzung",
"antibiotic": "Antibiotikum",
"other": "Sonstiges"
},
"cadence": {
"daily": {
"label": "Täglich",
"description": "Jeden Tag, immer zur gleichen Uhrzeit."
},
"weekdays": {
"label": "Bestimmte Wochentage",
"description": "Z. B. Montag, Mittwoch, Freitag."
},
"everyNWeeks": {
"label": "Alle X Wochen",
"description": "Z. B. alle 2 Wochen Donnerstags (GLP-1, Biologika)."
},
"monthly": {
"label": "Monatlich",
"description": "An einem festen Tag im Monat (z. B. immer am 1.)."
},
"rolling": {
"label": "Flexibel ab letzter Einnahme",
"description": "Du lässt den nächsten Termin offen, drückst 'genommen' wenn du sie genommen hast — ab dem Zeitpunkt zählt der Counter wieder."
},
"oneShot": {
"label": "Einmalig",
"description": "Einzelgabe, zum Beispiel eine Impfung oder ein Antibiotikum."
},
"asNeeded": {
"label": "Bei Bedarf",
"description": "Kein fester Plan — du erfasst eine Einnahme, wenn du sie brauchst (z. B. Schmerzmittel)."
}
},
"summary": {
"title": "Übersicht",
"cadence": {
"daily": "Jeden Tag",
"weekdays": "An ausgewählten Wochentagen",
"biweekly": "Alle zwei Wochen",
"monthly": "Monatlich",
"quarterly": "Alle drei Monate",
"yearly": "Einmal im Jahr",
"rolling": "Alle {n} Tage seit der letzten Einnahme",
"oneShot": "Eine Einmaldosis",
"asNeeded": "Bei Bedarf",
"everyNWeeks": "Alle {n} Wochen",
"everyNMonths": "Alle {n} Monate"
},
"weekdaysDetail": ", an {days}",
"dayOfMonthDetail": ", am {day}.",
"times": "um {times}",
"startsOn": "Beginn: {date}",
"endsOn": "Ende: {date}",
"noEndDate": "Kein Enddatum"
},
"compose": {
"scheduleIndex": "Zeitplan {n} von {total}",
"list": {
"add": "Weiteren Zeitplan hinzufügen",
"edit": "Bearbeiten",
"remove": "Entfernen",
"removeDisabled": "Mindestens ein Zeitplan ist erforderlich.",
"empty": "Noch kein Zeitplan."
}
},
"errors": {
"submitFailed": "Medikament konnte nicht gespeichert werden — bitte erneut versuchen."
}
},
"doseStrength": {
"title": "Dosisstärke im Zeitverlauf",
"axisLabel": "Erfasste Dosis ({unit})",
"tooltipLabel": "Dosis",
"currentDose": "Aktuelle Dosis: {dose} {unit}",
"noCurrentDose": "Noch keine Dosis erfasst.",
"empty": "Noch keine Titrations-Historie. Erfasse eine Dosisänderung, um die Stärkekurve zu sehen."
},
"injectionSiteBodyOutlineAriaLabel": "Körperumriss",
"injectionSitePickerAriaLabel": "Injektionsstelle auswählen",
"injectionSiteRecommendedAriaLabel": "{site} – empfohlene nächste Stelle",
"injectionSiteLegendAriaLabel": "Legende der Markierungen",
"injectionSiteLegendRecommended": "Empfohlene nächste Stelle",
"injectionSiteLegendLastUsed": "Zuletzt verwendete Stelle",
"siteAbdomenLeft": "Bauch, unten links",
"siteAbdomenRight": "Bauch, unten rechts",
"siteAbdomenUpperLeft": "Bauch, oben links",
"siteAbdomenUpperRight": "Bauch, oben rechts",
"siteThighLeft": "Linker Oberschenkel",
"siteThighRight": "Rechter Oberschenkel",
"siteUpperArmLeft": "Linker Oberarm",
"siteUpperArmRight": "Rechter Oberarm",
"sideEffectTagsHelp": "Tippe einen Chip, um ihn zu den Mood-Tags hinzuzufügen.",
"sideEffectTagNausea": "Übelkeit",
"sideEffectTagConstipation": "Verstopfung",
"sideEffectTagDiarrhea": "Durchfall",
"sideEffectTagFatigue": "Müdigkeit",
"sideEffectTagAppetiteLoss": "Appetitlosigkeit",
"sideEffectTagHeartburn": "Sodbrennen",
"sideEffectTagHeadache": "Kopfschmerzen",
"newSchedule": "Neues Zeitfenster",
"removeSchedule": "Zeitfenster entfernen",
"advancedEditing": "Erweiterte Bearbeitung",
"advancedEditingHide": "Erweiterte Bearbeitung ausblenden",
"scheduleInterval": "Intervall",
"scheduleEveryWeek": "jede Woche",
"scheduleEveryNWeeks": "alle {n} Wochen",
"scheduleIntervalPrefix": "Intervall:",
"nextSchedulePrefix": "Nächstes Zeitfenster:",
"nextScheduleDaily": "täglich",
"importIntakesAction": "Einnahmen importieren",
"apiEndpointAction": "API-Endpunkt",
"pause": "Pausieren",
"activate": "Aktivieren",
"disableNotifications": "Benachrichtigungen deaktivieren",
"enableNotifications": "Benachrichtigungen aktivieren",
"purgeRecords": "Alle Aufzeichnungen löschen",
"formReset": "Formular zurücksetzen",
"createMedication": "Medikament anlegen",
"deleteConfirmDescription": "Das Medikament und die gesamte Einnahme-Historie werden unwiderruflich gelöscht.",
"purgeConfirmTitle": "Alle Aufzeichnungen löschen?",
"purgeConfirmDescription": "Alle Einnahme-Aufzeichnungen für dieses Medikament werden unwiderruflich gelöscht. Das Medikament selbst bleibt bestehen und startet ohne Verlaufsdaten.",
"saveError": "Fehler beim Speichern",
"deleteError": "Fehler beim Löschen",
"purgeError": "Fehler beim Löschen der Aufzeichnungen",
"invalidTimestamp": "Bitte einen gültigen Zeitpunkt wählen.",
"noIntakesYet": "Noch keine Einnahmen vorhanden",
"actions": "Aktionen",
"pageInfo": "Seite {page} von {total}",
"previousPage": "Vorherige Seite",
"nextPage": "Nächste Seite",
"loginRequiredIntakes": "Bitte anmelden, um Einnahmen zu sehen.",
"phaseConfig": "Erinnerungsphasen",
"phaseConfigDescription": "Konfiguriere die Zeitpunkte für Erinnerungen.",
"phaseGreen": "Grün",
"phaseYellow": "Gelb",
"phaseOrange": "Orange",
"phaseRed": "Rot",
"phaseMinutes": "Min",
"phasePercent": "%",
"phaseBeforeEnd": "vor Ende",
"phaseAfterEnd": "nach Ende",
"phaseResetDefaults": "Auf Defaults zurücksetzen",
"phaseSaved": "Erinnerungsphasen gespeichert",
"phaseReset": "Auf Defaults zurückgesetzt",
"sourceWeb": "Web",
"sourceApi": "iOS-App",
"sourceReminder": "Erinnerung",
"sourceImport": "Import",
"intakeSourceVia": "über {origin}",
"intakeHistoryEmptyTitle": "Noch keine Einnahmen erfasst",
"intakeHistoryEmptyDescription": "Trage eine Einnahme auf der Tagesübersicht ein, um den Verlauf aufzubauen.",
"intakeHistoryEmptyAction": "Zur Tagesübersicht",
"intakeHistoryColTaken": "Eingenommen",
"intakeHistoryColScheduled": "Geplant",
"intakeHistoryColStatus": "Status",
"intakeHistoryColSource": "Quelle",
"intakeHistoryStatusTaken": "Eingenommen",
"intakeHistoryStatusSkipped": "Übersprungen",
"intakeHistorySortByTaken": "Nach Einnahme-Zeitpunkt sortieren",
"intakeHistorySortByScheduled": "Nach geplantem Zeitpunkt sortieren",
"intakeHistoryPageInfo": "Seite {page} von {total} · {count} Einträge",
"intakeHistoryPrev": "Zurück",
"intakeHistoryNext": "Weiter",
"unitDrops": "Tropfen",
"unitTablets": "Tablette(n)",
"unitCapsules": "Kapsel(n)",
"unitPieces": "Stück",
"namePlaceholder": "z.B. Ibuprofen",
"dosePlaceholder": "z.B. 400",
"labelPlaceholder": "z.B. Morgens",
"defaultDose": "Standard",
"dayDeactivate": "{day} deaktivieren",
"dayActivate": "{day} aktivieren",
"glp1": {
"drug": {
"tirzepatide": {
"name": "Tirzepatid"
},
"semaglutide": {
"name": "Semaglutid"
},
"liraglutide": {
"name": "Liraglutid"
},
"dulaglutide": {
"name": "Dulaglutid"
},
"exenatide": {
"name": "Exenatid"
}
}
},
"researchMode": {
"dialog": {
"title": "Forschungsmodus aktivieren",
"intro": "Der Forschungsmodus ergänzt deine GLP-1-Medikamentenseite um eine geschätzte Wirkstoff-Verlaufskurve. Lies die Abgrenzung unten, bevor du den Modus einschaltest — die Kurve ist eine Lernhilfe, niemals eine Messung und nie ein medizinischer Rat.",
"whatItIsHeader": "Was das ist",
"whatItIs": "Eine Sägezahnkurve, die die Überlagerung deiner protokollierten Dosen über die Zeit simuliert. Grundlage ist das Ein-Kompartment-Modell nach Bateman mit Absorptions- und Halbwertszeit-Parametern aus den EMA-EPARs der zugelassenen GLP-1-Rezeptoragonisten. Die Y-Achse ist einheitenlos und ohne Beschriftung. Die Form, nicht der Zahlenwert, ist die Aussage der Kurve.",
"whatItIsntHeader": "Was das nicht ist",
"whatItIsnt": "Kein Blutspiegel. Keine Messung. Keine Vorhersage, wie dein Körper tatsächlich reagiert. Keine Grundlage für Dosierungs-, Zeitpunkt- oder Eskalationsentscheidungen. Für alles, was deine Therapie betrifft, sprich mit deiner verschreibenden Ärztin oder deinem Arzt.",
"whyEstimateHeader": "Warum es eine Schätzung ist",
"whyEstimate": "Populations-Pharmakokinetik beschreibt den typischen Patienten. Die individuelle Streuung ist groß — das Tirzepatid-Modell Schneck/Urva 2024 weist rund 22 % interindividuelle Variabilität bei der Absorption und rund 49 % beim Verteilungsvolumen aus. Eine Lehrbuchkurve kann weder dein Gewicht, deine Nierenfunktion, deine Injektionstechnik noch deine Zeitgenauigkeit abbilden. Lies die Kurve als Rhythmus deiner Dosierung, nicht als deinen Spiegel.",
"mdrBoundaryHeader": "Regulatorische Abgrenzung",
"mdrBoundary": "HealthLog stellt öffentliche regulatorische Daten und deine eigenen Einträge dar. Die App stellt keine Prognose, Diagnose, Behandlung oder Therapieempfehlung. Die EU-Verordnung 2017/745 (Medical Device Regulation, MDR) und das Leitfadenpapier MDCG 2021-24 ziehen die Grenze bei Software, die Daten für medizinische Zwecke interpretiert — diese Kurve bleibt klar auf der edukativen Seite dieser Linie. Wenn du das Gefühl hast, die Kurve dränge dich zu einer klinischen Entscheidung, schließe sie.",
"citationsHeader": "Quellen",
"citations": "EMA European Public Assessment Reports für Mounjaro, Ozempic, Wegovy, Saxenda, Trulicity, Byetta und Bydureon (Abschnitt 5.2). Schneck K, Urva S. Population pharmacokinetics of the GIP/GLP receptor agonist tirzepatide. CPT Pharmacometrics Syst Pharmacol 2024;13(3):494-503 (DOI 10.1002/psp4.13099).",
"versionLine": "Disclaimer-Version: {version}",
"acknowledgeCta": "Verstanden — aktivieren",
"cancelCta": "Abbrechen",
"successToast": "Forschungsmodus aktiviert. Die Wirkstoff-Verlaufskurve ist jetzt auf deiner GLP-1-Medikamentenseite sichtbar.",
"errorToast": "Forschungsmodus konnte nicht aktiviert werden. Bitte erneut versuchen.",
"staleVersionToast": "Der Disclaimer wurde aktualisiert, seit diese Seite geladen wurde. Lade die Seite neu, um die aktuelle Fassung zu lesen."
},
"chart": {
"title": "Geschätzter Wirkstoffverlauf",
"axisLabel": "Geschätzter Spiegel (relativ)",
"emptyState": "Noch keine Einnahmen erfasst.",
"emptyStateCta": "Trage eine Dosis ein, damit die geschätzte Verlaufskurve Gestalt annimmt.",
"estimateNote": "Edukative Schätzung aus EMA-publizierter Populations-Pharmakokinetik. Keine Messung.",
"unknownDrug": "{name} ist nicht im EMA-zugelassenen GLP-1-Katalog enthalten. HealthLog kann dafür keine Populations-Pharmakokinetik-Kurve erzeugen."
}
},
"detail": {
"status": {
"active": "Aktiv",
"paused": "Pausiert",
"ended": "Beendet"
},
"cadence": {
"oneShotOn": "Einmalige Dosis am {date}.",
"oneShotPending": "Einmalige Dosis ausstehend.",
"asNeeded": "Bei Bedarf — kein fester Plan."
},
"intake": {
"title": "Einnahmeverlauf",
"importButton": "Importieren",
"rowActions": {
"openMenu": "Zeilen-Aktionen öffnen",
"edit": "Bearbeiten",
"delete": "Löschen"
},
"selection": {
"rowToggleLabel": "Zeile auswählen"
},
"bulkDelete": {
"selectionCount": "{count} Einträge ausgewählt",
"deleteButton": "Auswahl löschen",
"cancelButton": "Abbrechen",
"confirmTitle": "Ausgewählte Einträge löschen?",
"confirmBody": "{count} Einträge werden dauerhaft entfernt. Das Medikament bleibt.",
"confirmAction": "Löschen",
"toast": "Auswahl gelöscht",
"failed": "Auswahl konnte nicht gelöscht werden."
},
"edit": {
"dialogTitle": "Einnahme bearbeiten",
"takenAtLabel": "Eingenommen um",
"scheduledForHint": "Geplant: {dateTime}",
"farFromScheduledWarning": "Liegt weit vom geplanten Zeitpunkt entfernt – Datum prüfen.",
"skippedLabel": "Übersprungen",
"save": "Speichern",
"cancel": "Abbrechen",
"savedToast": "Einnahme aktualisiert",
"failed": "Einnahme konnte nicht aktualisiert werden."
},
"deleteRow": {
"confirmTitle": "Diese Einnahme löschen?",
"confirmBody": "Der Eintrag wird dauerhaft entfernt.",
"confirmAction": "Löschen",
"toast": "Einnahme gelöscht",
"failed": "Einnahme konnte nicht gelöscht werden."
}
},
"verlauf": {
"loading": "Verlauf wird geladen …",
"loadError": "Verlauf konnte nicht geladen werden.",
"empty": "Noch keine Einnahmen in diesem Zeitraum.",
"summaryEmpty": "Noch keine auswertbaren Dosen.",
"adherenceLabel": "Therapietreue",
"adherenceBarLabel": "{onTime} pünktlich, {late} verspätet, {missed} verpasst",
"add": "Eintrag",
"markTaken": "Genommen",
"markSkipped": "Übersprungen",
"rowActionsLabel": "Aktionen für {time}",
"markAsTaken": "Als genommen markieren",
"markAsSkipped": "Als übersprungen markieren",
"adHocTag": "außerplanmäßig",
"takenDetail": "geplant {planned} · genommen {taken}",
"doseTaken": "Dosis: {dose}",
"status": {
"taken_on_time": "pünktlich",
"taken_late": "verspätet",
"skipped": "übersprungen",
"missed": "verpasst",
"upcoming": "ausstehend",
"ad_hoc": "außerplanmäßig"
},
"addDialog": {
"title": "Einnahme hinzufügen",
"description": "Dosis nachtragen – auch rückwirkend oder außerplanmäßig.",
"takenAtLabel": "Genommen um",
"skippedLabel": "Übersprungen",
"nudgeHint": "Liegt nah am Slot {slot} – beim Speichern fragen wir, ob zugeordnet werden soll.",
"cancel": "Abbrechen",
"submit": "Speichern"
},
"nudge": {
"title": "Diesem Slot zuordnen?",
"body": "Die Einnahme liegt knapp außerhalb des Fensters von {slot}. Diesem Slot zuordnen oder als außerplanmäßigen Eintrag speichern?",
"keepAdHoc": "Außerplanmäßig",
"pin": "Zuordnen"
},
"pin": {
"action": "Slot {time} zuordnen",
"release": "Zuordnung lösen",
"pinnedTag": "zugeordnet",
"pinnedToast": "Einnahme dem Slot zugeordnet",
"unpinnedToast": "Zuordnung gelöst",
"dueContext": "fällig gewesen: {time} ({delta})",
"confirmTitle": "Slot {time} zuordnen?",
"confirmBody": "Die Einnahme zählt für diesen Slot als verspätet – die Quote wird nicht geschönt. Die Zuordnung lässt sich jederzeit wieder lösen.",
"confirmCancel": "Abbrechen",
"confirmAction": "Zuordnen"
}
},
"notifications": {
"title": "Erinnerungen",
"switchLabel": "Erinnern, wenn die Dosis fällig ist",
"helperOn": "Erinnerungen sind aktiv.",
"helperOff": "Erinnerungen sind aus.",
"enabledToast": "Erinnerungen aktiv",
"disabledToast": "Erinnerungen aus",
"toggleFailed": "Erinnerungs-Einstellung konnte nicht geändert werden.",
"clientManagedChip": "Dein iPhone steuert die Erinnerungen für dieses Medikament."
},
"settings": {
"title": "Einstellungen",
"phases": {
"openButton": "Phasen konfigurieren",
"requiresCourseWindow": "Phasen sind nur mit Kurs-Fenster verfügbar."
},
"grace": {
"label": "Erinnerungsfenster",
"appliesToAllNote": "Gilt für alle Zeitpläne dieses Medikaments.",
"unit": "Minuten",
"saved": "Erinnerungsfenster gespeichert",
"failed": "Erinnerungsfenster konnte nicht gespeichert werden."
},
"codes": {
"label": "Klinische Codes (ATC / RxNorm)",
"note": "Optional. Werden beim FHIR-Export der Gesundheitsakte verwendet. Codes werden genau wie eingegeben übernommen — nie geraten.",
"atcLabel": "ATC",
"rxNormLabel": "RxNorm",
"saved": "Klinische Codes gespeichert",
"failed": "Klinische Codes konnten nicht gespeichert werden."
}
},
"zone": {
"title": "Verwaltung & Gefahrenzone",
"pause": {
"title": "Pausieren",
"helper": "Erinnerungen anhalten, bis du sie wieder aktivierst. Verlauf bleibt erhalten.",
"pausedToast": "Erinnerungen pausiert",
"resumedToast": "Erinnerungen reaktiviert",
"failed": "Status konnte nicht geändert werden."
},
"end": {
"title": "Medikament beenden",
"helper": "Erinnerungen stoppen und das Medikament als beendet markieren. Verlauf bleibt sichtbar.",
"button": "Beenden",
"dialogTitle": "{name} beenden — Erinnerungen stoppen, Verlauf bleibt sichtbar",
"dialogBody": "Keine weiteren Erinnerungen. Alte Einträge bleiben in der Übersicht.",
"toast": "Medikament beendet",
"failed": "Medikament konnte nicht beendet werden."
},
"purge": {
"title": "Verlauf löschen",
"helper": "Es sind {count} Einnahmen für dieses Medikament gespeichert.",
"button": "Verlauf löschen",
"dialogTitle": "Verlauf wirklich löschen?",
"dialogBody": "Die {count} Einnahmen werden unwiderruflich gelöscht. Das Medikament selbst bleibt.",
"toast": "Verlauf gelöscht",
"failed": "Verlauf konnte nicht gelöscht werden."
},
"delete": {
"title": "Medikament löschen",
"helper": "Entfernt das Medikament und alle zugehörigen Daten.",
"button": "Löschen",
"dialogTitle": "{name} löschen?",
"dialogBody": "Medikament, Zeitpläne, Verlauf, API-Tokens, Phasen-Konfiguration und Erinnerungen werden unwiderruflich gelöscht.",
"toast": "Medikament gelöscht",
"failed": "Medikament konnte nicht gelöscht werden."
}
},
"phases": {
"modeLabel": "Modus für {phase}",
"saveFailed": "Phasen konnten nicht gespeichert werden."
},
"api": {
"caption": "Endpunkt für „{name}\"",
"copyUrl": "URL kopieren",
"urlCopied": "URL kopiert",
"mintToken": "Token erzeugen",
"mintAnotherToken": "Weiteres Token erzeugen",
"mintFailed": "Token konnte nicht erzeugt werden.",
"copyFailed": "Kopieren fehlgeschlagen.",
"tokenCopied": "Token kopiert",
"copyToken": "Token kopieren",
"mintedHint": "Token jetzt kopieren — es wird nur einmal angezeigt."
},
"edit": {
"planOption": "Plan bearbeiten",
"advancedOption": "Erweiterte Einstellungen"
},
"advanced": {
"title": "Erweiterte Einstellungen",
"group": {
"data": "Daten",
"lifecycle": "Lebenszyklus",
"externalApi": "Externe API"
},
"dataPortability": {
"import": {
"title": "Einnahmen importieren",
"helper": "Vergangene Einnahmen aus einer JSON-Datei oder eingefügtem JSON laden.",
"button": "JSON importieren"
},
"export": {
"title": "Medikament exportieren",
"helper": "Dieses Medikament als CSV-Datei herunterladen.",
"includeIntake": "Einnahmeverlauf einschließen",
"button": "CSV exportieren"
}
}
},
"header": {
"historyLabel": "Einnahmeverlauf ansehen"
},
"history": {
"back": "Zurück zum Medikament",
"subtitle": "Vollständiger Einnahmeverlauf",
"plannedSuffix": "geplant"
},
"tabs": {
"uebersicht": "Übersicht",
"zeitplan": "Zeitplan",
"bestand": "Bestand",
"verlauf": "Verlauf",
"injektion": "Injektion",
"api": "API",
"erweitert": "Erweitert"
},
"shell": {
"loadFailed": "Dieses Medikament konnte nicht geladen werden.",
"tablistLabel": "Medikamenten-Detailbereiche"
},
"uebersicht": {
"statusTitle": "Status",
"nextDoseLabel": "Nächste Dosis",
"nextDoseNone": "Keine anstehende Dosis.",
"nextDoseAsNeeded": "Bei Bedarf — keine geplante Dosis.",
"pausedHint": "Pausiert — keine Erinnerungen.",
"reminderLabel": "Erinnerung",
"reminderOn": "Aktiv",
"reminderOff": "Aus",
"supplyLabel": "Bestand",
"supplyRunway": "Reicht noch ca. {days} Tage",
"jumpToZeitplan": "Zum Zeitplan",
"jumpToVerlauf": "Zum Verlauf",
"jumpToBestand": "Zum Bestand",
"complianceTitle": "Therapietreue",
"complianceEmpty": "Noch keine Daten zur Therapietreue."
},
"bestand": {
"title": "Bestand",
"summary": "{remaining} von {total} Dosen übrig",
"itemsTitle": "Packungen & Behälter",
"doses": "{remaining} / {total} Dosen",
"state": {
"ACTIVE": "Ungeöffnet",
"IN_USE": "In Gebrauch",
"EXPIRED": "Abgelaufen",
"USED_UP": "Aufgebraucht"
},
"empty": "Kein Bestand erfasst.",
"emptyHelper": "Erfasse eine Packung oder einen Behälter, um den verbleibenden Vorrat und die Reichweite zu verfolgen.",
"emptyCta": "Packung erfassen",
"addButton": "Erfassen",
"lowStockLinkOn": "Benachrichtigung bei niedrigem Bestand: unter {days} Tagen",
"lowStockLinkOff": "Benachrichtigung bei niedrigem Bestand: aus",
"addTitle": "Packung oder Behälter erfassen",
"addDescription": "Lege einen neuen Vorrat mit seiner Einheitenanzahl an; das Ablaufdatum ist optional.",
"addQuantityLabel": "Menge (Einheiten)",
"addQuantityHelper": "1–1000 Einheiten pro Packung oder Behälter.",
"addExpiryLabel": "Ablaufdatum (optional)",
"addSubmit": "Erfassen",
"addSuccess": "Bestand erfasst.",
"addFailed": "Bestand konnte nicht erfasst werden.",
"adjustButton": "Anpassen",
"adjustTitle": "Bestand korrigieren",
"adjustDescription": "Setze die verbleibenden Einheiten neu — für Korrekturen oder eine Entnahme. 0 markiert den Vorrat als aufgebraucht.",
"adjustQuantityLabel": "Verbleibende Einheiten",
"adjustHelper": "Kapazität: {total} Einheiten.",
"adjustSubmit": "Speichern",
"adjustSuccess": "Bestand aktualisiert.",
"adjustFailed": "Bestand konnte nicht aktualisiert werden.",
"deleteTitle": "Packung löschen?",
"deleteDescription": "Entfernt diese Packung oder diesen Behälter dauerhaft aus dem Bestand. Protokollierte Einnahmen bleiben unverändert.",
"deleteSuccess": "Bestand gelöscht.",
"deleteFailed": "Bestand konnte nicht gelöscht werden.",
"containerTypeLabel": "Behälterart",
"containerType": {
"PEN": "Pen",
"AMPOULE": "Ampulle",
"BLISTER": "Tablettenpackung",
"INHALER": "Inhalator",
"BOTTLE": "Flasche",
"OTHER": "Sonstiges"
},
"unitsDetail": "{remaining} / {total} Einheiten",
"quantityModeDoses": "Dosen",
"quantityModeUnits": "Einheiten",
"quantityInUnits": "= {units} Einheiten",
"quantityInDoses": "≈ {doses} Dosen",
"quantityUnderOneDose": "< 1 Dosis",
"expiredSuffix": "+ {units} Einheiten abgelaufen",
"packagingTitle": "Packung & Dosis",
"packagingUnitsPerDose": "1 Dosis = {units} Einheiten",
"packagingDefaultPack": "Standard-Packungsgröße: {units} Einheiten",
"packagingNoDefaultPack": "Keine Standard-Packungsgröße hinterlegt",
"packagingEdit": "Bearbeiten",
"packagingDescription": "Lege fest, wie viele Einheiten eine Dosis verbraucht und wie groß eine neue Packung üblicherweise ist — z. B. nach einem Herstellerwechsel mit anderer Blistergröße.",
"packagingUnitsPerDoseLabel": "Einheiten pro Dosis",
"packagingUnitsPerDoseHelper": "Z. B. 2 Tabletten à 2 mg für eine 4-mg-Dosis (1–100). Bereits erfasste Einnahmen bleiben unverändert.",
"packagingDefaultPackLabel": "Standard-Packungsgröße (Einheiten)",
"packagingDefaultPackHelper": "Vorbefüllung beim Erfassen neuer Packungen (1–1000). Leer lassen, wenn keine üblich ist.",
"packagingSuccess": "Packungsangaben gespeichert",
"packagingFailed": "Speichern fehlgeschlagen"
},
"erweitert": {
"group": {
"lifecycle": "Lebenszyklus",
"externalApi": "Externe API",
"data": "Daten",
"danger": "Gefahrenzone"
},
"editor": {
"title": "Medikament im Editor bearbeiten",
"helper": "Name, Wirkstoffklasse, Häufigkeit und Zeitpläne im Schritt-für-Schritt-Editor ändern.",
"button": "Editor öffnen"
}
},
"zeitplan": {
"title": "Zeitplan",
"timesTitle": "Einnahmezeiten",
"timesNote": "Passe die Uhrzeiten und das Zeitfenster jeder Dosis an. Die Häufigkeit (täglich, wöchentlich …) änderst du im Editor unter Erweitert.",
"scheduleLabel": "Zeitplan {index}",
"fullEditNote": "Häufigkeit, Wirkstoffklasse und Kursfenster bearbeitest du im Editor unter Erweitert → Lebenszyklus.",
"graceEcho": "Erinnerungsfenster: {minutes} Minuten",
"reminderTitle": "Erinnerung",
"manageChannels": "Benachrichtigungskanäle verwalten",
"history": {
"title": "Planhistorie",
"currentSince": "Aktueller Plan seit {date}",
"noTimes": "Keine festen Uhrzeiten",
"manualChip": "Manuell ergänzt",
"showErasOne": "1 frühere Ära anzeigen",
"showErasOther": "{count} frühere Ären anzeigen",
"hideEras": "Frühere Ären ausblenden",
"addEra": "Frühere Ära ergänzen",
"addEraTitle": "Frühere Ära ergänzen",
"addEraDescription": "Halte fest, zu welchen Uhrzeiten dieses Medikament früher eingenommen wurde — etwa bevor du es hier angepasst hast.",
"editAria": "Ära bearbeiten",
"editEraTitle": "Ära bearbeiten",
"editEraDescription": "Passe die Einnahmezeiten und den Zeitraum dieser Ära an.",
"archivedEditHint": "Diese Ära wurde automatisch aufgezeichnet — deine Änderung korrigiert die aufgezeichnete Historie; das Original bleibt intern als Beleg erhalten.",
"updatedToast": "Ära aktualisiert",
"updateError": "Die Ära konnte nicht aktualisiert werden. Sie darf sich nicht mit anderen Ären überschneiden und muss vor dem aktuellen Plan enden.",
"timesLabel": "Einnahmezeiten",
"fromLabel": "Von",
"untilLabel": "Bis",
"untilHint": "„Bis\" ist der Tag, ab dem der nachfolgende Plan galt (ausschließlich).",
"validationTimes": "Mindestens eine Uhrzeit angeben.",
"validationRangeMissing": "Von- und Bis-Datum angeben.",
"validationRangeOrder": "Das Von-Datum muss vor dem Bis-Datum liegen.",
"cancel": "Abbrechen",
"submit": "Ära speichern",
"createdToast": "Frühere Ära gespeichert",
"createError": "Die Ära konnte nicht gespeichert werden. Sie darf sich nicht mit bestehenden Ären überschneiden und muss vor dem aktuellen Plan enden.",
"deletedToast": "Ära gelöscht",
"deleteError": "Die Ära konnte nicht gelöscht werden",
"deleteAria": "Ära löschen",
"deleteConfirmTitle": "Ära löschen?",
"deleteConfirmBody": "Verlauf und Therapietreue werden für diesen Zeitraum wieder anhand des aktuellen Plans berechnet.",
"deleteConfirmAction": "Löschen",
"loadError": "Planhistorie konnte nicht geladen werden"
},
"save": "Zeitplan speichern",
"saved": "Zeitplan gespeichert",
"failed": "Zeitplan konnte nicht gespeichert werden",
"window": {
"intro": "Lege je Dosis fest, wann eine Einnahme als pünktlich gilt — ein genauer Zeitpunkt (±1 Std.) oder ein eigenes Fenster wie 07:00–09:00.",
"explicitToggle": "Eigenes Fenster",
"startLabel": "Fensterbeginn",
"endLabel": "Fensterende",
"onTimeBand": "Pünktlich: {start}–{end}",
"lateUntil": "verspätet bis {time}",
"lateDays": "verspätet bis {days} Tage danach",
"orderError": "Der Beginn muss vor dem Ende liegen.",
"noTimes": "Noch keine Einnahmezeiten festgelegt."
}
}
},
"logInjectionSiteTitle": "Injektionsstelle erfassen",
"logInjectionSiteDescription": "Wo hast du {name} gespritzt? Optional — du kannst dies überspringen.",
"logInjectionSiteSkip": "Überspringen",
"logInjectionSiteConfirm": "Stelle speichern",
"logInjectionSiteNoneAvailable": "Keine Injektionsstelle verfügbar — alle Stellen sind in deinen Einstellungen ausgeschlossen.",
"logInjectionSiteSaveFailed": "Injektionsstelle konnte nicht gespeichert werden. Bitte versuche es erneut.",
"trackInjectionSitesToggle": "Injektionsstellen erfassen",
"trackInjectionSitesHint": "Nach einer eingenommenen Dosis nach der verwendeten Stelle fragen und die nächste Rotation vorschlagen.",
"allowedSitesLabel": "Erlaubte Stellen",
"allowedSitesHint": "Alle ausgewählt lassen für keine Einschränkung. Global ausgeschlossene Stellen werden nie angeboten.",
"viewToggleLabel": "Ansicht",
"viewToggleHint": "Wähle, ob deine Medikamente als Karten oder als Tabelle angezeigt werden.",
"viewCards": "Kartenansicht",
"viewTable": "Tabellenansicht",
"viewSaveFailed": "Ansicht konnte nicht gespeichert werden",
"tableCaption": "Medikamente in Tabellenform mit Status, nächster Einnahme, Therapietreue und Bestand",
"tableColName": "Name",
"tableColStatus": "Status",
"tableColNextDose": "Nächste Einnahme",
"tableColCompliance": "Therapietreue",
"tableColStock": "Bestand",
"tableColActions": "Aktionen",
"tableSortBy": "Sortieren nach {column}",
"tableComplianceDays": "{days} T",
"tableStockDoseOne": "1 Dosis",
"tableStockDoses": "{count} Dosen",
"tableStockRunway": "≈ {days} Tage übrig",
"cardLowStockRunway": "Vorrat: ≈ {days} Tage",
"takeActionFor": "Einnehmen – {name}",
"skipActionFor": "Überspringen – {name}",
"reorderTitle": "Reihenfolge anpassen",
"reorderDescription": "Bestimme die Reihenfolge deiner Medikamente – sie gilt für die Karten- und die Tabellenansicht.",
"reorderSaved": "Reihenfolge gespeichert",
"reorderSaveFailed": "Reihenfolge konnte nicht gespeichert werden",
"customize": "Medikamente anpassen"
},
"charts": {
"loadingLabel": "Diagramm wird geladen…",
"loadingSlowHint": "Auswertungen werden berechnet — das kann einen Moment dauern.",
"weight": "Gewicht",
"bloodPressure": "Blutdruck",
"pulse": "Puls",
"bodyFat": "Körperfett",
"sleep": "Schlaf",
"steps": "Schritte",
"hrv": "HRV",
"restingHeartRate": "Ruhepuls",
"activeEnergy": "Aktive Energie",
"flights": "Treppen",
"distance": "Geh- + Laufstrecke",
"vo2Max": "VO₂max",
"bodyTemperature": "Körpertemperatur",
"noData": "Keine Daten im gewählten Zeitraum",
"bucketWeekly": "Wochendurchschnitt",
"bucketMonthly": "Monatsdurchschnitt",
"points7Label": "7 Pkt",
"points7Title": "Letzte 7 Messpunkte",
"points30Label": "30 Pkt",
"points30Title": "Letzte 30 Messpunkte",
"points90Label": "90 Pkt",
"points90Title": "Letzte 90 Messpunkte",
"pointsAllLabel": "Alle",
"pointsAllTitle": "Alle verfügbaren Messpunkte",
"systolic": "Systolisch",
"diastolic": "Diastolisch",
"bodyWater": "Körperwasser",
"boneMass": "Knochenmasse",
"spo2": "SpO₂",
"movingAverage7d": "7-Tage-Trend",
"avg7dShort": "7T",
"avg30dShort": "30T",
"trend7dShort": "7-Tage-Trend",
"trend": "Trend",
"perWeek": "/Woche",
"totalDelta": "Gesamt",
"colorGreen": "Grün:",
"colorOrange": "Orange:",
"colorRed": "Rot:",
"mood": "Stimmung",
"moodScore": "Stimmungswert",
"weekdays": {
"mon": "Mo",
"wed": "Mi",
"fri": "Fr",
"sun": "So"
},
"months": {
"jan": "Jan",
"feb": "Feb",
"mar": "Mär",
"apr": "Apr",
"may": "Mai",
"jun": "Jun",
"jul": "Jul",
"aug": "Aug",
"sep": "Sep",
"oct": "Okt",
"nov": "Nov",
"dec": "Dez"
},
"heatmapOnTime": "pünktlich",
"heatmapLate": "spät",
"heatmapVeryLate": "sehr spät",
"legendOnTime": "Pünktlich",
"legendLate": "Spät",
"legendVeryLate": "Sehr spät",
"legendMissed": "Verpasst",
"emptyStateTitle": "Erfasse mehr Messungen, um Trends zu sehen",
"emptyStateDescription": "Erfasse mindestens 3 Einträge, um die Trendlinie freizuschalten.",
"needMoreDistinctDaysTitle": "Mehr Messtage erforderlich",
"needMoreDistinctDaysDescription": "Erfasse an mehreren Tagen, um eine Trendlinie freizuschalten.",
"noDataInRangeTitle": "Keine Daten in diesem Zeitraum",
"noDataInRangeDescription": "Für den gewählten Bereich liegen keine Messungen vor. Wechsle den Zeitraum oder erfasse einen neuen Wert.",
"errorTitle": "Daten konnten nicht geladen werden",
"loadErrorTitle": "Diagramm konnte nicht geladen werden",
"loadErrorReload": "Neu laden",
"sparseDataCaption": "Mehr Messtage füllen den Trend.",
"personalBaseline": "Dein Mittel",
"deltaVsBaseline": "{delta} vs. dein Mittel",
"deltaUnchanged": "entspricht deinem Mittel",
"deltaVsTarget": "{delta} vs. Ziel",
"weekdaysFull": {
"mon": "Montag",
"tue": "Dienstag",
"wed": "Mittwoch",
"thu": "Donnerstag",
"fri": "Freitag",
"sat": "Samstag",
"sun": "Sonntag"
},
"rangeBand": "Bereich"
},
"chart": {
"overlay": {
"controls": {
"title": "Chart-Overlays",
"trendIndicator": "7-Tage-Trend",
"trendArrow": "Trend-Pfeil",
"targetRange": "Zielbereich",
"comparisonBaseline": "Vergleich",
"comparisonUnavailable": "Kein Vorzeitraum verfügbar",
"tooltip": {
"openSettings": "Chart-Overlay-Einstellungen"
}
}
}
},
"comparison": {
"toggleLabel": "Vergleichen mit",
"toggleHint": "Vergleicht den aktuellen Zeitraum mit dem Vorjahreszeitraum.",
"baseline": {
"none": "Aus",
"lastMonth": "Vormonat",
"lastYear": "Vorjahr"
},
"captionLastMonth": "vs. Vormonat",
"captionLastYear": "vs. Vorjahr",
"deltaVs": {
"lastMonth": "{delta} vs. Vormonat",
"lastYear": "{delta} vs. Vorjahr"
},
"tooltipPrior": "Vorperiode",
"unavailable": {
"lastMonth": "Vergleich nicht verfügbar — noch keine Daten aus dem Vormonat",
"lastYear": "Vergleich nicht verfügbar — noch keine Daten aus dem Vorjahr"
},
"notAvailableForCompliance": "Vergleich für Therapietreue nicht verfügbar"
},
"insights": {
"emptyTitle": "Noch nicht genug Daten",
"emptyDescription": "Insights erscheinen, sobald du ein paar Messwerte erfasst hast. Beginne mit Gewicht oder Blutdruck.",
"emptyAddMeasurement": "Messwert erfassen",
"editMode": {
"open": "Anpassen",
"done": "Fertig",
"reset": "Zurücksetzen",
"title": "Übersicht anpassen",
"description": "Zum Sortieren ziehen, zum Ein- oder Ausblenden auf das Auge tippen.",
"dragHandle": "Zum Sortieren ziehen",
"show": "Einblenden",
"hide": "Ausblenden",
"manageInSettings": "Pills & Detailseiten in den Einstellungen verwalten",
"groupSleep": "Schlaf",
"groupMood": "Stimmung",
"groupEvents": "Ereignisse",
"gatedHint": "Erscheint, sobald Daten oder die Funktion verfügbar sind",
"allHiddenHint": "Alle Bereiche sind ausgeblendet. Blende mindestens einen ein, um deine Übersicht zu sehen.",
"saveSuccess": "Übersicht gespeichert",
"saveError": "Übersicht konnte nicht gespeichert werden",
"resetSuccess": "Übersicht auf Standard zurückgesetzt",
"emptyTitle": "Alle Karten ausgeblendet",
"emptyDescription": "Du hast alle Bereiche ausgeblendet. Öffne „Anpassen“, um Karten wieder einzublenden."
},
"bmiEmptyTitle": "Größe hinzufügen für BMI",
"bmiEmptyDescription": "Für den BMI wird deine Körpergröße benötigt. Hinterlege sie unter Einstellungen → Account.",
"bmiEmptyAction": "Account-Einstellungen öffnen",
"noAnalysisYet": "Noch keine Einschätzung vorhanden.",
"assessmentPreparing": "Einschätzung wird vorbereitet…",
"noProviderConfigured": "Einschätzung nicht verfügbar.",
"startAnalysis": "Einschätzung starten",
"refreshAnalysis": "Einschätzung aktualisieren",
"keyTakeaway": "Das Wichtigste",
"findingsTitle": "Befunde",
"heroFindingPositive": "Wichtigster Befund",
"heroFindingNeutral": "Wichtigster Befund",
"heroFindingAttention": "Beachten",
"heroFindingWarning": "Wichtigster Alarm",
"correlationsTitle": "Zusammenhänge",
"recommendationsTitle": "Empfehlungen",
"personalRecord": {
"badge": "PR",
"tooltip": "Persönlicher Rekord: {value} {unit} am {date}"
},
"recommendation": {
"source": "Quelle",
"viewSource": "Leitlinie in neuem Tab öffnen",
"rationale": "Warum diese Empfehlung",
"rationaleWindow": "Fenster",
"rationaleComparedTo": "Verglichen mit",
"rationaleDeviation": "Abweichung",
"rationaleExpand": "Begründung anzeigen",
"rationaleCollapse": "Begründung ausblenden",
"legacyPayloadCta": "Insights aktualisiert — Neugenerierung lädt die neuen Erklärfunktionen",
"feedbackHelpful": "Hilfreich",
"feedbackNotHelpful": "Nicht hilfreich",
"feedbackThanks": "Danke für dein Feedback",
"feedbackConfirmed": "Feedback gespeichert",
"feedbackAlreadyRated": "Bereits bewertet",
"feedbackError": "Dein Feedback konnte nicht gespeichert werden. Bitte versuche es erneut.",
"confidence": "Vertrauen",
"confidenceAria": "Vertrauen: {value} von 100",
"confidenceHigh": "Hohes Vertrauen",
"confidenceMedium": "Mittleres Vertrauen",
"confidenceLow": "Geringes Vertrauen — wenige Datenpunkte",
"confidenceDraft": "Entwurf"
},
"dataFoundation": "Datengrundlage",
"dataGaps": "Datenlücken:",
"lastUpdated": "Zuletzt aktualisiert",
"confidenceHoch": "Hoch",
"confidenceMittel": "Mittel",
"confidenceGering": "Gering",
"loadError": "Auswertungen konnten nicht geladen werden",
"heroGenerated": "Erstellt {time}",
"heroPersonalBaseline": "Basierend auf deinen letzten 90 Tagen",
"heroRegenerate": "Neu generieren",
"heroRegenerating": "Wird generiert",
"regenerateAnalysis": "Einschätzung neu erstellen",
"regenerateSuccess": "Einschätzung wurde neu erstellt",
"warmStarted": "Einschätzungen werden im Hintergrund erstellt",
"narrativeTitle": "Rückblick",
"narrativeWeek": "Diese Woche",
"narrativeMonth": "Dieser Monat",
"narrativePreparing": "Deine Zusammenfassung wird erstellt…",
"narrativeUpdating": "Wird aktualisiert…",
"narrativeUpdated": "Aktualisiert {time}",
"narrativeProvenanceLabel": "Wie das zustande kam",
"narrativeProvenanceMethod": "Eine Zusammenfassung des Zeitraums in einfacher Sprache, ausschließlich aus deinen erfassten Werten und den Zusammenhängen, die die statistische Mehrfachvergleichskorrektur überstanden haben. Beschreibend, nie eine Ursache.",
"narrativeProvenanceMetrics": "Basierend auf: {metrics}",
"narrativeProvenanceWindow": "Zeitfenster: {from} bis {to}",
"heroFallbackSubtitle": "Täglicher Blick auf deine Trends — direkt aus den Zahlen, die du protokollierst.",
"heroGreetingMorning": "Guten Morgen",
"heroGreetingAfternoon": "Guten Tag",
"heroGreetingEvening": "Guten Abend",
"heroComingSoonTooltip": "Kommt bald",
"heroActionAskCoach": "Coach fragen",
"healthScore": {
"label": "Gesundheitsscore",
"progressAria": "Gesundheitsscore-Fortschritt",
"deltaVsLastWeek": "{delta} im Vergleich zur Vorwoche",
"deltaUnavailable": "Noch keine Historie — schau nächste Woche wieder vorbei.",
"componentBp": "Blutdruck",
"componentWeight": "Gewicht",
"componentMood": "Stimmung",
"componentCompliance": "Therapietreue",
"disclaimer": "Orientierungshilfe — keine ärztliche Bewertung.",
"deltaExplainer": {
"trigger": "Was bedeutet diese Veränderung?",
"title": "So wird die Veränderung berechnet",
"description": "Veränderung gegenüber letzter Woche: {delta}",
"body": "Der Score kombiniert Blutdruck, Gewicht, Stimmung und Therapietreue. Wir vergleichen den heutigen Stand mit demselben Zeitpunkt vor einer Woche. Erfasse eine frische Messung oder einen Stimmungs-Check, um den Wert nach oben zu schubsen."
},
"provenance": {
"toggle": "Zusammensetzung",
"weightLabel": "Anteil",
"mixedBanner": "Einige Komponenten kombinieren mehrere Quellen. Die Aufschlüsselung zeigt den aktuellsten Wert je Komponente.",
"footnote": "Anteile sind nach verfügbaren Daten neu skaliert.",
"asOfLabel": "Stand {date}",
"provisional": "Vorläufig — nur {count} von {total} Datenpunkten verfügbar",
"provisionalBadge": "Vorläufig",
"sourceAria": "Quelle: {source}",
"sources": {
"manual": "Manuell",
"withings": "Withings",
"appleHealth": "Apple Health",
"mixed": "Gemischt",
"none": "Keine Daten"
}
}
},
"suggestedPrompts": {
"label": "Frag mich",
"tellMyDoctor": "Was sollte ich meinem Arzt sagen?",
"medicationWorking": "Wirkt mein Medikament?"
},
"dailyBriefing": {
"title": "Tagesbriefing",
"keyFindingsTitle": "Wichtige Befunde",
"emptyTitle": "Noch kein Briefing",
"emptyDescription": "Erstelle das heutige Briefing, um eine Zusammenfassung deiner Trends zu bekommen.",
"emptyAction": "Briefing erstellen",
"loadingLabel": "Briefing wird zusammengestellt",
"noProviderTitle": "Kein KI-Anbieter verbunden",
"noProviderDescription": "Verbinde einen KI-Anbieter in den Einstellungen, um tägliche Briefings zu erhalten.",
"noProviderAction": "Zu den KI-Einstellungen"
},
"trendsRow": {
"title": "Trends",
"subtitle": "Die letzten 30 Tage auf einen Blick",
"caption": {
"bp": "Systolische und diastolische Werte der letzten 30 Tage.",
"weight": "Gewichtsverlauf der letzten 30 Tage.",
"pulse": "Ruhepuls der letzten 30 Tage.",
"mood": "Täglicher Stimmungswert der letzten 30 Tage.",
"sleep": "Nächtliche Schlafdauer der letzten 30 Tage.",
"steps": "Tägliche Schrittzahl der letzten 30 Tage.",
"hrv": "Herzratenvariabilität der letzten 30 Tage.",
"resting_hr": "Ruheherzfrequenz der letzten 30 Tage.",
"active_energy": "Aktiv verbrauchte Energie der letzten 30 Tage.",
"flights": "Erklommene Stockwerke der letzten 30 Tage.",
"distance": "Geh- und Laufstrecke der letzten 30 Tage.",
"vo2_max": "VO₂max der letzten 30 Tage.",
"body_temp": "Körpertemperatur der letzten 30 Tage."
}
},
"vo2Max": {
"statLatest": "Aktuell",
"statMin": "Min",
"statMax": "Max",
"empty": "Noch keine VO₂-Max-Daten — synchronisiere Apple Health, um diese Ansicht zu füllen.",
"cardioLinkTitle": "Cardio-Fitness (VO₂ max)",
"cardioLinkBody": "VO₂ max ist das zentrale Maß für die aerobe Fitness. Das vollständige Diagramm und die Einschätzung findest du auf der eigenen Seite.",
"cardioLinkCta": "Cardio-Fitness öffnen"
},
"trendAnnotation": {
"emptyBp": "Mehr Daten nötig, um diesen Trend zu kommentieren.",
"emptyWeight": "Mehr Daten nötig, um diesen Trend zu kommentieren.",
"emptyMood": "Mehr Daten nötig, um diesen Trend zu kommentieren.",
"confidenceHigh": "Hohe Konfidenz",
"confidenceModerate": "Mittlere Konfidenz",
"confidenceLow": "Geringe Konfidenz",
"pendingLabel": "Trend-Kommentar wird generiert"
},
"range": {
"label": "Zeitraum",
"noPriorData": "keine Daten im Vorzeitraum",
"option": {
"7d": "7T",
"30d": "30T",
"90d": "90T",
"1y": "1J"
},
"priorLabel": {
"7d": "ggü. vorherigen 7T",
"30d": "ggü. vorherigen 30T",
"90d": "ggü. vorherigen 90T",
"1y": "ggü. Vorjahr"
},
"noChange": "keine Änderung"
},
"correlationRow": {
"title": "Zusammenhänge",
"disclaimer": "Zusammenhänge sind beobachtend, nicht kausal — sprich mit deinem Arzt, wenn der Blutdruck hoch ist.",
"experimentCta": "7-Tage-Experiment starten",
"experimentTooltip": "Bald verfügbar",
"emptyTitle": "Mehr Daten nötig, um diesen Zusammenhang zu zeigen",
"sourceChip": "basierend auf {n} gepaarten Messungen · {window}",
"sourceWindowLast30": "letzte 30 Tage",
"confidenceHigh": "Hohe Konfidenz",
"confidenceModerate": "Mittlere Konfidenz",
"confidenceLow": "Geringe Konfidenz",
"card": {
"bpComplianceTitle": "BD × Therapietreue",
"bpComplianceSubtitle": "Täglicher Systolischer gegen Therapietreue in %",
"moodPulseTitle": "Stimmung × Ruhepuls",
"moodPulseSubtitle": "Stimmung und Ruhepuls am selben Tag",
"weightWeekdayTitle": "Gewicht × Wochentag",
"weightWeekdaySubtitle": "Gewicht nach Wochentag gruppiert"
}
},
"coach": {
"refusalOutOfScope": "Ich kann nur bei den Gesundheitsdaten in deinem Log helfen — Messwerte, Medikamente, Stimmung, Trends. Fragen außerhalb dieses Themas beantworte ich nicht.",
"refusalInjection": "In deiner Nachricht stehen Anweisungen, die meine Vorgaben überschreiben sollen. Ich bin der HealthLog-Coach und fasse ausschließlich deine eigenen Gesundheitsdaten zusammen — formuliere deine Frage bitte in diesem Rahmen neu.",
"errorBudget": "Du hast das heutige Coach-Limit erreicht. Das Budget setzt sich um Mitternacht (UTC) zurück.",
"errorProvider": "Der Coach konnte gerade keinen Auswertungs-Anbieter erreichen. Bitte versuche es in einem Moment erneut.",
"errorNetwork": "Keine Internetverbindung — versuche es erneut, sobald du online bist.",
"prefsSaveError": "Coach-Einstellungen konnten nicht gespeichert werden. Bitte versuche es erneut.",
"errorCredentialExpired": "Deine Verbindung zum KI-Anbieter ist abgelaufen. Stelle sie in den Einstellungen wieder her, damit der Coach weiterläuft.",
"tagline": "Persönlicher Gesundheitscoach, auf deine Daten gestützt.",
"newChat": "Neuer Chat",
"maximizeAriaLabel": "Im Vollbild öffnen",
"minimizeAriaLabel": "Zurück zum Seitenfenster",
"send": "Senden",
"stop": "Stopp",
"thinking": "Denke nach…",
"composerPlaceholder": "Frag mich etwas zu deinen Daten…",
"nudgeBubbleLabel": "Neue Nachricht vom Coach — Chat öffnen",
"fabLabel": "Coach öffnen",
"selfContextAdopt": {
"offer": "Antwort in deine Selbstauskunft übernehmen?",
"confirm": "Übernehmen",
"dismiss": "Verwerfen",
"done": "In die Selbstauskunft übernommen",
"duplicate": "Bereits in der Selbstauskunft enthalten",
"failed": "Übernahme fehlgeschlagen. Bitte erneut versuchen."
},
"rememberMessage": {
"action": "Merken",
"done": "Gemerkt — in deiner Selbstauskunft gespeichert",
"duplicate": "Schon in deiner Selbstauskunft enthalten",
"failed": "Merken fehlgeschlagen. Bitte erneut versuchen."
},
"guided": {
"offerTitle": "Der Coach hat {count} Rückfragen an dich",
"offerTitleOne": "Der Coach hat eine Rückfrage an dich",
"offerBody": "Kurze Antworten schärfen deine Selbstauskunft — eine Frage nach der anderen, direkt hier im Chat.",
"offerStart": "Jetzt beantworten",
"offerLater": "Später",
"offerDismiss": "Nicht mehr fragen",
"dismissError": "Die Fragen konnten nicht verworfen werden. Bitte erneut versuchen.",
"progress": "Frage {current} von {total}",
"skip": "Überspringen",
"later": "Später",
"dismissRemaining": "Nicht mehr fragen",
"answerPlaceholder": "Deine Antwort…",
"summaryTitle": "Geschafft — danke für deine Antworten!",
"summaryAnswered": "{answered} von {total} beantwortet",
"summaryAdopted": "{adopted} in die Selbstauskunft übernommen",
"summaryAdoptedNone": "nichts Neues in die Selbstauskunft übernommen",
"summaryLink": "Selbstauskunft ansehen"
},
"voiceComingSoon": "Spracheingabe kommt mit der iOS-App in v1.5.",
"threadEmpty": "Frag mich etwas zu deinen Trends, Medikamenten oder Messwerten, um zu starten.",
"historyTitle": "Unterhaltungen",
"historySearchPlaceholder": "Unterhaltungen durchsuchen…",
"historyEmpty": "Deine Unterhaltungen erscheinen hier. Stell eine Frage, um zu starten.",
"historyDeleteAria": "Unterhaltung löschen",
"historyDeleteConfirm": "Diese Unterhaltung löschen? Das lässt sich nicht rückgängig machen.",
"sourcesTitle": "Worauf ich zugreife",
"sourcesFresh": "Aktuell",
"sourcesStale": "Veraltet",
"sourcesFooter": "Der Coach liest nur Daten, die du verbunden hast.",
"evidenceLabel": "Worauf bezieht sich das?",
"metric": {
"bp": "Blutdruck",
"weight": "Gewicht",
"pulse": "Puls",
"mood": "Stimmung",
"compliance": "Therapietreue",
"general": "Allgemein",
"hrv": "HRV",
"sleep": "Schlaf",
"resting_hr": "Ruhepuls",
"steps": "Schritte",
"active_energy": "Aktive Energie",
"flights": "Stockwerke",
"distance": "Strecke",
"vo2_max": "VO₂ max",
"body_temp": "Körpertemperatur",
"medications": "Medikamente",
"anthropometrics": "Profil (Größe, Alter, Geschlecht)",
"walking_hr": "Geh-Herzfrequenz",
"respiratory_rate": "Atemfrequenz",
"spo2": "Sauerstoffsättigung",
"pulse_wave_velocity": "Pulswellengeschwindigkeit",
"vascular_age": "Gefäßalter",
"body_fat": "Körperfett",
"fat_mass": "Fettmasse",
"fat_free_mass": "Fettfreie Masse",
"muscle_mass": "Muskelmasse",
"lean_body_mass": "Magermasse",
"bone_mass": "Knochenmasse",
"total_body_water": "Körperwasser",
"bmi": "BMI",
"visceral_fat": "Viszeralfett",
"glucose": "Glukose",
"walking_steadiness": "Gehstabilität",
"walking_asymmetry": "Gangasymmetrie",
"walking_double_support": "Doppelstandphase",
"walking_step_length": "Schrittlänge",
"walking_speed": "Gehgeschwindigkeit",
"audio_env": "Umgebungslautstärke",
"audio_headphone": "Kopfhörer-Lautstärke",
"audio_event": "Lärm-Ereignisse",
"daylight": "Zeit im Tageslicht",
"skin_temp": "Hauttemperatur",
"workouts": "Workouts"
},
"window": {
"last7days": "letzte 7 Tage",
"last30days": "letzte 30 Tage",
"last90days": "letzte 90 Tage",
"lastYear": "Jahresrückblick",
"allTime": "gesamter Zeitraum"
},
"windowLabel": "Zeitraum",
"settingsAriaLabel": "Coach-Einstellungen",
"settingsTitle": "Coach-Einstellungen",
"settingsDescription": "Stell ein, wie der Coach mit dir spricht.",
"settingsToneLabel": "Tonfall",
"settingsToneWarm": "Warm",
"settingsToneNeutral": "Neutral",
"settingsToneConcise": "Knapp",
"settingsVerbosityLabel": "Antwortlänge",
"settingsVerbosityBrief": "Kurz",
"settingsVerbosityDefault": "Standard",
"settingsVerbosityDetailed": "Ausführlich",
"settingsSourcesPointer": "Welche Datenquellen der Coach nutzen darf und das Standard-Analysefenster verwaltest du direkt im Coach-Chat (Leiste „Worauf ich zugreife\").",
"settingsSourcesPointerLink": "Coach öffnen",
"settingsExcludeLabel": "Metriken ausschließen",
"settingsExcludeHint": "Der Coach sieht keine Daten der ausgewählten Metriken.",
"settingsContextLabel": "Kontext mitschicken",
"settingsContextHint": "Optionale Blöcke, auf die sich der Coach stützen kann. Schalte einen ab, wird der Block in jeder Antwort weggelassen.",
"settingsEvidenceLabel": "Belege standardmäßig zeigen",
"settingsEvidenceHint": "Die Belege-Box unter jeder Antwort automatisch öffnen.",
"settingsDefaultWindowLabel": "Standard-Analysezeitraum",
"settingsDefaultWindowHint": "Der Coach liest pro Chat diesen Zeitraum, sofern du im Drawer-Kopf nichts anderes auswählst.",
"settingsSave": "Speichern",
"settingsSaved": "Gespeichert.",
"settingsCancel": "Abbrechen",
"feedbackHelpful": "Hilfreich",
"feedbackUnhelpful": "Nicht ganz",
"feedbackThanks": "Danke für das Signal.",
"feedbackError": "Feedback konnte nicht gespeichert werden",
"dailyLimitTitle": "Heute-Limit erreicht",
"dailyLimitBody": "Heute-Limit erreicht; Reset um 00:00 UTC.",
"providerRateLimitTitle": "Provider rate-limited",
"providerRateLimitBody": "Provider ist temporär überlastet; Reset in ~5 min.",
"cluster": {
"cardio": {
"label": "Herz-Kreislauf",
"hint": "Blutdruck · Puls · HRV · Ruhe- & Geh-Herzfrequenz"
},
"body": {
"label": "Körperzusammensetzung",
"hint": "Gewicht · Körperfett · Muskeln · BMI"
},
"activity": {
"label": "Aktivität",
"hint": "Schritte · Energie · Distanz · VO₂max"
},
"workouts": {
"label": "Workouts",
"hint": "Läufe · Radtouren · Einheiten"
},
"sleep": {
"label": "Schlaf",
"hint": "Dauer · Phasen"
},
"mood": {
"label": "Stimmung",
"hint": "Tägliche Stimmungseinträge"
},
"glucose": {
"label": "Glukose",
"hint": "Nüchtern- & postprandiale Werte"
},
"medication": {
"label": "Medikation",
"hint": "Therapietreue · GLP-1-Kontext"
},
"mobility": {
"label": "Mobilität & Gang",
"hint": "Stabilität · Asymmetrie · Gangbild"
},
"environment": {
"label": "Umgebung",
"hint": "Lärm · Tageslicht · Hauttemperatur"
}
},
"settingsClustersLabel": "Daten, die der Coach sieht",
"settingsClustersHint": "Wähle, welche Datencluster der Coach lesen darf. Mehr Daten bedeuten reichhaltigere Antworten und einen größeren Prompt.",
"settingsClusterNoData": "Noch keine Daten",
"sourcesMemberCount": "{count} Werte"
},
"relativeJustNow": "gerade eben",
"relativeMinutesAgoOne": "vor {count} Minute",
"relativeMinutesAgoOther": "vor {count} Minuten",
"relativeHoursAgoOne": "vor {count} Stunde",
"relativeHoursAgoOther": "vor {count} Stunden",
"relativeDaysAgoOne": "vor {count} Tag",
"relativeDaysAgoOther": "vor {count} Tagen",
"navOverview": "Übersicht",
"navBloodPressure": "Blutdruck",
"navWeight": "Gewicht",
"navPulse": "Puls",
"navMood": "Stimmung",
"navMedication": "Medikamente",
"navBmi": "BMI",
"navSleep": "Schlaf",
"navHrv": "HRV",
"navRestingHr": "Ruhepuls",
"navOxygenSaturation": "Sauerstoff",
"navBodyTemperature": "Temperatur",
"navSteps": "Schritte",
"navActiveEnergy": "Aktive Energie",
"navAriaLabel": "Zu Abschnitt springen",
"pillScrollLeft": "Tabs nach links scrollen",
"pillScrollRight": "Tabs nach rechts scrollen",
"tabStrip": {
"vitalsParent": {
"label": "Vitalwerte",
"header": "Vital-Werte"
},
"bodyParent": {
"label": "Körper",
"header": "Körperzusammensetzung"
},
"activityParent": {
"label": "Aktivität",
"header": "Aktivität & Mobilität"
},
"cardiovascularParent": {
"label": "Herz-Kreislauf",
"header": "Herz-Kreislauf-Marker"
},
"hearingParent": {
"label": "Gehör",
"header": "Gehör & Lärmbelastung"
},
"environmentParent": {
"label": "Umwelt",
"header": "Umwelt"
},
"metabolicParent": {
"label": "Stoffwechsel",
"header": "Stoffwechsel"
}
},
"hrv": {
"title": "HRV",
"description": "Herzratenvariabilität im Verlauf — dein Erholungssignal des autonomen Nervensystems, nächtlich von Apple Watch und kompatiblen Wearables erfasst.",
"chartTitle": "Herzratenvariabilität",
"emptyState": {
"title": "Noch keine HRV-Werte",
"description": "HRV-Werte erscheinen hier, sobald die Apple Watch (oder ein kompatibles Withings-Gerät) nächtliche Messungen synchronisiert."
}
},
"restingHr": {
"title": "Ruhepuls",
"description": "Die tägliche Grundlinie deines Herzschlags — unterschieden vom Spot-Puls. Apple Health liefert einen Wert pro Tag.",
"chartTitle": "Ruhepuls",
"emptyState": {
"title": "Noch kein Ruhepuls",
"description": "Der Ruhepuls erscheint, sobald die Apple Watch oder ein kompatibles Withings-Gerät einen ruhigen Tag durchgetragen hat."
}
},
"oxygenSaturation": {
"title": "Sauerstoffsättigung",
"description": "Blutsauerstoff (SpO₂) — klinischer Normalbereich 95–100 %; Zielzonen sind am Chart hinterlegt.",
"chartTitle": "Sauerstoffsättigung",
"emptyState": {
"title": "Noch keine SpO₂-Werte",
"description": "SpO₂-Werte erscheinen, sobald ein kompatibles Wearable (Apple Watch, Withings ScanWatch) eine Messung erfasst."
}
},
"bodyTemperature": {
"title": "Körpertemperatur",
"description": "Verlauf der Körperkerntemperatur in Celsius. Hauttemperaturwerte von Withings laufen über eine separate Metrik.",
"chartTitle": "Körpertemperatur",
"emptyState": {
"title": "Noch keine Körpertemperatur",
"description": "Erfasse eine Körpertemperatur oder lass dein Wearable einen Wert synchronisieren — der Verlauf erscheint dann hier.",
"cta": "Körpertemperatur erfassen"
}
},
"steps": {
"title": "Schritte",
"description": "Tägliche Schrittzahl — eine Zeile pro Tag, aus Apple Health oder einem verbundenen Aktivitätsgerät.",
"chartTitle": "Schritte pro Tag",
"emptyState": {
"title": "Noch keine Schrittdaten",
"description": "Tägliche Schritt-Summen erscheinen hier, sobald Apple Health oder ein Aktivitätsgerät einen Tagesumfang synchronisiert."
}
},
"activeEnergy": {
"title": "Aktive Energie",
"description": "Tägliche aktive-Energie-Summe in Kilokalorien — eine Zeile pro Tag, aus Apple Health oder Withings-Aktivität.",
"chartTitle": "Aktive Energie",
"emptyState": {
"title": "Noch keine Aktive-Energie-Werte",
"description": "Aktive-Energie-Summen erscheinen hier, sobald Apple Health oder ein Withings-Aktivitätsgerät einen Tagesumfang synchronisiert."
}
},
"subPage": {
"loadError": "Diese Messgröße konnte gerade nicht geladen werden.",
"blutdruckDescription": "Dein systolisch-/diastolisch-Verlauf mit altersangepassten Zielbereichen und einer textbasierten Einschätzung.",
"gewichtDescription": "Gewichtsverlauf gegen das aus deiner Größe abgeleitete gesunde Band, mit Einschätzung.",
"pulsDescription": "Pulsverlauf gegenüber dem persönlichen Karvonen-Zielband, mit Einschätzung.",
"stimmungDescription": "Tägliche Stimmungswerte im Zeitverlauf mit einer textbasierten Einschätzung.",
"stimmungEmptyTitle": "Erste Stimmung erfassen",
"stimmungEmptyDescription": "Stimmungs-Insights erscheinen, sobald du einige Einträge protokolliert hast. Tippe unten, um zu beginnen.",
"stimmungEmptyAction": "Stimmungs-Tagebuch öffnen",
"medikamenteDescription": "Einnahme-Kalender pro Medikament plus eine textbasierte Einschätzung.",
"medikamenteEmptyTitle": "Erstes Medikament hinzufügen",
"medikamenteEmptyDescription": "Adhärenz-Insights brauchen mindestens ein erfasstes Medikament.",
"medikamenteEmptyAction": "Medikamente öffnen",
"bmiDescription": "BMI aus deinem Gewicht und deiner Größe abgeleitet, mit Einschätzung.",
"target": {
"adjustLink": "Zielbereich anpassen"
},
"primary": {
"avg30Label": "30-Tage-Durchschnitt",
"inRangeLabel": "Im Zielbereich",
"inRangeAria": "{pct}% der erfassten Tage im Zielbereich"
},
"lastMeasurement": {
"label": "Letzte Messung"
},
"explainer": {
"trigger": "Was ist {title}?",
"bloodPressureTitle": "Blutdruck",
"bloodPressureBody": "Der Blutdruck ist die Kraft, die das Blut auf die Gefäßwände ausübt, angegeben als systolisch zu diastolisch (Spitzenwert beim Herzschlag über dem Ruhewert dazwischen). Dauerhaft hohe Werte belasten Herz und Gefäße auf Dauer.",
"pulseTitle": "Puls",
"pulseBody": "Der Puls gibt an, wie oft das Herz pro Minute schlägt. Eine Einzelmessung spiegelt den Moment wider – in Ruhe liegt er meist bei 60–100 Schlägen pro Minute und steigt natürlicherweise bei Bewegung, Stress oder Koffein.",
"weightTitle": "Gewicht",
"weightBody": "Das Körpergewicht ist eines der einfachsten Signale für die langfristige Energiebilanz und die allgemeine Gesundheit. Der Trend über Wochen zählt weit mehr als ein einzelner Wert, der mit Flüssigkeit, Ernährung und Tageszeit schwankt.",
"bmiTitle": "Body-Mass-Index (BMI)",
"bmiBody": "Der BMI ist dein Gewicht geteilt durch deine Körpergröße zum Quadrat und ordnet dich einer groben Gewichtskategorie zu. Er ist ein Orientierungswert, keine Diagnose, und unterscheidet nicht zwischen Muskeln und Fett.",
"sleepTitle": "Schlaf",
"sleepBody": "Die Schlafdauer ist die tatsächlich geschlafene Zeit pro Nacht, aufgeteilt in Leicht-, Tief- und REM-Schlaf. Die meisten Erwachsenen brauchen etwa sieben bis neun Stunden; gleichmäßige Menge und Qualität unterstützen Erholung, Stimmung und Stoffwechsel.",
"moodTitle": "Stimmung",
"moodBody": "Die Stimmungserfassung hält auf einer einfachen Skala fest, wie du dich fühlst. Regelmäßiges Protokollieren zeigt Muster – wie Schlaf, Aktivität oder Medikamente mit dem Befinden zusammenhängen –, die ein einzelner Tag nie offenbart.",
"medicationsTitle": "Medikamenten-Therapietreue",
"medicationsBody": "Die Therapietreue zeigt, wie zuverlässig du deine Medikamente wie verordnet einnimmst, hier als Anteil der erwarteten Dosen, die du erfasst hast. Eine gleichmäßige Einnahme entscheidet oft darüber, ob eine Therapie wie beabsichtigt wirkt.",
"restingHrTitle": "Ruhepuls",
"restingHrBody": "Der Ruhepuls ist die Herzfrequenz in völliger Ruhe, meist über Nacht gemessen. Ein niedriger Ruhepuls deutet in der Regel auf eine bessere Herz-Kreislauf-Fitness hin, ein steigender Trend kann ein frühes Zeichen für Stress oder Krankheit sein.",
"hrvTitle": "Herzfrequenzvariabilität (HRV)",
"hrvBody": "Die HRV ist die kleine Schwankung der Zeit zwischen aufeinanderfolgenden Herzschlägen. Eine höhere Variabilität spiegelt meist ein gut erholtes, anpassungsfähiges Nervensystem wider, ein anhaltender Rückgang kann auf Erschöpfung, Stress oder mangelnde Erholung hinweisen.",
"oxygenSaturationTitle": "Sauerstoffsättigung (SpO₂)",
"oxygenSaturationBody": "Die SpO₂ ist der Prozentsatz der roten Blutkörperchen, die Sauerstoff transportieren. Werte von 95–100 % sind in Ruhe normal; Werte, die dauerhaft unter 90 % liegen, verdienen Aufmerksamkeit, kurze nächtliche Abfälle sind jedoch häufig.",
"bodyTemperatureTitle": "Körpertemperatur",
"bodyTemperatureBody": "Die Körpertemperatur spiegelt deinen Kernwärmezustand wider, normalerweise um 37 °C mit kleinen Tagesschwankungen. Ein anhaltender Anstieg kann auf eine Infektion hindeuten; nächtliche Messungen am Handgelenk erfassen vor allem relative Änderungen, keinen klinischen Wert.",
"activeEnergyTitle": "Aktive Energie",
"activeEnergyBody": "Die aktive Energie sind die Kalorien, die du durch Bewegung verbrennst, zusätzlich zum Grundumsatz in Ruhe. Sie ist ein direktes Maß dafür, wie körperlich aktiv dein Tag war.",
"workoutsTitle": "Workouts",
"workoutsBody": "Workouts sind die strukturierten Trainingseinheiten, die deine Geräte mit Art, Dauer und Energie aufzeichnen. Ihre Erfassung zeigt, wie sich regelmäßiges Training über Wochen summiert und wie es mit deinen anderen Gesundheitssignalen zusammenhängt.",
"respiratoryRateTitle": "Atemfrequenz",
"respiratoryRateBody": "Die Atemfrequenz ist die Anzahl der Atemzüge pro Minute. In Ruhe atmen die meisten Erwachsenen etwa zwölf- bis zwanzigmal pro Minute; ein anhaltender Anstieg kann mit Krankheit, Anstrengung oder Stress einhergehen.",
"bodyWaterTitle": "Gesamtkörperwasser",
"bodyWaterBody": "Das Gesamtkörperwasser ist der Anteil deines Körpergewichts, der aus Flüssigkeit in und um die Zellen besteht. Es schwankt mit Flüssigkeitshaushalt, Ernährung und Aktivität, daher sagt der Trend über Wochen mehr aus als ein einzelner Wert.",
"boneMassTitle": "Knochenmasse",
"boneMassBody": "Die Knochenmasse ist das geschätzte Gewicht der Mineralien in deinem Skelett. Waagengestützte Schätzungen sind ungefähr, doch ein gleichbleibender oder steigender Trend unterstützt die langfristige Knochenstärke.",
"fatFreeMassTitle": "Fettfreie Masse",
"fatFreeMassBody": "Die fettfreie Masse ist alles in deinem Körper, das kein Fett ist — Muskeln, Knochen, Organe und Wasser. Sie zu halten oder aufzubauen, während das Gewicht sinkt, deutet meist auf eine gesündere Körperzusammensetzung hin.",
"fatMassTitle": "Fettmasse",
"fatMassBody": "Die Fettmasse ist das Gesamtgewicht des Körperfetts. Etwas Fett ist für Hormone und Energiespeicher unverzichtbar, doch zu viel — besonders am Bauch — erhöht das langfristige Gesundheitsrisiko.",
"muscleMassTitle": "Muskelmasse",
"muscleMassBody": "Die Muskelmasse ist das geschätzte Gewicht der Muskeln in deinem Körper. Mehr Muskeln unterstützen Kraft, Stoffwechsel und Beweglichkeit und müssen mit zunehmendem Alter aktiv erhalten werden.",
"visceralFatTitle": "Viszeralfett",
"visceralFatBody": "Viszeralfett ist das Fett, das tief im Bauchraum um die Organe gespeichert wird. Anders als das Unterhautfett ist ein hoher Wert eng mit Herzkrankheiten und Typ-2-Diabetes verbunden, daher ist niedriger meist besser.",
"leanBodyMassTitle": "Magermasse",
"leanBodyMassBody": "Die Magermasse ist dein Gesamtgewicht abzüglich des Körperfetts — Muskeln, Knochen, Organe und Wasser zusammen. Sie neben dem Gewicht zu verfolgen zeigt, ob Veränderungen aus Muskeln oder aus Fett stammen.",
"flightsClimbedTitle": "Etagen gestiegen",
"flightsClimbedBody": "Die gestiegenen Etagen zählen die Stockwerke, die du täglich nach oben gehst, wobei eine Etage etwa drei Metern Höhe entspricht. Es ist ein einfacher Marker für Alltagsaktivität und Beinarbeit.",
"walkingDistanceTitle": "Geh- + Laufstrecke",
"walkingDistanceBody": "Die Geh- und Laufstrecke ist die Strecke, die du täglich zu Fuß zurücklegst. Sie ergänzt die Schrittzahl, indem sie zeigt, wie weit du dich bewegt hast, nicht nur wie oft du getreten bist.",
"walkingSteadinessTitle": "Gehstabilität",
"walkingSteadinessBody": "Die Gehstabilität schätzt, wie stabil und ausgewogen dein Gangbild ist, eingeteilt von OK bis niedrig. Ein niedriger Wert deutet auf ein höheres Sturzrisiko hin und sollte ärztlich besprochen werden.",
"walkingHeartRateTitle": "Herzfrequenz beim Gehen",
"walkingHeartRateBody": "Die Herzfrequenz beim Gehen ist dein durchschnittlicher Puls bei einem gleichmäßigen Spaziergang. Ein über die Zeit niedrigerer Wert spiegelt bei gleicher Anstrengung oft eine bessere Herz-Kreislauf-Fitness wider.",
"walkingAsymmetryTitle": "Gangasymmetrie",
"walkingAsymmetryBody": "Die Gangasymmetrie ist der Anteil der Zeit, in der deine Schritte zwischen linkem und rechtem Bein ungleichmäßig sind. Ein höherer Prozentsatz kann auf Schmerzen, eine Verletzung oder ein Gangproblem hindeuten, das näher betrachtet werden sollte.",
"doubleSupportTimeTitle": "Doppelunterstützungszeit",
"doubleSupportTimeBody": "Die Doppelunterstützungszeit ist der Anteil jedes Gehzyklus, in dem beide Füße gleichzeitig den Boden berühren. Ein höherer Prozentsatz bedeutet meist ein vorsichtigeres, weniger stabiles Gangbild.",
"stepLengthTitle": "Schrittlänge",
"stepLengthBody": "Die Schrittlänge ist der durchschnittliche Abstand von einem Fußauftritt zum nächsten. Eine über die Zeit kürzere Schrittlänge kann Müdigkeit, Vorsicht oder eine veränderte Beweglichkeit widerspiegeln.",
"walkingSpeedTitle": "Gehgeschwindigkeit",
"walkingSpeedBody": "Die Gehgeschwindigkeit ist, wie schnell du dich auf ebenem Untergrund fortbewegst. Sie ist ein gut untersuchter Marker für allgemeine Gesundheit und Beweglichkeit, und ein gleichbleibendes oder steigendes Tempo ist ein gutes Zeichen.",
"pulseWaveVelocityTitle": "Pulswellengeschwindigkeit",
"pulseWaveVelocityBody": "Die Pulswellengeschwindigkeit misst, wie schnell die Druckwelle jedes Herzschlags durch deine Arterien läuft. Eine schnellere Welle weist auf steifere Arterien hin, was mit einem höheren Herz-Kreislauf-Risiko verbunden ist.",
"vascularAgeTitle": "Gefäßalter",
"vascularAgeBody": "Das Gefäßalter schätzt anhand der Arteriensteifigkeit, wie alt sich deine Arterien im Vergleich zu deinem tatsächlichen Alter verhalten. Ein Gefäßalter unter dem echten Alter deutet auf gesündere Blutgefäße hin.",
"environmentalAudioTitle": "Umgebungslautstärke",
"environmentalAudioBody": "Die Umgebungslautstärke erfasst die Lautstärke deiner Umwelt in Dezibel. Anhaltende Belastung über etwa 70 dB kann das Gehör mit der Zeit schädigen, daher sind niedrigere Tagesmittel sicherer.",
"headphoneAudioTitle": "Kopfhörerlautstärke",
"headphoneAudioBody": "Die Kopfhörerlautstärke erfasst in Dezibel, wie laut du über Ohrhörer oder Kopfhörer hörst. Die Lautstärke niedrig zu halten und Pausen einzulegen schützt dein Gehör langfristig.",
"audioEventsTitle": "Laute Geräuschereignisse",
"audioEventsBody": "Laute Geräuschereignisse markieren Momente, in denen der Lärm um dich herum ein Niveau erreicht hat, das bei ausreichender Belastung das Gehör schädigen kann. Häufige Ereignisse sind ein Hinweis, eine ruhigere Umgebung oder Gehörschutz zu suchen.",
"daylightTitle": "Zeit im Tageslicht",
"daylightBody": "Die Zeit im Tageslicht ist, wie lange du dich täglich im Freien im Licht aufhältst. Regelmäßiges Tageslicht unterstützt einen gesunden Schlaf-Wach-Rhythmus und die Stimmung, und Zeit im Freien ist mit der Augengesundheit verbunden.",
"bloodGlucoseTitle": "Blutzucker",
"bloodGlucoseBody": "Der Blutzucker ist die Zuckermenge in deinem Blut, die wichtigste Energiequelle des Körpers. Er steigt nach dem Essen und pendelt sich zwischen den Mahlzeiten ein; dauerhaft hohe Werte können auf Diabetes oder Prädiabetes hinweisen.",
"skinTemperatureTitle": "Hauttemperatur",
"skinTemperatureBody": "Die Hauttemperatur ist hier die kleine nächtliche Abweichung deiner Handgelenkstemperatur von deinem eigenen Ausgangswert, keine absolute Fiebermessung. Veränderungen können Schlaf, Umgebung, Krankheit oder Zyklusphase widerspiegeln.",
"cardioFitnessTitle": "Cardiofitness (VO₂max)",
"cardioFitnessBody": "VO₂max gibt an, wie viel Sauerstoff dein Körper bei maximaler Anstrengung verwerten kann. Es ist der aussagekräftigste Laborwert für die Ausdauerfitness; ein höherer oder steigender Wert spricht für eine gute Herz-Kreislauf-Gesundheit.",
"cardioRecoveryTitle": "Erholungspuls",
"cardioRecoveryBody": "Der Erholungspuls gibt an, um wie viele Schläge pro Minute dein Puls in der ersten Minute nach dem Ende einer anstrengenden Belastung fällt. Ein größerer Abfall bedeutet, dass sich dein Herz schneller beruhigt — ein Zeichen guter Fitness.",
"wristTemperatureTitle": "Handgelenktemperatur",
"wristTemperatureBody": "Die Handgelenktemperatur wird im Schlaf gemessen. Apple zeigt sie als Abweichung von deinem persönlichen Ausgangswert; ein gleichmäßiger Wert ist normal, ein anhaltender Anstieg kann auf Krankheit, intensives Training oder eine Zyklusveränderung hindeuten.",
"fallsTitle": "Stürze",
"fallsBody": "Hier werden die von deiner Apple Watch erkannten schweren Stürze gezählt. Null ist das Ziel; eine steigende Zahl ist ein Hinweis auf ein erhöhtes Sturzrisiko, das du — besonders im höheren Alter — mit einer Ärztin oder einem Arzt besprechen solltest.",
"sixMinuteWalkTitle": "6-Minuten-Gehstrecke",
"sixMinuteWalkBody": "Dies ist Apples Schätzung, wie weit du in sechs Minuten gehen könntest — ein etablierter klinischer Test für Mobilität und kardiopulmonale Ausdauer. Eine gleichbleibende oder steigende Strecke ist ein gutes Zeichen.",
"stairAscentSpeedTitle": "Treppensteig-Tempo",
"stairAscentSpeedBody": "Dies gibt an, wie schnell du eine Treppe hinaufgehst. Es ist ein empfindlicher Marker für Beinkraft und Mobilität — ein gleichbleibendes oder steigendes Tempo ist gut, ein sinkendes solltest du im Blick behalten.",
"stairDescentSpeedTitle": "Treppab-Tempo",
"stairDescentSpeedBody": "Dies gibt an, wie schnell du eine Treppe hinabgehst. Zusammen mit dem Steig-Tempo zeigt es Beinkontrolle und Gleichgewicht — ein gleichmäßiges Tempo ist gut, ein sinkendes solltest du im Blick behalten.",
"breathingDisturbancesTitle": "Atemaussetzer im Schlaf",
"breathingDisturbancesBody": "Deine Apple Watch kann schätzen, wie oft deine Atmung im Schlaf unterbrochen war. Ein niedriger Index ist besser; ein von Apple als erhöht eingestufter Wert — vor allem über viele Nächte — sollte mit einer Ärztin oder einem Arzt besprochen werden.",
"readinessBody": "Die Tagesform ist ein einzelner Tageswert dafür, wie bereit dein Körper für den Tag ist — er verbindet Ruhepuls, Herzfrequenzvariabilität, Schlaf und die Beständigkeit deiner letzten Nächte. Ein höherer Wert heißt erholt und belastbar; ein niedrigerer ist ein sanfter Hinweis, einen Gang zurückzuschalten.",
"sleepScoreBody": "Dein Schlafscore fasst eine ganze Nacht in einer Zahl zusammen — aus Dauer, Effizienz, Regelmäßigkeit und der Verteilung von Leicht-, Tief- und REM-Schlaf. Achte eher auf das Muster über Wochen als auf einen perfekten Wert in einer einzelnen Nacht.",
"recoveryBody": "Die Erholung zeigt, wie gut sich dein Körper regeneriert hat — gestützt auf nächtliche Signale wie Herzfrequenzvariabilität und Ruhepuls. Ein hoher Wert ist grünes Licht, mehr zu geben; ein niedrigerer deutet an, dass dein System noch aufbaut.",
"strainBody": "Die Belastung erfasst, wie viel kardiovaskuläre und körperliche Last du deinem Körper zugemutet hast — von Workouts bis zu einem aktiven Tag auf den Beinen. Sobald genügend Verlauf vorliegt, wird sie an deinem eigenen üblichen Aufwand gemessen, nicht an einem fremden Maßstab.",
"stressBody": "Stress ist hier eine Schätzung der körperlichen Last auf deinem Nervensystem, vor allem aus Mustern der Herzfrequenzvariabilität abgelesen — nicht daraus, wie du dich bewusst fühlst. Ein niedrigerer Wert deutet auf einen ruhigen, gut regulierten Zustand hin; ein höherer ist eine Einladung, Erholung einzuplanen.",
"recoveryPageTitle": "Erholung",
"recoveryPageBody": "Die Erholung fasst die nächtlichen Signale deines Wearables zusammen – Recharge, Belastung, Load sowie deine Herzfrequenz- und Energiewerte des Tages – und zeigt, wie gut sich dein Körper erholt hat. Achte eher auf das Muster über mehrere Tage als auf einen einzelnen Wert; ein schwächerer Wert ist eine Einladung, kürzerzutreten, kein Alarm."
},
"stats": {
"label": "Zusammenfassende Statistik",
"min": "Min",
"max": "Max",
"median": "Median",
"mean": "Mittelwert"
},
"showAllValues": "Alle Werte anzeigen",
"valuesPageTitle": "{metric} — alle Werte",
"valuesPageDescription": "Jeder einzelne Wert hinter dieser Kennzahl. Einträge lassen sich direkt bearbeiten oder entfernen.",
"diversity": {
"trigger": "Messhinweis",
"weekday": "Die meisten deiner {metric}-Werte fallen auf einen Wochentag. Messungen an anderen Tagen ergeben ein vollständigeres Bild.",
"timeOfDay": "Die meisten deiner {metric}-Werte fallen auf eine ähnliche Tageszeit. Unterschiedliche Zeiten ergeben ein vollständigeres Bild."
},
"valuesBack": "Zurück zu Insights",
"valuesBackToMetric": "Zurück zu {metric}",
"scoresBack": "Zurück zu Insights"
},
"sleep": {
"title": "Schlaf",
"description": "Phasen-Aufschlüsselung und nächtliche Dauer – gezogen aus Apple Health.",
"headlineTitle": "Durchschnitt pro Nacht",
"headlineCaption": "Gemittelt über {count} Nächte – {suffix}",
"headlineCaptionSuffix": "pro Nacht",
"compositionTitle": "Phasen-Verteilung",
"compositionSubtitle": "Letzte {nights} Nächte",
"compositionAriaLabel": "Schlafphasen-Verteilung über {nights} Nächte",
"hypnogram": {
"title": "Letzte Nacht",
"subtitle": "{asleep} geschlafen",
"ariaLabel": "Schlafphasen-Verlauf der letzten Nacht: {asleep} geschlafen, {awakenings} Wachphasen",
"asleepTotal": "Geschlafen {value}",
"inBedTotal": "Im Bett {value}",
"awakenings": "{count} Wachphasen",
"source": "Quelle: {source}"
},
"stages": {
"deep": "Tief",
"rem": "REM",
"core": "Kern",
"asleep": "Schlafend",
"awake": "Wach",
"inBed": "Im Bett",
"unavailable": "Noch keine Phasen-Daten – Apple-Health-Sync für Schlafphasen folgt mit v1.5."
},
"empty": {
"title": "Noch keine Schlafdaten",
"description": "Apple-Health-Sync folgt mit v1.5 und füllt diese Ansicht automatisch.",
"action": "Geräte verwalten"
},
"debt": {
"title": "Schlafschuld",
"value": "{hours} Std. {minutes} Min. zu wenig",
"caption": "Kumuliertes Defizit der letzten {nights} Nächte",
"clearValue": "Ausgeglichen",
"clearCaption": "Kein aufgelaufenes Defizit über die letzten {nights} Nächte",
"learning": "Dein Schlaf wird noch erfasst — {counted} Nächte bisher, noch {remaining} für eine verlässliche Bilanz."
},
"chronotype": {
"title": "Chronotyp",
"learning": "Dein Rhythmus wird noch erfasst — {counted} von {total} freien Nächten. Ein Chronotyp braucht ein paar weckerfreie Morgen, um aussagekräftig zu sein.",
"midSleepCaption": "Schlafmitte an freien Tagen gegen {clock}",
"advancedToggle": "Mehr Details",
"socialJetlagValue": "{hours} Std. {minutes} Min. sozialer Jetlag",
"socialJetlagCaption": "Der Unterschied zwischen deinem Schlaf an Arbeits- und freien Tagen — wie eine kleine wöchentliche Zeitzonenverschiebung.",
"msfScValue": "Korrigierte Schlafmitte {clock}",
"msfScCaption": "Bereinigt um den Schlaf, den du am Wochenende nachholst (MSFsc).",
"dayTypeNote": "Freie Tage werden als Wochenenden angenommen, bis eine Tagestyp-Erfassung ergänzt wird.",
"band": {
"extreme_early": "Ausgeprägter Morgentyp",
"early": "Morgentyp",
"intermediate": "Mischtyp",
"late": "Abendtyp",
"extreme_late": "Ausgeprägter Abendtyp"
}
},
"rhythm": {
"loadError": "Dein Schlafrhythmus konnte gerade nicht geladen werden. Er erscheint wieder, sobald die Verbindung steht."
}
},
"correlations": "Korrelationen",
"medicationCompliance": "Therapietreue",
"dayStreak": "{count} Tage Serie",
"dayStreakOne": "{count} Tag Serie",
"compliance7d": "Therapietreue (7 Tage)",
"compliance30d": "Therapietreue (30 Tage)",
"taken": "genommen",
"skipped": "übersprungen",
"missed": "verpasst",
"generalStatusBadge": {
"good": "Gut",
"watch": "Beobachten",
"critical": "Kritisch"
},
"assessmentTitle": "Einschätzung",
"assessmentShowMore": "Mehr anzeigen",
"assessmentShowLess": "Weniger anzeigen",
"bloodPressureSectionTitle": "Blutdruck",
"weightSectionTitle": "Gewicht",
"pulseSectionTitle": "Puls",
"bmiSectionTitle": "BMI",
"complianceNoData": "Keine Daten zur Therapietreue verfügbar",
"generate": "Neue Analyse erstellen",
"moodSectionTitle": "Stimmung",
"confidence": "Konfidenz",
"cached": "Gecacht",
"emptyState": {
"bloodPressure": {
"title": "Noch keine Blutdruckwerte",
"description": "Sobald du Blutdruck loggst, erscheinen hier Trend, Zielbereichs-Anteil und WHO-Klassifizierung.",
"cta": "Blutdruck loggen"
},
"weight": {
"title": "Noch keine Gewichtswerte",
"description": "Logge ein Gewicht, und Verlauf, gleitender Durchschnitt und Zielbereich erscheinen automatisch.",
"cta": "Gewicht loggen"
},
"pulse": {
"title": "Noch keine Pulswerte",
"description": "Logge einen Puls, dann erscheinen Ruhepuls, HRV und VO₂ max in dieser Ansicht.",
"cta": "Puls loggen"
},
"bmi": {
"title": "BMI noch nicht berechnet",
"description": "Sobald Größe und mindestens ein Gewichtswert vorliegen, erscheint hier der BMI-Verlauf samt WHO-Zonen.",
"cta": "Gewicht loggen"
},
"mood": {
"title": "Noch keine Stimmungseinträge",
"description": "Logge eine Stimmung, dann erscheinen Verlauf, Stabilitätsband und Korrelationen.",
"cta": "Stimmung loggen"
},
"medication": {
"title": "Noch keine Medikamente angelegt",
"description": "Lege ein Medikament an, dann erscheinen Therapietreue, Wirkstoffspiegel und Eskalations-Verlauf.",
"cta": "Medikament hinzufügen"
},
"sleep": {
"title": "Noch keine Schlafwerte",
"description": "Sobald Schlafdaten vorliegen (manuell oder via Withings / Apple Health), erscheint hier der nächtliche Stadien-Verlauf.",
"cta": "Withings verbinden"
}
},
"navWorkouts": "Workouts",
"workouts": {
"title": "Workouts",
"description": "Letzte Läufe, Touren, Spaziergänge und Krafteinheiten — quellenübergreifend entdoppelt zwischen Apple Watch und Withings.",
"emptyState": {
"title": "Noch keine Workouts",
"description": "Öffne die Apple-Health-App auf dem iPhone, damit Workouts hier synchronisiert werden. Withings-Aktivitätsimport pflegt Geh- und Radtouren mit ein."
},
"row": {
"duration": "Dauer",
"distance": "Distanz",
"energy": "Aktive Energie"
},
"detail": {
"backToList": "Zurück zu Workouts",
"statsTitle": "Werte",
"statsDuration": "Dauer",
"statsDistance": "Distanz",
"statsActiveEnergy": "Aktive Energie",
"statsAvgHr": "Ø Herzfrequenz",
"statsMaxHr": "Max. Herzfrequenz",
"statsMinHr": "Min. Herzfrequenz",
"statsStepCount": "Schritte",
"statsElevation": "Höhenmeter",
"statsPace": "Pace",
"statsSource": "Quelle",
"routeTitle": "Strecke",
"routeUnavailable": "Für dieses Workout liegt keine GPS-Strecke vor.",
"hrChartTitle": "Herzfrequenz",
"hrChartUnavailable": "Sekundengenaue Herzfrequenz-Werte werden für dieses Workout nicht gespeichert.",
"notFound": "Workout nicht gefunden.",
"loading": "Workout wird geladen…"
},
"sport": {
"walking": "Gehen",
"running": "Laufen",
"cycling": "Radfahren",
"hiking": "Wandern",
"swimming": "Schwimmen",
"rowing": "Rudern",
"elliptical": "Crosstrainer",
"stairClimber": "Stepper",
"yoga": "Yoga",
"mindAndBody": "Mind and Body",
"strength": "Kraft",
"hiit": "HIIT",
"dance": "Tanz",
"golf": "Golf",
"tennis": "Tennis",
"basketball": "Basketball",
"soccer": "Fußball",
"crossTraining": "Cross-Training",
"mixedCardio": "Mixed Cardio",
"other": "Sonstiges"
}
},
"bloodGlucose": {
"title": "Blutzucker",
"description": "Deine Blutzuckerwerte im Zeitverlauf, in mg/dL.",
"chartTitle": "Blutzucker",
"medianLabel": "Median Blutzucker",
"emptyState": {
"title": "Noch keine Glukosedaten",
"description": "Blutzuckerwerte erscheinen hier, sobald du einen erfasst oder ein Gerät synchronisiert."
},
"clinical": {
"title": "Glukose-Überblick",
"subtitle": "Ein Blick auf deine letzten {days} Tage, aus {count} Messungen.",
"spotCaveat": "Das sind Schätzungen aus einzelnen Stichproben-Messungen, kein Profil eines kontinuierlichen Sensors – lies sie als Richtung, nicht als klinisches Urteil.",
"learningTitle": "Lerne deine Glukose noch kennen",
"learningBody": "Bisher sind das {count} über {days}. Mit etwas mehr Verlauf wird das Bild klarer – mess weiter oder lass es ein verbundenes Gerät ergänzen.",
"learningBodyEmpty": "Sobald ein paar Messungen vorliegen – von dir erfasst oder von einem Gerät synchronisiert – nehmen Zeit-im-Zielbereich, Durchschnitt und Schwankung hier Gestalt an.",
"readingsCount": "{count} Messungen",
"readingsCountOne": "1 Messung",
"daysCount": "{days} Tage",
"daysCountOne": "1 Tag",
"tir": {
"title": "Zeit im Zielbereich",
"caption": "Anteil der Messungen je Bereich (70–180 mg/dl ist das Ziel).",
"veryLow": "Sehr niedrig",
"low": "Niedrig",
"inRange": "Im Zielbereich",
"high": "Hoch",
"veryHigh": "Sehr hoch",
"ariaLabel": "Zeit im Zielbereich: {tir}% im Ziel, {below}% darunter, {above}% darüber.",
"empty": "Noch keine Messungen für das Diagramm."
},
"gmi": {
"label": "Glukose-Management-Indikator",
"help": "Eine HbA1c-ähnliche Schätzung aus deiner durchschnittlichen Glukose."
},
"eA1c": {
"label": "Geschätzter HbA1c",
"help": "Eine HbA1c-Schätzung aus deinem mittleren Glukosewert (ADAG)."
},
"mean": {
"label": "Durchschnittliche Glukose"
},
"cv": {
"label": "Schwankung",
"steady": "Stabil",
"unstable": "Instabil",
"help": "Variationskoeffizient. Ab 36 % gilt die Glukose als instabil; niedriger ist stabiler."
},
"advanced": {
"toggle": "Erweiterte Indizes",
"intro": "Forschungsnahe Kennzahlen für den genaueren Blick. Jede fasst deine Messungen zu einer risikogewichteten Zahl zusammen.",
"jIndex": {
"label": "J-Index",
"help": "Ein einzelner Wert aus Durchschnitt und Streuung – niedriger steht für engere Kontrolle."
},
"lbgi": {
"label": "Risiko für Tiefwerte (LBGI)",
"help": "Kovatchevs Index, gewichtet danach, wie oft und wie tief Werte ins Tief rutschen."
},
"hbgi": {
"label": "Risiko für Hochwerte (HBGI)",
"help": "Kovatchevs Index, gewichtet danach, wie oft und wie hoch Werte steigen."
},
"byContext": {
"title": "Nach Kontext",
"fasting": "Nüchtern",
"postprandial": "Nach dem Essen",
"random": "Beliebig",
"bedtime": "Vor dem Schlafen",
"readingsShort": "{count} Messungen",
"readingsShortOne": "1 Messung"
}
}
}
},
"navBloodGlucose": "Glukose",
"totalBodyWater": {
"title": "Gesamtkörperwasser",
"description": "Dein Gesamtkörperwasser im Zeitverlauf, in Kilogramm.",
"chartTitle": "Gesamtkörperwasser",
"emptyState": {
"title": "Noch keine Körperwasserdaten",
"description": "Körperwasserwerte erscheinen hier, sobald eine Körperanalysewaage synchronisiert."
}
},
"navTotalBodyWater": "Körperwasser",
"boneMass": {
"title": "Knochenmasse",
"description": "Deine Knochenmasse im Zeitverlauf, in Kilogramm.",
"chartTitle": "Knochenmasse",
"emptyState": {
"title": "Noch keine Knochenmassedaten",
"description": "Knochenmassewerte erscheinen hier, sobald eine Körperanalysewaage synchronisiert."
}
},
"navBoneMass": "Knochenmasse",
"flightsClimbed": {
"title": "Treppen",
"description": "Stockwerke, die du jeden Tag erklommen hast.",
"chartTitle": "Treppen pro Tag",
"emptyState": {
"title": "Noch keine Treppendaten",
"description": "Treppenwerte erscheinen hier, sobald Apple Health einen Tag synchronisiert."
}
},
"navFlightsClimbed": "Treppen",
"walkingRunningDistance": {
"title": "Geh- + Laufstrecke",
"description": "Geh- und Laufstrecke pro Tag, in Kilometern.",
"chartTitle": "Strecke pro Tag",
"emptyState": {
"title": "Noch keine Streckendaten",
"description": "Tagesstrecke erscheint hier, sobald Apple Health einen Tag synchronisiert."
}
},
"navWalkingRunningDistance": "Strecke",
"fatFreeMass": {
"title": "Fettfreie Masse",
"description": "Deine fettfreie Masse im Zeitverlauf, in Kilogramm.",
"chartTitle": "Fettfreie Masse",
"emptyState": {
"title": "Noch keine Daten zur fettfreien Masse",
"description": "Werte erscheinen hier, sobald eine Körperanalysewaage synchronisiert."
}
},
"navFatFreeMass": "Fettfreie Masse",
"fatMass": {
"title": "Fettmasse",
"description": "Deine Fettmasse im Zeitverlauf, in Kilogramm.",
"chartTitle": "Fettmasse",
"emptyState": {
"title": "Noch keine Fettmassedaten",
"description": "Fettmassewerte erscheinen hier, sobald eine Körperanalysewaage synchronisiert."
}
},
"navFatMass": "Fettmasse",
"muscleMass": {
"title": "Muskelmasse",
"description": "Deine Muskelmasse im Zeitverlauf, in Kilogramm.",
"chartTitle": "Muskelmasse",
"emptyState": {
"title": "Noch keine Muskelmassedaten",
"description": "Muskelmassewerte erscheinen hier, sobald eine Körperanalysewaage synchronisiert."
}
},
"navMuscleMass": "Muskelmasse",
"skinTemperature": {
"title": "Hauttemperatur",
"description": "Deine Handgelenk-Hauttemperatur im Zeitverlauf, in Grad Celsius.",
"chartTitle": "Hauttemperatur",
"emptyState": {
"title": "Noch keine Hauttemperaturdaten",
"description": "Werte erscheinen hier, sobald ein Wearable die nächtliche Temperatur synchronisiert."
}
},
"navSkinTemperature": "Hauttemperatur",
"pulseWaveVelocity": {
"title": "Pulswellengeschwindigkeit",
"description": "Deine arterielle Pulswellengeschwindigkeit im Zeitverlauf, in m/s — höhere Werte deuten auf steifere Arterien hin.",
"chartTitle": "Pulswellengeschwindigkeit",
"emptyState": {
"title": "Noch keine Daten",
"description": "Werte erscheinen hier, sobald ein kompatibles Withings-Gerät synchronisiert."
}
},
"navPulseWaveVelocity": "Pulswellengeschwindigkeit",
"vascularAge": {
"title": "Gefäßalter",
"description": "Dein geschätztes Gefäßalter im Zeitverlauf, in Jahren.",
"chartTitle": "Gefäßalter",
"emptyState": {
"title": "Noch keine Gefäßalterdaten",
"description": "Schätzungen erscheinen hier, sobald ein kompatibles Withings-Gerät synchronisiert."
}
},
"navVascularAge": "Gefäßalter",
"visceralFat": {
"title": "Viszeralfett",
"description": "Dein Viszeralfett-Index im Zeitverlauf.",
"chartTitle": "Viszeralfett",
"emptyState": {
"title": "Noch keine Viszeralfettdaten",
"description": "Werte erscheinen hier, sobald eine kompatible Körperanalysewaage synchronisiert."
}
},
"navVisceralFat": "Viszeralfett",
"audioExposureEnv": {
"title": "Umgebungslärm",
"description": "Dein täglicher mittlerer Umgebungs-Geräuschpegel, in dBA.",
"chartTitle": "Umgebungs-Geräuschpegel",
"emptyState": {
"title": "Noch keine Umgebungslärmdaten",
"description": "Pegelwerte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navAudioExposureEnv": "Umgebungslärm",
"audioExposureHeadphone": {
"title": "Kopfhörerpegel",
"description": "Dein täglicher mittlerer Kopfhörerpegel, in dBA.",
"chartTitle": "Kopfhörer-Lautstärke",
"emptyState": {
"title": "Noch keine Kopfhörerdaten",
"description": "Pegelwerte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navAudioExposureHeadphone": "Kopfhörerpegel",
"timeInDaylight": {
"title": "Zeit im Tageslicht",
"description": "Minuten im Tageslicht pro Tag.",
"chartTitle": "Tageslicht pro Tag",
"emptyState": {
"title": "Noch keine Tageslichtdaten",
"description": "Tageslichtwerte erscheinen hier, sobald Apple Health einen Tag synchronisiert."
}
},
"navTimeInDaylight": "Tageslicht",
"walkingSteadiness": {
"title": "Gangstabilität",
"description": "Deine Gangstabilität im Zeitverlauf, in Prozent.",
"chartTitle": "Gangstabilität",
"emptyState": {
"title": "Noch keine Gangstabilitätsdaten",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navWalkingSteadiness": "Gangstabilität",
"audioExposureEvent": {
"title": "Laute Lärmereignisse",
"description": "Tage mit einem lauten Umgebungsereignis.",
"chartTitle": "Lärmereignisse pro Tag",
"emptyState": {
"title": "Noch keine Lärmereignisdaten",
"description": "Lärmereignisse erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navAudioExposureEvent": "Lärmereignisse",
"respiratoryRate": {
"title": "Atemfrequenz",
"description": "Deine Atemfrequenz im Zeitverlauf, in Atemzügen pro Minute.",
"chartTitle": "Atemfrequenz",
"emptyState": {
"title": "Noch keine Atemfrequenzdaten",
"description": "Werte erscheinen hier, sobald Apple Health Schlaf- oder Trainingsatmung synchronisiert."
}
},
"navRespiratoryRate": "Atemfrequenz",
"leanBodyMass": {
"title": "Magermasse",
"description": "Deine Magermasse im Zeitverlauf, in Kilogramm.",
"chartTitle": "Magermasse",
"emptyState": {
"title": "Noch keine Magermassedaten",
"description": "Werte erscheinen hier, sobald eine Körperanalysewaage synchronisiert."
}
},
"navLeanBodyMass": "Magermasse",
"walkingHeartRateAverage": {
"title": "Geh-Puls",
"description": "Dein durchschnittlicher Puls beim Gehen, in bpm.",
"chartTitle": "Durchschnittlicher Geh-Puls",
"emptyState": {
"title": "Noch keine Geh-Puls-Daten",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navWalkingHeartRateAverage": "Geh-Puls",
"walkingAsymmetry": {
"title": "Gangasymmetrie",
"description": "Deine Gangasymmetrie im Zeitverlauf, in Prozent.",
"chartTitle": "Gangasymmetrie",
"emptyState": {
"title": "Noch keine Gangasymmetriedaten",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navWalkingAsymmetry": "Gangasymmetrie",
"walkingDoubleSupport": {
"title": "Doppelstandphase",
"description": "Der Anteil jedes Schritts mit beiden Füßen am Boden, in Prozent.",
"chartTitle": "Doppelstandphase",
"emptyState": {
"title": "Noch keine Doppelstanddaten",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navWalkingDoubleSupport": "Doppelstandphase",
"walkingStepLength": {
"title": "Schrittlänge",
"description": "Deine durchschnittliche Schrittlänge im Zeitverlauf, in Metern.",
"chartTitle": "Schrittlänge",
"emptyState": {
"title": "Noch keine Schrittlängendaten",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navWalkingStepLength": "Schrittlänge",
"walkingSpeed": {
"title": "Gehgeschwindigkeit",
"description": "Deine durchschnittliche Gehgeschwindigkeit im Zeitverlauf, in km/h.",
"chartTitle": "Gehgeschwindigkeit (km/h)",
"emptyState": {
"title": "Noch keine Gehgeschwindigkeitsdaten",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navWalkingSpeed": "Gehgeschwindigkeit",
"mood": {
"heatmapTitle": "Stimmungskalender",
"heatmapNoEntry": "Kein Eintrag",
"legendGreat": "Super",
"legendGood": "Gut",
"legendOkay": "Okay",
"legendLow": "Niedrig",
"distributionTitle": "Stimmungsverteilung",
"distributionDaysUnit": "Tage",
"weekdayTitle": "Durchschnitt nach Wochentag",
"weekdayNoData": "Keine Daten",
"weekdayBestWorst": "Bester Tag: {best} · Schwerster Tag: {worst}",
"tagsTitle": "Tags und Auslöser",
"tagAvgMood": "Durchschnittliche Stimmung mit diesem Tag",
"correlationsTitle": "Stimmung und andere Werte",
"correlationsDescription": "Wie sich deine Stimmung am selben Tag mit Schlaf, Aktivität und Puls bewegt.",
"correlation": {
"sleepTitle": "Stimmung vs. Schlaf",
"stepsTitle": "Stimmung vs. Aktivität",
"pulseTitle": "Stimmung vs. Puls",
"sleepAxis": "Schlaf (Min.)",
"stepsAxis": "Schritte",
"pulseAxis": "Puls (bpm)",
"strengthStrong": "Stark",
"strengthModerate": "Moderat",
"strengthWeak": "Schwach",
"strengthNone": "Keine",
"source": "{n} gepaarte Tage · r = {r}",
"emptyTitle": "Noch nicht genug gepaarte Daten",
"emptyDescription": "Erfasse Stimmung und diesen Wert an denselben Tagen, um einen Zusammenhang zu sehen.",
"weightTitle": "Stimmung vs. Gewicht",
"bloodPressureTitle": "Stimmung vs. Blutdruck",
"weightAxis": "Gewicht",
"bloodPressureAxis": "Systolisch (mmHg)",
"sourceLabel": "Wie das berechnet wurde"
},
"structuredTagsTitle": "Tag-Auswertung",
"inTargetValue": "{pct} %",
"inTargetCaption": "der letzten Tage im guten Stimmungsbereich",
"narrative": {
"title": "Das fällt auf",
"weekdayDip": "Deine Stimmung sinkt am stärksten am {weekday} – {delta} unter deinem Wochenschnitt.",
"weekdayPeak": "{weekday} ist durchgehend dein bester Tag mit einem Schnitt von {value}.",
"trendUp": "Deine Stimmung steigt über die letzten {days} Tage (+{delta} gegenüber dem Vorzeitraum).",
"trendDown": "Deine Stimmung sinkt über die letzten {days} Tage (-{delta} gegenüber dem Vorzeitraum).",
"weekendUp": "Am Wochenende geht es dir besser (+{delta} gegenüber Wochentagen).",
"weekendDown": "Am Wochenende ist deine Stimmung niedriger (-{delta} gegenüber Wochentagen).",
"tagLift": "Tage mit „{tag}“ liegen im Schnitt {delta} über deiner allgemeinen Stimmung.",
"tagDrop": "Tage mit „{tag}“ liegen {delta} unter deinem Durchschnitt.",
"inTarget": "Du warst an {pct} % der letzten 30 Tage in deinem guten Stimmungsbereich.",
"streak": "Du hast deine Stimmung {days} Tage in Folge erfasst – weiter so.",
"timeOfDay": "Am {bucket} fühlst du dich am besten, im Schnitt {value}."
},
"timeOfDay": {
"title": "Stimmung nach Tageszeit",
"morning": "Morgen",
"afternoon": "Nachmittag",
"evening": "Abend",
"night": "Nacht",
"bestCaption": "Am {bucket} fühlst du dich tendenziell am besten."
},
"stability": {
"value": "{score}/100",
"bandVerySteady": "Deine Stimmung war sehr gleichmäßig",
"bandSteady": "Deine Stimmung war recht gleichmäßig",
"bandVariable": "Deine Stimmung war merklich schwankend",
"bandVeryVariable": "Deine Stimmung hat zuletzt stark geschwankt",
"title": "Stabilität"
},
"influence": {
"title": "Einfluss auf die Stimmung",
"detail": "Durchschnitt {withAvg} an den {withDays} Tagen mit diesem Tag, {withoutAvg} ohne.",
"confidenceLow": "Geringe Sicherheit",
"confidenceMedium": "Mittlere Sicherheit",
"confidenceHigh": "Hohe Sicherheit"
},
"betterDays": {
"title": "Was zu deinen besseren Tagen passt",
"description": "Tags und Werte, die mit deinen Tagen besserer und schlechterer Stimmung einhergehen, sortiert danach, wie stark sie sich zusammen bewegen."
},
"crosstab": {
"title": "Tags und deine Gesundheitswerte",
"description": "Wie sich ein Gesundheitswert an Tagen mit einem Tag von Tagen ohne diesen Tag unterscheidet.",
"pairLabel": "{tag} · {metric}",
"metricActiveEnergy": "Aktive Energie",
"metricSleepDuration": "Schlaf",
"metricNextDayRecovery": "Erholung am Folgetag",
"unitHours": "Std.",
"unitKcal": "kcal",
"unitScore": "Pkt.",
"detailSameDay": "Durchschnittlich {withAvg} {unit} an den {withDays} Tagen mit diesem Tag gegenüber {withoutAvg} {unit} ohne.",
"detailNextDay": "Durchschnittlich {withAvg} {unit} am Tag nach den {withDays} Tagen mit diesem Tag gegenüber {withoutAvg} {unit} sonst."
},
"factorCrosstab": {
"title": "Deine bewerteten Faktoren und deine Vitalwerte",
"description": "Wie sich ein Vitalwert an den Tagen unterscheidet, an denen du einen Faktor niedrig bewertet hast, verglichen mit den Tagen mit hoher Bewertung.",
"pairLabel": "{factor} · {metric}",
"metricSleepDuration": "Schlaf",
"metricSteps": "Schritte",
"metricRestingHeartRate": "Ruhepuls",
"metricHrv": "Herzfrequenzvariabilität",
"metricWeight": "Gewicht",
"metricBloodPressureSys": "Systolisch",
"unitHours": "Std.",
"unitScore": "Pkt.",
"unitSteps": "Schritte",
"unitBpm": "bpm",
"unitMs": "ms",
"unitKg": "kg",
"unitMmHg": "mmHg",
"detail": "Durchschnittlich {lowAvg} {unit} an den {lowDays} Tagen mit niedriger {factor}-Bewertung gegenüber {highAvg} {unit} an den Tagen mit hoher Bewertung.",
"detailInverse": "Durchschnittlich {lowAvg} {unit} an deinen {lowDays} schlechteren {factor}-Tagen gegenüber {highAvg} {unit} an deinen besseren."
},
"discovery": {
"title": "Was auffällt",
"subheading": "Entdeckte Zusammenhänge",
"footer": "Herausgefiltert aus {tested} Tag-zu-Tag-Paaren, die über all deine Werte getestet wurden, nach der Korrektur für Fehlentdeckungen.",
"empty": "Bisher hat kein Stimmungszusammenhang die statistische Hürde genommen. Logge weiter.",
"disclaimer": "Statistisch gefiltert, aber weiterhin beobachtend – ein Muster, das einen Blick wert ist, keine Ursache.",
"moodUp": "Höheres {factor} geht in deinen Daten tendenziell mit besserer Stimmung am Folgetag einher.",
"moodDown": "Höheres {factor} geht in deinen Daten tendenziell mit schlechterer Stimmung am Folgetag einher.",
"outcomeUp": "Bessere Stimmung geht in deinen Daten tendenziell mit höherem {factor} am Folgetag einher.",
"outcomeDown": "Bessere Stimmung geht in deinen Daten tendenziell mit niedrigerem {factor} am Folgetag einher.",
"stat": "{n} gepaarte Tage · r = {r} · q = {q}",
"statLabel": "Wie das berechnet wurde",
"explainerLabel": "Wie das berechnet wurde"
},
"inTargetTitle": "Im Zielbereich"
},
"derived": {
"coverage": {
"summary": "{present} von {required} Eingaben · {percent}%",
"ratioLabel": "{present}/{required}",
"historyDays": "Basiert auf {count} Tagen Verlauf",
"missing": "Erfasse diese, um den Wert zu schärfen: {list}"
},
"scoreRing": {
"aria": "Wert {score} von 100, {band}",
"ariaProvisional": "Wert noch nicht verfügbar — zu wenig Daten",
"provisionalCaption": "Noch zu wenig Daten",
"band": {
"green": "gut",
"yellow": "mittel",
"red": "niedrig"
}
},
"provenance": {
"title": "So wird das berechnet",
"trigger": "So wird das berechnet",
"inputsLabel": "Eingaben",
"noInputs": "Noch keine Eingaben für diesen Wert vorhanden.",
"methodLabel": "Methode",
"window": "Aus deinen letzten {days} Tagen · {source}-Daten",
"asOf": "Stand {date}",
"standardLink": "Standard: {name}"
},
"vitals": {
"sectionTitle": "Deine Vitalwerte",
"loadingLabel": "Vitalwerte werden geladen",
"loadError": "Deine Vitalwerte konnten gerade nicht geladen werden.",
"building": "Typischer Bereich entsteht — {count} von {target} Tagen",
"typicalRange": "Typisch für dich: {low}–{high}",
"fitnessYounger": "Ausdauer wie ~{years} J. jünger",
"fitnessOlder": "Ausdauer ~{years} J. über deinem Alter",
"fitnessTypical": "Ausdauer typisch für dein Alter",
"fitnessNoNorm": "Alter und Geschlecht ergänzen, um dies einzuordnen",
"vascularBelow": "{years} J. unter deinem Alter",
"vascularAbove": "{years} J. über deinem Alter",
"vascularMatch": "Im Einklang mit deinem Alter",
"vascularNoAge": "Geburtsdatum ergänzen, um dies einzuordnen",
"hrvBand": {
"balanced": "Für dich ausgewogen",
"unbalanced": "Über deinem üblichen Bereich",
"low": "Unter deinem üblichen Bereich"
},
"bmiCategory": {
"underweight": "Untergewicht (WHO)",
"normal": "Normalbereich (WHO)",
"overweight": "Übergewicht (WHO)",
"obese": "Adipositas (WHO)"
},
"sixMinuteBand": {
"green": "{percent}% des für dein Profil vorhergesagten Werts",
"yellow": "{percent}% des für dein Profil vorhergesagten Werts",
"red": "{percent}% des für dein Profil vorhergesagten Werts"
},
"sixMinuteNoBand": "Ergänze Alter, Größe, Gewicht und Geschlecht, um dies einzuordnen",
"mobilitySectionTitle": "Mobilität & Körper"
},
"anatomy": {
"outOf": "/100",
"contributorsLabel": "Faktoren",
"contributorValue": "{value} · {weight}% Gewicht",
"contributorMissing": "keine Daten",
"disclaimer": "Richtwert — keine klinische Bewertung.",
"insufficient": "Noch nicht genug Daten für eine Bewertung. Tracke weiter, dann erscheint sie hier."
},
"composite": {
"SLEEP_SCORE": {
"title": "Schlaf-Score",
"description": "Ein transparenter Schlafqualitäts-Score mit allen Teilwerten.",
"method": "Eine 0–100-Mischung aus Schlafmenge (Schlaf vs. altersbasierter Bedarf), Effizienz (Schlaf ÷ Bettzeit), Konstanz (wie stabil deine Schlafmitte ist), Timing (vs. deine gewohnte Schlafmitte) und Zusammensetzung (REM- + Tiefschlafanteil). Teilwerte werden umgewichtet, wenn deine Daten einen nicht stützen; nichts wird erfunden.",
"sub": {
"sufficiency": "Schlafmenge",
"efficiency": "Effizienz",
"consistency": "Konstanz",
"timing": "Timing",
"composition": "Zusammensetzung"
}
},
"READINESS": {
"title": "Bereitschaft",
"description": "Ein täglicher Wohlbefindens-Indikator daraus, wie deine Werte zu deiner eigenen Baseline stehen.",
"method": "Eine 0–100-Mischung aus Ruhepuls-Abweichung, HRV-(SDNN-)Abweichung, Schlaf, Atemfrequenz-Stabilität und Stimmungsstabilität — jeweils gegen deine persönliche Baseline gemessen. Gewichte werden über die von deinen Daten gestützten Komponenten neu verteilt. Ein Wohlbefindens-Indikator, kein Erholungs- oder klinischer Score.",
"component": {
"rhr": "Ruhepuls",
"hrv": "HRV (SDNN)",
"sleep": "Schlaf",
"respiratory": "Atemfrequenz",
"mood": "Stimmungsstabilität"
},
"caveat": "Ein Wellness-Proxy, kein Erholungs- oder klinischer Wert."
},
"VITALS_BASELINE": {
"method": "Dein persönlicher Normalbereich ist der Median deiner Tageswerte über den Zeitraum, ± eine robuste Streuung (skalierte mittlere absolute Abweichung). Er folgt DEINEN Werten, keiner Bevölkerungsnorm — ein Wert im Band ist also typisch für dich."
},
"HRV_BALANCE": {
"method": "Dein jüngster HRV-(SDNN-)Durchschnitt im Vergleich zu deiner eigenen gleitenden Baseline (Median ± robuste Streuung). Ausgeglichen heißt: er liegt in deinem persönlichen Bereich; das Band stammt aus deinen Daten, nie aus einem Bevölkerungswert."
},
"BMI": {
"method": "Gewicht ÷ Größe², eingeordnet nach den WHO-Kategorien für Erwachsene (Untergewicht / Normal / Übergewicht / Adipositas). Nur ein Screening-Verhältnis — es unterscheidet nicht Muskel von Fett."
},
"FITNESS_AGE": {
"method": "Dein VO₂max im Vergleich zu alters- und geschlechtsbezogenen Perzentilen der kardiorespiratorischen Fitness, als Fitnessalter-Differenz. Das VO₂max ist die Schätzung deines Geräts — hier nie neu berechnet."
},
"VASCULAR_AGE_DELTA": {
"method": "Die Gefäßalter- bzw. Pulswellengeschwindigkeits-Schätzung deines Geräts im Vergleich zu deinem chronologischen Alter, als Differenz in Jahren. Die Schätzung stammt vom Gerät; HealthLog ordnet sie nur ein.",
"caveat": "Die eigene Schätzung deines Geräts, nur eingeordnet — beschreibend, keine klinische Gefäßbewertung.",
"description": "Wie die Gefäßalter-Schätzung deines Geräts zu deinem chronologischen Alter steht."
},
"COINCIDENT_DEVIATION": {
"method": "Ein Hinweis, wenn zwei oder mehr deiner Vitalwerte am selben Tag außerhalb ihres persönlichen Normalbereichs liegen. Jedes Band ist der robuste Median ± k·MAD deiner eigenen Verlaufsdaten und passt sich an dich an, nicht an einen Bevölkerungswert.",
"caveat": "Ein Hinweis aus deinen eigenen Baselines — beschreibend, keine Diagnose und kein klinischer Alarm."
},
"RECOVERY_SCORE": {
"method": "Ein nächtlicher 0–100-Erholungs-Proxy aus HRV, Ruhepuls und Schlaf gegenüber deiner Baseline. Höher heißt besser erholt. Einmal pro Nacht berechnet und hier nur ausgelesen — nie spontan neu berechnet.",
"caveat": "Ein beschreibender Wellness-Proxy, kein trainings- oder klinikgerechtes Erholungsmaß.",
"description": "Ein nächtlicher Erholungs-Proxy aus HRV, Ruhepuls und Schlaf."
},
"STRESS_SCORE": {
"method": "Ein nächtlicher 0–100-Stress-Proxy aus dem Verlauf deiner HRV über den Tag gegenüber deiner Baseline. Höher heißt mehr physiologische Belastung.",
"caveat": "Ein aus der HRV abgeleiteter Proxy, KEINE EDA-/Hautleitwert-Stressmessung — deine Uhr hat keinen EDA-Sensor. Beschreibend, nicht klinisch.",
"description": "Ein nächtlicher Stress-Proxy aus dem Tagesverlauf deiner HRV."
},
"STRAIN_SCORE": {
"method": "Ein nächtlicher 0–100-Belastungs-Proxy aus deiner herzfrequenzgewichteten Aktivitätslast (ein TRIMP-ähnliches Trainingsimpuls-Modell). Höher heißt ein anstrengenderer Tag.",
"anchorPersonal": "An deine eigene jüngste Trainingstagslast angelehnt — bewertet relativ zu deiner typischen Anstrengung, sodass ein für dich wirklich harter Tag hoch ausfällt.",
"anchorPopulation": "Gegen einen allgemeinen Referenzwert bewertet, während du noch Trainingsverlauf aufbaust; sobald genug vorhanden ist, wechselt die Bewertung auf deine eigene typische Anstrengung.",
"caveat": "Ein beschreibender Aktivitätslast-Proxy, kein klinisches oder trainingsgerechtes Lastmaß.",
"description": "Ein nächtlicher Aktivitätslast-Proxy aus deiner herzfrequenzgewichteten Anstrengung, relativ zu deiner typischen Anstrengung."
},
"WRIST_TEMPERATURE_BASELINE": {
"method": "Deine typische nächtliche Handgelenkstemperatur ist der Median deiner nächtlichen Messwerte im Zeitraum, ± einer robusten Streuung (skalierte mittlere absolute Abweichung). Sie folgt DEINEN Werten — letzte Nacht wird als Abweichung von deiner eigenen Baseline gezeigt, nicht von einer Bevölkerungsnorm.",
"caveat": "Nur ein persönliches Abweichungsband — beschreibend, kein Anzeichen für Krankheit, Fieber oder Zyklusphase. Du interpretierst es selbst."
},
"STAIR_ASCENT_SPEED_BASELINE": {
"method": "Dein typisches Treppensteig-Tempo ist der Median deiner Tageswerte im Zeitraum, ± einer robusten Streuung (skalierte mittlere absolute Abweichung). Das Band wird aus deinen Daten gebildet — es gibt keinen Bevölkerungs-Grenzwert für Treppentempo, da es von Treppengeometrie und Beinlänge abhängt.",
"caveat": "Ein persönliches Mobilitäts-Trendband — beschreibend, keine Gebrechlichkeits- oder Sturzrisiko-Bewertung."
},
"STAIR_DESCENT_SPEED_BASELINE": {
"method": "Dein typisches Treppen-Abstiegstempo ist der Median deiner Tageswerte im Zeitraum, ± einer robusten Streuung (skalierte mittlere absolute Abweichung). Das Band wird aus deinen Daten gebildet — es gibt keinen Bevölkerungs-Grenzwert für Treppentempo, da es von Treppengeometrie und Beinlänge abhängt.",
"caveat": "Ein persönliches Mobilitäts-Trendband — beschreibend, keine Gebrechlichkeits- oder Sturzrisiko-Bewertung."
},
"SIX_MINUTE_WALK_BAND": {
"method": "Die von deinem Gerät GESCHÄTZTE 6-Minuten-Gehstrecke, eingeordnet gegen die Referenz von Enright & Sherrill für Alter, Größe, Gewicht und Geschlecht, als Prozent des Vorhersagewerts. Die Strecke ist die Schätzung des Geräts — hier nie neu berechnet. Ohne Alter, Größe, Gewicht und Geschlecht wird der Prozentwert ausgeblendet und nur Strecke und Trend gezeigt.",
"caveat": "Eine gegen eine veröffentlichte Referenz neu eingeordnete Schätzung — ein Hinweis zur funktionellen Kapazität, kein klinischer 6-Minuten-Gehtest und keine Diagnose. Die Referenz wurde für Alter 40–80 erstellt; außerhalb dieses Bereichs ist der Vorhersagewert eine Extrapolation."
},
"TRAJECTORY": {
"method": "Eine Ausgleichsgerade (kleinste Quadrate), an deine jüngsten Tageswerte angepasst und über einen kurzen Zeitraum fortgeschrieben — mit dem klassischen Vorhersageintervall, das umso breiter wird, je weiter es reicht. Wird nur berechnet, wenn der jüngste Trend deutlich genug und deine Datenreihe lang und aktuell genug ist; sonst wird keine Linie gezeichnet.",
"caveat": "Eine Fortschreibung deines eigenen jüngsten Trends — keine Vorhersage, kein Ziel und keine klinische Prognose. Sie gilt nur, solange das jüngste Muster anhält; das schattierte Band zeigt, wie schnell diese Sicherheit nachlässt."
}
},
"scores": {
"sectionTitle": "Deine Gesundheitswerte",
"loadError": "Deine Wellness-Werte konnten gerade nicht geladen werden.",
"recovery": "Erholung",
"stress": "Stress",
"strain": "Belastung"
},
"coincident": {
"label": "Mehrere Vitalwerte außerhalb der Baseline",
"summary": "{count} deiner Vitalwerte lagen heute außerhalb ihres persönlichen Bereichs.",
"vitals": "Außerhalb des Bereichs: {list}",
"cardTitle": "Signale des Tages",
"allClear": "Alle deine Vitalwerte liegen heute in ihrem persönlichen Bereich.",
"allClearMeta": "{count} deiner Vitalwerte gegen deinen eigenen typischen Bereich geprüft.",
"watch": "Ein Vitalwert liegt heute außerhalb seines üblichen Bereichs.",
"watchVital": "Außerhalb des Bereichs: {vital}. Oft nur einmalig — behalte es in den nächsten Tagen im Blick.",
"firedHeadline": "{count} deiner Vitalwerte liegen heute außerhalb ihres persönlichen Bereichs.",
"factors": "Mögliche Faktoren — nie eine Ursache: ein hartes Training, schlechter Schlaf, Alkohol, Höhe, Stress oder Krankheit. Das ist ein Hinweis aus deinen eigenen Baselines, keine Diagnose.",
"building": "Deine persönlichen Baselines entstehen — erfasse ein paar Tage mehr, dann erscheint dies."
},
"trajectory": {
"cardTitle": "Kurzfrist-Projektion",
"headline": "Wenn dieses Muster anhält — die nächsten {days} Tage",
"range": "Projiziert auf rund {low}–{high} {unit} in {days} Tagen.",
"caveat": "Eine Fortschreibung deines eigenen jüngsten Trends, keine Vorhersage. Das schattierte Band wird breiter und zeigt, wie schnell die Unsicherheit wächst.",
"insufficient": "Noch kein klar genuger Trend für eine Projektion — erfasse weiter, dann erscheint eine Projektion, sobald das jüngste Muster deutlich genug ist.",
"daysNeeded": "Noch etwa {count} Tage Erfassung nötig, bis eine Projektion erscheinen kann."
}
},
"cardioFitness": {
"title": "Fitness",
"description": "Deine VO₂max im Zeitverlauf — das wichtigste Maß für die Ausdauerfitness.",
"chartTitle": "VO₂max (mL/(kg·min))",
"emptyState": {
"title": "Noch keine Fitnessdaten",
"description": "VO₂max-Werte erscheinen hier, sobald Apple Health sie aus deinen Workouts synchronisiert."
}
},
"navCardioFitness": "Fitness",
"cardioRecovery": {
"title": "Erholungspuls",
"description": "Wie stark dein Puls eine Minute nach maximaler Belastung abfällt.",
"chartTitle": "Erholungspuls (bpm)",
"emptyState": {
"title": "Noch keine Erholungspuls-Daten",
"description": "Erholungspuls-Werte erscheinen hier, sobald Apple Health sie aus einem Workout synchronisiert."
}
},
"navCardioRecovery": "Erholungspuls",
"wristTemperature": {
"title": "Handgelenktemperatur",
"description": "Deine nächtliche Handgelenktemperatur, gemessen an deinem eigenen Ausgangswert.",
"chartTitle": "Handgelenktemperatur (°C)",
"emptyState": {
"title": "Noch keine Handgelenktemperatur-Daten",
"description": "Werte erscheinen hier, sobald Apple Health das nächtliche Tragen synchronisiert."
}
},
"navWristTemperature": "Handgelenk-Temp.",
"falls": {
"title": "Stürze",
"description": "Von deiner Apple Watch erkannte schwere Stürze, pro Tag gezählt.",
"chartTitle": "Stürze pro Tag",
"emptyState": {
"title": "Noch keine Sturzdaten",
"description": "Erkannte Stürze erscheinen hier, sobald Apple Health synchronisiert. Keine Stürze ist das Ziel."
}
},
"navFalls": "Stürze",
"sixMinuteWalk": {
"title": "6-Minuten-Gehtest",
"description": "Apples Schätzung, wie weit du in sechs Minuten gehen könntest.",
"chartTitle": "6-Minuten-Gehstrecke (m)",
"emptyState": {
"title": "Noch keine 6-Minuten-Gehtest-Daten",
"description": "Schätzwerte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navSixMinuteWalk": "6-Min-Gehtest",
"stairAscentSpeed": {
"title": "Treppensteig-Tempo",
"description": "Wie schnell du Treppen hinaufgehst, gemessen von iPhone oder Watch.",
"chartTitle": "Treppensteig-Tempo (m/s)",
"emptyState": {
"title": "Noch keine Daten zum Treppensteig-Tempo",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navStairAscentSpeed": "Treppe hoch",
"stairDescentSpeed": {
"title": "Treppab-Tempo",
"description": "Wie schnell du Treppen hinabgehst, gemessen von iPhone oder Watch.",
"chartTitle": "Treppab-Tempo (m/s)",
"emptyState": {
"title": "Noch keine Daten zum Treppab-Tempo",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navStairDescentSpeed": "Treppe runter",
"breathingDisturbances": {
"title": "Atemaussetzer",
"description": "Wie oft deine Atmung im Schlaf gestört war.",
"chartTitle": "Atemaussetzer im Schlaf",
"emptyState": {
"title": "Noch keine Daten zu Atemaussetzern",
"description": "Werte erscheinen hier, sobald Apple Health sie von einer unterstützten Apple Watch synchronisiert."
}
},
"navBreathingDisturbances": "Atmung",
"rhythmEvents": {
"sectionTitle": "Gesundheitshinweise des Geräts",
"sectionIntro": "Hinweise, die deine Uhr eigenständig gesendet hat. HealthLog zeigt diese nur an — es erkennt, bestätigt oder interpretiert sie nicht.",
"loadError": "Die Gerätehinweise konnten nicht geladen werden.",
"disclaimer": "Dies sind Hinweise, die dein Gerät mit seiner eigenen integrierten Erkennung erzeugt hat. Sie werden hier nur zu deiner Information angezeigt. Dies ist keine medizinische Bewertung durch HealthLog, und HealthLog stellt keine Diagnose. Wenn dich ein Hinweis beunruhigt, sprich mit deiner Ärztin oder deinem Arzt.",
"event": {
"irregularRhythm": "Hinweis auf unregelmäßigen Rhythmus",
"highHeartRate": "Hinweis auf hohe Herzfrequenz",
"lowHeartRate": "Hinweis auf niedrige Herzfrequenz",
"walkingSteadiness": "Hinweis zur Gehstabilität",
"breathingDisturbance": "Atemstörung während des Schlafs"
},
"verdict": {
"irregular": "Dein Gerät hat einen möglichen unregelmäßigen Rhythmus erkannt.",
"notDetected": "Dein Gerät hat keinen unregelmäßigen Rhythmus erkannt.",
"inconclusive": "Dein Gerät konnte keine Messung vornehmen.",
"low": "Dein Gerät hat eine niedrige Gehstabilität erkannt.",
"veryLow": "Dein Gerät hat eine sehr niedrige Gehstabilität erkannt.",
"fired": "Dein Gerät hat dieses Ereignis erkannt."
}
},
"trendDescriptor": {
"rising": "Über 30 Tage steigend ({delta}{unit}).",
"falling": "Über 30 Tage fallend ({delta}{unit}).",
"stable": "Über die letzten 30 Tage stabil.",
"moodImproved": "Stimmung über 30 Tage leicht verbessert.",
"moodDeclined": "Stimmung über 30 Tage leicht verschlechtert.",
"moodStable": "Stimmung über die letzten 30 Tage stabil."
},
"target": {
"heading": "Ziel"
},
"disclaimer": {
"footer": "HealthLog beschreibt deine eigenen erfassten Daten — es ist keine klinische Bewertung und keine Diagnose. Sprich mit deiner Ärztin oder deinem Arzt über alles, was dich beunruhigt."
},
"settings": {
"overviewTitle": "Übersicht anordnen",
"overviewDescription": "Abschnitte ein- oder ausblenden und ihre Reihenfolge auf der Insights-Übersicht festlegen."
},
"pillOrder": {
"title": "Navigations-Pills sortieren",
"description": "Ziehe die Pills in die gewünschte Reihenfolge und blende sie über das Augensymbol ein oder aus. Ausgeblendete Detailseiten verschwinden auch aus der oberen Navigation.",
"dragHandle": "Verschieben",
"saveSuccess": "Reihenfolge der Pills gespeichert.",
"saveError": "Speichern der Pill-Reihenfolge fehlgeschlagen.",
"save": "Speichern",
"empty": "Noch keine Navigations-Pills verfügbar."
},
"customize": "Insights anpassen",
"regenerateRateLimited": "Aktualisierungslimit erreicht — bitte später erneut versuchen.",
"regenerateUnavailable": "Keine neue Analyse erhalten — bitte später erneut versuchen.",
"regenerateError": "Aktualisierung läuft noch — bitte gleich erneut versuchen.",
"deviceScore": {
"learning": "Deine Basislinie wird noch gelernt – ein paar weitere Nächte vervollständigen den Verlauf.",
"average": "30-Tage-Durchschnitt {value}",
"unitScore": "Punkte",
"unitMinutes": "Min.",
"unitBpm": "bpm",
"unitKj": "kJ"
},
"sleepQuality": {
"title": "Schlafqualität",
"subtitle": "Nächtliche Werte deines Wearables"
},
"recovery": {
"title": "Erholung",
"description": "Wie gut sich dein Körper erholt hat – die Erholungs-, Belastungs- und Load-Signale, die dein Wearable über Nacht aufzeichnet.",
"emptyTitle": "Noch keine Erholungsdaten",
"empty": "Noch keine Erholungsdaten. Verbinde ein WHOOP-, Polar- oder Oura-Konto, dann füllen sich diese Werte, sobald dein Gerät synchronisiert.",
"recharge": {
"title": "Recharge",
"subtitle": "Ladung des autonomen Nervensystems"
},
"strain": {
"title": "Belastung & Load",
"subtitle": "Tägliche kardiovaskuläre Belastung"
},
"cardio": {
"title": "Herz & Energie pro Tag",
"subtitle": "Herz- und Energiewerte des ganzen Tages"
},
"scoreLink": {
"title": "Erholungs-Score",
"subtitle": "Sieh dir an, wie sich der nächtliche Score zusammensetzt",
"cta": "Ansehen"
}
},
"bodyTempDeviation": {
"title": "Körpertemperatur-Abweichung",
"subtitle": "Nächtliche Abweichung von deiner Basislinie"
}
},
"thresholds": {
"defaultLabel": "Default",
"autoModeLabel": "Auto",
"overrideModeLabel": "Überschrieben",
"overrideToggleLabel": "Eigene Werte",
"resetAction": "Auf Default zurücksetzen",
"resetAllAction": "Alle auf Default zurücksetzen",
"minLabel": "Min",
"maxLabel": "Max",
"unitSuffix": "({unit})",
"outOfBoundsHint": "Erlaubter Bereich: {min}–{max} {unit}",
"overrideWarning": "Werte außerhalb der Leitlinien können zu ungesunden Zielen führen. Nur nach ärztlicher Rücksprache überschreiben.",
"saveSuccess": "Zielwerte aktualisiert",
"saveError": "Zielwerte konnten nicht gespeichert werden",
"resetSuccess": "Auf Default zurückgesetzt",
"sourceOverride": "Eigener Wert",
"metricWeight": "Gewicht",
"metricBpSys": "Blutdruck (systolisch)",
"metricBpDia": "Blutdruck (diastolisch)",
"metricPulse": "Ruhepuls",
"metricBodyFat": "Körperfett",
"metricSleep": "Schlafdauer",
"metricSteps": "Schritte/Tag",
"metricGlucoseFasting": "Glukose — nüchtern",
"metricGlucosePostprandial": "Glukose — postprandial",
"metricGlucoseRandom": "Glukose — beliebig",
"metricGlucoseBedtime": "Glukose — vor dem Schlafen",
"metricBodyWater": "Körperwasser",
"metricBoneMass": "Knochenmasse",
"metricOxygenSaturation": "Sauerstoffsättigung (SpO₂)",
"unsetExplanation": "Kein eigener Wert — berechneter Default aktiv."
},
"onboarding": {
"errorGeneric": "Beim Abschluss des Setups ist etwas schiefgelaufen. Bitte versuche es erneut.",
"tour": {
"stepOf": "Schritt {current} von {total}",
"next": "Weiter",
"back": "Zurück",
"skip": "Tour überspringen",
"done": "Verstanden",
"restart": "Tour neu starten",
"restartHint": "Zeige die Dashboard-Tour beim nächsten Aufruf erneut.",
"restartConfirmation": "Die Tour startet bei deinem nächsten Dashboard-Besuch erneut.",
"steps": {
"tileStrip": {
"title": "Deine Tageswerte",
"body": "Die Kachel-Leiste zeigt den letzten Wert und den 7-Tage-Trend für jede Metrik — Gewicht, Blutdruck, Puls, Stimmung. Was du nicht brauchst, blendest du in Einstellungen → Dashboard aus."
},
"quickAdd": {
"title": "In zwei Taps erfasst",
"body": "Über den Hinzufügen-Button kannst du Messungen oder Stimmungseinträge anlegen, ohne das Dashboard zu verlassen. Das Formular merkt sich deinen letzten Kontext und Tags."
},
"insights": {
"title": "Automatische Einblicke",
"body": "Insights verwandelt deine Werte in eine klare Gesundheits-Zusammenfassung, mit Einordnung von Blutdruck, Gewicht und Stimmung. Eigener Provider-Key oder Standard — du entscheidest."
},
"integrations": {
"title": "Geräte verbinden",
"body": "In den Einstellungen verbindest du Withings (Auto-Sync für Gewicht, Blutdruck, Puls), moodLog oder deinen Auswertungs-Provider. Alles bleibt optional und verschlüsselt."
},
"achievements": {
"title": "Streaks und Badges sammeln",
"body": "Die Achievements-Seite trackt tägliche Logging-Streaks, Blutdruck-Meilensteine und Konsistenz-Abzeichen. Ein kleiner Anreiz, dranzubleiben."
}
}
},
"shell": {
"back": "Zurück",
"skip": "Überspringen",
"next": "Weiter",
"step1of4": "Schritt 1 von 4",
"step2of4": "Schritt 2 von 4",
"step3of4": "Schritt 3 von 4",
"step4of4": "Schritt 4 von 4"
},
"goals": {
"title": "Was möchtest du erfassen?",
"body": "Wähle die Bereiche, die dir wichtig sind – wir zeigen sie zuerst auf deinem Dashboard an, und sie helfen dir zu entscheiden, was du als Nächstes einrichtest.",
"helpHint": "Ein bis drei Schwerpunkte funktionieren erfahrungsgemäß am besten – mehr geht aber jederzeit.",
"options": {
"weightManagement": "Gewicht im Griff",
"bpTracking": "Blutdruck",
"glucoseTracking": "Blutzucker",
"sleepImprovement": "Besser schlafen",
"medicationCompliance": "Medikamente",
"generalWellness": "Allgemeine Form"
}
},
"source": {
"title": "Quelle verbinden",
"body": "Werte automatisch übernehmen oder weiter manuell eintragen. Hier wird nichts für dich eingerichtet – jede Karte zeigt nur, wo du sie verbindest.",
"recommended": "Empfohlen",
"manual": {
"title": "Manuelle Eingabe",
"body": "Werte direkt erfassen, wann es dir passt. Funktioniert auf jedem Gerät, kein Konto bei Dritten nötig."
},
"withings": {
"title": "Withings",
"body": "Waagen, Blutdruckmesser und Tracker von Withings synchronisieren automatisch.",
"cta": "Withings verbinden"
},
"more": {
"title": "Weitere Quellen",
"body": "Verbinde eine davon in den Einstellungen, wann immer du bereit bist.",
"appleHealth": "Apple Health",
"whoop": "WHOOP",
"oura": "Oura",
"polar": "Polar",
"nightscout": "Nightscout",
"fitbit": "Fitbit"
},
"import": "Bestehende Daten importieren"
},
"baseline": {
"title": "Kurz zu dir",
"body": "Vier optionale Angaben verbessern Zielwerte, BMI und Erinnerungen. Du kannst alles später in den Einstellungen anpassen.",
"displayNameLabel": "Anzeigename",
"displayNamePlaceholder": "Wie soll dich HealthLog ansprechen?",
"displayNameHint": "Erscheint im Dashboard-Gruß und in Berichten.",
"heightLabel": "Größe (cm)",
"genderLabel": "Geschlecht",
"genderNone": "Keine Angabe",
"genderMale": "Männlich",
"genderFemale": "Weiblich",
"dateOfBirthLabel": "Geburtsdatum",
"dateOfBirthHint": "Wird ausschließlich für altersbezogene Auswertungen genutzt.",
"saveCta": "Speichern und weiter"
},
"done": {
"title": "Alles bereit",
"body": "Willkommen an Bord. Dein Dashboard wartet.",
"returnCta": "Zum Dashboard",
"learning": "Manche Einblicke – Glukose, Schlafrhythmus, Blutdrucktrends, Zyklus – schärfen sich in den ersten ein bis zwei Wochen, sobald sich deine Daten ansammeln. Leere Kacheln heißen jetzt nur, dass wir deine Basislinie noch lernen.",
"connectCta": "Gerät verbinden",
"logCta": "Ersten Wert eintragen",
"importCta": "Bestehende Daten importieren"
},
"welcomeBack": {
"title": "Willkommen zurück",
"body": "Das Onboarding hast du bereits abgeschlossen. Möchtest du etwas anpassen, findest du alles in den Einstellungen.",
"cta": "Zum Dashboard"
},
"welcome": {
"title": "Willkommen bei HealthLog",
"carouselLabel": "Begrüßungs-Karussell",
"slideOf": "Folie {current} von {total}",
"prevSlide": "Vorherige Folie",
"nextSlide": "Nächste Folie",
"gotoSlide": "Zu Folie {index} springen",
"cta": "Los geht's",
"slide1": {
"title": "Alles, was zählt",
"body": "Gewicht, Blutdruck, Glukose, Schlaf, Stimmung — alles in einem Verlauf, der dir gehört."
},
"slide2": {
"title": "Verbinde deine Quellen",
"body": "Synchronisiere mit Apple Health und Withings oder trage Werte manuell ein. Deine Daten bleiben auf deinem Server."
},
"slide3": {
"title": "Erkenne das Muster",
"body": "Tageszusammenfassungen, Trend-Diagramme und ein Coach, der zeigt was sich verändert hat — alles auf deinem Gerät."
}
},
"anamnesis": {
"title": "Zu deiner Gesundheit (optional)",
"subtitle": "Etwas Kontext, damit HealthLog deine Werte fairer einordnet.",
"intro": "Teile so viel oder so wenig, wie du möchtest – jedes Feld ist optional und jederzeit in den Einstellungen änderbar.",
"conditionsLabel": "Bestehende Erkrankungen",
"conditionsPlaceholder": "z. B. Bluthochdruck, Typ-2-Diabetes",
"conditionsHint": "Hilft HealthLog, deine Werte im Kontext einzuordnen, statt Erwartbares zu melden.",
"allergiesLabel": "Allergien oder Unverträglichkeiten",
"allergiesPlaceholder": "z. B. Penicillin, Laktose",
"privacyNote": "Verschlüsselt gespeichert und nur für besseren Kontext genutzt. Medikamente fragen wir hier nicht ab – die kannst du jederzeit auf der Medikamenten-Seite ergänzen."
}
},
"gettingStarted": {
"title": "Erste Schritte",
"subtitle": "Quick Wins, damit du das Beste aus HealthLog herausholst.",
"progress": "{done} von {total} erledigt",
"dismissAll": "Checkliste ausblenden",
"dismissTooltip": "Diesen Punkt ausblenden",
"items": {
"profileTitle": "Profil einrichten",
"profileDescription": "Größe, Geburtsdatum und Geschlecht schalten personalisierte Zielwerte frei.",
"profileCta": "Profil öffnen",
"measurementTitle": "Erste Messung anlegen",
"measurementDescription": "Ein Messpunkt reicht, um die Kachel zu aktivieren — der Trend zeichnet sich ab dem 5. Eintrag.",
"measurementCta": "Messung hinzufügen",
"medicationTitle": "Medikament hinzufügen",
"medicationDescription": "Verfolge die Therapietreue und erhalte Erinnerungen genau dann, wenn du sie brauchst.",
"medicationCta": "Medikament hinzufügen",
"dataSourceTitle": "Datenquelle verbinden (optional)",
"dataSourceDescription": "Gewicht, Blutdruck, Schlaf und mehr automatisch aus Withings, WHOOP, Oura, Polar, Nightscout, Fitbit oder Apple Health.",
"dataSourceCta": "Verbinden",
"notificationsTitle": "Benachrichtigungen einrichten",
"notificationsDescription": "Wähle, wie HealthLog dich erinnert — Telegram, ntfy oder Web Push.",
"notificationsCta": "Benachrichtigungen öffnen"
}
},
"trendHints": {
"title": "Erster Trend nach 5 Messungen",
"remainingOne": "Noch 1 Messung bis zum Trend.",
"remainingMany": "Noch {count} Messungen bis zum Trend."
},
"settings": {
"researchMode": {
"sectionTitle": "Forschungsmodus",
"subtitle": "Optionale Anzeige einer geschätzten GLP-1-Wirkstoffkurve auf Basis der von der EMA veröffentlichten Populations-Pharmakokinetik. Nur zur Anschauung — niemals eine Messung oder ein medizinischer Rat.",
"toggleLabel": "Geschätzte Wirkstoffkurve anzeigen",
"disabledStatus": "Deaktiviert. Die Wirkstoffkurve ist ausgeblendet.",
"enabledStaleStatus": "Der Disclaimer wurde aktualisiert. Bestätige unten erneut, um die Kurve wieder anzuzeigen.",
"acknowledgedOn": "Bestätigt am {date}.",
"rePromptTitle": "Disclaimer aktualisiert",
"rePromptBody": "Der Disclaimer des Forschungsmodus wurde seit deiner letzten Bestätigung aktualisiert. Lies ihn erneut und bestätige, damit die Kurve sichtbar bleibt.",
"rePromptCta": "Disclaimer erneut bestätigen",
"disableError": "Forschungsmodus konnte nicht deaktiviert werden. Bitte erneut versuchen."
},
"shell": {
"sectionsNav": "Einstellungs-Bereiche"
},
"sections": {
"account": {
"title": "Konto",
"description": "Profil, Passwort, Passkeys und deine Onboarding-Tour."
},
"integrations": {
"title": "Integrationen",
"description": "Withings, moodLog und weitere verbundene Dienste."
},
"notifications": {
"title": "Benachrichtigungen",
"description": "Live-Übersicht aller konfigurierten Kanäle."
},
"layout": {
"title": "Layout & Personalisierung",
"description": "Lege fest, wie deine App aufgebaut ist — ein Ort für Dashboard, Insights, Medikamente und Stimmung.",
"backToHub": "Zurück zu Layout & Personalisierung",
"dashboard": {
"title": "Dashboard",
"description": "Kachel-Layout und Reihenfolge."
},
"insights": {
"title": "Insights",
"description": "Reihenfolge der Übersicht und der Navigations-Pills."
},
"medications": {
"title": "Medikamente",
"description": "Listenansicht und Reihenfolge der Medikamente."
},
"mood": {
"title": "Stimmungs-Tags",
"description": "Gruppen, Tags und Reihenfolge der Tag-Auswahl."
}
},
"dashboard": {
"title": "Dashboard",
"description": "Kachel-Layout und Reihenfolge."
},
"thresholds": {
"title": "Zielwerte",
"description": "Pro Metrik dein eigener Zielbereich für gesunde Werte."
},
"sources": {
"title": "Quellen-Priorität",
"description": "Lege fest, welche Quelle führt, wenn mehrere am selben Tag dieselbe Metrik liefern.",
"integrationsHint": "Neue Datenquellen verbindest oder trennst du auf der Integrationen-Seite.",
"integrationsHintLink": "Integrationen öffnen",
"cardTitle": "Quellen-Priorität pro Metrik",
"help": "Liefern mehrere Quellen denselben Wert am selben Tag, zählt die oberste Quelle als kanonisch. Die übrigen bleiben für die Audit-Spur gespeichert.",
"resetDefaults": "Auf Standard zurücksetzen",
"moveUp": "Nach oben",
"moveDown": "Nach unten",
"saveSuccess": "Quellen-Priorität gespeichert.",
"saveError": "Quellen-Priorität konnte nicht gespeichert werden.",
"resetSuccess": "Quellen-Priorität zurückgesetzt.",
"perMetricToggle": "Pro Metrik anpassen ({count})",
"perMetricHelp": "Metriken mit individueller Reihenfolge. Über diese Liste lässt sich eine einzelne Metrik mit einem Klick auf den Standard zurücksetzen, ohne die anderen anzufassen.",
"perMetricEmpty": "Keine individuellen Anpassungen — jede Metrik nutzt die globale Reihenfolge oben.",
"resetMetric": "Zurücksetzen",
"deviceTypeToggle": "Geräte-Typ-Reihenfolge ({count})",
"deviceTypeHelp": "Innerhalb einer Quelle entscheidet die Geräte-Typ-Reihenfolge. Wenn Apple Watch und iPhone beide Schritte aufzeichnen, zählt der höher gereihte Geräte-Typ.",
"deviceTypeDefault": "Standard-Geräte-Typ-Reihenfolge",
"resetDeviceTypes": "Geräte-Typen zurücksetzen",
"metrics": {
"steps": "Schritte",
"activeEnergy": "Aktive Energie",
"walkingRunningDistance": "Geh- + Laufdistanz",
"flightsClimbed": "Stockwerke",
"sleep": "Schlaf",
"weight": "Gewicht",
"bloodPressure": "Blutdruck",
"pulse": "Puls",
"bodyFat": "Körperfett",
"bodyTemperature": "Körpertemperatur",
"spo2": "Sauerstoffsättigung",
"hrv": "Herzfrequenz-Variabilität",
"restingHeartRate": "Ruhepuls",
"vo2Max": "VO2 max",
"skinTemperature": "Hauttemperatur",
"respiratoryRate": "Atemfrequenz",
"recovery": "Erholung"
},
"sourceLabels": {
"WITHINGS": "Withings",
"APPLE_HEALTH": "Apple Health",
"MANUAL": "Manuelle Eingabe",
"IMPORT": "Import",
"WHOOP": "WHOOP",
"FITBIT": "Fitbit",
"COMPUTED": "Berechnet"
},
"deviceLabels": {
"watch": "Uhr",
"band": "Fitnessband",
"ring": "Ring",
"phone": "Smartphone",
"scale": "Waage",
"other": "Sonstige",
"unknown": "Unbekannt"
}
},
"ai": {
"title": "KI-Auswertungen",
"description": "Provider, Modell, API-Key."
},
"api": {
"title": "API & Tokens",
"description": "Bearer-Tokens für eigene Skripte und Apps — erfasse Messwerte oder Einnahmen von überall."
},
"advanced": {
"title": "Erweitert",
"description": "Opt-in-Schalter für den Forschungsmodus sowie der Notausgang zum unwiderruflichen Löschen aller Gesundheitsdaten."
},
"export": {
"title": "Export & Import",
"description": "Lade deine Gesundheitsdaten als PDF, CSV oder vollständiges JSON-Backup herunter — oder importiere Daten aus Apple Health oder einer JSON-Datei.",
"otherOptionsHeading": "Weitere Export-Optionen",
"downloadFailed": "Der Export konnte nicht heruntergeladen werden. Bitte versuche es erneut.",
"hero": {
"eyebrow": "Arzttermin",
"valueStatement": "Ein druckbarer PDF-Bericht für den Arzttermin — Vitalwerte, BMI, Blutdruck-Klassifikation, Therapietreue und (optional) Stimmungsverlauf, alles auf wenigen Seiten.",
"cta": "Bericht konfigurieren & generieren",
"formatHint": "PDF · druckfertig"
},
"actions": {
"download": "Herunterladen"
},
"filters": {
"since": "Von",
"until": "Bis"
},
"cards": {
"doctorReport": {
"title": "Arztbericht",
"description": "Druckbares PDF für den Arzttermin — Vitalwerte, BMI, BD-Klassifikation, Therapietreue, Stimmung."
},
"measurementsCsv": {
"title": "Messwerte",
"description": "Gewicht, Blutdruck, Puls, Glukose und alle weiteren Messungen als CSV-Datei."
},
"medicationsCsv": {
"title": "Medikamente",
"description": "Deine Medikamentenliste mit Dosierung, Zeitplan und (optional) der vollständigen Einnahmehistorie.",
"includeIntake": "Einnahmehistorie einschließen"
},
"moodCsv": {
"title": "Stimmung",
"description": "Tägliche Stimmungs-Einträge mit Score, Tags und Zeitstempeln."
},
"fullBackup": {
"title": "Voll-Backup",
"description": "Eine einzige JSON-Datei mit allen Daten — gleiches Format wie das wöchentliche Auto-Backup. Praktisch zum Selbst-Wiederherstellen via Admin-Upload."
},
"cycle": {
"title": "Zyklus",
"description": "Zyklus- und Reproduktionsdaten als FHIR-Dokument — letzte Periode, durchschnittliche Zyklus- und Periodenlänge, aktuelle Phase."
}
},
"import": {
"heading": "Import",
"description": "Importiere Daten aus einem Apple-Health-Export oder einer JSON-Datei. Bereits vorhandene Einträge werden übersprungen, ein erneuter Import ist also unbedenklich.",
"charCount": "{used} / {max} Zeichen",
"appleHealth": {
"title": "Apple Health",
"description": "Lade die export.zip aus der Health-App auf dem iPhone hoch (Profil → Alle Gesundheitsdaten exportieren).",
"dropLabel": "export.zip hier ablegen",
"dropHint": "oder zum Auswählen klicken",
"fileInputLabel": "Eine Apple-Health-export.zip-Datei auswählen",
"choose": "Datei auswählen",
"idempotencyNote": "Ein erneuter Upload desselben Archivs führt zusammen — es entstehen keine Duplikate. Große Archive werden im Hintergrund verarbeitet.",
"uploading": "Wird hochgeladen…",
"uploadFailed": "Upload fehlgeschlagen. Bitte erneut versuchen.",
"rateLimited": "Zu viele Uploads. Bitte kurz warten und erneut versuchen.",
"tooLarge": "Diese Datei ist zu groß (Grenze 1,5 GB).",
"failed": "Der Import ist fehlgeschlagen.",
"rowsImported": "Bisher {count} Einträge importiert",
"doneSummary": "Fertig — {imported} von {read} Datensätzen importiert, {skipped} klinische Datensätze übersprungen.",
"phase": {
"queued": "In Warteschlange…",
"unpacking": "Archiv wird entpackt…",
"parsing": "Export wird gelesen…",
"upserting": "Datensätze werden importiert…"
}
},
"json": {
"title": "JSON-Datei",
"description": "JSON einfügen oder eine .json-Datei mit Messwerten und Stimmungseinträgen hochladen.",
"pasteLabel": "JSON einfügen",
"fileInputLabel": "Eine JSON-Datei zum Import auswählen",
"schemaHint": "Zwei Arrays: measurements und moodEntries.",
"docsLink": "Schema und Beispiel ansehen.",
"uploadFile": "Datei hochladen",
"downloadExample": "Beispiel herunterladen",
"import": "Importieren",
"invalidJson": "Das ist kein gültiges JSON. Bitte die Syntax prüfen und erneut versuchen.",
"invalidPayload": "Die Daten passen nicht zum Import-Schema.",
"rateLimited": "Zu viele Importe in dieser Stunde (Grenze 5). Bitte später erneut versuchen.",
"failed": "Der Import ist fehlgeschlagen. Bitte erneut versuchen.",
"readFailed": "Diese Datei konnte nicht gelesen werden.",
"resultSummary": "{measurements} Messwerte und {moods} Stimmungseinträge importiert, {skipped} übersprungen."
},
"csv": {
"title": "CSV-Datei",
"description": "Messwerte aus einer Tabelle oder einem Messgerät-Export importieren. Eine Zeile pro Wert.",
"pasteLabel": "CSV einfügen",
"fileInputLabel": "CSV-Datei zum Importieren auswählen",
"schemaHint": "Spalten: type, value, unit, measuredAt (mit Zeitzonen-Offset) sowie optional glucoseContext, notes, externalId.",
"docsLink": "Spaltenschema und Beispiel ansehen.",
"uploadFile": "Datei hochladen",
"downloadExample": "Beispiel herunterladen",
"preview": "Vorschau",
"import": "Importieren",
"empty": "Bitte vor dem Import mindestens eine CSV-Zeile hinzufügen.",
"rateLimited": "Zu viele Importe in dieser Stunde (Limit 5). Bitte später erneut versuchen.",
"tooLarge": "Diese Datei ist zu groß (Limit 16 MB).",
"invalidPayload": "Die CSV konnte nicht gelesen werden. Bitte die Kopfzeile prüfen und erneut versuchen.",
"failed": "Der Import ist fehlgeschlagen. Bitte erneut versuchen.",
"readFailed": "Diese Datei konnte nicht gelesen werden.",
"previewSummary": "Vorschau: {inserted} würden importiert, {skipped} übersprungen.",
"resultSummary": "{inserted} neu importiert und {updated} aktualisiert, {skipped} übersprungen.",
"rowError": "Zeile {line}: {reason}"
}
}
},
"about": {
"title": "Über diese App",
"description": "Version, Lizenz, Links."
},
"sharing": {
"title": "Freigabe",
"description": "Erstelle einen schreibgeschützten Link, um deine Gesundheitsakte mit einer Ärztin oder einem Arzt zu teilen."
},
"insights": {
"title": "Insights",
"description": "Reihenfolge der Übersicht und der Navigations-Pills."
},
"medications": {
"title": "Medikamente",
"description": "Listenansicht und Reihenfolge der Medikamente."
},
"mood": {
"title": "Stimmungs-Tags",
"description": "Gruppen, Tags und Reihenfolge der Tag-Auswahl."
},
"reminders": {
"title": "Erinnerungen & Benachrichtigungen",
"description": "Ein Ort für jede Erinnerung — woran und wann erinnert wird — und die Kanäle, die sie zustellen.",
"categoriesGroup": "Erinnerungen",
"channelsGroup": "Zustellkanäle",
"medication": {
"title": "Medikamenten-Erinnerungen",
"description": "Einnahmezeiten und Zeitfenster, je Medikament eingestellt."
},
"vorsorge": {
"title": "Vorsorge",
"description": "Wiederkehrende Untersuchungen und Messungen, inklusive Ort."
},
"mood": {
"title": "Stimmungs-Check-in",
"description": "Eine tägliche Erinnerung, dein Befinden zu erfassen."
},
"lowStock": {
"title": "Reichweite bei Restbestand",
"description": "Werde gewarnt, bevor ein Medikament zur Neige geht."
},
"coach": {
"title": "Coach-Hinweis",
"description": "Proaktive Impulse vom KI-Coach."
},
"channels": {
"title": "Benachrichtigungskanäle",
"description": "APNs, Telegram, ntfy, Web Push, Webhook und E-Mail."
}
}
},
"profile": "Profil",
"language": "Sprache",
"languageDescription": "Wähle die Anzeigesprache der Anwendung.",
"timeFormat": {
"title": "Stundenformat",
"description": "Bestimmt, ob Uhrzeiten im 24-Stunden- oder 12-Stunden-Format (AM/PM) angezeigt werden.",
"auto": "Automatisch (Sprache)",
"h24": "24 Stunden",
"h12": "12 Stunden (AM/PM)",
"saved": "Stundenformat gespeichert.",
"saveError": "Speichern des Stundenformats fehlgeschlagen."
},
"username": "Benutzername",
"height": "Körpergröße (cm)",
"dateOfBirth": "Geburtsdatum",
"dateOfBirthHint": "Wird für die automatische Berechnung der Blutdruck-Zielwerte benötigt.",
"gender": "Geschlecht",
"genderNone": "Keine Angabe",
"genderMale": "Männlich",
"genderFemale": "Weiblich",
"genderHint": "Wird für geschlechtsspezifische Zielwerte verwendet.",
"timezone": "Zeitzone",
"timezoneHint": "Wird für Diagrammachsen, Erinnerungszeiten, Export-Zeitstempel und den Coach-Kontext verwendet. Gespeicherte Daten bleiben unverändert.",
"timezoneInvalid": "Keine gültige IANA-Zeitzone.",
"profileSaved": "Profil gespeichert",
"avatar": {
"title": "Profilfoto",
"description": "Lade ein Foto hoch, das auf deinem eigenen Server gespeichert wird. Es erscheint überall in der App anstelle eines externen Avatar-Dienstes.",
"upload": "Foto hochladen",
"replace": "Foto ersetzen",
"remove": "Entfernen",
"hint": "JPEG, PNG oder WebP. Bis zu 2 MB und 2048×2048 Pixel.",
"uploaded": "Profilfoto aktualisiert",
"removed": "Profilfoto entfernt",
"invalidType": "Nicht unterstützter Bildtyp. Verwende JPEG, PNG oder WebP.",
"tooLarge": "Das Bild überschreitet das Limit von 2 MB.",
"error": "Profilfoto konnte nicht aktualisiert werden. Bitte versuche es erneut."
},
"changePassword": "Passwort ändern",
"changePasswordDescription": "Ersetze dein aktuelles Passwort durch ein neues.",
"passwordReset": "Passwort-Reset",
"currentPassword": "Aktuelles Passwort",
"newPassword": "Neues Passwort",
"confirmNewPassword": "Neues Passwort bestätigen",
"passwordMismatch": "Neue Passwörter stimmen nicht überein",
"passwordUpdated": "Passwort erfolgreich geändert",
"passkeys": "Passkeys",
"registeredPasskeys": "Registrierte Passkeys",
"passkeysDescription": "Passkeys ermöglichen sicheres Anmelden ohne Passwort.",
"passkeyName": "Name",
"passkeyDevice": "Gerät",
"passkeyBackup": "Backup",
"passkeyCreated": "Erstellt",
"passkeyActions": "Aktionen",
"noPasskeys": "Keine Passkeys registriert.",
"addPasskey": "Passkey hinzufügen",
"passkeyAdded": "Passkey erfolgreich hinzugefügt!",
"passkeyOptionsError": "Konnte Passkey-Optionen nicht laden",
"passkeyRegistrationFailed": "Fehler bei Passkey-Registrierung",
"passkeyRegistrationCancelled": "Passkey-Registrierung abgebrochen",
"passkeyNotSupported": "Dein Browser oder Gerät unterstützt Passkeys noch nicht. Bitte einen anderen Browser oder ein anderes Gerät verwenden.",
"passkeyAlreadyRegistered": "Dieses Gerät ist bereits als Passkey für dein Konto registriert.",
"passkeySecurityBlocked": "Dein Browser hat die Passkey-Anfrage aus Sicherheitsgründen blockiert. Bitte auf einer vertrauenswürdigen HTTPS-URL erneut versuchen.",
"passkeyTimeout": "Die Passkey-Aufforderung ist abgelaufen. Bitte versuche es erneut.",
"passkeyUnknownError": "Passkey-Registrierung fehlgeschlagen: {message}",
"deletePasskey": "Passkey löschen?",
"deletePasskeyDescription": "Der Passkey wird unwiderruflich gelöscht.",
"singleDevice": "Einzelgerät",
"multiDevice": "Multi-Gerät",
"backedUp": "gesichert",
"telegram": "Telegram",
"telegramDescription": "Medikamenten-Erinnerungen per Bot.",
"botToken": "Bot-Token",
"chatId": "Chat-ID",
"enableNotifications": "Benachrichtigungen aktivieren",
"telegramStep1": "1. Erstelle einen Bot über @BotFather in Telegram und kopiere den Token.",
"telegramStep2": "2. Sende /start an deinen Bot, um den Chat zu aktivieren.",
"telegramStep3": "3. Finde deine Chat-ID über @userinfobot oder die Bot-API.",
"ntfy": "ntfy",
"ntfyDescription": "Benachrichtigungen über ntfy (self-hosted oder ntfy.sh).",
"ntfyEnable": "ntfy aktivieren",
"ntfyServer": "Server-URL",
"ntfyTopic": "Topic",
"ntfyAuthToken": "Auth-Token (optional)",
"ntfyAuthTokenHint": "Nur nötig bei privaten Topics mit Zugangsschutz.",
"webhook": "Webhook",
"webhookDescription": "Benachrichtigungen per POST an eine beliebige URL — Gotify, Discord, Slack, Matrix oder Home Assistant.",
"webhookEnable": "Webhook aktivieren",
"webhookUrl": "Webhook-URL",
"webhookUrlHint": "Die vollständige URL für den POST. Muss öffentlich erreichbar sein.",
"webhookHeaderName": "Header-Name (optional)",
"webhookHeaderValue": "Header-Wert (optional)",
"email": "E-Mail",
"emailDescription": "Warnungen und Erinnerungen per E-Mail empfangen.",
"emailEnable": "E-Mail aktivieren",
"emailRecipient": "Empfängeradresse",
"webPush": "Browser-Push",
"webPushDescription": "Erhalte Benachrichtigungen direkt im Browser, auch wenn HealthLog nicht geöffnet ist.",
"webPushNotSupported": "Dein Browser unterstützt keine Push-Benachrichtigungen.",
"webPushDenied": "Push-Benachrichtigungen wurden blockiert. Erlaube sie in den Browser-Einstellungen.",
"webPushNotConfigured": "Web Push ist serverseitig nicht konfiguriert.",
"webPushSubscribe": "Push aktivieren",
"webPushUnsubscribe": "Push deaktivieren",
"webPushSubscribed": "Push-Benachrichtigungen aktiviert!",
"webPushUnsubscribed": "Push-Benachrichtigungen deaktiviert.",
"webPushSubscribeFailed": "Aktivierung fehlgeschlagen",
"webPushActive": "Aktiv",
"kiInsightsDescription": "Optional: Hinterlege deinen OpenAI-Key für tägliche, automatische Auswertungen in den Insights.",
"codexConnected": "ChatGPT erfolgreich verbunden! Insights sind jetzt aktiv.",
"codexDisconnected": "ChatGPT-Verbindung getrennt.",
"codexConnectionFailed": "ChatGPT-Verbindung fehlgeschlagen. Bitte versuche es erneut.",
"rawData": "Rohdaten mitsenden",
"rawDataOnDescription": "Es werden aggregierte Kennzahlen plus anonymisierte einzelne Messpunkte der letzten 30 Tage mit Zeitbezug gesendet — ohne Name, E-Mail oder direkte Kontodaten.",
"rawDataOffDescription": "Es werden nur zusammengefasste Werte gesendet (z. B. Durchschnitt, Trend, Minimum/Maximum) — ohne einzelne Messpunkte und exakte Zeitbezüge.",
"rawDataWarning": "Rohdaten aktiv: Der Provider erhält zusätzlich anonymisierte Messpunkte der letzten 30 Tage für eine präzisere Auswertung.",
"regenerateInsights": "Reports neu generieren",
"regenerateSuccess": "Reports wurden neu generiert",
"regenerateRateLimit": "Bitte warte — du hast das stündliche Limit für Analysen erreicht.",
"lastGeneratedAt": "Zuletzt generiert",
"ai": {
"chatgptConnectedBadge": "ChatGPT verbunden",
"adminAiActiveBadge": "Admin-Provider aktiv",
"connectionExpiredBadge": "Verbindung abgelaufen",
"connectedSince": "Verbunden seit {when}.",
"deviceCodeHeading": "Verbindung auf chatgpt.com abschließen",
"deviceCodeStep1": "Öffne diesen Link auf einem beliebigen Gerät:",
"deviceCodeStep2": "Gib diesen Einmalcode ein:",
"deviceCodeStep3": "Bestätige die Verbindung — diese Seite aktualisiert sich automatisch.",
"deviceCodeCopy": "kopieren",
"deviceCodeWaiting": "Warte auf Bestätigung…",
"deviceCodeCancel": "Abbrechen",
"oauthNotConfigured": "ChatGPT-OAuth ist auf dieser Instanz nicht konfiguriert — nutze stattdessen einen eigenen API-Key unten.",
"modelLabel": "Modell",
"modelOptionDefault": "— Standard —",
"modelOptionCustom": "Eigenes…",
"customModelLabel": "Eigener Modellname",
"anthropicKeyLabel": "Anthropic API-Key",
"baseUrlLabel": "Base URL",
"localKeyLabel": "API-Key (optional)",
"savedPreview": "(gespeichert {preview})",
"savedShort": "(gespeichert)",
"saveCta": "Speichern",
"saved": "Gespeichert",
"saveFailed": "Speichern fehlgeschlagen",
"errorGeneric": "Fehler",
"providerChain": {
"types": {
"codex": "ChatGPT (Codex)",
"openai": "OpenAI (eigener Key)",
"anthropic": "Anthropic (Claude)",
"local": "Lokales Modell",
"admin-openai": "Admin-OpenAI"
},
"title": "Fallback-Kette",
"description": "Wenn der primäre Provider ausfällt, läuft HealthLog die Kette der Reihe nach durch. Reihenfolge per Pfeile ändern, Schalter deaktiviert einen Eintrag ohne ihn zu entfernen.",
"moveUp": "Nach oben",
"moveDown": "Nach unten",
"removeFromChain": "Aus Kette entfernen",
"addProvider": "Provider hinzufügen",
"addNoneAvailable": "Alle Provider sind bereits in der Kette",
"saveOrder": "Reihenfolge speichern",
"saved": "Kette gespeichert",
"saveFailed": "Speichern der Kette fehlgeschlagen",
"resetDefaults": "Zurücksetzen",
"resetConfirmTitle": "Kette auf Standard zurücksetzen?",
"resetConfirmBody": "Die Kette wird auf Codex → OpenAI → Anthropic → Lokal → Admin-OpenAI zurückgesetzt. Gespeicherte Zugangsdaten bleiben erhalten."
},
"providerCardTitle": "KI-Anbieter",
"activeProviderHeading": "Aktiver Provider",
"activeProviderBody": "Wähle den Provider, der zuerst genutzt wird. Das Formular darunter konfiguriert ausschließlich den ausgewählten Provider; die Fallback-Kette unten regelt, was passiert, wenn er ausfällt.",
"activeProviderLabel": "Primärer Provider",
"providerConfigTitle": "Provider-Konfiguration",
"providerSelect": {
"codex": "ChatGPT-Account (Codex)",
"openai": "OpenAI (eigener API-Key)",
"anthropic": "Anthropic (Claude)",
"local": "Lokales Modell (OpenAI-kompatibel)",
"admin-openai": "Admin-OpenAI"
},
"openai": {
"modelSelect": "Modell",
"modelOptionCustom": "Eigener Slug…",
"modelCustomLabel": "Eigener Modell-Slug",
"modelCustomPlaceholder": "gpt-5",
"baseUrlLabel": "Base URL (erweitert)",
"baseUrlPlaceholder": "https://api.openai.com/v1",
"baseUrlHelp": "Nur überschreiben, wenn ein OpenAI-kompatibles Gateway genutzt wird. Für OpenAI selbst leer lassen.",
"showAdvanced": "Erweitert anzeigen",
"hideAdvanced": "Erweitert ausblenden",
"apiKey": "API-Key",
"apiKeyPlaceholder": "sk-…"
},
"codex": {
"statusConnected": "Verbunden",
"statusDisconnected": "Nicht verbunden",
"statusExpired": "Verbindung abgelaufen",
"connectButton": "Mit ChatGPT verbinden",
"disconnectButton": "Trennen",
"modelSlugLabel": "Modell-Slug",
"modelSlugBody": "Codex nutzt das Modell, auf das dein ChatGPT-Abo routet. Die Umgebungsvariable CODEX_MODEL kann das instanzweit überschreiben.",
"lastInsight": "Letzte Analyse: {when}"
},
"adminOpenai": {
"title": "Admin-OpenAI",
"body": "Vom Betreiber bereitgestellter OpenAI-Key, genutzt als letzter Fallback ohne persönlichen Provider. Hier ist nichts einzustellen.",
"notConfigured": "Der Betreiber hat keinen geteilten OpenAI-Key auf dieser Instanz konfiguriert."
},
"testProvider": "Aktiven Provider testen",
"testSuccess": "OK — {provider} ({model})",
"testFailedShort": "Test fehlgeschlagen: {message}",
"testUnexpectedResponse": "Verbindung zum KI-Anbieter fehlgeschlagen — unerwartete Antwort vom Server.",
"testReasonCredentials": "Der Anbieter hat die Anmeldedaten abgelehnt — melde dich in den KI-Einstellungen erneut an.",
"testReasonRateLimited": "Der Anbieter hat die Anfrage gedrosselt — versuche es in Kürze erneut.",
"testReasonServerError": "Der KI-Anbieter hat einen Serverfehler zurückgegeben.",
"testReasonUnreachable": "Der KI-Anbieter war nicht erreichbar.",
"coachMemory": {
"title": "Woran sich der Coach erinnert",
"description": "Dauerhafte Angaben, die du dem Coach mitgeteilt hast. Er nutzt sie, damit seine Antworten relevant bleiben. Entferne alles, was er besser vergessen sollte.",
"empty": "Der Coach hat noch keine Angaben gespeichert. Im Gespräch merkt er sich dauerhafte Details, die du teilst – deine Ziele, Beschwerden, Vorlieben – und du kannst sie hier jederzeit löschen.",
"learnedPrefix": "gelernt {when}",
"categoryPreference": "Vorlieben",
"categoryCondition": "Beschwerden",
"categoryGoal": "Ziele",
"categoryConstraint": "Einschränkungen",
"categoryContext": "Kontext",
"forget": "Vergessen",
"forgetAria": "Diese Angabe vergessen",
"forgetAll": "Alles vergessen",
"forgetAllConfirmTitle": "Alles vergessen, woran sich der Coach erinnert?",
"forgetAllConfirmBody": "Dadurch werden alle gespeicherten Angaben entfernt. Der Coach beginnt beim nächsten Gespräch von vorn. Das lässt sich nicht rückgängig machen.",
"forgetAllConfirmAction": "Alles vergessen",
"cancel": "Abbrechen",
"summaryNote": "Der Coach behält außerdem eine kurze, fortlaufende Zusammenfassung jedes Gesprächs. Dafür gibt es keine Einzelsteuerung – wenn du ein Gespräch löschst, wird auch dessen Zusammenfassung entfernt.",
"loadError": "Konnte nicht laden, woran sich der Coach erinnert.",
"forgotToast": "Angabe vergessen.",
"forgotError": "Konnte diese Angabe nicht vergessen. Bitte erneut versuchen.",
"clearedToast": "{count} gespeicherte Angaben vergessen.",
"clearError": "Konnte die gespeicherten Angaben nicht löschen. Bitte erneut versuchen."
},
"disableCoach": {
"title": "Coach ausblenden",
"description": "Versteckt den Coach-Button und das Coach-Panel auf allen Seiten.",
"toggleAria": "Coach-Button und Coach-Panel ausblenden",
"savedHidden": "Coach ist ausgeblendet.",
"savedShown": "Coach ist sichtbar.",
"saveError": "Speichern fehlgeschlagen. Bitte erneut versuchen."
},
"aboutMe": {
"title": "Über mich",
"description": "Persönlicher Kontext, den Coach und Tagesbriefing zusätzlich zu deinen Daten lesen.",
"placeholder": "Z. B. Schichtarbeit, vegetarische Ernährung, Knieverletzung, Training für einen Halbmarathon …",
"charCount": "{used} / {max} Zeichen",
"clear": "Leeren",
"save": "Speichern",
"savedToast": "Über-mich-Notiz gespeichert.",
"clearedToast": "Über-mich-Notiz gelöscht.",
"saveError": "Speichern fehlgeschlagen. Bitte versuche es erneut.",
"loadError": "Die Notiz konnte nicht geladen werden.",
"hint": "Wird als zusätzlicher Kontext an Coach und Tagesbriefing übergeben. Leer lassen, um nichts mitzusenden.",
"profileHint": "Alter und Geschlecht stammen aus deinem Profil und werden automatisch mitgegeben.",
"freeTextLabel": "Über mich (Freitext)",
"conditionsLabel": "Chronische Erkrankungen",
"conditionsPlaceholder": "Z. B. Bluthochdruck, Typ-2-Diabetes …",
"allergiesLabel": "Allergien & Unverträglichkeiten",
"allergiesPlaceholder": "Z. B. Laktoseintoleranz, Penicillin-Allergie …",
"focusLabel": "Worauf soll der Coach achten?",
"focusPlaceholder": "Z. B. behalte meinen Blutdruck im Blick, motiviere mich zu mehr Bewegung …",
"completeness": "{answered} von {total} beantwortet",
"questionsTitle": "Der Coach hat Rückfragen",
"questionsOpenCoach": "Im Coach beantworten"
}
},
"dashboard": {
"units": {
"title": "Einheiten",
"description": "Lege fest, wie Distanzen und Geschwindigkeiten in Diagrammen und Kacheln angezeigt werden.",
"metric": "Metrisch",
"imperial": "Imperial",
"saved": "Einheiten-Einstellung gespeichert.",
"saveError": "Einheiten-Einstellung konnte nicht gespeichert werden."
}
},
"withings": "Withings",
"withingsDescription": "Verbinde deine Withings-Waage und Blutdruckmessgeräte.",
"withingsCredentials": "API-Zugangsdaten",
"withingsClientId": "Client-ID",
"withingsClientSecret": "Client-Secret",
"withingsCredentialsSaved": "Zugangsdaten gespeichert",
"withingsCredentialsSavedPlaceholder": "Gespeichert — neue eingeben zum Ersetzen",
"withingsCredentialsSavedPlaceholderSecret": "Gespeichert — neues eingeben zum Ersetzen",
"withingsSaveCredentials": "Speichern",
"configured": "Konfiguriert",
"withingsSync": "Jetzt synchronisieren",
"withingsFullSync": "Alle Daten synchronisieren",
"withingsFullSyncTitle": "Vollsynchronisierung?",
"withingsFullSyncDescription": "Alle verfügbaren Withings-Daten werden vollständig synchronisiert. Das kann je nach Historie etwas dauern.",
"withingsSyncResult": "{count} Messwerte synchronisiert",
"withingsFullSyncResult": "{count} Messwerte vollständig synchronisiert",
"withingsSyncFailed": "Sync fehlgeschlagen",
"withingsOauthConnected": "Withings verbunden — der erste Sync startet im Hintergrund.",
"withingsOauthFailed": "Withings-Verbindung fehlgeschlagen",
"withingsOauthError": {
"csrf1": "Die Sicherheitsprüfung ist fehlgeschlagen, weil das Browser-Cookie fehlte. Starte die Verbindung bitte erneut im selben Browser.",
"replay": "Dieser Bestätigungslink wurde bereits verwendet. Starte die Verbindung bitte erneut.",
"state": "Die Antwort von Withings passte zu keiner offenen Verbindungsanfrage. Starte die Verbindung bitte erneut.",
"expired": "Die Verbindungsanfrage ist abgelaufen. Starte die Verbindung erneut und schließe die Freigabe innerhalb weniger Minuten ab.",
"cross_user": "Die Antwort gehört zu einer Anfrage eines anderen Kontos. Starte die Verbindung bitte aus deinem eigenen Konto neu.",
"nocode": "Withings hat keinen Freigabe-Code übermittelt. Versuche es erneut und erlaube den Zugriff im Withings-Dialog.",
"nocreds": "Es sind keine Withings-API-Zugangsdaten hinterlegt. Speichere zuerst Client-ID und Client-Secret, dann verbinde erneut.",
"token": "Der Token-Austausch mit Withings ist fehlgeschlagen. Prüfe Client-ID und Client-Secret und versuche es erneut.",
"generic": "Unbekannter Fehler bei der Verbindung. Starte die Verbindung bitte erneut."
},
"integrationsSourcesHint": "Liefern mehrere Quellen dieselbe Metrik, entscheidet die Quellen-Priorität, welcher Wert zählt.",
"integrationsSourcesHintLink": "Quellen-Priorität öffnen",
"withingsSynchronize": "Synchronisieren",
"withingsDisconnect": "Trennen",
"withingsDisconnectTitle": "Withings-Verbindung trennen?",
"withingsDisconnectDescription": "Die Verbindung zu Withings wird getrennt. Bereits synchronisierte Daten bleiben erhalten.",
"withingsConnect": "Mit Withings verbinden",
"withingsNoCredentials": "Bitte zuerst die API-Zugangsdaten oben eingeben, um Withings zu verbinden.",
"whoop": "WHOOP",
"whoopDescription": "Verbinde dein WHOOP-Band, um Erholung, Schlaf, Belastung und Workouts zu synchronisieren.",
"whoopOverlapNote": "Wenn WHOOP und eine weitere Quelle denselben Vitalwert liefern – Ruhepuls, Blutsauerstoff, Körpertemperatur, Atemfrequenz oder Schlafphasen –, können beide Werte angezeigt werden, bis sich ein künftiges Update auf eine bevorzugte Quelle festlegt.",
"whoopCredentials": "API-Zugangsdaten",
"whoopCredentialsHelp": "Registriere deine eigene WHOOP-Entwickler-App und füge hier Client ID und Client Secret ein.",
"whoopClientId": "Client ID",
"whoopClientSecret": "Client Secret",
"whoopCredentialsSaved": "Zugangsdaten gespeichert",
"whoopCredentialsSavedPlaceholder": "Gespeichert — neu eingeben zum Ersetzen",
"whoopCredentialsSavedPlaceholderSecret": "Gespeichert — neu eingeben zum Ersetzen",
"whoopSaveCredentials": "Speichern",
"whoopSync": "Jetzt synchronisieren",
"whoopFullSync": "Alle Daten synchronisieren",
"whoopFullSyncTitle": "Vollständige Synchronisierung?",
"whoopFullSyncDescription": "Der gesamte verfügbare WHOOP-Verlauf wird vollständig synchronisiert. Je nach Verlauf kann das einige Zeit dauern.",
"whoopSyncResult": "{count} Messwerte synchronisiert",
"whoopSyncFailed": "Synchronisierung fehlgeschlagen",
"whoopSynchronize": "Synchronisieren",
"whoopDisconnect": "Trennen",
"whoopDisconnectTitle": "WHOOP trennen?",
"whoopDisconnectDescription": "Die Verbindung zu WHOOP wird getrennt. Bereits synchronisierte Daten bleiben erhalten.",
"whoopConnect": "Mit WHOOP verbinden",
"whoopNoCredentials": "Bitte gib oben deine API-Zugangsdaten ein, um WHOOP zu verbinden.",
"whoopBackfillInProgress": "Dein WHOOP-Verlauf wird im Hintergrund importiert…",
"whoopOauthConnected": "WHOOP verbunden — die erste Synchronisierung startet im Hintergrund.",
"whoopOauthFailed": "WHOOP-Verbindung fehlgeschlagen",
"whoopOauthError": {
"csrf1": "Die Sicherheitsprüfung ist fehlgeschlagen, weil das Browser-Cookie fehlte. Bitte starte die Verbindung im selben Browser erneut.",
"state": "Die Antwort von WHOOP passte zu keiner offenen Verbindungsanfrage. Bitte starte die Verbindung erneut.",
"expired": "Die Verbindungsanfrage ist abgelaufen, bevor sie abgeschlossen wurde. Bitte starte die Verbindung erneut.",
"cross_user": "Die Antwort gehört zu einer Anfrage eines anderen Kontos. Bitte starte die Verbindung aus deinem eigenen Konto erneut.",
"nocode": "WHOOP hat keinen Autorisierungscode zurückgegeben. Versuche es erneut und erlaube den Zugriff im WHOOP-Dialog.",
"nocreds": "WHOOP ist nicht konfiguriert. Hinterlege oben deine WHOOP-OAuth-Zugangsdaten und versuche es erneut.",
"token": "Der Token-Austausch mit WHOOP ist fehlgeschlagen. Bitte starte die Verbindung erneut.",
"generic": "Unbekannter Fehler bei der Verbindung. Bitte starte die Verbindung erneut."
},
"fitbit": "Google Health",
"fitbitTag": "Fitbit & Pixel",
"fitbitDescription": "Verbinde Google Health, um deine Fitbit- und Pixel-Watch-Werte zu synchronisieren — Gewicht, Körperfett, Ruhepuls, Sauerstoffsättigung, Herzfrequenzvariabilität und mehr.",
"fitbitOverlapNote": "Wenn Google Health und eine andere Quelle denselben Vitalwert liefern — Ruhepuls, Sauerstoffsättigung, Körpertemperatur oder Atemfrequenz —, siehst du möglicherweise beide Werte, bis sich ein künftiges Update auf eine bevorzugte Quelle festlegt.",
"fitbitExperimentalBadge": "Experimentell",
"fitbitExperimentalNote": "Diese Integration befindet sich in der Beta — die Datenabdeckung und die Feldzuordnung werden noch gegen echte Google-Health-Konten geprüft, daher können einzelne Werte fehlen oder sich in einem künftigen Update ändern.",
"fitbitCredentials": "API-Zugangsdaten",
"fitbitCredentialsHelp": "Registriere deinen eigenen Google-Cloud-OAuth-Client für die Google-Health-API und füge hier dessen Client-ID und Client-Secret ein.",
"fitbitClientId": "Client-ID",
"fitbitClientSecret": "Client-Secret",
"fitbitCredentialsSaved": "Zugangsdaten gespeichert",
"fitbitCredentialsSavedPlaceholder": "Gespeichert — neu eingeben zum Ersetzen",
"fitbitCredentialsSavedPlaceholderSecret": "Gespeichert — neu eingeben zum Ersetzen",
"fitbitSaveCredentials": "Speichern",
"fitbitSync": "Jetzt synchronisieren",
"fitbitFullSync": "Alle Daten synchronisieren",
"fitbitFullSyncTitle": "Vollständige Synchronisierung?",
"fitbitFullSyncDescription": "Der gesamte verfügbare Google-Health-Verlauf wird vollständig synchronisiert. Das kann je nach Umfang deines Verlaufs einige Zeit dauern.",
"fitbitSyncResult": "{count} Messungen synchronisiert",
"fitbitSyncFailed": "Synchronisierung fehlgeschlagen",
"fitbitSynchronize": "Synchronisieren",
"fitbitDisconnect": "Trennen",
"fitbitDisconnectTitle": "Google Health trennen?",
"fitbitDisconnectDescription": "Die Verbindung zu Google Health wird getrennt. Zuvor synchronisierte Daten bleiben erhalten.",
"fitbitConnect": "Mit Google Health verbinden",
"fitbitNoCredentials": "Bitte gib oben deine API-Zugangsdaten ein, um Google Health zu verbinden.",
"fitbitBackfillInProgress": "Dein Google-Health-Verlauf wird im Hintergrund importiert…",
"fitbitOauthConnected": "Google Health verbunden — die erste Synchronisierung startet im Hintergrund.",
"fitbitOauthFailed": "Google-Health-Verbindung fehlgeschlagen",
"fitbitOauthError": {
"csrf1": "Die Sicherheitsprüfung ist fehlgeschlagen, weil das Browser-Cookie fehlte. Bitte starte die Verbindung im selben Browser erneut.",
"state": "Die Antwort von Google passte zu keiner offenen Verbindungsanfrage. Bitte starte die Verbindung erneut.",
"expired": "Die Verbindungsanfrage ist abgelaufen, bevor sie abgeschlossen wurde. Bitte starte die Verbindung erneut.",
"cross_user": "Die Antwort gehört zu einer Anfrage eines anderen Kontos. Bitte starte die Verbindung aus deinem eigenen Konto erneut.",
"nocode": "Google hat keinen Autorisierungscode zurückgegeben. Versuche es erneut und erlaube den Zugriff im Google-Dialog.",
"nocreds": "Google Health ist nicht konfiguriert. Hinterlege oben deine Google-OAuth-Zugangsdaten und versuche es erneut.",
"token": "Der Token-Austausch mit Google ist fehlgeschlagen. Bitte starte die Verbindung erneut.",
"generic": "Unbekannter Fehler bei der Verbindung. Bitte starte die Verbindung erneut."
},
"integrations": {
"withings": {
"reconnect": {
"banner": {
"title": "Aktivitäts-Sync verfügbar",
"body": "Deine Withings-Verbindung wurde autorisiert, bevor der Aktivitäts-Sync hinzugefügt wurde. Verbinde einmal neu, um Schritte, aktive Energie, Geh- und Laufdistanz sowie Stockwerke aus deinen Withings-Geräten zu übernehmen.",
"action": "Withings neu verbinden"
}
}
}
},
"integrationPill": {
"connected": "Verbunden",
"errorReconnect": "Fehler — neu verbinden",
"warningServerError": "Verbunden, aber Serverfehler",
"parkedReconnect": "Pausiert — manuell wieder verbinden",
"notConnected": "Nicht verbunden",
"justNow": "gerade eben",
"minutesAgo": "vor {count} min",
"hoursAgo": "vor {count} Std.",
"daysAgo": "vor {count} d",
"ariaLabel": "Integrationsstatus",
"resumeCta": "Wieder verbinden",
"resumeSuccess": "Integration wieder aktiv",
"resumeError": "Wieder verbinden fehlgeschlagen"
},
"apiTokens": "API-Tokens",
"apiTokensDescription": "Erstelle API-Tokens für die externe Medikamenten-Einnahme (z.B. Shortcuts, Automationen).",
"tokenNamePlaceholder": "Token-Name (z.B. iPhone Shortcut)",
"tokenCreated": "Token erstellt — kopiere ihn jetzt! Er wird nicht erneut angezeigt.",
"tokenCopy": "Token kopieren",
"tokenCopied": "Token in die Zwischenablage kopiert",
"tokenCopyFailed": "Token konnte nicht kopiert werden",
"tokenRevokeFailed": "Token konnte nicht widerrufen werden. Bitte erneut versuchen.",
"tokenRevoke": "Token widerrufen?",
"tokenRevokeAction": "Token widerrufen",
"tokenRevokeDescription": "Der Token wird unwiderruflich deaktiviert. Anwendungen, die ihn nutzen, verlieren den Zugriff.",
"tokenRevoked": "Widerrufen",
"tokenExpired": "Abgelaufen",
"tokenActive": "Aktiv",
"activeTokensTitle": "Aktive Tokens",
"revokedTokensTitle": "Widerrufene Tokens ({count})",
"tokenTableName": "Name",
"tokenTablePermissions": "Berechtigungen",
"tokenTableStatus": "Status",
"tokenTableCreated": "Erstellt",
"tokenTableLastUsed": "Zuletzt genutzt",
"tokenTableActions": "Aktionen",
"noActiveTokens": "Keine aktiven Tokens vorhanden.",
"tokenNeverUsed": "Nie",
"apiEndpointsTitle": "API-Endpoints",
"apiEndpointsDescription": "Übersicht der derzeit verfügbaren externen Endpoint(s) für Token-basierte Eingaben.",
"apiEndpointMethod": "Methode",
"apiEndpointPath": "Pfad",
"apiEndpointAuth": "Authentifizierung",
"apiEndpointExample": "Body-Beispiel",
"collapse": "Einklappen",
"expand": "Ausklappen",
"dangerZone": "Alle Daten löschen",
"dangerZoneTitle": "Gefahrenzone",
"dangerZoneDescription": "Löscht alle deine Gesundheitsdaten und Integrationen. Dein Benutzerkonto bleibt erhalten.",
"dangerZoneConfirm": "Alle Daten löschen?",
"dangerZoneConfirmDescription": "Dieser Vorgang löscht alle deine Gesundheitsdaten und Integrationen unwiderruflich. Dein Benutzerkonto bleibt erhalten.",
"dangerZoneSuccess": "Alle persönlichen Daten wurden gelöscht",
"dangerZoneDeleteFailed": "Löschen fehlgeschlagen",
"finalDelete": "Endgültig löschen",
"deleteAccountCardTitle": "Konto vollständig löschen",
"deleteAccountCardDescription": "Löscht dein Konto inklusive Passkeys, Audit-Log und Sessions. Dieser Vorgang kann nicht rückgängig gemacht werden.",
"deleteAccountCta": "Konto löschen",
"deleteAccountConfirmTitle": "Konto endgültig löschen?",
"deleteAccountConfirmDescription": "Dein Konto, alle Gesundheitsdaten, Passkeys, Sessions und Audit-Einträge werden unwiderruflich gelöscht. Du wirst danach automatisch abgemeldet.",
"deleteAccountSuccess": "Konto wurde gelöscht — du wirst abgemeldet.",
"deleteAccountFailed": "Konto konnte nicht gelöscht werden",
"deleteAccountFinal": "Endgültig löschen",
"saved": "Gespeichert",
"savingError": "Fehler beim Speichern",
"moodLogTitle": "moodLog",
"moodLogDescription": "Stimmungseinträge übernehmen.",
"moodLogDeprecated": "Veraltet: Stimmung wird jetzt nativ in HealthLog mit Tags und Faktoren erfasst. Diese Integration funktioniert weiterhin, wird aber in einer künftigen Version entfernt.",
"moodLogUrl": "moodLog URL",
"moodLogUrlPlaceholder": "https://mood.example.com",
"moodLogApiKey": "API-Key",
"moodLogApiKeyPlaceholder": "ml_...",
"moodLogWebhookSecret": "Webhook-Secret",
"moodLogWebhookSecretHelp": "Dieses Secret in moodLog als Webhook-Secret eintragen",
"moodLogSync": "Jetzt synchronisieren",
"moodLogFullSync": "Alle Daten synchronisieren",
"moodLogFullSyncConfirm": "Synchronisieren",
"moodLogFullSyncTitle": "Vollsynchronisierung?",
"moodLogFullSyncDescription": "Alle verfügbaren Stimmungsdaten werden vollständig synchronisiert.",
"moodLogDisconnect": "Trennen",
"moodLogDisconnectTitle": "moodLog trennen?",
"moodLogDisconnectDescription": "Die Verbindung wird getrennt und alle importierten Stimmungsdaten werden gelöscht.",
"moodLogEntries": "Einträge",
"moodLogSyncResult": "{count} Einträge synchronisiert",
"moodLogSyncFailed": "Sync fehlgeschlagen",
"moodLogDisconnected": "moodLog getrennt",
"about": {
"version": "App-Version",
"gitSha": "Build",
"builtAt": "Erstellt {time}",
"builtAtLabel": "Erstellt",
"license": "Lizenz",
"repository": "Quellcode",
"changelog": "Changelog",
"docs": "Dokumentation",
"linksHeading": "Quellen & Dokumentation",
"newerAvailable": "Neue Version: {tag}",
"tourReplay": "Tour ansehen",
"tourReplayHint": "Zeige die Dashboard-Tour — praktisch, falls du sie beim ersten Besuch übersprungen hast."
},
"testConnection": {
"test": "Verbindung testen",
"testing": "Teste…",
"ok": "Verbunden (Latenz {latency} ms)",
"errors": {
"credentials_rejected": "Zugangsdaten abgelehnt — Token prüfen",
"rate_limited": "Vom Upstream rate-limitiert",
"timeout": "Request hat das Zeitlimit überschritten",
"upstream_error": "Upstream hat einen Fehler gemeldet",
"connection_failed": "Verbindung fehlgeschlagen",
"not_configured": "Nicht konfiguriert",
"url_not_public": "URL ist kein öffentlicher Endpunkt",
"url_invalid": "URL ist ungültig",
"redirected": "Endpunkt leitet weiter — URL prüfen",
"endpoint_not_found": "Endpunkt unter der URL nicht gefunden",
"credentials_unreadable": "Zugangsdaten nicht entschlüsselbar",
"upstream_invalid_json": "Upstream-Antwort ist kein JSON",
"vapid_not_configured": "Web Push nicht konfiguriert (VAPID-Keys fehlen)",
"rate_limited_self": "Zu viele Test-Anfragen",
"generic": "Test fehlgeschlagen"
}
},
"notificationStatus": {
"title": "Zustellstatus",
"description": "Pro Kanal aktueller Status; \"Automatisch deaktiviert\" stoppt nach dauerhaften Fehlern.",
"emptyDescription": "Noch keine Kanäle konfiguriert. Lege unten einen Kanal an, um die Zustellung zu überwachen.",
"stateActive": "Aktiv",
"stateAutoDisabled": "Automatisch deaktiviert",
"stateSendingPaused": "Versand pausiert",
"stateManuallyDisabled": "Deaktiviert",
"lastSuccess": "Letzter erfolgreicher Versand",
"lastFailure": "Letzter Fehler",
"consecutiveFailures": "Fehler in Folge",
"disabledReason": "Grund",
"nextRetry": "Nächster Versuch",
"reEnable": "Wieder aktivieren",
"sendTest": "Test senden"
},
"identity": {
"description": "Optionale Angaben für die Gesundheitsakte (PDF-Deckblatt + FHIR-Export). Alle Felder sind freiwillig.",
"fullName": "Vollständiger Name",
"fullNamePlaceholder": "z. B. Erika Mustermann",
"insurer": "Krankenkasse",
"insurerPlaceholder": "z. B. AOK Bayern",
"insuranceNumber": "Versichertennummer (KVNR)",
"insuranceNumberHint": "10 Zeichen: ein Buchstabe + neun Ziffern (z. B. A123456780)."
},
"healthRecord": {
"title": "Gesundheitsakte exportieren",
"description": "Erstelle eine vollständige Gesundheitsakte für die ärztliche Vorlage — als PDF, strukturiert (FHIR) oder als kombiniertes Paket.",
"format": "Format",
"format_pdf": "PDF",
"format_fhir": "Strukturiert (FHIR)",
"format_package": "Paket: PDF + FHIR",
"range": "Zeitraum",
"range90": "Letzte 90 Tage",
"range180": "Letzte 6 Monate",
"range365": "Letzte 12 Monate",
"practiceName": "Praxis (optional)",
"practiceNamePlaceholder": "z. B. Dr. med. Mustermann",
"includedData": "Enthaltene Daten",
"groupVitals": "Vitalwerte",
"groupCardio": "Herz & Fitness",
"groupActivity": "Aktivität & Schlaf",
"weight": "Gewicht",
"bp": "Blutdruck",
"pulse": "Puls",
"oxygenSaturation": "Sauerstoffsättigung",
"bodyFat": "Körperfett",
"bodyComposition": "Körperzusammensetzung",
"restingHeartRate": "Ruhepuls",
"hrv": "Herzfrequenzvariabilität",
"vo2max": "VO₂max",
"steps": "Schritte",
"distance": "Distanz",
"sleep": "Schlaf",
"glucose": "Blutzucker",
"medications": "Medikamente & Therapietreue",
"mood": "Stimmung (standardmäßig aus — sensible Daten)",
"bmi": "BMI",
"includeCharts": "Trend-Diagramme einbetten (nur PDF)",
"includeAiSummary": "KI-Zusammenfassung anhängen (nicht klinisch validiert)",
"fhirNote": "Die strukturierte Ausgabe folgt dem FHIR-R4-Standard (ePA-kompatibel).",
"generate": "Erstellen",
"error": "Export fehlgeschlagen ({code}).",
"labs": "Laborwerte"
},
"globalExcludedInjectionSitesLabel": "Global ausgeschlossene Injektionsstellen",
"globalExcludedInjectionSitesHint": "Hier gelistete Stellen werden für keine Medikation angeboten und beim Erfassen einer Dosis abgelehnt — auch wenn eine Medikation sie bevorzugt.",
"sharing": {
"createTitle": "Neuer Freigabe-Link",
"createDescription": "Der Link ist schreibgeschützt und zeitlich begrenzt. Der Token wird nur einmal bei der Erstellung angezeigt — sichere ihn dann; er lässt sich nicht wiederherstellen.",
"label": "Bezeichnung",
"labelPlaceholder": "z. B. Dr. Schmidt — Jahres-Check-up",
"range": "Tage Verlauf",
"rangeHint": "Wie weit das geteilte Zeitfenster zurückreicht.",
"expiry": "Läuft ab in (Tagen)",
"expiryHint": "Höchstens {max} Tage.",
"expiryInvalid": "Die Gültigkeit muss zwischen 1 und {max} Tagen liegen.",
"fhirApi": "Eingegrenzte FHIR-API erlauben",
"fhirApiHint": "Lasse den Link zusätzlich zur Seitenansicht einen schreibgeschützten FHIR-Endpunkt bereitstellen.",
"resourceTypes": "FHIR-Ressourcentypen",
"create": "Link erstellen",
"tokenCreated": "Freigabe-Link erstellt",
"tokenOnce": "Kopiere diesen Link jetzt — der Token wird nur einmal angezeigt und lässt sich nicht wiederherstellen.",
"copy": "Link kopieren",
"copied": "In die Zwischenablage kopiert.",
"activeTitle": "Aktive Links",
"noActive": "Keine aktiven Freigabe-Links.",
"created": "Erstellt",
"expires": "Läuft ab",
"accessCount": "Aufrufe",
"revoke": "Widerrufen",
"revokeDescription": "Diesen Link sofort widerrufen. Wer ihn besitzt, verliert umgehend den Zugriff. Das lässt sich nicht rückgängig machen.",
"statusActive": "Aktiv",
"statusRevoked": "Widerrufen",
"statusExpired": "Abgelaufen",
"inactiveTitle": "Widerrufen und abgelaufen ({count})"
},
"genderOther": "Divers",
"cycleTracking": {
"title": "Zyklus-Tracking",
"description": "Verfolge deinen Menstruationszyklus, Vorhersagen, Symptome und Phasen-Insights. Standardmäßig an für als weiblich eingestellte Konten; für alle verfügbar.",
"enable": "Zyklus-Tracking aktivieren",
"manage": "Zyklus-Tracking öffnen",
"error": "Zyklus-Tracking konnte nicht aktualisiert werden."
},
"nightscout": "Nightscout",
"nightscoutTag": "CGM",
"nightscoutDescription": "Verbinde deine eigene Nightscout-Seite, um kontinuierliche Glukosewerte für das Glukose-Panel zu synchronisieren.",
"nightscoutViewData": "Glukose ansehen",
"nightscoutHelp": "Richte HealthLog auf deine Nightscout-Instanz aus. Werte werden stündlich im Hintergrund abgerufen.",
"nightscoutUrl": "Nightscout-URL",
"nightscoutUrlSavedPlaceholder": "Gespeichert — neue URL eingeben zum Ersetzen",
"nightscoutToken": "API-Token",
"nightscoutTokenOptional": "Optional bei einer öffentlichen Seite",
"nightscoutTokenSavedPlaceholder": "Gespeichert — neuen Token eingeben zum Ersetzen",
"nightscoutTokenHelp": "Füge einen Zugriffstoken aus deinen Nightscout-Admin-Tools ein. Leer lassen, wenn deine Seite öffentlich lesbar ist.",
"nightscoutPrivateHost": "Diese Seite läuft in einem privaten Netzwerk",
"nightscoutPrivateHostHelp": "Nur aktivieren, wenn deine Nightscout-Instanz unter einer LAN-, VPN- oder Tailscale-Adresse läuft. Aus bei öffentlichen Seiten.",
"nightscoutConnect": "Verbinden",
"nightscoutUpdate": "Änderungen speichern",
"nightscoutConnected": "Nightscout verbunden.",
"nightscoutConnectFailed": "Verbindung zu Nightscout fehlgeschlagen.",
"nightscoutDisconnect": "Trennen",
"nightscoutDisconnectTitle": "Nightscout trennen?",
"nightscoutDisconnectDescription": "Künftige Synchronisierungen stoppen. Bereits importierte Glukosewerte bleiben in deinem Verlauf.",
"polar": "Polar",
"polarDescription": "Verbinde dein Polar-Konto, um Nightly-Recharge-Erholung, Schlafphasen und Tagesaktivität zu synchronisieren.",
"polarViewData": "Schlaf & Erholung ansehen",
"polarHelp": "Melde dich bei Polar an, um den Zugriff zu erlauben. Daten werden stündlich im Hintergrund abgerufen.",
"polarCredentials": "API-Zugangsdaten",
"polarCredentialsHelp": "Optional: Registriere deine eigene Polar-AccessLink-App und füge hier Client ID und Client Secret ein. Leer lassen, um die gemeinsame Polar-App des Servers zu nutzen.",
"polarClientId": "Client ID",
"polarClientSecret": "Client Secret",
"polarCredentialsSaved": "Zugangsdaten gespeichert",
"polarCredentialsSavedPlaceholder": "Gespeichert — neu eingeben zum Ersetzen",
"polarSaveCredentials": "Speichern",
"polarUnavailable": "Polar ist auf diesem Server nicht konfiguriert. Füge oben deine eigenen Polar-OAuth-Zugangsdaten hinzu oder bitte deinen Administrator, die gemeinsame App zu konfigurieren.",
"polarConnect": "Polar verbinden",
"polarDisconnect": "Trennen",
"polarDisconnectTitle": "Polar trennen?",
"polarDisconnectDescription": "Künftige Synchronisierungen stoppen. Bereits importierte Werte bleiben in deinem Verlauf.",
"polarOauthConnected": "Polar verbunden — die erste Synchronisierung startet im Hintergrund.",
"polarOauthFailed": "Polar-Verbindung fehlgeschlagen",
"polarOauthError": {
"csrf1": "Die Sicherheitsprüfung ist fehlgeschlagen, weil das Browser-Cookie fehlte. Bitte starte die Verbindung im selben Browser erneut.",
"state": "Die Antwort von Polar passte zu keiner offenen Verbindungsanfrage. Bitte starte die Verbindung erneut.",
"cross_user": "Die Antwort gehört zu einer Anfrage eines anderen Kontos. Bitte starte die Verbindung aus deinem eigenen Konto erneut.",
"nocode": "Polar hat keinen Autorisierungscode zurückgegeben. Versuche es erneut und erlaube den Zugriff im Polar-Dialog.",
"nocreds": "Polar ist auf diesem Server nicht konfiguriert. Bitte deinen Administrator, die Polar-OAuth-Zugangsdaten zu hinterlegen.",
"token": "Der Token-Austausch mit Polar ist fehlgeschlagen. Bitte starte die Verbindung erneut.",
"rate_limited": "Zu viele Verbindungsversuche. Warte einen Moment und versuche es erneut.",
"generic": "Unbekannter Fehler bei der Verbindung. Bitte starte die Verbindung erneut."
},
"oura": "Oura",
"ouraDescription": "Verbinde dein Oura-Konto, um Readiness, Schlafphasen, HRV und Tagesaktivität zu synchronisieren.",
"ouraViewData": "Schlaf & Erholung ansehen",
"ouraHelp": "Melde dich bei Oura an, um den Zugriff zu erlauben. Daten werden stündlich im Hintergrund abgerufen.",
"ouraCredentials": "API-Zugangsdaten",
"ouraCredentialsHelp": "Optional: Registriere deine eigene Oura-App und füge hier Client ID und Client Secret ein. Leer lassen, um die gemeinsame Oura-App des Servers zu nutzen.",
"ouraClientId": "Client ID",
"ouraClientSecret": "Client Secret",
"ouraCredentialsSaved": "Zugangsdaten gespeichert",
"ouraCredentialsSavedPlaceholder": "Gespeichert — neu eingeben zum Ersetzen",
"ouraSaveCredentials": "Speichern",
"ouraUnavailable": "Oura ist auf diesem Server nicht konfiguriert. Füge oben deine eigenen Oura-OAuth-Zugangsdaten hinzu oder bitte deinen Administrator, die gemeinsame App zu konfigurieren.",
"ouraConnect": "Oura verbinden",
"ouraDisconnect": "Trennen",
"ouraDisconnectTitle": "Oura trennen?",
"ouraDisconnectDescription": "Künftige Synchronisierungen stoppen. Bereits importierte Werte bleiben in deinem Verlauf.",
"ouraOauthConnected": "Oura verbunden — die erste Synchronisierung startet im Hintergrund.",
"ouraOauthFailed": "Oura-Verbindung fehlgeschlagen",
"ouraOauthError": {
"csrf1": "Die Sicherheitsprüfung ist fehlgeschlagen, weil das Browser-Cookie fehlte. Bitte starte die Verbindung im selben Browser erneut.",
"state": "Die Antwort von Oura passte zu keiner offenen Verbindungsanfrage. Bitte starte die Verbindung erneut.",
"cross_user": "Die Antwort gehört zu einer Anfrage eines anderen Kontos. Bitte starte die Verbindung aus deinem eigenen Konto erneut.",
"nocode": "Oura hat keinen Autorisierungscode zurückgegeben. Versuche es erneut und erlaube den Zugriff im Oura-Dialog.",
"nocreds": "Oura ist auf diesem Server nicht konfiguriert. Bitte deinen Administrator, die Oura-OAuth-Zugangsdaten zu hinterlegen.",
"token": "Der Token-Austausch mit Oura ist fehlgeschlagen. Bitte starte die Verbindung erneut.",
"rate_limited": "Zu viele Verbindungsversuche. Warte einen Moment und versuche es erneut.",
"generic": "Unbekannter Fehler bei der Verbindung. Bitte starte die Verbindung erneut."
},
"integrationSetupGuide": "Einrichtungsanleitung"
},
"admin": {
"title": "Administration",
"subtitle": "Systemstatus, Benutzer und Einstellungen",
"settingsSaveError": "Einstellungen konnten nicht gespeichert werden",
"systemStatus": "Systemstatus",
"systemStatusDescription": "Laufzeitdaten der Instanz: Datenbank, Worker und Bestandszähler.",
"database": "Datenbank",
"databaseConnected": "Verbunden",
"databaseError": "Fehler",
"startedAt": "Gestartet",
"users": "Benutzer",
"measurementsCount": "Messwerte",
"activeTokens": "Aktive API-Tokens",
"activeSessions": "Aktive Sessions",
"loadingStatus": "Lade Status...",
"systemStatusLoadError": "System-Status konnte nicht geladen werden.",
"systemStatusRetry": "Erneut versuchen",
"adminSettingsLoadError": "Admin-Einstellungen konnten nicht geladen werden. Schalter unten zeigen evtl. nicht den Live-Zustand — Seite neu laden.",
"hostMetrics": {
"title": "Host-Auslastung",
"load1": "Last (1m)",
"memUsedPercent": "Speicher",
"diskBusyPercent": "Disk-I/O",
"last2hours": "Letzte 2 Stunden",
"empty": "Erfassung läuft — Daten erscheinen in 1–2 Minuten.",
"loadError": "Host-Metriken konnten nicht geladen werden. Bitte die Seite neu laden."
},
"aiServerKey": {
"title": "KI-Server-Schlüssel",
"description": "Ein betreiberweiter Provider-Schlüssel, auf den jedes Konto zurückfallen kann, wenn kein eigener Schlüssel hinterlegt ist.",
"byokHint": "Der eigene Schlüssel (BYOK, ChatGPT-Login oder lokaler Provider) hat immer Vorrang — der Server-Schlüssel ist die letzte Stufe der Provider-Kette.",
"consentHint": "Anfragen über den Server-Schlüssel erfordern die aktive KI-Einwilligung der Person; ohne Einwilligungsbeleg wird nichts gesendet.",
"statusConfigured": "Eingerichtet",
"statusNotConfigured": "Nicht eingerichtet",
"keyLabel": "API-Schlüssel",
"keyPlaceholder": "sk-...",
"keyPlaceholderSet": "Hinterlegt ({preview}) — neuen Schlüssel eingeben, um ihn zu ersetzen",
"modelLabel": "Modell",
"baseUrlLabel": "Basis-URL",
"save": "Speichern",
"remove": "Schlüssel entfernen",
"saved": "KI-Server-Schlüssel gespeichert",
"error": "Speichern des KI-Server-Schlüssels fehlgeschlagen"
},
"aiQuality": {
"title": "Auswertungs-Qualität",
"loading": "Feedback-Zusammenfassung wird geladen...",
"loadError": "Qualitätszusammenfassung konnte nicht geladen werden. Bitte die Seite neu laden.",
"empty": "Noch kein Feedback. Der Aggregator läuft täglich um 04:00 — sobald Nutzer Empfehlungen bewerten, erscheinen hier die Hilfreich-Quoten.",
"windowLabel": "Letzte {days} Tage",
"generatedAtLabel": "Erstellt",
"colSeverity": "Schweregrad",
"colMetric": "Metrik",
"colProvider": "Provider",
"colPromptVersion": "Prompt",
"colHelpful": "Hilfreich",
"colNotHelpful": "Nicht hilfreich",
"colHelpfulRate": "Hilfreich-Quote"
},
"coachFeedback": {
"title": "Coach-Feedback",
"loading": "Coach-Feedback-Zusammenfassung wird geladen...",
"loadError": "Coach-Feedback-Zusammenfassung konnte nicht geladen werden. Bitte die Seite neu laden.",
"empty": "Noch kein Coach-Feedback. Der Aggregator läuft täglich um 04:00 — sobald Nutzer Coach-Antworten bewerten, erscheinen hier die Hilfreich-Quoten.",
"windowLabel": "Letzte {days} Tage",
"generatedAtLabel": "Erstellt",
"colPromptVersion": "Prompt-Version",
"colTone": "Tonfall",
"colVerbosity": "Ausführlichkeit",
"colHelpful": "Hilfreich",
"colNotHelpful": "Nicht hilfreich",
"colN": "n",
"colHelpfulRate": "Hilfreich-Quote"
},
"workerStatus": "Job-Worker",
"workerRunning": "Aktiv",
"workerStopped": "Gestoppt",
"lastReminderCheck": "Letzter Reminder-Check",
"appSettings": "Anwendungseinstellungen",
"appSettingsDescription": "Globale Standardwerte für Registrierung, Sprache und Zeitzone neuer Konten.",
"registrationEnabled": "Registrierung erlauben",
"registrationEnabledDescription": "Wenn deaktiviert, können sich keine neuen Benutzer registrieren.",
"defaultLanguage": "Standard-Sprache",
"defaultLanguageDescription": "Wird für neue Benutzer und als Fallback verwendet.",
"defaultUserTimezone": "Standard-Zeitzone für neue Konten",
"defaultUserTimezoneDescription": "Wird für neue Konten ohne erkannte Browser-Zeitzone verwendet. Bestehende Benutzer sind nicht betroffen.",
"defaultUserTimezoneFallback": "Europe/Berlin (Standard)",
"servicesGlobal": "Dienste (global)",
"servicesGlobalDescription": "Deaktivierte Dienste stehen keinem Benutzer zur Verfügung.",
"telegramGlobal": "Telegram-Benachrichtigungen erlauben.",
"ntfyGlobal": "ntfy-Benachrichtigungen erlauben.",
"webPushGlobal": "Browser-Push-Benachrichtigungen erlauben.",
"moodLogGlobal": "moodLog-Erinnerungen erlauben.",
"integrationWebPush": "Web Push",
"integrationBugReport": "Bug-Reports",
"offlineGeoLabel": "Geodaten",
"offlineGeoEnabled": "Offline (GeoLite2)",
"offlineGeoFallback": "Fallback (ipwho.is) — MAXMIND_LICENSE_KEY in CI setzen",
"apiGlobal": "API-Endpunkte und API-Tokens erlauben.",
"umamiTitle": "Umami",
"umamiDescription": "Web-Analyse mit Umami",
"glitchtipTitle": "GlitchTip",
"glitchtipDescription": "Fehler-Tracking mit GlitchTip",
"webPushVapidTitle": "Web Push VAPID",
"umamiEnabled": "Umami-Tracking aktivieren.",
"umamiScriptUrl": "Umami Script-URL",
"umamiScriptUrlPlaceholder": "https://analytics.example.com/script.js",
"umamiWebsiteId": "Umami Website-ID",
"umamiWebsiteIdPlaceholder": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"glitchtipEnabled": "GlitchTip Fehler-Tracking aktivieren.",
"glitchtipDsn": "GlitchTip DSN",
"glitchtipDsnPlaceholder": "https://<public-key>@glitchtip.example.com/<project-id>",
"glitchtipEnvironment": "GlitchTip Environment",
"glitchtipEnvironmentPlaceholder": "production",
"webPushVapidDescription": "Konfiguriere VAPID-Schlüssel und Subject direkt hier, damit Browser-Push ohne ENV-Variablen funktioniert.",
"webPushVapidPublicKey": "VAPID Public Key",
"webPushVapidPublicKeyPlaceholder": "BElx... (Base64URL)",
"webPushVapidPrivateKey": "VAPID Private Key",
"webPushVapidPrivateKeyPlaceholder": "Optional: neuen Private Key eintragen",
"webPushVapidSubject": "VAPID Subject",
"webPushVapidSubjectPlaceholder": "mailto:deine-adresse@example.com",
"webPushVapidGenerate": "Schlüssel erzeugen",
"webPushVapidGenerating": "Wird erzeugt…",
"webPushVapidGenerated": "VAPID-Schlüssel erzeugt. Betreff speichern, um abzuschließen.",
"webPushVapidGenerateFailed": "VAPID-Schlüssel konnten nicht erzeugt werden.",
"webPushVapidGenerateConfirm": "VAPID-Schlüssel sind bereits konfiguriert. Ein neues Schlüsselpaar macht alle Browser-Push-Abos ungültig — jedes Gerät muss sich neu anmelden. Fortfahren?",
"webPushVapidGenerateConfirmTitle": "VAPID-Schlüssel neu erzeugen?",
"webPushVapidRegenerate": "Neu erzeugen",
"configured": "Konfiguriert",
"monitoringTestSuccess": "Testevent wurde gesendet",
"monitoringTestFailed": "Monitoring-Test fehlgeschlagen",
"bugReportGithub": "Bugreport (GitHub Issues)",
"bugReportGithubDescription": "Hinterlege GitHub-Issue-Token und Repository für eingehende Bugreports.",
"bugReportEnabledLabel": "Bug-Reports aktiviert",
"bugReportEnabledDescription": "Wenn deaktiviert, ist der Report-Button im Frontend nicht mehr sichtbar — Token und Repository bleiben gespeichert.",
"assistant": {
"title": "Assistenz-Oberflächen",
"description": "Jeder Toggle versteckt eine modellgestützte Oberfläche app-weit, ohne die Provider-Konfiguration zu entfernen. Der Hauptschalter erzwingt jede Unter-Option aus.",
"master": {
"title": "Assistent aktiv",
"description": "Hauptschalter für jede modellgestützte Oberfläche. Wenn aus, sind alle Unter-Optionen unten zwangsweise aus."
},
"coach": {
"title": "Coach",
"description": "Chat-Drawer, Launch-Button und die mobile FAB auf jeder Insights-Seite."
},
"briefing": {
"title": "Tagesbriefing",
"description": "Briefing-Karte, Hero-Erzähltext, Empfehlungen und der Regenerieren-Knopf."
},
"insightStatus": {
"title": "Status-Karten",
"description": "Pro-Metrik-Status-Karten auf jeder /insights-Unterseite."
},
"correlations": {
"title": "Korrelationen",
"description": "Erzähl-Kachel zur Korrelation auf der Insights-Übersicht."
},
"healthScoreExplainer": {
"title": "Health-Score-Erklärer",
"description": "Das ?-Symbol neben der Health-Score-Differenz. Die Zahl bleibt unabhängig davon sichtbar."
}
},
"bugReportRepo": "Repository",
"bugReportRepoPlaceholder": "owner/repo",
"bugReportToken": "Issue-Token",
"bugReportTokenPlaceholder": "ghp_...",
"invites": {
"title": "Einladungen",
"description": "Einladungslinks für die Registrierung — funktionieren auch bei geschlossener Registrierung. Der Link wird nur einmal angezeigt.",
"adminOnlyHint": "Nur Admins können Einladungen erstellen und widerrufen.",
"create": "Einladung erstellen",
"createTitle": "Einladung erstellen",
"createDescription": "Der Link erlaubt eine Registrierung auch bei geschlossener Registrierung.",
"ttlLegend": "Gültig für",
"createDays": "{days} Tage",
"maxUsesLabel": "Maximale Nutzungen",
"maxUsesHint": "Wie viele Registrierungen dieser Link zulässt (1–50).",
"createConfirm": "Einladung erstellen",
"createdToast": "Einladung erstellt.",
"createError": "Einladung konnte nicht erstellt werden.",
"tokenTitle": "Einladungslink",
"tokenOnceHint": "Nur jetzt kopierbar — kopiere den Link oder lass den QR-Code scannen.",
"hashExplainer": "Gespeichert wird nur ein Hash des Links — er kann später nicht erneut angezeigt werden. Geht er verloren: Einladung widerrufen und neu erstellen.",
"copyLink": "Link kopieren",
"copiedToast": "Link kopiert.",
"copyError": "Kopieren fehlgeschlagen.",
"qrAlt": "QR-Code des Einladungslinks",
"loadError": "Einladungen konnten nicht geladen werden.",
"emptyTitle": "Noch keine Einladungen",
"emptyDescription": "Erstelle einen Einladungslink, um jemanden trotz geschlossener Registrierung aufzunehmen.",
"colStatus": "Status",
"colCreated": "Erstellt",
"colExpires": "Läuft ab",
"colUses": "Nutzungen",
"colRedeemedBy": "Eingelöst von",
"colActions": "Aktionen",
"byCreator": "von {by}",
"expiresInDaysOne": "in 1 Tag",
"expiresInDaysOther": "in {count} Tagen",
"statusActive": "Aktiv",
"statusExpired": "Abgelaufen",
"statusExhausted": "Aufgebraucht",
"statusRevoked": "Widerrufen",
"redeemerDeleted": "gelöschtes Konto",
"redeemedByMore": "{username} + {count} weitere",
"redemptionsTitle": "{count} Einlösungen",
"revoke": "Widerrufen",
"revokeAria": "Einladung widerrufen",
"revokeConfirmTitle": "Einladung widerrufen?",
"revokeConfirmBody": "Der Einladungslink wird sofort ungültig. Bereits registrierte Konten bleiben bestehen, die Einlösungs-Historie bleibt sichtbar.",
"revokeConfirmAction": "Widerrufen",
"cancel": "Abbrechen",
"revokedToast": "Einladung widerrufen.",
"revokeError": "Einladung konnte nicht widerrufen werden."
},
"userManagement": "Benutzerverwaltung",
"userManagementDescription": "Konten verwalten: Rollen, Passwort-Resets und erzwungene Abmeldungen.",
"userName": "Name",
"userEmail": "E-Mail",
"userRole": "Rolle",
"userPasskeys": "Passkeys",
"userCreated": "Erstellt",
"userActions": "Aktionen",
"editUser": "Benutzer bearbeiten",
"editUserTitle": "Benutzer bearbeiten: {name}",
"demoteToUser": "Zu User degradieren",
"promoteToAdmin": "Zum Admin befördern",
"toUser": "Zum Benutzer",
"toAdmin": "Zum Admin",
"ownRoleUnchangeable": "Eigene Rolle nicht änderbar",
"resetPassword": "Passwort zurücksetzen",
"resetPasswordTitle": "Passwort zurücksetzen: {name}",
"newPassword": "Neues Passwort",
"newPasswordPlaceholder": "Mindestens 12 Zeichen",
"passwordReset": "Passwort wurde zurückgesetzt",
"reset": "Zurücksetzen",
"loadingUsers": "Lade Benutzer...",
"apiTokens": "API-Tokens",
"apiTokensDescription": "Alle aktiven und widerrufenen API-Tokens über alle Konten hinweg.",
"tokenUser": "Benutzer",
"tokenName": "Name",
"tokenPermissions": "Berechtigungen",
"tokenPermissionAll": "Alle",
"tokenPermissionAllTooltip": "Wildcard-Berechtigung — dieses Token kann jede API-Route ansprechen.",
"tokenStatus": "Status",
"tokenLastUsed": "Zuletzt benutzt",
"tokenCreated": "Erstellt",
"tokenNeverUsed": "Nie",
"tokensEmptyTitle": "Noch keine API-Tokens",
"tokensEmptyDescription": "Tokens werden bei der Anmeldung nativer Clients oder über Einstellungen → Account ausgestellt.",
"loginOverview": "Anmeldeübersicht",
"loginOverviewDescription": "Anmelde- und Auth-Ereignisse aller Konten, filterbar und als CSV exportierbar.",
"allAuthEvents": "Alle Auth-Ereignisse",
"failedOnly": "Nur fehlgeschlagene",
"loginEmptyDescription": "Anmeldungen, Abmeldungen und Passkey-Änderungen erscheinen hier.",
"loginEmptyFailedTitle": "Keine fehlgeschlagenen Anmeldungen",
"loginEmptyFailedDescription": "Das ist der sichere Zustand. Wechsle zu „Alle Auth-Ereignisse“, um erfolgreiche Anmeldungen zu sehen.",
"loginEmptyResetFilter": "Alle Ereignisse anzeigen",
"showingEntries": "Zeigt {count} von {total} Auth-Einträgen",
"status": "Status",
"action": "Aktion",
"ip": "IP",
"location": "Standort",
"timestamp": "Zeitpunkt",
"provider": "Anbieter",
"providerPassword": "Passwort",
"providerPasskey": "Passkey",
"providerApiToken": "API-Token",
"providerWithings": "Withings",
"providerUnknown": "Unbekannt",
"outcome": "Ergebnis",
"outcomeSuccess": "Erfolgreich",
"outcomeFailed": "Fehlgeschlagen",
"auditDetails": "Details",
"deleteAllData": "Alle Daten global löschen",
"deleteAllDescription": "Löscht alle Mess-, Medikamenten-, Integrations- und Protokoll-Daten aller Benutzer. Benutzerkonten bleiben bestehen.",
"deleteAllConfirm": "Alle Daten wirklich löschen?",
"deleteAllConfirmDescription": "Dieser Vorgang löscht alle Messwerte, Medikamente, Einnahmen, API-Tokens, Withings-Verbindungen, offene Authentifizierungs-Challenges, Benachrichtigungskanäle (Telegram, ntfy, Web Push), Push-Abonnements und in der Warteschlange befindliche Telegram-Nachrichtenlöschungen aller Benutzer unwiderruflich. Benutzerkonten, das Audit-Log und eingereichtes Feedback bleiben erhalten, damit der Löschvorgang nachvollziehbar bleibt und Bug-Reports weiter triagierbar sind.",
"deleteButton": "Alle Daten löschen",
"finalDelete": "Endgültig löschen",
"deletedResult": "Gelöscht: {measurements} Messwerte, {medications} Medikamente, {intakeEvents} Einnahmen, {apiTokens} API-Tokens, {withingsConnections} Withings-Verbindungen, {authChallenges} Auth-Challenges, {notificationChannels} Benachrichtigungskanäle, {pushSubscriptions} Push-Abonnements, {telegramScheduledDeletions} eingeplante Telegram-Löschungen. Feedback bleibt erhalten.",
"authRegister": "Registrierung",
"authLogin": "Anmeldung",
"authLoginPasskey": "Passkey-Anmeldung",
"authLoginPassword": "Passwort-Anmeldung",
"authLoginFailed": "Fehlgeschlagen",
"authLogout": "Abmeldung",
"authPasskeyRegister": "Passkey hinzugefügt",
"authPasskeyDelete": "Passkey gelöscht",
"authTokenAutoissueNative": "Native-Client-Token ausgestellt",
"authTokenRefresh": "Token erneuert",
"authTokenRevoke": "Token widerrufen",
"medicationReminders": "Medikamentenerinnerungen",
"medicationRemindersDescription": "Schwellenwerte für die Farbübergänge der Erinnerungs-Badges auf den Medikamentenkarten.",
"notificationHealth": {
"title": "Zustellungsstatus",
"description": "Zustellungsergebnisse aller Nutzer der letzten 24 Stunden.",
"empty": "In diesem Zeitraum wurden keine Benachrichtigungen gesendet.",
"ok": "OK",
"error": "Fehlgeschlagen",
"skipped": "Übersprungen",
"autoDisabled": "Automatisch deaktivierte Kanäle"
},
"reminderLateMinutes": "Spät-Schwellenwert (Minuten)",
"reminderLateMinutesDescription": "Minuten nach Fenster-Ende bis der Badge von Gelb auf Orange wechselt.",
"reminderMissedMinutes": "Verpasst-Schwellenwert (Minuten)",
"reminderMissedMinutesDescription": "Minuten nach Fenster-Ende bis die Einnahme als verpasst gilt.",
"notificationTestSend": "Test senden",
"notificationTestSuccess": "Test-Notification wurde gesendet",
"notificationTestFailed": "Test-Notification konnte nicht gesendet werden",
"reminderCheckRun": "Reminder-Check ausführen",
"reminderCheckSuccess": "Reminder-Check abgeschlossen",
"reminderCheckFailed": "Reminder-Check konnte nicht ausgeführt werden",
"reminderCheckResults": "Ergebnisse",
"reminderCheckNotifOn": "Benachrichtigungen an",
"reminderCheckNotifOff": "Benachrichtigungen aus",
"reminderCheckEventsToday": "Heutige Events",
"reminderCheckNotifSent": "Gesendet",
"feedback": {
"tabOpen": "Offen",
"tabAcknowledged": "Bestätigt",
"tabResolved": "Erledigt",
"tabArchived": "Archiviert",
"subject": "Betreff",
"category": "Kategorie",
"user": "Benutzer",
"createdAt": "Eingegangen",
"actions": "Aktionen",
"details": "Details",
"emptyTitle": "Alles erledigt",
"emptyDescription": "Kein Nutzer-Feedback in diesem Status. Bug-Reports, Fragen und Feature-Wünsche erscheinen hier.",
"loading": "Lade Feedback...",
"anonymous": "anonym",
"categoryBug": "Bug",
"categoryFeature": "Feature",
"categoryQuestion": "Frage",
"categoryOther": "Sonstiges",
"metadataHeading": "Metadaten",
"metaUrl": "URL",
"metaLocale": "Sprache",
"metaUserAgent": "User-Agent",
"metaAppVersion": "App-Version",
"screenshotHeading": "Screenshot",
"adminNote": "Admin-Notiz",
"adminNotePlaceholder": "Interne Notiz (nicht für Benutzer sichtbar)",
"saveNote": "Notiz speichern",
"noteSaved": "Notiz gespeichert",
"actionAcknowledge": "Bestätigen",
"actionResolve": "Erledigen",
"actionArchive": "Archivieren",
"actionPublishGithub": "Auf GitHub veröffentlichen",
"publishedToGithub": "Auf GitHub veröffentlicht",
"viewIssue": "Issue ansehen",
"publishSuccess": "Issue erstellt",
"publishFailed": "GitHub-Veröffentlichung fehlgeschlagen",
"updateFailed": "Aktualisierung fehlgeschlagen",
"archiveConfirm": "Diesen Feedback-Eintrag archivieren?",
"submittedBy": "Eingereicht von"
},
"shell": {
"overview": "Übersicht",
"sectionsNav": "Admin-Bereiche"
},
"overview": {
"welcomeTitle": "Willkommen, {name}",
"welcomeSubtitle": "Du bist als Administrator angemeldet. Wähle einen Bereich, um HealthLog zu verwalten.",
"snapshotTitle": "System-Snapshot",
"snapshotVersion": "Version",
"snapshotDatabase": "Datenbank",
"snapshotWorker": "Worker",
"snapshotStarted": "Gestartet",
"snapshotBuildSha": "Build-SHA",
"snapshotBuiltAt": "Gebaut am",
"snapshotOfflineGeo": "Geodaten",
"snapshotOfflineGeoOn": "Offline (GeoLite2)",
"snapshotOfflineGeoOff": "Fallback (ipwho.is)",
"versionTileTitle": "Version",
"versionTileVersion": "Laufende Version",
"versionTileBuildSha": "Build-SHA",
"versionTileBuiltAt": "Gebaut am",
"versionTileUpdateAvailable": "Update verfügbar: {tag}",
"versionTileUpToDate": "Aktuell",
"snapshotLoadError": "System-Snapshot konnte nicht geladen werden.",
"snapshotLoading": "Snapshot wird geladen...",
"auditTitle": "Letzte Aktivitäten",
"auditEmpty": "Keine aktuellen Audit-Einträge.",
"auditLoadError": "Letzte Aktivitäten konnten nicht geladen werden.",
"auditLoading": "Aktivitäten werden geladen...",
"auditViewAll": "Alle anzeigen"
},
"section": {
"system-status": {
"title": "Systemstatus",
"subtitle": "Worker, Datenbank und Integrationen im Überblick."
},
"general": {
"title": "Allgemein",
"subtitle": "Registrierung, Standardsprache und weitere globale Schalter."
},
"services": {
"title": "Dienste",
"subtitle": "Benachrichtigungskanäle und Integrationen systemweit aktivieren oder deaktivieren."
},
"integrations": {
"title": "Integrationen",
"subtitle": "Umami, GlitchTip, Web Push und Bug-Reports konfigurieren."
},
"ai-quality": {
"title": "Auswertungs-Qualität",
"subtitle": "Hilfreichkeit nach Schweregrad und Provider — Nutzer-Feedback der letzten 30 Tage."
},
"assistant": {
"title": "Assistenz-Oberflächen",
"subtitle": "Jede modellgestützte Oberfläche separat ein- oder ausschalten, ohne die Provider-Konfiguration zu entfernen."
},
"coach-feedback": {
"title": "Coach-Feedback",
"subtitle": "Hilfreich-Quote pro Coach-Prompt-Version, Tonfall und Ausführlichkeit der letzten 30 Tage."
},
"feedback": {
"title": "Feedback",
"subtitle": "Feedback, Bug-Reports und Feature-Wünsche der Nutzer sichten."
},
"reminders": {
"title": "Erinnerungen",
"subtitle": "Schwellwerte für Medikamentenerinnerungen anpassen."
},
"users": {
"title": "Benutzer",
"subtitle": "Konten, Rollen und aktive Sitzungen verwalten.",
"filter": {
"all": "Alle",
"admin": "Admins",
"user": "Nutzer"
},
"forceLogout": "Abmeldung erzwingen",
"forceLogoutConfirmTitle": "{name} abmelden?",
"forceLogoutConfirmBody": "Alle aktiven Sitzungen dieses Benutzers werden widerrufen. Auf allen Geräten ist eine erneute Anmeldung erforderlich.",
"forceLogoutSuccess": "{name} aus {count} Sitzung(en) abgemeldet",
"forceLogoutFailed": "Abmeldung fehlgeschlagen",
"cannotLogoutSelf": "Eigene Sitzungen können nicht beendet werden",
"emptyTitle": "Keine Nutzer in dieser Ansicht",
"emptyDescription": "Es gibt keine Nutzer, die zum aktuellen Filter passen.",
"emptyResetFilter": "Alle Nutzer anzeigen"
},
"invites": {
"title": "Einladungen",
"subtitle": "Einladungslinks erstellen, nachverfolgen und widerrufen."
},
"api-tokens": {
"title": "API-Tokens",
"subtitle": "Aktive Bearer-Tokens für native Clients und Integrationen."
},
"login-overview": {
"title": "Login-Übersicht",
"subtitle": "Audit-Spur für Authentifizierungs- und Admin-Ereignisse."
},
"auditLog": {
"filterActor": "Akteur (Benutzer-ID oder -Name)",
"filterAction": "Aktion",
"filterActionAll": "Alle Aktionen",
"filterTarget": "Ziel (ID oder Pfad)",
"filterDate": "Zeitraum",
"range24h": "Letzte 24 Stunden",
"range7d": "Letzte 7 Tage",
"range30d": "Letzte 30 Tage",
"rangeAll": "Gesamter Zeitraum",
"perPage": "Pro Seite",
"prev": "Zurück",
"next": "Weiter",
"pageOf": "Seite {page} von {total}",
"export": "CSV exportieren",
"empty": "Keine Audit-Einträge passen zu den aktuellen Filtern."
},
"app-logs": {
"title": "App-Logs",
"subtitle": "Letzte strukturierte Wide-Events dieses Prozesses anzeigen.",
"processNote": "Es werden nur App-Prozess-Logs angezeigt — Worker-Logs landen in Loki, sofern die Integration konfiguriert ist. Der Puffer ist flüchtig und auf 500 Einträge begrenzt.",
"filterTraceId": "Trace-ID",
"filterAction": "Aktion enthält…",
"filterLevel": "Level",
"levelAll": "Alle Level",
"filterRange": "Zeitfenster",
"range15m": "Letzte 15 Minuten",
"range1h": "Letzte Stunde",
"range6h": "Letzte 6 Stunden",
"rangeAll": "Gesamter Puffer",
"colLevel": "Level",
"colTimestamp": "Zeitstempel",
"colAction": "Aktion",
"colDuration": "Dauer",
"colTraceId": "Trace",
"showing": "{count} von bis zu {bufferMax} gepufferten Events angezeigt",
"empty": "Puffer ist leer",
"emptyDescription": "Es passen noch keine Events zu den Filtern. Nach etwas Traffic auf Aktualisieren tippen.",
"refresh": "Aktualisieren",
"eventDetails": "Event-Details",
"closeDetails": "Details schließen"
},
"backups": {
"title": "Backups",
"subtitle": "Wöchentliche Daten-Snapshots pro Nutzer in PostgreSQL.",
"description": "Jeder Nutzer hat einen rollierenden Snapshot pro Backup-Typ. Größen zeigen den verschlüsselten Blob — die Inhalte sind hier nicht herunterladbar.",
"runNow": "Jetzt sichern",
"runEnqueued": "Backup-Job eingeplant",
"runFailed": "Backup konnte nicht eingeplant werden",
"loading": "Backups werden geladen...",
"loadError": "Backups konnten nicht geladen werden.",
"emptyTitle": "Noch keine Backups",
"emptyDescription": "Backups laufen automatisch jeden Sonntag um 03:00 Uhr — oder erstelle jetzt einen ersten Snapshot.",
"colUser": "Nutzer",
"colType": "Typ",
"typeWeeklyAuto": "Wöchentlich (auto)",
"typeManual": "Manuell",
"colSize": "Größe",
"colCreatedAt": "Letzter Snapshot",
"colActions": "Aktionen",
"retentionLabel": "Aufbewahrung: {days} Tage",
"download": "Herunterladen",
"downloadAria": "Backup für {username} herunterladen",
"downloadFailed": "Download fehlgeschlagen",
"downloadStarted": "Download gestartet",
"uploadTitle": "Backup hochladen",
"uploadDescription": "Eine Backup-Datei validieren und als manuellen Snapshot speichern. Das Wiederherstellen ist ein separater Schritt.",
"uploadButton": "Datei hochladen",
"uploadHelp": "JSON-Datei passend zum aktuellen Backup-Schema. Max. 10 MB.",
"uploadSuccess": "Backup hochgeladen ({count} Datensätze)",
"uploadFailed": "Upload fehlgeschlagen",
"restore": "Wiederherstellen",
"restoreAria": "Backup für {username} wiederherstellen",
"restoreTitle": "Aus Backup wiederherstellen",
"restoreDescription": "Dies ersetzt ALLE aktuellen Daten von {username} mit dem Snapshot von {when}. Vorhandene Messungen, Medikamente, Einnahmen, Stimmungseinträge, Benachrichtigungs-Kanäle, Push-Abos und Telegram-Lösch-Aufträge werden entfernt.",
"restorePromptLabel": "Tippe RESTORE zum Fortfahren",
"restoreConfirm": "Jetzt wiederherstellen",
"restoreInProgress": "Wiederherstellung läuft...",
"restoreSuccess": "Wiederherstellung abgeschlossen",
"restoreFailed": "Wiederherstellung fehlgeschlagen",
"docsLink": "Dokumentation"
},
"danger-zone": {
"title": "Gefahrenzone",
"subtitle": "Destruktive systemweite Operationen."
},
"about": {
"title": "Über",
"subtitle": "Version, Lizenz, Quellcode und Update-Prüfung."
}
},
"carrier": "Anbieter",
"carrierUnknown": "Unbekannter Anbieter",
"carrierUnavailableGeoFallback": "{location} — Anbieter nicht verfügbar"
},
"achievements": {
"title": "Erfolge",
"subtitle": "Sammle Erfolge, indem du regelmäßig misst und deine Medikamente nimmst.",
"loginRequired": "Bitte anmelden, um Erfolge zu sehen.",
"points": "Punkte",
"unlocked": "Freigeschaltet",
"nextGoal": "Nächstes Ziel",
"allCompleted": "Alle Erfolge freigeschaltet!",
"completed": "Abgeschlossen",
"goalReached": "Ziel erreicht",
"remainingUnlocks": "Noch {count} freischaltbar",
"noneUnlockedYet": "Noch keine Erfolge freigeschaltet.",
"pointsValue": "{points} Punkte",
"metricCount": "{count}",
"metricDays": "{count} Tage",
"metricPercent": "{count}%",
"badges": {
"intakeTotal1": {
"title": "Erste Einnahme",
"description": "Dokumentiere dein erstes eingenommenes Medikament."
},
"intakeTotal10": {
"title": "Einnahme-Starter",
"description": "Dokumentiere 10 eingenommene Medikamente."
},
"intakeTotal50": {
"title": "Einnahme-Routine",
"description": "Dokumentiere 50 eingenommene Medikamente."
},
"intakeTotal150": {
"title": "Einnahme-Profi",
"description": "Dokumentiere 150 eingenommene Medikamente."
},
"intakeTotal300": {
"title": "Einnahme-Legende",
"description": "Dokumentiere 300 eingenommene Medikamente."
},
"overIntake1": {
"title": "Doppelt genommen",
"description": "Nimm mindestens einmal mehr ein als vorgesehen."
},
"skippedIntake1": {
"title": "Pause eingelegt",
"description": "Überspringe mindestens eine geplante Einnahme."
},
"passkeyCreated1": {
"title": "Passkey gesetzt",
"description": "Erstelle deinen ersten Passkey."
},
"passkeyLogin1": {
"title": "Passkey genutzt",
"description": "Melde dich mindestens einmal per Passkey an."
},
"passwordLogin1": {
"title": "Oldschool",
"description": "Melde dich mindestens einmal mit Username und Passwort an."
},
"bugReport1": {
"title": "Fehlerjäger",
"description": "Reiche einen Bugreport ein."
},
"loginStreak7": {
"title": "Login-Serie 7T",
"description": "Logge dich an 7 Tagen in Folge ein."
},
"loginStreak30": {
"title": "Login-Serie 30T",
"description": "Logge dich an 30 Tagen in Folge ein."
},
"onTimePerfect1": {
"title": "Zeitfenster 1T",
"description": "Nimm an einem Tag alle Medikamente im Zeitfenster ein."
},
"compliance801": {
"title": "Treue 80% · 1T",
"description": "Erreiche an einem Tag eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen1": {
"title": "BMI im Grün · 1T",
"description": "Halte deinen BMI an einem Tag im Normalbereich."
},
"bpGreen1": {
"title": "Blutdruck im Grün · 1T",
"description": "Halte deinen Blutdruck an einem Tag im Normalbereich."
},
"pulseGreen1": {
"title": "Puls im Grün · 1T",
"description": "Halte deinen Ruhepuls an einem Tag im Normalbereich."
},
"onTimePerfect7": {
"title": "Zeitfenster 7T",
"description": "Nimm 7 Tage in Folge alle Medikamente im Zeitfenster ein."
},
"compliance807": {
"title": "Treue 80% · 7T",
"description": "Erreiche 7 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen7": {
"title": "BMI im Grün · 7T",
"description": "Halte deinen BMI 7 Tage in Folge im Normalbereich."
},
"bpGreen7": {
"title": "Blutdruck im Grün · 7T",
"description": "Halte deinen Blutdruck 7 Tage in Folge im Normalbereich."
},
"pulseGreen7": {
"title": "Puls im Grün · 7T",
"description": "Halte deinen Ruhepuls 7 Tage in Folge im Normalbereich."
},
"onTimePerfect30": {
"title": "Zeitfenster 30T",
"description": "Nimm 30 Tage in Folge alle Medikamente im Zeitfenster ein."
},
"compliance8030": {
"title": "Treue 80% · 30T",
"description": "Erreiche 30 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen30": {
"title": "BMI im Grün · 30T",
"description": "Halte deinen BMI 30 Tage in Folge im Normalbereich."
},
"bpGreen30": {
"title": "Blutdruck im Grün · 30T",
"description": "Halte deinen Blutdruck 30 Tage in Folge im Normalbereich."
},
"pulseGreen30": {
"title": "Puls im Grün · 30T",
"description": "Halte deinen Ruhepuls 30 Tage in Folge im Normalbereich."
},
"onTimePerfect180": {
"title": "Zeitfenster 180T",
"description": "Nimm 180 Tage in Folge alle Medikamente im Zeitfenster ein."
},
"compliance80180": {
"title": "Treue 80% · 180T",
"description": "Erreiche 180 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen180": {
"title": "BMI im Grün · 180T",
"description": "Halte deinen BMI 180 Tage in Folge im Normalbereich."
},
"bpGreen180": {
"title": "Blutdruck im Grün · 180T",
"description": "Halte deinen Blutdruck 180 Tage in Folge im Normalbereich."
},
"pulseGreen180": {
"title": "Puls im Grün · 180T",
"description": "Halte deinen Ruhepuls 180 Tage in Folge im Normalbereich."
},
"onTimePerfect360": {
"title": "Zeitfenster 360T",
"description": "Nimm 360 Tage in Folge alle Medikamente im Zeitfenster ein."
},
"compliance80360": {
"title": "Treue 80% · 360T",
"description": "Erreiche 360 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen360": {
"title": "BMI im Grün · 360T",
"description": "Halte deinen BMI 360 Tage in Folge im Normalbereich."
},
"bpGreen360": {
"title": "Blutdruck im Grün · 360T",
"description": "Halte deinen Blutdruck 360 Tage in Folge im Normalbereich."
},
"pulseGreen360": {
"title": "Puls im Grün · 360T",
"description": "Halte deinen Ruhepuls 360 Tage in Folge im Normalbereich."
},
"moodFirst": {
"title": "Erste Stimmung",
"description": "Erfasse deinen ersten Stimmungseintrag."
},
"moodStreak7": {
"title": "Stimmungstagebuch 7T",
"description": "Trage an 7 aufeinanderfolgenden Tagen eine Stimmung ein."
},
"moodStreak30": {
"title": "Stimmungstagebuch 30T",
"description": "Trage an 30 aufeinanderfolgenden Tagen eine Stimmung ein."
},
"moodUp7": {
"title": "Hellere Woche",
"description": "Dein 7-Tage-Stimmungsmittel hat sich gegenüber der Vorwoche um mindestens 1,0 Punkt verbessert."
},
"weightFirst": {
"title": "Erstes Gewicht",
"description": "Erfasse deine erste Gewichtsmessung."
},
"weight50": {
"title": "Fünfzig Wiegungen",
"description": "Erfasse 50 Gewichtsmessungen."
},
"weight200": {
"title": "200 Wiegungen",
"description": "Erfasse 200 Gewichtsmessungen."
},
"bpFirst": {
"title": "Erster Blutdruck",
"description": "Erfasse deine erste Blutdruckmessung."
},
"bp50": {
"title": "Fünfzig Blutdruckmessungen",
"description": "Erfasse 50 Blutdruckmessungen."
},
"bp200": {
"title": "200 Blutdruckmessungen",
"description": "Erfasse 200 Blutdruckmessungen."
},
"pulseFirst": {
"title": "Erster Puls",
"description": "Erfasse deine erste Pulsmessung."
},
"consistentMonth": {
"title": "Konsequenter Monat",
"description": "Trage in einem Kalendermonat an mindestens 25 verschiedenen Tagen Daten ein."
},
"entryStreak7": {
"title": "Tracking-Serie 7T",
"description": "Trage an 7 aufeinanderfolgenden Tagen mindestens einen Eintrag ein."
},
"entryStreak30": {
"title": "Tracking-Serie 30T",
"description": "Trage an 30 aufeinanderfolgenden Tagen mindestens einen Eintrag ein."
},
"weekendWarrior": {
"title": "Wochenend-Tracker",
"description": "Trage an 4 aufeinanderfolgenden Samstag-Sonntag-Wochenenden Daten ein."
},
"hiddenNightOwl": {
"title": "Nachteule",
"description": "Du hast einen Eintrag zwischen 02:00 und 04:00 Uhr morgens erfasst."
},
"hiddenEarlyBird": {
"title": "Frühaufsteher",
"description": "Du hast einen Eintrag zwischen 04:00 und 06:00 Uhr morgens erfasst."
},
"hiddenLeapDay": {
"title": "Schalttag-Legende",
"description": "Du hast einen Eintrag am 29. Februar erfasst."
},
"hiddenDoctorPdf": {
"title": "Hausbesuch",
"description": "Du hast erstmals einen Arzt-Report als PDF exportiert."
},
"hiddenLocaleFlip": {
"title": "Polyglott",
"description": "Du hast die App-Sprache mindestens einmal gewechselt."
},
"hiddenBugBuddy": {
"title": "Bug-Kumpel",
"description": "Mindestens 5 Bugreports eingereicht — das Projekt liebt dich."
},
"missFree7": {
"title": "Lückenlos · 7T",
"description": "7 Tage in Folge ohne eine verpasste Dosis."
},
"missFree30": {
"title": "Lückenlos · 30T",
"description": "30 Tage in Folge ohne eine verpasste Dosis."
},
"missFree90": {
"title": "Lückenlos · 90T",
"description": "90 Tage in Folge ohne eine verpasste Dosis."
},
"measurementWeeks4": {
"title": "Mess-Routine",
"description": "4 Wochen in Folge an mindestens 5 Tagen pro Woche gemessen."
},
"selfContextComplete": {
"title": "Selbstauskunft gepflegt",
"description": "Alle vier Felder der Selbstauskunft ausgefüllt — der Coach kennt deinen Kontext."
},
"sleepLog7": {
"title": "Schlafprotokoll · 7T",
"description": "An 7 Tagen in Folge Schlafdaten erfasst."
}
},
"nextProgressLabel": "Fortschritt bis Freischaltung",
"completedOn": "Abgeschlossen am {date}",
"locked": "Gesperrt",
"criterionHint": "{current} / {target}",
"progressPercent": "{percent}%",
"categories": {
"medication": "Medikation",
"vitals": "Vitalwerte",
"mood": "Stimmung",
"security": "Konto & Sicherheit",
"engagement": "Engagement",
"hidden": "Versteckt"
},
"hiddenCard": {
"title": "Versteckter Erfolg",
"description": "Tracke fleißig weiter — vielleicht stolperst du darüber.",
"ariaLabel": "Versteckter, gesperrter Erfolg"
},
"hiddenUnlockToast": {
"title": "Du hast einen versteckten Erfolg freigeschaltet!"
},
"dashboardCard": {
"title": "Zuletzt freigeschaltet",
"viewAll": "Alle anzeigen",
"empty": "Noch keine Erfolge — trage weiter ein, um deinen ersten freizuschalten."
}
},
"bugreport": {
"title": "Bugreport",
"subtitle": "Sende eine Fehlermeldung, einen Feature-Wunsch oder eine Frage. Der Server-Administrator sieht deine Einreichung.",
"loginRequired": "Bitte anmelden, um einen Bug zu melden.",
"bugTitle": "Titel",
"description": "Beschreibung",
"submit": "Senden",
"success": "Vielen Dank! Dein Bug Report wurde erfolgreich übermittelt.",
"errorCreating": "Fehler beim Erstellen",
"category": "Art",
"categoryBug": "Fehlermeldung",
"categoryFeature": "Feature-Wunsch",
"categoryQuestion": "Frage",
"categoryOther": "Sonstiges Feedback",
"bugTitlePlaceholder": "Kurze Zusammenfassung (optional)",
"githubEscalationNote": "Dein Feedback wird lokal gespeichert. Wenn der Administrator die GitHub-Integration aktiviert, kann es auf Wunsch als öffentliches Issue veröffentlicht werden.",
"internalOnlyNote": "Dein Feedback wird lokal gespeichert und ist nur für den Administrator dieses Servers sichtbar.",
"disabledTitle": "Bug-Reports sind deaktiviert",
"disabledBody": "Der Administrator hat Bug-Reports auf diesem Server deaktiviert."
},
"notifications": {
"title": "Benachrichtigungen",
"breadcrumbInbox": "Benachrichtigungen",
"breadcrumbChannels": "Benachrichtigungs-Kanäle",
"breadcrumbSettings": "Einstellungen",
"eventColumn": "Ereignis",
"subtitle": "Wähle aus, welche Benachrichtigungen du über welchen Kanal erhalten möchtest.",
"loadError": "Benachrichtigungseinstellungen konnten nicht geladen werden.",
"noChannels": "Konfiguriere zuerst einen Benachrichtigungskanal in den Einstellungen.",
"goToSettings": "Zu den Kanal-Einstellungen",
"channelDisabled": "Deaktiviert",
"admin": {
"deployFailedTitle": "Bereitstellung fehlgeschlagen: {application}",
"deployFailedBody": "Bei der Bereitstellung von {application} (#{deployment}) ist ein Fehler aufgetreten: {error}. Logs ansehen: {logsUrl}",
"testNotificationTitle": "HealthLog Test-Benachrichtigung",
"testNotificationBody": "Diese Test-Benachrichtigung wurde vom Admin-Panel ausgelöst. Wenn du sie siehst, funktioniert der Kanal.",
"reminderCheckMissedTitle": "Erinnerung verpasst: {medication}",
"reminderCheckMissedBody": "{medication} ({dose}) im Zeitfenster {window} wurde nicht geloggt.",
"reminderCheckOverdueTitle": "Einnahme überfällig: {medication}",
"reminderCheckOverdueBody": "{medication} ({dose}) im Zeitfenster {window} ist seit {minutes} Minuten überfällig.",
"offlineGeoUnavailableTitle": "Offline-Geodatenbanken nicht geladen",
"offlineGeoUnavailableBody": "HealthLog löst Login-Standorte aktuell über den Online-Fallback ipwho.is auf. Um die Offline-Datenbanken GeoLite2-City und GeoLite2-ASN zu aktivieren, setze MAXMIND_LICENSE_KEY in den GitHub-Actions-Secrets unter {secretsUrl} und deploye neu. Bis dahin bleibt die Carrier-Spalte in der Login-Übersicht leer.",
"tlsPinChangedTitle": "TLS-Leaf-Zertifikat geändert: {host}",
"tlsPinChangedBody": "Das von {host} ausgelieferte TLS-Leaf hat jetzt den SPKI-Pin {servedPin}, der nicht im bekannten Pin-Satz enthalten ist. Gepinnte Clients (die native App) können sich nicht mehr verbinden, sobald der alte Pin weg ist. Extrahiere den neuen Leaf-Pin erneut, ergänze ihn in TLS_LEAF_SPKI_PINS sowie im Pin-Satz des nativen Clients und veröffentliche einen Build, bevor dieses Zertifikat am {validTo} abläuft. Siehe docs/ops/tls-cert-pin.md."
},
"user": {
"telegramTestBody": "HealthLog: Verbindung hergestellt. Telegram-Benachrichtigungen sind aktiv."
},
"moodReminder": {
"title": "Tägliche Stimmungs-Erinnerung",
"description": "Sanfter Anstoß zur eingestellten Zeit, falls du heute noch keine Stimmung erfasst hast. Greift nur auf bereits eingerichtete Kanäle (Telegram, ntfy, Web Push, Apple Push) zurück und schweigt, sobald du heute geloggt hast.",
"toggleAria": "Tägliche Stimmungs-Erinnerung umschalten",
"statusOn": "Aktiv zu deiner eingestellten Zeit",
"statusOff": "Aus",
"enabledToast": "Stimmungs-Erinnerung aktiviert.",
"disabledToast": "Stimmungs-Erinnerung deaktiviert.",
"saveError": "Speichern fehlgeschlagen. Bitte später erneut versuchen.",
"hourLabel": "Erinnerungszeit",
"hourAria": "Stunde der Stimmungs-Erinnerung",
"hourSavedToast": "Erinnerungszeit aktualisiert."
},
"coachNudge": {
"title": "Proaktiver Coach",
"description": "Meldet sich, wenn deine Daten einen Blick in den Coach nahelegen — etwa bei niedriger Therapietreue oder erhöhtem Blutdruck-Wochenmittel. Themen und Häufigkeit sind einstellbar.",
"toggleAria": "Proaktive Coach-Hinweise umschalten",
"statusOn": "Aktiv",
"statusOff": "Aus",
"groupsLabel": "Themen",
"groupMedication": "Medikation",
"groupMedicationDesc": "Lückenhafte Einnahmen der letzten Woche.",
"groupVitals": "Vitalwerte",
"groupVitalsDesc": "Blutdruck, Erholung, Gewichtstrend, Schlaf.",
"groupRoutine": "Routine",
"groupRoutineDesc": "Abrupte Mess-Pausen und Selbstauskunft-Check-ups.",
"frequencyLabel": "Häufigkeit",
"frequencyWeekly": "Höchstens einmal pro Woche",
"frequencyBiweekly": "Höchstens alle zwei Wochen",
"frequencyAria": "Häufigkeit der Coach-Hinweise wählen",
"enabledToast": "Proaktive Coach-Hinweise aktiviert.",
"disabledToast": "Proaktive Coach-Hinweise deaktiviert.",
"saveError": "Speichern fehlgeschlagen. Bitte später erneut versuchen."
},
"lowStock": {
"title": "Vorratswarnung",
"description": "Prüft deine erfassten Medikamentenvorräte einmal täglich und benachrichtigt dich, wenn einer weniger Tage abdeckt als diese Schwelle. Eine Benachrichtigung pro Engpass; nach dem Auffüllen meldet sie sich wieder.",
"toggleAria": "Vorratswarnungen umschalten",
"statusOn": "Aktiv",
"statusOff": "Aus",
"daysLabel": "Warnen unter (Tage)",
"daysAria": "Vorratsschwelle in Tagen wählen",
"leadLabel": "Vorlaufzeit zum Nachbestellen (Tage)",
"leadAria": "Vorlaufzeit zum Nachbestellen in Tagen",
"leadHelp": "Die Warnung kommt um so viele Tage plus ein Dosisintervall früher, damit der Nachschub vor deiner letzten Dosis eintrifft. Ein einzelnes Medikament kann diesen Wert auf seinem Bestand-Tab überschreiben.",
"leadSavedToast": "Vorlaufzeit gespeichert.",
"savedToast": "Vorratsschwelle gespeichert.",
"enabledToast": "Vorratswarnungen aktiviert.",
"disabledToast": "Vorratswarnungen deaktiviert.",
"saveError": "Speichern fehlgeschlagen. Bitte später erneut versuchen.",
"medicationsLink": "Zu deinen Medikamenten"
},
"eventMedicationReminder": "Medikamenten-Erinnerung",
"eventMedicationReminderDesc": "Wird zu jeder geplanten Einnahmezeit gesendet.",
"eventMeasurementAnomaly": "Auffälliger Messwert",
"eventMeasurementAnomalyDesc": "Wird gesendet, wenn ein Wert deutlich außerhalb deines üblichen Bereichs liegt.",
"eventComplianceLow": "Niedrige Therapietreue",
"eventComplianceLowDesc": "Wird gesendet, wenn deine Therapietreue in den letzten Tagen unter 80 % fällt.",
"eventWithingsSyncFailed": "Withings-Sync fehlgeschlagen",
"eventWithingsSyncFailedDesc": "Wird gesendet, wenn die Withings-Synchronisierung mehrere Versuche in Folge scheitert.",
"eventSystemAlert": "Systemmeldung",
"eventSystemAlertDesc": "Allgemeine Mitteilungen vom HealthLog-Server, etwa Wartungsfenster oder Konto-Hinweise.",
"eventPersonalRecord": "Persönlicher Rekord",
"eventPersonalRecordDesc": "Wird gesendet, wenn ein Messwert deine bisherige Bestmarke übertrifft.",
"eventMoodReminder": "Stimmungs-Erinnerung",
"eventMoodReminderDesc": "Tägliche Erinnerung, deine aktuelle Stimmung zu protokollieren.",
"eventCyclePeriodSoon": "Periode steht bevor",
"eventCyclePeriodSoonDesc": "Ein paar Tage vor deiner vorhergesagten nächsten Periode.",
"eventCyclePeriodConfirm": "Hat deine Periode begonnen?",
"eventCyclePeriodConfirmDesc": "Eine sanfte Nachfrage am oder nach dem vorhergesagten Beginn, solange keine Periode erfasst ist.",
"eventCycleFertileSoon": "Fruchtbares Fenster steht bevor",
"eventCycleFertileSoonDesc": "Wird einige Tage vor deinem geschätzten fruchtbaren Fenster gesendet, wenn dein Ziel die Empfängnis ist.",
"eventMedicationLowStock": "Medikamentenvorrat niedrig",
"eventMedicationLowStockDesc": "Wenn ein erfasster Vorrat weniger Tage abdeckt als deine Vorratsschwelle"
},
"i18n": {
"maintainershipBanner": {
"notice": "Diese Sprachversion ist maschinell übersetzt, inklusive der sicherheitskritischen Coach-Anweisungen. Eine automatische Drift-Prüfung läuft in CI; Coach-Regressionen bitte auf GitHub melden.",
"cta": "Auf GitHub melden",
"dismiss": "Schließen"
}
},
"targets": {
"bmi": "BMI",
"average30d": "30-Tage-Schnitt:",
"consistency": {
"ariaLabel": "Letzte 7 Tage, im-Zielbereich-Status pro Tag",
"daysInRange": "{count} von {total} im Bereich",
"daysLogged": "{count} von {total} erfasst",
"dotInRange": "im Bereich",
"dotNearRange": "nahe am Bereich",
"dotOutOfRange": "außerhalb",
"dotNotLogged": "nicht erfasst",
"insufficientData": "Noch zu wenige Daten — bitte weiter erfassen.",
"relativeDay": {
"today": "heute",
"yesterday": "gestern",
"twoDaysAgo": "vor 2 Tagen",
"threeDaysAgo": "vor 3 Tagen",
"fourDaysAgo": "vor 4 Tagen",
"fiveDaysAgo": "vor 5 Tagen",
"sixDaysAgo": "vor 6 Tagen"
}
},
"relativeDay": {
"today": "heute",
"yesterday": "gestern",
"daysAgo": "vor {count} Tagen"
},
"edit": {
"openLabel": "Zielbereich für {metric} bearbeiten",
"title": "Zielbereich bearbeiten — {metric}",
"description": "Passt den Zielbereich an, der in Charts, Insights und im Arztbericht verwendet wird. Werte in {unit}.",
"derivedHint": "Diese Karte wird aus anderen Metriken abgeleitet. Bearbeite stattdessen die zugrundeliegenden Ziele (z. B. Blutdruck oder Gewicht).",
"minLabel": "Min",
"maxLabel": "Max",
"systolicMin": "Systolisch min",
"systolicMax": "Systolisch max",
"diastolicMin": "Diastolisch min",
"diastolicMax": "Diastolisch max",
"boundsHint": "Erlaubter Bereich: {min}–{max} {unit}",
"resetToDefault": "Auf Standard zurücksetzen",
"saveSuccess": "Zielbereich aktualisiert",
"saveError": "Zielbereich konnte nicht gespeichert werden",
"resetSuccess": "Zielbereich auf Standard zurückgesetzt"
},
"mood": {
"stability": {
"stable": "stabil",
"variable": "schwankend",
"highlyVariable": "sehr schwankend"
}
},
"currentValue": "Aktuell: {value} {unit}",
"targetRangeValue": "Zielbereich: {min}–{max} {unit}",
"sourceLabel": "Quelle: {source}",
"inTarget": "Im Zielbereich",
"aboveTarget": "{delta} {unit} über Zielbereich",
"belowTarget": "{delta} {unit} unter Zielbereich",
"diastolic": "Diastolisch",
"glucoseFasting": "Glukose — nüchtern",
"glucosePostprandial": "Glukose — postprandial",
"glucoseRandom": "Glukose — beliebig",
"glucoseBedtime": "Glukose — vor dem Schlafen",
"status": {
"underweight": "Untergewicht",
"normal": "Normal",
"overweight": "Übergewicht",
"obesityGrade1": "Adipositas Grad I",
"obesityGrade2": "Adipositas Grad II",
"obesityGrade3": "Adipositas Grad III",
"optimal": "Optimal",
"highNormal": "Hochnormal",
"hypertensionGrade1": "Hypertonie Grad 1",
"hypertensionGrade2": "Hypertonie Grad 2",
"hypertensionGrade3": "Hypertonie Grad 3",
"bradycardia": "Bradykardie",
"elevated": "Erhöht",
"tachycardia": "Tachykardie",
"significantlyLow": "Deutlich niedrig",
"slightlyLow": "Leicht niedrig",
"onTarget": "Im Zielbereich",
"slightlyElevated": "Leicht erhöht",
"significantlyElevated": "Deutlich erhöht",
"farTooShort": "Viel zu kurz",
"tooShort": "Zu kurz",
"slightlyLong": "Leicht zu lang",
"farTooLong": "Viel zu lang",
"belowEssential": "Unter essenziell",
"essential": "Essenziell",
"athletic": "Athletisch",
"fitness": "Fitness",
"acceptable": "Akzeptabel",
"obese": "Adipös",
"veryLow": "Sehr niedrig",
"lowActive": "Wenig aktiv",
"moderatelyActive": "Mäßig aktiv",
"active": "Aktiv",
"veryActive": "Sehr aktiv",
"good": "Gut",
"moderate": "Moderat",
"low": "Niedrig",
"high": "Hoch",
"veryGood": "Sehr gut",
"veryStable": "Sehr stabil",
"stable": "Stabil",
"fluctuating": "Schwankend"
}
},
"passwordStrength": {
"veryWeak": "Sehr schwach",
"weak": "Schwach",
"acceptable": "Akzeptabel",
"strong": "Stark",
"veryStrong": "Sehr stark",
"tooShort": "Zu kurz",
"characters": "Zeichen",
"minLength": "Mindestens {count} Zeichen erforderlich."
},
"telegram": {
"errorInvalidAction": "Ungültige Aktion.",
"errorMedicationNotFound": "Medikament nicht gefunden.",
"errorMedicationInactive": "Medikament nicht gefunden oder inaktiv.",
"errorUnknownAction": "Unbekannte Aktion.",
"snoozeOneHour": "1 Stunde",
"snoozeThreeHours": "3 Stunden",
"snoozedFor": "{name} für {duration} zurückgestellt.",
"skipped": "{name} übersprungen.",
"alreadyRecorded": "{name} war bereits erfasst.",
"recordedAsTaken": "{name} als eingenommen erfasst.",
"confirmed": "{name} bestätigt.",
"genericConfirmed": "Bestätigt.",
"cancelled": "Abgebrochen.",
"noActiveMedications": "Keine aktiven Medikamente gefunden.",
"whichMedication": "<b>Welches Medikament eingenommen?</b>",
"cancelButton": "Abbrechen",
"askMedicationName": "Bitte Medikament angeben, z.B. <b>genommen Ramipril</b>.",
"medicationNotFoundExact": "Medikament nicht gefunden. Bitte Namen exakt wie in HealthLog senden.",
"helpHeader": "<b>Verfügbare Befehle:</b>",
"helpBody": "/help — Diese Hilfe anzeigen\n/add — Einnahme erfassen\n/start — Bot starten\n\n<b>Textbefehle:</b>\ngenommen &lt;Name&gt; — Einnahme bestätigen\n\n<b>Über die Buttons in Erinnerungen:</b>\n• Genommen — Einnahme bestätigen\n• 🕐 1h / 🕐 3h — Erinnerung verschieben\n• ⏭ Überspringen — Einnahme überspringen\n• ✓ Bestätigen — Verpasste Einnahme bestätigen"
},
"medicationReminders": {
"phaseGreenTitle": "🟢 Erinnerung: {medName}",
"phaseGreenMessage": "🟢 Erinnerung:\n<b>{medName}</b> ({doseInfo}, {timeWindow})\nZeitfenster endet in {minutes} Min.",
"phaseYellowTitle": "🟡 Bald fällig: {medName}",
"phaseYellowMessage": "🟡 Bald fällig:\n<b>{medName}</b> ({doseInfo}, {timeWindow})\nNoch {minutes} Min. Zeit.",
"phaseOrangeTitle": "🟠 Überfällig: {medName}",
"phaseOrangeMessage": "🟠 Überfällig:\n<b>{medName}</b> ({doseInfo}, {timeWindow})\nSeit {minutes} Min. überfällig.",
"phaseRedTitle": "🔴 Verpasst: {medName}",
"phaseRedMessage": "🔴 Verpasst:\n<b>{medName}</b> ({doseInfo}, {timeWindow})\nAls verpasst markiert.",
"buttonTaken": "Genommen",
"buttonConfirm": "✓ Bestätigen",
"buttonSnoozeOneHour": "🕐 1h",
"buttonSnoozeThreeHours": "🕐 3h",
"buttonSkip": "⏭ Überspringen"
},
"lowStockReminders": {
"title": "Vorrat niedrig: {medName}",
"body": "Dein Vorrat an {medName} reicht noch etwa {days} Tage ({units} Einheiten übrig).",
"bodyToday": "Dein Vorrat an {medName} reicht keinen ganzen Tag mehr ({units} Einheiten übrig).",
"bodyReorder": "Dein Vorrat an {medName} ({units} Einheiten) ist um den {runsOutOn} aufgebraucht — bestelle bis zum {reorderBy} nach.",
"bodyLastDose": "Dein Vorrat an {medName} ({units} Einheiten) reicht noch etwa für die letzte Dosis. Aufgebraucht um den {runsOutOn}."
},
"moodReminders": {
"dailyTitle": "Stimmung erfassen",
"dailyBody": "Wie geht es dir heute?"
},
"coachNudges": {
"complianceTitle": "Dein Coach hätte einen Gedanken dazu",
"complianceBody": "Deine Einnahmen waren diese Woche lückenhaft. Sprich kurz mit dem Coach — vielleicht lässt sich der Plan vereinfachen.",
"bpTitle": "Blutdruck im Wochenmittel erhöht",
"bpBody": "Dein Blutdruck lag diese Woche im Schnitt über deinem Ziel. Der Coach kann die Werte mit dir einordnen.",
"scoreTitle": "Dein Erholungswert fällt",
"scoreBody": "Dein Erholungswert ist diese Woche deutlich gesunken. Der Coach hilft dir, mögliche Ursachen einzugrenzen.",
"selfContextTitle": "Hilf deinem Coach, dich besser zu kennen",
"selfContextBody": "Deine Selbstauskunft ist unvollständig oder länger nicht aktualisiert. Zwei Minuten in den Einstellungen halten den Kontext des Coachs frisch.",
"weightTitle": "Dein Gewicht entfernt sich vom Zielbereich",
"weightBody": "Dein Wochenmittel hat sich weiter von deinem Zielbereich entfernt. Der Coach kann mit dir in Ruhe Bilanz ziehen.",
"sleepDebtTitle": "Mehrere kurze Nächte diese Woche",
"sleepDebtBody": "Die meisten deiner letzten Nächte lagen unter deinem Schlafziel. Der Coach hilft dir, nach Mustern zu suchen.",
"measurementGapTitle": "Dein Protokoll ist still geworden",
"measurementGapBody": "Seit einer Woche kommen keine neuen Werte an. Ein kurzer Austausch mit dem Coach hilft beim Wiedereinstieg — oder deckt eine hängende Synchronisierung auf.",
"focusSuffix": "Du wolltest auf Folgendes achten: {focus}.",
"questionConditions": "Hast du chronische Erkrankungen, die der Coach kennen sollte?",
"questionFocus": "Gibt es etwas Bestimmtes, worauf der Coach achten soll?",
"questionAllergies": "Hast du Allergien oder Unverträglichkeiten?",
"questionAboutMe": "Magst du dem Coach etwas über dich erzählen — Alltag, Ziele, Kontext?"
},
"clinicianView": {
"title": "Geteilte Gesundheitsakte",
"period": "Berichtszeitraum: {start} – {end}",
"expires": "Dieser Link läuft am {date} ab.",
"provenance": "Dies ist eine schreibgeschützte Zusammenfassung, die von der betreffenden Person geteilt wurde, exportiert aus ihren selbst erfassten HealthLog-Daten. Die Werte sind selbst erhoben und können geräteübertragene Messwerte enthalten; behandeln Sie sie als von der Patientin/dem Patienten berichtet, nicht als klinische Untersuchung.",
"vitals": "Vitalwerte",
"labs": "Laborwerte",
"medications": "Medikamente & Therapietreue",
"bmi": "Body-Mass-Index (BMI)",
"statSummary": "zuletzt {latest} (Ø {avg}, Bereich {min}–{max})",
"adherence": "{rate} Therapietreue",
"noAdherence": "—",
"glucose": {
"FASTING": "Glukose (nüchtern)",
"POSTPRANDIAL": "Glukose (postprandial)",
"RANDOM": "Glukose (zufällig)",
"BEDTIME": "Glukose (vor dem Schlafen)"
},
"wellness": {
"title": "Wellness-Werte",
"disclaimer": "Beschreibende Werte (0–100), berechnet aus erfassten Signalen. Dies ist keine klinische Beurteilung und keine Diagnose.",
"recovery": "Erholungswert",
"stress": "Stresswert",
"strain": "Belastungswert",
"score": "Wellness-Wert"
},
"footer": "Geteilt aus HealthLog — einem selbst gehosteten Gesundheits-Tracker."
},
"cycle": {
"symptomCategory": {
"physical": "Körperlich",
"emotional": "Emotional",
"digestive": "Verdauung",
"custom": "Eigene"
},
"symptom": {
"cramps": "Krämpfe",
"headache": "Kopfschmerzen",
"bloating": "Blähbauch",
"acne": "Akne",
"breastTenderness": "Brustspannen",
"fatigue": "Müdigkeit",
"backPain": "Rückenschmerzen",
"insomnia": "Schlaflosigkeit",
"libidoHigh": "Hohe Libido",
"libidoLow": "Niedrige Libido",
"moodSwings": "Stimmungsschwankungen",
"foodCravings": "Heißhunger",
"nausea": "Übelkeit",
"diarrhea": "Durchfall",
"constipation": "Verstopfung",
"custom": {
"add": "Symptom hinzufügen",
"label": "Name",
"labelPlaceholder": "z. B. Schwindel",
"icon": "Symbol",
"limitReached": "Höchstzahl an eigenen Symptomen erreicht.",
"remove": "{label} entfernen",
"fallbackLabel": "Eigenes Symptom"
}
},
"prediction": {
"disclaimer": "Vorhersagen sind Schätzungen aus deinen erfassten Daten, keine medizinische Beratung und keine Verhütung. Die Genauigkeit steigt, je mehr Zyklen du erfasst."
},
"insights": {
"headline": {
"title": "Dein Zyklus und dein Körper",
"restingHeartRate": "Dein Ruhepuls liegt in der Lutealphase etwa {delta} {unit} {dir} als in der Follikelphase.",
"heartRateVariability": "Deine Herzfrequenzvariabilität liegt in der Lutealphase etwa {delta} {unit} {dir} als in der Follikelphase.",
"generic": "Dein/e {metric} liegt in der Lutealphase etwa {delta} {unit} {dir} als in der Follikelphase.",
"dirHigher": "höher",
"dirLower": "niedriger",
"empty": "Noch nicht genug Zyklen und Messwerte für ein Phasenmuster. Logge weiter — das füllt sich, je länger deine Historie wird."
},
"crosstab": {
"description": "Wie sich jeder Messwert zwischen deiner Luteal- und Follikelphase vergleicht – auf deinen eigenen Daten.",
"pairLabel": "{metric} · Luteal vs. Follikel",
"detail": "Luteal {lutealAvg} {unit} ({lutealDays} Tage) vs. Follikel {follicularAvg} {unit} ({follicularDays} Tage).",
"footer": "Das sind Zusammenhänge in deinen eigenen Daten, keine Ursachen. Nur Muster, die einen Signifikanztest bestehen, werden gezeigt.",
"metricRestingHeartRate": "Ruhepuls",
"metricHrv": "Herzfrequenzvariabilität",
"metricSleepDuration": "Schlafdauer",
"metricSteps": "Schritte",
"metricWeight": "Gewicht",
"metricBasalBodyTemp": "Basaltemperatur",
"metricWristTemperature": "Handgelenkstemperatur nachts",
"metricSkinTemperature": "Hauttemperatur",
"metricBloodGlucose": "Blutzucker",
"metricMood": "Stimmung",
"unitHours": "Std.",
"unitSteps": "Schritte",
"unitBpm": "S/min",
"unitMs": "ms",
"unitKg": "kg",
"unitCelsius": "°C",
"unitGlucose": "mg/dL",
"unitMood": "Pkt.",
"confidenceLow": "Geringe Sicherheit",
"confidenceMedium": "Mittlere Sicherheit",
"confidenceHigh": "Hohe Sicherheit"
},
"title": "Zyklus-Erkenntnisse",
"empty": "Phasen-Erkenntnisse erscheinen hier, sobald du genug Zyklen erfasst hast. Sie vergleichen deine Werte über die Zyklusphasen hinweg, mit offen gezeigter Statistik.",
"sampleSize": "n = {n}",
"effectSize": "Effektstärke {value}",
"qValue": "q = {value}",
"symptomPatternsTitle": "Symptommuster nach Phase",
"symptomPatternsEmpty": "Erfasse Symptome über einen Zyklus, um zu sehen, in welcher Phase sie sich häufen.",
"symptomMostlyIn": "Meist in {phase} ({count}/{total} Tage)"
},
"phaseEducation": {
"title": "Was gerade passiert",
"whatsHappening": {
"MENSTRUAL": "Deine Periode ist der Beginn eines neuen Zyklus, während sich die Gebärmutterschleimhaut löst. Energie und Stimmung fühlen sich in diesen ersten Tagen oft niedriger an.",
"FOLLICULAR": "Nach der Periode steigt der Östrogenspiegel allmählich, während der Körper eine Eizelle vorbereitet. Viele bemerken in dieser Phase eine gleichmäßigere Energie.",
"OVULATORY": "Etwa zur Zyklusmitte wird eine Eizelle freigesetzt und die Fruchtbarkeit erreicht für ein kurzes Fenster ihren Höhepunkt. Diese Phase ist die kürzeste der vier.",
"LUTEAL": "Nach dem Eisprung steigt das Progesteron und der Körper kommt zur Ruhe. In den Tagen vor der nächsten Periode bemerken manche prämenstruelle Veränderungen."
},
"context": {
"MENSTRUAL": "Die Hormonspiegel sind jetzt am niedrigsten, weshalb sich diese Tage wie ein ruhiger Neustart anfühlen können. Manche bemerken Krämpfe, leichteren Schlaf oder den Wunsch, einen Gang zurückzuschalten; andere kommen fast unverändert durch. All das liegt im normalen Rahmen, und wie es sich anfühlt, kann von Zyklus zu Zyklus wechseln.",
"FOLLICULAR": "Mit steigendem Östrogen beschreiben viele diese Tage als hell und offen – der Schlaf fällt oft leichter und der Kopf fühlt sich klarer an. Die Basaltemperatur bleibt meist im niedrigeren Bereich, bis kurz vor dem Eisprung. Die Länge dieser Phase schwankt am stärksten – von Person zu Person und von Zyklus zu Zyklus.",
"OVULATORY": "Das Östrogen erreicht kurz vor dem Eisprung seinen Höhepunkt, oft begleitet von einem kurzen Stimmungshoch und einem leichten Anstieg der Basaltemperatur in den ein, zwei Tagen danach. Der Zervixschleim wird in diesem Fenster meist klarer und dehnbarer. Ein kurzes Ziehen auf einer Seite bemerken manche; viele spüren gar nichts, und beides ist völlig normal.",
"LUTEAL": "Das Progesteron führt durch die zweite Zyklushälfte, und die Basaltemperatur liegt meist etwas höher als zuvor im Zyklus. Manche bemerken im Lauf der Tage Veränderungen bei Schlaf, Appetit, Stimmung oder Energie, während andere durchgehend ausgeglichen bleiben. Das Muster ist persönlich und sieht von Monat zu Monat oft anders aus."
},
"commonHere": "Das bemerkst du hier oft",
"trackNudge": "Heute eintragen",
"stillLearning": "Lerne deinen Zyklus noch kennen. Trage weiter ein, dann füllt sich das mit Mustern aus deinen eigenen Tagen."
},
"insightsSummary": {
"title": "Dein Zyklus",
"currentDay": "Tag {day} deines Zyklus",
"noActiveCycle": "Noch kein aktiver Zyklus",
"viewDetails": "Zyklus-Erkenntnisse ansehen"
},
"wellnessRing": {
"label": "Zyklus"
},
"disclaimer": "Diese Vorhersagen sind beschreibende Schätzungen aus deinen erfassten Daten, keine Verhütungsmethode und keine medizinische Beratung. Sie zeigen nie an, dass ungeschützter Geschlechtsverkehr sicher ist. Wende dich für Verhütung oder medizinische Entscheidungen an eine medizinische Fachperson.",
"title": "Dein Zyklus",
"subtitle": "Erfasse deine Periode und Symptome und sieh, was als Nächstes kommt.",
"tabs": {
"calendar": "Kalender",
"predictions": "Prognosen",
"insights": "Erkenntnisse",
"settings": "Einstellungen"
},
"logToday": "Heute erfassen",
"startedPeriod": "Periode hat heute begonnen",
"endedPeriod": "Periode heute beendet",
"phase": {
"MENSTRUAL": "Menstruation",
"FOLLICULAR": "Follikelphase",
"OVULATORY": "Ovulation",
"LUTEAL": "Lutealphase",
"none": "Keine Phase",
"label": "Phase"
},
"flow": {
"NONE": "Keine",
"SPOTTING": "Schmierblutung",
"LIGHT": "Leicht",
"MEDIUM": "Mittel",
"HEAVY": "Stark",
"label": "Stärke"
},
"ovulationTest": {
"NEGATIVE": "Negativ",
"POSITIVE_LH_SURGE": "LH-Anstieg",
"ESTROGEN_SURGE": "Östrogen-Anstieg",
"INDETERMINATE": "Unklar",
"label": "Ovulationstest"
},
"mucus": {
"DRY": "Trocken",
"STICKY": "Klebrig",
"CREAMY": "Cremig",
"WATERY": "Wässrig",
"EGG_WHITE": "Eiweißartig",
"label": "Zervixschleim"
},
"cervixPosition": {
"LOW": "Tief",
"HIGH": "Hoch"
},
"cervixFirmness": {
"FIRM": "Fest",
"SOFT": "Weich"
},
"cervixOpening": {
"CLOSED": "Geschlossen",
"OPEN": "Geöffnet"
},
"goal": {
"GENERAL_HEALTH": "Allgemeine Gesundheit",
"AVOID_PREGNANCY": "Verhütung",
"TRYING_TO_CONCEIVE": "Kinderwunsch",
"PERIMENOPAUSE": "Perimenopause",
"OFF": "Tracking aus",
"label": "Wofür trackst du?",
"description": "Das bestimmt die Sprache und welche Prognosen du siehst. Hinweise zum fruchtbaren Fenster erscheinen nur bei Kinderwunsch."
},
"ring": {
"dayOfCycle": "Tag {day}",
"dayUnknown": "—",
"ariaPhase": "Zyklustag {day}, {phase}-Phase",
"ariaUnknown": "Noch kein aktiver Zyklus",
"caption": "deines Zyklus",
"firstPeriodCta": "Erste Periode erfassen"
},
"calendar": {
"legendPeriod": "Erfasste Periode",
"legendPredicted": "Prognostizierte Periode",
"legendFertile": "Fruchtbares Fenster",
"legendOvulation": "Ovulation",
"legendSymptoms": "Symptome erfasst",
"prevMonth": "Vorheriger Monat",
"nextMonth": "Nächster Monat",
"loading": "Kalender wird geladen…",
"empty": "Erfasse Daten, damit sich dein Kalender füllt.",
"learning": "Wir lernen deinen Zyklus – erfasse mindestens drei volle Zyklen, dann füllen sich fruchtbares Fenster, Eisprung und Phasen. Bis dahin zeigt der Kalender nur, was du erfasst hast.",
"today": "Heute",
"dayAria": "{date}",
"legendSymptom": "Symptome",
"legendOvulationConfirmed": "Bestätigter Eisprung",
"flowSpotting": "Schmierblutung",
"flowLight": "leicht",
"flowMedium": "mittel",
"flowHeavy": "stark"
},
"predictions": {
"title": "Was als Nächstes kommt",
"nextPeriod": "Nächste Periode",
"nextPeriodRange": "Etwa am {date}",
"nextPeriodWindow": "{low} – {high}",
"fertileWindow": "Fruchtbares Fenster",
"ovulation": "Geschätzter Eisprung",
"confidence": "Sicherheit",
"confidenceHigh": "Hoch",
"confidenceMedium": "Mittel",
"confidenceLow": "Niedrig",
"stillLearning": "Noch am Lernen",
"stillLearningBody": "Erfasse mindestens drei vollständige Zyklen, dann werden deine Prognosen genauer. Bis dahin ist dies eine grobe Schätzung.",
"rawMode": "Prognose ist aus",
"rawModeBody": "Du hast Prognosen ausgeschaltet — es werden nur deine erfassten Daten gezeigt, ohne Vorhersage.",
"none": "Noch keine Prognose. Erfasse eine Periode, um zu starten.",
"ovulationConfirmed": "Eisprung (bestätigt)"
},
"history": {
"title": "Deine Zyklen",
"avgLength": "Durchschnittliche Länge",
"variability": "Schwankung",
"avgPeriodLength": "Durchschnittliche Periode",
"regularity": "Regelmäßigkeit",
"regularityREGULAR": "Regelmäßig",
"regularityIRREGULAR": "Unregelmäßig",
"regularityLEARNING": "Lernend",
"days": "{count} Tage",
"daysPlusMinus": "± {count} Tage",
"none": "Noch keine Zyklen erfasst.",
"recentCycles": "Letzte Zyklen",
"ongoing": "laufend",
"periodDays": "Periode {count} T",
"ovulationChip": "Eisprung",
"chartTitle": "Zykluslänge im Verlauf",
"chartCaption": "Jeder Balken ist ein Zyklus: die rosa Basis ist deine Periode, der Rest die Zykluslänge.",
"chartAria": "Zykluslängen-Diagramm deiner letzten {count} Zyklen, Durchschnitt {avg} Tage, eingestuft als {regularity}.",
"legendPeriodSegment": "Periodentage",
"legendRestSegment": "Rest des Zyklus"
},
"sheet": {
"title": "Tag erfassen",
"description": "Erfasse Stärke, Symptome und Notizen von heute.",
"date": "Datum",
"flow": "Stärke",
"symptoms": "Symptome",
"temperature": "Basaltemperatur",
"temperaturePlaceholder": "°C",
"temperatureDisturbed": "Messwert als gestört markieren",
"temperatureDisturbedHint": "Fieber, Krankheit, Alkohol oder eine späte Messung — wird von der Temperaturauswertung ausgeschlossen.",
"ovulationTest": "Ovulationstest",
"mucus": "Zervixschleim",
"cervix": "Gebärmutterhals",
"cervixPosition": "Position",
"cervixFirmness": "Festigkeit",
"cervixOpening": "Öffnung",
"intercourse": "Geschlechtsverkehr",
"protected": "Geschützt",
"note": "Notiz",
"notePlaceholder": "Was du dir über heute merken möchtest…",
"save": "Speichern",
"saving": "Speichern…",
"cancel": "Abbrechen",
"saved": "Tag gespeichert",
"saveError": "Konnte nicht gespeichert werden. Versuch es erneut.",
"periodStarted": "Periodenbeginn erfasst",
"clear": "Keine",
"intermenstrualBleeding": "Schmierblutung zwischen Perioden",
"pregnancyTest": "Schwangerschaftstest",
"progesteroneTest": "Progesterontest",
"contraceptive": "Verhütung",
"severity": "Schweregrad",
"severityLevel": "Schweregrad {level} von 4",
"delete": "Löschen",
"temperatureSection": "Temperatur & Eisprung",
"intimacySection": "Intimität & Verhütung",
"testsSection": "Tests"
},
"settings": {
"title": "Zyklus-Einstellungen",
"enable": "Zyklus-Tracking",
"enableDescription": "Schalte den Zyklus-Tab für dein Konto ein oder aus.",
"typicalCycleLength": "Typische Zykluslänge (Tage)",
"typicalPeriodLength": "Typische Periodenlänge (Tage)",
"lutealPhaseLength": "Länge der Lutealphase (Tage)",
"priorsDescription": "Diese Vorgaben helfen deinen Prognosen, bevor du viele Zyklen erfasst hast. Leer lassen, um die Standardwerte zu nutzen.",
"rawChartMode": "Roh-Diagramm-Modus",
"rawChartModeDescription": "Zeige nur deine erfassten Daten, ohne Prognosen oder Deutung.",
"secondarySymptomLabel": "Zweites Fruchtbarkeitszeichen",
"secondarySymptomDescription": "Das zweite Zeichen, das für die symptothermale Doppelkontrolle mit deiner Temperatur kombiniert wird. Die meisten beobachten den Zervixschleim; wechsle zur Gebärmutterhals-Beobachtung, wenn du das bevorzugst.",
"secondarySymptom": {
"MUCUS": "Zervixschleim",
"CERVIX": "Gebärmutterhals"
},
"prediction": "Prognosen",
"predictionDescription": "Prognostiziere deine nächste Periode und, wenn relevant, dein fruchtbares Fenster.",
"encryption": "Sensible Einträge verschlüsseln",
"encryptionDescription": "Verschlüssele absichtsverratende Felder (Schwangerschaftstests, Verhütung, Geschlechtsverkehr) ruhend, zusätzlich zu den stets verschlüsselten Notizen.",
"discreet": "Diskrete Benachrichtigungen",
"discreetDescription": "Verbirg Zyklusdetails im Benachrichtigungstext auf deinem Sperrbildschirm.",
"dataTitle": "Deine Daten",
"dataDescription": "Deine Zyklusdaten liegen nur auf diesem Server. Exportiere sie jederzeit oder lösche sie endgültig.",
"export": "Meine Zyklusdaten exportieren",
"deleteData": "Meine Zyklusdaten löschen",
"saved": "Einstellungen gespeichert",
"saveError": "Konnte nicht gespeichert werden. Versuch es erneut.",
"save": "Speichern",
"purgeTitle": "Alle Zyklusdaten löschen",
"purgeDescription": "Entfernt dauerhaft jeden erfassten Tag, Zyklus, jede Vorhersage und jeden Erinnerungseintrag. Kann nicht rückgängig gemacht werden.",
"purgeButton": "Alle Zyklusdaten löschen",
"purgeConfirmTitle": "Alle Zyklusdaten löschen?",
"purgeConfirmBody": "Dies löscht dauerhaft jede Periode, jeden Tageseintrag, jedes Symptom und jede Vorhersage. Dies kann nicht rückgängig gemacht werden.",
"purgeConfirm": "Alle Zyklusdaten dauerhaft löschen?",
"purgeCancel": "Abbrechen",
"purgeSuccess": "Alle Zyklusdaten gelöscht.",
"purgeError": "Zyklusdaten konnten nicht gelöscht werden.",
"reminders": "Erinnerungen",
"remindersDescription": "Perioden-Erinnerungen pro Kanal in den Benachrichtigungseinstellungen aktivieren.",
"remindersLink": "Benachrichtigungseinstellungen",
"fertileReminder": "Erinnerung an das fruchtbare Fenster",
"fertileReminderDescription": "Erhalte einige Tage vor deinem geschätzten fruchtbaren Fenster einen Hinweis. Standardmäßig aus – aktiviere sie pro Kanal in den Benachrichtigungseinstellungen.",
"purgeData": "Zyklusdaten löschen",
"purgeConfirmAction": "Ja, alles löschen",
"purgeDone": "Zyklusdaten gelöscht."
},
"testResult": {
"POSITIVE": "Positiv",
"NEGATIVE": "Negativ",
"INDETERMINATE": "Unklar"
},
"contraceptive": {
"NONE": "Keine",
"UNSPECIFIED": "Andere",
"IMPLANT": "Implantat",
"INJECTION": "Spritze",
"IUD": "Spirale",
"INTRAVAGINAL_RING": "Ring",
"ORAL": "Pille",
"PATCH": "Pflaster",
"EMERGENCY": "Notfall"
},
"loadError": "Zyklusdaten konnten nicht geladen werden.",
"saveError": "Zykluseintrag konnte nicht gespeichert werden.",
"deleteError": "Eintrag konnte nicht gelöscht werden.",
"bbt": {
"title": "Basaltemperatur",
"caption": "Deine Morgentemperatur über diesen Zyklus. Ein anhaltender Anstieg um etwa 0,2 °C folgt auf den Eisprung.",
"empty": "Noch keine Temperaturwerte",
"emptyHint": "Miss deine Basaltemperatur jeden Morgen, um den Temperaturanstieg deines Zyklus zu sehen.",
"ovulationEstimate": "Gesch. Eisprung",
"tooltipTemp": "{temp} °C",
"ovulationConfirmed": "Bestätigter Eisprung"
}
},
"cycleReminders": {
"periodSoonTitle": "Periode steht wahrscheinlich bevor",
"periodSoonBody": "Deine nächste Periode wird in etwa zwei Tagen erwartet.",
"periodConfirmTitle": "Hat deine Periode begonnen?",
"periodConfirmBody": "Deine Periode wurde für etwa jetzt vorhergesagt. Trage sie ein, damit die Vorhersagen genau bleiben.",
"fertileSoonTitle": "Fruchtbares Fenster steht bevor",
"fertileSoonBody": "Dein geschätztes fruchtbares Fenster beginnt voraussichtlich in etwa zwei Tagen. Dies ist eine Schätzung und keine medizinische oder verhütende Garantie.",
"discreetTitle": "HealthLog-Erinnerung",
"discreetBody": "Du hast eine Erinnerung in HealthLog."
},
"dataList": {
"allSources": "Alle Quellen",
"dateFrom": "Von",
"dateTo": "Bis",
"dateRange": "Zeitraum",
"typeLabel": "Typ",
"sourceLabel": "Quelle",
"resetFilters": "Zurücksetzen",
"clearFilter": "Filter entfernen: {label}",
"selectAll": "Alle auf dieser Seite auswählen",
"selectRow": "Zeile auswählen",
"selected": "{count} ausgewählt",
"deleteN": "Löschen ({count})",
"clearSelection": "Auswahl aufheben",
"selectionBarLabel": "Auswahlaktionen"
},
"measurementReminders": {
"sectionTitle": "Vorsorge",
"sectionDescription": "Erinnerungen, was wann und wo zu messen oder zu prüfen ist.",
"addButton": "Erinnerung hinzufügen",
"markDone": "Erledigt",
"delete": "Löschen",
"disabledBadge": "Aus",
"nextDue": {
"none": "Nicht geplant",
"today": "Heute fällig",
"tomorrow": "Morgen fällig",
"inDays": "In {days} Tagen"
},
"overdueByDays": "Überfällig seit {days} Tagen",
"cadence": {
"everyNDays": "Alle {days} Tage",
"custom": "Eigener Zeitplan"
},
"location": {
"prefix": "Bei: {location}"
},
"types": {
"WEIGHT": "Gewicht",
"BLOOD_PRESSURE_SYS": "Blutdruck",
"PULSE": "Puls",
"BLOOD_GLUCOSE": "Blutzucker",
"OXYGEN_SATURATION": "Sauerstoffsättigung",
"BODY_FAT": "Körperfett",
"BODY_TEMPERATURE": "Körpertemperatur"
},
"empty": {
"title": "Noch keine Erinnerungen",
"description": "Füge eine Erinnerung hinzu, um z. B. regelmäßig den Blutdruck zu messen oder ein jährliches Blutbild zu planen."
},
"form": {
"label": "Bezeichnung",
"labelPlaceholder": "z. B. Blutdruck messen",
"kind": "Art",
"kindType": "Mit einer Messung verknüpft",
"kindFreeText": "Freitext-Prüfung",
"measurementType": "Messwert",
"cadence": "Wiederholung",
"notifyHour": "Erinnern um",
"location": "Wo (optional)",
"locationPlaceholder": "z. B. Hausarzt, Labor",
"save": "Speichern"
},
"pushTitle": "Vorsorge-Erinnerung",
"pushBody": "Fällig: {label}",
"pushLocation": "(bei {location})"
},
"labs": {
"title": "Laborwerte",
"subtitle": "Blutwerte und Biomarker",
"addResult": "Hinzufügen",
"addDescription": "Erfasse einen Biomarker aus deinem Laborbefund.",
"addFirst": "Ersten Wert erfassen",
"emptyTitle": "Noch keine Laborwerte",
"emptyDescription": "Erfasse Blutwerte wie HbA1c, LDL oder Ferritin, um sie über die Zeit zu verfolgen und mit deiner Ärztin oder deinem Arzt zu teilen.",
"referenceLabel": "Referenz",
"readingsCount": "{count} Werte",
"deleteLatest": "Letzten Wert löschen",
"deletedToast": "Wert gelöscht",
"deleteError": "Wert konnte nicht gelöscht werden",
"loadError": "Laborwerte konnten nicht geladen werden",
"range": {
"inRange": "Im Bereich",
"below": "Unter Bereich",
"above": "Über Bereich"
},
"form": {
"analyte": "Biomarker",
"analytePlaceholder": "z. B. HbA1c, LDL, Ferritin",
"value": "Wert",
"unit": "Einheit",
"unitPlaceholder": "z. B. mg/dl, %, ng/ml",
"takenAt": "Probendatum",
"optionalGroup": "Optional",
"panel": "Panel",
"panelPlaceholder": "z. B. Großes Blutbild",
"referenceLow": "Referenz unten",
"referenceHigh": "Referenz oben",
"referenceLowPlaceholder": "Untere Grenze",
"referenceHighPlaceholder": "Obere Grenze",
"referenceHint": "Übernimm den Referenzbereich aus deinem Laborbefund. Beide Grenzen sind optional.",
"note": "Notiz",
"notePlaceholder": "Optionaler Kontext zu diesem Wert",
"requiredError": "Biomarker, Wert und Einheit sind erforderlich.",
"rangeOrderError": "Die untere Referenz darf nicht über der oberen liegen.",
"save": "Speichern",
"savedToast": "Wert gespeichert",
"saveError": "Wert konnte nicht gespeichert werden"
}
}
}