Files
HealthLog/messages/de.json
T
Marc-André Bombeck 1a642f1173 feat(coach): full-history search + pagination; document the labs watchdog
Coach conversation history was capped at the rail's first ~20 threads and
searched only that loaded page. The rail and the standalone conversations
page now walk the caller's entire history via cursor pagination
(useInfiniteQuery + a scroll sentinel), and search runs server-side against
the conversation title (GET /api/insights/chat?q=) instead of filtering an
already-truncated client array.

Also extends the "automatic screening" info line in the metric catalog to
name the labs "what changed since your last panel" card alongside the
rhythm/breathing/health-status watchdogs it already covered — it un-mounts
the same way when there's nothing to flag and was missing from the copy.
2026-07-18 05:06:24 +02:00

8761 lines
466 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",
"disabled": "Deaktiviert",
"networkError": "Netzwerkfehler",
"openDatePicker": "Datumsauswahl öffnen",
"openTimePicker": "Uhrzeitauswahl öffnen",
"hours": "Stunden",
"minutes": "Minuten",
"period": "AM/PM",
"am": "AM",
"pm": "PM",
"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",
"showPassword": "Passwort anzeigen",
"hidePassword": "Passwort verbergen",
"learnMore": "Mehr erfahren",
"dismiss": "Schließen",
"moreInfo": "Mehr Informationen"
},
"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",
"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: {timezone} | 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",
"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 den 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",
"glucoseClinical": {
"title": "Glukose-Übersicht (klinisch)",
"colMetric": "Kennzahl",
"colValue": "Wert",
"tirInRange": "Zeit im Zielbereich (70–180 mg/dl)",
"tirLow": "Niedrig (< 70 mg/dl)",
"tirVeryLow": "Sehr niedrig (< 54 mg/dl)",
"tirHigh": "Hoch (> 180 mg/dl)",
"tirVeryHigh": "Sehr hoch (> 250 mg/dl)",
"mean": "Durchschnittliche Glukose",
"gmi": "Glukose-Management-Indikator (GMI)",
"eA1c": "Geschätzter HbA1c",
"cv": "Variabilität (VK%)",
"spotCaveat": "Dies sind Schätzwerte aus Einzelmessungen, kein Profil eines kontinuierlichen Messgeräts — als Tendenz und nicht als klinisches Urteil zu lesen."
},
"illnessTitle": "Erkrankungen",
"illnessOngoing": "Andauernd",
"illnessColCondition": "Erkrankung",
"illnessColType": "Art",
"illnessColLifecycle": "Verlauf",
"illnessColOnset": "Beginn",
"illnessColResolved": "Abgeklungen",
"allergiesTitle": "Allergien & Unverträglichkeiten",
"reactionUnreadable": "Reaktion erfasst, konnte aber nicht entschlüsselt werden",
"allergiesColSubstance": "Substanz",
"allergiesColCategory": "Kategorie",
"allergiesColKind": "Art",
"allergiesColSeverity": "Schweregrad",
"allergiesColReaction": "Reaktion",
"allergiesColStatus": "Status",
"familyHistoryTitle": "Familienanamnese",
"familyHistoryColRelationship": "Verwandtschaft",
"familyHistoryColCondition": "Erkrankung",
"familyHistoryColAgeAtOnset": "Alter bei Beginn"
},
"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 können erst gespeichert werden, wenn du wieder online bist.",
"saveFailed": "Speichern fehlgeschlagen — du bist offline. Bitte versuche es erneut, sobald du wieder online bist.",
"showingCached": "Zeigt deine zuletzt synchronisierten Daten."
},
"demoBanner": {
"message": "Demo-Modus — Änderungen werden nicht gespeichert."
},
"nav": {
"dashboard": "Dashboard",
"measurements": "Messungen",
"medications": "Medikamente",
"insights": "Insights",
"achievements": "Erfolge",
"settings": "Einstellungen",
"admin": "Admin-Konsole",
"logout": "Abmelden",
"login": "Anmelden",
"notifications": "Benachrichtigungen",
"theme": "Design",
"themeSystem": "System",
"themeDark": "Dunkel",
"themeLight": "Hell",
"collapseSidebar": "Einklappen",
"userMenu": "Nutzermenü",
"accountSettings": "Kontoeinstellungen",
"mood": "Stimmung",
"coach": "Coach",
"skipToContent": "Zum Inhalt springen",
"sidebar": "Sidebar",
"mainNavigation": "Hauptnavigation",
"mobileNavigation": "Mobile 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",
"vorsorge": "Vorsorge",
"illness": "Krankheit",
"documents": "Dokumente",
"mentalWellbeing": "Seelisches Wohlbefinden"
},
"auth": {
"login": "Anmelden",
"register": "Registrieren",
"username": "Nutzername",
"password": "Passwort",
"email": "E-Mail-Adresse",
"emailPlaceholder": "name@beispiel.de",
"emailOrUsername": "E-Mail-Adresse oder Nutzername",
"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",
"passwordBreached": "Dieses Passwort taucht in bekannten Datenlecks auf. Bitte wähle ein anderes.",
"oidc": {
"signInDefault": "Mit SSO anmelden",
"errorDenied": "Die Anmeldung wurde abgebrochen.",
"errorNoEmail": "Dein Identitätsanbieter hat keine bestätigte E-Mail-Adresse übermittelt.",
"errorEmailUnverified": "Dein Identitätsanbieter hat deine E-Mail-Adresse nicht als bestätigt markiert.",
"errorIdentityConflict": "Diese E-Mail-Adresse gehört zu einem Konto, das bereits mit einer anderen SSO-Identität verknüpft ist.",
"errorRegistrationDisabled": "Kein Konto passt zu dieser Identität, und neue Registrierungen sind derzeit geschlossen.",
"errorFailed": "Single Sign-On ist fehlgeschlagen. Bitte versuche es erneut."
},
"mfa": {
"title": "Zwei-Faktor-Authentifizierung",
"totpHint": "Gib den 6-stelligen Code aus deiner Authenticator-App ein.",
"recoveryHint": "Gib einen deiner gespeicherten Wiederherstellungscodes ein.",
"securityKeyHint": "Verwende deinen registrierten Sicherheitsschlüssel, um fortzufahren.",
"codeLabel": "Authentifizierungscode",
"recoveryLabel": "Wiederherstellungscode",
"verify": "Bestätigen",
"verifyFailed": "Bestätigung fehlgeschlagen. Bitte versuche es erneut.",
"useSecurityKey": "Sicherheitsschlüssel verwenden",
"useRecoveryCode": "Wiederherstellungscode verwenden",
"useAuthenticator": "Authenticator-App verwenden",
"backToLogin": "Zurück zur Anmeldung",
"rememberDevice": "Diesem Gerät 30 Tage vertrauen"
},
"enrollMfa": {
"title": "Zweiten Faktor einrichten",
"body": "Dein Administrator verlangt einen zweiten Faktor für dieses Konto. Füge eine Authenticator-App oder einen Sicherheitsschlüssel hinzu, um fortzufahren.",
"signOut": "Abmelden"
}
},
"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",
"ringDoses": "Dosen heute"
},
"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",
"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 hinzufügen"
},
"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",
"scoreRingsTitle": "Score-Ringe",
"scoreRingsDescription": "Bis zu drei zusätzliche Ringe neben dem Health Score – zum Beispiel Bereitschaft, Erholung, Schlaf oder Therapietreue. Zum Umsortieren ziehen; der Health Score steht standardmäßig vorne.",
"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",
"recentWorkouts": {
"title": "Letzte Workouts",
"viewAll": "Alle anzeigen",
"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": "Werte erfassen und die vollständige Historie einsehen. Trends und Auswertungen findest du unter Auswertungen.",
"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.",
"serverOwnedSource": "Werte aus einer verbundenen Quelle lassen sich nicht bearbeiten – Zeitpunkt und Notiz bleiben änderbar.",
"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",
"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)",
"openMetricInsights": "{type}-Auswertung öffnen",
"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",
"typeResilience": "Resilienz",
"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.",
"typePhq9Score": "PHQ-9-Wert",
"typeGad7Score": "GAD-7-Wert",
"typeGripStrength": "Griffstärke",
"typePainNrs": "Schmerz (0–10)",
"typeWaistCircumference": "Taillenumfang",
"typeWaistToHeight": "Taille-Größe-Verhältnis",
"unitScore": "Pkt.",
"unitRatio": "Verhältnis",
"typeWho5Score": "WHO-5-Wert",
"typeSciScore": "SCI-Wert"
},
"metricCatalog": {
"title": "Was HealthLog erfassen kann",
"description": "Alle Messwert-Bereiche, die HealthLog unterstützt — auch die, für die noch keine Daten vorliegen — und was sie liefert.",
"statusPresent": "Erfasst",
"statusAbsent": "Noch nicht erfasst",
"statusModuleOff": "Aus",
"connectCta": "Quelle verbinden",
"viewCta": "Ansehen",
"ecg": {
"source": "Einkanal-EKG-Streifen von einer kompatiblen Uhr — aktuell Withings ScanWatch — werden automatisch synchronisiert."
},
"watchdog": {
"title": "Automatische Überwachung",
"description": "HealthLog beobachtet außerdem still im Hintergrund — Benachrichtigungen zu unregelmäßigem Rhythmus und Atemstörungen von einer verbundenen Uhr, Warnungen bei Abweichungen von deiner Baseline sowie auffällige Veränderungen zwischen deinen letzten beiden Laborwerten — und zeigt eine Karte nur, wenn etwas auffällt. Keine Karte ist ein gutes Zeichen, kein fehlendes Feature."
}
},
"mood": {
"title": "Stimmung",
"subtitle": "Stimmungsverlauf und Einträge",
"mentalWellbeingLink": "Check-in zum seelischen Wohlbefinden machen",
"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"
},
"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",
"loadError": "Stimmungseinträge konnten nicht geladen werden."
},
"medications": {
"title": "Medikamente",
"subtitle": "Medikamente, Zeitpläne & Einnahmen",
"loginRequired": "Bitte anmelden, um Medikamente zu verwalten.",
"addMedication": "Hinzufügen",
"firstMedication": "Erstes Medikament hinzufügen",
"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",
"inactive": "Pausiert",
"intakeHistory": "Einnahme-Verlauf",
"openDetailPage": "Medikament-Detailseite öffnen",
"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",
"requestExample": "Request-Beispiel",
"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",
"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?",
"lastIntake": "Letzte Einnahme:",
"nextIntake": "Nächste Einnahme:",
"nextIntakeOverdue": "Überfällig · {time} — noch nachholbar",
"dayStreak": "Tage Serie",
"dayStreakOne": "Tag Serie",
"cycleDueToday": "Heute fä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",
"glp1LastInjection": "{label}",
"glp1NextInjectionDays": "{label} (in {days} Tagen)",
"glp1NextInjectionToday": "heute",
"glp1NextInjectionTomorrow": "morgen",
"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",
"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"
},
"deleteConfirmTitle": "Eintrag löschen?",
"deleteConfirmBody": "Dieser Nebenwirkungs-Eintrag wird dauerhaft entfernt."
},
"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."
}
},
"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."
},
"titration": {
"title": "Titrationsplan",
"empty": "Noch keine Dosis-Steigerungsschritte erfasst. Datierte Dosisänderungen hinzufügen, um den Plan abzubilden.",
"youAreHere": "Du bist hier",
"doseStep": "{dose} {unit}",
"plannedFor": "Geplant · {date}"
},
"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",
"phaseConfig": "Erinnerungsphasen",
"phaseConfigDescription": "Konfiguriere die Zeitpunkte für Erinnerungen.",
"phaseGreen": "Grün",
"phaseYellow": "Gelb",
"phaseOrange": "Orange",
"phaseRed": "Rot",
"phaseMinutes": "Min",
"phasePercent": "%",
"phaseResetDefaults": "Auf Defaults zurücksetzen",
"phaseSaved": "Erinnerungsphasen gespeichert",
"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",
"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."
},
"viewRecent90": "Letzte 90 Tage",
"viewAll": "Komplette Historie",
"viewToggleLabel": "Verlaufsbereich"
},
"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."
},
"advanced": {
"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": {
"plannedSuffix": "geplant"
},
"tabs": {
"uebersicht": "Übersicht",
"zeitplan": "Zeitplan",
"bestand": "Bestand",
"verlauf": "Verlauf",
"injektion": "Injektion",
"api": "API",
"erweitert": "Erweitert",
"wirkung": "Wirkung"
},
"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",
"unknown": "Unbekannt",
"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",
"efficacy": {
"title": "Wirkung",
"intro": "Wie sich die Messwerte, die dieses Medikament beeinflussen soll, rund um den Beginn der Einnahme entwickelt haben. Es zeigt den zeitlichen Zusammenhang – eine Assoziation, keine Ursache – und keine Empfehlung zu Behandlung oder Dosis.",
"notEligible": "Für dieses Medikament gibt es keinen zugehörigen Messwert.",
"startFallback": "Es ist kein Startdatum hinterlegt, daher dient der erste erfasste Wert als Bezugspunkt.",
"noStart": "Hinterlege ein Startdatum, um die Werte vor und nach Beginn zu vergleichen.",
"disclaimer": "Nur ein Zusammenhang: Die Zahlen zeigen, was sich im selben Zeitraum verändert hat, nicht dass das Medikament die Veränderung verursacht hat. Besprich Entscheidungen zu deiner Behandlung mit deiner Ärztin oder deinem Arzt.",
"primaryBadge": "Hauptziel",
"noSeries": "Für diesen Zielwert sind noch keine Messungen erfasst.",
"startMarker": "Beginn",
"adherenceLane": "Einnahmetreue",
"typicalRange": "Üblicher Bereich",
"levelShift": "Um {date} wurde eine Verschiebung des Niveaus erkannt.",
"plateau": {
"title": "Gewichts-Plateau auf aktueller Dosis",
"evidence": "Gewichtsveränderung von {delta} kg in den letzten {window} Tagen ({readings} Messungen) — seit {days} Tagen auf {dose}."
},
"retarget": {
"label": "Nicht der richtige Messwert?",
"placeholder": "Verfolgen anhand…",
"apply": "Übernehmen",
"reset": "Auf Standard zurücksetzen",
"error": "Diese Änderung konnte nicht gespeichert werden. Bitte erneut versuchen."
},
"beforeAfter": {
"summary": "Ø {before} davor → Ø {after} seitdem – eine Veränderung von {delta}.",
"counts": "Basierend auf {beforeCount} Werten davor und {afterCount} seitdem.",
"needBefore": "Noch zu wenige Werte vor dem Beginn – für einen Vergleich werden etwa {weeks} Wochen davor und danach benötigt.",
"needAfter": "Noch zu wenige Werte seit dem Beginn – für einen Vergleich werden etwa {weeks} Wochen davor und danach benötigt.",
"needStart": "Hinterlege ein Startdatum, um die Werte vor und nach Beginn zu vergleichen.",
"needData": "Noch zu wenige Werte – für einen Vergleich werden etwa {weeks} Wochen vor und nach dem Beginn benötigt."
},
"insights": {
"title": "Medikamenten-Wirkung",
"subtitle": "Was mit den Zielwerten deiner Medikamente zeitlich zusammenfällt – nur ein Zusammenhang, kein Urteil.",
"link": "Wirkung öffnen",
"empty": "Noch nicht genug Daten, um deine Medikamente mit ihren Zielwerten in Beziehung zu setzen."
},
"scaleAbsolute": "Absolut",
"scalePercentSinceStart": "% seit Start",
"scaleToggleLabel": "Diagrammskala"
}
},
"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",
"a11y": {
"summary": "{metric}-Diagramm. Bereich {min} bis {max}, aktuell {latest}, Trend {trend}.",
"noData": "{metric}-Diagramm. Keine Daten verfügbar.",
"trendUp": "steigend",
"trendDown": "fallend",
"trendFlat": "gleichbleibend",
"scatterSummary": "Korrelationsdiagramm, {count} Punkte: {xLabel} gegen {yLabel}.",
"scatterNoData": "Korrelationsdiagramm {xLabel} gegen {yLabel}. Keine Daten verfügbar.",
"moodHeatmap": "Stimmungs-Heatmap von {start} bis {end}, {days} Tage erfasst.",
"moodHeatmapEmpty": "Stimmungs-Heatmap, noch keine Tage erfasst.",
"complianceHeatmap": "Heatmap zur Medikamenteneinnahme von {start} bis {end}, {days} aktive Tage.",
"complianceHeatmapEmpty": "Heatmap zur Medikamenteneinnahme, noch keine aktiven Tage."
}
},
"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": "Verbinde einen KI-Anbieter, um hier eine Einschätzung zu deinen Werten zu sehen.",
"noProviderAction": "Zu den KI-Einstellungen",
"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",
"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…",
"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.",
"restModePaused": "Während einer Krankheitsphase pausiert — dein Score wird heute nicht bewertet.",
"componentBp": "Blutdruck",
"componentWeight": "Gewicht",
"componentMood": "Stimmung",
"componentCompliance": "Therapietreue",
"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",
"signalsTitle": "Signale des Tages",
"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": "Richte HealthLog auf ein lokales Modell (Ollama, LM Studio – nichts verlässt dein Netzwerk) oder hinterlege deinen eigenen OpenAI- oder Anthropic-Schlüssel, und das tägliche Briefing fasst deine eigenen Messwerte in klarer Sprache zusammen – zum Beispiel: „Gewicht in zwei Wochen um 1,2 kg gesunken, Ruhepuls stabil bei 58, Blutdruck an 6 von 7 Tagen im Zielbereich.“ Die Einrichtung dauert etwa eine Minute.",
"noProviderAction": "Zu den KI-Einstellungen",
"staleNoProviderHint": "Dieses Briefing kann nicht aktualisiert werden — es ist kein KI-Anbieter verbunden.",
"refreshFailedHint": "Briefing konnte nicht aktualisiert werden — es wird das letzte angezeigt.",
"retryAction": "Erneut versuchen",
"failedTitle": "Briefing konnte nicht erstellt werden",
"failedDescription": "Der KI-Anbieter hat das Zeitlimit überschritten oder einen Fehler zurückgegeben. Versuche es erneut oder erhöhe in den KI-Einstellungen das Antwort-Zeitlimit für ein langsames lokales Modell.",
"failedDescriptionTimeout": "Die KI-Anfrage hat das Zeitlimit überschritten, bevor das Briefing fertig war. Erhöhe für ein langsames lokales Modell in den Einstellungen das Antwort-Zeitlimit und versuche es dann erneut.",
"failedDescriptionProvider": "Der KI-Anbieter hat die Anfrage abgelehnt. Prüfe Anbieter und API-Schlüssel in den KI-Einstellungen und versuche es erneut.",
"failedDescriptionRateLimit": "Der KI-Anbieter drosselt derzeit die Anfragen. Versuche es in Kürze erneut.",
"omittedTitle": "Briefing zurückgehalten",
"omittedUngroundedDescription": "Das erstellte Briefing nannte eine Zahl, die sich nicht anhand deiner Daten überprüfen ließ, deshalb wurde es nicht angezeigt. Versuche es erneut."
},
"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."
},
"viewDetail": "{metric} im Detail"
},
"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"
},
"correlationRow": {
"title": "Zusammenhänge",
"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.",
"errorNoProvider": "Der Coach liest deine erfassten Gesundheitsdaten und beantwortet Fragen dazu (keine medizinische Beratung). Dafür braucht HealthLog einen KI-Anbieter — verbinde deinen eigenen Schlüssel oder ein lokales Modell.",
"errorNoProviderAction": "KI-Anbieter verbinden",
"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",
"docScope": {
"badge": "Dokument",
"chattingAbout": "Chat über: {title}",
"chattingAboutMore": "Chat über: {titles} und {count} weitere",
"notIndexedHint": "Lies dieses Dokument zuerst im Archiv mit KI ein, damit der Coach dazu antworten kann."
},
"actionsMenu": "Aktionen",
"maximizeAriaLabel": "Im Vollbild öffnen",
"minimizeAriaLabel": "Zurück zum Seitenfenster",
"send": "Senden",
"stop": "Stopp",
"thinking": "Denke nach…",
"composerPlaceholder": "Frag mich etwas…",
"nudgeBubbleLabel": "Neue Nachricht vom Coach — Chat öffnen",
"fabLabel": "Coach öffnen",
"readAloud": "Vorlesen",
"readAloudStop": "Vorlesen beenden",
"messageTimeLabel": "Nachricht gesendet {time}",
"copyMessage": "Kopieren",
"copyMessageError": "Kopieren fehlgeschlagen",
"regenerate": "Erneut versuchen",
"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"
},
"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",
"historyDeleted": "Unterhaltung gelöscht",
"historySearchEmpty": "Keine Unterhaltungen entsprechen deiner Suche.",
"historyLoadingMore": "Mehr wird geladen…",
"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": "Tageslimit erreicht. Das Budget setzt sich um Mitternacht (UTC) zurück.",
"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",
"dictate": "Diktieren",
"dictateStop": "Diktat beenden",
"voiceUnsupported": "Spracheingabe wird in diesem Browser nicht unterstützt",
"dictateError": "Spracheingabe konnte nicht gestartet werden. Prüfe die Mikrofonberechtigung und versuche es erneut.",
"showConversations": "Unterhaltungen anzeigen",
"hideConversations": "Unterhaltungen ausblenden",
"heroGreeting": "Frage mich etwas zu deinen Daten",
"heroSubline": "Frag nach deinen Verläufen, Medikamenten oder Messwerten.",
"thinkingElapsed": "{seconds}s",
"thinkingDuration": "Nachgedacht für {seconds}s",
"thinkingExpandAria": "Zeigen, was der Coach berücksichtigt hat",
"thinkingDetail": "Beantwortet aus deinem Gesundheits-Snapshot.",
"tokensUsed": "{count} Tokens",
"tokensUsedWithModel": "{count} Tokens · {model}",
"askAboutThis": "Den Coach dazu fragen",
"readStrip": {
"label": "Üblicher Bereich",
"baselineWithin": "Dein üblicher Bereich liegt bei {low}–{high} {unit}; heute liegt {value} darin.",
"baselineAbove": "Dein üblicher Bereich liegt bei {low}–{high} {unit}; heute liegt {value} darüber.",
"baselineBelow": "Dein üblicher Bereich liegt bei {low}–{high} {unit}; heute liegt {value} darunter.",
"insufficient": "Lerne noch deinen üblichen Bereich — protokolliere noch ein paar Tage weiter.",
"driver": "{note}"
},
"scope": {
"prefix": "Der Coach ist schon bei {metric}",
"tap": "Zum Fragen tippen",
"question": "Erkläre mir diese Kennzahl — worauf sollte ich achten?"
},
"seeded": {
"prefix": "Heute einen Blick wert: {signal}",
"signal": {
"readiness": "Bereitschaft",
"recovery": "Erholung"
},
"question": {
"readiness": "Meine Bereitschaft ist heute auffällig — woran liegt das?",
"recovery": "Meine Erholung hat sich verändert — was steckt dahinter?"
},
"dismiss": "Ausblenden"
},
"settings": "Einstellungen",
"history": {
"groupToday": "Heute",
"groupYesterday": "Gestern",
"groupThisWeek": "Diese Woche",
"groupEarlier": "Früher"
},
"seed": {
"bloodPressure": "Geh mit mir meinen Blutdruckverlauf der letzten 30 Tage durch — gibt es etwas, das ich im Auge behalten sollte?",
"weight": "Wie hat sich mein Gewicht zuletzt entwickelt, und ist die Richtung etwas, worauf ich reagieren sollte?",
"bmi": "Was sagt mir mein BMI-Verlauf, und wie sollte ich ihn lesen?",
"pulse": "Geh mit mir meine Pulswerte durch — ist irgendetwas ungewöhnlich?",
"restingHr": "Wie hat sich mein Ruhepuls entwickelt, und was sagt er über meine Fitness?",
"hrv": "Was sagt mir meine Herzfrequenzvariabilität zuletzt über Erholung und Stress?",
"sleep": "Geh mit mir meinen letzten Schlaf durch — Dauer, Regelmäßigkeit und was sich zu ändern lohnt.",
"mood": "Welche Muster siehst du in meiner Stimmung über die letzten Wochen?",
"medications": "Wie sieht meine Therapietreue aus, und passt sie dazu, wie ich mich gefühlt habe?",
"steps": "Wie aktiv war ich zuletzt gemessen an meinen Schritten, und wie ist das im Vergleich zu einem gesunden Richtwert?",
"activeEnergy": "Was sagt mein Aktivenergie-Verlauf über mein Aktivitätsniveau zuletzt?",
"cardioFitness": "Was bedeutet mein Cardio-Fitness-Verlauf (VO₂max), und wie bewege ich ihn in die richtige Richtung?",
"bloodGlucose": "Geh mit mir meine letzten Glukosewerte durch — liegen sie in einem gesunden Bereich?",
"oxygenSaturation": "Was sagt mir mein Sauerstoffsättigungs-Verlauf (SpO₂)?",
"respiratoryRate": "Was sagt mein Atemfrequenz-Verlauf über meine Gesundheit?",
"workouts": "Geh mit mir meine letzten Workouts durch — Belastung, Häufigkeit und wie ich mich dazwischen erhole.",
"recoveryPage": "Warum steht meine Erholung gerade dort, wo sie steht, und was treibt das?",
"briefing": "Geh mit mir das heutige Briefing durch — worauf sollte ich mich konzentrieren, und gibt es etwas, das einen Schritt wert ist?",
"healthScore": "Warum liegt mein Gesundheits-Score bei {score} von 100, und was würde ihn am stärksten bewegen?",
"periodWeek": "Geh mit mir durch, wie meine letzte Woche über meine Gesundheitswerte hinweg lief — was sticht heraus?",
"periodMonth": "Geh mit mir durch, wie mein letzter Monat über meine Gesundheitswerte hinweg lief — was sticht heraus?",
"correlationBpCompliance": "Wie hängt meine Therapietreue mit meinem Blutdruck zusammen? Geh mit mir durch, was dieser Zusammenhang für mich bedeutet.",
"correlationMoodPulse": "Gibt es einen echten Zusammenhang zwischen meiner Stimmung und meinem Puls? Hilf mir, diesen Zusammenhang zu lesen.",
"correlationWeightWeekday": "Folgt mein Gewicht einem Wochenmuster? Was sagt mir dieser Wochentags-Zusammenhang?",
"recommendation": "Erzähl mir mehr zu dieser Empfehlung: \"{text}\" — warum trifft sie auf mich zu, und was sollte ich tun?"
},
"assessmentPrompt": "Erkläre mir meine {metric}-Einschätzung — was bedeutet sie und was sollte ich tun?",
"attach": {
"menuChooseFromDocuments": "Aus Dokumenten wählen",
"menuUploadNew": "Neues Dokument hochladen",
"trigger": "Dokumente anhängen",
"pickerTitle": "Dokumente anhängen",
"pickerDescription": "Der Coach liest nur die angehängten Dokumente – nicht deine Gesundheitsdaten.",
"pickerSearchPlaceholder": "Dokumente durchsuchen…",
"pickerEmpty": "Noch keine Dokumente in deinem Tresor.",
"pickerNotIndexed": "Noch nicht indexiert",
"pickerCap": "Du kannst noch bis zu {max} anhängen.",
"pickerConfirm": "Anhängen ({count})",
"pillRemove": "{title} entfernen",
"indexing": "Wird indexiert…",
"indexingHint": "Ein Dokument wird noch indexiert – du kannst senden, sobald es bereit ist.",
"fencedHint": "Diese Unterhaltung läuft ohne Zugriff auf deine Gesundheitsdaten – der Coach liest nur die angehängten Dokumente.",
"documentsAttachedOne": "1 Dokument angehängt",
"documentsAttachedOther": "{count} Dokumente angehängt",
"railBadge": "Dokument-Chat (abgeschottet)",
"uploadError": "Upload fehlgeschlagen. Bitte versuche es erneut.",
"notFoundError": "Dieser Dokumentlink ist nicht mehr gültig – es wird ein normaler Chat gestartet."
}
},
"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",
"navCatalog": "Alle Messwerte",
"navBloodPressure": "Blutdruck",
"navWeight": "Gewicht",
"navPulse": "Puls",
"navMood": "Stimmung",
"navMedication": "Medikamente",
"navNutrients": "Nährstoffe",
"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"
},
"heartParent": {
"label": "Herz",
"header": "Herzgesundheit"
},
"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."
},
"coachPrefill": "Ich habe noch keinen Ruhepuls erfasst — warum unterscheidet sich der tägliche Ruhewert von einem punktuellen Puls, und wie verbessere ich ihn?"
},
"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": "Therapietreue-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"
},
"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. Als allgemeine Orientierung gilt nach europäischer Leitlinie (ESH 2023) unter 120/80 als optimal und ab 140/90 als Bluthochdruck; die US-Leitlinie (ACC/AHA 2017) setzt mit 130–139/80–89 (Stadium 1) eine strengere Grenze. Einordnung immer aus einer ruhigen, sitzenden Messung, nie aus einem einzelnen Wert.",
"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. Als allgemeine Orientierung sind Werte von 95–100 % in Ruhe normal (StatPearls/NIH 2023); Werte dauerhaft unter 90 % verdienen Aufmerksamkeit, kurze nächtliche Abfälle sind häufig und über ~98 % bringt nichts. Optische Sensoren können die wahre Sättigung bei dunklerer Haut überschätzen (US FDA 2024) — ein einzelner normnaher Wert ist daher keine Entwarnung; bei Sorge warm und ruhig erneut messen.",
"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 — der beste Laborindex der Ausdauerfitness, den Wearables indirekt schätzen. Als allgemeine Orientierung: Fitness ist ein abgestufter Prädiktor der Überlebensrate — jeder zusätzliche MET (etwa 3,5 ml/kg/min) geht mit rund 10–25 % geringerer Sterblichkeit einher (AHA, Circulation 2016). Ein höherer oder steigender Trend ist ein starkes Zeichen 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 und als Abweichung von deinem persönlichen Ausgangswert angegeben, nicht als absoluter Wert. 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 deinem Wearable 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 eine Schätzung, wie weit du in sechs Minuten gehen könntest — ein etablierter klinischer Test für Mobilität und kardiopulmonale Ausdauer. Der Wearable-Wert ist ein Näherungswert, nicht der überwachte klinische Test; aussagekräftig ist der gleichbleibende oder steigende Trend.",
"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": "Ein Wearable kann schätzen, wie oft deine Atmung im Schlaf unterbrochen war. Ein niedriger Index ist besser; ein als erhöht eingestufter Wert — vor allem über viele Nächte — sollte mit einer Ärztin oder einem Arzt besprochen werden. Es ist ein Screening-Näherungswert, keine Schlafapnoe-Diagnose.",
"stepsTitle": "Schritte",
"stepsBody": "Die Schrittzahl ist die Gesamtzahl der Schritte, die du täglich gehst. Sie ist das einfachste Maß für Alltagsbewegung, und eine stetige Gewohnheit zählt mehr als ein einzelner großer Tag. Als allgemeine Orientierung fällt das Sterblichkeitsrisiko deutlich Richtung etwa 8.000 Schritte pro Tag, mit weiterem Nutzen bis rund 12.000 (Saint-Maurice JAMA 2020); bei älteren Menschen liegt der optimale Wert niedriger. Die „10.000“ ist ein Werbeslogan, keine Forschung.",
"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. Es ist ein Geräte-Näherungswert, der an deinem eigenen Ausgangswert gemessen wird, keine klinische Messung, und zwischen Geräten nicht vergleichbar. 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. Es ist ein geräteabgeleiteter Näherungswert an deinem eigenen Ausgangswert, keine klinische Messung, und zwischen Geräten nicht vergleichbar. 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. Es ist ein geräteabgeleiteter Index, gemessen an deinem eigenen üblichen Aufwand, keine klinische Messung, und der Kennwert ist zwischen Geräten nicht vergleichbar.",
"stressBody": "Stress ist hier eine Geräte-Heuristik aus Mustern der Herzfrequenzvariabilität — keine Cortisol-Messung und nicht, wie du dich bewusst fühlst, und auch kein klinischer Stress-Score. Lies ihn an deinem eigenen Ausgangswert; zwischen Geräten ist er nicht vergleichbar. 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.",
"pulsePressureTitle": "Pulsdruck",
"pulsePressureBody": "Der Pulsdruck ist die Differenz zwischen deinem systolischen und diastolischen Wert (systolisch minus diastolisch). Als allgemeine Orientierung sind etwa 40 mmHg in Ruhe typisch; eine große Differenz über rund 60 mmHg im mittleren Alter kann auf versteifte Arterien hinweisen, eine kleine Differenz unter etwa 25 mmHg kann mit niedrigem Schlagvolumen einhergehen (StatPearls/NIH 2023). Ein Gesprächsanlass, keine Diagnose.",
"meanArterialPressureTitle": "Mittlerer arterieller Druck",
"meanArterialPressureBody": "Der mittlere arterielle Druck ist der durchschnittliche Druck, den deine Organe über einen Herzschlag sehen – grob der diastolische Wert plus ein Drittel der Differenz zum systolischen. Als allgemeine Orientierung liegt ein Ruhewert bei etwa 70–100 mmHg (StatPearls/NIH 2023). Die oft genannte Grenze von ~60 mmHg ist ein Konzept der Akutmedizin, kein Alarm für die Selbstmessung.",
"cycleEducationBody": "Dein Zyklus durchläuft vier hormongesteuerte Phasen, und seine Länge und Regelmäßigkeit sind ein gut zugängliches Fenster auf die allgemeine Gesundheit. Als allgemeine Orientierung dauern Zyklen bei Erwachsenen typischerweise 21–35 Tage (klinische Referenzen nennen 24–38), mit einer Blutung von rund fünf Tagen (ACOG 2015). Die Lutealphase ist der stabile Anker, daher schätzt man den Eisprung am besten durch Rückrechnen von der nächsten erwarteten Periode – nie über einen festen „Tag 14“. Ein vorhergesagtes fruchtbares Fenster ist eine Schätzung, die mehrere erfasste Zyklen braucht und ungefähr bleibt, und die Basaltemperatur bestätigt den Eisprung im Nachhinein, statt ihn vorherzusagen. Dies ist keine Verhütungsmethode.",
"sleepHygieneBody": "Einige evidenzbasierte Gewohnheiten unterstützen den Schlaf: gleichbleibende Zubett- und Aufstehzeiten auch am Wochenende, helles Morgenlicht und gedämpfte Abende, ein kühles, dunkles und ruhiges Zimmer sowie der Verzicht auf Koffein am Nachmittag, späten Alkohol und große späte Mahlzeiten (CDC 2024). Regelmäßigkeit sagt die Gesundheit mindestens so stark voraus wie die Dauer, und die Gesamtschlafzeit eines Wearables ist weit verlässlicher als seine Aufteilung in Tief-, Leicht- und REM-Schlaf.",
"referenceGuidance": "Allgemeine Orientierung, keine medizinische Beratung. Referenzbereiche sind Populationswerte, die sich mit Alter, Geschlecht und Erkrankungen verschieben – dein eigener Verlauf über die Zeit führt die Einordnung."
},
"bpDerived": {
"pulsePressure": "Der Pulsdruck (die Differenz zwischen deinen Werten) beträgt etwa {value} mmHg – rund 40 ist in Ruhe typisch.",
"meanArterialPressure": "Der mittlere arterielle Druck (der Durchschnitt, den deine Organe sehen) liegt bei etwa {value} mmHg, normalerweise um 70–100.",
"caveat": "Diese Werte werden als allgemeine Orientierung aus deiner letzten Messung abgeleitet, nicht als Diagnose."
},
"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",
"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}",
"estimateNote": "Die Phasen-Zeiten sind geschätzt — diese Quelle liefert Summen je Phase, keinen gemessenen Verlauf."
},
"sourceDiscrepancy": {
"tooltipTitle": "Quellen weichen ab"
},
"stages": {
"deep": "Tief",
"rem": "REM",
"core": "Kern",
"asleep": "Schlafend",
"awake": "Wach",
"inBed": "Im Bett",
"unavailable": "Noch keine Phasen-Daten – Schlafphasen erscheinen hier, sobald eine verbundene Quelle sie liefert."
},
"empty": {
"title": "Noch keine Schlafdaten",
"description": "Verbinde eine Quelle wie Apple Health oder ein Wearable – oder erfasse Schlaf manuell – und diese Ansicht füllt sich 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.",
"computedInfo": "Das ist HealthLogs eigene Schätzung: eine gleitende Bilanz aus Bedarf minus Schlaf über die letzten Nächte, die Aufholschlaf wieder abbaut. Sie kann vom nativen Schlafdefizit eines Wearables abweichen, das ein eigenes Bedarfsmodell nutzt."
},
"average": {
"title": "Durchschnitt pro Nacht",
"value": "{hours} Std. {minutes} Min.",
"caption": "Mittlerer Schlaf über die letzten {nights} Nächte",
"learning": "Dein Schlaf wird noch erfasst — {counted} Nächte bisher, noch {remaining} für einen verlässlichen Durchschnitt."
},
"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.",
"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"
},
"midpointHeadline": "Deine natürliche Schlafmitte liegt etwa um {clock}."
},
"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",
"restMode": {
"title": "Ruhemodus",
"body": "Eine Krankheits- oder Beschwerdephase ist aktiv, daher spiegelt dies eine Erholungsphase wider. Dein Score wird dafür nicht gesenkt.",
"bodySince": "Seit {since} ist eine Krankheits- oder Beschwerdephase aktiv, daher spiegelt dies eine Erholungsphase wider. Dein Score wird dafür nicht gesenkt."
},
"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": "Quelle verbinden"
}
},
"navWorkouts": "Workouts",
"navRecovery": "Erholung",
"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.",
"labsLink": "Laborergebnisse? HbA1c und Nüchternglukose aus einer Blutabnahme trägst du unter Labor ein.",
"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": {
"logLink": "Stimmung eintragen",
"mentalWellbeingLink": "Check-in zum seelischen Wohlbefinden machen",
"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",
"sectionSubtitle": "Ruhewerte von Herz-Kreislauf und Atmung im Vergleich zu deiner eigenen Baseline",
"loadingLabel": "Vitalwerte werden geladen",
"loadError": "Deine Vitalwerte konnten gerade nicht geladen werden.",
"infoLabel": "Wie wird das berechnet?",
"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",
"sectionSubtitle": "Zusammengesetzte Werte für Erholung, Stress und Belastung aus deinen verbundenen Geräten",
"loadError": "Deine Wellness-Werte konnten gerade nicht geladen werden.",
"loadingLabel": "Deine Gesundheitswerte werden geladen",
"recovery": "Erholungs-Score",
"recoveryCrossLink": "Erholungs- und Belastungsdaten deines Wearables ansehen",
"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.",
"illnessExplained": "Diese Abweichungen hängen wahrscheinlich mit der erfassten Erkrankung zusammen."
},
"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"
},
"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.",
"scoreCrossLink": "Den zusammengesetzten Erholungs-Score ansehen",
"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.",
"block": {
"ansChargeExplainer": "Wie aufgeladen dein autonomes Nervensystem in den Tag startet – ein Recharge-Wert aus deinen nächtlichen Herz- und Atemsignalen.",
"dayStrainExplainer": "Die kardiovaskuläre Tagesbelastung auf der Belastungsskala deines Geräts. Lies sie im Verhältnis zu deiner Erholung, nicht als Ziel für sich.",
"workoutStrainExplainer": "Wie fordernd ein einzelnes Training auf derselben Belastungsskala war – die kardiovaskuläre Last dieser Einheit.",
"cardioLoadExplainer": "Ein Trainingslast-Näherungswert, der die akut aufgebaute kardiovaskuläre Belastung abbildet. Vergleiche ihn mit deinen eigenen letzten Tagen.",
"averageHeartRateExplainer": "Deine durchschnittliche Herzfrequenz über den ganzen Tag bzw. Zyklus, wie dein Wearable sie meldet.",
"maxHeartRateExplainer": "Deine höchste Herzfrequenz über den ganzen Tag bzw. Zyklus, wie dein Wearable sie meldet.",
"energyExpenditureKjExplainer": "Die Energie, die dein Körper über den Tag verbraucht hat, in Kilojoule, wie dein Gerät sie nativ meldet."
}
},
"bodyTempDeviation": {
"title": "Körpertemperatur-Abweichung",
"subtitle": "Nächtliche Abweichung von deiner Basislinie"
},
"resilience": {
"explainer": "Wie gut dein Körper die tägliche Belastung mit der Erholung ausbalanciert — aus deinen nächtlichen Signalen der letzten Tage abgelesen.",
"learning": "Deine Resilienz wird noch erlernt — ein paar Tage mehr festigen das Niveau.",
"band": {
"limited": "Eingeschränkt",
"adequate": "Ausreichend",
"solid": "Solide",
"strong": "Stark",
"exceptional": "Außergewöhnlich"
},
"trend": {
"above": "Über deinem jüngsten Durchschnitt.",
"steady": "Im Einklang mit deinem jüngsten Durchschnitt.",
"below": "Unter deinem jüngsten Durchschnitt."
}
},
"briefing": {
"memory": {
"recall": "Zuletzt: {text}",
"forward": "Mit Blick nach vorn: {text}",
"forwardWatch": "{metric} ist im Blick zu behalten.",
"forwardHolding": "Im Moment ist alles stabil."
}
},
"tension": {
"label": "Ehrliche Lesung: {positive} sieht gut aus, aber {negative} fällt ab — das Komposit landet bei {band}.",
"contributor": {
"green": "grün",
"yellow": "gelb",
"red": "rot"
}
},
"streak": {
"returnLabel": "Dein {metric} ist seit {count} Tagen wieder in deinem üblichen Bereich — was es auch war, es ist vorbei.",
"daysInside": "{count} Tage drinnen",
"daysOutside": "{count} Tage draußen"
},
"updatedTodayAt": "Heute aktualisiert, {time}",
"updatedYesterday": "Gestern aktualisiert",
"updatedOn": "Aktualisiert am {date}",
"healthStatus": {
"sectionTitle": "Was sich verändert hat",
"subtitle": "Werte, die von deinem üblichen Bereich abweichen.",
"deviationAbove": "{vital} liegt über deinem üblichen Bereich.",
"deviationBelow": "{vital} liegt unter deinem üblichen Bereich.",
"shiftUp": "{vital} hat sich gegenüber deiner jüngsten Norm nach oben verschoben.",
"shiftDown": "{vital} hat sich gegenüber deiner jüngsten Norm nach unten verschoben.",
"rangeContext": "Aktuell {value}, sonst {low}–{high}.",
"shiftContext": "Etwa {before} davor, {after} seitdem."
},
"breathingScreening": {
"sectionTitle": "Atmung im Schlaf",
"subtitle": "Ein Screening-Signal aus deinen Schlafdaten.",
"classificationElevated": "Dein Gerät hat erhöhte Atemstörungen gemeldet.",
"classificationNotElevated": "Die Einstufung deines Geräts ist nicht erhöht.",
"trendUp": "Höher als an deinen früheren Nächten.",
"trendDown": "Niedriger als an deinen früheren Nächten.",
"trendStable": "Stabil gegenüber deinen früheren Nächten.",
"nights": "{count} Nächte erfasst",
"indexLine": "jüngster Durchschnittsindex {value}",
"eventsFlagged": "{count} vom Gerät gemeldete Ereignisse",
"disclaimer": "Dies ist ein Screening-Signal, keine Diagnose — bitte mit einer Ärztin oder einem Arzt besprechen."
},
"labsChanges": {
"sectionTitle": "Seit deinem letzten Laborbefund",
"subtitle": "Wie deine neuesten Werte im Vergleich zum vorherigen Befund stehen.",
"statusInRange": "im Normbereich",
"statusBelow": "unter dem Bereich",
"statusAbove": "über dem Bereich",
"directionFlat": "keine Änderung"
},
"navGripStrength": "Griffkraft",
"navPainNrs": "Schmerz",
"navWaistCircumference": "Taille",
"navWaistToHeight": "Taille/Größe",
"gripStrength": {
"title": "Griffkraft",
"description": "Maximale Handgriffkraft — ein robuster Stellvertreter für die Ganzkörperkraft. Unter dem geschlechtsspezifischen Grenzwert (Männer 27 kg, Frauen 16 kg) deutet sie auf eine mögliche Sarkopenie hin; dein eigener Verlauf führt die Einschätzung.",
"chartTitle": "Griffkraft",
"emptyState": {
"title": "Noch keine Griffkraft",
"description": "Erfasse einen Wert mit einem Handdynamometer — notiere den besten von mehreren Versuchen — und der Verlauf erscheint hier.",
"cta": "Griffkraft erfassen"
},
"coachPrefill": "Ich habe noch keine Griffkraft erfasst — was sagt sie über meine Muskelgesundheit aus, und wie messe und verbessere ich sie?"
},
"pain": {
"title": "Schmerz (0–10)",
"description": "Selbstberichtete Schmerzintensität auf der numerischen Skala 0–10, wobei 0 keinen Schmerz und 10 den stärksten vorstellbaren Schmerz bedeutet. Eine anhaltende Änderung um 2 Punkte ist das beobachtenswerte Signal.",
"chartTitle": "Schmerz (0–10)",
"emptyState": {
"title": "Noch keine Schmerzwerte",
"description": "Erfasse auf der Skala 0–10, wie sich dein Schmerz gerade anfühlt, und der Verlauf erscheint hier.",
"cta": "Schmerzwert erfassen"
},
"coachPrefill": "Ich habe noch keine Schmerzwerte erfasst — wie sollte ich Schmerz auf der Skala 0–10 verfolgen, und was gilt als bedeutsame Veränderung?"
},
"waist": {
"title": "Taillenumfang",
"description": "Taillenumfang in Zentimetern — ein Marker für Bauchfett. Der WHO-Grenzwert für erhöhtes Risiko ist geschlechtsspezifisch (Männer 94 cm, Frauen 80 cm); dein eigener Verlauf führt die Einschätzung.",
"chartTitle": "Taillenumfang",
"emptyState": {
"title": "Noch keine Taillenwerte",
"description": "Miss deine Taille mittig zwischen der untersten Rippe und dem Hüftknochen am Ende einer normalen Ausatmung und erfasse den Wert hier.",
"cta": "Taillenumfang erfassen"
},
"coachPrefill": "Ich habe noch keine Taillenwerte erfasst — wie messe ich meine Taille richtig, und was bedeutet der Wert für meine Gesundheit?"
},
"waistToHeight": {
"title": "Taille-zu-Größe-Verhältnis",
"description": "Deine Taille geteilt durch deine Größe — die ethnienunabhängige Einzelzahl. Sie unter 0,5 zu halten (Taille unter der halben Körpergröße) ist das einfache Ziel.",
"chartTitle": "Taille-zu-Größe-Verhältnis",
"emptyState": {
"title": "Noch kein Taille-zu-Größe-Verhältnis",
"description": "Erfasse ein Taille-zu-Größe-Verhältnis, und der Verlauf erscheint hier. Faustregel: Halte deine Taille unter der halben Körpergröße.",
"cta": "Taille-zu-Größe-Verhältnis erfassen"
},
"coachPrefill": "Ich habe noch kein Taille-zu-Größe-Verhältnis erfasst — warum ist es eine nützliche Zahl, und wie halte ich es unter 0,5?"
},
"ecg": {
"sectionTitle": "EKG-Aufzeichnungen",
"sectionIntro": "Einkanal-EKG-Streifen, die dein Gerät aufgezeichnet hat. HealthLog zeigt nur die Aufzeichnung und das von deinem Gerät erstellte Ergebnis – die Kurve wird nicht gelesen oder ausgewertet.",
"loadError": "Deine EKG-Aufzeichnungen konnten nicht geladen werden.",
"backToList": "Zurück zu den Aufzeichnungen",
"disclaimer": "Dies ist das Ergebnis, das dein Aufzeichnungsgerät erstellt hat. HealthLog liest oder interpretiert EKG-Aufzeichnungen nicht und stellt keine Diagnose.",
"clinicianNote": "Wenn dich dieses Ergebnis beunruhigt, besprich diese Aufzeichnung mit einer Ärztin oder einem Arzt.",
"resultAttribution": "Aufgezeichnetes Ergebnis: {result}, wie vom Aufzeichnungsgerät gemeldet.",
"result": {
"irregular": "Vorhofflimmern erkannt",
"notDetected": "Keine Anzeichen von Vorhofflimmern",
"inconclusive": "Nicht eindeutige Aufzeichnung",
"none": "Kein Ergebnis gemeldet"
},
"meta": {
"recorded": "Aufgezeichnet",
"duration": "Dauer",
"lead": "Ableitung",
"averageHeartRate": "Durchschnittliche Herzfrequenz",
"samplingRate": "Abtastrate",
"leadSingle": "Einkanal (Ableitung I)",
"durationValue": "{seconds} s",
"bpmValue": "{bpm} bpm",
"hzValue": "{hz} Hz",
"unknown": "—"
},
"waveform": {
"ariaLabel": "EKG-Streifen aufgezeichnet {date}, Dauer {duration}, durchschnittliche Herzfrequenz {heartRate}, aufgezeichnetes Ergebnis: {result}."
},
"crossLink": {
"title": "EKG-Aufzeichnungen",
"recordingsOne": "1 Aufzeichnung vorhanden.",
"recordingsMany": "{count} Aufzeichnungen vorhanden.",
"latestResult": "Letztes Geräte-Ergebnis: {result}.",
"cta": "Aufzeichnungen ansehen"
}
},
"intradayPulse": {
"title": "Der Verlauf deines Tages",
"caption": "Dein Puls über den Tag, gemittelt in 10-Minuten-Schritten.",
"hourlyNote": "Stündlicher Durchschnitt für diesen Tag — aktuelle Tage zeigen das volle 10-Minuten-Detail.",
"empty": "Für diesen Tag noch nicht genug Pulswerte, um den Tagesverlauf zu zeigen.",
"coverageOne": "Basierend auf 1 Messung über {hours}h.",
"coverageMany": "Basierend auf {count} Messungen über {hours}h.",
"baseline": "Ruhe",
"today": "Heute",
"previousDay": "Vorheriger Tag",
"nextDay": "Nächster Tag",
"tension": {
"morning": "Eine anhaltend erhöhte Ruhephase heute Vormittag — möglicherweise etwas Anspannung.",
"afternoon": "Eine anhaltend erhöhte Ruhephase heute Nachmittag — möglicherweise etwas Anspannung.",
"evening": "Eine anhaltend erhöhte Ruhephase heute Abend — möglicherweise etwas Anspannung.",
"night": "Eine anhaltend erhöhte Ruhephase in der Nacht — möglicherweise etwas Anspannung."
}
}
},
"thresholds": {
"defaultLabel": "Default",
"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",
"steps": {
"dashboardOverview": {
"title": "Dein Dashboard",
"body": "Das Dashboard bündelt alle Module auf einen Blick. Halte eine Kachel lange gedrückt, um sie neu anzuordnen oder auszublenden (Einstellungen → Dashboard-Layout). Jede Kachel ist nur so aussagekräftig wie die Daten dahinter — die folgenden Module füllen sie."
},
"quickAdd": {
"title": "In Sekunden erfasst",
"body": "Über „+ Hinzufügen“ trägst du jeden Messwert in Sekunden ein — Gewicht, Blutdruck, Puls, Glukose. Versteckte Stärke: Werte lassen sich nachträglich datieren. Alles, was du hier einträgst, fließt in Trends, Health-Score und die KI-Insights."
},
"measurements": {
"title": "Messwerte & Zielbereiche",
"body": "Messwerte zeigt Verlauf und Zielbereiche pro Metrik. Hidden Gem: Zielbereiche pro Wert definieren, damit Abweichungen farblich auffallen. Diese Reihen sind die Grundlage für Korrelationen im Coach und den Arztbericht."
},
"medications": {
"title": "Medikamente & Einnahmen",
"body": "Medikamente verwaltet Zeitpläne, Einnahmen, Bestand und Titration. Versteckt: wiederkehrende Pläne (RRULE/rollierend) und Bestandswarnungen. Deine Einnahmequote speist die Therapietreue-Säule im Dashboard und den Kontext der KI."
},
"labs": {
"title": "Laborwerte",
"body": "Labore erfasst Biomarker mit Referenzbereichen — Blutbild, Cholesterin, HbA1c. Stärke: Import und FHIR-Export. Auffällige Laborwerte tauchen als Belege in den Insights und im Arztbericht wieder auf."
},
"illness": {
"title": "Krankheits-Journal",
"body": "Das Krankheits-Journal dokumentiert akute Episoden und chronische Diagnosen samt Schüben. Versteckt: die Korrelation einer Episode mit deinen Messwerten und der Ruhemodus, der Reminder pausiert. So versteht der Coach, warum Werte zeitweise abweichen."
},
"vorsorge": {
"title": "Vorsorge",
"body": "Vorsorge erinnert an Untersuchungen und Impfungen mit eigenem Intervall. Tipp: „Erledigt“ kann direkt eine Messung oder ein Laborergebnis hinzufügen. Fällige Vorsorgen erscheinen als Reminder und im Arztbericht."
},
"cycle": {
"title": "Zyklus",
"body": "Die Zyklus-Verfolgung protokolliert Phasen und Symptome. Versteckt: Symptome lassen sich Stimmung und Schlaf gegenüberstellen. Der Zyklus liefert Kontext für Schwankungen, die sonst unerklärlich wären."
},
"mood": {
"title": "Stimmung",
"body": "Stimmung erfasst dein Befinden und Tags in zwei Sekunden. Stärke: eigene Tags. Stimmungsverläufe korrelieren mit Schlaf, Medikamenten und Zyklus — der Coach erkennt Muster."
},
"insights": {
"title": "Insights",
"body": "Insights ist das Herzstück: belegbasierte, dynamische Auswertungen statt generischer Tipps — jede Aussage verweist auf deine echten Daten. Versteckt: das Layout ist anpassbar. Insights zieht alles zusammen, was die Module oben liefern."
},
"coach": {
"title": "Coach",
"body": "Der Coach beantwortet Fragen zu deinen Daten im Dialog und nutzt Anamnese, Medikamente und Laborwerte als Kontext. Den KI-Anbieter wählst du selbst (eigener Schlüssel oder lokal). Er rechnet nichts neu — er liest dieselben Zahlen wie das Dashboard."
},
"integrations": {
"title": "Integrationen",
"body": "Integrationen synchronisieren Withings, WHOOP, Polar, Oura und Apple Health automatisch. So füllen sich Gewicht, Schlaf und Erholung ohne manuelles Tippen — und nähren wiederum Insights und Coach."
},
"export": {
"title": "Arztbericht",
"body": "Der Arztbericht bündelt Messwerte, Medikamente, Laborwerte und Vorsorge als PDF oder FHIR für den Termin. Hier laufen alle Module zusammen — ein vollständiger Bericht entsteht nur bei gepflegten Daten."
},
"achievements": {
"title": "Erfolge",
"body": "Erfolge belohnen Konsistenz — Streaks und Meilensteine. Ein kleiner Motivations-Loop, der das Dranbleiben leichter macht."
},
"wrapUp": {
"title": "Das war die Tour",
"body": "Diese Führung läuft einmalig – sie öffnet sich nicht von selbst erneut. Alles Gezeigte bleibt erhalten, und du kannst Funktionen jederzeit unter Einstellungen → Module ein- oder ausschalten."
}
}
},
"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. Geräte-Quellen brauchen eine kostenlose Entwickler-App auf deinem eigenen Konto (etwa 5 Minuten); die Anleitung auf jeder Karte führt dich durch.",
"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, sobald verbunden.",
"cta": "Withings verbinden",
"setupCta": "In den Einstellungen einrichten",
"setupHint": "Braucht zuerst deine eigene, kostenlose Withings-Entwickler-App – etwa 5 Minuten, einmalig."
},
"more": {
"title": "Weitere Quellen",
"body": "Verbinde eine davon in den Einstellungen, wann immer du bereit bist – die meisten brauchen zuerst eine kostenlose Entwickler-App auf deinem eigenen Konto.",
"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",
"modulesCta": "Module auswählen"
},
"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"
},
"disclaimer": {
"acknowledge": "Mir ist klar: HealthLog ist ein privates Tracking-Tool, keine klinische Bewertung und keine Diagnose. Bei Sorgen wende ich mich an meine Ärztin oder meinen Arzt, nicht an diese App.",
"learnMore": "Mehr erfahren"
},
"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."
},
"ai": {
"panelTitle": "So sehen Insights aus",
"panelIntro": "Coach, das tägliche Briefing und die Einschätzungen je Messwert übersetzen deine eigenen Zahlen in Klartext. So sieht das aus – bevor du irgendetwas verbindest.",
"showSample": "Beispiel-Briefing ansehen",
"sampleTitle": "Tägliches Briefing",
"sampleTag": "Beispiel",
"sampleAriaLabel": "Beispielhaftes tägliches Briefing",
"sampleBody": "Gewicht in zwei Wochen um 1,2 kg gesunken. Ruhepuls stabil bei 58 bpm. Blutdruck an 6 von 7 Tagen im Zielbereich – der einzige hohe Wert folgte auf ein spätes, salziges Abendessen.",
"sampleCaption": "Nur ein Beispiel – nicht deine eigenen Daten. So liest sich ein Briefing, sobald Insights aktiv sind.",
"ladderTitle": "Drei Wege, es zu aktivieren",
"ladderLocalTitle": "Lokales Modell – nichts verlässt dein Netzwerk",
"ladderLocalBody": "Richte HealthLog auf Ollama oder LM Studio auf deinem eigenen Rechner aus. Kostenlos und vollständig privat – der ruhige Standard.",
"ladderByokTitle": "Eigenen Schlüssel verwenden",
"ladderByokBody": "Nutze deinen eigenen OpenAI- oder Anthropic-Schlüssel. Er läuft über dein Konto und deine Abrechnung, und die API-Stufe hält deine Daten standardmäßig aus dem Training heraus.",
"ladderOauthTitle": "Mit einem Abo anmelden",
"ladderOauthBody": "Verbinde ein ChatGPT-Konto – keine Kosten pro Token, aber die Bedingungen der Verbraucherstufe können Inhalte fürs Training nutzen. Deshalb eine bewusste Wahl, nie der Standard für deine Gesundheitsdaten.",
"keylessLine": "HealthLog ist auch ohne KI vollständig nutzbar. Deine Kacheln, Diagramme, Trends und Exporte funktionieren alle – KI ergänzt nur den Klartext obendrauf.",
"setupCta": "Einrichten (etwa eine Minute)",
"sharedKeyNote": "Diese Instanz stellt bereits einen gemeinsamen KI-Anbieter bereit, deshalb funktionieren Insights für dich sofort – keine Einrichtung nötig."
}
},
"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 hinzufügen",
"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",
"insightsTitle": "Insights aktivieren (optional)",
"insightsDescription": "Füge ein lokales Modell oder deinen eigenen KI-Schlüssel hinzu, um das tägliche Briefing und Coach freizuschalten.",
"insightsCta": "Insights aktivieren"
}
},
"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",
"groups": {
"account": "Konto",
"yourData": "Deine Daten",
"display": "Anzeige",
"healthProfile": "Gesundheitsprofil",
"ai": "KI",
"connectivity": "Konnektivität",
"system": "System"
}
},
"sections": {
"account": {
"title": "Konto",
"description": "Profil, Passwort, Passkeys und deine Onboarding-Tour.",
"subtitle": "Dein Profil, deine Identität und deine Anmeldedaten."
},
"integrations": {
"title": "Integrationen",
"description": "Verbundene Dienste, Zustellkanäle und die Quellen-Priorität an einem Ort.",
"subtitle": "Datenquellen und Geräte verbinden und verwalten.",
"connectionsHeading": "Verbindungen",
"connectionsDescription": "Datenquellen und Geräte verbinden und verwalten.",
"channelsHeading": "Zustellkanäle",
"channelsDescription": "Wohin Erinnerungen und Hinweise zugestellt werden.",
"matrixLink": "Benachrichtigungen je Kanal"
},
"notifications": {
"title": "Benachrichtigungen",
"description": "Alle Erinnerungen an einem Ort — was wann erinnert wird und wohin es zugestellt wird.",
"subtitle": "Wähle, welche Erinnerungen du erhältst und wohin sie zugestellt werden.",
"remindersHeading": "Erinnerungen",
"remindersDescription": "Was du erhältst.",
"matrixLink": "Benachrichtigungen je Kanal",
"channelsLink": "Zustellkanäle"
},
"layout": {
"title": "Darstellung",
"description": "Lege fest, wie Dashboard, Auswertungen und deine Tracking-Module dargestellt und angeordnet sind.",
"backToHub": "Zurück zu Darstellung",
"dashboard": {
"title": "Dashboard",
"description": "Kachel-Layout und Reihenfolge."
},
"insights": {
"title": "Insights",
"description": "Reihenfolge der Übersicht und der Navigations-Pills."
},
"subtitle": "Lege fest, wie Dashboard, Auswertungen und Tracking-Module dargestellt werden.",
"medications": {
"title": "Medikamente",
"description": "Listenansicht und manuelle Reihenfolge."
},
"labs": {
"title": "Labor",
"description": "Ansicht, Sortierung und manuelle Reihenfolge."
},
"illness": {
"title": "Krankheitstagebuch",
"description": "Listenansicht und Reihenfolge der Episoden."
},
"vorsorge": {
"title": "Vorsorge",
"description": "Listenansicht und Reihenfolge der Erinnerungen."
},
"mood": {
"title": "Stimmungs-Tags",
"description": "Gruppen, Tags und archivierte Tags der Stimmungs-Auswahl."
}
},
"dashboard": {
"title": "Dashboard",
"description": "Kachel-Layout und Reihenfolge.",
"subtitle": "Ordne die Kacheln auf deinem Dashboard an."
},
"thresholds": {
"title": "Zielwerte",
"description": "Pro Metrik dein eigener Zielbereich für gesunde Werte.",
"subtitle": "Lege deine persönlichen Zielbereiche je Messgröße fest."
},
"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",
"stress": "Stress",
"sleepDebt": "Schlafdefizit"
},
"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"
},
"subtitle": "Lege fest, welche Quelle gewinnt, wenn zwei dieselbe Messgröße liefern.",
"nutrients": {
"title": "Synchronisierte Nährstoffzufuhr",
"description": "Tagessummen aus Apple Health der letzten {days} Tage. Nur lesend — die Quell-App besitzt die Werte.",
"empty": "Noch keine Nährstoffdaten synchronisiert.",
"latest": "{amount} {unit} am {date}",
"daysWithData": "{count} von {days} Tagen",
"moduleHint": "Die Synchronisierung steuert das Modul „Nährstoffzufuhr“.",
"moduleHintLink": "Module verwalten"
}
},
"ai": {
"title": "KI-Anbieter",
"description": "Provider, Modell und API-Key für die Auswertungen — dazu dein „Über mich“-Kontext.",
"subtitle": "Wähle deinen KI-Anbieter und hinterlege deinen eigenen Schlüssel."
},
"api": {
"title": "API & Tokens",
"description": "Bearer-Tokens für eigene Skripte und Apps — erfasse Messwerte oder Einnahmen von überall.",
"subtitle": "API-Endpunkte und Zugriffstoken verwalten."
},
"advanced": {
"title": "Erweitert",
"description": "Opt-in-Schalter für den Forschungsmodus sowie der Notausgang zum unwiderruflichen Löschen aller Gesundheitsdaten.",
"subtitle": "Research-Modus, Daten zurücksetzen und Konto löschen."
},
"export": {
"title": "Export & Import",
"description": "Lade deine Daten als CSV oder vollständiges JSON-Backup herunter — oder importiere aus Apple Health, JSON oder CSV. Den Arztbericht findest du jetzt unter Gesundheitsakte.",
"otherOptionsHeading": "Weitere Export-Optionen",
"downloadFailed": "Der Export konnte nicht heruntergeladen werden. Bitte versuche es erneut.",
"actions": {
"download": "Herunterladen"
},
"filters": {
"since": "Von",
"until": "Bis"
},
"cards": {
"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": "Alle deine Daten in einer JSON-Datei — Messwerte, Medikamente, Stimmung, Zyklus, Laborwerte, Krankheitsepisoden, Allergien, Familienanamnese und Workouts. Gleiches Format wie das wöchentliche Auto-Backup.",
"scopeNote": "Die Originaldateien der Dokumente sowie GPS-Routen und Einzelmesswerte von Workouts sind nicht enthalten — lade diese separat aus dem Dokumententresor bzw. dem Workout-Export herunter.",
"encryptToggle": "Mit einer Passphrase verschlüsseln",
"passphrasePlaceholder": "Passphrase (mind. 12 Zeichen)",
"passphraseHelp": "Leitet den Archivschlüssel per Argon2id ab und versiegelt ihn mit AES-256-GCM. Speichere die Datei mit der Endung .hlx.",
"noRecoveryWarning": "Es gibt keine Wiederherstellung — geht diese Passphrase verloren, lässt sich das Archiv nicht mehr öffnen. Bewahre sie sicher auf.",
"stepUpNeeded": "Bestätige deinen zweiten Faktor und versuche es erneut."
},
"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}"
}
},
"subtitle": "Exportiere deine Daten oder importiere aus einer Sicherung."
},
"about": {
"title": "Über diese App",
"description": "Version, Lizenz, Links.",
"subtitle": "Version, Lizenz und Projektlinks."
},
"sharing": {
"title": "Freigabe",
"description": "Erstelle einen schreibgeschützten Link, um deine Gesundheitsakte mit einer Ärztin oder einem Arzt zu teilen.",
"subtitle": "Teile schreibgeschützten Zugriff auf deine Daten."
},
"insights": {
"title": "Insights",
"description": "Reihenfolge der Übersicht und der Navigations-Pills.",
"subtitle": "Ordne die Übersichts-Bereiche und die Reihenfolge der Pills an."
},
"medications": {
"title": "Medikamente",
"description": "Listenansicht, Reihenfolge und Injektionsstellen deiner Medikamente.",
"subtitle": "Verwalte Ansicht und Reihenfolge deiner Medikamentenliste."
},
"mood": {
"title": "Stimmungs-Tags",
"description": "Gruppen, Tags und archivierte Tags der Stimmungs-Auswahl.",
"subtitle": "Organisiere deine Stimmungs-Tags, Gruppen und Auswahlreihenfolge."
},
"labs": {
"title": "Laborwerte",
"description": "Ansicht, Sortierung und Biomarker deiner Laborwerte.",
"subtitle": "Ansicht, Sortierung und Biomarker verwalten."
},
"illness": {
"title": "Krankheitstagebuch",
"description": "Ansicht und Reihenfolge deiner Krankheitsepisoden.",
"subtitle": "Ansicht und Reihenfolge der Episoden verwalten."
},
"vorsorge": {
"title": "Vorsorge",
"description": "Ansicht, Reihenfolge und einzelne Vorsorge-Erinnerungen.",
"subtitle": "Ansicht, Reihenfolge und einzelne Erinnerungen verwalten."
},
"modules": {
"title": "Module",
"saved": "Gespeichert.",
"error": "Konnte nicht gespeichert werden. Bitte erneut versuchen.",
"toggleable": {
"title": "Was du trackst",
"description": "Optionale Bereiche. Deaktivierte Module verschwinden aus Navigation, Kacheln und Auswertungen — deine Daten bleiben erhalten."
},
"manageIn": "In {section} verwalten",
"operatorDisabled": "Serverweit deaktiviert",
"subtitle": "Lege fest, welche Tracking-Bereiche HealthLog überall anzeigt."
},
"gesundheitsakte": {
"title": "Gesundheitsakte",
"description": "Vollständige Gesundheitsakte als PDF, FHIR R4 oder kombiniertes ZIP-Paket exportieren.",
"subtitle": "Exportiere eine vollständige, arzttaugliche Gesundheitsakte."
},
"coach": {
"title": "Coach",
"description": "Coach aktivieren, Ton und Umfang, gespeicherte Erinnerungen.",
"subtitle": "Stelle den Coach, seine proaktiven Hinweise und sein Gedächtnis ein."
},
"security": {
"title": "Sicherheit",
"subtitle": "Zwei-Faktor-Authentifizierung, Wiederherstellungscodes und Passkeys."
},
"privacy": {
"title": "Daten & Datenschutz",
"subtitle": "Deine Daten, Aufbewahrung, Verschlüsselung und Kontosicherheit an einem Ort.",
"description": "Export, Löschung, Aufbewahrung, Verschlüsselungsstatus, Sitzungen und Sicherheitsaktivität."
},
"mcp": {
"title": "MCP-Connector",
"subtitle": "Verbinde einen externen Assistenten mit deinen eigenen Gesundheitsdaten."
},
"anamnesis": {
"title": "Anamnese",
"subtitle": "Verwalte deine Allergien und deine Familienanamnese.",
"description": "Strukturierte Datensätze zu Allergien und Familienanamnese."
},
"environment": {
"title": "Standort & Wetter",
"subtitle": "Wetter, Tageslicht und Standort-Kontext.",
"disabledHint": "Aktiviere das Umwelt-Modul, um einen Heimatort festzulegen und tägliches Wetter und Tageslicht abzurufen.",
"searchPlaceholder": "Stadt suchen",
"search": "Suchen",
"searchError": "Ort konnte nicht gesucht werden.",
"use": "Verwenden",
"select": "Auswählen",
"saveError": "Änderung konnte nicht gespeichert werden.",
"homeSaved": "Heimatort gespeichert.",
"travelAdded": "Ortszeitraum hinzugefügt.",
"travelRemoved": "Ortszeitraum entfernt.",
"backfillQueued": "Nacherfassung eingeplant.",
"backfillError": "Nacherfassung konnte nicht gestartet werden.",
"startDate": "Startdatum",
"endDate": "Enddatum",
"storedDays": "{count} Tage Wetter gespeichert.",
"home": {
"title": "Heimatort",
"description": "Ein grober Standort auf Stadtebene – niemals eine genaue Spur. Wetter und Tageslicht werden für diesen Ort an Tagen ohne Ortszeitraum abgerufen, ab dem Tag der Festlegung.",
"current": "Aktuell: {label}",
"none": "Noch kein Heimatort festgelegt.",
"since": "Wetter wird ab {date} erfasst. Frühere Tage bleiben leer, bis du einen Ortszeitraum hinzufügst."
},
"travel": {
"title": "Ortszeiträume",
"description": "Füge einen Ort und einen Zeitraum hinzu – eine Reise oder einen früheren Abschnitt deiner Verlaufsdaten. Der Zeitraum überschreibt für seine Tage deinen Wohnort, damit das Wetter zu deinem tatsächlichen Aufenthalt passt. So korrigierst du die Vergangenheit.",
"none": "Noch keine Ortszeiträume.",
"add": "{label} hinzufügen",
"remove": "Ortszeitraum entfernen"
},
"backfill": {
"title": "Vergangene Tage nacherfassen",
"description": "Rufe Wetter für einen vergangenen Zeitraum ab und speichere es, damit ältere Tage in die Korrelationen einfließen. Der Start steht standardmäßig auf dem Gültigkeitsdatum deines Wohnorts; um weiter zurückzureichen, füge zuerst einen Ortszeitraum für diesen Bereich hinzu.",
"run": "Nacherfassen"
},
"noResults": "Keine passenden Orte gefunden."
}
},
"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."
},
"dateFormat": {
"title": "Datumsformat",
"description": "Bestimmt die Reihenfolge von Tag, Monat und Jahr bei der Anzeige von Daten.",
"auto": "Automatisch (Sprache)",
"dmy": "TT.MM.JJJJ",
"mdy": "MM/TT/JJJJ",
"ymd": "JJJJ-MM-TT",
"saved": "Datumsformat gespeichert.",
"saveError": "Speichern des Datumsformats fehlgeschlagen."
},
"username": "Nutzername",
"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)",
"localDescription": "Hier funktioniert jeder OpenAI-kompatible Endpunkt — ein lokales Modell (Ollama, LM Studio) genauso wie ein Gateway wie LiteLLM, OpenRouter oder vLLM. Die Basis-URL endet auf /v1; der API-Schlüssel ist 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.",
"testReasonBadRequest": "Der Anbieter hat die Anfrage abgelehnt (HTTP {status}) — der Endpunkt hat geantwortet; das Problem liegt also am Anfrageformat oder Modellnamen, nicht an der Verbindung.",
"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."
},
"coachReminders": {
"title": "Deine Erinnerungen",
"description": "Dinge, um die du den Coach gebeten hast, später darauf zurückzukommen. Fällige erscheinen hier und beim Coach.",
"empty": "Noch keine Erinnerungen. Bitte den Coach, dich an etwas zu erinnern — dann erscheint es hier.",
"loadError": "Konnte deine Erinnerungen nicht laden.",
"dueHeading": "Jetzt fällig",
"allHeading": "Gespeichert",
"duePrefix": "fällig {when}",
"confirm": "Behalten",
"markDone": "Erledigt",
"dismiss": "Verwerfen",
"deleteAria": "Diese Erinnerung löschen",
"note": "Erinnerungen werden verschlüsselt gespeichert. Lösche eine jederzeit — sie wird aus dem entfernt, was der Coach sehen kann.",
"status": {
"proposed": "Vorgeschlagen",
"active": "Gespeichert",
"due": "Fällig",
"surfaced": "Angezeigt",
"done": "Erledigt",
"dismissed": "Verworfen"
}
},
"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",
"recordsLink": "Allergien, Familienanamnese und deine Vorerkrankungen gehören zu deiner Anamnese.",
"recordsLinkCta": "Anamnese öffnen"
},
"responseTimeoutHeading": "Antwort-Timeout",
"responseTimeoutBody": "Wie lange auf die Antwort der KI gewartet wird, bevor abgebrochen wird. Erhöhe den Wert für ein lokales oder selbst gehostetes Modell, das beim ersten Aufruf Zeit zum Laden braucht.",
"responseTimeoutLabel": "Antwort-Timeout (Sekunden)",
"responseTimeoutPlaceholder": "Standard (~120)",
"responseTimeoutInvalid": "Gib eine Zahl zwischen 10 und 600 Sekunden ein.",
"autoRead": {
"title": "Dokumente automatisch mit KI lesen",
"subLabel": "Neu hochgeladene Dokumente werden von deinem konfigurierten KI-Anbieter gelesen und indiziert, ohne dass du jedes Dokument einzeln bestätigen musst.",
"honesty": "Wenn aktiviert, wird jedes hochgeladene Dokument an deinen konfigurierten KI-Anbieter gesendet, um gelesen, beschrieben und für die Suche indiziert zu werden – ohne Bestätigung pro Dokument. Das geschieht auf dem Server, und der Inhalt des Dokuments verlässt dabei diese Maschine in Richtung dieses Anbieters. Wenn dein konfigurierter Anbieter eine Abo-Verbindung ist (ein angemeldetes KI-Konto statt eines API-Schlüssels), gelten dessen eigene Datenschutzeinstellungen – Abo-Anbieter dürfen den Inhalt zur Verbesserung ihrer Modelle verwenden, und kein Auftragsverarbeitungsvertrag deckt das ab. Dokumente, die von einem selbst gehosteten lokalen Modell gelesen werden, verlassen deinen Server nie. Standardmäßig aus; aktiviere es nur, wenn du diesen Kompromiss für die von dir hochgeladenen Dokumente akzeptierst.",
"confirm": "Ich verstehe – automatisches KI-Lesen aktivieren",
"cancel": "Abbrechen"
},
"centralCodex": {
"title": "Gemeinsamen KI-Zugang des Servers nutzen",
"subLabel": "Leite KI-Anfragen über die vom Betreiber für diesen Server eingerichtete Verbindung — zusätzlich zu deinen eigenen Anbietern als Rückfallebene.",
"honesty": "Der gemeinsame Zugang ist ein einzelnes angemeldetes KI-Konto, das der Betreiber für alle auf diesem Server verbunden hat — nicht dein eigener Schlüssel. Anfragen darüber werden vom Anbieter standardmäßig zum Training genutzt und von keiner Auftragsverarbeitungsvereinbarung gedeckt, die Stunden- und Wochenlimits des Kontos teilst du dir mit allen anderen, die zugestimmt haben, und deine eigenen Anbieter werden weiterhin zuerst versucht. Aktiviere es nur, wenn du diesen Kompromiss akzeptierst.",
"confirm": "Verstanden — gemeinsame Verbindung nutzen",
"cancel": "Abbrechen"
}
},
"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 dein Blutdruckmessgerät, um Gewicht, Körperzusammensetzung und Blutdruck automatisch zu synchronisieren.",
"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 direkt in HealthLog zu synchronisieren.",
"whoopCredentials": "API-Zugangsdaten",
"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": "Fitbit",
"fitbitTag": "Fitbit & Pixel",
"fitbitDescription": "Verbinde Fitbit, um deine Fitbit- und Pixel-Watch-Werte zu synchronisieren — Gewicht, Herzfrequenz und mehr.",
"fitbitExperimentalBadge": "Experimentell",
"fitbitCredentials": "API-Zugangsdaten",
"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 Fitbit-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": "Fitbit trennen?",
"fitbitDisconnectDescription": "Die Verbindung zu Fitbit wird getrennt. Zuvor synchronisierte Daten bleiben erhalten.",
"fitbitConnect": "Mit Fitbit verbinden",
"fitbitNoCredentials": "Bitte gib oben deine API-Zugangsdaten ein, um Fitbit zu verbinden.",
"fitbitBackfillInProgress": "Dein Fitbit-Verlauf wird im Hintergrund importiert…",
"fitbitOauthConnected": "Fitbit verbunden — die erste Synchronisierung startet im Hintergrund.",
"fitbitOauthFailed": "Fitbit-Verbindung fehlgeschlagen",
"googleHealth": "Google Health",
"googleHealthTag": "Fitbit & Pixel",
"googleHealthBetaBadge": "Beta",
"googleHealthDescription": "Verbinde Fitbit, Pixel Watch und Fitbit Air über dein Google-Konto — Gewicht, Herzfrequenz, Schlaf und Aktivität. Das ersetzt die klassische Fitbit-Verbindung, die Google im September 2026 abschaltet.",
"googleHealthDescriptionSecondary": "Du registrierst deinen eigenen Google-Cloud-Client und hinterlegst die Zugangsdaten hier. Stress und Erholung liefert die API nicht, und Google kann dich von Zeit zu Zeit erneut um Zustimmung bitten. Neu bei der Einrichtung? Folge der",
"googleHealthCredentials": "API-Zugangsdaten",
"googleHealthClientId": "Client-ID",
"googleHealthClientSecret": "Client-Secret",
"googleHealthCredentialsSaved": "Zugangsdaten gespeichert",
"googleHealthCredentialsSavedPlaceholder": "Gespeichert — zum Ersetzen neu eingeben",
"googleHealthCredentialsSavedPlaceholderSecret": "Gespeichert — zum Ersetzen neu eingeben",
"googleHealthSaveCredentials": "Speichern",
"googleHealthSync": "Jetzt synchronisieren",
"googleHealthFullSync": "Alle Daten synchronisieren",
"googleHealthFullSyncTitle": "Vollständige Synchronisierung?",
"googleHealthFullSyncDescription": "Der gesamte verfügbare Google-Health-Verlauf wird vollständig synchronisiert. Je nach Verlauf kann das eine Weile dauern.",
"googleHealthSyncResult": "{count} Messwerte synchronisiert",
"googleHealthSyncFailed": "Synchronisierung fehlgeschlagen",
"googleHealthSynchronize": "Synchronisieren",
"googleHealthDisconnect": "Trennen",
"googleHealthDisconnectTitle": "Google Health trennen?",
"googleHealthDisconnectDescription": "Die Verbindung zu Google Health wird getrennt. Bereits synchronisierte Daten bleiben erhalten.",
"googleHealthConnect": "Mit Google verbinden",
"googleHealthNoCredentials": "Bitte gib oben deine API-Zugangsdaten ein, um Google Health zu verbinden.",
"googleHealthBackfillInProgress": "Dein Google-Health-Verlauf wird im Hintergrund importiert…",
"googleHealthReauthBanner": "Google hat die Verbindung ablaufen lassen — das passiert regelmäßig, solange deine OAuth-App im Testmodus bleibt. Verbinde neu, um die Synchronisierung fortzusetzen.",
"googleHealthReconnect": "Neu verbinden",
"googleHealthOauthConnected": "Google Health verbunden — die erste Synchronisierung startet im Hintergrund.",
"googleHealthOauthFailed": "Verbindung zu Google Health fehlgeschlagen",
"googleHealthOauthError": {
"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 von deinem eigenen Konto aus neu.",
"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."
},
"fitbitOauthError": {
"csrf1": "Die Sicherheitsprüfung ist fehlgeschlagen, weil das Browser-Cookie fehlte. Bitte starte die Verbindung im selben Browser erneut.",
"state": "Die Antwort von Fitbit 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": "Fitbit hat keinen Autorisierungscode zurückgegeben. Versuche es erneut und erlaube den Zugriff im Fitbit-Dialog.",
"nocreds": "Fitbit ist nicht konfiguriert. Hinterlege oben deine Fitbit-OAuth-Zugangsdaten und versuche es erneut.",
"token": "Der Token-Austausch mit Fitbit 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 Nutzerkonto bleibt erhalten.",
"dangerZoneConfirm": "Alle Daten löschen?",
"dangerZoneConfirmDescription": "Dieser Vorgang löscht alle deine Gesundheitsdaten und Integrationen unwiderruflich. Dein Nutzerkonto 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",
"identityDescription": "Version, Lizenz und Build-Details dieser Instanz.",
"linksDescription": "Quellcode, Änderungsprotokoll und Dokumentation.",
"newerAvailable": "Neue Version: {tag}"
},
"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",
"allergies": "Allergien & Unverträglichkeiten",
"familyHistory": "Familienanamnese",
"documentsLink": "Dokumente zum Zeitraum"
},
"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})",
"shownOnce": "Nur einmal sichtbar. Erfasse QR-Code und Passphrase jetzt — beide lassen sich später nicht wiederherstellen.",
"qrLabel": "QR-Code",
"qrAlt": "QR-Code mit Freigabelink und Passphrase",
"linkLabel": "Link",
"passphraseLabel": "Passphrase",
"passphraseHint": "Die Empfängerin oder der Empfänger benötigt Link und Passphrase. Der QR-Code enthält beides.",
"copyLink": "Link kopieren",
"copyPassphrase": "Passphrase kopieren",
"protected": "Passphrase",
"attachTitle": "Dokumente anhängen",
"attachButton": "Dokumente auswählen",
"attachCount": "{count} von {max} ausgewählt",
"attachFrozen": "Die Dokumentenauswahl ist nach dem Erstellen des Links fest — Dokumente lassen sich danach weder hinzufügen noch entfernen.",
"attachRemove": "{title} entfernen",
"exifNote": "Kamera-Metadaten (EXIF/GPS) werden beim Teilen aus JPEG-, PNG- und WebP-Bildern entfernt. PDF-, TIFF-, HEIC- und Office-Dateien werden unverändert übernommen.",
"documentCount": "Angehängte Dokumente: {count}",
"qrScanTitle": "Zum Öffnen auf einem anderen Gerät scannen",
"qrScanHint": "Richte eine Handykamera auf den Code, um die geteilte Akte zu öffnen — die Passphrase ist bereits enthalten.",
"pickerTitle": "Dokumente anhängen",
"pickerDescription": "Durchsuche deinen Tresor und wähle Dokumente zum Teilen. Bis zu {max}.",
"pickerSearch": "Dokumente suchen",
"pickerEmpty": "Keine Dokumente gefunden.",
"pickerDone": "Fertig",
"pickerSelectedCount": "{count} von {max} ausgewählt",
"pickerMaxReached": "Maximum von {max} Dokumenten erreicht."
},
"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.",
"disclaimer": "Vorhersagen und Phasen sind beschreibende Schätzungen aus deinen erfassten Daten – keine medizinische Beratung und keine Verhütungsmethode. Sie zeigen nie an, dass ungeschützter Geschlechtsverkehr sicher ist. Die Genauigkeit steigt, je mehr Zyklen du erfasst. Wende dich für Verhütung oder medizinische Entscheidungen an eine medizinische Fachperson.",
"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 ins Glukose-Panel zu synchronisieren.",
"nightscoutViewData": "Glukose ansehen",
"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 tägliche Aktivitä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",
"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, Herzfrequenzvariabilität und tägliche Aktivitä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",
"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",
"coach": {
"activate": {
"title": "Coach aktivieren",
"description": "Zeigt den Coach-Button und das Coach-Panel. Standardmäßig an — ausschalten, um den Coach überall auszublenden.",
"toggleAria": "Coach-Button und Coach-Panel aktivieren",
"savedOn": "Coach ist aktiviert.",
"savedOff": "Coach ist ausgeblendet.",
"saveError": "Speichern fehlgeschlagen. Bitte erneut versuchen."
}
},
"withingsDescriptionSecondary": "Werte fließen im Hintergrund in dein Dashboard. Neu beim Einrichten? Folge der",
"whoopDescriptionSecondary": "Werte fließen im Hintergrund in dein Dashboard. Neu beim Einrichten? Folge der",
"fitbitDescriptionSecondary": "Werte fließen im Hintergrund in dein Dashboard. Neu beim Einrichten? Folge der",
"polarDescriptionSecondary": "Werte fließen im Hintergrund in dein Dashboard. Neu beim Einrichten? Folge der",
"ouraDescriptionSecondary": "Werte fließen im Hintergrund in dein Dashboard. Neu beim Einrichten? Folge der",
"nightscoutDescriptionSecondary": "Werte fließen im Hintergrund in dein Dashboard. Neu beim Einrichten? Folge der",
"integrationCredentialsHint": "Wo du diese Zugangsdaten findest und wie du deine eigene App registrierst, steht in der Einrichtungsanleitung oben.",
"integrationRedirectGuide": {
"intro": "Die Verbindung läuft über deine eigene {provider}-Entwickler-App – etwa 5 Minuten Einrichtung:",
"step1": "Erstelle eine App im {provider}-Entwicklerportal.",
"step2": "Setze deren Weiterleitungs-/Callback-URL auf:",
"step3": "Trage die dort erhaltene Client-ID und das Client-Secret oben ein."
},
"security": {
"sessionsTitle": "Aktive Sitzungen",
"sessionsDescription": "Geräte und Browser, die aktuell bei deinem Konto angemeldet sind.",
"sessionsLoadError": "Aktive Sitzungen konnten nicht geladen werden.",
"sessionsEmpty": "Keine aktiven Sitzungen.",
"currentSession": "Dieses Gerät",
"lastActive": "Zuletzt aktiv {time}",
"unknownLocation": "Unbekannter Ort",
"revokeSession": "Abmelden",
"revokeError": "Anfrage konnte nicht abgeschlossen werden. Bitte erneut versuchen.",
"signOutEverywhere": "Überall sonst abmelden",
"signOutEverywhereDone": "{count} andere Sitzung(en) abgemeldet.",
"activityTitle": "Sicherheitsaktivität",
"activityDescription": "Letzte Anmeldungen, Sicherheitsänderungen und Datenexporte deines Kontos.",
"activityEmpty": "Noch keine Sicherheitsaktivität.",
"activityLoadError": "Sicherheitsaktivität konnte nicht geladen werden.",
"action": {
"newDevice": "Anmeldung von neuem Gerät",
"loginFailed": "Fehlgeschlagene Anmeldung",
"login": "Anmeldung",
"passwordChange": "Passwort geändert",
"mfa": "Zwei-Faktor-Änderung",
"sessionRevoke": "Sitzung abgemeldet",
"token": "API-Token-Änderung",
"accountDelete": "Konto gelöscht",
"dataClear": "Daten zurückgesetzt",
"export": "Datenexport",
"other": "Sicherheitsereignis"
},
"active": "Aktiv",
"inactive": "Inaktiv",
"stepUpRequired": "Melde dich aus Sicherheitsgründen erneut an, um deinen zweiten Faktor zu ändern.",
"useRecoveryCode": "Stattdessen Wiederherstellungscode verwenden",
"useAuthenticator": "Stattdessen Authenticator-App verwenden",
"totp": {
"title": "Authenticator-App",
"description": "Verwende einen zeitbasierten Code aus einer Authenticator-App als zweiten Faktor.",
"setUp": "Einrichten",
"step1": "Scanne den QR-Code mit deiner Authenticator-App oder gib das Geheimnis manuell ein.",
"step2": "Gib zur Bestätigung den 6-stelligen Code aus der App ein.",
"qrAlt": "QR-Code zur Einrichtung der Authenticator-App",
"qrUnavailable": "QR-Code nicht verfügbar",
"manualEntry": "Oder gib dieses Geheimnis manuell ein",
"enterCode": "Gib den 6-stelligen Code ein",
"verify": "Bestätigen",
"setupFailed": "Einrichtung konnte nicht gestartet werden. Bitte versuche es erneut.",
"invalidCode": "Dieser Code ist ungültig. Bitte versuche es erneut.",
"disable": "Deaktivieren",
"disableTitle": "Zwei-Faktor-Authentifizierung deaktivieren",
"disableConfirm": "Gib einen aktuellen Code ein, um deinen zweiten Faktor abzuschalten. Damit werden auch deine Wiederherstellungscodes gelöscht.",
"currentCode": "Aktueller Code",
"disableFailed": "Der zweite Faktor konnte nicht deaktiviert werden."
},
"recovery": {
"saveNow": "Speichere diese Wiederherstellungscodes jetzt",
"saveNowHint": "Jeder Code funktioniert einmal. Sie werden nur dieses eine Mal angezeigt — bewahre sie sicher auf. Wenn du deine Authenticator-App verlierst, ist ein Wiederherstellungscode der einzige Weg zurück.",
"download": "Herunterladen",
"remainingOne": "{count} Wiederherstellungscode übrig.",
"remainingOther": "{count} Wiederherstellungscodes übrig.",
"regenerate": "Codes neu erzeugen",
"regenFailed": "Wiederherstellungscodes konnten nicht neu erzeugt werden.",
"savedIt": "Ich habe sie gespeichert",
"regenerateTitle": "Wiederherstellungscodes neu erzeugen?",
"regenerateConfirm": "Damit werden deine aktuellen Wiederherstellungscodes ersetzt. Deine bisherigen Codes funktionieren sofort nicht mehr, und der neue Satz wird nur einmal angezeigt."
},
"keys": {
"title": "Sicherheitsschlüssel",
"description": "Registriere einen Hardware- oder Plattform-Sicherheitsschlüssel als zweiten Faktor.",
"empty": "Noch keine Sicherheitsschlüssel registriert.",
"add": "Sicherheitsschlüssel hinzufügen",
"addFailed": "Der Sicherheitsschlüssel konnte nicht registriert werden.",
"rename": "Umbenennen",
"renameFailed": "Der Sicherheitsschlüssel konnte nicht umbenannt werden.",
"remove": "Sicherheitsschlüssel entfernen",
"removeFailed": "Der Sicherheitsschlüssel konnte nicht entfernt werden.",
"removeConfirm": "Dieser Sicherheitsschlüssel funktioniert dann nicht mehr als zweiter Faktor.",
"lastUsed": "Zuletzt verwendet {date}",
"neverUsed": "Noch nie verwendet",
"added": "hinzugefügt {date}",
"nameLabel": "Name des Sicherheitsschlüssels"
},
"passkeyNudge": {
"title": "Füge einen Passkey für schnellere Anmeldung hinzu",
"body": "Mit Passkeys meldest du dich per Fingerabdruck, Gesicht oder Geräte-PIN an — ohne Passwort zum Merken."
},
"trustedDevices": {
"title": "Vertrauenswürdige Geräte",
"description": "Browser, denen du vertraust, überspringen den zweiten Faktor für 30 Tage. Das Passwort wird weiterhin verlangt. Entziehe das Vertrauen, wenn du ein Gerät nicht kennst.",
"loadError": "Vertrauenswürdige Geräte konnten nicht geladen werden.",
"revokeError": "Gerät konnte nicht entfernt werden. Bitte erneut versuchen.",
"revoke": "Entfernen",
"revokeAll": "Alle Geräte vergessen",
"revokeAllDone": "{count} vertrauenswürdige(s) Gerät(e) entfernt.",
"unnamed": "Unbekanntes Gerät",
"current": "Dieses Gerät",
"expires": "Vertraut bis {date}"
}
},
"privacy": {
"intro": {
"title": "Deine Daten bleiben deine",
"body": "HealthLog wird selbst gehostet. Diese Seite fasst zusammen, wie deine Daten geschützt werden, wie lange sie gespeichert bleiben, wie du sie exportierst und wie du sie löschst."
},
"encryption": {
"title": "Verschlüsselt gespeichert",
"description": "Sensible Felder werden in der Datenbank verschlüsselt.",
"summary": "Deine sensiblen Daten werden mit {algorithm} verschlüsselt gespeichert – über {columns} Felder in {models} Datensatztypen.",
"statement": "Deine sensiblen Daten werden mit AES-256-GCM verschlüsselt gespeichert."
},
"stored": {
"title": "Was gespeichert wird",
"description": "Die Datenkategorien, die dieses Konto enthält.",
"measurements": "Messwerte (Gewicht, Blutdruck, Puls, Glukose, Schlaf, Körperzusammensetzung)",
"medications": "Medikamente und Einnahmeverlauf",
"moodLabs": "Stimmungseinträge und Laborwerte",
"coach": "Coach-Unterhaltungen",
"integrations": "Integrations-Tokens (verschlüsselt)",
"security": "Konto- und Sicherheitsaktivität (Sitzungen, Anmeldeprotokoll)"
},
"retention": {
"title": "Aufbewahrung",
"description": "Wie lange zeitgebundene Datensätze vor der automatischen Bereinigung gespeichert bleiben.",
"coach": "Coach-Unterhaltungen: {days} Tage",
"audit": "Sicherheitsprotokoll: {days} Tage",
"delivery": "Benachrichtigungsprotokoll: {days} Tage",
"unavailable": "Aufbewahrungsdetails sind derzeit nicht verfügbar."
},
"export": {
"title": "Meine Daten herunterladen",
"description": "Exportiere deine Datensätze als CSV oder JSON, optional passphrasen-verschlüsselt, oder erstelle eine vollständige Gesundheitsakte.",
"openExport": "Export & Backup",
"openHealthRecord": "Gesundheitsakte"
},
"delete": {
"title": "Löschen oder zurücksetzen",
"description": "Lösche dein Konto vollständig oder lösche deine Gesundheitsdaten und behalte das Konto.",
"backupLag": "Die Löschung entfernt deine Daten sofort. Verschlüsselte Off-Host-Backups enthalten sie weiterhin, bis sie aus dem Aufbewahrungsfenster des Betreibers herausfallen.",
"openAdvanced": "Löschen oder zurücksetzen"
},
"posture": {
"title": "Datenschutz-Einstellung",
"description": "Steuere, wie viele deiner Daten an KI-Funktionen und die freiwillige Forschung weitergegeben werden.",
"openAi": "KI-Datenschutzmodus",
"openResearch": "Forschungsmodus"
}
},
"mcp": {
"enableTitle": "Remote-MCP-Endpunkt",
"enableDescription": "Erlaube einem MCP-fähigen Assistenten (Claude.ai, ChatGPT), deine Gesundheitsdaten über ein begrenztes Token zu lesen. Standardmäßig aus.",
"enabled": "Aktiv",
"disabled": "Inaktiv",
"enableToggleLabel": "MCP-Endpunkt aktivieren",
"endpointLabel": "Connector-URL",
"connectDescription": "Füge diese URL in die Einrichtung des eigenen Connectors deines Assistenten ein und autorisiere dich mit dem Token unten oder melde dich bei Aufforderung an.",
"tokensTitle": "Connector-Tokens",
"tokensDescription": "Erzeuge ein schreibgeschütztes Token, um einen Assistenten zu verbinden. Das Token wird nur einmal angezeigt.",
"scopeNote": "Tokens sind auf health:read beschränkt — nur Lesezugriff auf deine eigenen Daten. Sie können niemals Admin-Funktionen erreichen.",
"writeScopeToggleLabel": "Eintragen erlauben (health:write)",
"writeScopeNote": "Fügt den Scope health:write hinzu, damit der Assistent neue Messwerte und Stimmungseinträge in dein Konto eintragen kann. Jeder Schreibvorgang wird zuvor bestätigt. Das Token kann weiterhin keine vorhandenen Einträge löschen oder ändern, keine Medikamente bearbeiten und keine REST- oder Admin-Funktionen erreichen. Für reinen Lesezugriff ausgeschaltet lassen.",
"connectionsTitle": "Verbundene Assistenten",
"connectionsDescription": "Assistenten, die du über die Anmeldung autorisiert hast. Das Widerrufen einer Verbindung beendet den Zugriff sofort, einschließlich der Möglichkeit zur Erneuerung.",
"noConnections": "Keine verbundenen Assistenten.",
"connectionConnected": "Verbunden",
"connectionLastUsed": "Zuletzt verwendet",
"connectionNeverUsed": "Nie verwendet",
"connectionRevoke": "Trennen",
"connectionRevokeDescription": "Dies beendet den Zugriff des Assistenten sofort und verhindert eine Erneuerung. Für eine erneute Verbindung ist eine neue Autorisierung nötig.",
"connectionRevokeFailed": "Assistent konnte nicht getrennt werden."
},
"strava": "Strava",
"stravaDescription": "Verbinde dein Strava-Konto, um deine Aktivitäten in deinen Trainingsverlauf zu übernehmen.",
"stravaDescriptionSecondary": "Aktivitäten fließen im Hintergrund in dein Dashboard. Neu bei der Einrichtung? Folge der",
"stravaViewData": "Trainings ansehen",
"stravaCredentials": "API-Zugangsdaten",
"stravaClientId": "Client-ID",
"stravaClientSecret": "Client-Secret",
"stravaCredentialsSaved": "Zugangsdaten gespeichert",
"stravaCredentialsSavedPlaceholder": "Gespeichert — neue eingeben zum Ersetzen",
"stravaSaveCredentials": "Speichern",
"stravaUnavailable": "Strava ist auf diesem Server nicht konfiguriert. Füge oben deine eigenen Strava-API-Zugangsdaten hinzu oder bitte deinen Administrator, die gemeinsame App zu konfigurieren.",
"stravaConnect": "Strava verbinden",
"stravaDisconnect": "Trennen",
"stravaDisconnectTitle": "Strava trennen?",
"stravaDisconnectDescription": "Künftige Synchronisierungen stoppen. Bereits importierte Aktivitäten bleiben in deinem Verlauf.",
"stravaOauthConnected": "Strava verbunden — die erste Synchronisierung startet im Hintergrund.",
"stravaOauthFailed": "Strava-Verbindung fehlgeschlagen",
"stravaOauthError": {
"csrf1": "Die Sicherheitsprüfung ist fehlgeschlagen, weil das Browser-Cookie fehlte. Bitte starte die Verbindung im selben Browser erneut.",
"state": "Die Antwort von Strava 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 von deinem eigenen Konto aus erneut.",
"nocode": "Strava hat keinen Autorisierungscode zurückgegeben. Versuche es erneut und erlaube den Zugriff im Strava-Dialog.",
"nocreds": "Strava ist auf diesem Server nicht konfiguriert. Bitte deinen Administrator, die Strava-API-Zugangsdaten hinzuzufügen.",
"token": "Der Token-Austausch mit Strava 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."
},
"garminInfo": {
"title": "Garmin",
"body": "Garmin hat hier keine direkte Verbindung. Verbinde über Apple Health (iOS) oder Google Health Connect (Android). Garmins proprietäre Werte — Body Battery, Training Load, HRV-Status, VO₂max — werden von Garmin an keine der beiden Plattformen weitergegeben.",
"docsLink": "Zur Anleitung"
}
},
"admin": {
"title": "Administration",
"subtitle": "Systemstatus, Nutzer 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": "Nutzer",
"measurementsCount": "Messwerte",
"activeTokens": "Aktive API-Tokens",
"activeSessions": "Aktive Sessions",
"loadingStatus": "Status wird geladen…",
"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 Nutzer registrieren.",
"registrationOpenHint": "Die Registrierung ist offen — jeder, der diese Instanz erreichen kann, kann ein Konto anlegen. Schließe sie hier, sobald alle ein Konto haben.",
"defaultLanguage": "Standard-Sprache",
"defaultLanguageDescription": "Wird für neue Nutzer und als Fallback verwendet.",
"defaultUserTimezone": "Standard-Zeitzone für neue Konten",
"defaultUserTimezoneDescription": "Wird für neue Konten ohne erkannte Browser-Zeitzone verwendet. Bestehende Nutzer sind nicht betroffen.",
"defaultUserTimezoneFallback": "Europe/Berlin (Standard)",
"servicesGlobal": "Dienste (global)",
"servicesGlobalDescription": "Deaktivierte Dienste stehen keinem Nutzer zur Verfügung.",
"telegramGlobal": "Telegram-Benachrichtigungen erlauben.",
"ntfyGlobal": "ntfy-Benachrichtigungen erlauben.",
"webPushGlobal": "Browser-Push-Benachrichtigungen erlauben.",
"moodLogGlobal": "moodLog-Erinnerungen erlauben.",
"integrationWebPush": "Web Push",
"offlineGeoLabel": "Geodaten",
"offlineGeoEnabled": "Offline (GeoLite2)",
"offlineGeoFallback": "Online ({host}) — 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",
"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."
}
},
"modules": {
"title": "Modulverfügbarkeit",
"description": "Schalte ein Modul für den gesamten Server ab. Ein hier deaktiviertes Modul ist für jedes Konto aus – unabhängig von den persönlichen Einstellungen. Kerndaten (Gewicht, Blutdruck, Puls, Medikamente) sind immer aktiv und lassen sich nicht abschalten.",
"saveError": "Modulverfügbarkeit konnte nicht aktualisiert werden."
},
"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": "Nutzerverwaltung",
"userManagementDescription": "Konten verwalten: Rollen, Passwort-Resets und erzwungene Abmeldungen.",
"userName": "Name",
"userEmail": "E-Mail",
"userRole": "Rolle",
"userPasskeys": "Passkeys",
"userCreated": "Erstellt",
"userActions": "Aktionen",
"editUser": "Nutzer bearbeiten",
"editUserTitle": "Nutzer bearbeiten: {name}",
"demoteToUser": "Zu Nutzer degradieren",
"promoteToAdmin": "Zum Admin befördern",
"toUser": "Zum Nutzer",
"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": "Nutzer werden geladen…",
"apiTokens": "API-Tokens",
"apiTokensDescription": "Alle aktiven und widerrufenen API-Tokens über alle Konten hinweg.",
"tokenUser": "Nutzer",
"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 Nutzer. Nutzerkonten 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 Nutzer unwiderruflich. Nutzerkonten, 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",
"deleteAllPromptLabel": "Tippe {token} zum Fortfahren",
"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",
"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": "Online ({host})",
"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."
},
"coach": {
"title": "Coach",
"subtitle": "Assistenz-Oberflächen, Server-Schlüssel sowie die Feedback-Qualitäts-Tabellen für Coach und Auswertungen an einem Ort."
},
"reminders": {
"title": "Erinnerungen",
"subtitle": "Schwellwerte für Medikamentenerinnerungen anpassen."
},
"users": {
"title": "Nutzer",
"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 Nutzers 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 (Nutzer-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",
"viewDetails": "Details anzeigen für {action} um {timestamp}",
"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 und Update-Status."
},
"module-availability": {
"title": "Module",
"subtitle": "Module für jedes Konto auf diesem Server aktivieren oder deaktivieren."
},
"encryption": {
"title": "Verschlüsselung",
"subtitle": "Verschlüsselungsabdeckung und Schlüsselrotations-Status für ruhende Daten.",
"loading": "Verschlüsselungsstatus wird geladen…",
"loadError": "Verschlüsselungsstatus konnte nicht geladen werden.",
"coverageTitle": "Abdeckung",
"coverageDescription": "Wie viele verschlüsselte Zeilen unter welcher Schlüssel-ID liegen. Es werden nur Schlüssel-IDs und Anzahlen gezeigt — niemals Schlüsselmaterial.",
"activeKeyId": "Aktive Schlüssel-ID",
"configuredKeys": "Konfigurierte Schlüssel",
"totalRows": "Verschlüsselte Zeilen",
"staleRows": "Zeilen nicht auf dem aktiven Schlüssel",
"safeToDropLegacy": "Alter Schlüssel kann entfernt werden",
"rotationIncomplete": "{count} Zeilen brauchen noch eine Rotation",
"rotationTitle": "Schlüsselrotation",
"rotationDescription": "Jede verschlüsselte Spalte auf den aktiven Schlüssel neu verschlüsseln. Das Kommandozeilen-Werkzeug bleibt der kanonische Weg; dieser Auslöser ist eine Bequemlichkeit.",
"rotationState": "Status",
"lastRun": "Letzter Lauf: {scanned} geprüft, {rotated} rotiert, {errors} Fehler.",
"rotateNow": "Jetzt rotieren",
"rotateConfirmTitle": "Den gesamten Datensatz neu verschlüsseln?",
"rotateConfirmDescription": "Verschlüsselt jede verschlüsselte Spalte auf den aktiven Schlüssel neu. Es wird nie ein Schlüssel hinzugefügt oder entfernt, und ein erneuter Lauf ist sicher. Bei großen Konten kann das eine Weile dauern.",
"cancel": "Abbrechen",
"rotateConfirm": "Rotation starten",
"rotateEnqueued": "Rotation gestartet.",
"rotateFailed": "Rotation konnte nicht gestartet werden.",
"stepUpNeeded": "Ein frischer zweiter Faktor ist erforderlich. Bestätige deinen zweiten Faktor oder nutze das Kommandozeilen-Werkzeug, falls kein zweiter Faktor eingerichtet ist.",
"cliNote": "Für diesen Knopf ist ein zweiter Faktor nötig. Betreiber ohne zweiten Faktor rotieren mit scripts/rotate-encryption-key.ts.",
"columnsTitle": "Abdeckung pro Spalte",
"columnsDescription": "Jede verschlüsselte Spalte mit ihren Zeilenzahlen auf dem aktiven Schlüssel gegenüber älteren Schlüsseln.",
"colColumn": "Spalte",
"colTotal": "Gesamt",
"colActive": "Auf aktivem Schlüssel",
"colStale": "Veraltet",
"state": {
"idle": "Bereit",
"running": "Läuft",
"completed": "Abgeschlossen",
"failed": "Fehlgeschlagen"
}
}
},
"carrier": "Netzbetreiber",
"mfaRequired": "Zweiten Faktor verlangen",
"mfaRequiredDescription": "Jedes Konto ohne aktiven zweiten Faktor wird nach der Anmeldung zur Einrichtung geleitet. Das fordert Web-Nutzer zur Einrichtung auf – es blockiert jedoch keinen direkten API- oder nativen (Bearer-)Zugriff für noch nicht eingerichtete Konten.",
"mfaEnforcedOn": "MFA an",
"mfaEnforcedOff": "MFA aus",
"mfaEnforcedOnHint": "Für diesen Nutzer ist ein zweiter Faktor erforderlich. Klicken, um die Anforderung aufzuheben.",
"mfaEnforcedOffHint": "Einen zweiten Faktor für diesen Nutzer verlangen.",
"copyIp": "IP-Adresse kopieren",
"ipCopied": "IP-Adresse kopiert",
"copyFailed": "Kopieren fehlgeschlagen.",
"documentMaxFile": "Upload-Limit für Dokumente",
"documentMaxFileDescription": "Maximale Dateigröße im Dokumenten-Bestand (1–100 MB).",
"documentQuota": "Speicherkontingent für Dokumente",
"documentQuotaDescription": "Standard-Speicherplatz pro Konto für Dokumente (0,1–1024 GB).",
"userDocumentQuota": "Abweichendes Dokumenten-Kontingent",
"userDocumentQuotaDefault": "Standard",
"userDocumentQuotaHint": "Leer lassen, um den Instanz-Standard zu verwenden.",
"centralCodex": {
"title": "Gemeinsame KI-Verbindung",
"description": "Verbinde ein angemeldetes ChatGPT-Konto, das jede Nutzerin und jeder Nutzer dieses Servers für KI-Funktionen aktivieren kann.",
"honesty": "Dies ist ein einzelnes gemeinsames, angemeldetes KI-Konto — kein API-Schlüssel. Alle, die zustimmen, senden Anfragen darüber, sodass die Stunden- und Wochenlimits des Kontos unter ihnen geteilt werden; dieselben Limits speisen bereits den Coach. Abo-Anbieter dürfen die Inhalte zur Verbesserung ihrer Modelle verwenden, und keine Auftragsverarbeitungsvereinbarung deckt dies ab — daher ist es nie Standard und steht beim Lesen von Dokumenten hinter Anbietern ohne Training. Verbinde nur ein Konto, das du auf diese Weise teilen möchtest.",
"statusConnected": "Verbunden",
"statusDisconnected": "Nicht verbunden",
"statusExpired": "Abgelaufen",
"connectButton": "ChatGPT-Konto verbinden",
"disconnectButton": "Trennen",
"connectedSince": "Verbunden seit {when}",
"connected": "Gemeinsame KI-Verbindung verknüpft",
"disconnected": "Gemeinsame KI-Verbindung entfernt",
"error": "Etwas ist schiefgelaufen — bitte erneut versuchen"
}
},
"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."
},
"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."
},
"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."
}
},
"notifications": {
"title": "Benachrichtigungen",
"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 unter Einstellungen → Integrationen.",
"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.",
"suggestionsLabel": "Beispielvorschläge",
"suggestionsDesc": "Zeigt auf dem Coach-Bildschirm gelegentlich eine fertige Beispielfrage.",
"suggestionsAria": "Beispiel-Coach-Vorschläge umschalten",
"aiComposedLabel": "Den Coach den Anstoß formulieren lassen",
"aiComposedDesc": "Wenn ein Anbieter verfügbar ist, formuliert das Modell den proaktiven Anstoß statt der festen Vorlage. Standardmäßig aus.",
"aiComposedAria": "KI-formulierten proaktiven Anstoß umschalten"
},
"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",
"eventCoachNudge": "Coach-Hinweis",
"eventCoachNudgeDesc": "Gelegentlicher Hinweis deines Coaches, wenn deine jüngsten Verläufe einen Check-in nahelegen.",
"eventMeasurementReminder": "Mess-Erinnerung",
"eventMeasurementReminderDesc": "Wird gesendet, wenn eine erfasste Messung fällig ist.",
"eventMedicationIntakeSync": "Einnahme-Synchronisierung",
"eventMedicationIntakeSyncDesc": "Geräteübergreifende Aktualisierung, wenn eine Dosis protokolliert, eingenommen oder übersprungen wird.",
"eventDailyBriefing": "Täglicher Überblick",
"eventDailyBriefingDesc": "Eine ruhige Morgenzusammenfassung deines Tages. Standardmäßig aus, bis du sie aktivierst.",
"security": {
"newDeviceTitle": "Neue Anmeldung bei deinem Konto",
"newDeviceBody": "Eine neue Anmeldung von {device} ({location}). Falls du das nicht warst, ändere sofort dein Passwort.",
"unknownLocation": "unbekannter Ort"
},
"loginRequired": "Bitte melde dich an, um Benachrichtigungen zu verwalten.",
"someChannelsGloballyDisabled": "Ein oder mehrere Kanäle sind in den Einstellungen deaktiviert und erhalten keine Benachrichtigungen.",
"reminderSettingsLink": "Erinnerungseinstellungen",
"channelsLink": "Kanäle"
},
"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",
"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"
}
},
"edit": {
"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",
"validationOrder": "Der Minimalwert muss unter dem Maximalwert liegen.",
"validationBounds": "Werte innerhalb des unten angegebenen Bereichs eingeben."
},
"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",
"belowTypicalRange": "Unter dem typischen Bereich",
"elevated": "Erhöht",
"aboveTypicalRange": "Über dem typischen Bereich",
"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.",
"moodLogged": "Notiert: {score}/5",
"moodNotePrompt": "Kurze Notiz hinzufügen (optional).",
"moodNoteSaved": "Notiz gespeichert.",
"moodNoteExpired": "Diese Abfrage ist abgelaufen.",
"remindLater": "Erinnerung um {duration} verschoben.",
"measurementDone": "Als erledigt markiert.",
"measurementNotFound": "Erinnerung nicht gefunden.",
"buttonMoodNote": "Notiz…",
"buttonLater": "Später",
"buttonDone": "Erledigt",
"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",
"measureValuePrompt": "Antworte mit dem Wert, um ihn zu speichern (optional).",
"buttonMeasureValue": "Wert…",
"measureValueSaved": "Messwert gespeichert.",
"measureValueInvalid": "Antworte mit einer Zahl, um einen Messwert zu speichern.",
"measureValueOutOfRange": "Dieser Wert liegt außerhalb des plausiblen Bereichs.",
"measureValueExpired": "Diese Aufforderung ist abgelaufen."
},
"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}",
"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": {
"greetingMorning": "Guten Morgen",
"greetingMorningNamed": "Guten Morgen, {name}",
"greetingHey": "Hey",
"greetingHeyNamed": "Hey {name}",
"complianceBody": "Deine Einnahmen sind diese Woche etwas durcheinandergeraten. Wenn du magst, schauen wir gemeinsam, was es dir leichter machen würde.",
"bpBody": "Dein Blutdruck lag diese Woche etwas über deinem gewohnten Bereich. Wann immer du möchtest, sehe ich mir das gern mit dir an.",
"scoreBody": "Deine Erholung lässt seit ein paar Tagen etwas nach. Wenn dich interessiert, was dahintersteckt, bin ich da.",
"selfContextBody": "Deine Selbstauskunft ist länger nicht aktualisiert. Wenn du einen Moment hast, hilft mir eine Auffrischung, dich besser zu verstehen.",
"weightBody": "Dein Gewicht hat sich zuletzt etwas von deinem Zielbereich entfernt. Wenn du magst, ziehen wir in Ruhe gemeinsam Bilanz.",
"sleepDebtBody": "Einige deiner Nächte waren diese Woche recht kurz. Wenn du willst, suchen wir gemeinsam nach einem Muster.",
"measurementGapBody": "Dein Protokoll ist seit etwa einer Woche still. Wann immer es dir passt, hilft ein kurzer Austausch beim Wiedereinstieg.",
"focusNote": "Das passt auch zu dem, was du selbst im Blick behalten möchtest.",
"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.",
"unlock": {
"title": "Passphrase eingeben",
"description": "Diese geteilte Gesundheitsakte ist geschützt. Geben Sie die erhaltene Passphrase ein, um sie anzuzeigen.",
"label": "Passphrase",
"error": "Diese Passphrase ist nicht korrekt.",
"submit": "Entsperren"
},
"loadError": {
"title": "Diese geteilte Ansicht konnte nicht geladen werden",
"description": "Beim Öffnen dieser geteilten Gesundheitsdaten ist ein Fehler aufgetreten. Der Link ist möglicherweise abgelaufen, oder es lag ein vorübergehendes Problem vor. Versuche es erneut oder bitte die Person, die den Link geteilt hat, um einen neuen.",
"retry": "Erneut versuchen"
},
"documents": {
"title": "Dokumente",
"untitled": "Unbenanntes Dokument",
"download": "Herunterladen",
"attachmentHint": "Diese Datei wird auf Ihr Gerät heruntergeladen (keine Vorschau in der Seite).",
"exifNote": "Kamera-Metadaten (EXIF/GPS) wurden aus geteilten JPEG-, PNG- und WebP-Bildern entfernt."
}
},
"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).",
"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",
"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",
"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",
"periodOverdue": "Deine Periode ist später als üblich – die Tageszählung pausiert, bis die nächste Periode erfasst ist.",
"logPeriodCta": "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…",
"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.",
"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",
"nextPeriodWindow": "{low} – {high}",
"fertileWindow": "Fruchtbares Fenster",
"ovulation": "Geschätzter Eisprung",
"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.",
"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",
"saveError": "Konnte nicht gespeichert werden. Versuch es erneut.",
"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",
"phaseDayHeader": "Tag {day} · {phase}",
"bbtHint": "Miss sie morgens als Erstes, noch vor dem Aufstehen."
},
"settings": {
"title": "Zyklus-Einstellungen",
"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.",
"secondarySymptomCitation": "Mehr zur Methode (Studie)",
"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.",
"saved": "Einstellungen gespeichert",
"saveError": "Konnte nicht gespeichert werden. Versuch es erneut.",
"save": "Speichern",
"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."
},
"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"
},
"fieldInfo": {
"bbt": "Deine Ruhetemperatur, morgens als Erstes vor dem Aufstehen gemessen. Nach dem Eisprung steigt sie leicht an (etwa 0,2–0,3 °C).",
"bbtLabel": "Was ist die Basaltemperatur?",
"mucus": "Der Ausfluss verändert sich im Zyklus – von trocken oder klebrig zu cremig, dann wässrig und spinnbar rund um die fruchtbarsten Tage.",
"mucusLabel": "Was ist Zervixschleim?",
"ovulationTest": "Ein Urintest für zu Hause, der den LH-Anstieg erkennt – den Hormonschub etwa 24–36 h vor dem Eisprung. Ein positives Ergebnis markiert die fruchtbarste Phase.",
"ovulationTestLabel": "Was ist ein Ovulationstest?",
"spotting": "Leichte Blutung außerhalb der Periode.",
"spottingLabel": "Was ist Schmierblutung zwischen den Perioden?",
"pregnancyTest": "Ergebnis eines Schwangerschaftstests (hCG) für zu Hause.",
"pregnancyTestLabel": "Was ist ein Schwangerschaftstest?",
"progesteroneTest": "Ein Test, der bestätigt, dass der Eisprung stattgefunden hat – das Progesteron steigt danach an.",
"progesteroneTestLabel": "Was ist ein Progesterontest?",
"intercourse": "Ob an diesem Tag Geschlechtsverkehr stattgefunden hat.",
"intercourseLabel": "Was erfasst Geschlechtsverkehr?",
"protected": "Ob beim Verkehr verhütet wurde.",
"protectedLabel": "Was bedeutet geschützt?"
}
},
"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",
"valueRange": "Wert",
"valueMin": "Min.",
"valueMax": "Max.",
"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",
"deleteConfirmTitle": "Erinnerung löschen?",
"deleteConfirmDescription": "Diese Vorsorge-Erinnerung wird dauerhaft gelöscht.",
"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",
"customInterval": "Individuell (alle N Tage)",
"rruleOption": "Eigene Regel (RRULE)"
},
"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",
"FAT_MASS": "Fettmasse",
"FAT_FREE_MASS": "Fettfreie Masse",
"MUSCLE_MASS": "Muskelmasse",
"LEAN_BODY_MASS": "Magermasse",
"BONE_MASS": "Knochenmasse",
"TOTAL_BODY_WATER": "Körperwasser",
"VISCERAL_FAT": "Viszeralfett",
"BODY_MASS_INDEX": "Body-Mass-Index (BMI)",
"WAIST_CIRCUMFERENCE": "Taillenumfang",
"PHQ9_SCORE": "PHQ-9 · Stimmung",
"GAD7_SCORE": "GAD-7 · Sorgen",
"WHO5_SCORE": "WHO-5 · Wohlbefinden",
"SCI_SCORE": "SCI · Schlaf"
},
"typeGroups": {
"vitals": "Vitalwerte",
"bodyComposition": "Körperzusammensetzung",
"mentalWellbeing": "Seelisches Wohlbefinden"
},
"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",
"createTitle": "Neue Erinnerung",
"editTitle": "Erinnerung bearbeiten",
"customInterval": "Wiederholen alle (Tage)",
"rrule": "Wiederholungsregel (RRULE)",
"rruleHint": "RFC-5545, z. B. FREQ=YEARLY für eine jährliche Untersuchung.",
"firstDue": "Erste Fälligkeit (optional)"
},
"pushTitle": "Vorsorge-Erinnerung",
"pushBody": "Fällig: {label}",
"pushLocation": "(bei {location})",
"edit": "Bearbeiten",
"originCoach": "Coach",
"until": "Bis {date}",
"selfPlanned": "Selbstgeplant",
"captureValue": "Wert erfassen",
"measureNow": "Jetzt messen",
"startCheckIn": "Check-in starten",
"nextDueLabel": "Nächste Fälligkeit:",
"lastDoneLabel": "Zuletzt erledigt:",
"customize": "Vorsorge anpassen",
"adherence": {
"label": "Im Intervall",
"onTrack": "Im Plan",
"due": "Jetzt fällig"
},
"capture": {
"title": "Messwert erfassen",
"description": "Wert eintragen; die Erinnerung wird als erledigt markiert."
},
"manage": {
"title": "Erinnerungen verwalten",
"description": "Einzelne Erinnerungen aktivieren oder deaktivieren.",
"empty": "Noch keine Erinnerungen zum Anpassen."
},
"dashboard": {
"empty": "Keine anstehenden Vorsorge-Erinnerungen.",
"openLink": "Vorsorge öffnen"
},
"showMeasurements": "Messergebnisse anzeigen",
"loadError": "Erinnerungen konnten nicht geladen werden."
},
"moduleList": {
"viewToggleLabel": "Ansicht",
"viewCards": "Kartenansicht",
"viewList": "Listenansicht",
"viewHeading": "Ansicht",
"viewDescription": "Lege fest, ob die Einträge als Karten oder als kompakte Liste angezeigt werden.",
"reorder": {
"heading": "Reihenfolge",
"description": "Ziehe die Einträge, um ihre Reihenfolge festzulegen.",
"empty": "Noch keine Einträge zum Sortieren."
}
},
"labs": {
"title": "Laborwerte",
"subtitle": "Blutwerte und Biomarker",
"addResult": "Wert 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} Messungen",
"deleteConfirmTitle": "Laborwert löschen?",
"deleteConfirmDescription": "Dieser Laborwert wird dauerhaft gelöscht.",
"deletedToast": "Wert gelöscht",
"deleteError": "Wert konnte nicht gelöscht werden",
"loadError": "Laborwerte konnten nicht geladen werden",
"customize": "Laborwerte anpassen",
"localOcr": {
"heading": "Scans auf diesem Gerät lesen",
"description": "Ermöglicht das Scannen eines Laborbefunds, auch wenn dein KI-Anbieter keine Bilder lesen kann: Das Foto wird auf deinem Gerät gelesen und nur der erkannte Text an deinen Anbieter gesendet. Weniger genau – prüfe jeden Wert vor dem Speichern."
},
"sort": {
"heading": "Sortierung",
"label": "Reihenfolge der Werte",
"recentDesc": "Neueste Messung zuerst",
"recentAsc": "Älteste Messung zuerst",
"alphaAsc": "Name (A–Z)",
"alphaDesc": "Name (Z–A)",
"manual": "Manuell sortieren",
"hint": "Bei manueller Sortierung kannst du die Biomarker unten in deine eigene Reihenfolge bringen."
},
"range": {
"inRange": "Im Bereich",
"below": "Unter Bereich",
"above": "Über Bereich"
},
"form": {
"value": "Wert",
"takenAt": "Probendatum",
"note": "Notiz",
"notePlaceholder": "Optionaler Kontext zu diesem Wert",
"requiredError": "Bitte einen Wert eingeben.",
"save": "Speichern",
"saveAndAddAnother": "Speichern & nächsten Wert",
"savedToast": "Wert gespeichert",
"saveError": "Wert konnte nicht gespeichert werden",
"biomarker": "Biomarker",
"biomarkerPlaceholder": "Biomarker auswählen",
"defineNew": "+ Neuen Biomarker hinzufügen",
"noBiomarkersHint": "Lege zuerst einen Biomarker an, um einen Wert zu erfassen.",
"pickBiomarkerError": "Bitte zuerst einen Biomarker auswählen.",
"resultType": "Ergebnistyp",
"numeric": "Numerisch",
"qualitative": "Qualitativ",
"qualitativeResult": "Ergebnis",
"qualitativePlaceholder": "z. B. negativ",
"qualNegative": "negativ",
"qualPositive": "positiv",
"qualBorderline": "grenzwertig"
},
"backToLabs": "Zurück zu den Laborwerten",
"hasNote": "Notiz",
"editTitle": "Wert bearbeiten",
"editDescription": "Wert, Datum oder Notiz dieser Messung korrigieren.",
"editedToast": "Wert aktualisiert",
"editError": "Wert konnte nicht aktualisiert werden",
"editTimestampError": "Bitte ein gültiges Datum eingeben.",
"editReading": "Wert bearbeiten",
"deleteReading": "Wert löschen",
"restoredToast": "Wert wiederhergestellt",
"restoreError": "Wert konnte nicht wiederhergestellt werden",
"detail": {
"emptyTitle": "Noch keine Werte",
"emptyDescription": "Füge einen Wert hinzu, um diesen Biomarker über die Zeit zu verfolgen.",
"title": "Biomarker",
"genericDescription": "Ein Laborwert, den du verfolgst. Erfasse Messwerte, um den Verlauf gegenüber dem Referenzbereich zu sehen.",
"valuesTitle": "{marker} — alle Werte",
"valuesDescription": "Jeder Messwert für diesen Biomarker. Bearbeite oder entferne einen Eintrag direkt.",
"backToMarker": "Zurück zu {marker}",
"latestResult": "Letztes Ergebnis"
},
"chart": {
"empty": "Keine Werte in diesem Zeitraum.",
"valueLabel": "Wert",
"range": {
"30": "30 T",
"90": "90 T",
"365": "1 J",
"all": "Alle"
}
},
"biomarker": {
"manageTitle": "Biomarker",
"managerDescription": "Marker einmal definieren — Einheit und Bereich gelten für jede Messung.",
"define": "Hinzufügen",
"defineFirst": "Ersten Biomarker hinzufügen",
"defineTitle": "Biomarker hinzufügen",
"defineDescription": "Name, Einheit und Referenzbereich einmalig festlegen. Beim Erfassen wählst du nur den Marker.",
"editTitle": "Biomarker bearbeiten",
"edit": "Bearbeiten",
"delete": "Löschen",
"deletedToast": "Biomarker gelöscht",
"deleteError": "Biomarker konnte nicht gelöscht werden",
"deleteConfirmTitle": "Biomarker löschen?",
"deleteConfirmDescription": "Der Biomarker und alle erfassten Werte werden dauerhaft gelöscht. Dies kann nicht rückgängig gemacht werden.",
"emptyTitle": "Noch keine Biomarker",
"emptyDescription": "Lege Marker wie LDL oder HbA1c an, um Werte zu erfassen.",
"loadError": "Biomarker konnten nicht geladen werden",
"noRange": "Kein Referenzbereich",
"form": {
"seedLabel": "Von einem gängigen Marker starten",
"seedPlaceholder": "Marker wählen (optional)",
"seedHint": "Eine Auswahl füllt die Felder unten — passe den Bereich an dein Labor an.",
"name": "Name",
"namePlaceholder": "z. B. LDL-Cholesterin",
"unit": "Einheit",
"unitPlaceholder": "z. B. mg/dl",
"panel": "Panel",
"panelPlaceholder": "z. B. Lipide",
"lowerBound": "Referenz unten",
"upperBound": "Referenz oben",
"lowerPlaceholder": "Untere Grenze",
"upperPlaceholder": "Obere Grenze",
"context": "Kontext",
"contextPlaceholder": "Optionale Notiz zu diesem Marker",
"rangeHint": "Beide Grenzen sind optional — eine leer lassen für einen offenen Bereich (z. B. LDL < 116).",
"requiredError": "Name und Einheit sind erforderlich.",
"rangeOrderError": "Die untere Grenze darf die obere nicht überschreiten.",
"save": "Biomarker speichern",
"savedToast": "Biomarker gespeichert",
"updatedToast": "Biomarker aktualisiert",
"saveError": "Biomarker konnte nicht gespeichert werden"
},
"hide": "Ausblenden",
"unhide": "Wiederherstellen",
"hiddenToast": "Biomarker ausgeblendet",
"unhiddenToast": "Biomarker wiederhergestellt",
"hideError": "Biomarker konnte nicht aktualisiert werden",
"allHidden": "Alle Biomarker sind ausgeblendet.",
"hiddenSection": "Ausgeblendet"
},
"catalog": {
"total-cholesterol": "Gesamtcholesterin",
"ldl": "LDL-Cholesterin",
"hdl": "HDL-Cholesterin",
"triglycerides": "Triglyceride",
"fasting-glucose": "Nüchternglukose",
"hba1c": "HbA1c",
"tsh": "TSH",
"ft3": "Freies T3",
"ft4": "Freies T4",
"ferritin": "Ferritin",
"transferrin-saturation": "Transferrinsättigung",
"vitamin-d": "Vitamin D (25-OH)",
"vitamin-b12": "Vitamin B12",
"folate": "Folsäure",
"hs-crp": "hs-CRP",
"creatinine": "Kreatinin",
"egfr": "eGFR",
"alt": "ALT (GPT)",
"ast": "AST (GOT)",
"ggt": "GGT",
"sodium": "Natrium",
"potassium": "Kalium",
"hemoglobin": "Hämoglobin",
"hematocrit": "Hämatokrit",
"wbc": "Leukozyten",
"platelets": "Thrombozyten",
"panel": {
"lipids": "Lipide",
"glucose": "Glukosestoffwechsel",
"thyroid": "Schilddrüse",
"iron": "Eisen",
"vitamins": "Vitamine",
"inflammation": "Entzündung",
"renal": "Niere",
"liver": "Leber",
"electrolytes": "Elektrolyte",
"bloodCount": "Blutbild"
},
"desc": {
"total-cholesterol": "Das Gesamtcholesterin ist die Summe des Cholesterins über alle Lipoprotein-Partikel im Blut, einschließlich der LDL-, HDL- und Remnant-Fraktion. Cholesterin selbst ist ein unverzichtbarer Baustein für Zellmembranen, Hormone und Gallensäuren. Als einzelner Wert bleibt es ein grobes Maß, denn sowohl ein hoher HDL- als auch ein hoher LDL-Anteil heben die Summe – deshalb liest man es meist gemeinsam mit den Einzelfraktionen. Erfasst wird es vor allem im Rahmen der langfristigen kardiovaskulären Risikoeinschätzung.",
"ldl": "Das LDL-Cholesterin ist das von Low-Density-Lipoprotein-Partikeln transportierte Cholesterin – die Fraktion, die Cholesterin zu den Geweben bringt, es aber auch in den Gefäßwänden ablagern kann. Über Jahre trägt diese Ablagerung zur arteriosklerotischen Plaque bei, weshalb LDL einer der am genauesten beobachteten Lipidmarker ist. Eine geringere langfristige Belastung geht in der Regel mit einem niedrigeren kardiovaskulären Risiko einher. Bewertet wird es nach Risikokategorie, nicht gegen einen festen Normwert.",
"hdl": "Das HDL-Cholesterin ist das von High-Density-Lipoprotein-Partikeln transportierte Cholesterin, die überschüssiges Cholesterin aus den Geweben aufnehmen und zur Wiederverwertung oder Ausscheidung zur Leber zurückführen. Wegen dieser Transportfunktion wird es oft als die schützende Fraktion bezeichnet. Sehr niedrige Werte gehen tendenziell mit höherem kardiovaskulärem Risiko einher; ein künstliches Anheben hat das Risiko jedoch nicht zuverlässig gesenkt, weshalb man es als Marker und nicht als Zielgröße liest. In der Regel wird es zusammen mit LDL und Triglyzeriden beurteilt.",
"triglycerides": "Triglyzeride sind die wichtigste Form von Fett im Blut, die sowohl aus der Nahrung stammt als auch von der Leber gebildet wird, und sie dienen als zentraler Energiespeicher. Nach Mahlzeiten steigen die Werte, daher wird die Probe für die Vergleichbarkeit meist nüchtern entnommen. Dauerhaft hohe Triglyzeride werden mit metabolischem und kardiovaskulärem Risiko in Verbindung gebracht und treten häufig gemeinsam mit Insulinresistenz und niedrigem HDL auf. Sie werden als ein Bestandteil des gesamten Lipidbilds gelesen.",
"fasting-glucose": "Der Nüchternblutzucker ist die Zuckerkonzentration im Blut nach einer nächtlichen Nüchternphase und spiegelt wider, wie der Körper seinen Grundblutzucker ohne kürzliche Nahrungsaufnahme hält. Glukose ist der wichtigste unmittelbare Brennstoff des Körpers, und Insulin hält sie normalerweise in einem engen Bereich. Eine Nüchternmessung schließt den Effekt kürzlicher Mahlzeiten aus und ist damit ein Standardscreening dafür, wie die Glukoseregulation funktioniert. Er gehört zu den Markern, mit denen die Stoffwechselgesundheit über die Zeit beurteilt wird.",
"hba1c": "Der HbA1c ist der Anteil des Hämoglobins in den roten Blutkörperchen, der an Glukose gebunden ist und sich im Verhältnis zur durchschnittlichen Blutzuckerbelastung anreichert. Da rote Blutkörperchen etwa drei Monate leben, gibt er den durchschnittlichen Blutzucker der vorangegangenen zwei bis drei Monate wieder und nicht einen einzelnen Augenblick. Das macht ihn zu einem stabilen, mahlzeitenunabhängigen Maß der Blutzuckereinstellung. Seine Aussagekraft kann durch Erkrankungen beeinträchtigt sein, die die Lebensdauer der roten Blutkörperchen verändern.",
"tsh": "Das TSH (Thyreoidea-stimulierendes Hormon) wird von der Hirnanhangdrüse ausgeschüttet, um die Schilddrüse zur Hormonproduktion anzuregen, und es passt sich nach oben oder unten an, um diese im Gleichgewicht zu halten. Aufgrund dieses Regelkreises ist das TSH das empfindlichste Erstlinien-Screening der Schilddrüsenfunktion: Es bewegt sich meist, bevor die Schilddrüsenhormone selbst abweichen. Ein erhöhter oder erniedrigter Wert deutet auf eine Unter- oder Überfunktion hin und führt in der Regel zur direkten Bestimmung der Schilddrüsenhormone. Schwangerschaft und Alter verschieben den erwarteten Bereich.",
"ft3": "Das freie T3 (Trijodthyronin) ist die ungebundene, biologisch aktive Form des wirksameren Schilddrüsenhormons – der Anteil, der den Geweben zur Verfügung steht. Der größte Teil des zirkulierenden T3 ist an Trägerproteine gebunden und inaktiv, sodass der freie Anteil die tatsächliche Hormonverfügbarkeit widerspiegelt. Gemessen wird es zur Beurteilung der Schilddrüsenfunktion, besonders gemeinsam mit TSH und freiem T4, wenn Befunde unklar sind. Die Werte sind stark assayabhängig und werden im klinischen Zusammenhang gelesen.",
"ft4": "Das freie T4 (Thyroxin) ist die ungebundene Form des wichtigsten Hormons, das die Schilddrüse ins Blut abgibt; es dient als Reservoir, das die Gewebe bei Bedarf in das aktivere T3 umwandeln. Der freie Anteil spiegelt wider, was dem Körper tatsächlich zur Verfügung steht, unabhängig von der Menge der Trägerproteine. In der Regel wird es zusammen mit dem TSH bestimmt, um Probleme der Schilddrüse von Störungen der hypophysären Steuerung zu unterscheiden. Schwangerschaft und bestimmte Medikamente können es verschieben.",
"ferritin": "Ferritin ist das wichtigste Eisenspeicherprotein des Körpers, und sein Blutwert spiegelt grob die gesamten Eisenreserven wider. Ein niedriger Wert deutet auf erschöpfte Speicher hin, ein hoher Wert kann eine Eisenüberladung anzeigen – oder schlicht eine Entzündung, denn Ferritin steigt auch als Akute-Phase-Protein. Aus diesem Grund wird es oft zusammen mit anderen Eisenmarkern und Entzündungszeichen beurteilt. Es ist eines der zentralen Maße zur Einschätzung des Eisenstatus.",
"transferrin-saturation": "Die Transferrinsättigung ist der Prozentsatz des Transferrins – des Proteins, das Eisen durch das Blut transportiert –, der aktuell mit Eisen beladen ist. Sie verknüpft die Menge des zirkulierenden Eisens mit der Eisentransportkapazität und liefert damit eine Momentaufnahme der Eisenverfügbarkeit, die Ferritins Blick auf die Speicher ergänzt. Eine niedrige Sättigung deutet auf einen Eisenmangel hin, ein hoher Wert kann eine Überladung anzeigen. Sie wird zusammen mit Ferritin und dem gesamten Eisenpanel gelesen.",
"vitamin-d": "Vitamin D wird als 25-Hydroxy-Vitamin-D gemessen, der zirkulierenden Speicherform und dem Standardmarker des gesamten Vitamin-D-Status. Der Körper bildet es in der dem Sonnenlicht ausgesetzten Haut und nimmt einen Teil über die Nahrung auf; es unterstützt den Kalziumhaushalt, die Knochengesundheit und die Immunfunktion. Die Werte schwanken mit Jahreszeit, geografischer Breite, Hauttyp und Nahrungsergänzung. Erfasst wird es, um über die Zeit einzuschätzen, ob die Speicher ausreichend gefüllt sind.",
"vitamin-b12": "Vitamin B12 (Cobalamin) ist ein essenzielles Vitamin, das vor allem aus tierischen Lebensmitteln stammt und größtenteils in der Leber gespeichert wird. Es wird für die Bildung roter Blutkörperchen, die DNA-Synthese und die Gesundheit des Nervensystems benötigt. Ein länger anhaltender Mangel – durch geringe Zufuhr oder gestörte Aufnahme – kann zu einer Blutarmut und nervenbedingten Beschwerden führen. Gemessen wird es zur Beurteilung des Ernährungsstatus, insbesondere dort, wo Zufuhr oder Aufnahme eingeschränkt sein können.",
"folate": "Folat (Vitamin B9) ist ein B-Vitamin, das in grünem Blattgemüse, Hülsenfrüchten und angereicherten Lebensmitteln vorkommt und für die Bildung roter Blutkörperchen und die DNA-Synthese zentral ist. Es arbeitet eng mit Vitamin B12 zusammen, und ein Mangel an einem von beiden kann eine ähnliche Form der Blutarmut hervorrufen. Eine ausreichende Folatversorgung ist besonders rund um die frühe Schwangerschaft für die gesunde Entwicklung des Kindes wichtig. Gemessen wird es zur Beurteilung des Ernährungsstatus und der Ursache bestimmter Anämien.",
"hs-crp": "Das hochsensitive CRP misst das C-reaktive Protein, einen Marker, den die Leber als Reaktion auf Entzündungen ausschüttet, mit einem Verfahren, das auf die für das kardiovaskuläre Risiko relevanten niedrigen Konzentrationen abgestimmt ist. Anders als das Standard-CRP für akute Infektionen erfasst die hochsensitive Variante die feine, chronische Entzündung, die mit Gefäßerkrankungen verbunden ist. Da jede kürzliche Infektion oder Verletzung den Wert anhebt, wird er außerhalb akuter Erkrankung beurteilt und oft mit einer Wiederholungsprobe bestätigt. Er wird als ein Beitrag zum gesamten kardiovaskulären Risiko gelesen.",
"creatinine": "Kreatinin ist ein Abfallprodukt des normalen Muskelstoffwechsels, das die Nieren mit recht gleichbleibender Rate aus dem Blut filtern. Da die Produktion verhältnismäßig konstant ist, dient der Blutwert als praktisches Maß dafür, wie gut die Nieren Abfallstoffe ausscheiden. Die Werte werden auch von Muskelmasse, Flüssigkeitshaushalt und Ernährung beeinflusst, weshalb sie meist gemeinsam mit der geschätzten Filtrationsrate beurteilt werden. Es ist ein zentraler Marker der Nierenfunktion.",
"egfr": "Die eGFR (geschätzte glomeruläre Filtrationsrate) schätzt, wie viel Blut die Nieren pro Minute filtern, berechnet aus dem Kreatinin zusammen mit Alter und Geschlecht. Sie übersetzt einen rohen Kreatininwert in ein unmittelbarer verständliches Maß der Nierenfunktion. Eine über die Zeit sinkende eGFR ist der wichtigste Weg, um chronische Nierenveränderungen einzustufen und zu verfolgen. Als Schätzwert wird sie als Trend und nicht als einzelner exakter Zahlenwert gelesen.",
"alt": "Die ALT (Alanin-Aminotransferase) ist ein vorwiegend in den Leberzellen konzentriertes Enzym, das ins Blut freigesetzt wird, wenn diese Zellen belastet oder geschädigt sind. Da sie verhältnismäßig leberspezifisch ist, gehört sie zu den wichtigsten Markern, um eine Leberschädigung oder -entzündung zu erkennen. Die Werte können bei Fettleber, Virushepatitis, Alkohol oder bestimmten Medikamenten steigen. In der Regel wird sie zusammen mit der AST und den übrigen Markern des Leberpanels gelesen.",
"ast": "Die AST (Aspartat-Aminotransferase) ist ein Enzym, das in der Leber, aber auch in Muskel, Herz und roten Blutkörperchen vorkommt und bei einer Schädigung dieser Gewebe freigesetzt wird. Da sie weniger leberspezifisch ist als die ALT, werden beide gemeinsam beurteilt – ihr Verhältnis kann Hinweise auf Quelle und Art des Problems geben. Intensive körperliche Belastung oder eine Muskelverletzung können sie unabhängig von der Leber anheben. Sie ist eines der Standardenzyme des Leberpanels.",
"ggt": "Die GGT (Gamma-Glutamyltransferase) ist ein Enzym in der Leber und den Gallenwegen, das besonders bei einem gestörten Gallenfluss oder bei Alkoholexposition ansteigt. Häufig wird sie genutzt, um zu klären, warum ein anderer Lebermarker erhöht ist – etwa um eine Quelle in der Leber oder den Gallenwegen zu unterscheiden. Sie ist empfindlich, aber wenig spezifisch und wird daher im Zusammenhang mit dem übrigen Leberpanel gelesen. Sie ist einer von mehreren Markern zur Beurteilung der Leber- und Gallengesundheit.",
"sodium": "Natrium ist der wichtigste Elektrolyt in der Flüssigkeit außerhalb der Körperzellen und der zentrale Regler von Flüssigkeitshaushalt und Blutvolumen. Der Körper steuert es eng über Durst, Hormone und die Nieren, sodass der Blutwert eher das Gleichgewicht zwischen Wasser und Salz widerspiegelt als die Zufuhr allein. Abweichende Werte signalisieren meist eine Störung des Wasserhaushalts und nicht des Natriums selbst. Es ist ein Kernbestandteil des grundlegenden Stoffwechsel- und Elektrolytpanels.",
"potassium": "Kalium ist der wichtigste Elektrolyt innerhalb der Körperzellen und für die Nervenleitung und den gleichmäßigen Rhythmus des Herzmuskels unverzichtbar. Sein Blutwert wird durch die Nieren und hormonelle Signale in einem engen Bereich gehalten, da sowohl hohe als auch niedrige Werte die elektrische Aktivität des Herzens stören können. Die Werte können durch Nierenfunktion, Flüssigkeitshaushalt und mehrere gängige Medikamente beeinflusst werden. Es ist ein Kernmaß des Elektrolytpanels.",
"hemoglobin": "Hämoglobin ist das eisenhaltige Protein in den roten Blutkörperchen, das Sauerstoff in der Lunge bindet und zu den Geweben transportiert. Seine Konzentration ist das wichtigste Maß für die Sauerstofftransportkapazität des Blutes und der zentrale Marker zum Erkennen einer Blutarmut. Niedrige Werte können auf Blutverlust, Eisen- oder Vitaminmangel oder eine verringerte Bildung hinweisen, hohe Werte können auf Flüssigkeitsmangel oder sauerstoffarme Bedingungen folgen. Es ist ein Eckpfeiler des großen Blutbilds.",
"hematocrit": "Der Hämatokrit ist der Anteil der roten Blutkörperchen am Blutvolumen, ausgedrückt als Prozentwert. Er bewegt sich eng mit dem Hämoglobin und gibt einen ergänzenden Blick auf die Erythrozytenmasse und die Sauerstofftransportkapazität des Blutes. Der Flüssigkeitshaushalt beeinflusst ihn, da Veränderungen des Plasmavolumens den Anteil verschieben, selbst wenn die Zahl der roten Blutkörperchen stabil bleibt. Er wird zusammen mit dem Hämoglobin und dem übrigen Blutbild gelesen.",
"wbc": "Die Leukozytenzahl ist die Gesamtzahl der im Blut zirkulierenden Immunzellen, der mobilen Abwehr des Körpers gegen Infektionen. Sie steigt als Reaktion auf Infektion, Entzündung oder Stress und kann fallen, wenn das Knochenmark unterdrückt ist oder bei manchen Immunerkrankungen. Da sie mehrere unterschiedliche Zelltypen zusammenfasst, wird eine deutliche Veränderung oft durch ein Differenzialblutbild aufgeschlüsselt. Sie ist ein Kernbestandteil des großen Blutbilds.",
"platelets": "Thrombozyten sind kleine Zellfragmente im Blut, die sich zusammenlagern und den ersten Pfropf bilden, der eine Blutung aus einem geschädigten Gefäß stoppt. Ihre Zahl spiegelt das Gleichgewicht zwischen Bildung im Knochenmark und Verbrauch oder Abbau wider. Eine niedrige Zahl kann die Blutungsneigung erhöhen, eine hohe Zahl kann auf eine Entzündung oder andere Reize folgen. Sie sind Teil des großen Blutbilds und ein grundlegendes Maß der Gerinnungsfähigkeit.",
"apob": "Apolipoprotein B ist das Strukturprotein, das jedes der atherogenen Lipoprotein-Partikel trägt; seine Messung zählt daher diese Partikel direkt und nicht das von ihnen transportierte Cholesterin. Da auf jedem LDL-, VLDL- und verwandten Partikel genau ein ApoB-Molekül sitzt, kann es kardiovaskuläres Risiko erfassen, das ein LDL-Cholesterinwert übersieht – besonders wenn Partikelzahl und Cholesteringehalt auseinandergehen. Aus diesem Grund wird es zunehmend genutzt, um die lipidbasierte Risikoeinschätzung zu verfeinern. Beurteilt wird es zusammen mit dem üblichen Lipidpanel.",
"lp-a": "Lipoprotein(a) ist ein LDL-ähnliches Partikel mit einem zusätzlich angehefteten Protein, dessen Spiegel weitgehend genetisch festgelegt ist und ein Leben lang recht stabil bleibt. Ein erhöhtes Lp(a) ist ein unabhängiger, vererbter Risikofaktor für Herz-Kreislauf-Erkrankungen und eine Verengung der Aortenklappe. Da es sich kaum verändert, wird es meist einmal bestimmt, um das lebenslange Risiko einer Person festzulegen, statt es wiederholt zu verfolgen. Es wird in molaren Einheiten angegeben und als Teil des gesamten kardiovaskulären Risikos gelesen.",
"fasting-insulin": "Das Nüchterninsulin ist der Spiegel des Insulins – des Hormons, das Glukose aus dem Blut in die Zellen schleust –, gemessen nach einer nächtlichen Nüchternphase. Zusammen mit dem Nüchternblutzucker hilft es, die Insulinresistenz abzuschätzen, also den Zustand, in dem der Körper mehr Insulin braucht, um den Blutzucker im Bereich zu halten. Ein hohes Nüchterninsulin bei normalem Blutzucker kann ein frühes Zeichen dafür sein, dass dieser Ausgleich im Gange ist. Gelesen wird es als Teil eines Stoffwechselbilds und nicht für sich allein.",
"omega-3-index": "Der Omega-3-Index ist der Anteil von EPA und DHA – den beiden langkettigen marinen Omega-3-Fettsäuren – an den Fettsäuren in den Membranen der roten Blutkörperchen. Da rote Blutkörperchen sich langsam erneuern, spiegelt er die langfristige Omega-3-Zufuhr wider und nicht eine kürzliche Mahlzeit. Ein höherer Index wurde in Beobachtungsstudien mit einem niedrigeren kardiovaskulären Risiko in Verbindung gebracht. Er wird als stabiler Marker des Omega-3-Status verfolgt, der über Monate auf die Ernährung reagiert."
},
"apob": "Apolipoprotein B (ApoB)",
"lp-a": "Lipoprotein(a)",
"fasting-insulin": "Nüchtern-Insulin",
"omega-3-index": "Omega-3-Index"
},
"noteLoadFailed": "Notiz konnte nicht geladen werden; sie bleibt beim Speichern unverändert.",
"showingLatestOf": "Die neuesten {shown} von {total} Messwerten werden angezeigt",
"ocr": {
"scanButton": "Befund scannen",
"addScan": "Dokument scannen",
"addManual": "Wert manuell hinzufügen",
"uploadHint": "Foto oder PDF eines Laborbefunds hochladen",
"acceptWithPdf": "JPEG, PNG, WebP oder PDF",
"acceptImageOnly": "JPEG, PNG oder WebP",
"extracting": "Befund wird gelesen…",
"readingOnDevice": "Wird auf deinem Gerät gelesen…",
"localModeHint": "Wird auf deinem Gerät gelesen und als Text gesendet. Weniger genau – prüfe jeden Wert.",
"rangeFromScan": "Referenzbereich aus dem Scan übernommen",
"rangeVerify": "Referenzbereich prüfen",
"reviewTitle": "Vor dem Speichern prüfen",
"reviewHint": "Prüfe jeden Wert und speichere die gewünschten Einträge.",
"foundCount": "{count} Werte gefunden",
"confirmRow": "Diesen Wert übernehmen",
"analyteLabel": "Bezeichnung",
"resultLabel": "Ergebnis",
"valueLabel": "Wert",
"unitLabel": "Einheit",
"dateLabel": "Datum",
"refLowLabel": "Referenz unten",
"refHighLabel": "Referenz oben",
"newBiomarker": "Neuer Biomarker — wird angelegt",
"linksExisting": "Verknüpft mit vorhandenem {name}",
"duplicateWarning": "Ein passender Wert existiert bereits",
"lowConfidence": "Bitte diesen Wert überprüfen",
"lowConfidenceBadge": "Geringe Sicherheit",
"valueUnreadable": "Wert unleserlich — bitte manuell eingeben",
"saveSelected": "{count} ausgewählte speichern",
"discardAll": "Alle verwerfen",
"savedToast": "{count} Laborwerte gespeichert",
"noRows": "In diesem Befund konnten keine Werte gefunden werden.",
"nothingToSave": "Wähle mindestens einen Wert zum Speichern aus.",
"saveFailed": "Werte konnten nicht gespeichert werden. Bitte erneut versuchen.",
"providerUnsupported": "Dein KI-Anbieter kann keine Bilder lesen. Konfiguriere ein Modell mit Bildverständnis.",
"consentRequired": "Für das Scannen eines Befunds ist die Einwilligung zur KI-Verarbeitung erforderlich.",
"rateLimited": "Zu viele Scans. Bitte später erneut versuchen.",
"budgetExceeded": "Dein KI-Nutzungsbudget für heute ist erreicht.",
"fileTooLarge": "Datei ist zu groß (max. 12 MB).",
"fileType": "Lade ein JPEG, PNG, WebP oder PDF hoch.",
"extractFailed": "Der Befund konnte nicht gelesen werden. Versuche ein schärferes Foto.",
"pdfNeedsAnthropic": "PDF-Scannen benötigt einen Claude-Bildanbieter; lade stattdessen ein Foto hoch."
},
"loadMoreReadings": "Weitere Werte laden",
"documentsLink": "Befund-Dokumente",
"notLinkedYet": "Noch keinem Biomarker zugeordnet"
},
"modules": {
"cycle": {
"label": "Zyklus",
"description": "Periode, Phasen und Vorhersagen verfolgen."
},
"mood": {
"label": "Stimmung",
"description": "Tägliche Stimmung und Tags erfassen."
},
"sleep": {
"label": "Schlaf",
"description": "Schlafdauer, Phasen und Schlaf-Timeline."
},
"glucose": {
"label": "Glukose",
"description": "Blutzuckerwerte und Verläufe."
},
"workouts": {
"label": "Workouts",
"description": "Trainingseinheiten und Aktivität."
},
"recovery": {
"label": "Erholung",
"description": "Erholungs- und Belastungswerte deiner Geräte."
},
"labs": {
"label": "Laborwerte",
"description": "Laborergebnisse erfassen und im Verlauf ablegen."
},
"achievements": {
"label": "Erfolge",
"description": "Abzeichen und Serien für deine Routine."
},
"coach": {
"label": "Coach",
"description": "KI-Chat mit Bezug zu deinen Daten."
},
"insights": {
"label": "Insights",
"description": "KI-Analysen, Briefing und Korrelationen."
},
"doctorReport": {
"label": "Arztbericht",
"description": "PDF- und FHIR-Export für deine Praxis."
},
"medications": {
"label": "Medikamente",
"description": "Pläne, Einnahmen und Therapietreue."
},
"illness": {
"label": "Krankheitstagebuch",
"description": "Krankheits- und Beschwerde-Episoden mit täglichem Symptomverlauf festhalten."
},
"mcp": {
"label": "Externer Assistentenzugriff (MCP)",
"description": "Einem MCP-fähigen Assistenten Lesezugriff auf deine Gesundheitsdaten über ein begrenztes Token erlauben. Standardmäßig aus."
},
"environment": {
"label": "Umwelt",
"description": "Tägliches Wetter und Tageslicht für deinen Ort einbeziehen, um Zusammenhänge mit Stimmung, Schlaf und Vitalwerten zu erkennen. Standardmäßig aus."
},
"inboundDocuments": {
"label": "Dokumente",
"description": "Bewahre jedes medizinische Schreiben, jeden Befund und Scan an einem verschlüsselten, durchsuchbaren Ort auf — verknüpft mit deinen Erkrankungen. Standardmäßig aus."
},
"mentalHealth": {
"label": "Seelisches Wohlbefinden",
"description": "Freiwillige PHQ-9- und GAD-7-Selbsttests ergänzend zum Stimmungstagebuch. Standardmäßig aus; Antworten sind verschlüsselt und bleiben aus dem KI-Coach heraus."
},
"nutrients": {
"label": "Nährstoffzufuhr",
"description": "Speichert tägliche Mikronährstoff-Summen (Vitamine, Mineralstoffe, Wasser, Koffein) aus Apple Health. Standardmäßig aus."
}
},
"illness": {
"title": "Krankheitstagebuch",
"subtitle": "Ein rückblickendes Protokoll deiner Krankheits- und Beschwerde-Episoden.",
"settings": {
"viewDescription": "Wähle, ob Episoden als Karten oder als kompakte Liste erscheinen.",
"orderDescription": "Ziehe deine Episoden in die gewünschte Reihenfolge."
},
"customize": "Krankheitstagebuch anpassen",
"newEpisode": "Neue Episode",
"logDay": "Tag erfassen",
"markRecovered": "Als genesen markieren",
"deletedToast": "Eintrag gelöscht",
"restoreError": "Eintrag konnte nicht wiederhergestellt werden",
"onsetOn": "Begonnen am {date}",
"recoveredOn": "genesen {date}",
"status": {
"active": "Aktiv",
"ongoing": "Andauernd",
"recovered": "Genesen"
},
"empty": {
"title": "Noch keine Episoden",
"body": "Beginne eine Episode, um einen täglichen Symptomverlauf zu führen und nachzusehen, wie sie verlief."
},
"type": {
"INFECTION": "Infektion",
"ALLERGY": "Allergie",
"INJURY": "Verletzung",
"MENTAL_HEALTH": "Psychische Gesundheit",
"AUTOIMMUNE": "Autoimmun",
"CHRONIC": "Chronisch",
"OTHER": "Sonstiges"
},
"lifecycle": {
"ACUTE": "Akut",
"CHRONIC_ONGOING": "Chronisch / andauernd",
"RECURRING": "Wiederkehrend",
"FLARE": "Schub"
},
"new": {
"title": "Neue Episode",
"description": "Erfasse eine Krankheit oder Beschwerde. Tägliche Symptome kannst du danach festhalten.",
"label": "Bezeichnung",
"labelPlaceholder": "z. B. Erkältung",
"type": "Art",
"lifecycle": "Verlauf",
"onset": "Begonnen am",
"note": "Notiz",
"notePlaceholder": "Was erwähnenswert ist (verschlüsselt).",
"saveError": "Die Episode konnte nicht gespeichert werden. Bitte erneut versuchen.",
"parent": "Teil von",
"parentNone": "Nicht verknüpft",
"resolved": "Beendet am",
"resolvedHelp": "Leer lassen, solange die Episode noch andauert.",
"markOngoing": "Noch andauernd"
},
"sheet": {
"title": "{date} erfassen",
"description": "Halte die heutigen Symptome, deine Belastbarkeit und ggf. Fieber fest.",
"symptoms": "Symptome",
"functionalImpact": "Belastbarkeit",
"fever": "Temperatur",
"note": "Notiz",
"noteSet": "Gesetzt",
"notePlaceholder": "Wie sich der Tag anfühlte (verschlüsselt).",
"severityFor": "Stärke für {symptom}",
"saveError": "Der Tag konnte nicht gespeichert werden. Bitte erneut versuchen.",
"day": "Day"
},
"impact": {
"0": "Voll belastbar",
"1": "Leicht eingeschränkt",
"2": "Überwiegend ruhend",
"3": "Bettlägerig"
},
"symptom": {
"runnyNose": "Laufende Nase",
"stuffyNose": "Verstopfte Nase",
"sneezing": "Niesen",
"soreThroat": "Halsschmerzen",
"cough": "Husten",
"headache": "Kopfschmerzen",
"bodyAches": "Gliederschmerzen",
"fatigue": "Erschöpfung"
},
"correlation": {
"title": "Wie es verlief",
"learning": "Noch am Lernen — erfasse ein paar weitere Tage, um hier Muster zu sehen.",
"preOnsetTitle": "Wie es sich ankündigte",
"preOnsetBody": "Werte, die vor dem Beginn von deiner Baseline abwichen.",
"nadirTitle": "Was sich änderte",
"nadirBody": "Wie weit jeder erfasste Wert von deinem typischen Bereich abwich.",
"recoveryGapTitle": "Erholungslücke",
"recoveryGapLag": "Deine Werte normalisierten sich {days} Tage, nachdem es dir besser ging.",
"recoveryGapLead": "Deine Werte normalisierten sich {days} Tage, bevor du Genesung vermerktest.",
"recoveryGapLagSymptom": "Dir ging es {days} Tage besser, bevor deine erfassten Symptome abklangen.",
"recoveryGapLeadSymptom": "Deine erfassten Symptome klangen {days} Tage ab, bevor du Genesung vermerktest.",
"recoveryGapSame": "Deine Werte normalisierten sich am selben Tag, an dem es dir besser ging.",
"sleepContextMore": "Während dieser Episode hast du deutlich mehr geschlafen als sonst (etwa {hours} Std./Nacht).",
"sleepContextLess": "Während dieser Episode hast du deutlich weniger geschlafen als sonst (etwa {hours} Std./Nacht).",
"redFlagTitle": "Genauer ansehen",
"redFlagSpo2": "Deine Sauerstoffsättigung blieb mehrere Tage niedrig. Wenn das erneut auftritt, suche ärztliche Hilfe.",
"redFlagFever": "Du hattest anhaltend Fieber. Wenn das erneut auftritt, suche ärztliche Hilfe.",
"direction": {
"above": "über deinem Üblichen",
"below": "unter deinem Üblichen"
},
"settled": "Während dieser Episode wich nichts Auffälliges von deinem üblichen Bereich ab."
},
"insights": {
"title": "Dein Krankheitsverlauf",
"countOne": "Du hast in diesem Zeitraum 1 Episode erfasst.",
"countOther": "Du hast in diesem Zeitraum {count} Episoden erfasst.",
"typicalGap": "Typische Erholungslücke: {days} Tage zwischen Besserung und normalisierten Werten.",
"typicalGapWithDriver": "Typische Erholungslücke: {days} Tage – du fühlst dich meist besser, bevor sich {vital} normalisiert.",
"typicalGapLearning": "Noch ein paar abgeschlossene Episoden und hier erscheint eine typische Erholungslücke.",
"none": "In diesem Zeitraum keine Episoden erfasst.",
"analyze": "Erholungslücke analysieren"
},
"section": {
"active": "Aktiv",
"resolved": "Abgeschlossen"
},
"flares": {
"countOne": "1 Schub",
"countOther": "{count} Schübe"
},
"timeline": {
"title": "Tagesverlauf",
"error": "Der Verlauf konnte nicht geladen werden.",
"severity": "Stärke {severity}",
"noSymptoms": "Keine Symptome erfasst.",
"impact": "Befinden: {impact}",
"fever": "Temperatur: {value} °C",
"empty": "Noch keine Tage erfasst."
},
"loadError": "Diese Episode konnte nicht geladen werden.",
"backToList": "Zurück zum Journal",
"detail": {
"note": "Note"
},
"edit": {
"title": "Episode bearbeiten",
"description": "Aktualisiere die Details dieser Episode."
},
"menu": {
"label": "Episodenaktionen"
},
"deleteConfirm": {
"title": "Diese Episode löschen?",
"body": "„{label}“ und alle zugehörigen Tageseinträge werden entfernt. Dies kann nicht rückgängig gemacht werden."
},
"vital": {
"RESTING_HEART_RATE": "Ruheherzfrequenz",
"HEART_RATE_VARIABILITY": "Herzfrequenzvariabilität",
"RECOVERY_SCORE": "Recovery",
"OXYGEN_SATURATION": "Sauerstoffsättigung",
"BODY_TEMPERATURE": "Körpertemperatur",
"RESPIRATORY_RATE": "Atemfrequenz",
"BLOOD_PRESSURE_SYS": "Systolischer Blutdruck",
"BLOOD_PRESSURE_DIA": "Diastolischer Blutdruck",
"PULSE": "Pulse",
"WEIGHT": "Weight",
"FUNCTIONAL_IMPACT": "Funktionelle Beeinträchtigung"
},
"listLoadError": "Episoden konnten nicht geladen werden."
},
"coach": {
"reminderSuggestion": {
"title": "Erinnerung einrichten?",
"accept": "Erinnerung setzen",
"dismiss": "Jetzt nicht",
"stop": "Ich messe genug",
"accepted": "Erinnerung gesetzt",
"dismissed": "Okay, das schlage ich nicht noch einmal vor",
"stopped": "Verstanden – ich schlage keine Erinnerungen mehr vor",
"failed": "Hat nicht geklappt – bitte erneut versuchen",
"cadence": {
"weightDaily": "Wieg dich täglich, ungefähr zur selben Zeit",
"bp722": "Miss deinen Blutdruck eine Woche lang zweimal täglich",
"glucoseStructured": "Miss deine Glukose nach einem strukturierten Tagesplan"
}
},
"suggestedAction": {
"apply": "Hinzufügen",
"dismiss": "Jetzt nicht",
"applied": "Hinzugefügt",
"dismissed": "Verworfen",
"failed": "Konnte das nicht hinzufügen — bitte erneut versuchen",
"checkup": {
"title": "Vorsorge-Erinnerung hinzufügen?"
},
"note": {
"title": "Erinnerung speichern?"
},
"interval": {
"yearly": "Jedes Jahr",
"halfYearly": "Alle sechs Monate",
"quarterly": "Alle drei Monate",
"monthly": "Jeden Monat"
}
},
"settings": {
"reminderSuggestionsLabel": "Kadenz-Vorschläge",
"reminderSuggestionsDescription": "Lass den Coach gelegentlich eine evidenzbasierte Erinnerung anbieten, eine Metrik regelmäßiger zu messen."
},
"plans": {
"title": "Pläne",
"pageDescription": "Wenn-dann-Pläne aus deinen Coach-Gesprächen. Bestätige einen Vorschlag, damit der Coach ihn sich merkt.",
"proposalTitle": "Plan-Vorschlag",
"ifThen": "Wenn {cue}, dann {action}.",
"targetPrefix": "Ziel: {target}",
"reviewPrefix": "Check-in: {when}",
"accept": "Plan übernehmen",
"decline": "Ablehnen",
"accepted": "Plan übernommen — der Coach behält ihn im Blick.",
"declined": "Vorschlag abgelehnt.",
"failed": "Das hat nicht geklappt — bitte erneut versuchen.",
"markMet": "Ziel erreicht",
"abandon": "Plan beenden",
"remove": "Entfernen",
"empty": "Noch keine Pläne. Wenn du dich im Gespräch zu einer konkreten Wenn-dann-Absicht bekennst, schlägt der Coach sie hier zur Bestätigung vor.",
"groupProposed": "Vorschläge",
"groupActive": "Aktiv",
"groupPast": "Abgeschlossen",
"status": {
"proposed": "Vorgeschlagen",
"active": "Aktiv",
"met": "Erreicht",
"abandoned": "Beendet",
"review_due": "Check-in fällig",
"reviewed": "Ausgewertet"
}
}
},
"safety": {
"floor": {
"bpHighTitle": "Sehr hoher Blutdruck",
"bpHighDoctor": "Zwei aktuelle Messungen lagen bei {systolic}/{diastolic} mmHg oder höher. Ruhe dich aus, miss in einigen Minuten erneut und kontaktiere möglichst bald deine Ärztin oder deinen Arzt, wenn es so hoch bleibt.",
"bpHighEmergency": "Zwei aktuelle Messungen lagen bei {systolic}/{diastolic} mmHg oder höher und du hast Beschwerden angegeben. Bei Brustschmerz, Atemnot, Schwäche oder Seh- oder Sprachstörungen sofort den Notruf wählen.",
"bpLowTitle": "Niedriger Blutdruck",
"bpLowDoctor": "Zwei aktuelle Messungen hatten einen systolischen Wert unter {systolic} mmHg. Wenn dir schwindelig oder schummrig ist, setz oder leg dich hin und kontaktiere deine Ärztin oder deinen Arzt, wenn es anhält.",
"bpLowEmergency": "Zwei aktuelle Messungen hatten einen systolischen Wert unter {systolic} mmHg und du hast Beschwerden angegeben. Bei Ohnmachtsgefühl, Verwirrtheit oder kalter, feuchter Haut sofort den Notruf wählen.",
"glucoseLowTitle": "Niedriger Blutzucker",
"glucoseLowDoctor": "Zwei aktuelle Messungen lagen unter {threshold} {unit} ({value} {unit}). Nimm schnell wirkende Kohlenhydrate, miss in 15 Minuten erneut und kontaktiere deine Ärztin oder deinen Arzt, wenn die Tiefs anhalten.",
"glucoseLowEmergency": "Zwei aktuelle Messungen lagen unter {threshold} {unit} ({value} {unit}) und du hast Beschwerden angegeben. Behandle jetzt mit schnellem Zucker; wenn das nicht geht oder dir sehr unwohl ist, wähle den Notruf.",
"glucoseLowSevereTitle": "Sehr niedriger Blutzucker",
"glucoseLowSevereDoctor": "Zwei aktuelle Messungen lagen unter {threshold} {unit} ({value} {unit}). Behandle sofort mit schnell wirkenden Kohlenhydraten, miss in 15 Minuten erneut und kontaktiere deine Ärztin oder deinen Arzt.",
"glucoseLowSevereEmergency": "Zwei aktuelle Messungen lagen unter {threshold} {unit} ({value} {unit}) und du hast Beschwerden angegeben. Behandle jetzt; wenn du nichts bei dir behalten kannst oder dir sehr unwohl ist, wähle den Notruf.",
"glucoseHighTitle": "Sehr hoher Blutzucker",
"glucoseHighDoctor": "Zwei aktuelle Messungen lagen bei {value} {unit} oder höher. Miss erneut, trink ausreichend und kontaktiere möglichst bald deine Ärztin oder deinen Arzt, wenn es so hoch bleibt.",
"glucoseHighEmergency": "Zwei aktuelle Messungen lagen bei {value} {unit} oder höher und du hast Beschwerden angegeben. Bei Erbrechen, schneller Atmung oder Verwirrtheit sofort den Notruf wählen."
}
},
"version": {
"updateAvailable": {
"title": "Eine neue Version ist verfügbar",
"reload": "Neu laden",
"dismiss": "Schließen"
}
},
"mentalHealth": {
"pageTitle": "Seelisches Wohlbefinden",
"pageDescription": "Vier validierte, freiwillige Selbsttests — PHQ-9 (Stimmung), GAD-7 (Sorgen), WHO-5 (Wohlbefinden) und SCI (Schlaf) — ergänzend zu deinem Stimmungstagebuch. Aussagekräftig ist der Verlauf über die Zeit, nicht ein einzelner Wert.",
"moodLink": "Deinen Stimmungsverlauf ansehen",
"attributionLabel": "Quelle",
"attributionShow": "Quelle und Lizenz für {instrument}",
"choosePrompt": "Check-in auswählen",
"start": "Starten",
"back": "Zurück",
"submit": "Ergebnis ansehen",
"submitting": "Wird gespeichert…",
"saved": "Gespeichert",
"error": "Etwas ist schiefgelaufen. Bitte versuche es erneut.",
"instrument": {
"phq9": "PHQ-9 · Stimmung",
"gad7": "GAD-7 · Sorgen",
"who5": "WHO-5 · Wohlbefinden",
"sci": "SCI · Schlaf"
},
"instrumentSub": {
"phq9": "Depressions-Screening, 9 Fragen",
"gad7": "Angst-Screening, 7 Fragen",
"who5": "Wohlbefindens-Check, 5 Fragen",
"sci": "Schlaf-Check, 8 Fragen"
},
"options": {
"0": "Überhaupt nicht",
"1": "An einzelnen Tagen",
"2": "An mehr als der Hälfte der Tage",
"3": "Beinahe jeden Tag"
},
"functionalTitle": "Wenn du eine oder mehrere Beschwerden angegeben hast: Wie sehr haben diese deine Arbeit, deinen Haushalt oder den Umgang mit anderen Menschen erschwert?",
"functional": {
"0": "Überhaupt nicht erschwert",
"1": "Etwas erschwert",
"2": "Sehr erschwert",
"3": "Extrem erschwert"
},
"functionalOptionalHint": "Optional — du kannst auch ohne Antwort auf diese Frage absenden.",
"result": {
"title": "Dein Ergebnis",
"totalLabel": "Gesamtwert",
"bandLabel": "Bereich für dieses Screening",
"takeAnother": "Weiteren Check-in machen"
},
"band": {
"PHQ9": {
"minimal": "Keine / minimal",
"mild": "Leicht",
"moderate": "Mittelgradig",
"modSevere": "Mittelschwer",
"severe": "Schwer"
},
"GAD7": {
"minimal": "Keine / minimal",
"mild": "Leicht",
"moderate": "Mittelgradig",
"severe": "Schwer"
},
"WHO5": {
"low": "Niedrigeres Wohlbefinden",
"good": "Gutes Wohlbefinden"
},
"SCI": {
"belowThreshold": "Möglicher Insomnie-Bereich",
"aboveThreshold": "Kein Insomnie-Hinweis"
}
},
"history": {
"title": "Dein Verlauf",
"empty": "Noch keine Check-ins. Dein Verlauf erscheint hier, sobald du einen abgeschlossen hast.",
"flaggedBadge": "Hilfe angezeigt",
"chartTitle": "Punkteverlauf",
"totalLabel": "Punkte",
"bandLabel": "Einstufung"
},
"crisis": {
"title": "Du musst das nicht allein durchstehen",
"intro": "Du hast Gedanken angegeben, lieber tot zu sein oder dir etwas anzutun. Es gibt jetzt sofort Unterstützung — sich zu melden ist ein Zeichen von Stärke.",
"ifDanger": "Wenn du in unmittelbarer Gefahr bist, ruf jetzt {emergency} an.",
"resourcesTitle": "Menschen, die helfen können"
},
"items": {
"phq9": {
"1": "Wenig Interesse oder Freude an Ihren Tätigkeiten",
"2": "Niedergeschlagenheit, Schwermut oder Hoffnungslosigkeit",
"3": "Schwierigkeiten, ein- oder durchzuschlafen, oder vermehrter Schlaf",
"4": "Müdigkeit oder Gefühl, keine Energie zu haben",
"5": "Verminderter Appetit oder übermäßiges Bedürfnis zu essen",
"6": "Schlechte Meinung von sich selbst; Gefühl, ein Versager zu sein oder die Familie enttäuscht zu haben",
"7": "Schwierigkeiten, sich auf etwas zu konzentrieren, z. B. beim Zeitunglesen oder Fernsehen",
"8": "Waren Ihre Bewegungen oder Ihre Sprache so verlangsamt, dass es auch anderen auffallen würde? Oder waren Sie im Gegenteil „zappelig“ oder ruhelos und hatten einen stärkeren Bewegungsdrang als sonst?",
"9": "Gedanken, dass Sie lieber tot wären oder sich Leid zufügen möchten"
},
"gad7": {
"1": "Nervosität, Ängstlichkeit oder Anspannung",
"2": "Nicht in der Lage sein, Sorgen zu stoppen oder zu kontrollieren",
"3": "Übermäßige Sorgen bezüglich verschiedener Angelegenheiten",
"4": "Schwierigkeiten zu entspannen",
"5": "Rastlosigkeit, sodass Stillsitzen schwerfällt",
"6": "Schnelle Verärgerung oder Gereiztheit",
"7": "Gefühl der Angst, als würde etwas Schlimmes passieren"
},
"who5": {
"1": "… war ich froh und guter Laune",
"2": "… habe ich mich ruhig und entspannt gefühlt",
"3": "… habe ich mich energisch und aktiv gefühlt",
"4": "… habe ich mich beim Aufwachen frisch und ausgeruht gefühlt",
"5": "… war mein Alltag voller Dinge, die mich interessieren"
},
"sci": {
"1": "… how long does it take you to fall asleep?",
"2": "… if you then wake up during the night … how long are you awake for in total? (add all the wakenings up)",
"3": "… how many nights a week do you have a problem with your sleep?",
"4": "… how would you rate your sleep quality?",
"5": "… affected your mood, energy, or relationships?",
"6": "… affected your concentration, productivity, or ability to stay awake?",
"7": "… troubled you in general?",
"8": "… how long have you had a problem with your sleep?"
}
},
"crisisResource": {
"telefonSeelsorge": {
"name": "TelefonSeelsorge (rund um die Uhr, kostenlos, vertraulich)"
},
"nummerGegenKummer": {
"name": "Nummer gegen Kummer (für junge Menschen)"
},
"telefonSeelsorgeAt": {
"name": "Telefonseelsorge Österreich (rund um die Uhr, kostenlos, vertraulich)"
},
"dargeboteneHand": {
"name": "Die Dargebotene Hand (rund um die Uhr, kostenlos, vertraulich)"
},
"krisenchat": {
"name": "krisenchat (24/7-Chat, junge Menschen)"
},
"findahelpline": {
"name": "Find a Helpline (weltweites Verzeichnis)"
},
"euEmotionalSupport": {
"name": "Telefonseelsorge-Hotline"
},
"lifeline988": {
"name": "988 Suicide & Crisis Lifeline"
},
"crisisTextLine": {
"name": "Crisis Text Line"
}
},
"instrumentDescription": {
"phq9": "Depressions-Screening mit 9 Fragen. Beziehe dich auf die letzten zwei Wochen.",
"gad7": "Angst-Screening mit 7 Fragen. Beziehe dich auf die letzten zwei Wochen.",
"who5": "Wohlbefindens-Check mit 5 Fragen. Beziehe dich auf die letzten zwei Wochen; höhere Werte bedeuten besseres Wohlbefinden.",
"sci": "Schlaf-Check mit 8 Fragen. Die meisten Fragen beziehen sich auf den letzten Monat; höhere Werte bedeuten besseren Schlaf."
},
"progress": "{current} / {total}",
"next": "Weiter",
"lastResult": "Letzter Test",
"lastScore": "Letztes Ergebnis",
"noResultYet": "Noch kein Check-in",
"backToList": "Übersicht",
"followUpHint": {
"phq9": "Dein Wert liegt in einem Bereich, in dem ein Gespräch mit einer Fachperson helfen kann. Das ist ein behutsamer Hinweis, keine Diagnose.",
"gad7": "Dein Wert liegt in einem Bereich, in dem ein Gespräch mit einer Fachperson helfen kann. Das ist ein behutsamer Hinweis, keine Diagnose.",
"who5": "Ein Wohlbefindens-Wert von 50 oder darunter kann einen genaueren Blick wert sein. Wenn du magst, schaut der PHQ-9-Check-in auf dieser Seite genauer auf die Stimmung. Das ist ein behutsamer Hinweis, keine Diagnose.",
"sci": "In der Studie zu diesem Fragebogen waren Werte von 16 oder darunter mit wahrscheinlicher Insomnie verbunden. Wenn schlechter Schlaf dich weiter belastet, kann ein Gespräch mit einer Fachperson helfen. Das ist keine Diagnose."
},
"validatedInEnglishNote": "Dieser Fragebogen ist in englischer Sprache validiert; die Fragen erscheinen im englischen Original.",
"who5Options": {
"0": "Zu keinem Zeitpunkt",
"1": "Ab und zu",
"2": "Etwas weniger als die Hälfte der Zeit",
"3": "Etwas mehr als die Hälfte der Zeit",
"4": "Meistens",
"5": "Die ganze Zeit"
},
"sciOptions": {
"duration": {
"0": "≥ 61 min",
"1": "46–60 min",
"2": "31–45 min",
"3": "16–30 min",
"4": "0–15 min"
},
"nights": {
"0": "5–7",
"1": "4",
"2": "3",
"3": "2",
"4": "0–1"
},
"quality": {
"0": "Very poor",
"1": "Poor",
"2": "Average",
"3": "Good",
"4": "Very good"
},
"impact": {
"0": "Very much",
"1": "Much",
"2": "Somewhat",
"3": "A little",
"4": "Not at all"
},
"problemDuration": {
"0": "> 1 year",
"1": "7–12 months",
"2": "3–6 months",
"3": "1–2 months",
"4": "I don't have a problem / < 1 month"
}
},
"stems": {
"who5": {
"period": "In den letzten zwei Wochen …"
},
"sci": {
"night": "Thinking about a typical night in the last month …",
"impact": "Thinking about the past month, to what extent has poor sleep …",
"finally": "Finally …"
}
},
"openDetail": "Details anzeigen"
},
"records": {
"disclaimer": "Das sind deine eigenen Angaben, keine ärztliche Diagnose. HealthLog stellt keine Diagnose, behandelt nicht und deutet nichts.",
"allergies": {
"cardTitle": "Allergien & Unverträglichkeiten",
"cardDescription": "Stoffe, auf die du reagierst, mit Reaktion und Schweregrad.",
"description": "Eine Allergie oder Unverträglichkeit erfassen.",
"add": "Allergie hinzufügen",
"addFirst": "Erste Allergie hinzufügen",
"addTitle": "Allergie hinzufügen",
"editTitle": "Allergie bearbeiten",
"formDescription": "Der Stoff wird im Klartext gespeichert; Reaktion und Notiz werden verschlüsselt.",
"emptyTitle": "Keine Allergien erfasst",
"emptyDescription": "Erfasse Stoffe, auf die du reagierst, und die Reaktionen.",
"loadError": "Deine Allergien konnten nicht geladen werden.",
"deletedToast": "Allergie gelöscht",
"deleteError": "Die Allergie konnte nicht gelöscht werden.",
"deleteConfirmTitle": "Diese Allergie löschen?",
"deleteConfirmDescription": "Damit wird der Eintrag entfernt. Das lässt sich nicht rückgängig machen.",
"category": {
"FOOD": "Nahrungsmittel",
"MEDICATION": "Medikament",
"ENVIRONMENT": "Umwelt",
"BIOLOGIC": "Biologikum",
"OTHER": "Sonstiges"
},
"type": {
"ALLERGY": "Allergie",
"INTOLERANCE": "Unverträglichkeit"
},
"severity": {
"NONE": "Nicht bewertet",
"MILD": "Leicht",
"MODERATE": "Mittel",
"SEVERE": "Schwer"
},
"status": {
"ACTIVE": "Aktiv",
"INACTIVE": "Inaktiv",
"RESOLVED": "Abgeklungen"
},
"form": {
"substance": "Stoff",
"substancePlaceholder": "z. B. Penicillin, Erdnüsse",
"category": "Kategorie",
"type": "Art",
"severity": "Schweregrad",
"status": "Status",
"onset": "Erstmals bemerkt",
"reaction": "Reaktion",
"reactionPlaceholder": "z. B. Nesselsucht, Schwellung, Anaphylaxie",
"note": "Notiz",
"notePlaceholder": "Was du dir sonst merken möchtest",
"requiredError": "Bitte den Stoff angeben.",
"savedToast": "Allergie gespeichert",
"updatedToast": "Allergie aktualisiert",
"saveError": "Die Allergie konnte nicht gespeichert werden."
}
},
"family": {
"cardTitle": "Familienanamnese",
"cardDescription": "Erkrankungen bei Verwandten, ein Eintrag je Erkrankung.",
"description": "Eine Erkrankung bei einem Verwandten erfassen.",
"add": "Eintrag hinzufügen",
"addFirst": "Ersten Eintrag hinzufügen",
"addTitle": "Familienanamnese hinzufügen",
"editTitle": "Familienanamnese bearbeiten",
"formDescription": "Verwandtschaft und Erkrankung werden im Klartext gespeichert; die Notiz wird verschlüsselt.",
"emptyTitle": "Keine Familienanamnese erfasst",
"emptyDescription": "Erfasse Erkrankungen, die in deiner Familie vorkommen.",
"loadError": "Deine Familienanamnese konnte nicht geladen werden.",
"deletedToast": "Eintrag gelöscht",
"deleteError": "Der Eintrag konnte nicht gelöscht werden.",
"deleteConfirmTitle": "Diesen Eintrag löschen?",
"deleteConfirmDescription": "Damit wird der Eintrag entfernt. Das lässt sich nicht rückgängig machen.",
"ageAtOnsetShort": "Alter {age}",
"relationship": {
"MOTHER": "Mutter",
"FATHER": "Vater",
"SISTER": "Schwester",
"BROTHER": "Bruder",
"DAUGHTER": "Tochter",
"SON": "Sohn",
"GRANDMOTHER_MATERNAL": "Großmutter (mütterlich)",
"GRANDFATHER_MATERNAL": "Großvater (mütterlich)",
"GRANDMOTHER_PATERNAL": "Großmutter (väterlich)",
"GRANDFATHER_PATERNAL": "Großvater (väterlich)",
"AUNT": "Tante",
"UNCLE": "Onkel",
"COUSIN": "Cousin/Cousine",
"HALF_SIBLING": "Halbgeschwister",
"OTHER": "Andere/r Verwandte/r"
},
"form": {
"relationship": "Verwandte/r",
"condition": "Erkrankung",
"conditionPlaceholder": "z. B. Typ-2-Diabetes, Brustkrebs",
"ageAtOnset": "Alter bei Beginn",
"ageAtOnsetPlaceholder": "z. B. 55",
"note": "Notiz",
"notePlaceholder": "Was du dir sonst merken möchtest",
"requiredError": "Bitte die Erkrankung angeben.",
"ageError": "Bitte ein Alter zwischen 0 und 120 angeben.",
"savedToast": "Eintrag gespeichert",
"updatedToast": "Eintrag aktualisiert",
"saveError": "Der Eintrag konnte nicht gespeichert werden."
}
},
"conditions": {
"cardTitle": "Vorerkrankungen",
"cardDescription": "Chronische Erkrankungen und worauf der Coach achten soll.",
"conditionsLabel": "Chronische Erkrankungen",
"focusLabel": "Worauf der Coach achtet",
"loadError": "Vorerkrankungen konnten nicht geladen werden.",
"savedToast": "Erkrankungen gespeichert.",
"saveError": "Speichern fehlgeschlagen. Bitte versuche es erneut."
}
},
"environment": {
"fields": {
"tempMean": "Tagestemperatur",
"tempMin": "Nachttiefstwert",
"sunshine": "Sonnenschein",
"daylight": "Tageslicht",
"precip": "Niederschlag",
"pressureMean": "Luftdruck",
"pressureDelta": "Druckschwankung"
}
},
"documents": {
"title": "Dokumente",
"subtitle": "Jeder Brief, Befund und Scan an einem durchsuchbaren Ort — verschlüsselt gespeichert.",
"pageUpload": "Hochladen",
"kind": {
"DOCTOR_REPORT": "Arztbericht",
"DISCHARGE_LETTER": "Entlassungsbrief",
"OTHER": "Sonstiges",
"LAB_RESULT": "Laborbefund",
"IMAGING": "Bildgebung",
"PRESCRIPTION": "Rezept",
"REFERRAL": "Überweisung",
"INSURANCE": "Versicherung",
"VACCINATION": "Impfung"
},
"filter": {
"searchLabel": "Dokumente durchsuchen",
"searchPlaceholder": "Titel oder Dateiname suchen…",
"typeGroup": "Dokumenttyp",
"conditionGroup": "Erkrankung",
"yearGroup": "Jahr",
"clear": "Filter zurücksetzen",
"typeAll": "Alle Typen",
"typeCount": "{count} Typen",
"conditionAll": "Alle Erkrankungen",
"yearAll": "Alle Jahre"
},
"card": {
"untitled": "Unbenanntes Dokument",
"selectLabel": "{title} auswählen",
"openLabel": "{title} öffnen",
"attachmentBadge": "Nur Download",
"uploading": "Wird hochgeladen…",
"dismissFailed": "Fehlgeschlagenen Upload ausblenden",
"processing": "Wird verarbeitet…",
"ready": "Bereit"
},
"error": {
"fileTooLarge": "Diese Datei ist größer als das Limit von {maxSize}.",
"quotaExceeded": "Der Speicher ist voll — {used} von {quota} belegt.",
"unsupportedType": "Dieser Dateityp wird nicht unterstützt.",
"purged": "Dieses Dokument wurde endgültig entfernt und kann nicht wiederhergestellt werden.",
"duplicateExists": "Ein identisches Dokument ist bereits gespeichert.",
"rateLimited": "Zu viele Uploads — versuche es in ein paar Minuten erneut.",
"generic": "Upload fehlgeschlagen. Bitte erneut versuchen."
},
"toast": {
"duplicate": "Bereits gespeichert — das vorhandene Dokument wird hervorgehoben.",
"deleted": "Dokument gelöscht.",
"restoreFailed": "Das Dokument konnte nicht wiederhergestellt werden."
},
"timeline": {
"loadingMore": "Mehr wird geladen…",
"listLabel": "Dokumenten-Zeitleiste"
},
"upload": {
"browse": "Dateien auswählen",
"quotaAlmostFull": "Speicher fast voll",
"quotaUsed": "{used} von {quota} belegt",
"queuedAnnouncement": "{count} Datei(en) zur Upload-Warteschlange hinzugefügt"
},
"selection": {
"count": "{count} ausgewählt",
"clear": "Auswahl aufheben"
},
"list": {
"loadError": "Deine Dokumente konnten nicht geladen werden."
},
"empty": {
"title": "Dein Dokumenten-Tresor ist leer",
"description": "Bewahre Arztbriefe, Laborbefunde, Bildgebung, Rezepte und Impfnachweise auf — verschlüsselt und durchsuchbar nach Typ, Erkrankung und Jahr.",
"action": "Erstes Dokument hochladen",
"noMatchesTitle": "Keine passenden Dokumente",
"noMatchesDescription": "Nichts entspricht der aktuellen Suche und den Filtern."
},
"detail": {
"title": "Dokumentdetails",
"summary": {
"title": "Zusammenfassung",
"pending": "Die Zusammenfassung wird erstellt."
},
"loadError": "Dieses Dokument konnte nicht geladen werden.",
"saveError": "Die Änderung konnte nicht gespeichert werden.",
"deleteError": "Das Dokument konnte nicht gelöscht werden.",
"download": "Herunterladen",
"delete": "Löschen",
"titleLabel": "Titel",
"titlePlaceholder": "Titel hinzufügen",
"kindLabel": "Typ",
"dateLabel": "Dokumentdatum",
"conditionsLabel": "Verknüpfte Erkrankungen",
"linkCondition": "Verknüpfen",
"noConditions": "Mit keiner Erkrankung verknüpft",
"previewUnavailable": "Keine Inline-Vorschau für diesen Dateityp",
"uploadedMeta": "Hinzugefügt am {date} · {size}",
"share": "Teilen",
"labValuesLink": "{count} Laborwerte ansehen"
},
"dropOverlay": {
"title": "Zum Hochladen ablegen",
"hint": "Deine Dateien werden verschlüsselt in deinen Dokumenten gespeichert"
},
"bulk": {
"barLabel": "Aktionen für ausgewählte Dokumente",
"setKind": "Typ ändern",
"linkCondition": "Erkrankung verknüpfen",
"delete": "Löschen",
"updated": "{count} Dokument(e) aktualisiert",
"deleted": "{count} Dokument(e) gelöscht",
"restored": "{count} Dokument(e) wiederhergestellt",
"partialFailure": "{failed} von {total} konnten nicht aktualisiert werden",
"failed": "Die Aktion konnte nicht ausgeführt werden",
"share": "Teilen",
"shareTooMany": "Ein Freigabelink fasst höchstens {max} Dokumente. Wähle einige ab und versuche es erneut."
},
"episodeCard": {
"title": "Dokumente",
"link": "Verknüpfen",
"upload": "Hochladen",
"viewAll": "Alle anzeigen",
"emptyLine": "Noch keine Dokumente mit dieser Erkrankung verknüpft.",
"loadError": "Verknüpfte Dokumente konnten nicht geladen werden"
},
"linkPicker": {
"title": "Dokumente verknüpfen",
"description": "Wähle Dokumente aus deinem Bestand, die zu dieser Erkrankung gehören.",
"searchPlaceholder": "Nach Titel oder Dateiname suchen",
"empty": "Keine Dokumente gefunden."
},
"assist": {
"suggest": "Details vorschlagen",
"suggesting": "Wird gelesen…",
"suggestedTitle": "Vorgeschlagener Titel",
"suggestedKind": "Vorgeschlagener Typ",
"suggestedDate": "Vorgeschlagenes Datum",
"apply": "Übernehmen",
"useTitle": "Titel übernehmen",
"applied": "Übernommen",
"dismiss": "Verwerfen",
"empty": "Aus diesem Dokument konnte nichts gelesen werden.",
"unavailableBody": "Richte einen KI-Anbieter ein, um Titel, Typ und Datum vorzuschlagen.",
"unavailableLocalOcr": "Aktiviere lokale Texterkennung in den KI-Einstellungen, um Bilder auf diesem Gerät zu lesen.",
"unavailableAction": "KI-Einstellungen öffnen",
"errorGeneric": "Dokument konnte nicht gelesen werden. Bitte erneut versuchen.",
"errorOcr": "Aus diesem Bild konnte kein Text gelesen werden.",
"errorRateLimited": "Zu viele KI-Anfragen — bitte in ein paar Minuten erneut versuchen.",
"errorBudget": "Dein KI-Budget für heute ist aufgebraucht.",
"errorPdfNeedsVision": "Zum Scannen von PDFs wird ein Claude-Vision-Anbieter benötigt.",
"errorFileType": "Dieser Dateityp kann nicht gelesen werden.",
"errorLocalOcrDisabled": "Aktiviere zuerst die lokale Texterkennung in den KI-Einstellungen.",
"errorProvider": "Dafür ist kein KI-Anbieter eingerichtet.",
"errorTextImageOnly": "Lokale Texterkennung liest nur Bilder — nicht diese Datei."
},
"summary": {
"summarise": "Zusammenfassen",
"showText": "Erkannten Text anzeigen",
"summaryTitle": "Zusammenfassung",
"textTitle": "Erkannter Text",
"close": "Ausblenden"
},
"ai": {
"statusAiRead": "Von KI gelesen",
"readDone": "Die KI hat dein Dokument gelesen.",
"read": "Mit KI auslesen",
"reread": "Erneut lesen",
"reading": "Liest…"
},
"contentIndex": {
"indexPrompt": "Dokumentinhalte durchsuchbar machen.",
"indexAll": "Alle für Suche indizieren",
"indexAllPending": "Wird gestartet…",
"indexAllQueued": "{count} Dokument(e) werden im Hintergrund indiziert.",
"indexAllNothing": "Alles ist bereits indiziert.",
"indexAllError": "Indizierung konnte nicht gestartet werden."
},
"share": {
"title": "Dieses Dokument teilen",
"multiTitle": "Diese Dokumente teilen",
"multiLabel": "{count} Dokumente",
"description": "Erstelle einen schreibgeschützten Ärzte-Link mit diesem angehängten Dokument. Link und Passphrase erscheinen nur einmal."
},
"chat": {
"title": "Über dieses Dokument chatten",
"openAria": "Coach über dieses Dokument fragen",
"openButton": "Coach fragen"
}
},
"selfDescription": {
"dataPosture": "HealthLog wird selbst gehostet: Deine Gesundheitsdaten bleiben auf deiner eigenen Instanz und sind im Ruhezustand verschlüsselt. KI-Funktionen nutzen einen von dir mitgebrachten Anbieter-Schlüssel oder ein lokales Modell — nichts verlässt deine Instanz über den von dir konfigurierten Anbieter hinaus, und es gibt keine Drittanbieter-Analyse deiner Gesundheitsdaten."
},
"customMetrics": {
"sectionTitle": "Eigene Metriken",
"sectionSubtitle": "Messwerte, die du selbst definierst und verfolgst.",
"add": "Eigene Metrik hinzufügen",
"addValue": "Wert hinzufügen",
"defineTitle": "Eigene Metrik definieren",
"defineDescription": "Benenne den Messwert, lege seine Einheit fest und optional einen Zielbereich.",
"editTitle": "Eigene Metrik bearbeiten",
"edit": "Bearbeiten",
"delete": "Löschen",
"deleteConfirmTitle": "Diese eigene Metrik löschen?",
"deleteConfirmDescription": "Die Metrik wird aus deiner Liste entfernt. Erfasste Werte bleiben erhalten.",
"deletedToast": "Eigene Metrik gelöscht",
"deleteError": "Eigene Metrik konnte nicht gelöscht werden",
"showAllValues": "Alle Werte anzeigen",
"emptyDescription": "Definiere eigene Messwerte, um sie zu verfolgen und darzustellen.",
"noValuesYet": "Noch keine Werte",
"loadError": "Eigene Metriken konnten nicht geladen werden",
"loadMore": "Weitere Werte laden",
"showingLatestOf": "Die neuesten {shown} von {total}",
"backToMeasurements": "Zurück zu den Messwerten",
"form": {
"name": "Name",
"namePlaceholder": "z. B. Griffkraft morgens",
"unit": "Einheit",
"unitPlaceholder": "z. B. kg",
"decimals": "Nachkommastellen",
"decimalsPlaceholder": "z. B. 1",
"targetLow": "Zielwert unten",
"targetLowPlaceholder": "Untere Grenze",
"targetHigh": "Zielwert oben",
"targetHighPlaceholder": "Obere Grenze",
"description": "Beschreibung",
"descriptionPlaceholder": "Was hier gemessen wird (optional)",
"targetHint": "Der Zielbereich ist optional und wird als Band im Diagramm dargestellt.",
"requiredError": "Name und Einheit sind erforderlich",
"rangeOrderError": "Der untere Zielwert darf den oberen nicht überschreiten",
"save": "Speichern",
"savedToast": "Eigene Metrik gespeichert",
"updatedToast": "Eigene Metrik aktualisiert",
"saveError": "Eigene Metrik konnte nicht gespeichert werden"
},
"entry": {
"value": "Wert",
"measuredAt": "Datum",
"note": "Notiz",
"addDescription": "Erfasse einen Wert für diese Metrik.",
"edit": "Wert bearbeiten",
"editTitle": "Wert bearbeiten",
"editDescription": "Wert, Datum oder Notiz aktualisieren.",
"delete": "Wert löschen",
"deleteConfirmTitle": "Diesen Wert löschen?",
"deleteConfirmDescription": "Dieser Wert wird endgültig entfernt.",
"valueError": "Gib einen numerischen Wert ein",
"timestampError": "Gib ein gültiges Datum ein",
"savedToast": "Wert erfasst",
"saveError": "Wert konnte nicht erfasst werden",
"editedToast": "Wert aktualisiert",
"editError": "Wert konnte nicht aktualisiert werden",
"deletedToast": "Wert gelöscht",
"deleteError": "Wert konnte nicht gelöscht werden"
},
"chart": {
"empty": "Keine Werte in diesem Zeitraum",
"valueLabel": "Wert",
"range": {
"30": "30T",
"90": "90T",
"365": "1J",
"all": "Alle"
}
},
"detail": {
"title": "Eigene Metrik",
"genericDescription": "Ein Messwert, den du verfolgst. Erfasse Werte, um ihn über die Zeit zu beobachten.",
"emptyTitle": "Noch keine Werte",
"emptyDescription": "Erfasse deinen ersten Wert, um diese Metrik darzustellen.",
"valuesTitle": "{metric} — alle Werte",
"valuesDescription": "Alle erfassten Werte dieser Metrik.",
"backToMetric": "Zurück zu {metric}"
}
},
"nutrients": {
"names": {
"vitamin_a": "Vitamin A",
"thiamin": "Thiamin (B1)",
"riboflavin": "Riboflavin (B2)",
"niacin": "Niacin (B3)",
"pantothenic_acid": "Pantothensäure (B5)",
"vitamin_b6": "Vitamin B6",
"biotin": "Biotin (B7)",
"folate": "Folat (B9)",
"vitamin_b12": "Vitamin B12",
"vitamin_c": "Vitamin C",
"vitamin_d": "Vitamin D",
"vitamin_e": "Vitamin E",
"vitamin_k": "Vitamin K",
"calcium": "Calcium",
"iron": "Eisen",
"magnesium": "Magnesium",
"phosphorus": "Phosphor",
"zinc": "Zink",
"copper": "Kupfer",
"manganese": "Mangan",
"selenium": "Selen",
"chromium": "Chrom",
"molybdenum": "Molybdän",
"iodine": "Jod",
"water": "Wasser",
"caffeine": "Koffein"
},
"page": {
"title": "Nährstoffaufnahme",
"description": "Flüssigkeits- und Vitamin-/Mineralstoffaufnahme aus der Gesundheits-App deines Telefons, plus manuelle Wassereinträge.",
"moduleOffTitle": "Nährstoffaufnahme ist aus",
"moduleOffDescription": "Aktiviere das Nährstoffe-Modul, um Flüssigkeits- und Vitamin-/Mineralstoffaufnahme hier zu sehen. Synchronisierte Werte werden Teil der Aufzeichnung, die der Coach lesen kann.",
"moduleOffCta": "Nährstoffe aktivieren",
"emptyTitle": "Noch keine Nährstoffdaten",
"emptyDescription": "Daten kommen aus der Synchronisierung der Gesundheits-App deines Telefons oder einem manuellen Wassereintrag."
},
"hydration": {
"referenceMeta": "Richtwert {value} {unit}/Tag · EFSA",
"quickAddTitle": "Wasser hinzufügen",
"quickAddCustomLabel": "Eigene Menge (ml)",
"quickAddCustomPlaceholder": "250",
"quickAddSubmit": "Hinzufügen",
"quickAddError": "Konnte nicht gespeichert werden — versuch's noch mal.",
"editTotal": "Heutige Summe bearbeiten"
},
"caffeine": {
"ceilingMeta": "Sichere Obergrenze {value} {unit}/Tag · EFSA"
},
"micronutrients": {
"title": "Vitamine & Mineralstoffe",
"rowMeta": "{days} von {window} Tagen · Richtwert {value} {unit} (EFSA)",
"rowMetaNoRef": "{days} von {window} Tagen",
"footer": "{tracked} von {total} erfassten Mikronährstoffen haben Daten in diesem Zeitraum.",
"emptyTitle": "Noch keine Mikronährstoffdaten synchronisiert"
},
"sparseNote": "Ein niedriger Wert bedeutet hier meist lückenhafte Erfassung, keinen Mangel — die Tagessummen aus Apple Health spiegeln wider, was deine Apps erfasst haben, nicht die gesamte Nahrungsaufnahme."
},
"daily": {
"line": {
"score": "Dein Gesundheitsscore heute liegt bei {score}.",
"allClear": "Heute braucht nichts deine Aufmerksamkeit."
},
"push": {
"title": "Dein Morgenüberblick",
"bodyProvisional": "{line} · Der Schlaf von letzter Nacht fehlt noch."
},
"item": {
"doseWindow": {
"title": "Medikament fällig",
"body": "Heute ist eine Dosis fällig.",
"bodyNamed": "{name} ist heute fällig."
},
"preventiveCare": {
"title": "Vorsorge fällig",
"body": "{label} ist fällig.",
"bodyMany": "{count} Vorsorgetermine sind fällig."
},
"syncIssue": {
"title": "Synchronisierung braucht Aufmerksamkeit",
"body": "{integration} synchronisiert nicht — verbinde neu, um deine Daten aktuell zu halten."
},
"coachCheckin": {
"title": "Zeit, einen Plan anzuschauen",
"body": "Es ist etwa eine Woche her, seit du diesen Plan gesetzt hast — behalte ihn, passe ihn an oder lass ihn los. Ganz ohne Druck.",
"bodyPlan": "Vor etwa einer Woche hast du dir vorgenommen: „{plan}“. Behalte es, passe es an oder lass es los — ganz ohne Druck.",
"adjustPrompt": "Ich möchte meinen Check-in-Plan anpassen.",
"adjustPromptPlan": "Ich möchte diesen Plan anpassen: „{plan}“"
},
"tensionWindow": {
"title": "Vielleicht eine angespannte Phase",
"body": {
"morning": "Dein Puls lag heute Vormittag über längere Zeit über deinem Ruhewert, während du ruhig warst — möglicherweise etwas Anspannung.",
"afternoon": "Dein Puls lag heute Nachmittag über längere Zeit über deinem Ruhewert, während du ruhig warst — möglicherweise etwas Anspannung.",
"evening": "Dein Puls lag heute Abend über längere Zeit über deinem Ruhewert, während du ruhig warst — möglicherweise etwas Anspannung.",
"night": "Dein Puls lag in der Nacht über längere Zeit über deinem Ruhewert, während du ruhig warst — möglicherweise etwas Anspannung."
}
},
"ecgNewRecording": {
"title": "Neue EKG-Aufzeichnung",
"body": "Dein Gerät hat ein neues EKG aufgezeichnet — bereit zum Ansehen.",
"bodyVerdict": "Dein Gerät hat ein neues EKG aufgezeichnet und meldet: {verdict}.",
"verdict": {
"irregular": "einen möglichen unregelmäßigen Rhythmus",
"notDetected": "keinen unregelmäßigen Rhythmus",
"inconclusive": "ein nicht eindeutiges Ergebnis"
}
}
},
"action": {
"logDose": "Dosis erfassen",
"reconnect": "Neu verbinden",
"viewCheckups": "Vorsorge ansehen",
"checkinKeep": "Behalten",
"checkinAdjust": "Anpassen",
"checkinLetGo": "Loslassen",
"viewMilestone": "Ansehen",
"viewPulse": "Puls ansehen",
"viewEcg": "Aufzeichnung ansehen"
},
"today": {
"scoreLabel": "Gesundheitsscore",
"deltaVsBaseline": "{delta} ggü. deinem Ausgangswert",
"deltaFlat": "Im Bereich deines Ausgangswerts",
"sleepPending": "Der Schlaf von letzter Nacht fehlt noch – der heutige Wert ist vorläufig.",
"readFullBriefing": "Vollständiges Briefing lesen",
"worthALook": "Einen Blick wert",
"allClear": "Heute braucht nichts deine Aufmerksamkeit.",
"ringLink": "{metric}-Details öffnen"
},
"milestone": {
"metric": {
"restingHeartRate": "Ruhepuls",
"heartRateVariability": "Herzfrequenzvariabilität",
"respiratoryRate": "Atemfrequenz",
"weight": "Gewicht",
"generic": "dieser Wert"
},
"record": {
"title": "Neue Bestmarke: {metric}",
"body": "Heute ein persönlicher Bestwert für {metric} — ganz ruhig festgehalten, du musst nichts tun."
},
"returnToBaseline": {
"title": "Wieder im Bereich: {metric}",
"body": "{metric} liegt wieder in deinem gewohnten Bereich. Was auch immer es war — es ist vorbei."
},
"sustainedInRange": {
"week1": {
"title": "Eine Woche im Bereich",
"body": "{metric} liegt seit einer Woche in deinem gewohnten Bereich. Schön gleichmäßig."
},
"week2": {
"title": "Zwei Wochen im Bereich",
"body": "{metric} bleibt seit zwei Wochen in deinem gewohnten Bereich. Ruhig und stetig."
},
"week3": {
"title": "Drei Wochen im Bereich",
"body": "Drei Wochen, in denen {metric} in deinem gewohnten Bereich liegt. Eine echte ruhige Strecke."
},
"week4": {
"title": "Ein Monat im Bereich",
"body": "Ein ganzer Monat mit {metric} in deinem gewohnten Bereich. Wunderbar gleichmäßig."
}
}
}
}
}