Files
HealthLog/messages/de.json
T
Marc-André Bombeck e2ba86b12f feat(garmin): sync Garmin Connect through the Personal API
Garmin Connect now offers a Personal API: a person creates a key for
their own account and any client can buy short-lived tokens with it.
HealthLog takes that key in a new Garmin card, checks it with Garmin
before storing it sealed on the user row, and polls every hour.

- Transport: key exchange with a per-process token cache keyed on the
  key, one re-exchange on a refused token and then reauth_required, the
  429 Retry-After carried to the caller, the China host tried when the
  global one does not know the key, answers read with a byte cap, all
  egress through safeFetch to the two fixed hosts.
- Sync: daily summaries, sleep summaries, HRV, weigh-ins and the
  activity search, chunked to each resource's documented range, read one
  after another and stopped at the first rate limit; today's menstrual
  cycle summary adds logged period days the person has not logged.
- Backfill: a resumable walk through the shared admission lane that
  learns where the history starts from the daily summaries and the
  activities, waits out Garmin's rate limit and stamps its marker.
- Types: GARMIN source; BODY_BATTERY and STRESS_LEVEL for Garmin's own
  day scores, kept apart from the computed STRESS_SCORE; TRAINING_READINESS
  and ACUTE_TRAINING_LOAD for figures a bridge pushes through the ingest
  token. All four chart on the recovery page and sit on the ladders,
  units, ranges, labels and report groups like the device-native scores.
- Key expiry: learned from a token capped short of a day, else estimated
  from the validity picked at connect; the card warns a week ahead and
  asks for a new key once Garmin refuses the old one.
- Ledger, health, freshness, watchdog, backup classes, wipe plan,
  encrypted-column registry, rotation script, OpenAPI and all ten
  locales carry the new integration. The old "no Garmin connector" note
  is gone.
2026-11-04 10:14:10 +01:00

14176 lines
785 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": {
"listCapped": "Hier stehen die letzten {count}; ältere Einträge sind nicht aufgeführt.",
"save": "Speichern",
"conflictReloaded": "Vom Server neu geladen. Bitte nimm deine Änderung noch einmal vor.",
"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",
"feet": "ft",
"inches": "in",
"heightFeet": "Körpergröße in Fuß",
"heightInches": "Körpergröße in Zoll",
"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",
"durationHoursMinutes": "{hours} Std. {minutes} Min.",
"durationMinutes": "{minutes} Min.",
"durationClockMinutes": "{time} Min.",
"durationClockHours": "{time} Std.",
"errorIdLabel": "Fehler-ID",
"errorIdCopy": "Fehler-ID kopieren",
"errorIdCopied": "Fehler-ID kopiert",
"readThrottled": "Gerade gibt es zu viele Anfragen, versuch es später noch einmal.",
"sessionEnded": "Deine Sitzung ist abgelaufen, melde dich erneut an, um weiterzumachen.",
"signIn": "Anmelden"
},
"apiErrors": {
"measurement": {
"create": {
"invalid": "Prüfe die Messdaten und versuche es erneut."
},
"duplicate_timestamp": "Für diesen Zeitpunkt ist bereits eine Messung vorhanden."
},
"mood": {
"list": {
"invalid": "Die Filter der Stimmungsliste sind ungültig."
},
"create": {
"invalid": "Prüfe den Stimmungseintrag und versuche es erneut."
},
"update": {
"invalid": "Prüfe den Stimmungseintrag und versuche es erneut."
},
"duplicate_timestamp": "Für diesen Zeitpunkt ist bereits ein Stimmungseintrag vorhanden.",
"not_found": "Dieser Stimmungseintrag ist nicht mehr verfügbar.",
"ratedFactor": {
"out_of_range": "Eine Faktorbewertung liegt außerhalb des zulässigen Bereichs."
}
},
"labs": {
"create": {
"invalid": "Prüfe den Laborwert und versuche es erneut."
},
"result": {
"notFound": "Dieser Laborwert ist nicht mehr verfügbar."
},
"biomarker": {
"notFound": "Dieser Biomarker ist nicht mehr verfügbar.",
"duplicate": "Ein Biomarker mit diesem Namen ist bereits vorhanden.",
"create": {
"invalid": "Prüfe die Biomarker-Angaben und versuche es erneut."
},
"update": {
"invalid": "Prüfe die Biomarker-Angaben und versuche es erneut.",
"referenceRangeInvalid": "Der untere Referenzwert darf den oberen Wert nicht überschreiten."
}
},
"update": {
"invalid": "Prüfe den Laborwert und versuche es erneut.",
"linkedFieldsImmutable": "Bearbeite den Biomarker, um Name, Einheit, Panel oder Referenzbereich zu ändern.",
"qualitativeExpected": "Gib für diesen qualitativen Laborwert ein Textergebnis ein.",
"numericExpected": "Gib für diesen numerischen Laborwert eine Zahl ein.",
"referenceRangeInvalid": "Der untere Referenzwert darf den oberen Wert nicht überschreiten."
}
},
"onboarding": {
"disclaimer": {
"invalid": "Bestätige den medizinischen Hinweis bitte erneut."
},
"tour": {
"invalid": "Der Tour-Fortschritt konnte nicht gespeichert werden."
},
"complete": {
"invalid": "Prüfe die Profildaten und versuche es erneut."
},
"user": {
"notFound": "Dein Konto wurde nicht gefunden."
},
"step": {
"rateLimited": "Zu viele Versuche. Warte kurz und versuche es erneut.",
"invalid": "Dieser Onboarding-Schritt konnte nicht gespeichert werden.",
"completed": "Das Onboarding ist bereits abgeschlossen.",
"outOfOrder": "Dein Onboarding-Fortschritt hat sich geändert. Lade die Seite neu und fahre fort.",
"concurrent": "Dein Onboarding-Fortschritt hat sich geändert. Lade die Seite neu und fahre fort."
}
},
"profile": {
"update": {
"nothingSaved": "Es wurde nichts gespeichert. Korrigiere das markierte Feld und versuche es erneut.",
"invalidBody": "Die Profilaktualisierung konnte nicht gelesen werden.",
"emailInUse": "Diese E-Mail-Adresse wird bereits verwendet.",
"emailRateLimited": "Zu viele Änderungen der E-Mail-Adresse. Versuche es später erneut.",
"emailSecondFactorRequired": "Bestätige mit deinem zweiten Faktor oder einem Passkey, um die E-Mail-Adresse zu ändern."
}
},
"auth": {
"reproof": {
"required": "Bestätige dein aktuelles Passwort, um das zu ändern.",
"failed": "Die Bestätigung ist fehlgeschlagen. Es wurde nichts geändert."
}
},
"biomarkers": {
"unit": {
"locked": "Dieser Marker hat schon Werte, deshalb kannst du seine Einheit nicht ändern. Die gespeicherten Werte würden sonst in der neuen Einheit angezeigt, ohne umgerechnet zu werden."
}
},
"symptoms": {
"definition": {
"limitReached": "Du hast 8 Symptome. Blende eins aus, um ein neues anzulegen.",
"notFound": "Dieses Symptom gibt es nicht mehr."
},
"episode": {
"notOpen": "Diese Erkrankung ist nicht mehr offen. Wähle eine andere oder keine."
},
"event": {
"notFound": "Diesen Eintrag gibt es nicht mehr."
}
},
"medications": {
"notFound": "Dieses Medikament ist nicht mehr vorhanden.",
"ingredients": {
"invalid": "Prüf die Zusammensetzung und versuch es noch einmal.",
"unitMismatch": "Diese Einheit gibt es für den Nährstoff nicht.",
"extract": {
"fileType": "Lade ein JPEG, PNG, WebP oder PDF hoch.",
"fileTooLarge": "Die Datei ist größer als 10 MB.",
"rateLimited": "Zu viele Etiketten gelesen. Versuch es in einer Stunde noch einmal.",
"budgetExceeded": "Dein KI-Budget für heute ist aufgebraucht.",
"failed": "Das Etikett konnte nicht gelesen werden. Versuch ein schärferes Foto."
}
}
},
"aiRuns": {
"readerBusy": "Der Dokumentleser ist gerade mit anderen Aufgaben beschäftigt. Versuch es in einer Minute noch einmal."
}
},
"doctorReport": {
"title": "Gesundheitsbericht",
"anamnesisTitle": "Gesundheitsprofil",
"anamnesisNotRecorded": "Nicht erfasst",
"anamnesisUnreadable": "Gespeicherter Wert konnte nicht gelesen werden",
"anamnesisConditions": "Chronische Erkrankungen",
"anamnesisSmoking": "Rauchstatus",
"anamnesisAlcohol": "Alkoholkonsummuster",
"anamnesisShiftSchedule": "Arbeitszeitmodell",
"anamnesisColFact": "Profilangabe",
"anamnesisColValue": "Erfasster Wert",
"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, {count} Einträge, 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}",
"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)",
"typeGlucoseUnspecified": "Glukose (ohne Angabe)",
"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",
"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 ({low}–{high} {unit})",
"tirLow": "Niedrig (< {low} {unit})",
"tirVeryLow": "Sehr niedrig (< {veryLow} {unit})",
"tirHigh": "Hoch (> {high} {unit})",
"tirVeryHigh": "Sehr hoch (> {veryHigh} {unit})",
"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. Sie sind als Tendenz und nicht als klinisches Urteil zu lesen."
},
"illnessTitle": "Erkrankungen",
"illnessOngoing": "Andauernd",
"illnessColCondition": "Erkrankung",
"illnessColBodySite": "Körperstelle",
"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",
"labsSourceRangeNote": "* Der Referenzbereich stammt aus dem Befund und weicht vom gespeicherten Bereich ab:",
"labsCatalogRangeLabel": "gespeicherter Bereich",
"visitsTitle": "Arztbesuche",
"visitsColDate": "Datum",
"visitsColPractice": "Praxis",
"visitsColKind": "Art",
"visitsColReason": "Anlass",
"visitsColOutcome": "Ergebnis",
"visitsColConditions": "Erkrankungen",
"surgicalHistoryTitle": "Operationen und Eingriffe",
"surgicalHistoryColDate": "Datum",
"surgicalHistoryColProcedure": "Eingriff",
"surgicalHistoryColBodySite": "Körperstelle",
"surgicalHistoryColOutcome": "Ergebnis",
"immunizationsTitle": "Impfungen",
"immunizationsColDate": "Datum",
"immunizationsColVaccine": "Impfstoff",
"immunizationsColDose": "Dosis",
"immunizationsColLot": "Charge",
"emergency": {
"title": "Notfalldaten",
"subtitle": "Für den Einsatz im Notfall. Selbst angegeben; wenn möglich prüfen.",
"none": "Nicht erfasst",
"unreadable": "Gespeicherter Wert konnte nicht gelesen werden",
"bloodType": "Blutgruppe",
"bloodTypeUnknown": "Unbekannt",
"bloodTypeValues": {
"A_POS": "A positiv",
"A_NEG": "A negativ",
"B_POS": "B positiv",
"B_NEG": "B negativ",
"AB_POS": "AB positiv",
"AB_NEG": "AB negativ",
"O_POS": "0 positiv",
"O_NEG": "0 negativ"
},
"severeAllergies": "Schwere Allergien",
"activeMedications": "Aktuelle Medikamente",
"chronicConditions": "Chronische Erkrankungen",
"implants": "Implantate und Geräte",
"advanceDirective": "Patientenverfügung",
"advanceDirectiveValues": {
"EXISTS": "Vorhanden",
"NONE": "Keine",
"UNKNOWN": "Keine Angabe"
},
"organDonor": "Organspender",
"organDonorValues": {
"YES": "Ja",
"NO": "Nein",
"UNKNOWN": "Keine Angabe"
},
"contacts": "Notfallkontakte",
"notes": "Weitere Hinweise"
},
"courseRange": "Einnahmephase {start} bis {end}",
"courseSince": "Einnahmephase seit {start}",
"lifePackYears": "Packungsjahre",
"lifeAuditC": "AUDIT-C (Screening)",
"lifeAuditCScore": "{score} von 12 am {date}.",
"lifeAuditCAbove": "Grenzwert {cutoff} erreicht oder überschritten ({source}).",
"lifeAuditCBelow": "Unter dem Grenzwert {cutoff} ({source}).",
"lifeAuditCNoCutoff": "Kein geschlechtsbezogener Grenzwert angewandt.",
"lifeActivity": "Körperliche Aktivität",
"lifeActivityValue": "{minutes} Minuten pro Woche, Selbstauskunft",
"lifeSitting": "Sitzen am Werktag",
"lifeSittingValue": "{hours} Stunden, Selbstauskunft",
"lifeWork": "Arbeit",
"lifeNightWork": "Nachtarbeit",
"lifeExposures": "Belastungen: {list}",
"workouts": {
"title": "Trainings",
"summary": "{sessions} Einheiten, insgesamt {hours} h; im Schnitt {perWeek} Einheiten und {minutesPerWeek} Minuten pro Woche.",
"colSport": "Sportart",
"colSessions": "Einheiten",
"colTime": "Dauer",
"colDistance": "Strecke",
"colEnergy": "Energie",
"colHeartRate": "Ø Herzfrequenz",
"moreSports": "{count} weitere Sportarten sind in den Summen enthalten, aber nicht einzeln aufgeführt."
},
"medicationEffect": {
"title": "Veränderung rund um den Start der Medikamente",
"colMedication": "Medikament / Messwert",
"colStart": "Start",
"colLevel": "Niveauänderung (95-%-KI)",
"colSlope": "Trendänderung (95-%-KI)",
"colDays": "Tage vor / nach",
"to": "bis",
"week": "Woche",
"reasonNoStart": "Kein Startdatum erfasst",
"reasonBefore": "Zu wenige Werte vor dem Start",
"reasonAfter": "Zu wenige Werte seit dem Start",
"reasonFit": "Nicht berechenbar",
"excludedAdherence": "{count} Tage nach dem Start ausgelassen (unter {floor} % der Dosen eingenommen)",
"excludedNotTaking": "{count} Tage ausgelassen (pausiert oder zwischen Einnahmezeiträumen)",
"notTracked": "Einnahme nicht erfasst, daher keine Tage wegen ausgelassener Dosen entfernt",
"endDoseChange": "Zeitraum endet am {date}, vor der ersten Dosisänderung",
"days": "{before} Tage vor, {after} Tage nach dem Start, {excluded} Tage ausgelassen",
"method": "Segmentierte Regression über die Tageswerte von 90 Tagen vor bis höchstens 180 Tagen nach dem Start, Intervalle nach Newey-West. Tage nach dem Start, an denen in den 14 Tagen davor weniger als 80 % der Dosen eingenommen wurden, sind ausgelassen. Beschreibt einen zeitlichen Zusammenhang, keine nachgewiesene Wirkung des Medikaments.",
"autocorrelation": "starke Abhängigkeit vom Vortag, die Bereiche können daher noch zu eng sein",
"window": "ausgewertet {from} bis {to}, das kann über den Berichtszeitraum hinausreichen",
"windowLine": "Ausgewertet {from} bis {to}. Dieser Zeitraum kann über den Berichtszeitraum hinausreichen."
},
"screenerUnvalidated": "{label}: {count} von {total} Ergebnissen wurden in einer nicht wissenschaftlich validierten Übersetzung beantwortet; sie dienen der Orientierung."
},
"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",
"expandSidebar": "Ausklappen",
"collapseSidebarLabel": "Seitenleiste einklappen",
"expandSidebarLabel": "Seitenleiste ausklappen",
"userMenu": "Nutzermenü",
"accountSettings": "Kontoeinstellungen",
"mood": "Stimmung",
"coach": "Coach",
"skipToContent": "Zum Inhalt springen",
"breadcrumb": "Du bist hier",
"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",
"workout": "Workout",
"workoutDescription": "Eine Einheit, die kein Gerät aufgezeichnet hat",
"symptom": "Symptom",
"symptomDescription": "Eines deiner eigenen Symptome, mit Stärke",
"lifeEventDescription": "Umzug, Geburt, neue Stelle",
"lifeEvent": "Lebensereignis"
},
"cycle": "Zyklus",
"labs": "Laborwerte",
"profile": "Profil",
"vorsorge": "Vorsorge",
"illness": "Krankheit",
"documents": "Dokumente",
"vaccinations": "Impfungen",
"mentalWellbeing": "Seelisches Wohlbefinden",
"timeline": "Zeitleiste"
},
"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.",
"alreadySignedIn": {
"title": "Du bist bereits angemeldet",
"body": "Du bist als {username} angemeldet. Eine Einladung legt ein neues Konto an. Melde dich ab, um sie anzunehmen.",
"signOut": "Abmelden und Einladung annehmen"
},
"createAccount": "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.",
"errorLinkRequired": "Hier gibt es bereits ein Konto mit dieser E-Mail-Adresse. Melde dich einmal mit seinem Passwort oder Passkey an, um es mit Single Sign-on zu verbinden."
},
"native": {
"signingInToApp": "Anmeldung bei der HealthLog-App"
},
"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"
},
"confirmAccess": {
"title": "Bestätige, dass du es bist",
"body": "Ein Assistent möchte sich mit deinen HealthLog-Daten verbinden. Bestätige, dass du es bist; danach entscheidest du, ob du es erlaubst.",
"action": "Bestätigen",
"failed": "Das hat nicht geklappt. Bitte versuche es noch einmal.",
"nothingToConfirm": "Hier gibt es nichts zu bestätigen. Starte die Verbindung noch einmal in deinem Assistenten."
},
"insecureTransport": {
"title": "Die Anmeldung kann auf dieser Seite nicht abgeschlossen werden",
"body": "Dieser Server setzt sein Anmelde-Cookie nur über https://, aber diese Seite wurde über http:// geöffnet. Der Browser würde das Cookie verwerfen, deshalb ist die Anmeldung hier abgeschaltet.",
"fixLan": "Server im Heimnetz ohne TLS: Setze SESSION_COOKIE_SECURE=false in seinen Einstellungen und starte ihn neu.",
"fixHttps": "Server hinter einem HTTPS-Proxy: Öffne stattdessen die https://-Adresse und sorge dafür, dass der Proxy X-Forwarded-Proto: https weitergibt.",
"localhostNote": "Diese Seite läuft auf http://localhost, der Server setzt sein Anmelde-Cookie aber nur für https://. Die meisten Browser akzeptieren das auf localhost; wenn du nach der Anmeldung wieder hier landest, setze SESSION_COOKIE_SECURE=false."
},
"claim": {
"title": "Übernimm deine Gesundheitsakte",
"titleNamed": "Willkommen, {name}",
"description": "Deine Gesundheitsakte wurde bisher für dich geführt. Wähle, wie du dich anmeldest, und sie wird dein eigenes Konto. Nichts wird kopiert oder verschoben.",
"loading": "Dein Link wird geprüft…",
"invalid": "Dieser Link funktioniert nicht mehr",
"invalidHint": "Er ist unbekannt, abgelaufen, zurückgezogen oder schon benutzt. Bitte die Person, die ihn dir gegeben hat, um einen neuen.",
"oidcOnly": "Dieser Server erlaubt nur Single Sign-on. Fahre stattdessen mit deinem Identitätsanbieter fort.",
"signedInTitle": "Melde dich zuerst ab",
"signedInBody": "Du bist als {username} angemeldet. Dieser Link richtet eine Anmeldung für jemand anderen ein, melde dich also ab, bevor du ihn benutzt.",
"signOut": "Abmelden und weiter",
"guardiansTitle": "Wer vorerst Zugriff behält",
"guardiansHint": "Vorgeschlagen von den Personen, die deine Akte geführt haben. Du entscheidest direkt nach der Anmeldung.",
"guardianUnnamed": "Eine betreuende Person",
"usernameHint": "3 bis 30 Buchstaben, Ziffern, _ oder -.",
"usernameReserved": "Benutzernamen, die mit managed- beginnen, sind reserviert.",
"emailHint": "Pflicht, damit du wieder hineinkommst, wenn du dein Passwort vergisst.",
"consentNote": "Den Hinweis und jede KI-Nutzung bestätigst du selbst. Bis dahin geht nichts aus deiner Akte an einen KI-Anbieter.",
"expires": "Dieser Link gilt bis {date}.",
"submit": "Übernehmen",
"submitting": "Wird übernommen…",
"errorTaken": "Dieser Benutzername oder diese E-Mail-Adresse ist schon vergeben.",
"errorRateLimit": "Zu viele Versuche. Warte ein paar Minuten und versuche es erneut.",
"errorFailed": "Das hat nicht geklappt. Versuche es gleich noch einmal.",
"errorOffline": "Das hat den Server nicht erreicht. Prüfe deine Verbindung und versuche es erneut.",
"ssoContinue": "Weiter mit {provider}",
"ssoStarting": "Weiterleitung…",
"ssoHint": "Ab dann meldest du dich hier mit deinem Konto bei {provider} an.",
"ssoDivider": "oder",
"ssoFallbackName": "Single Sign-on",
"errorTitle": "Die Übernahme hat nicht geklappt",
"errorSubjectBound": "Diese Anmeldung gehört schon zu einem anderen Konto auf diesem Server. Öffne den Link noch einmal und nimm ein anderes Konto bei deinem Identitätsanbieter.",
"errorEmailTaken": "Dein Identitätsanbieter hat eine E-Mail-Adresse geliefert, die hier schon ein anderes Konto nutzt. Öffne den Link noch einmal und nimm ein anderes Konto, oder frag die Person, die den Server betreibt.",
"errorUsernameTaken": "Jemand hat diesen Benutzernamen inzwischen vergeben. Öffne den Link noch einmal und wähle einen anderen.",
"errorSignedIn": "Bei der Rückkehr warst du angemeldet. Melde dich ab und öffne den Link noch einmal.",
"errorSso": "Die Anmeldung bei deinem Identitätsanbieter hat nicht funktioniert. Öffne den Link noch einmal, um es erneut zu versuchen.",
"signInInstead": "Bei diesem Konto anmelden"
},
"inviteInvalid": {
"title": "Einladung ungültig",
"description": "Dieser Einladungslink ist unvollständig oder falsch kopiert. Bitte die Person, die dich eingeladen hat, um einen neuen Link.",
"toLogin": "Zur Anmeldung"
},
"deletionPending": "Dieses Konto wird am {date} gelöscht und ist bis dahin gesperrt. Ein Admin dieses Servers kann die Löschung vor diesem Datum rückgängig machen.",
"deletionPendingNoDate": "Dieses Konto ist zur Löschung vorgemerkt und gesperrt. Ein Admin dieses Servers kann die Löschung rückgängig machen, bis sie abgeschlossen ist."
},
"dashboard": {
"title": "Dashboard",
"greeting": {
"morning": "Guten Morgen",
"day": "Hallo",
"evening": "Guten Abend"
},
"welcomeBack": "{greeting}, willkommen zurück.",
"welcomeBackWithName": "{greeting}, {name}, willkommen zurück.",
"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",
"quickAddWorkout": "Workout erfassen",
"quickAddLifeEvent": "Lebensereignis erfassen",
"customizeDashboard": "Dashboard anpassen",
"medicationIntakeQuickAdd": {
"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",
"noneActionableTitle": "Heute ist nichts einzunehmen",
"noneActionableDescription": "Deine Medikamente sind pausiert, sind nur dokumentiert, oder ihr Einnahmezeitraum hat noch nicht begonnen oder ist schon vorbei. Eine vergangene Einnahme kannst du weiterhin im Verlauf des Medikaments nachtragen.",
"noneActionableCta": "Zu den Medikamenten"
},
"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",
"heroItemsTitle": "Highlights für heute",
"heroItemsDescription": "Wähle aus, welche Eintragstypen in den Highlights für heute erscheinen.",
"heroItemsNotificationNote": "Benachrichtigungseinstellungen werden separat verwaltet.",
"heroContentTitle": "Obere Karte zeigt",
"heroContentScore": "Gesundheitsscore und Tagesüberblick",
"heroContentReminders": "Highlights für heute",
"heroItems": {
"coach_checkin": "Coach-Check-ins",
"dose_window": "Medikamentendosen",
"preventive_care": "Vorsorge",
"sync_issue": "Synchronisierungsprobleme",
"milestone": "Meilensteine",
"ecg_new_recording": "Neue EKG-Aufzeichnungen",
"tension_window": "Anspannungsphasen",
"same_time_baseline": "Aktivität zur gleichen Tageszeit",
"upcoming_visit": "Termine"
},
"layoutReset": "Auf Standard zurücksetzen",
"layoutResetTitle": "Dashboard-Layout zurücksetzen?",
"layoutResetBody": "Dein Kachel-Layout und deine Auswahl für die Highlights für heute werden auf die Standardwerte zurückgesetzt.",
"layoutResetConfirm": "Layout zurücksetzen",
"layoutSaveSuccess": "Dashboard-Layout gespeichert",
"layoutSaveError": "Layout konnte nicht gespeichert werden",
"layoutConflictReloaded": "Layout wurde vom Server neu geladen. Bitte nimm deine Änderung erneut vor.",
"layoutResetSuccess": "Auf Standard-Layout zurückgesetzt",
"layoutUsingDefaults": "Standard-Layout aktiv",
"layoutCustomized": "Eigenes Layout aktiv",
"moveUp": "Nach oben",
"moveDown": "Nach unten",
"layoutTileColumn": "Kachel",
"layoutChartColumn": "Chart",
"layoutNativeOnlyTitle": "In der mobilen App sichtbar",
"layoutNativeOnlyHint": "Diese Widgets zeichnet die mobile App, nicht diese Seite. Sie liegen im selben gespeicherten Layout, hier wird ihre Sichtbarkeit gesetzt.",
"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",
"staleHintWeeksFew": "Letzter Wert vor {count} Wochen",
"staleHintMonthsOne": "Letzter Wert vor 1 Monat",
"staleHintMonthsOther": "Letzter Wert vor {count} Monaten",
"staleHintMonthsFew": "Letzter Wert vor {count} Monaten",
"recentWorkouts": {
"title": "Letzte Workouts",
"viewAll": "Alle anzeigen",
"empty": {
"title": "Noch keine Workouts",
"cta": "Verbinde eine Datenquelle in den Einstellungen, 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",
"mood": "Stimmung",
"bmi": "BMI"
},
"unit": {
"weight": "kg",
"bloodPressure": "mmHg",
"pulse": "bpm",
"bodyFat": "%",
"glucose": "mg/dL",
"sleep": "h",
"steps": "Schritte",
"totalBodyWater": "kg",
"boneMass": "kg",
"oxygenSaturation": "%",
"mood": "/5",
"bmi": "kg/m²"
}
},
"quickAddSymptom": "Symptom erfassen",
"todayCardVisible": "Obere Karte anzeigen",
"recoveryKitBanner": {
"title": "Wiederherstellungs-Kit sichern",
"body": "Ohne Kopien der Schlüssel, die dieser Server nutzt, lassen sich seine Daten nach einer Neuinstallation nicht wiederherstellen. Das dauert nur ein paar Minuten.",
"action": "Kit öffnen"
},
"greetingOnly": "{greeting}.",
"welcomeNew": "Willkommen.",
"welcomeNewWithName": "Willkommen, {name}."
},
"measurements": {
"title": "Messungen",
"subtitle": "Werte erfassen und die vollständige Historie einsehen.",
"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": "Gib einen gültigen Wert ein.",
"invalidTimestamp": "Wähle einen gültigen Zeitpunkt.",
"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} in Insights öffnen",
"sleepNapCaption": "inkl. {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",
"sourceNightscout": "Nightscout",
"sourcePolar": "Polar",
"sourceOura": "Oura",
"sourceTelegram": "Telegram",
"sourceMcp": "MCP",
"sourceGoogleHealth": "Google Health",
"sourceStrava": "Strava",
"sourceExternal": "Externes Gerät",
"bulkDeleteSuccess": "{count} Messwerte gelöscht",
"bulkDeleteSuccessOne": "Messwert gelöscht",
"bulkDeleteError": "Fehler beim Löschen der ausgewählten Messungen",
"bulkDeleteConfirmTitle": "{count} Messwerte löschen?",
"bulkDeleteConfirmTitleOne": "Diesen Messwert löschen?",
"bulkDeleteConfirmBody": "Die {count} ausgewählten Messungen werden gelöscht. Direkt danach kannst du das kurz rückgängig machen.",
"bulkDeleteConfirmBodyOne": "Die ausgewählte Messung wird gelöscht. Direkt danach kannst du das kurz rückgängig machen.",
"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",
"unitRating": "Stufe",
"typeWho5Score": "WHO-5-Wert",
"typeSciScore": "SCI-Wert",
"typeExerciseMinutes": "Trainingsminuten",
"typeStandMinutes": "Stehminuten",
"typeStandHours": "Stehstunden",
"typeMindfulMinutes": "Achtsamkeitsminuten",
"typeStateOfMindValence": "Gemütszustand",
"typeAfibBurden": "VHF-Last",
"typeIndoorCo2": "CO₂ (innen)",
"typeIndoorTemperature": "Raumtemperatur",
"typeIndoorHumidity": "Luftfeuchtigkeit (innen)",
"durationReadAs": "Gelesen als {duration}",
"durationHoursMinutes": "{hours} Std. {minutes} Min.",
"durationHoursOnly": "{hours} Std.",
"durationMinutesOnly": "{minutes} Min.",
"durationInvalid": "Gib eine Dauer ein, zum Beispiel 7,5, 7:30 oder 7h 30m.",
"durationTooLong": "Ein Eintrag kann nicht länger als 24 Stunden sein.",
"sourceHealthConnect": "Health Connect",
"typeBodyBattery": "Body Battery",
"typeStressLevel": "Stresslevel",
"typeTrainingReadiness": "Trainingsbereitschaft",
"typeAcuteTrainingLoad": "Akute Trainingsbelastung",
"sourceGarmin": "Garmin"
},
"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",
"loadError": "Erfassungsstatus konnte nicht geladen werden.",
"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. Eine Karte erscheint nur, wenn etwas auffällt. Ist mindestens eine dieser Quellen verbunden, ist keine Karte ein gutes Zeichen, kein fehlendes Feature; ist noch keine verbunden, wird schlicht noch nichts überwacht."
}
},
"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",
"tagsNotSaved": "Gespeichert. Tags, die es nicht mehr gibt, wurden weggelassen.",
"deleteError": "Fehler beim Löschen",
"deletedToast": "Eintrag gelöscht",
"restoredToast": "Eintrag wiederhergestellt",
"restoreError": "Wiederherstellen fehlgeschlagen",
"invalidTimestamp": "Wähle einen gültigen Zeitpunkt.",
"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",
"caffeine": "Koffein",
"nicotine": "Nikotin",
"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",
"bulkDeleteSuccessOne": "Eintrag gelöscht",
"bulkDeleteError": "Fehler beim Löschen der ausgewählten Einträge",
"bulkDeleteConfirmTitle": "{count} Einträge löschen?",
"bulkDeleteConfirmTitleOne": "Diesen Eintrag löschen?",
"bulkDeleteConfirmBody": "Die {count} ausgewählten Stimmungseinträge werden gelöscht. Direkt danach kannst du das kurz rückgängig machen.",
"bulkDeleteConfirmBodyOne": "Der ausgewählte Stimmungseintrag wird gelöscht. Direkt danach kannst du das kurz rückgängig machen.",
"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",
"sectionNoteDetails": "Notiz & Details",
"quickTagsHelp": "Häufig genutzte Tags: ein Tipp genügt",
"quickTagsExpand": "Weitere",
"loadError": "Stimmungseinträge konnten nicht geladen werden.",
"sectionLevelA": "Gefühlslage",
"sectionLevelAHelp": "Optional. Was du nicht angibst, bleibt leer.",
"dimensionNotAnswered": "nicht angegeben",
"dimensionClear": "leeren",
"dimensionValueText": "{value} von {max}: {low} bis {high}",
"dimension": {
"a1": {
"label": "Stimmung",
"low": "sehr unangenehm",
"high": "sehr angenehm"
},
"a2": {
"label": "Stress",
"low": "vollkommen entspannt",
"high": "extrem belastet"
},
"a3": {
"label": "Energie",
"low": "erschöpft",
"high": "energiegeladen"
},
"a4": {
"label": "Verbundenheit",
"low": "isoliert",
"high": "verstanden und unterstützt"
},
"a5": {
"label": "Stabilität",
"low": "vollständig überfordert",
"high": "sehr handlungsfähig"
}
},
"context": {
"section": {
"work": "Arbeit",
"contacts": "Kontakte",
"leisure": "Freizeit",
"events": "Ereignis"
},
"field": {
"workStatus": "Arbeitstag",
"workMinutes": "Arbeitszeit",
"overtimeMinutes": "Überstunden",
"workLoad": "Arbeitsbelastung",
"workSatisfaction": "Zufriedenheit mit der Arbeit",
"contactCircles": "Mit wem Kontakt bestand",
"contactForm": "Art des Kontakts",
"contactExtent": "Dauer",
"contactQuality": "Qualität des Kontakts",
"contactSupport": "Empfundene Unterstützung",
"leisureCategories": "Womit die Freizeit verbracht wurde",
"leisureMinutes": "Zeit für dich",
"leisureJoy": "Freude",
"leisureRecovery": "Erholung",
"eventType": "Was passiert ist",
"eventValence": "Wie es angekommen ist",
"eventAt": "Wann",
"notes": "Notiz"
},
"workStatus": {
"off": "Nicht gearbeitet",
"partial": "Teilweise gearbeitet",
"regular": "Regulär gearbeitet",
"overtime": "Länger als üblich"
},
"contactCircles": {
"partner": "Partnerschaft",
"child": "Kind",
"family": "Familie",
"friends": "Freundeskreis",
"colleagues": "Kollegium",
"acquaintances": "Bekannte",
"professional": "Professionelle Begleitung",
"other": "Sonstige"
},
"contactForm": {
"inPerson": "Persönlich",
"phone": "Telefon",
"video": "Videoanruf",
"written": "Schriftlich"
},
"contactExtent": {
"brief": "Kurz",
"medium": "Mittel",
"extended": "Ausgedehnt"
},
"leisureCategories": {
"film": "Film oder Serie",
"reading": "Lesen",
"gaming": "Spielen",
"music": "Musik",
"creative": "Kreatives",
"outing": "Unterwegs",
"garden": "Garten",
"cooking": "Kochen",
"timeWithChild": "Zeit mit dem Kind",
"relaxation": "Ausruhen",
"other": "Sonstiges"
},
"eventType": {
"goodNews": "Gute Nachricht",
"badNews": "Schlechte Nachricht",
"success": "Etwas ist gelungen",
"disappointment": "Eine Enttäuschung",
"conflict": "Ein Konflikt",
"appointment": "Ein Termin",
"familyEvent": "Ein Familienereignis",
"change": "Eine Veränderung",
"unexpected": "Etwas Unerwartetes"
},
"rating": {
"workLoad": {
"low": "kein Druck",
"high": "unter starkem Druck"
},
"workSatisfaction": {
"low": "gar nicht zufrieden",
"high": "sehr zufrieden"
},
"contactQuality": {
"low": "hat nicht gutgetan",
"high": "hat sehr gutgetan"
},
"contactSupport": {
"low": "nicht unterstützt",
"high": "gut unterstützt"
},
"leisureJoy": {
"low": "keine Freude",
"high": "viel Freude"
},
"leisureRecovery": {
"low": "nicht erholsam",
"high": "sehr erholsam"
},
"eventValence": {
"low": "deutlich schlecht",
"high": "deutlich gut"
}
}
},
"dayContext": {
"minutesPlaceholder": "Minuten",
"contactsHelp": "Wie viele Menschen es waren, sagt nichts über den Tag. Was zählt, ist wie der Kontakt sich angefühlt hat.",
"notePlaceholder": "Was zu diesem Tag noch gehört",
"notRecorded": "nicht erfasst",
"linkedTitle": "Aus deinen anderen Modulen",
"linkedHelp": "Gelesen, wo es gepflegt wird. Änderst du es dort, ändert es sich auch hier.",
"linkedSleep": "Geschlafen",
"linkedInBed": "Im Bett",
"linkedSteps": "Schritte",
"linkedActiveEnergy": "Aktive Energie",
"linkedRestingHeartRate": "Ruhepuls",
"linkedHrv": "Herzratenvariabilität",
"bodyLogged": "Im Krankheitstagebuch erfasst: {count} Symptome",
"bodyNotLogged": "Für diesen Tag ist im Krankheitstagebuch nichts erfasst",
"openIllness": "Öffnen"
},
"sourceNotification": "Benachrichtigung",
"tagCatalogLoadError": "Die Tags 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",
"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",
"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",
"categoryMentalHealth": "Psychische Gesundheit",
"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",
"recordOnlyBadge": "Nur dokumentiert",
"courseEndedBadge": "Beendet",
"trackIntake": {
"title": "Einnahmen erfassen",
"label": "Einnahmen erfassen",
"helperOn": "Dosen werden nach diesem Plan fällig, mit Erinnerungen und Therapietreue.",
"helperOff": "Nur dokumentiert: nichts wird fällig, keine Erinnerungen, keine Therapietreue.",
"enabledToast": "Einnahmen werden erfasst",
"disabledToast": "Einnahmen werden nicht erfasst",
"toggleFailed": "Einnahme-Erfassung konnte nicht geändert werden."
},
"autoMarkTaken": {
"label": "Einnahmen automatisch erfassen",
"helper": "HealthLog erfasst jede geplante Dosis zu ihrer Uhrzeit als eingenommen. Du kannst eine Dosis weiterhin selbst ändern oder überspringen. Erinnerungen entfallen.",
"cardHint": "Wird automatisch erfasst",
"enabledToast": "Einnahmen werden jetzt automatisch erfasst",
"disabledToast": "Einnahmen werden nicht mehr automatisch erfasst",
"toggleFailed": "Automatische Erfassung konnte nicht geändert werden."
},
"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",
"complianceNotApplicable": "Therapietreue nicht anwendbar",
"complianceNotApplicableReason": "In HealthLog ist kein lokaler Zeitplan gespeichert.",
"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 seit {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…",
"loadMore": "Weitere laden",
"deleteCta": "Löschen",
"deleteError": "Eintrag konnte nicht gelöscht werden",
"errorSeverity": "Schweregrad muss zwischen 1 und 5 liegen",
"errorEntry": "Wähle ein Symptom aus",
"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": "Gib zuerst eine Beschreibung ein.",
"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.",
"consent": "Für das Lesen deiner Beschreibung mit KI brauchst du zuerst deine Einwilligung.",
"unavailable": "Das Lesen von Beschreibungen mit KI ist hier gerade nicht verfügbar."
}
},
"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 und 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.",
"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"
},
"overrideHint": "Optional: für diese Uhrzeit eine abweichende Dosis oder Stückzahl festlegen. Leer lassen, um den Standard des Medikaments zu verwenden.",
"doseOverrideLabel": "Dosis für diese Uhrzeit (optional)",
"doseOverridePlaceholder": "z. B. eine halbe Tablette",
"unitsOverrideLabel": "Verbrauchte Einheiten zu dieser Uhrzeit",
"unitsOverrideInherit": "Standard",
"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",
"short": "Fertig"
}
},
"classRow": {
"bloodPressure": "Blutdruck",
"diabetes": "Diabetes",
"hormone": "Hormone",
"glp1": "GLP-1-Injektion",
"painRelief": "Schmerz",
"allergy": "Allergie",
"vitamin": "Vitamine",
"supplement": "Nahrungsergänzung",
"antibiotic": "Antibiotikum",
"mentalHealth": "Psychische Gesundheit",
"thyroid": "Schilddrüse",
"digestive": "Magen/Darm",
"skin": "Hautpflege",
"sleepAid": "Schlafmittel",
"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 für {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 Stimmungs-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 Standard zurücksetzen",
"phaseSaved": "Erinnerungsphasen gespeichert",
"sourceWeb": "Web",
"sourceApi": "iOS-App",
"sourceReminder": "Erinnerung",
"sourceImport": "Import",
"sourceAppleHealth": "Apple Health",
"intakeSourceVia": "über {origin}",
"intakeRecordedAutomatically": "Automatisch erfasst",
"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",
"intakeHistoryInjectionSite": "Injektionsstelle: {site}",
"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": {
"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 genau so, als wäre sie dort erfasst worden: pünktlich oder verspätet, je nachdem, wann sie genommen wurde. Die Quote wird also 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": "Vom iPhone verwaltet",
"clientManagedHint": "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 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",
"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.",
"nextDoseNotTracked": "Nicht erfasst, nur dokumentiert.",
"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": "Behälter korrigieren",
"adjustDescription": "Verbleibende Einheiten setzen und die Daten dieses Behälters korrigieren. 0 Einheiten markiert ihn 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 oder 1,5 für anderthalb (über 0, bis 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",
"addManufacturerLabel": "Hersteller",
"addDoseStrengthLabel": "Wirkstärke",
"addDoseStrengthHint": "Wie auf dem Behälter aufgedruckt, z. B. 5 mg/0,5 ml.",
"openedOn": "Geöffnet {date}",
"expiresOn": "Haltbar bis {date}",
"summaryAllExpired": "Kein nutzbarer Bestand: {units} Einheiten als abgelaufen markiert",
"editExpiryLabel": "Aufgedrucktes Haltbarkeitsdatum",
"editExpiryHelper": "Das Datum auf der Packung. Leer lassen, wenn keines erfasst ist.",
"editOpenedLabel": "Geöffnet am",
"editOpenedHelper": "Leer lassen, wenn der Behälter noch verschlossen ist.",
"editOpenedHelperClock": "Ein Pen oder eine Ampulle läuft 30 Tage nach dem Öffnen ab. Leer lassen, wenn noch verschlossen."
},
"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.",
"perSlotUnits": "{units} pro Dosis",
"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}",
"reorderDescription": "Bestimme die Reihenfolge deiner Medikamente 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} {unit} 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",
"segmented": {
"title": "Veränderung zum Start",
"level": "Direkt zum Start hat sich das Niveau um {value} {unit} verschoben (95-%-Bereich {low} bis {high}).",
"slope": "Nach dem Start hat sich der Wochentrend um {value} {unit} pro Woche verändert (95-%-Bereich {low} bis {high}).",
"preSlope": "Vor dem Start lag der Trend bei {value} {unit} pro Woche.",
"includesZero": "Wo ein Bereich die Null einschließt, passen diese Werte auch zu gar keiner Veränderung.",
"basis": "Grundlage: {before} Tage vor und {after} Tage nach dem Start ({from} bis {to}).",
"excludedAdherence": "{count} Tage nach dem Start wurden ausgelassen, weil in den {lookback} Tagen davor weniger als {floor} % der Dosen eingenommen wurden.",
"excludedNotTaking": "{count} Tage wurden ausgelassen, weil das Medikament pausiert war oder zwischen zwei Einnahmezeiträumen lag.",
"notTracked": "Für dieses Medikament wird die Einnahme nicht erfasst, deshalb wurden keine Tage wegen ausgelassener Dosen entfernt.",
"endDoseChange": "Der Zeitraum endet vor der ersten Dosisänderung und beschreibt deshalb die Anfangsdosis.",
"confoundersTitle": "Weitere Medikamentenänderungen in diesem Zeitraum, die diese Ansicht nicht von diesem Medikament trennen kann:",
"confounderStarted": "{name} begonnen am {date}",
"confounderStopped": "{name} beendet am {date}",
"confounderDoseChange": "{name}: Dosis geändert am {date}",
"confounderPaused": "{name} pausiert am {date}",
"confounderResumed": "{name} fortgesetzt am {date}",
"method": "So wird gerechnet: Eine Gerade wird durch die Tageswerte vor dem Start gelegt, eine zweite durch die danach. Der Sprung zwischen beiden am Start ist die Niveauänderung, der Unterschied ihrer Steigungen die Trendänderung. Die Bereiche berücksichtigen, dass Werte von einem Tag auf den nächsten nachwirken.",
"needStart": "Lege ein Startdatum fest, um die Veränderung zum Start zu sehen.",
"needBefore": "Für die Veränderung zum Start braucht es Werte an mindestens {days} Tagen, verteilt über {span} Tage vor dem Start.",
"needAfter": "Für die Veränderung zum Start braucht es Werte an mindestens {days} Tagen, verteilt über {span} Tage seit dem Start und an Tagen mit eingenommenen Dosen.",
"fitFailed": "Diese Werte ließen sich nicht auswerten, deshalb wird keine Veränderung zum Start gezeigt.",
"autocorrelation": "Die Tageswerte hängen stark vom Vortag ab, deshalb können selbst diese Bereiche zu eng sein."
}
},
"import": {
"resultSuccess": "{imported} Einnahmen importiert",
"resultPartial": "{imported} importiert, {skipped} übersprungen.",
"resultNothing": "Nichts importiert: alle {skipped} Einträge wurden übersprungen.",
"resultAlreadyRecorded": "{recorded} Einnahmen sind bereits erfasst. Es wurde nichts Neues hinzugefügt.",
"resultEmpty": "Diese Datei enthielt keine Einnahmen.",
"showSkipDetails": "Übersprungene Zeilen anzeigen ({count})",
"skipDetailLine": "Zeile {line}: {reason}",
"skipDetailsOmitted": "{count} weitere übersprungene Zeilen werden nicht angezeigt.",
"skipGroupOne": "{count} Eintrag übersprungen: {reason}",
"skipGroupFew": "{count} Einträge übersprungen: {reason}",
"skipGroupOther": "{count} Einträge übersprungen: {reason}",
"reasonDuplicateInFile": "ein anderer Eintrag derselben Datei hat dasselbe Datum und dieselbe Uhrzeit",
"reasonAlreadyRecorded": "für dieses Datum und diese Uhrzeit ist bereits eine Einnahme erfasst",
"reasonUnknown": "Grund nicht erfasst",
"reasonMedicationNotFound": "kein Medikament im Bestand passt zum Namen in der Datei",
"reasonMedicationAmbiguous": "der Name in der Datei passt auf mehr als ein Medikament",
"reasonMedicationIsMirrored": "das Medikament ist eine schreibgeschützte Kopie aus einer anderen App",
"reasonStatusUnknown": "der Status in der Datei gehört nicht zum dokumentierten Format",
"reasonMissingTimestamp": "die Zeile nennt keine Zeit",
"reasonMissingOffset": "die Zeit trägt keinen UTC-Offset, der Zeitpunkt ist damit unbekannt",
"reasonUnreadableTimestamp": "die Zeit entspricht nicht dem dokumentierten Format",
"reasonImplausibleTimestamp": "die Zeit nennt keinen echten Zeitpunkt oder liegt in der Zukunft",
"reasonMissingMedication": "die Zeile nennt kein Medikament",
"reasonUnreadableDosage": "die Dosis ist keine Zahl",
"reasonUnreadableRow": "die Zeile hat weniger Spalten als die Kopfzeile",
"reasonStatusNoDoseInformation": "die Datei hält zu dieser Dosis nichts fest; niemand hat reagiert und nichts wurde eingetragen",
"reasonStatusReminderEvent": "die Zeile betrifft eine verschobene Erinnerung und sagt nichts über die Dosis",
"reasonStatusNotificationNotSent": "die Zeile hält fest, dass keine Benachrichtigung gesendet wurde; das betrifft die App, nicht die Dosis"
},
"unitsPerDoseField": {
"other": "Andere…",
"inputLabel": "Einheiten pro Dosis, anderer Wert",
"placeholder": "z. B. 1,5 oder 1 1/2",
"invalid": "Gib eine Zahl über 0 und bis 100 ein, zum Beispiel 1,5 oder 1 1/2.",
"preview": "Zählt als {value} pro Dosis"
},
"category": {
"custom": {
"add": "Neue Kategorie",
"label": "Name der Kategorie",
"labelPlaceholder": "z. B. Reiseapotheke",
"create": "Hinzufügen",
"limitReached": "Du hast die Grenze von 20 eigenen Kategorien erreicht.",
"saveFailed": "Das wurde nicht gespeichert. Bitte versuch es noch einmal.",
"bpGateNote": "Die Blutdruck-Insights zählen nur Medikamente in der eingebauten Kategorie Blutdruck.",
"manage": "Kategorien verwalten",
"manageDescription": "Deine eigenen Kategorien, neben den eingebauten.",
"hidden": "Ausgeblendet",
"count": "{count} Medikamente",
"rename": "Umbenennen",
"hide": "In der Auswahl ausblenden",
"show": "In der Auswahl zeigen",
"delete": "Löschen",
"deleteTitle": "Diese Kategorie löschen?",
"deleteBody": "{count} Medikamente in dieser Kategorie wandern zu Sonstige. Die Medikamente selbst bleiben.",
"movedToOther": "Kategorie gelöscht. {count} Medikamente sind jetzt unter Sonstige."
},
"filter": {
"label": "Kategorie",
"all": "Alle Kategorien"
}
},
"course": {
"endedOn": "Letzte Einnahmephase endete am {date}",
"nth": "Phase {n}",
"startNew": "Neue Einnahmephase starten",
"editTitle": "Einnahmephase bearbeiten",
"startsOn": "Erster Tag",
"endsOn": "Letzter Tag (optional)",
"note": "Notiz (optional)",
"notePlaceholder": "z. B. die Grippe im März",
"title": "Einnahmephasen",
"helper": "Wann du es genommen hast. Einnahmen werden nur innerhalb einer Phase erwartet.",
"none": "Durchgehend genommen, keine einzelnen Phasen.",
"range": "{start} bis {end}",
"since": "Seit {start}",
"meta": "Phase {n}, {status}, {taken} Einnahmen",
"status": {
"current": "läuft",
"upcoming": "geplant",
"ended": "beendet"
},
"delete": "Phase löschen",
"deleteTitle": "Diese Einnahmephase löschen?",
"deleteBody": "Die Daten verschwinden, deine erfassten Einnahmen bleiben im Verlauf.",
"deleteLastConfirm": "Das ist die einzige Phase. Ohne sie gilt das Medikament als durchgehend genommen, seit du es angelegt hast. Die erfassten Einnahmen bleiben.",
"error": {
"overlap": "Diese Phase überschneidet sich mit einer anderen.",
"currentOpen": "Beende die laufende Phase, bevor du eine danach anlegst.",
"oneShot": "Ein einmaliges Medikament hat nur eine Phase.",
"invalidRange": "Der letzte Tag kann nicht vor dem ersten liegen.",
"generic": "Das wurde nicht gespeichert. Bitte versuch es noch einmal."
}
},
"composition": {
"title": "Zusammensetzung",
"empty": "Trag ein, was eine Tablette oder Kapsel enthält, damit jede genommene Dosis in deine Mikronährstoffe zählt.",
"perUnitNote": "Pro Tablette oder Kapsel; jede genommene Dosis zählt in die Mikronährstoffe des Tages.",
"add": "Hinzufügen",
"edit": "Bearbeiten",
"rowHelper": "Was eine Tablette oder Kapsel enthält, für die Mikronährstoffe.",
"sheetTitle": "Was eine Einheit enthält",
"sheetDescription": "Trag die Mengen pro Tablette oder Kapsel so ein, wie sie auf dem Etikett stehen.",
"nutrientLabel": "Nährstoff",
"amountLabel": "Menge",
"unitLabel": "Einheit",
"choose": "Nährstoff wählen",
"addRow": "Nährstoff hinzufügen",
"removeRow": "{name} entfernen",
"editorEmpty": "Noch kein Nährstoff. Füge einen pro Zeile des Etiketts hinzu.",
"labelPhoto": "Vom Etikettfoto lesen",
"labelReading": "Etikett wird gelesen…",
"labelWaiting": "Der Hintergrunddienst hat das Etikett noch nicht übernommen.",
"labelReviewNote": "Prüf jede Zeile mit dem Etikett, bevor du speicherst.",
"lowConfidence": "Diese Zeile war schwer lesbar; prüf sie mit dem Etikett.",
"unmatchedTitle": "Zeilen ohne passenden Nährstoff, bei Bedarf von Hand eintragen:",
"servingNote": "Auf dem Etikett steht: {note}. Die Mengen sind pro einzelner Einheit angegeben.",
"labelError": "Das Etikett konnte nicht gelesen werden",
"saveError": "Die Zusammensetzung konnte nicht gespeichert werden",
"catalogError": "Die Nährstoffliste konnte nicht geladen werden",
"invalidRow": "Wähl in jeder Zeile einen Nährstoff und trag eine Menge über null ein."
}
},
"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",
"bucketWeeklyDaily": "Tagesschnitt je Woche",
"bucketMonthlyDaily": "Tagesschnitt je Monat",
"days7Label": "7T",
"days7Title": "Letzte 7 Tage",
"days30Label": "30T",
"daysNLabel": "{days}T",
"days30Title": "Letzte 30 Tage",
"days90Label": "90T",
"days90Title": "Letzte 90 Tage",
"daysAllLabel": "Alle",
"daysAllTitle": "Gesamter Zeitraum",
"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.",
"tooltipHourlyMean": "{metric} (Durchschnitt der Stunden)",
"dataTable": {
"toggle": "Datenpunkte ({count})",
"columnDate": "Datum",
"noValue": "Kein Wert",
"captionDay": "Eine Zeile pro Tag für {metric}, genau die Punkte, die das Diagramm zeichnet.",
"captionWeek": "Eine Zeile pro Woche für {metric}, der Mittelwert der Tage dieser Woche, genau die Punkte, die das Diagramm zeichnet.",
"captionMonth": "Eine Zeile pro Monat für {metric}, der Mittelwert der Tage dieses Monats, genau die Punkte, die das Diagramm zeichnet.",
"hourlyMeanNote": "{metric} ist der Tagesdurchschnitt, bei dem jede Stunde einmal zählt, damit ein Training nicht den Rest des Tages überwiegt."
},
"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."
},
"medicationsEmptyAction": "Medikament anlegen",
"rangeLabel": "Zeitraum"
},
"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": {
"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": {
"pattern": {
"dismiss": "Ausblenden",
"dismissed": "Dieses Muster bleibt ausgeblendet, bis sich die Evidenz ändert.",
"restore": "Wieder anzeigen",
"dismissError": "Dieses Muster konnte nicht ausgeblendet werden.",
"restoreError": "Dieses Muster konnte nicht wiederhergestellt werden.",
"loadError": "Muster konnten nicht geladen werden.",
"empty": "Kein aktuelles Muster hat die Evidenzschwelle erreicht.",
"seasonalNote": "Seit Version 1.42 rechnet HealthLog Jahreszeit und Langzeittrend heraus, bevor es Werte vergleicht. Du siehst dadurch weniger Zusammenhänge, aber die verbliebenen halten besser. Viele der früheren Muster waren der Kalender.",
"seasonalNoteDismiss": "Hinweis schließen"
},
"correlation": {
"direction": {
"higher": "höher",
"lower": "niedriger"
},
"weekdayDirection": {
"above": "über",
"below": "unter"
},
"channelFactor": "die Bewertung von {factor}",
"channel": {
"WEIGHT": "das Gewicht",
"BLOOD_GLUCOSE": "der Blutzucker",
"BLOOD_PRESSURE_SYS": "der systolische Blutdruck",
"BLOOD_PRESSURE_DIA": "der diastolische Blutdruck",
"ACTIVITY_STEPS": "die tägliche Schrittzahl",
"SLEEP_DURATION": "die Schlafdauer",
"HEART_RATE_VARIABILITY": "die Herzratenvariabilität",
"RESTING_HEART_RATE": "die Ruheherzfrequenz",
"TIME_IN_DAYLIGHT": "die Zeit im Tageslicht",
"MOOD": "die Stimmung",
"PULSE": "der Ruhepuls",
"MEDICATION_COMPLIANCE": "die Medikamententreue",
"SYMPTOM_SEVERITY": "die Symptomstärke",
"ENV_TEMP_MEAN": "die Tagestemperatur",
"ENV_TEMP_MIN": "die nächtliche Tiefsttemperatur",
"ENV_SUNSHINE": "der Sonnenschein",
"ENV_DAYLIGHT": "das Tageslicht",
"ENV_PRECIP": "der Niederschlag",
"ENV_PRESSURE_MEAN": "der Luftdruck",
"ENV_PRESSURE_DELTA": "die Luftdruckschwankung am Tag",
"ENV_PM25": "der Feinstaub (PM2,5)",
"ENV_OZONE_8H": "das Ozon",
"ENV_POLLEN_MAX": "der Pollenflug",
"HRV_RMSSD": "die Herzratenvariabilität (RMSSD)",
"HYDRATION": "die Trinkmenge",
"CAFFEINE": "die Koffeinmenge",
"ALCOHOL": "der Alkoholkonsum",
"WORKOUT_MINUTES": "die Workout-Dauer",
"TRAINING_LOAD": "die Trainingslast",
"EXERCISE_MINUTES": "die Trainingsminuten der Aktivitätsringe",
"STAND_MINUTES": "die Stehminuten",
"MINDFUL_MINUTES": "die Achtsamkeitsminuten",
"STATE_OF_MIND_VALENCE": "die erfasste Gemütslage",
"INDOOR_CO2": "der CO2-Wert im Raum",
"INDOOR_TEMPERATURE": "die Raumtemperatur",
"INDOOR_HUMIDITY": "die Luftfeuchtigkeit im Raum"
},
"daily": {
"high": "Wenn {behaviour} höher liegt, fällt {outcome} am Folgetag in deinen Daten tendenziell {direction} aus. Das ist ein Muster, das Beachtung verdient, keine Ursache.",
"moderate": "Wenn {behaviour} höher liegt, scheint {outcome} am Folgetag nach bisheriger Datenlage eher {direction} auszufallen. Das ist ein Muster, das Beachtung verdient, keine Ursache.",
"faint": "Wenn {behaviour} höher liegt, gibt es in deinen Daten allenfalls einen schwachen Hinweis darauf, dass {outcome} am Folgetag {direction} ausfällt. Das ist zu gering, um sich darauf zu verlassen, und niemals eine Ursache."
},
"lab": {
"default": "Höhere {lab}-Werte gehen in deinen Daten damit einher, dass {outcome} im selben Zeitraum {direction} ausfällt, ein Zusammenhang, den du ärztlich im Blick behalten solltest, niemals eine Ursache.",
"faint": "Höhere {lab}-Werte deuten in deinen Daten allenfalls schwach darauf hin, dass {outcome} im selben Zeitraum {direction} ausfällt. Das ist zu gering, um sich darauf zu verlassen, und niemals eine Ursache, aber ärztlich abklärenswert."
},
"hypothesis": {
"bpCompliance": {
"support": "Höhere Medikamententreue geht mit niedrigeren systolischen Werten einher, ein Muster, das Beachtung verdient.",
"surprising": "Medikamententreue und systolischer Wert bewegen sich in deinen Daten gemeinsam, das ist überraschend. Sprich mit deiner Ärztin oder deinem Arzt, bevor du etwas änderst.",
"none": "Medikamententreue und systolischer Wert bewegen sich in diesem Zeitraum nicht deutlich gemeinsam."
},
"moodPulse": {
"support": "Tage mit schlechterer Stimmung gehen mit höherem Ruhepuls einher, ein Muster, das Beachtung verdient.",
"surprising": "Tage mit besserer Stimmung gehen in deinen Daten mit höherem Ruhepuls einher, das ist überraschend.",
"none": "Stimmung und Ruhepuls bewegen sich in diesem Zeitraum nicht deutlich gemeinsam."
},
"weightWeekday": "Das Gewicht am {weekday} liegt {delta} kg {direction} deinem Durchschnitt der übrigen Tage, ein Muster, das Beachtung verdient."
},
"dailySameDay": {
"high": "Mehr {behaviour} am selben Tag und am Vortag geht in deinen Daten tendenziell mit {direction} {outcome} einher. Das ist ein Muster, das sich zu beobachten lohnt, keine Ursache.",
"moderate": "Mehr {behaviour} am selben Tag und am Vortag scheint in deinen Daten nach bisheriger Lage mit {direction} {outcome} einherzugehen. Das ist ein Muster, das sich zu beobachten lohnt, keine Ursache.",
"faint": "Mehr {behaviour} am selben Tag und am Vortag zeigt in deinen Daten allenfalls einen schwachen Hinweis auf {direction} {outcome}. Das ist zu klein, um sich darauf zu stützen, und nie eine Ursache."
},
"channelNutrient": "die Zufuhr von {nutrient}",
"dailyOvernight": {
"high": "Wenn {behaviour} über Nacht höher liegt, fällt {outcome} in derselben Nacht in deinen Daten tendenziell {direction} aus. Das ist ein Muster, das Beachtung verdient, keine Ursache.",
"moderate": "Wenn {behaviour} über Nacht höher liegt, scheint {outcome} in derselben Nacht nach bisheriger Datenlage eher {direction} auszufallen. Das ist ein Muster, das Beachtung verdient, keine Ursache.",
"faint": "Wenn {behaviour} über Nacht höher liegt, gibt es in deinen Daten allenfalls einen schwachen Hinweis darauf, dass {outcome} in derselben Nacht {direction} ausfällt. Das ist zu gering, um sich darauf zu verlassen, und niemals eine Ursache."
}
},
"emptyTitle": "Noch nicht genug Daten",
"emptyDescription": "Insights erscheinen, sobald du ein paar Messwerte erfasst hast. Beginne mit Gewicht oder Blutdruck.",
"emptyAddMeasurement": "Messwert erfassen",
"editMode": {
"done": "Fertig",
"reset": "Zurücksetzen",
"resetTitle": "Übersicht zurücksetzen?",
"resetBody": "Abschnittsreihenfolge und ausgeblendete Abschnitte kehren zu den Standardwerten zurück. Deine Anordnung wird nirgends sonst gespeichert.",
"resetConfirm": "Übersicht 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": "Chips & 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…",
"personalRecord": {
"badge": "PR",
"tooltip": "Persönlicher Rekord: {value} {unit} am {date}",
"benchmark": "Typisch in dem Alter: {low} bis {high} {unit} ({source})"
},
"loadError": "Insights konnten nicht geladen werden",
"heroPersonalBaseline": "Basierend auf deinen letzten 90 Tagen",
"heroRegenerating": "Wird generiert",
"regenerateAnalysis": "Einschätzung neu erstellen",
"regenerateSuccess": "Einschätzung wurde neu erstellt",
"narrativeTitle": "Rückblick",
"narrativeWeek": "Diese Woche",
"narrativeMonth": "Dieser Monat",
"narrativeUpdating": "Wird aktualisiert…",
"heroFallbackSubtitle": "Täglicher Blick auf deine Trends, direkt aus den Zahlen, die du protokollierst.",
"heroGreetingMorning": "Guten Morgen",
"heroGreetingAfternoon": "Guten Tag",
"heroGreetingEvening": "Guten Abend",
"heroActionAskCoach": "Coach fragen",
"healthScore": {
"label": "Gesundheitsscore",
"band": {
"green": "Im Referenzbereich",
"yellow": "Einige Bereiche brauchen Aufmerksamkeit",
"red": "Mindestens ein Bereich liegt außerhalb des Referenzbereichs"
},
"insufficient": "Noch hat nichts genug aktuelle Daten für einen Score. Ein Feld der Gesundheit reicht für den Anfang, und der Score nennt selbst, worauf er beruht.",
"basis": "Beruht auf {count} von {recommended} Feldern der Gesundheit.",
"compositionNotice": {
"item": "{pillar} ({reason})",
"left": "Zählt nicht mehr in den Score: {pillars}.",
"joined": "Zählt jetzt in den Score: {pillars}."
},
"anatomyToggle": "Wie dieser Score zustande kommt",
"notScored": "Noch nicht bewertet ({count})",
"method": "Der Score ist der gleich gewichtete Mittelwert der Säulen, die für ihn zählen, auf einer Skala von 0 bis 100. Jede Säule wird an einem veröffentlichten Referenzbereich gemessen, und die schwächste Säule kann den Gesamtbereich bestimmen. Eine Säule ohne ausreichend aktuelle Daten bleibt außen vor und zählt nicht als null. Die Referenzbereiche stammen aus veröffentlichten Quellen; welche Säulen zählen, entscheidest du selbst, deshalb ist die zusammengefasste Zahl selbst kein klinischer Standard.",
"bandSetter": "Gesamtstufe bestimmt durch {pillar}",
"versionAndNoise": "Methodenversion {version}. Schwelle für den Wochenvergleich: {noise} Punkte.",
"methodVersion": "Methodenversion {version}.",
"configured": "Du hast festgelegt, welche Bereiche in diesen Score einfließen.",
"none": "keiner",
"delta": "{delta} gegenüber dem vorherigen vergleichbaren Zeitraum",
"deltaReason": {
"algorithm_changed": "Kein Vergleich, weil sich die Score-Methode geändert hat.",
"config_changed": "Kein Vergleich, weil du geändert hast, was in deinen Score einfließt.",
"composition_changed": "Kein Vergleich, weil sich die einbezogenen Bereiche geändert haben.",
"first_eligibility_window": "Kein Vergleich, weil dies der erste geeignete Zeitraum ist.",
"below_noise_floor": "Die Veränderung liegt innerhalb der gemeinsamen Messschwankung.",
"no_previous_window": "Es ist kein früherer vergleichbarer Zeitraum verfügbar.",
"no_current_score": "Kein Vergleich, weil der aktuelle Zeitraum nicht geeignet ist."
},
"restMode": "Ruhemodus aktiv seit {since}. Der Score dient nur als Kontext und wird nicht verschlechtert.",
"pillar": {
"bloodPressure": "Blutdruck",
"glycaemia": "Blutzucker",
"activity": "Aktivität",
"sleep": "Schlaf",
"adiposity": "Körperfettverteilung",
"wellbeing": "Wohlbefinden",
"lipids": "Blutfette"
},
"observed": "Beobachtet: {value}",
"reference": "Referenz: {value}",
"fastingObserved": "Nüchternglukose: {value} {unit}",
"fastingReference": "{low} bis {high} {unit} nüchtern",
"personalReference": "Dein Ziel: {value}",
"bpBasisAbove": "Ausschlaggebend: {axis}, etwa {offset} mmHg über der Obergrenze von {boundary} mmHg.",
"bpBasisBelowFloor": "Ausschlaggebend: {axis}, etwa {offset} mmHg unter der Grenze für niedrigen Blutdruck von {boundary} mmHg.",
"bpBasisInBand": "Beide Werte liegen auf oder unter ihren Referenz-Obergrenzen.",
"bpScale": "An der Obergrenze liegt der Wert bei 85; 100 bedeutet rund 12 mmHg darunter.",
"bpRepresentative": "Beruht auf einem Durchschnitt der letzten {days} Tage, der neuere Messungen stärker gewichtet, und kann deshalb von jeder einzelnen Messung abweichen.",
"source": "Quelle: {source}, Stand {date}",
"observedActivity": "{value} Schritte pro Tag",
"observedSleep": "{value} Minuten pro Nacht",
"observedAdiposity": "Taille-zu-Körpergröße-Verhältnis {value}",
"referenceActivity": "Der Nutzen flacht bei {high} Schritten pro Tag ab",
"referenceSleep": "Mindestens {low} Minuten pro Nacht; längerer Schlaf wird nicht abgewertet",
"referenceAdiposity": "Taille-zu-Körpergröße-Verhältnis unter {high}",
"referenceHba1c": "HbA1c {low} bis {high} %",
"referenceDetail": "{label}: {low} bis {high} ({kind}, {source})",
"openBound": "offen",
"laboratoryReferenceSource": "Referenzbereiche des auswertenden Labors",
"personalTargetSource": "Persönliches Ziel",
"referenceKind": {
"clinical": "Klinischer Schwellenwert",
"population": "Bevölkerungsperzentil",
"guideline": "Leitlinienbereich"
},
"reason": {
"readFailed": "Daten konnten nicht geladen werden",
"notTracked": "Nicht erfasst",
"missingProfile": "Alter oder Referenzprofil fehlt",
"missingHeight": "Körpergröße fehlt",
"incompletePanel": "Ein aktuelles vollständiges Panel mit Referenzbereichen ist erforderlich",
"crisis": "Anstelle eines Scores werden Sicherheitshinweise angezeigt",
"insufficientHistory": "Nicht genügend aktuelle geeignete Daten",
"unavailable": "Dieser Bereich kann derzeit nicht bewertet werden"
},
"tension": "Die Bereitschaftssignale unterscheiden sich. Unterstützend: {positive}. Belastet: {negative}.",
"returnToBand": "{metric} liegt seit {days} Tagen wieder im üblichen Bereich.",
"weightGoal": {
"title": "Persönliches Gewichtsziel",
"value": "Aktuell {current} {unit}. Ziel {min} bis {max} {unit}. Abstand zum Ziel: {distance} {unit}.",
"delta": "Der Abstand zum Ziel hat sich seit der vorherigen Messung um {delta} {unit} verändert.",
"noDelta": "Für einen Vergleich ist keine frühere Gewichtsmessung verfügbar.",
"no_personal_goal": "Lege ein persönliches Gewichtsziel fest, um hier den Fortschritt zu sehen.",
"weight_not_tracked": "Erfasse dein Gewicht, um den Fortschritt zum Ziel zu sehen.",
"read_failed": "Gewichtsdaten konnten nicht geladen werden. Versuche es erneut.",
"notScored": "Der Fortschritt zum Gewichtsziel ist persönlicher Kontext und beeinflusst den Gesundheitsscore nicht."
},
"configureLink": "Festlegen, was in deinen Score einfließt",
"coverage": {
"recommendedMet": "Deckt die drei Felder ab, die der Score empfiehlt",
"areas": "{present} von {required} Feldern der Gesundheit"
},
"historyLink": "Verlauf"
},
"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",
"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": {
"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 in deiner Zeitzone zurück.",
"errorProvider": "Der Coach konnte gerade keinen Auswertungs-Anbieter erreichen. Bitte versuche es in einem Moment erneut.",
"errorReasoningOnly": "Das Modell hat nur nachgedacht und keine Antwort geschrieben. Versuche es noch einmal oder wähle in den KI-Einstellungen ein anderes Modell.",
"errorDemo": "In der Demo antwortet der Coach nicht.",
"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…",
"unverifiedFiguresNotice": "Einige Zahlen ließen sich nicht mit deinen Daten abgleichen und wurden weggelassen.",
"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",
"failed": "Merken fehlgeschlagen. Bitte erneut versuchen.",
"alreadyKept": "Das weiß der Coach schon."
},
"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",
"historyDeleteFailed": "Die Unterhaltung konnte nicht gelöscht werden.",
"rename": {
"action": "Unterhaltung umbenennen",
"input": "Titel der Unterhaltung",
"save": "Titel speichern",
"cancel": "Umbenennen abbrechen",
"error": "Der Titel der Unterhaltung konnte nicht gespeichert werden."
},
"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.",
"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"
},
"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",
"settingsVerbosityConciseHint": "Der knappe Tonfall hält Antworten ohnehin kurz, die Ausführlichkeit ist dabei fest auf „Kurz“ gesetzt.",
"settingsSourcesSummary": "Der Coach sieht {count} von {total} Datenbereichen und blickt {window} zurück.",
"settingsSourcesSummaryAll": "Der Coach sieht {count} von {total} Datenbereichen und deinen ganzen Verlauf.",
"settingsSourcesPointerLink": "Coach-Einstellungen ö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",
"dailyLimitTitle": "Heute-Limit erreicht",
"dailyLimitBody": "Tageslimit erreicht. Das Budget setzt sich um Mitternacht in deiner Zeitzone zurück.",
"providerRateLimitTitle": "Anbieter ausgelastet",
"providerRateLimitBody": "Der Anbieter ist gerade überlastet. In etwa 5 Minuten geht es wieder.",
"cluster": {
"cardio": {
"label": "Herz-Kreislauf",
"hint": "Blutdruck, Puls, HRV, Ruhe- und Geh-Herzfrequenz"
},
"body": {
"label": "Körperzusammensetzung",
"hint": "Gewicht, Körperfett, Muskeln und BMI"
},
"activity": {
"label": "Aktivität",
"hint": "Schritte, Energie, Distanz und VO₂max"
},
"workouts": {
"label": "Workouts",
"hint": "Läufe, Radtouren und Einheiten"
},
"sleep": {
"label": "Schlaf",
"hint": "Dauer und Phasen"
},
"mood": {
"label": "Stimmung",
"hint": "Tägliche Stimmungseinträge"
},
"glucose": {
"label": "Glukose",
"hint": "Nüchtern- & postprandiale Werte"
},
"medication": {
"label": "Medikation",
"hint": "Therapietreue und GLP-1-Kontext"
},
"mobility": {
"label": "Mobilität & Gang",
"hint": "Stabilität, Asymmetrie und Gangbild"
},
"environment": {
"label": "Umgebung",
"hint": "Lärm, Tageslicht und 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",
"sourcesMemberCountOne": "1 Wert",
"sourcesMemberCountFew": "{count} Werte",
"sourcesMemberCountOther": "{count} Werte",
"lookback": {
"label": "Wie weit der Coach zurückblickt",
"option": {
"last7days": "{days} Tage",
"last30days": "{days} Tage",
"last90days": "{days} Tage",
"lastYear": "{months} Monate",
"allTime": "{months} Monate im Detail, Labor länger"
},
"detailDays": "Der Coach liest nichts, was älter als {days} Tage ist, in keiner Antwort.",
"detailMonths": "Der Coach liest nichts, was älter als {months} Monate ist, in keiner Antwort.",
"detailAll": "Ohne Begrenzung liest der Coach {dailyMonths} Monate tagesgenau und ältere Werte als Monatswerte bis {years} Jahre zurück. Von Laborwerten liest er den jüngsten Wert der zuletzt gemessenen Marker und, wenn du nach einem Marker fragst, dessen {labRecent} vorherige Werte; ältere Werte sind pro Jahr zusammengefasst, bis {labYears} Jahre zurück, noch frühere Jahre werden nur gezählt.",
"note": "Dein Profil, aktuelle Medikamente, eine laufende Erkrankung und anstehende Termine bleiben sichtbar; Auswertungen, die mehr Verlauf brauchen, werden gekürzt oder weggelassen. Antworten, die der Coach früher in älteren Unterhaltungen gegeben hat, können noch ältere Werte nennen."
},
"showConversations": "Unterhaltungen anzeigen",
"hideConversations": "Unterhaltungen ausblenden",
"heroGreeting": "Frage mich etwas zu deinen Daten",
"heroSubline": "Frag nach deinen Verläufen, Medikamenten oder Messwerten.",
"thinkingDuration": "Nachgedacht für {seconds}s",
"thinkingExpandAria": "Zeigen, was der Coach berücksichtigt hat",
"thinkingDetail": "Beantwortet aus deinem Gesundheits-Snapshot.",
"tokensUsed": "{count} Tokens",
"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.",
"sameHoursWithin": "Bis zu dieser Tageszeit liegst du sonst bei {low}–{high} {unit}; heute bisher {value}, also im Bereich.",
"sameHoursAbove": "Bis zu dieser Tageszeit liegst du sonst bei {low}–{high} {unit}; heute bisher {value}, also darüber.",
"sameHoursBelow": "Bis zu dieser Tageszeit liegst du sonst bei {low}–{high} {unit}; heute bisher {value}, also darunter.",
"steadyWithin": "Deine Werte liegen meist bei {low} {unit}; heute passt {value} dazu.",
"steadyAbove": "Deine Werte liegen meist bei {low} {unit}; heute liegt {value} darüber.",
"steadyBelow": "Deine Werte liegen meist bei {low} {unit}; heute liegt {value} darunter.",
"latestWithin": "Dein üblicher Bereich liegt bei {low}–{high} {unit}; dein letzter Wert vom {date} lag mit {value} darin.",
"latestAbove": "Dein üblicher Bereich liegt bei {low}–{high} {unit}; dein letzter Wert vom {date} lag mit {value} darüber.",
"latestBelow": "Dein üblicher Bereich liegt bei {low}–{high} {unit}; dein letzter Wert vom {date} lag mit {value} darunter.",
"steadyLatestWithin": "Deine Werte liegen meist bei {low} {unit}; dein letzter Wert vom {date} lag mit {value} genau dort.",
"steadyLatestAbove": "Deine Werte liegen meist bei {low} {unit}; dein letzter Wert vom {date} lag mit {value} darüber.",
"steadyLatestBelow": "Deine Werte liegen meist bei {low} {unit}; dein letzter Wert vom {date} lag mit {value} darunter.",
"insufficient": "Lerne noch deinen üblichen Bereich. Protokolliere noch ein paar Tage weiter.",
"driver": "{note}",
"loadError": "Dein üblicher Bereich konnte nicht geladen werden."
},
"scope": {
"prefix": "Der Coach ist schon bei {metric}"
},
"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 Gesundheitsscore 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."
},
"interrupted": {
"note": "Diese Antwort wurde unterbrochen, bevor sie fertig war.",
"retry": "Erneut fragen"
},
"historyReadOnlyNote": "Der Coach ist gerade nicht verfügbar, deine Gespräche kannst du aber weiter lesen und löschen.",
"transcriptYou": "Du",
"transcriptCoach": "Coach",
"errorConsent": "Der Coach braucht deine KI-Einwilligung, bevor er antworten kann. Du kannst sie unter Einstellungen, KI geben.",
"errorNotPermitted": "Der Coach ist in einer Akte, die jemand mit dir teilt, nicht verfügbar.",
"errorUnavailable": "Der Coach konnte seine Einstellungen gerade nicht prüfen. Bitte versuch es gleich noch einmal.",
"errorOperatorOff": "KI ist auf diesem Server abgeschaltet, deshalb kann der Coach nicht antworten.",
"errorCoachOff": "Der Coach ist ausgeschaltet. Du kannst ihn unter Einstellungen, Module wieder einschalten.",
"frame": {
"showPanel": "Unterhaltungen einblenden",
"hidePanel": "Unterhaltungen ausblenden",
"panelDescription": "Deine Unterhaltungen mit dem Coach, neueste zuerst.",
"rowActions": "Aktionen für {title}",
"rename": "Umbenennen",
"delete": "Löschen",
"modelSection": "Modell",
"provider": "Antwortet mit",
"modelManaged": "Das Modell für diesen Anbieter legst du in den KI-Einstellungen fest.",
"noProvider": "Kein Anbieter verfügbar",
"allSettings": "Alle KI-Einstellungen",
"operatorCodex": "ChatGPT (vom Betreiber bereitgestellt)",
"changeModel": "In Einstellungen > KI ändern",
"saving": "Wird gespeichert…",
"saveFailed": "Die Änderung ließ sich nicht speichern.",
"providerNotActive": "{provider} konnte nicht übernehmen: Es fehlt eine funktionierende Anmeldung oder ein Schlüssel. Richte das in den KI-Einstellungen ein.",
"operatorManaged": "Diese Verbindung verwaltet der Betreiber deines Servers. Sobald einer deiner eigenen Anbieter eingerichtet ist, antwortet er zuerst."
},
"answer": {
"scrollToBottom": "Zur neuesten Nachricht",
"rememberDone": "Gemerkt",
"timeYesterday": "gestern {time}",
"timeEarlier": "{date}, {time}",
"info": "Details zur Antwort",
"infoModel": "Modell: {model}"
},
"activity": {
"thinking": "Denkt nach…",
"fetching": "Holt {domain}, {window}…",
"digestOne": "Fasst {count} Wert zusammen…",
"digestFew": "Fasst {count} Werte zusammen…",
"digestOther": "Fasst {count} Werte zusammen…",
"digestDoneOne": "{count} Wert aus {areas}",
"digestDoneFew": "{count} Werte aus {areas}",
"digestDoneOther": "{count} Werte aus {areas}",
"areasOne": "{count} Bereich",
"areasFew": "{count} Bereichen",
"areasOther": "{count} Bereichen",
"memoryOne": "Erinnert sich an {count} Eintrag",
"memoryFew": "Erinnert sich an {count} Einträge",
"memoryOther": "Erinnert sich an {count} Einträge",
"remember": "Merkt sich etwas…",
"plan": "Schlägt einen Plan vor…",
"asking": "Fragt nach…",
"answer": "Schreibt die Antwort…",
"stop": {
"budget": "Budget erreicht, antwortet mit dem, was da ist",
"time": "Zeit erreicht, antwortet mit dem, was da ist",
"cap": "Viele Schritte, fasst jetzt zusammen",
"noProgress": "Keine neuen Daten mehr, fasst zusammen"
},
"thoughtProcessOne": "Denkprozess ({count} Schritt)",
"thoughtProcessFew": "Denkprozess ({count} Schritte)",
"thoughtProcessOther": "Denkprozess ({count} Schritte)",
"awaitingAnswer": "Antwort nötig"
},
"memory": {
"saved": "Gemerkt: {fact}",
"undo": "Rückgängig",
"accept": "Ja, merken",
"decline": "Nein",
"confirmed": "Gemerkt.",
"declined": "Alles klar, dann nicht."
},
"plan": {
"accept": "Plan übernehmen",
"decline": "Nicht jetzt",
"confirmed": "Ist notiert. Ich schaue in {days} Tagen mit dir drauf.",
"declined": "Alles klar, dann nicht jetzt."
},
"assumption": {
"line": "Angenommen: {value}",
"change": "Ändern"
},
"suggestedReplies": {
"groupLabel": "Antwortvorschläge"
},
"chart": {
"compare": {
"periods": "{a} gegen {b}"
}
},
"reasoning": {
"label": "Denktiefe",
"hint": "Gründlicher denken heißt genauere Antworten und etwas mehr Wartezeit.",
"off": "Aus",
"minimal": "Minimal",
"low": "Niedrig",
"medium": "Mittel",
"high": "Hoch",
"capped": "(vom Admin begrenzt)",
"disabled": "Der Admin hat gründliches Denken abgeschaltet."
},
"memoryLink": "Gedächtnis ({count})",
"newConversation": "Neue Unterhaltung"
},
"relativeJustNow": "gerade eben",
"relativeMinutesAgoOne": "vor {count} Minute",
"relativeMinutesAgoOther": "vor {count} Minuten",
"relativeMinutesAgoFew": "vor {count} Minuten",
"relativeHoursAgoOne": "vor {count} Stunde",
"relativeHoursAgoOther": "vor {count} Stunden",
"relativeHoursAgoFew": "vor {count} Stunden",
"relativeDaysAgoOne": "vor {count} Tag",
"relativeDaysAgoOther": "vor {count} Tagen",
"relativeDaysAgoFew": "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": "Ruhepuls im Vergleich zu einem alters- und geschlechtsabhängigen Referenzband aus CDC/NCHS-Populationsperzentilen, mit Einschätzung.",
"stimmungDescription": "Tägliche Stimmungswerte im Zeitverlauf mit einer textbasierten Einschätzung.",
"medikamenteDescription": "Einnahme-Kalender pro Medikament plus eine textbasierte Einschätzung.",
"bmiDescription": "BMI aus deinem Gewicht und deiner Größe abgeleitet, mit Einschätzung.",
"target": {
"adjustLink": "Zielbereich anpassen"
},
"explainer": {
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"oxygenSaturationBody": "Die SpO₂ ist der Prozentsatz der roten Blutkörperchen, die Sauerstoff transportieren. Werte von 95–100 % sind in Ruhe normal; Werte dauerhaft unter 90 % verdienen Aufmerksamkeit, kurze nächtliche Abfälle sind jedoch häufig.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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 (WHO 2024).",
"bodyFatBody": "Der Körperfettanteil ist der Teil deines Gewichts, der aus Fett besteht. Gesunde Bereiche hängen von Geschlecht und Alter ab, und Waagen schätzen den Wert per Bioimpedanz, deshalb sagt der Verlauf über mehrere Wochen mehr als eine einzelne Messung.",
"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.",
"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.",
"leanBodyMassBody": "Die Magermasse ist dein Gesamtgewicht abzüglich des Körperfetts, also Muskeln, Knochen, Organe und Wasser zusammen. Sie neben dem Gewicht zu verfolgen zeigt, ob Veränderungen aus Muskeln oder aus Fett stammen.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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.",
"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 (CDC 2024), und Zeit im Freien ist mit der Augengesundheit verbunden.",
"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. Als allgemeine Orientierung für Erwachsene ohne Diabetes gilt ein Nüchternwert unter {prediabetesFrom} {unit} als normal, {prediabetesFrom}–{prediabetesTo} als Prädiabetes, und ab {diabetesFrom} liegt er im Diabetesbereich (ADA 2024). Ein einzelner hoher Wert ist keine Diagnose; eine Ärztin oder ein Arzt bestätigt sie mit einer Wiederholungsmessung, und wer Diabetes behandelt, arbeitet mit anderen, ärztlich festgelegten Zielwerten.",
"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.",
"cardioFitnessBody": "VO₂max gibt an, wie viel Sauerstoff dein Körper bei maximaler Anstrengung verwerten kann. Es ist der beste Laborindex der Ausdauerfitness, den Wearables indirekt schätzen. Ein höherer oder steigender Trend ist ein starkes Zeichen für eine gute Herz-Kreislauf-Gesundheit.",
"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.",
"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.",
"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 (CDC STEADI 2024).",
"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.",
"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.",
"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.",
"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.",
"stepsBody": "Die Schrittzahl ist die Gesamtzahl der Schritte, die du täglich gehst, das einfachste Maß für Alltagsbewegung. Eine stetige Gewohnheit zählt mehr als ein einzelner großer Tag, und das runde Ziel von 10.000 Schritten ist ein Werbeslogan, keine Forschung.",
"readinessBody": "Die Bereitschaft ist ein einzelner Tageswert dafür, wie bereit dein Körper für den Tag ist. Er verbindet Ruhepuls, Herzfrequenzvariabilität und Schlaf. Es ist ein Geräte-Näherungswert an deinem eigenen Ausgangswert, keine klinische Messung: ein höherer Wert heißt erholt, 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. Sie ist 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.",
"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.",
"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.",
"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."
},
"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",
"ecgDescription": "Einkanal-EKG-Aufzeichnungen deines Geräts, jeweils mit dem Ergebnis des Geräts."
},
"units": {
"steps": "Schritte",
"flights": "Etagen",
"falls": "Stürze",
"years": "Jahre",
"breathingEvents": "Ereignisse",
"standHours": "Stunden",
"respiratoryRate": "Atemzüge/min"
},
"sleep": {
"title": "Schlaf",
"description": "Phasen-Aufschlüsselung und nächtliche Dauer, gezogen aus Apple Health.",
"mainSleep": "Hauptschlaf",
"totalSleep": "Schlaf gesamt",
"compositionTitle": "Phasen-Verteilung",
"compositionSubtitle": "Letzte {nights} Nächte",
"compositionAriaLabel": "Schlafphasen-Verteilung über {nights} Nächte",
"sourceDiscrepancy": {
"tooltipTitle": "Quellen weichen ab"
},
"stages": {
"deep": "Tief",
"rem": "REM",
"core": "Kern",
"asleep": "Schlafend",
"awake": "Wach",
"inBed": "Im Bett",
"nap": "Nickerchen",
"napCount": "{count} Nickerchen",
"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": "Offene Bilanz der letzten {nights} Nächte",
"clearValue": "Ausgeglichen",
"clearCaption": "Nichts offen ü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."
}
},
"medicationCompliance": "Therapietreue",
"dayStreak": "{count} Tage Serie",
"dayStreakOne": "{count} Tag Serie",
"compliance7d": "Therapietreue (7 Tage)",
"compliance30d": "Therapietreue (30 Tage)",
"taken": "genommen",
"skipped": "übersprungen",
"missed": "verpasst",
"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."
},
"bloodPressureSectionTitle": "Blutdruck",
"weightSectionTitle": "Gewicht",
"pulseSectionTitle": "Puls",
"bmiSectionTitle": "BMI",
"complianceNoData": "Keine Daten zur Therapietreue verfügbar",
"generate": "Neue Analyse erstellen",
"moodSectionTitle": "Stimmung",
"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": "Workouts kommen per Apple Health vom iPhone und von Withings. Du kannst eins auch von Hand erfassen."
},
"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",
"routeTitle": "Strecke",
"hrChartTitle": "Herzfrequenz",
"notFound": "Workout nicht gefunden.",
"hrFromPulse": "Aus deinen Herzfrequenzdaten rund um diese Einheit",
"hrAxisMinutes": "Min.",
"hrAvgMarker": "Ø {bpm}",
"hrMaxMarker": "Max. {bpm}",
"hrRangeValue": "{low} bis {high} bpm",
"hrRangeLabel": "Spanne",
"hrNoProfile": "Für diese Einheit liegen keine einzelnen Pulswerte vor.",
"sportAverageLabel": "Dein aktueller Durchschnitt:",
"zonesTitle": "Belastungszonen",
"zonesCaption": "Wie sich deine Belastung auf die Herzfrequenzzonen verteilt hat.",
"zonesCaptionDevice": "Zeit pro Zone laut deinem Gerät.",
"exportGpx": "GPX exportieren",
"elevationTitle": "Höhe",
"splitsTitle": "Kilometerzeiten",
"splitsKm": "km",
"splitsTime": "Zeit",
"splitsPace": "Tempo",
"thatDayTitle": "An diesem Tag",
"daySleepTitle": "Die Nacht davor",
"daySleepNone": "Für diese Nacht ist kein Schlaf erfasst",
"daySleepAwakeningsOne": "{count}× aufgewacht",
"daySleepAwakeningsMany": "{count}× aufgewacht",
"dayMoodTitle": "Stimmung an diesem Tag",
"dayMoodNone": "An diesem Tag ist keine Stimmung erfasst",
"sleepTrendsLink": "Schlaf-Trends",
"moodHistoryLink": "Stimmungsverlauf",
"previousSessionLink": "Vorherige Einheit",
"insightTitle": "Aktivitäts-Einblick"
},
"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",
"badminton": "Badminton",
"tennis": "Tennis",
"basketball": "Basketball",
"soccer": "Fußball",
"crossTraining": "Cross-Training",
"mixedCardio": "Mixed Cardio",
"other": "Sonstiges"
},
"loadError": "Deine Workouts konnten nicht geladen werden",
"loadMore": "Weitere Workouts laden",
"loadingMore": "Weitere Workouts werden geladen",
"loadMoreError": "Weitere Workouts konnten nicht geladen werden",
"countOne": "{count} Workout",
"countOther": "{count} Workouts",
"countFew": "{count} Workouts",
"filterLabel": "Nach Sportart filtern",
"filterAll": "Alle Sportarten",
"filterEmpty": "Keine Einheiten dieser Sportart in deinem Verlauf.",
"manual": {
"logWorkout": "Workout erfassen",
"sheetTitle": "Workout erfassen",
"sheetDescription": "Trag eine Einheit von Hand ein: was, wann und wie lange.",
"sportLabel": "Aktivität",
"sportPlaceholder": "Aktivität wählen",
"startLabel": "Beginn",
"startHint": "Leer lassen, wenn du gerade fertig bist: Dann zählt es die Dauer von jetzt zurück.",
"durationLabel": "Dauer",
"distanceLabel": "Distanz ({unit})",
"energyLabel": "Aktive Energie (kcal)",
"alreadySaved": "Dieses Workout ist schon gespeichert",
"saveError": "Das Workout konnte nicht gespeichert werden",
"deleteLabel": "Workout löschen",
"deleteConfirmTitle": "Dieses Workout löschen?",
"deleteConfirmDescription": "Dieses von Hand eingetragene Workout wird endgültig entfernt.",
"deleted": "Workout gelöscht",
"deleteError": "Das Workout konnte nicht gelöscht werden",
"errors": {
"sportRequired": "Wähle eine Aktivität.",
"startRequired": "Gib Datum und Uhrzeit ein.",
"startInFuture": "Der Beginn darf nicht in der Zukunft liegen.",
"durationRequired": "Gib an, wie lange das Workout gedauert hat.",
"durationInvalid": "Gib ganze Stunden und Minuten von 0 bis 59 ein.",
"durationTooLong": "Ein Workout dauert höchstens 24 Stunden.",
"endInFuture": "Das Workout würde in der Zukunft enden. Stell den Beginn auf die Uhrzeit, zu der es angefangen hat.",
"distanceInvalid": "Gib die Distanz als Zahl in einem realistischen Bereich ein.",
"energyInvalid": "Gib die aktive Energie als Zahl bis 20.000 kcal ein."
},
"editTitle": "Training bearbeiten",
"editAction": "Bearbeiten",
"updated": "Training aktualisiert"
},
"load": {
"title": "Trainingslast",
"fitness": "Fitness",
"fatigue": "Ermüdung",
"form": "Form",
"explainer": "Fitness ist dein Trainingsimpuls aus der Herzfrequenz, gemittelt über etwa sechs Wochen, Ermüdung über etwa eine Woche, und Form ist der Unterschied. Die Zahlen lassen sich mit deinen eigenen früheren vergleichen, nicht mit anderen Menschen oder Apps.",
"warmingUp": "Auf Basis von bisher {days} Tagen: Bis sechs Wochen abgedeckt sind, fällt die Fitness niedriger aus, als sie ist.",
"coverage": "{rated} der letzten {days} Tage ließen sich bewerten. Ein Tag ohne Aktivitätsdaten oder mit einem Training, das sich nicht auswerten ließ, bleibt außen vor, statt als Ruhetag zu zählen.",
"asOf": "Stand {date}, der letzte Tag, der sich bewerten ließ."
}
},
"bloodGlucose": {
"title": "Blutzucker",
"description": "Deine Blutzuckerwerte im Zeitverlauf, in {unit}.",
"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 ({low}–{high} {unit} 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",
"unspecified": "Ohne Angabe",
"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."
}
},
"bodyFat": {
"title": "Körperfett",
"description": "Dein Körperfettanteil im Zeitverlauf.",
"chartTitle": "Körperfett",
"emptyState": {
"title": "Noch keine Körperfettdaten",
"description": "Körperfettwerte erscheinen hier, sobald eine Körperanalysewaage synchronisiert oder du einen Wert von Hand erfasst.",
"cta": "Körperfett erfassen"
}
},
"navFatMass": "Fettmasse",
"navBodyFat": "Körperfett",
"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",
"emptyState": {
"title": "Noch keine Gehgeschwindigkeitsdaten",
"description": "Werte erscheinen hier, sobald Apple Health synchronisiert."
}
},
"navWalkingSpeed": "Gehgeschwindigkeit",
"mood": {
"logLink": "Stimmung eintragen",
"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.",
"pendingDescription": "{n} von {needed} gepaarten Tagen. Ein Zusammenhang erscheint, sobald genug Tage da sind, um Muster von Zufall zu unterscheiden.",
"noLinkTitle": "Kein klarer Zusammenhang",
"noLinkDescription": "{n} gepaarte Tage, und nichts hebt sich vom Zufall ab.",
"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": "{metric} an Tagen mit {tag}",
"metricActiveEnergy": "Aktive Energie",
"metricSleepDuration": "Schlaf",
"metricNextDayRecovery": "Erholung am Folgetag",
"metricNextDayRestingHr": "Ruhepuls am Folgetag",
"metricNextDayHrv": "Herzfrequenzvariabilität am Folgetag",
"detailSameDay": "Durchschnittlich {withAvg} an den {withDays} Tagen mit diesem Tag gegenüber {withoutAvg} ohne.",
"detailNextDay": "Durchschnittlich {withAvg} am Tag nach den {withDays} Tagen mit diesem Tag gegenüber {withoutAvg} 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": "{metric} an Tagen mit {factor}",
"metricSleepDuration": "Schlaf",
"metricSteps": "Schritte",
"metricRestingHeartRate": "Ruhepuls",
"metricHrv": "Herzfrequenzvariabilität",
"metricWeight": "Gewicht",
"metricBloodPressureSys": "Systolisch",
"detail": "Durchschnittlich {lowAvg} an den {lowDays} Tagen mit niedriger {factor}-Bewertung gegenüber {highAvg} an den Tagen mit hoher Bewertung.",
"detailInverse": "Durchschnittlich {lowAvg} an deinen {lowDays} schlechteren {factor}-Tagen gegenüber {highAvg} 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.",
"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",
"channel": {
"ALCOHOL": "Alkoholkonsum",
"WORKOUT_MINUTES": "Workout-Dauer",
"TRAINING_LOAD": "Trainingslast"
}
},
"inTargetTitle": "Im Zielbereich",
"dimensions": {
"title": "Gefühlslage",
"none": "Zur Gefühlslage ist noch nichts erfasst.",
"window": "{days} Tage",
"noneInWindow": "nichts im Zeitraum",
"higherIsMore": "höher = {anchor}",
"notRecorded": "Nicht erfasst: {list}."
},
"contextComparison": {
"title": "Tageskontext und deine Stimmung",
"description": "Wie der Stimmungswert an bisher erfassten Tagen mit diesem Eintrag lag, verglichen mit den übrigen Tagen.",
"lower": "niedriger",
"higher": "höher",
"statement": "An Tagen mit „{label}“ lag die Stimmung im Durchschnitt {direction}: {withAvg} gegenüber {withoutAvg}.",
"counts": "{withDays} Tage mit, {withoutDays} Tage ohne",
"caveat": "Das zeigt einen Zusammenhang, keine Ursache."
},
"prognosis": {
"title": "Selbsteinschätzung",
"selfLabel": "Deine Einschätzung",
"expectedLabel": "Auf Basis deiner Muster erwartet",
"band": "Bereich {low} bis {high}",
"statement": "Auf Basis deiner bisherigen Muster wäre für {date} ein Wert um {value} zu erwarten gewesen. Ermittelt aus {n} vergleichbaren Tagen.",
"provisional": "Noch vorläufig: das Muster stützt sich auf eine kurze Strecke von Tagen.",
"notToday": "Das beschreibt {date}, nicht heute.",
"deviationWithin": "Deine eigene Einschätzung liegt in diesem Bereich.",
"deviationAbove": "Deine eigene Einschätzung liegt {amount} Punkte über diesem Bereich.",
"deviationBelow": "Deine eigene Einschätzung liegt {amount} Punkte unter diesem Bereich.",
"weightedTitle": "Was an diesem Tag am stärksten gewichtet wurde",
"weightedUp": "{label}: zählte in Richtung eines höheren erwarteten Werts",
"weightedDown": "{label}: zählte in Richtung eines niedrigeren erwarteten Werts",
"caveat": "Das ist ein Vergleich mit deinen eigenen bisherigen Tagen, keine Aussage darüber, wie ein Tag zustande gekommen ist.",
"learning": "Lernphase: {entries} von {threshold} Tagen erfasst. Ein Vergleich erscheint, sobald genug davon zusammengekommen sind.",
"noPattern": "In den bisher erfassten {entries} Tagen ist noch nichts gleichmäßig genug, um einen Tag damit zu vergleichen. Wenn du auch den Kontext eines Tages festhältst, wird mehr davon vergleichbar.",
"featureValue": "{field}: {value}",
"loadError": "Der auf Basis deiner Muster erwartete Wert konnte nicht geladen werden."
},
"patterns": {
"title": "Muster in deiner Stimmung",
"basedOn": "Grundlage: {subject} und {comparison} Tage. Ein Muster, keine Ursache.",
"previousDayHigher": "Nach einem Tag unter deinem Üblichen ist der nächste Tag meist besser ({subject} gegenüber {comparison} nach einem Tag darüber).",
"previousDayLower": "Ein Tag unter deinem Üblichen wirkt meist in den nächsten Tag hinein ({subject} gegenüber {comparison} nach einem Tag darüber).",
"weekendHigher": "Am Wochenende ist deine Stimmung meist besser ({subject} gegenüber {comparison} unter der Woche).",
"weekendLower": "Am Wochenende ist deine Stimmung meist schlechter ({subject} gegenüber {comparison} unter der Woche).",
"bestWeekday": "{weekday} ist meist dein bester Tag ({subject} gegenüber {comparison} an den übrigen Tagen).",
"notesHigher": "An Tagen mit Notiz ist deine Stimmung meist besser ({subject} gegenüber {comparison} ohne).",
"notesLower": "An Tagen mit Notiz ist deine Stimmung meist schlechter ({subject} gegenüber {comparison} ohne).",
"delayedTagHigher": "Am Tag nach „{tag}“ ist deine Stimmung meist besser ({subject} gegenüber {comparison} sonst).",
"delayedTagLower": "Am Tag nach „{tag}“ ist deine Stimmung meist schlechter ({subject} gegenüber {comparison} sonst).",
"multipleEntriesHigher": "An Tagen mit mehreren Einträgen ist deine Stimmung meist besser ({subject} gegenüber {comparison} an Tagen mit einem).",
"multipleEntriesLower": "An Tagen mit mehreren Einträgen ist deine Stimmung meist schlechter ({subject} gegenüber {comparison} an Tagen mit einem)."
}
},
"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}",
"summaryLabelled": "{label} ({percent}%)"
},
"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 mit {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}, Gewichtung {weight}%",
"contributorMissing": "keine Daten",
"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"
},
"gap": {
"fewNights": "noch nicht genug Nächte ({count} von {needed})",
"noMainSleep": "letzter Tag nur mit Nickerchen"
}
},
"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"
}
},
"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.",
"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.",
"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 und 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.",
"description": "Ein nächtlicher Aktivitätslast-Proxy aus deiner herzfrequenzgewichteten Anstrengung, relativ zu deiner typischen Anstrengung.",
"deviceCaption": "Tagesbelastung deines Geräts: {value} von {max}",
"deviceSource": "Bis HealthLog nachts einen eigenen Wert berechnet hat, zeigt die Karte die Tagesbelastung deines Geräts, umgerechnet auf 0–100."
},
"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."
},
"SAME_TIME_BASELINE": {
"method": "Dein heutiger laufender Gesamtwert im Vergleich zum Median derselben Ortszeit-Stunde aus deinen letzten vier Wochen, mit einem robusten Median-±-MAD-Band darum. Nur Tage mit ausreichend aufgezeichneten Details zählen, und es wird kein Vergleich gezeigt, bevor mindestens vierzehn davon vorliegen.",
"caveat": "Ein Vergleich mit deiner eigenen jüngeren Vergangenheit, kein Ziel. Er sagt, wo der heutige Tag zu dieser Stunde gegenüber deinem üblichen Muster steht, und nichts darüber, ob dieses Muster für dich das richtige ist."
}
},
"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",
"historyTitle": "Verlauf",
"historyWindow": "Letzte {days} Tage"
},
"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."
},
"sameTime": {
"sectionTitle": "Heute bisher",
"sectionSubtitle": "Deine laufenden Summen im Vergleich zu dem, was zu dieser Stunde für dich üblich ist",
"learning": "Lernt deinen üblichen Tag: {count} von {target} Tagen",
"framing": "Üblich bis {time}: {typical} {unit}",
"comparisonLabel": "Dein üblicher Tag"
}
},
"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",
"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-Chips sortieren",
"description": "Ziehe die Chips in die gewünschte Reihenfolge und blende sie über das Augensymbol ein oder aus.",
"dragHandle": "Verschieben",
"saveSuccess": "Reihenfolge der Chips gespeichert",
"saveError": "Speichern der Chip-Reihenfolge fehlgeschlagen.",
"save": "Speichern",
"empty": "Noch keine Navigations-Chips verfügbar.",
"detail": "Ausgeblendete Detailseiten verschwinden auch aus der oberen Navigation."
},
"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.",
"regenerateSettling": "Die Einschätzung wird noch erstellt",
"regenerateSettleFailed": "Die Aktualisierung konnte nicht abgeschlossen werden. Bitte später 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",
"unitLoad": "Belastung"
},
"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": "Diese Seite füllt sich mit den Erholungs-, Belastungs- und Trainingslastwerten von WHOOP oder Polar und mit Ouras Resilienz-Stufe.",
"emptyOuraPermission": "Ouras Resilienz-Stufe braucht die Berechtigung für Stressdaten, also verbinde Oura einmal neu unter Integrationen und erlaube sie.",
"emptyOuraNoResilience": "Oura ist verbunden, und seine Resilienz-Stufe erscheint hier, sobald Oura eine liefert.",
"emptyAction": "Integrationen öffnen",
"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.",
"bodyBatteryExplainer": "Deine Energiereserve auf Garmins Skala von 0 bis 100, der höchste Stand des Tages. Ruhe und Schlaf laden sie auf, Stress und Bewegung zehren davon.",
"trainingReadinessExplainer": "Wie bereit dein Körper für eine harte Einheit ist, auf Garmins Skala von 0 bis 100. Der Wert kommt über eine von dir eingerichtete Brücke, weil Garmin ihn nicht direkt teilt.",
"stressLevelExplainer": "Garmins durchschnittliches Stresslevel des Tages auf einer Skala von 0 bis 100, abgeleitet aus deiner Herzfrequenzvariabilität. Niedriger heißt ruhiger.",
"acuteTrainingLoadExplainer": "Garmins akute Trainingsbelastung: die gewichtete Belastung deiner Aktivitäten der letzten sieben Tage. Der Wert kommt über eine von dir eingerichtete Brücke. Vergleiche ihn mit deinen eigenen letzten Wochen."
},
"loadError": "Deine Erholungswerte konnten nicht geladen werden."
},
"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": {
"forwardWatch": "{metric} ist im Blick zu behalten.",
"forwardHolding": "Im Moment ist alles stabil."
}
},
"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}.",
"rangeContextTimeOfDay": "Aktuell {value}, zu dieser Tageszeit sonst {low}–{high}.",
"shiftContext": "Etwa {before} davor, {after} seitdem.",
"shiftDays": "Grundlage: {before} Tage davor und {after} seither."
},
"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",
"loadError": "Deine EKG-Aufzeichnungen konnten nicht geladen werden.",
"backToList": "Zurück zu den Aufzeichnungen",
"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"
},
"emptyTitle": "Noch keine EKG-Aufzeichnungen",
"emptyDescription": "EKG-Aufzeichnungen werden von einem kompatiblen Einkanal-Gerät synchronisiert. Sobald dein Gerät eine Aufzeichnung überträgt, erscheint sie hier.",
"emptyCta": "Gerät verbinden"
},
"intradayPulse": {
"title": "Puls über den Tag",
"caption": "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."
}
},
"navEcg": "EKG",
"sectionLoadError": "Dieser Bereich konnte nicht geladen werden.",
"aiSetupHint": {
"title": "KI ist optional",
"body": "Hier funktioniert alles auch ohne KI. Wenn du ein tägliches Briefing, kurze Notizen zu deinen Werten und den Coach möchtest, kannst du einen KI-Anbieter verbinden.",
"settingsBody": "HealthLog funktioniert vollständig ohne KI. Verbinde unten einen Anbieter, wenn du ein tägliches Briefing, kurze Notizen zu deinen Werten und den Coach möchtest.",
"action": "KI einrichten",
"dismiss": "Nicht jetzt"
},
"bmiHeight": {
"coachPrefill": "Ich habe meine Körpergröße noch nicht eingetragen. Warum ist der BMI wichtig, und was sollte ich wissen, bevor ich sie eintrage?"
},
"medicationsEmpty": {
"coachPrefill": "Ich habe noch keine Medikamente angelegt. Was sollte ich wissen, bevor ich hier anfange, meine Therapietreue zu verfolgen?"
},
"scoreHistory": {
"healthTitle": "Verlauf des Gesundheitsscores",
"healthDescription": "Dein Gesundheitsscore Tag für Tag, so wie er an jedem Tag angezeigt wurde.",
"emptyDescription": "In diesem Zeitraum wurde noch kein Score erfasst.",
"usualRange": "Schattiert: dein üblicher Bereich, {lo} bis {hi}.",
"seam": "Die Linie bricht dort ab, wo sich geändert hat, was in den Score einfließt."
},
"bpTimeOfDay": {
"title": "Nach Tageszeit",
"description": "Dein durchschnittlicher Blutdruck je Tageszeit im Zeitraum des Diagramms.",
"part": {
"morning": "Morgens",
"midday": "Mittags",
"evening": "Abends"
},
"filterAll": "Ganzer Tag",
"filterLabel": "Im Diagramm zeigen",
"readingsOne": "{count} Messung",
"readingsFew": "{count} Messungen",
"readingsOther": "{count} Messungen",
"notEnough": "Zu wenige Messungen",
"pulse": "Puls {value} bpm",
"difference": "Morgens minus abends: {systolic}/{diastolic} mmHg.",
"differencePending": "Morgen und Abend werden verglichen, sobald beide mindestens {min} Messungen haben.",
"hours": "Morgens {morning}, mittags {midday}, abends {evening}, in deiner Zeitzone.",
"hourRange": "{start} bis {end} Uhr",
"emptyTitle": "Keine vollständigen Messungen in diesem Zeitraum",
"emptyDescription": "Hier erscheinen Messungen mit systolischem und diastolischem Wert.",
"error": "Die Werte nach Tageszeit konnten nicht geladen werden.",
"chartTitle": {
"morning": "Blutdruck morgens",
"midday": "Blutdruck mittags",
"evening": "Blutdruck abends"
},
"statsLabel": "{series}, {part}",
"statsPart": {
"morning": "morgens",
"midday": "mittags",
"evening": "abends"
}
}
},
"thresholds": {
"defaultLabel": "Standard",
"overrideToggleLabel": "Eigene Werte",
"resetAction": "Auf Standard zurücksetzen",
"resetAllAction": "Alle auf Standard zurücksetzen",
"resetAllTitle": "Alle eigenen Bereiche zurücksetzen?",
"resetAllBody": "Jede Messgröße kehrt zu ihrem Standardbereich zurück. Die von dir gesetzten Werte werden nirgends sonst gespeichert und lassen sich nicht wiederherstellen.",
"resetAllConfirm": "Alle zurücksetzen",
"resetTitle": "Diesen Bereich zurücksetzen?",
"resetBody": "Die Messgröße kehrt zu ihrem Standardbereich zurück. Die von dir gesetzten Werte werden nirgends sonst gespeichert und lassen sich nicht wiederherstellen.",
"resetConfirm": "Bereich 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 Standard 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 Standard aktiv.",
"cardTitle": "Bereiche je Messgröße"
},
"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, Gesundheitsscore 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 und ö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",
"stepOf": "Schritt {current} von {total}",
"stepsLabel": "Schritte der Einrichtung"
},
"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)",
"heightLabelFtIn": "Größe (ft, in)",
"genderLabel": "Geschlecht",
"genderNone": "Keine Angabe",
"genderMale": "Männlich",
"genderFemale": "Weiblich",
"genderOther": "Divers",
"dateOfBirthLabel": "Geburtsdatum",
"dateOfBirthHint": "Wird ausschließlich für altersbezogene Auswertungen genutzt."
},
"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",
"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"
},
"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: KI-Anfragen bleiben in deinem 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.",
"offer": {
"title": "Die Zusammenfassung dieser Instanz ist bereit.",
"body": "Der Betreiber stellt einen Anbieter bereit, der zuletzt innerhalb der letzten 24 Stunden funktioniert hat. Mit einem Tipp schaltest du den Klartext ein; deine Daten gehen dann an diesen einen Anbieter, an niemanden sonst.",
"cta": "Klartext einschalten",
"granted": "Eingeschaltet. Die erste Zusammenfassung erscheint auf dem Dashboard.",
"error": "Das Einschalten hat nicht geklappt. Versuch es gleich noch einmal."
},
"unavailable": {
"title": "Der Anbieter dieser Instanz antwortet gerade nicht.",
"body": "HealthLog funktioniert ohne Klartext vollständig. Du kannst später in den Einstellungen einen eigenen Anbieter hinterlegen."
}
},
"steps": {
"who": "Für wen diese Akte ist",
"areas": "Worauf du achten willst",
"medication": "Medikamente",
"sources": "Woher die Werte kommen",
"visit": "Arztbesuch",
"units": "Einheiten",
"confirm": "Bestätigen",
"first-result": "Erstes Ergebnis",
"done": "Fertig"
},
"flow": {
"welcome": {
"title": "Willkommen bei HealthLog",
"body": "Fünf kurze Fragen entscheiden, was HealthLog dir zuerst zeigt. Das dauert etwa zwei Minuten.",
"changeLater": "Nichts ist endgültig: Jede Wahl lässt sich später unter Einstellungen ändern.",
"setUp": "Einrichten",
"skip": "Vorerst überspringen",
"againBody": "Deine Einrichtung ist abgeschlossen. Beantworte die Fragen erneut, um zu ändern, was HealthLog zuerst zeigt, oder geh zum Dashboard.",
"setUpAgain": "Erneut einrichten"
},
"who": {
"title": "Für wen ist diese Akte?",
"body": "Die folgenden Antworten gelten für diese Akte.",
"options": {
"me": "Für mich",
"someone-else": "Für jemanden, um den ich mich kümmere",
"both": "Beides"
},
"hints": {
"someone-else": "Zum Beispiel ein Kind oder ein Elternteil. Das Profil wird am Ende angelegt.",
"both": "Richte jetzt deine eigene Akte ein; das Profil für die andere Person wird am Ende angeboten."
}
},
"areas": {
"title": "Worauf möchtest du achten?",
"body": "Wähle beliebig viele. Sie entscheiden, welche Module eingeschaltet sind und was das Dashboard zuerst zeigt.",
"options": {
"blood-pressure": "Blutdruck",
"weight-body": "Gewicht und Körper",
"glucose": "Blutzucker",
"sleep": "Schlaf und Erholung",
"mood": "Stimmung und seelisches Wohlbefinden",
"cycle": "Zyklus",
"activity": "Aktivität und Training",
"labs": "Laborwerte",
"illness": "Krankheiten und Symptome"
}
},
"medication": {
"title": "Nimmst du Medikamente nach einem festen Plan?",
"body": "Ein Plan schaltet das Medikamenten-Modul und Erinnerungen ein.",
"options": {
"yes": "Ja",
"no": "Nein",
"sometimes": "Manchmal"
}
},
"sources": {
"title": "Woher kommen deine Werte heute?",
"body": "Wähle beliebig viele. Am Ende wird eine Verbindung angeboten; keine ist Pflicht.",
"options": {
"manual": "Ich tippe sie ein",
"apple-health": "Apple Health auf meinem iPhone",
"withings": "Withings",
"oura": "Oura",
"whoop": "WHOOP",
"polar": "Polar",
"fitbit": "Fitbit",
"strava": "Strava",
"nightscout": "Nightscout",
"file": "Eine Datei, die ich schon habe"
},
"hints": {
"apple-health": "Wird von der iOS-App synchronisiert oder aus einem Export importiert.",
"file": "Wird unter Einstellungen importiert, sobald du hier fertig bist."
}
},
"visit": {
"title": "Steht ein Arztbesuch an?",
"body": "Ein Besuch schaltet den Arztbericht ein und setzt die Vorbereitung auf deine Checkliste.",
"options": {
"within-a-month": "Ja, innerhalb eines Monats",
"later": "Später",
"no": "Nein"
}
},
"units": {
"title": "Welche Einheiten verwendest du?",
"body": "Werte werden einmal gespeichert und in der Einheit angezeigt, die du wählst. Du kannst sie später unter Einstellungen ändern.",
"glucoseLegend": "Blutzucker",
"weightLegend": "Gewicht und Größe",
"options": {
"metric": "kg und cm",
"imperial": "lb und ft/in"
}
},
"confirm": {
"title": "Das schalten deine Antworten ein",
"body": "Ein Blick, dann ist HealthLog eingerichtet. Nichts davon ist endgültig.",
"modulesTitle": "Module",
"switchedOn": "Eingeschaltet: {modules}.",
"nothingExtra": "Deine Antworten schalten kein zusätzliches Modul ein; die Kernwerte sind immer da.",
"alwaysOn": "Immer an: {modules} und die Kernwerte (Gewicht, Blutdruck, Puls).",
"everythingElse": "Alles andere bleibt einen Klick entfernt unter",
"modulesLink": "Einstellungen, Module",
"switchesOff": "Nicht mehr in der Navigation: {modules}. Jederzeit unter Einstellungen, Module wieder einschaltbar.",
"glucoseUnit": "Blutzucker",
"unitPreference": "Einheiten",
"language": "Sprache",
"timezone": "Zeitzone",
"changeInSettings": "Unter Einstellungen, Konto ändern",
"cta": "Bestätigen und weiter",
"managedTitle": "Die Person, um die du dich kümmerst",
"managedBody": "Ihre Akte hat keinen eigenen Login; du betreust sie aus deinem Konto. Zum Anlegen ist ein zweiter Faktor oder ein Passkey auf deinem Konto nötig.",
"managedCreate": "Profil anlegen und abschließen",
"managedLater": "Du kannst es auch später unter Einstellungen, Geteilter Zugriff anlegen.",
"finishWithoutProfile": "Ohne Profil abschließen"
},
"first-result": {
"connect-source": {
"title": "{target} verbinden",
"body": "Eine Verbindung, aus deinen Antworten gewählt. Danach kommen die Werte von selbst.",
"howTo": "Die Verbindung zu {target} wird auf der Integrationsseite hergestellt. Komm danach hierher zurück; dieser Bildschirm merkt, wenn sie steht.",
"cta": "{target} verbinden",
"checking": "Verbindung wird geprüft.",
"waiting": "Noch nicht verbunden.",
"openSettings": "Einstellungen → Integrationen öffnen",
"noDate": "unbekannt",
"needsCredentials": {
"title": "Diese Instanz hat noch keine {target}-App hinterlegt.",
"detail": "Trage deine eigenen Zugangsdaten unter Einstellungen → Integrationen ein, dann kann die Verbindung starten."
},
"state": {
"pending_first_sync": {
"title": "{target} ist verbunden.",
"detail": "Die erste Synchronisierung läuft. Die Werte erscheinen auf dem Dashboard, sobald sie ankommen."
},
"fresh": {
"title": "{target} ist schon verbunden.",
"detail": "Letzter Wert {when}. Hier gibt es nichts mehr zu tun."
},
"stale": {
"title": "{target} ist verbunden, aber es kommt gerade nichts an.",
"detail": "Letzter Wert {when}. Die Verbindung selbst ist in Ordnung."
},
"stalled": {
"title": "{target} ist verbunden, aber es wird nicht mehr synchronisiert.",
"detail": "Letzter Versuch {when}. Prüfe die Verbindung unter Einstellungen → Integrationen."
},
"failing": {
"title": "{target} ist verbunden, aber die Synchronisierung schlägt fehl.",
"detail": "Ohne Erfolg seit {when}. Prüfe die Verbindung unter Einstellungen → Integrationen."
},
"reauth_required": {
"title": "Die Verbindung zu {target} muss erneuert werden.",
"detail": "Einmal neu anmelden, dann laufen die Werte weiter."
},
"parked": {
"title": "Die Verbindung zu {target} ist pausiert.",
"detail": "Prüfe die Verbindung unter Einstellungen → Integrationen."
}
}
},
"add-medication": {
"title": "Dein erstes Medikament hinzufügen",
"body": "Name, Dosis und Plan; die Erinnerung folgt dem Plan, den du festlegst.",
"howTo": "Das Medikament wird in wenigen kurzen Schritten angelegt. Weitere kannst du später auf der Medikamentenseite hinzufügen.",
"cta": "Medikament hinzufügen",
"done": "{name} ist angelegt.",
"doneUnnamed": "Dein erstes Medikament ist angelegt.",
"nextDose": "Nächste Dosis: {when}.",
"reminders": "Erinnerungen folgen dem Plan, den du festgelegt hast.",
"recordOnly": "Nur dokumentiert: keine Erinnerungen, nichts wird fällig.",
"asNeeded": "Bei Bedarf: keine Erinnerungen, erfasse eine Dosis, wenn du sie nimmst."
},
"log-reading": {
"title": "Einen Wert eintragen: {target}",
"body": "Ein Wert bringt die erste Zahl auf dein Dashboard. Der Trend zeichnet sich ab dem fünften von selbst.",
"done": "Dein erster Wert ist auf seiner Kachel.",
"doneElsewhere": "Dein erster Eintrag für {target} ist erfasst.",
"elsewhere": "{target} hat eine eigene Seite. Öffne sie, mach den ersten Eintrag und komm dann zurück, um ihn als erledigt zu markieren.",
"open": "{target} öffnen",
"markDone": "Ich habe den Eintrag gemacht"
}
},
"done": {
"tourCta": "Kurze Tour machen",
"openRecord": "Akte von {name} öffnen",
"createProfile": "Profil für die Person anlegen, um die du dich kümmerst"
}
}
},
"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",
"visitTitle": "Auf den Arztbesuch vorbereiten",
"visitDescription": "Trag den Termin in den Kalender ein; der Arztbericht bündelt, was du mitbringst.",
"visitCta": "Besuche öffnen",
"dataSourceNamedTitle": "{source} verbinden",
"managedProfileTitle": "Profil der betreuten Person anlegen",
"managedProfileDescription": "Deine Antworten galten der Akte einer anderen Person; sie wird unter Geteilter Zugriff angelegt.",
"managedProfileCta": "Profil anlegen"
}
},
"trendHints": {
"title": "Erster Trend nach 5 Messungen",
"remainingOne": "Noch 1 Messung bis zum Trend.",
"remainingMany": "Noch {count} Messungen bis zum Trend."
},
"settings": {
"oauthCallbackPreflightItem": "{provider}: Die Callback-Adresse {configuredOrigin} unterscheidet sich von der App-Adresse {currentOrigin}.",
"shell": {
"sectionsNav": "Einstellungs-Bereiche",
"groups": {
"account": "Konto",
"yourData": "Deine Daten",
"healthProfile": "Gesundheitsprofil",
"ai": "KI",
"connectivity": "Konnektivität",
"system": "System",
"tracking": "Erfassung",
"arrangement": "Anordnung",
"notifications": "Benachrichtigungen",
"connections": "Verbindungen",
"data": "Daten"
},
"allSections": "Alle Bereiche"
},
"sharedRecord": {
"managedSettings": {
"saveError": "Speichern fehlgeschlagen. Bitte erneut versuchen.",
"validationError": "Bitte prüfe deine Eingaben.",
"profile": {
"title": "Profil",
"displayName": "Anzeigename",
"height": "Größe (cm)",
"dateOfBirth": "Geburtsdatum",
"gender": "Geschlecht",
"notSpecified": "Nicht angegeben",
"male": "Männlich",
"female": "Weiblich",
"other": "Andere Angabe",
"locale": "Sprache",
"systemDefault": "Systemstandard",
"timezone": "Zeitzone",
"units": "Einheiten",
"metric": "Metrisch",
"imperial": "Imperial",
"timeFormat": "Zeitformat",
"automatic": "Automatisch",
"hour12": "12 Stunden",
"hour24": "24 Stunden",
"dateFormat": "Datumsformat",
"dateDmy": "Tag / Monat / Jahr",
"dateMdy": "Monat / Tag / Jahr",
"dateYmd": "Jahr / Monat / Tag"
},
"modules": {
"title": "Module"
},
"notifications": {
"title": "Benachrichtigungen",
"moodReminder": "Stimmungserinnerung aktivieren",
"reminderHour": "Uhrzeit der Stimmungserinnerung",
"lowStockRunwayDays": "Tage bis zum niedrigen Bestand",
"reorderLeadDays": "Vorlaufzeit für Nachbestellung"
},
"thresholds": {
"title": "Zielwerte",
"metric": "Messwert",
"minimum": "Minimum",
"maximum": "Maximum"
},
"coach": {
"title": "Coach",
"disable": "Coach deaktivieren",
"tone": "Ton",
"warm": "Herzlich",
"neutral": "Neutral",
"concise": "Knapp",
"verbosity": "Ausführlichkeit",
"brief": "Kurz",
"default": "Standard",
"detailed": "Ausführlich",
"excludedMetrics": "Ausgeschlossene Messwerte",
"dataClusters": "Datenbereiche",
"customClusters": "Eigene Auswahl von Datenbereichen verwenden",
"metrics": {
"bp": "Blutdruck",
"weight": "Gewicht",
"pulse": "Puls",
"mood": "Stimmung",
"compliance": "Medikamenteneinnahme",
"hrv": "Herzfrequenzvariabilität",
"sleep": "Schlaf",
"restingHr": "Ruhepuls",
"steps": "Schritte",
"medications": "Medikamente",
"anthropometrics": "Körpermaße"
},
"clusters": {
"cardio": "Herz-Kreislauf",
"body": "Körperzusammensetzung",
"activity": "Aktivität",
"workouts": "Trainings",
"sleep": "Schlaf",
"mood": "Stimmung",
"glucose": "Glukose",
"medication": "Medikation",
"mobility": "Mobilität",
"environment": "Umgebung"
}
},
"insights": {
"title": "Erkenntnisse",
"sections": "Übersichtsbereiche",
"tiles": "Navigationskacheln",
"order": "Reihenfolge",
"unknownItem": "Nicht verfügbare Erkenntnis",
"sectionLabels": {
"wellnessScores": "Wellnesswerte",
"dailyBriefing": "Tagesüberblick",
"vitals": "Vitalwerte",
"trends": "Trends",
"periodReview": "Periodenrückblick",
"cycleSummary": "Zyklusübersicht",
"signals": "Signale",
"rhythmEvents": "Rhythmusereignisse",
"healthStatus": "Gesundheitsstatus",
"breathing": "Atmung",
"labsChanges": "Laborveränderungen",
"ecg": "EKG"
}
}
},
"unavailableTitle": "In diesem geteilten Datensatz nicht verfügbar",
"unavailableDescription": "Dieser Einstellungsbereich ist beim Anzeigen des Datensatzes einer anderen Person bewusst nicht verfügbar.",
"integrationStatusDescription": "Verbindungsstatus für diesen verwalteten Datensatz.",
"integrationStatusDetail": "Dienste, die du hier verbindest, schicken ihre Daten in das Profil von {name}, nicht in deins. Ohne eigene Anbieter-App nutzt das Profil deine.",
"integrationStatusDocs": "So funktioniert das Teilen",
"integrationConnectsFor": "Verbindet für {name}",
"integrationConnectFor": "Für {name} verbinden",
"integrationDisconnect": "Trennen",
"integrationDisconnectTitle": "{provider} von {name} trennen?",
"integrationDisconnectBody": "Neue Daten kommen dann nicht mehr an. Was schon importiert ist, bleibt im Profil von {name}.",
"integrationNoClientApp": "Weder {name} noch dein eigenes Konto hat bisher eine {provider}-App. Richte zuerst bei deinen eigenen Integrationen eine ein.",
"integrationConnectFailed": "{provider} konnte nicht verbunden werden."
},
"sections": {
"account": {
"title": "Konto",
"subtitle": "Dein Profil, deine Identität und deine Anmeldedaten."
},
"integrations": {
"title": "Integrationen",
"subtitle": "Datenquellen und Geräte verbinden und verwalten.",
"connectionsHeading": "Verbindungen",
"channelsHeading": "Zustellkanäle",
"channelsDescription": "Wohin Erinnerungen und Hinweise zugestellt werden.",
"matrixLink": "Benachrichtigungen je Kanal"
},
"notifications": {
"title": "Benachrichtigungen",
"subtitle": "Wähle, welche Erinnerungen du erhältst und wohin sie zugestellt werden.",
"remindersHeading": "Erinnerungen",
"matrixLink": "Benachrichtigungen je Kanal",
"channelsLink": "Zustellkanäle",
"displayHeading": "Auf dem Handy",
"elsewhere": {
"title": "Dort eingestellt, wo sie hingehören",
"description": "Diese Erinnerungen stellst du direkt bei dem ein, worum es geht.",
"doses": {
"title": "Medikamenten-Einnahmen",
"description": "Einnahmezeiten und Erinnerungen stellst du beim jeweiligen Medikament ein.",
"link": "Medikamente öffnen"
},
"cycle": {
"title": "Zyklus",
"description": "Perioden- und Fruchtbarkeits-Erinnerungen schaltest du je Kanal in der Benachrichtigungsübersicht.",
"link": "Benachrichtigungsübersicht öffnen"
}
}
},
"layout": {
"title": "Anordnung",
"backToHub": "Zurück zu Anordnung",
"dashboard": {
"title": "Dashboard",
"description": "Kachel-Layout und Reihenfolge."
},
"insights": {
"title": "Insights",
"description": "Reihenfolge der Übersicht und der Navigations-Pills."
},
"subtitle": "Lege Reihenfolge und Ansicht von Dashboard, Insights und Tracking-Listen fest.",
"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."
},
"documents": {
"title": "Dokumente",
"description": "Ansicht und Anordnung der Monate."
}
},
"dashboard": {
"subtitle": "Ordne die Kacheln auf deinem Dashboard an."
},
"thresholds": {
"title": "Zielwerte",
"subtitle": "Lege deine persönlichen Zielbereiche je Messgröße fest."
},
"sources": {
"title": "Quellen-Priorität",
"integrationsHint": "Neue Datenquellen verbindest oder trennst du auf der Integrationen-Seite.",
"integrationsHintLink": "Integrationen öffnen",
"cardTitle": "Rangfolge je Messgröße",
"help": "Liefern mehrere Quellen denselben Wert am selben Tag, zählt die oberste Quelle als kanonisch.",
"resetDefaults": "Auf Standard zurücksetzen",
"resetDefaultsTitle": "Quellen-Reihenfolge zurücksetzen?",
"resetDefaultsBody": "Jede von dir angeordnete Rangfolge kehrt zur Standardreihenfolge zurück, für alle Messgrößen und Gerätetypen auf einmal. Das wird sofort gespeichert und lässt sich nicht wiederherstellen.",
"resetDefaultsConfirm": "Reihenfolge 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",
"hrvRmssd": "HRV (RMSSD)"
},
"sourceLabels": {
"WITHINGS": "Withings",
"APPLE_HEALTH": "Apple Health",
"MANUAL": "Manuelle Eingabe",
"IMPORT": "Import",
"WHOOP": "WHOOP",
"FITBIT": "Fitbit",
"COMPUTED": "Berechnet",
"NIGHTSCOUT": "Nightscout",
"POLAR": "Polar",
"OURA": "Oura",
"TELEGRAM": "Telegram",
"MCP": "MCP",
"GOOGLE_HEALTH": "Google Health",
"STRAVA": "Strava",
"EXTERNAL": "Externes Gerät",
"HEALTH_CONNECT": "Health Connect",
"GARMIN": "Garmin"
},
"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 der letzten {days} Tage aus Apple Health und den eingenommenen Supplementen.",
"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",
"detail": "Nur lesend, die Quell-App besitzt die Werte."
},
"helpDetail": "Die übrigen bleiben für die Audit-Spur gespeichert. Aufgeführt sind nur Quellen, die du verbunden hast oder von denen Daten vorliegen.",
"noneInUse": "Noch keine Quelle zum Sortieren. Verbinde eine unter Integrationen oder trage einen Wert ein."
},
"ai": {
"title": "KI-Anbieter",
"subtitle": "Wähle deinen KI-Anbieter und hinterlege deinen eigenen Schlüssel."
},
"api": {
"title": "API & Tokens",
"subtitle": "API-Endpunkte und Zugriffstoken verwalten."
},
"advanced": {
"title": "Erweitert",
"subtitle": "Daten zurücksetzen und Konto löschen."
},
"export": {
"title": "Export & Import",
"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": "Deine gesamte Akte in einer JSON-Datei.",
"scopeNote": "Dokumentmetadaten und die KI-Zusammenfassung, falls vorhanden, sind als Klartext enthalten; die Originaldateien der Dokumente sowie GPS-Routen und Einzelmesswerte von Workouts sind es nicht. 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.",
"detail": "Eine portable Kopie deiner Akte zum Aufbewahren und Lesen: Werte als einfaches JSON, Dokumente nur mit ihren Metadaten. Sie ist nicht die wöchentliche Kontokopie, mit der dieser Server ein Konto zurücksetzt, und sie kann kein Konto auf einem anderen Server neu anlegen. Einige Datenarten fehlen noch; das Manifest der Datei nennt, was enthalten ist.",
"contents": "Deine Messwerte, Medikamente, Stimmung, Zyklus, Laborwerte, Krankheitsepisoden, Allergien, Familienanamnese, Nährstoffe, Workouts, dein Gesundheitsprofil und deine eigenen Messgrößen in einer JSON-Datei."
}
},
"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 die Daten zusammen, ohne 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.",
"failureInterrupted": "Der Import wurde unterbrochen, bevor er fertig war, meist durch einen Server-Neustart oder Speichermangel. Die Daten sind sicher; das Archiv einfach erneut hochladen.",
"failureInsufficientMemory": "Das Speicherlimit des Servers ist für ein Archiv dieser Größe zu niedrig. Bitte die Betreiberin oder den Betreiber das Node.js-Heap-Limit erhöhen lassen (NODE_OPTIONS=--max-old-space-size) und das Archiv danach erneut hochladen.",
"rowsImported": "Bisher {count} Einträge importiert",
"doneSummary": "Fertig: {imported} von {read} Datensätzen importiert, {skipped} klinische Datensätze übersprungen.",
"doneNothing": "Aus diesem Archiv wurde nichts importiert: 0 von {read} Datensätzen sind angekommen.",
"writtenByHealthLogOne": "{count} Eintrag, den HealthLog selbst in Apple Health geschrieben hat, wurde ausgelassen, weil er schon in deinen Daten ist.",
"writtenByHealthLogOther": "{count} Einträge, die HealthLog selbst in Apple Health geschrieben hat, wurden ausgelassen, weil sie schon in deinen Daten sind.",
"writtenByHealthLogFew": "{count} Einträge, die HealthLog selbst in Apple Health geschrieben hat, wurden ausgelassen, weil sie schon in deinen Daten sind.",
"ecgResult": "EKGs: {discovered} gefunden, {imported} importiert, {updated} aktualisiert, {skipped} übersprungen, {failed} fehlgeschlagen. Fehler bei EKGs verwerfen keine unterstützten Datensätze, die aus export.xml importiert wurden.",
"estimateWarning": "Kumulative Summen für {count} Tag(e) wurden anhand der größten Exportquelle geschätzt. Native Apple-Health-Statistiken bleiben maßgeblich.",
"phase": {
"queued": "In Warteschlange…",
"unpacking": "Archiv wird entpackt…",
"parsing": "Export wird gelesen…",
"upserting": "Datensätze werden importiert…"
},
"skipUnsupported": "{count} Samples übersprungen: Datentypen, die HealthLog nicht importiert.",
"skipRefused": "{count} Samples konnten nicht geschrieben werden (unlesbar, außerhalb des Wertebereichs oder Speichern fehlgeschlagen).",
"skipBreakdown": "Aufschlüsselung anzeigen ({count} Typen)",
"skipBreakdownMore": "+ {count} weitere Typen",
"cycleSummary": "{samples} Zyklus-Samples zu {days} Tagesprotokollen zusammengeführt.",
"cycleModuleOff": "{count} Zyklus-Samples übersprungen, weil Zyklus-Tracking für dieses Konto deaktiviert ist.",
"cycleDaysFailed": "{count} Zyklustage konnten nicht geschrieben werden: {reason}"
},
"json": {
"title": "Messwerte und Stimmung (JSON)",
"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.",
"resultSuccess": "{measurements} Messwerte und {moods} Stimmungseinträge importiert",
"droppedLinks": "Ohne diese Tags importiert, weil dieses Konto keine mit dem Namen hat: {keys}",
"keptLabels": "Dieses Konto hat Tags oder Gruppen mit diesen Schlüsseln schon unter eigenem Namen, die wurden behalten: {keys}",
"resultNothing": "Nichts importiert. Alle {skipped} Einträge wurden übersprungen.",
"resultEmpty": "Diese Datei enthielt weder Messwerte noch Stimmungseinträge.",
"limitsHint": "Bis {mb} MB und bis zu {rows} Einträge je Liste. Das ergänzt deine Akte um Einträge; ein vollständiges Backup lässt sich so nicht wiederherstellen."
},
"csv": {
"title": "CSV-Datei",
"description": "Messwerte aus einer Tabelle oder einem Messgerät-Export importieren.",
"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}",
"resultSuccess": "{inserted} neu importiert und {updated} aktualisiert",
"resultNothing": "Nichts importiert. Alle {skipped} Zeilen wurden übersprungen.",
"resultEmpty": "Diese Datei hat eine Kopfzeile, aber keine Datenzeilen.",
"previewSuccess": "Vorschau: {inserted} würden importiert",
"previewNothing": "Vorschau: nichts würde importiert. Alle {skipped} Zeilen würden übersprungen.",
"skipGroupOne": "{count} Zeile übersprungen: {reason}",
"skipGroupFew": "{count} Zeilen übersprungen: {reason}",
"skipGroupOther": "{count} Zeilen übersprungen: {reason}",
"skipDetails": "Alle übersprungenen Zeilen anzeigen",
"reasonUnknownType": "unbekannter Messwerttyp",
"reasonInvalidValue": "Wert ist keine Zahl",
"reasonValueOutOfRange": "Wert außerhalb des plausiblen Bereichs",
"reasonUnknownUnit": "Einheit für diesen Typ nicht erkannt",
"reasonMissingTimezoneOffset": "Zeitstempel ohne Zeitzonen-Offset",
"reasonInvalidTimestamp": "Zeitstempel nicht lesbar",
"reasonImplausibleTimestamp": "Zeitstempel liegt in der Zukunft oder vor 1900",
"reasonUnexpectedGlucoseContext": "Glukose-Kontext in einer Zeile, die kein Blutzucker ist",
"reasonInvalidGlucoseContext": "Glukose-Kontext ist kein zulässiger Wert",
"reasonNotesTooLong": "Notiz ist zu lang",
"reasonExternalIdTooLong": "Externe ID ist zu lang",
"reasonUnstableExternalId": "Externe ID ist über Exporte hinweg nicht stabil",
"reasonDuplicate": "bereits importiert",
"reasonUnknown": "übersprungen",
"detail": "Eine Zeile pro Wert."
},
"doseHistory": {
"title": "Einnahmeverlauf",
"description": "Ein Einnahmeverlauf, wie ihn ein anderer Medikamenten-Tracker exportiert, direkt gelesen.",
"pasteLabel": "Export einfügen",
"fileInputLabel": "Datei mit Einnahmeverlauf wählen",
"uploadFile": "Datei wählen",
"preview": "Vorschau",
"import": "Importieren",
"empty": "Erst den Export einfügen oder eine Datei wählen.",
"readFailed": "Diese Datei konnte nicht gelesen werden.",
"rateLimited": "Höchstens 5 Importe pro Stunde. Später erneut versuchen.",
"tooLarge": "Diese Datei überschreitet das Limit von 16 MB.",
"inProgress": "Ein Import des Einnahmeverlaufs läuft bereits. Auf sein Ende warten.",
"workerUnavailable": "Der Hintergrunddienst ist nicht verfügbar, es wurde nichts importiert.",
"failed": "Der Import ist fehlgeschlagen. Es wurde nichts geschrieben.",
"columnsHeading": "Was mit jeder Spalte passiert",
"jsonOnly": "nur JSON",
"previewLine": "{rows} Zeilen gelesen, {queued} würden importiert, {refused} abgewiesen",
"submittedLine": "{rows} Zeilen gelesen, {queued} zum Import eingereiht",
"unmatched": "Kein Medikament im Bestand passt zu: {names}",
"ambiguous": "Passt auf mehr als ein Medikament: {names}",
"mirrored": "Aus einer anderen App gespiegelt, daher keine Dosis ergänzbar: {names}",
"unknownColumns": "Spalten ohne Regel im Importer, ungelesen: {names}",
"codingsNotRead": "Zeilen mit einem nicht gelesenen Codings-Wert: {count}",
"archivedRowsPresent": "Als zu archivierten Medikamenten gehörend markierte Zeilen: {count}. Diese Markierung überspringt oder reaktiviert sie nicht; das Endergebnis zeigt, was hinzugefügt wurde.",
"verdict": {
"honoured": "verwendet",
"reported": "gemeldet",
"ignored": "nicht gelesen"
},
"column": {
"date": "Der Zeitpunkt der tatsächlichen Einnahme. Sein UTC-Offset wird genau so gelesen, wie er dasteht.",
"scheduledDate": "Der Slot, zu dem die Dosis gehörte, getrennt vom Zeitpunkt der Einnahme. Leer heißt: die Dosis gehörte zu keinem Slot.",
"medication": "Wird einem Medikament zugeordnet, das es im Bestand schon gibt. Aus der Datei wird nichts angelegt.",
"nickname": "Wird als zweiter Name versucht, wenn der erste zu nichts passt.",
"dosage": "Wird nur dann an der Dosis festgehalten, wenn sie von der geplanten Menge abweicht.",
"scheduledDosage": "Wird mit der tatsächlichen Menge verglichen, um eine Abweichung zu erkennen. Nie eigenständig gespeichert.",
"unit": "Wird mit der Menge geschrieben, geschrieben wie in der Datei. „count“ heißt Vielfache der konfigurierten Dosis.",
"status": "„Taken“ wird eine Dosis, „Skipped“ ein bewusstes Auslassen. Jeder andere Wert hält keine Entscheidung fest und die Zeile wird abgewiesen.",
"archived": "Wird gezählt und zurückgemeldet. Eine erfolgte Einnahme wird nicht dadurch ungültig, dass das Medikament später archiviert wurde.",
"codings": "Die CSV dokumentiert für diese Spalte keine Kodierung, also bleibt sie unberührt statt geraten. Gefüllte Zellen werden gezählt.",
"form": "Beschreibt das Medikament, nicht die Dosis.",
"start": "Das Datum des Behandlungsbeginns, nicht der Zeitpunkt dieser Dosis.",
"end": "Das Datum des Behandlungsendes, nicht der Zeitpunkt dieser Dosis."
},
"fatal": {
"emptyFile": "Diese Datei enthält keine Zeilen.",
"missingColumns": "Dieser Datei fehlt eine Spalte, die der Importer braucht: Date, Medication oder Status.",
"unreadableJson": "Diese Datei ist kein gültiges JSON.",
"jsonNotAnArray": "Dieses JSON enthält keine Liste von Dosen.",
"jsonNoIntakeTime": "Der JSON-Export hält fest, wann eine Dosis fällig war, nicht wann sie genommen wurde, und eine geplante Zeit wird nicht als Einnahmezeit geschrieben. Stattdessen die CSV exportieren, die beides trägt.",
"tooManyRows": "Diese Datei enthält mehr Zeilen, als ein Import aufnehmen kann. Teilen und in Teilen importieren."
},
"detail": "Eine Datei deckt alle Medikamente darin ab."
},
"healthConnect": {
"title": "Health-Connect-Export",
"description": "Importiere die ZIP-Datei, die die Health-Connect-App auf Android beim Export deiner Daten schreibt.",
"choose": "ZIP-Datei wählen",
"uploading": "Wird hochgeladen …",
"uploadFailed": "Das Hochladen ist fehlgeschlagen. Bitte versuch es noch einmal.",
"tooLarge": "Die Datei ist größer, als dieser Server annimmt.",
"doneSummary": "{count} Werte importiert.",
"failed": "Der Import ist fehlgeschlagen: {reason}",
"phase": {
"queued": "Wartet auf den Start",
"unpacking": "Datei wird entpackt",
"parsing": "Einträge werden gelesen",
"upserting": "Werte werden gespeichert",
"done": "Fertig",
"failed": "Fehlgeschlagen"
},
"steps": {
"export": "Öffne auf deinem Android-Handy Health Connect, geh zu „Daten verwalten“, dann „Exportieren und importieren“, und starte einen Export.",
"cloud": "Health Connect speichert den Export nur in einer Cloud-App wie Google Drive, Dropbox oder Nextcloud, nie auf dem Handy selbst. Wähl dort eine aus.",
"upload": "Lade die ZIP-Datei aus dieser Cloud auf dieses Gerät herunter und lade sie hier hoch."
},
"dropLabel": "Health-Connect-ZIP hier ablegen",
"dropHint": "oder klicken, um sie auszuwählen. Bis 1 GB.",
"fileInputLabel": "ZIP-Datei des Health-Connect-Exports",
"privacyNote": "Die Datei wird vom Server gelöscht, sobald der Import endet. Einträge von Apps, die du schon direkt verbunden hast, etwa Withings oder Fitbit, werden ausgelassen, damit nichts doppelt ankommt. Dieselbe Datei noch einmal hochzuladen ändert nichts.",
"rateLimited": "Zu viele Uploads in kurzer Zeit. Warte eine Minute und versuch es noch einmal.",
"busy": "Für dein Konto läuft schon ein Import. Warte, bis er fertig ist.",
"rowsSoFar": "Bisher {count} Werte gespeichert",
"doneNothing": "Der Import ist fertig, es gab aber nichts Neues.",
"workouts": "Trainings",
"leftOutConnected": "{count} Einträge von Apps, die du schon direkt verbunden hast, wurden ausgelassen.",
"nutrientsModuleOff": "Wasser- und Nährstoffsummen wurden nicht importiert, weil das Modul Nährstoffe ausgeschaltet ist.",
"cycleModuleOff": "Periodendaten wurden nicht importiert, weil das Zyklus-Tracking ausgeschaltet ist.",
"failure": {
"unsupportedVersion": "Dieser Health-Connect-Export ist zu alt, um ihn zu lesen. Aktualisiere Health Connect auf dem Handy und exportiere noch einmal.",
"notHealthConnect": "Diese Datei ist kein Health-Connect-Export. Wähl die ZIP-Datei, die Health Connect gespeichert hat.",
"unsafeSchema": "Diese Datei hat nicht den Aufbau eines Health-Connect-Exports und wurde nicht gelesen.",
"tooLarge": "Der Export ist größer, als dieser Server annimmt.",
"stagingMissing": "Die hochgeladene Datei war nicht mehr auf dem Server. Lade sie noch einmal hoch.",
"interrupted": "Der Import wurde durch einen Neustart des Servers unterbrochen. Lade die Datei noch einmal hoch."
}
}
},
"subtitle": "Exportiere deine Daten oder importiere Messwerte und Einträge aus anderen Apps und Dateien."
},
"about": {
"title": "Über diese App",
"subtitle": "Version, Lizenz und Projektlinks."
},
"sharing": {
"title": "Freigabe",
"subtitle": "Teile schreibgeschützten Zugriff auf deine Daten."
},
"insights": {
"subtitle": "Ordne die Übersichts-Bereiche und die Reihenfolge der Chips an."
},
"medications": {
"subtitle": "Verwalte Ansicht und Reihenfolge deiner Medikamentenliste."
},
"mood": {
"subtitle": "Organisiere deine Stimmungs-Tags, Gruppen und Auswahlreihenfolge."
},
"labs": {
"subtitle": "Ansicht, Sortierung und Biomarker verwalten."
},
"illness": {
"subtitle": "Ansicht und Reihenfolge der Episoden verwalten."
},
"vorsorge": {
"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": "Deaktivierte Module verschwinden aus Navigation, Kacheln und Insights, deine Daten bleiben erhalten."
},
"manageIn": "Unter {section} verwalten",
"operatorDisabled": "Serverweit deaktiviert",
"subtitle": "Lege fest, welche Tracking-Bereiche HealthLog überall anzeigt.",
"backToHub": "Zurück zu den Modulen",
"openModuleSettings": "Moduleinstellungen",
"pages": {
"medications": {
"title": "Medikamente",
"description": "Injektionsstellen, die die Rotation auslässt."
},
"mood": {
"title": "Stimmungs-Tags",
"description": "Gruppen, eigene Tags und archivierte Tags."
},
"labs": {
"title": "Labor",
"description": "Biomarker und Texterkennung auf dem Gerät für Laborberichte."
},
"arrangementTitle": "Reihenfolge und Ansicht",
"arrangementDescription": "Wie diese Liste sortiert und angezeigt wird, legst du unter Anordnung fest.",
"openArrangement": "Unter Anordnung öffnen",
"moduleSettingsTitle": "Moduleinstellungen",
"moduleSettingsDescription": "Alles außer Reihenfolge und Ansicht findest du auf der Seite des Moduls unter Module."
}
},
"gesundheitsakte": {
"title": "Gesundheitsakte",
"subtitle": "Exportiere eine vollständige, arzttaugliche Gesundheitsakte."
},
"coach": {
"title": "Coach",
"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."
},
"mcp": {
"title": "MCP-Connector",
"subtitle": "Verbinde einen externen Assistenten mit deinen eigenen Gesundheitsdaten."
},
"anamnesis": {
"title": "Anamnese",
"subtitle": "Deine Vorgeschichte, Lebensumstände, Notfalldaten und was die KI lesen darf."
},
"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, etwa 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",
"removeConfirmTitle": "Diese Reise entfernen?",
"removeConfirmBody": "Messwerte aus diesem Zeitraum bleiben erhalten; nur der Reise-Eintrag verschwindet.",
"range": "{start} bis {end}",
"suggestionsIntro": "Dawarich hat Tage im Ausland gefunden, die noch zu keinem Zeitraum gehören.",
"suggestionUse": "Übernehmen",
"suggestionDismiss": "Vorschlag verwerfen"
},
"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.",
"fetchFailedOne": "Die letzte Wetteraktualisierung im Hintergrund ist fehlgeschlagen ({when}).",
"fetchFailedFew": "Die letzten {count} Wetteraktualisierungen im Hintergrund sind fehlgeschlagen, zuletzt {when}.",
"fetchFailedOther": "Die letzten {count} Wetteraktualisierungen im Hintergrund sind fehlgeschlagen, zuletzt {when}.",
"airQuality": {
"title": "Luftqualität und Pollen",
"description": "Tägliche Luftqualität, Pollen und UV für deinen Ort, aus dem CAMS-Modell über Open-Meteo.",
"toggle": "Luftqualität und Pollen einbeziehen",
"operatorDisabled": "Luftqualität ist auf diesem Server abgeschaltet.",
"coverage": "{count} Tage mit Luftqualitätsdaten",
"pollenEuropeOnly": "Pollendaten gibt es nur für Europa.",
"historyProgress": "Luftqualität wird nachgeladen: {done} von {total} Tagen",
"historyComplete": "Luftqualität ist für alle früheren Tage mit Einträgen nachgeladen, die die Quelle abdeckt ({total} Tage). Ältere Tage bleiben leer.",
"attribution": "Datenquellen und Lizenzen",
"saveError": "Die Einstellung konnte nicht gespeichert werden.",
"latest": "Jüngster Tag ({date})",
"modelNote": "Modellierte Außenwerte für deine Gegend, nicht deine persönliche Belastung."
}
},
"score": {
"title": "Gesundheitsscore",
"subtitle": "Lege fest, welche Bereiche in deinen Score einfließen.",
"card": {
"title": "Was in deinen Score einfließt",
"description": "Jeder Bereich, den du aufzeichnest, zählt mit, solange du hier nichts anderes sagst."
},
"threeAxes": "Aufzeichnen, Anzeigen und Mitzählen sind drei verschiedene Dinge. Diese Seite ändert nur das Letzte. Ein Bereich, den du hier abschaltest, wird weiter aufgezeichnet und weiter überall in HealthLog angezeigt, er bewegt nur die Zahl nicht mehr.",
"recommendation": "Drei Felder der Gesundheit sind die Empfehlung, keine Bedingung: Jede Auswahl mit mindestens einem Bereich lässt sich speichern. Ein schmalerer Score wird genauso berechnet und nennt auf der Karte, auf wie vielen Feldern er beruht.",
"axis": {
"countsFor": "{pillar} in den Score einrechnen"
},
"state": {
"counting": "Zählt in deinen Score",
"waiting": "Ausgewählt, wartet auf Daten",
"crisis": "Statt eines Werts wird ein Sicherheitshinweis gezeigt. An deiner Auswahl liegt es nicht.",
"readFailed": "Dieser Bereich konnte beim letzten Durchlauf nicht gelesen werden."
},
"presets": {
"label": "Ausgangspunkt",
"all": "Alle Bereiche",
"current": "Deine gespeicherte Auswahl"
},
"save": "Speichern",
"saved": "Gespeichert",
"error": "Konnte nicht gespeichert werden. Bitte versuche es erneut.",
"loadFailed": "Deine Auswahl konnte nicht geladen werden.",
"eligibilityFailed": "Es ließ sich nicht prüfen, für welche Bereiche gerade Daten vorliegen. Die Schalter unten funktionieren trotzdem.",
"omitted": "{count} Bereiche stehen nicht in der Liste, weil ihre Erfassung abgeschaltet ist. Schalte ein Modul wieder ein, dann kommt sein Bereich zurück.",
"omittedLink": "Module öffnen",
"refusal": {
"empty": "Ein Gesundheitsscore braucht mindestens ein Feld der Gesundheit, das er bewerten kann. Behalte mindestens eines ausgewählt. Der Score nennt selbst, worauf er beruht."
},
"notice": {
"upgrade": {
"title": "Was zählt, entscheidest jetzt du",
"body": "Welche Bereiche in deinen Gesundheitsscore einflossen, richtete sich früher danach, welche Module du eingeschaltet hattest. Das ist jetzt eine eigene Entscheidung, und hier triffst du sie. Deine Zahl hat sich dadurch nicht bewegt: Sie zählt weiterhin genau das, was sie vorher gezählt hat."
},
"changed": {
"title": "Du hast geändert, was zählt",
"body": "Seit {date} wird dein Score aus einer anderen Zusammenstellung berechnet. Die Tage davor stammen aus der alten Zusammenstellung, beide werden deshalb nicht verglichen und die Wochenveränderung bleibt ausgesetzt, bis der Vergleichszeitraum die Änderung hinter sich hat. Der Verlauf jedes einzelnen Bereichs läuft ungebrochen durch.",
"bodyUndated": "Dein Score wird aus einer anderen Zusammenstellung berechnet als früher. Die Tage davor stammen aus der alten Zusammenstellung, beide werden deshalb nicht verglichen und die Wochenveränderung bleibt ausgesetzt, bis der Vergleichszeitraum die Änderung hinter sich hat. Der Verlauf jedes einzelnen Bereichs läuft ungebrochen durch."
},
"composition": {
"title": "Was zählt, hat sich von selbst geändert",
"left": "Zählt nicht mehr in deinen Score: {pillars}. Die Zahl hat sich deshalb bewegt und nicht, weil sich deine Gesundheit geändert hätte.",
"joined": "Zählt jetzt in deinen Score: {pillars}."
},
"dismiss": "Verstanden",
"dismissError": "Konnte nicht gespeichert werden. Bitte versuche es erneut."
}
},
"access": {
"title": "Geteilter Zugriff",
"subtitle": "Wer deine Gesundheitsakte öffnen kann und wessen Akte du öffnen kannst."
}
},
"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)",
"heightFtIn": "Körpergröße (ft, in)",
"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",
"profilePartiallySaved": "Profil gespeichert, aber {field} konnte nicht aktualisiert werden.",
"profileNothingSaved": "Es wurde nichts gespeichert. Bitte {field} korrigieren und erneut versuchen.",
"profileRejection": {
"tooBig": "Der Wert liegt über dem Bereich, den dieses Feld annimmt.",
"tooSmall": "Der Wert liegt unter dem Bereich, den dieses Feld annimmt.",
"invalidValue": "Das ist keine der Antworten, die dieses Feld annimmt.",
"invalidFormat": "Das ist nicht in einer Form geschrieben, die dieses Feld lesen kann.",
"invalidType": "Der Wert kam nicht in einer Form an, die dieses Feld speichern kann.",
"rateLimited": "Zu oft geändert. Warte kurz und versuche es dann erneut.",
"other": "Dieser Wert wurde nicht angenommen. Bitte prüfen und erneut versuchen.",
"reproofRequired": "Gib dein aktuelles Passwort ein, um die E-Mail-Adresse zu ändern.",
"reproofFailed": "Das Passwort stimmt nicht, die E-Mail-Adresse wurde nicht geändert.",
"secondFactorRequired": "Bestätige mit deinem zweiten Faktor oder einem Passkey, um die E-Mail-Adresse zu ändern."
},
"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",
"removeTitle": "Profilbild entfernen?",
"removeBody": "Das Bild wird von deinem Server gelöscht, an seine Stelle treten deine Initialen. Zum erneuten Hochladen brauchst du die Originaldatei.",
"removeConfirm": "Bild 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.",
"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",
"passkeysDescription": "Passkeys ermöglichen sicheres Anmelden ohne Passwort.",
"passkeyReauth": {
"title": "Bestätige deine Identität",
"description": "Bestätige vor dem Hinzufügen eines neuen Passkeys eine vorhandene Anmeldemethode.",
"methodLabel": "Bestätigungsmethode",
"methods": {
"password": "Passwort",
"totp": "Authenticator-Code",
"passkey": "Passkey",
"webauthn": "Sicherheitsschlüssel",
"oidc": "Identitätsanbieter"
},
"currentPassword": "Aktuelles Passwort",
"authenticatorCode": "Authenticator-Code",
"authenticatorPlaceholder": "Sechsstelliger Authenticator-Code",
"verifyAndAdd": "Bestätigen und hinzufügen",
"factorDescription": "Bestätige eine vorhandene Anmeldemethode, bevor du einen zweiten Faktor hinzufügst.",
"verifyAndContinue": "Bestätigen und fortfahren",
"oidcHint": "Du meldest dich bei deinem Identitätsanbieter noch einmal an und kommst direkt auf diese Seite zurück. Dann wiederholst du, was du gerade tun wolltest.",
"continueToProvider": "Weiter zur Anmeldung"
},
"passkeyName": "Name",
"noPasskeys": "Keine Passkeys registriert.",
"addPasskey": "Passkey hinzufügen",
"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": "Erstelle einen Bot über @BotFather in Telegram und kopiere den Token.",
"telegramStep2": "Sende /start an deinen Bot, um den Chat zu aktivieren.",
"telegramStep3": "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 URL: Discord, Slack, Gotify, Home Assistant, n8n oder jedes Relay, das JSON annimmt.",
"webhookEnable": "Webhook aktivieren",
"webhookUrl": "Webhook-URL",
"webhookUrlHint": "Die vollständige URL für den POST. Eine Adresse im privaten Netz muss der Betreiber des Servers freigeben.",
"webhookHeaderName": "Header-Name (optional)",
"webhookHeaderValue": "Header-Wert (optional)",
"webhookFormat": "Nachrichtenformat",
"webhookFormatGeneric": "Generisches JSON",
"webhookFormatGenericHint": "Eine Discord- oder Slack-Webhook-URL einfach so einfügen. Home Assistant und n8n lesen die Felder title, message, eventType und priority.",
"webhookFormatGotify": "Gotify",
"webhookFormatGotifyHint": "Nutze die URL, die auf /message endet, und trage das App-Token als Header X-Gotify-Key ein.",
"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",
"codexConnected": "ChatGPT erfolgreich verbunden! Insights sind jetzt aktiv.",
"codexDisconnected": "ChatGPT-Verbindung getrennt.",
"codexConnectionFailed": "ChatGPT-Verbindung fehlgeschlagen. Bitte versuche es erneut.",
"rawData": "Ausführlichen Verlauf senden",
"rawDataOnDescription": "Zusätzlich zu den Zusammenfassungen erhält der Anbieter Durchschnittswerte deiner Messungen: pro Tag für die letzten 90 Tage, pro Woche für das Jahr davor und pro Monat bis zu 5 Jahre zurück, jeweils mit Datum und Anzahl der Messungen. Einzelne Messwerte, dein Name und deine E-Mail werden nicht gesendet.",
"rawDataOffDescription": "Es werden nur Zusammenfassungen gesendet: der letzte Wert, Durchschnitte, Trends, Minimum und Maximum über feste Zeiträume. Keine Messreihen.",
"rawDataWarning": "Ausführlicher Verlauf ist an: Jede Auswertung sendet zusätzlich Tagesdurchschnitte der letzten 90 Tage, Wochendurchschnitte für das Jahr davor und Monatsdurchschnitte bis zu 5 Jahre zurück.",
"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": "Betreiber-Anbieter 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",
"errorGeneric": "Fehler",
"providerChain": {
"types": {
"codex": "ChatGPT (Codex)",
"openai": "OpenAI (eigener Key)",
"anthropic": "Anthropic (Claude)",
"local": "Lokales Modell",
"openai-compatible": "OpenAI-kompatibles Gateway",
"admin-openai": "Admin-OpenAI"
},
"title": "Fallback-Kette",
"description": "Fällt der aktive Anbieter aus, versucht HealthLog den nächsten eingeschalteten in dieser Reihenfolge.",
"moveUp": "Nach oben",
"moveDown": "Nach unten",
"removeFromChain": "Aus Kette entfernen",
"addProvider": "Anbieter hinzufügen",
"addNoneAvailable": "Alle Anbieter 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."
},
"activeProviderHeading": "Aktiver Anbieter",
"activeProviderLabel": "Anbieter einrichten",
"providerSelect": {
"codex": "ChatGPT-Account (Codex)",
"openai": "OpenAI (eigener API-Key)",
"anthropic": "Anthropic (Claude)",
"local": "Lokales Modell (OpenAI-kompatibel)",
"openai-compatible": "OpenAI-kompatibles Gateway",
"admin-openai": "Admin-OpenAI"
},
"compat": {
"description": "Ein vollwertiger Anbieter für jeden Endpunkt, der die OpenAI-API /v1/chat/completions spricht: LiteLLM, OpenRouter, vLLM oder ein anderes Gateway. Die Basis-URL endet auf /v1, der API-Key ist optional, und das Modell ist das, was dein Gateway weiterleitet. Dein OpenAI-Key erreicht diesen Endpunkt nie, dieser Anbieter hat einen eigenen.",
"keyLabel": "API-Key (optional)",
"modelHint": "Der Modellname, den dein Gateway erwartet. Bleibt das Feld leer, wird das für deine anderen Anbieter gespeicherte Modell verwendet; ist auch das leer, wird dieser Anbieter übersprungen."
},
"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",
"disconnectTitle": "ChatGPT trennen?",
"disconnectBody": "Die gespeicherte Anmeldung wird zusammen mit deinem zwischengespeicherten Insight-Text verworfen. Für eine neue Verbindung musst du dich erneut über den Gerätecode-Ablauf anmelden.",
"disconnectConfirm": "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 Anbieter. Hier ist nichts einzustellen.",
"notConfigured": "Der Betreiber hat keinen geteilten OpenAI-Key auf dieser Instanz konfiguriert."
},
"testProvider": "Aktiven Anbieter 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.",
"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",
"forgetAria": "Diese Angabe vergessen",
"forgetTitle": "Diese Notiz vergessen?",
"forgetBody": "Der Coach nutzt sie ab der nächsten Nachricht nicht mehr. Eine vergessene Notiz lässt sich nicht wiederherstellen.",
"forgetConfirm": "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.",
"detail": "Er nutzt sie, damit seine Antworten relevant bleiben. Entferne alles, was er besser vergessen sollte.",
"categoryMedication": "Medikamente"
},
"coachReminders": {
"title": "Deine Erinnerungen",
"description": "Dinge, um die du den Coach gebeten hast, später darauf zurückzukommen.",
"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"
},
"deleteConfirmTitle": "Diese Erinnerung löschen?",
"deleteConfirmBody": "Sie wird nicht mehr ausgelöst. An bereits erfassten Daten ändert sich nichts.",
"deleteConfirmAction": "Löschen",
"detail": "Fällige erscheinen hier und beim Coach.",
"readOnlyNote": "Der Coach ist gerade nicht verfügbar, deine Erinnerungen kannst du aber weiter lesen und löschen."
},
"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",
"clearTitle": "Über-mich-Notiz leeren?",
"clearBody": "Entfernt nur den Freitext. Allergien und Unverträglichkeiten bleiben unverändert.",
"clearConfirm": "Notiz 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)",
"conditionsPlaceholder": "Z. B. Bluthochdruck, Typ-2-Diabetes…",
"allergiesPlaceholder": "Z. B. Laktoseintoleranz, Penicillin-Allergie…",
"focusPlaceholder": "Z. B. behalte meinen Blutdruck im Blick, motiviere mich zu mehr Bewegung…",
"questionsTitle": "Der Coach hat Rückfragen",
"questionsOpenCoach": "Im Coach beantworten"
},
"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. Ohne Wert darf eine Antwort {seconds} s dauern, das Tagesbriefing bis zu {briefingSeconds} s.",
"responseTimeoutLabel": "Antwort-Timeout (Sekunden)",
"responseTimeoutPlaceholder": "Standard ({seconds} s)",
"responseTimeoutInvalid": "Gib eine Zahl zwischen 10 und 600 Sekunden ein.",
"autoRead": {
"title": "Dokumente automatisch mit KI lesen",
"subLabel": "Dein KI-Anbieter liest und indiziert neue Dokumente, ohne dass du jedes einzeln bestätigst.",
"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 Einschalten wirkt außerdem rückwirkend: Bereits hochgeladene Dokumente ohne Zusammenfassung werden ebenfalls gesendet, bis zu 200 pro Einschaltvorgang. 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 deine Dokumente akzeptierst.",
"confirm": "Verstanden, aktivieren",
"cancel": "Abbrechen",
"restingFrugal": "Pausiert auf der sparsamen KI-Stufe: Dokumente werden nur auf Knopfdruck gelesen."
},
"centralCodex": {
"title": "Gemeinsamen KI-Zugang des Servers nutzen",
"subLabel": "KI-Anfragen laufen über die gemeinsame Verbindung des Servers, deine eigenen Anbieter dienen als Rückfall.",
"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, Verbindung nutzen",
"cancel": "Abbrechen"
},
"consent": {
"title": "KI-Einwilligung",
"activeSince": "Erteilt am {date}: Deine Gesundheitsdaten dürfen für die KI-Funktionen an den eingestellten Anbieter gehen.",
"withdraw": "Einwilligung widerrufen",
"confirmBody": "Sofern keine andere Einwilligung sie noch abdeckt, endet sofort: der Coach und die Insights, wo sie den KI-Zugang dieses Servers nutzen, und das Lesen von Dokumenten mit einem Online-Modell. Mit deinem eigenen Schlüssel oder einem lokalen Modell laufen Coach und Insights weiter. Sofern keine andere Einwilligung die Insights noch abdeckt, werden die Notizen gelöscht, die ein Modell für dich geschrieben hat: Statusnotizen, das tägliche Briefing, von einem Modell geschriebene Zeitraum-Zusammenfassungen, Ankunftszeilen und Trainingsnotizen. Deine Coach-Gespräche, was sich der Coach gemerkt hat, deine Pläne und deine Dokument-Zusammenfassungen bleiben, und du kannst sie selbst lesen oder löschen.",
"confirmWithdraw": "Widerrufen",
"grantError": "Die Einwilligung konnte nicht gespeichert werden. Bitte versuche es erneut.",
"error": "Der Widerruf konnte nicht gespeichert werden. Bitte versuche es erneut.",
"documentReading": {
"title": "Einwilligung zum Lesen von Dokumenten",
"activeSince": "Erteilt am {date}: Dokumente, Laborscans und Medikamententexte dürfen zum Lesen an deinen KI-Dienst gehen.",
"confirmBody": "Dokumente, gescannte Laborbefunde und Medikamentenbeschreibungen werden nicht mehr zum Lesen gesendet. Nichts, was du bereits hast, wird gelöscht."
},
"activeSinceNamed": "Erteilt am {date}: Deine Gesundheitsdaten dürfen für die KI-Funktionen an {providers} gehen.",
"activeUndated": "Erteilt: Deine Gesundheitsdaten dürfen für die KI-Funktionen an den eingestellten Anbieter gehen.",
"request": {
"title": "Deine Zustimmung, bevor die KI loslegt",
"body": "Die KI auf diesem Server läuft über einen Dienst, den der Betreiber bereitstellt: {providers}. Bevor du zustimmst, geht nichts aus deinen Daten dorthin.",
"data": "Wenn du zustimmst, schickt HealthLog diesem Dienst, was die KI-Funktionen brauchen: Messwerte wie Gewicht, Blutdruck, Puls, Schlaf und Aktivität, deine Medikamente, Stimmung, Laborwerte und Zykluseinträge, falls du sie führst, was du in dein Profil und an den Coach schreibst, und Dokumente, die du lesen lässt. Der Dienst schreibt daraus dein Tagesbriefing, die Einschätzungen zu deinen Werten und die Antworten des Coaches.",
"withdrawHint": "Du kannst deine Zustimmung jederzeit unter Einstellungen, KI zurückziehen. Ab dann wird nichts mehr gesendet.",
"agree": "Zustimmen",
"dismiss": "Nicht jetzt"
}
},
"operatorOff": {
"allTitle": "KI ist auf diesem Server abgeschaltet",
"allBody": "Wer diesen Server betreibt, hat KI abgeschaltet. HealthLog funktioniert weiter mit all deinen Daten; die Funktionen, die KI brauchen, werden einfach nicht angezeigt.",
"someTitle": "Einige KI-Funktionen sind auf diesem Server abgeschaltet",
"someBody": "Wer diesen Server betreibt, hat abgeschaltet: {switches}. Alles andere, auch all deine Daten, funktioniert wie gewohnt.",
"testRefused": "KI ist auf diesem Server abgeschaltet, daher gibt es nichts zu testen.",
"autoRead": "Das Lesen von Dokumenten mit KI ist auf diesem Server abgeschaltet."
},
"coachConversations": {
"title": "Coach-Gespräche",
"description": "Öffne ein Gespräch, um es zu lesen, oder lösche es.",
"more": "Mehr anzeigen",
"openAll": "Alle Gespräche öffnen"
},
"coachPlans": {
"title": "Coach-Pläne",
"description": "Die Pläne, die du mit dem Coach vereinbart hast, zum Lesen oder Entfernen.",
"open": "Pläne öffnen"
},
"reasoning": {
"label": "Nachdenken",
"hint": "Reasoning-Modelle wie Gemma oder Qwen denken nach, bevor sie antworten. Schaltest du es aus, bleibt das ganze Antwortbudget für die Antwort selbst.",
"options": {
"default": "Standard",
"none": "Aus",
"low": "Niedrig",
"medium": "Mittel",
"high": "Hoch"
},
"coachNote": "Im Coach gilt die Denktiefe aus den Coach-Einstellungen.",
"backgroundNote": "Hintergrundarbeit wie das Tagesbriefing nutzt diese Einstellung nicht: Sie denkt höchstens auf Mittel nach, weniger, wenn der Betreiber eine niedrigere Grenze setzt, und gar nicht auf der Stufe Sparsam."
},
"providerCardDescription": "Richte Schlüssel und Modell je Anbieter ein; die Reihenfolge darunter bestimmt, welchen HealthLog zuerst fragt.",
"runtimeTitle": "Prüfen und aktualisieren",
"usage": {
"title": "KI-Einsatz",
"description": "Wie viel KI-Arbeit im Hintergrund für dich läuft, während der Coach auf jeder Stufe gleich bleibt.",
"levels": {
"frugal": {
"label": "Sparsam",
"hint": "Karten erneuern sich nach einem Sync höchstens einmal am Tag, ein kurzes Tagesbriefing, Dokumente werden nur auf Knopfdruck gelesen."
},
"standard": {
"label": "Standard",
"hint": "Karten erneuern sich nach einem Sync alle paar Stunden, das volle Tagesbriefing."
},
"full": {
"label": "Voll",
"hint": "Karten erneuern sich nach neuen Daten bis zu stündlich, wie vor dieser Einstellung."
}
},
"limited": "Vom Betreiber begrenzt.",
"estimate": "etwa {tokens} Tokens am Tag, geschätzt",
"measured": "Gemessen: {tokens} Tokens am Tag in den letzten {days} Tagen, Coach eingeschlossen. Die Werte je Stufe sind Schätzungen.",
"noEstimate": "Eine Schätzung je Stufe erscheint nach drei Tagen KI-Nutzung.",
"capped": "Du hast {choice} gewählt, das der Server gerade nicht erlaubt, deshalb gilt {level}. Deine Wahl bleibt gespeichert.",
"followsDefault": "Du folgst dem Standard des Servers ({level}).",
"useDefault": "Standard des Servers verwenden ({level})",
"saveError": "Die Stufe konnte nicht gespeichert werden. Bitte versuche es erneut."
},
"removeKey": {
"label": "API-Schlüssel entfernen",
"title": "Gespeicherten API-Schlüssel entfernen?",
"body": "HealthLog löscht den gespeicherten Schlüssel und kann ihn nicht wiederherstellen. Gib ihn erneut ein, um ihn weiter zu nutzen.",
"confirm": "API-Schlüssel entfernen",
"done": "API-Schlüssel entfernt.",
"failed": "Der API-Schlüssel konnte nicht entfernt werden."
}
},
"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."
},
"glucoseUnit": {
"title": "Blutzucker",
"description": "In welcher Einheit Blutzuckerwerte angezeigt werden. Gespeichert werden sie so oder so gleich.",
"saved": "Blutzucker-Einheit gespeichert",
"saveError": "Die Blutzucker-Einheit 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",
"syncOutcome": {
"empty": "Nichts Neues zu importieren. Alles ist aktuell.",
"failed": "Es wurde nichts gespeichert. Der nächste Lauf versucht es erneut.",
"partial": "{count} Messwerte synchronisiert. Ein Teil der Daten konnte nicht gespeichert werden; der nächste Lauf versucht es erneut."
},
"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.",
"already_linked": "Dieses Withings-Konto ist schon mit einem anderen HealthLog-Profil verbunden. Melde dich bei Withings mit dem Konto an, das zu diesem Profil gehört, oder trenne es zuerst vom anderen Profil."
},
"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.",
"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.",
"already_linked": "Dieses WHOOP-Konto ist schon mit einem anderen HealthLog-Profil verbunden. Melde dich bei WHOOP mit dem Konto an, das zu diesem Profil gehört, oder trenne es zuerst vom anderen Profil."
},
"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.",
"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.",
"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",
"googleHealthSyncCheckStatus": "Status aktualisieren",
"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",
"googleHealthSyncInProgress": "Synchronisierung läuft: {count} Messwerte gespeichert, {completed} von {total} Bereichen verarbeitet.",
"googleHealthResourceFailuresTitle": "Diese Bereiche benötigen noch Aufmerksamkeit:",
"googleHealthResource": {
"workout": "Workouts",
"sleep": "Schlaf",
"boundedMetrics": "Gesundheitsmesswerte",
"activity": "Aktivität",
"heartRate": "Herzfrequenz",
"other": "Weitere Daten"
},
"googleHealthReason": {
"collectionFailed": "Google konnte diese Daten nicht bereitstellen. Versuche die Synchronisierung später erneut.",
"tokenFailed": "Die Verbindung ist abgelaufen. Verbinde Google Health erneut.",
"upsertFailed": "Die Daten konnten nicht gespeichert werden. Versuche die Synchronisierung erneut.",
"rollupFailed": "Die Daten wurden erfasst, aber die Auswertung ist noch nicht aktualisiert. Versuche es später erneut.",
"pageLimit": "Der verfügbare Verlauf wurde nur teilweise verarbeitet. Eine weitere Synchronisierung setzt ihn fort.",
"generic": "Dieser Bereich wurde nicht vollständig synchronisiert. Versuche es erneut."
},
"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.",
"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.",
"already_linked": "Dieses Google-Konto ist schon mit einem anderen HealthLog-Profil verbunden. Melde dich bei Google mit dem Konto an, das zu diesem Profil gehört, oder trenne es zuerst vom anderen Profil."
},
"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.",
"retired": "Google hat die Fitbit-Web-API abgeschaltet, deshalb lässt sich keine neue Fitbit-Verbindung mehr herstellen. Verbinde stattdessen Google Health, das dieselben Geräte liest.",
"already_linked": "Dieses Fitbit-Konto ist schon mit einem anderen HealthLog-Profil verbunden. Melde dich bei Fitbit mit dem Konto an, das zu diesem Profil gehört, oder trenne es zuerst vom anderen Profil."
},
"integrations": {
"withings": {
"plan": {
"link": "Mehr zu den API-Plänen von Withings",
"items": {
"spo2": "SpO2",
"vascularAge": "Gefäßalter",
"pulseWaveVelocity": "Pulswellengeschwindigkeit",
"vo2Max": "VO2max",
"visceralFat": "Viszeralfett",
"skinTemperature": "Hauttemperatur",
"ecg": "EKG und Vorhofflimmern",
"sleepScore": "Schlaf-Score",
"sleepHrv": "nächtliche HRV",
"sleepHeartRate": "nächtliche Herzfrequenz",
"sleepRespiratoryRate": "nächtliche Atemfrequenz",
"sleepSpo2": "nächtliche SpO2",
"bodyTemperature": "Körpertemperatur",
"bodyFat": "Körperfett",
"fatMass": "Fettmasse",
"fatFreeMass": "fettfreie Masse",
"muscleMass": "Muskelmasse",
"bodyWater": "Körperwasser",
"boneMass": "Knochenmasse",
"heartRate": "Herzfrequenz",
"bloodPressure": "Blutdruck",
"weight": "Gewicht"
}
}
},
"oura": {
"scope": {
"items": {
"vo2max": "VO2max",
"cardio_age": "kardiovaskuläres Alter",
"resilience": "Resilienz",
"workout": "Trainings",
"heartrate": "Herzfrequenz"
}
}
}
},
"integrationPill": {
"justNow": "gerade eben",
"minutesAgo": "vor {count} min",
"hoursAgo": "vor {count} Std.",
"daysAgo": "vor {count} d",
"resumeSuccess": "Integration wieder aktiv",
"resumeError": "Wieder verbinden fehlgeschlagen"
},
"integrationFreshness": {
"title": "Empfangene Daten",
"summary": "{count} Datentypen, neuestes {relative}",
"quiet": "{count} still",
"workouts": "Workouts",
"medicationDoses": "Medikamenteneinnahmen"
},
"integrationFallback": {
"description": "Für dieses Konto eingerichtet, hat aber keine eigene Einstellungskarte."
},
"withingsViewData": "Messwerte ansehen",
"whoopViewData": "Erholung ansehen",
"fitbitViewData": "Schlaf ansehen",
"googleHealthViewData": "Schritte ansehen",
"apiTokens": "API-Tokens",
"apiTokensDescription": "Tokens für Messwerte, Trainings, Dokumente und Medikamenten-Einnahme prüfen und widerrufen.",
"measurementsToken": {
"title": "Messwert-Tokens",
"description": "Erzeuge ein Token, damit eine Waage, eine Uhr oder deine Hausautomatisierung Werte eintragen kann.",
"detail": "Das Token wird nur einmal angezeigt.",
"scopeNote": "Es kann ausschließlich neue Werte in deine eigene Akte eintragen. Es kann deine Daten nicht lesen, nichts ändern oder löschen und kein weiteres Token erstellen. Werte werden als von einem externen Gerät gekennzeichnet, damit du sie später erkennst, und lassen sich jederzeit korrigieren.",
"createFailed": "Das Token konnte nicht erstellt werden. Bitte versuche es erneut.",
"namePlaceholder": "Name, z. B. Home Assistant",
"appleHealth": {
"label": "Messwerte in Apple Health schreiben",
"createHint": "Die HealthLog-App auf deinem iPhone trägt die Werte dieses Tokens dann in Apple Health ein. Du kannst das später in der Token-Liste unten ändern.",
"toggleAria": "Werte von {name} in Apple Health schreiben",
"updateFailed": "Die Apple-Health-Einstellung konnte nicht geändert werden. Bitte versuche es erneut.",
"unattributed": "Werte, die vor dieser Einstellung gesendet wurden, lassen sich keinem Token zuordnen und bleiben deshalb außerhalb von Apple Health."
}
},
"workoutsToken": {
"title": "Training-Tokens",
"description": "Erzeuge ein Token, damit eine Uhren-Brücke oder ein Sync-Skript deine Trainings eintragen kann.",
"detail": "Das Token wird nur einmal angezeigt.",
"scopeNote": "Es kann ausschließlich neue Trainings in deine eigene Akte eintragen. Es kann deine Daten nicht lesen, nichts ändern oder löschen und kein weiteres Token erstellen. Trainings, die darüber kommen, werden als von einem externen Gerät gekennzeichnet. Hat dein Telefon dieselbe Einheit aufgezeichnet, siehst du die Aufzeichnung des Telefons.",
"createFailed": "Das Token konnte nicht erstellt werden. Bitte versuche es erneut.",
"namePlaceholder": "Name, z. B. Garmin"
},
"documentsToken": {
"title": "Dokument-Tokens",
"description": "Erzeuge ein Token, damit Paperless-ngx, Papra oder das Import-Skript Dokumente in deine Ablage legen können.",
"detail": "Das Token wird nur einmal angezeigt.",
"scopeNote": "Es kann ausschließlich neue Dokumente in deine eigene Ablage legen. Es kann nichts auflisten, öffnen, herunterladen, ändern oder löschen und kein weiteres Token erstellen. Zurück bekommt es nur, ob eine Datei gespeichert wurde, nicht wie du sie abgelegt hast.",
"createFailed": "Das Token konnte nicht erstellt werden. Bitte versuche es erneut.",
"namePlaceholder": "Name, z. B. Paperless-ngx"
},
"tokenMintMovedDescription": "Tokens werden dort ausgestellt, wo sie gelten: oben für Messwerte, Trainings und Dokumente, oder im API-Endpoint eines Medikaments für genau dieses Medikament.",
"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",
"dangerZone": "Alle Daten löschen",
"dangerZoneDescription": "Löscht deine gesamte Gesundheitsakte und jede Integrationsverbindung.",
"dangerZoneConfirm": "Alle Daten löschen?",
"dangerZoneConfirmDescription": "Dieser Vorgang löscht unwiderruflich alles in deiner Akte: Messwerte, Medikamente, Stimmungseinträge, Laborwerte, Zykluseinträge, Dokumente, KI-Gespräche und jede Integrationsverbindung, dazu alles daraus Abgeleitete und alles, was du früher gelöscht hast. Freigabe-Links, die du an eine Praxis gegeben hast, funktionieren sofort nicht mehr. Dein Konto bleibt bestehen, ebenso deine Anmeldedaten und Anzeigeeinstellungen wie Sprache, Zeitzone und Einheiten. Das lässt sich nicht rückgängig machen.",
"dangerZoneSuccess": "Deine Gesundheitsakte wurde gelöscht. Dein Konto und deine Anmeldung bleiben unverändert.",
"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.",
"deleteAccountCta": "Konto löschen",
"deleteAccountConfirmTitle": "Konto endgültig löschen?",
"deleteAccountConfirmTitleGrace": "Konto löschen?",
"deleteAccountConfirmDescription": "Dein Konto, alle Gesundheitsdaten, Passkeys, Sessions und Audit-Einträge werden unwiderruflich gelöscht. Du wirst danach automatisch abgemeldet. Kopien in den Sicherungen dieses Servers verfallen nach ihrer Aufbewahrungsfrist.",
"deleteAccountSuccess": "Konto wurde gelöscht. Du wirst abgemeldet.",
"deleteAccountFailed": "Konto konnte nicht gelöscht werden",
"deleteAccountFinal": "Endgültig löschen",
"deleteAccountFinalGrace": "Konto löschen",
"saved": "Gespeichert",
"savingError": "Fehler beim Speichern",
"about": {
"version": "App-Version",
"gitSha": "Build",
"builtAtLabel": "Erstellt",
"license": "Lizenz",
"repository": "Quellcode",
"changelog": "Changelog",
"docs": "Dokumentation",
"credits": "Credits & Datenquellen",
"linksHeading": "Quellen & Dokumentation",
"newerAvailable": "Neue Version: {tag}",
"support": {
"title": "Support",
"description": "Eine Zusammenfassung für eine Fehlermeldung, ohne Namen, E-Mail oder Gesundheitswerte.",
"copy": "Support-Info kopieren",
"copied": "Kopiert",
"copyFailed": "Die Support-Info konnte nicht zusammengestellt werden."
}
},
"testConnection": {
"test": "Verbindung testen",
"saveFirst": "Speichere zuerst deine Änderungen. Der Test nutzt die gespeicherten Einstellungen.",
"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",
"upstream_rejected": "Die Gegenstelle hat die Nachricht abgelehnt",
"connection_failed": "Verbindung fehlgeschlagen",
"not_configured": "Nicht konfiguriert",
"url_not_public": "URL ist kein öffentlicher Endpunkt",
"private_origin_not_approved": "Ziel im privaten Netz. Der Betreiber muss diesen Origin in NOTIFICATION_PRIVATE_ORIGINS eintragen",
"private_origin_not_grantable": "Diese Adresse ist Link-local, eine Metadaten- oder eine unspezifizierte Adresse; keine Betreiber-Freigabe kann sie öffnen. Bitte die Adresse verwenden, auf der das Relay lauscht",
"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": "Status je Kanal; „Automatisch deaktiviert“ heißt, dass nach dauerhaften Fehlern gestoppt wurde.",
"emptyDescription": "Richte unter Einstellungen › Integrationen › Zustellkanäle einen Kanal ein.",
"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",
"emptyTitle": "Noch keine Kanäle konfiguriert"
},
"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": "Eine vollständige Akte für die ärztliche Vorlage, als PDF, als FHIR oder beides.",
"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",
"includeCharts": "Trend-Diagramme einbetten (nur PDF)",
"fhirNote": "Die strukturierte Ausgabe folgt dem FHIR-R4-Standard (ePA-kompatibel).",
"generate": "Erstellen",
"documentsLink": "Dokumente zum Zeitraum",
"range30": "Letzte 30 Tage",
"rangeCustom": "Eigener Zeitraum",
"rangeCustomStart": "Von",
"rangeCustomEnd": "Bis",
"errorGeneric": "Der Export konnte nicht erstellt werden. Bitte erneut versuchen.",
"errorRateLimit": "Das Exportlimit für diese Stunde ist erreicht.",
"errorModuleDisabled": "Der Gesundheitsakten-Export ist für dieses Konto ausgeschaltet.",
"visitOffer": "Am {when} steht ein Termin an: {what}.",
"visitOfferApplyWindow": "Zeitraum übernehmen"
},
"globalExcludedInjectionSitesLabel": "Global ausgeschlossene Injektionsstellen",
"globalExcludedInjectionSitesHint": "Nie angeboten und beim Erfassen abgelehnt, auch wenn eine Medikation sie bevorzugt.",
"sharing": {
"createTitle": "Neuer Freigabe-Link",
"createDescription": "Der Link ist schreibgeschützt und zeitlich begrenzt.",
"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.",
"create": "Link erstellen",
"tokenCreated": "Freigabe-Link erstellt",
"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.",
"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.",
"scopeTitle": "Was dieser Link enthält",
"scopeInsuranceExcluded": "Versichertendaten werden über einen Link nie geteilt.",
"statusNeedsReselect": "Inhalt neu wählen",
"reselectReason": "Dieser Link lieferte einen Umfang, den niemand gewählt hatte, und wurde deshalb geschlossen. Lege einen neuen an und wähle den Inhalt.",
"reselectAction": "Ersatz anlegen",
"createDetail": "Der Token wird nur einmal bei der Erstellung angezeigt. Sichere ihn dann; er lässt sich nicht wiederherstellen.",
"activeDescription": "Deine geteilten Links, wann sie ablaufen und wie oft sie geöffnet wurden.",
"revokedToast": "Link widerrufen.",
"revokeFailed": "Der Link konnte nicht widerrufen werden."
},
"genderOther": "Divers",
"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.",
"nightscoutPrivateOperatorTitle": "Der Zugriff auf ein privates Nightscout benötigt die Freigabe der Serveradministration.",
"nightscoutPrivateOperatorDescription": "Bitte die Serveradministration, genau diesen Nightscout-Ursprung freizugeben.",
"nightscoutConnect": "Verbinden",
"nightscoutUpdate": "Änderungen speichern",
"nightscoutConnected": "Nightscout verbunden.",
"nightscoutConnectFailed": "Verbindung zu Nightscout fehlgeschlagen.",
"nightscoutSync": "Jetzt synchronisieren",
"nightscoutSyncResult": "{count} Messwerte synchronisiert",
"nightscoutSyncFailed": "Synchronisierung 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, tägliche Aktivität und Trainingseinheiten zu synchronisieren.",
"polarViewData": "Schlaf & Erholung ansehen",
"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",
"polarSync": "Jetzt synchronisieren",
"polarSyncResult": "{count} Messwerte synchronisiert",
"polarSyncFailed": "Synchronisierung fehlgeschlagen",
"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.",
"already_linked": "Dieses Polar-Konto ist schon mit einem anderen HealthLog-Profil verbunden. Melde dich bei Polar mit dem Konto an, das zu diesem Profil gehört, oder trenne es zuerst vom anderen Profil."
},
"oura": "Oura",
"ouraDescription": "Verbinde dein Oura-Konto, um Readiness, Schlafphasen, Herzfrequenzvariabilität und tägliche Aktivität zu synchronisieren.",
"ouraViewData": "Schlaf & Erholung ansehen",
"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",
"ouraSync": "Jetzt synchronisieren",
"ouraSyncResult": "{count} Messwerte synchronisiert",
"ouraSyncFailed": "Synchronisierung fehlgeschlagen",
"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.",
"issuer": "Die Anmeldeantwort kam nicht vom Autorisierungsserver von Oura, deshalb wurde die Verbindung zu deiner Sicherheit abgebrochen. Bitte starte die Verbindung erneut. Wenn das wieder passiert, sag deinem Administrator Bescheid.",
"generic": "Unbekannter Fehler bei der Verbindung. Bitte starte die Verbindung erneut.",
"already_linked": "Dieses Oura-Konto ist schon mit einem anderen HealthLog-Profil verbunden. Melde dich bei Oura mit dem Konto an, das zu diesem Profil gehört, oder trenne es zuerst vom anderen Profil."
},
"integrationSetupGuide": "Einrichtungsanleitung",
"coach": {
"memory": {
"edit": "Bearbeiten",
"source": {
"user": "von dir",
"coach": "vom Coach"
}
},
"state": {
"title": "Coach",
"description": "Ob der Coach-Button und das Coach-Panel erscheinen. Der Schalter liegt unter Module."
},
"nudgesMoved": "Stellst du mit deinen anderen Erinnerungen unter Benachrichtigungen ein.",
"openNudges": "In Benachrichtigungen öffnen"
},
"integrationRedirectGuide": {
"intro": "Die Verbindung läuft über deine eigene {provider}-Entwickler-App. Die Einrichtung dauert etwa 5 Minuten:",
"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",
"addedToast": "Sicherheitsschlüssel hinzugefügt.",
"removedToast": "Sicherheitsschlüssel entfernt."
},
"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}",
"revokeConfirmTitle": "Diesem Gerät nicht mehr vertrauen?",
"revokeConfirmBody": "Es fragt beim nächsten Anmelden wieder nach deinem zweiten Faktor.",
"revokeAllConfirmTitle": "Keinem Gerät mehr vertrauen?",
"revokeAllConfirmBody": "Jedes Gerät fragt beim nächsten Anmelden wieder nach deinem zweiten Faktor, auch dieses."
},
"revokeSessionConfirmTitle": "Dieses Gerät abmelden?",
"revokeSessionConfirmBody": "{device} muss sich neu anmelden. An den dort erfassten Daten ändert sich nichts.",
"signOutEverywhereConfirmTitle": "Alle anderen Geräte abmelden?",
"signOutEverywhereConfirmBody": "Alle anderen Geräte, jeder verbundene KI-Assistent und jedes API-Token müssen sich neu anmelden oder neu eingerichtet werden. Dieses Gerät bleibt angemeldet. Deine Einträge bleiben unberührt.",
"signOutEverywhereShareLinks": "Auch die Freigabelinks für Ärztinnen und Ärzte beenden",
"signOutEverywhereInvites": "Einladungen zu deiner Akte, die noch niemand angenommen hat, werden zurückgezogen. Wer schon angenommen hat, behält den Zugriff; du kannst ihn gleich danach beenden.",
"signOutEverywhereInvitesDone": "{count} nicht angenommene Einladung(en) zurückgezogen.",
"grantsKeptTitle": "Diese Personen sehen deine Akte weiterhin",
"grantsKeptBody": "Das Abmelden beendet keinen Zugriff, den du jemandem gegeben hast. Beende ihn hier, wenn du ihn nicht gegeben hast oder nicht mehr willst."
},
"privacy": {
"encryption": {
"title": "Verschlüsselt gespeichert",
"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",
"measurements": "Messwerte: Gewicht, Blutdruck, Puls und jeder weitere Wert, den du oder ein Gerät erfasst",
"integrations": "Integrations-Tokens (verschlüsselt)",
"security": "Konto- und Sicherheitsaktivität (Sitzungen, Anmeldeprotokoll)",
"profile": "Dein Profil, deine Anamnese und die Angaben für die Gesundheitsakte",
"modules": "Einträge der Module: {list}"
},
"workoutRoutes": {
"title": "Trainingsrouten",
"description": "Den GPS-Verlauf neuer Trainings aus der iPhone-App und dem Apple-Health-Export speichern.",
"detail": "Für neue Konten aus. Eine Route zeigt, wo du wohnst, arbeitest und trainierst, deshalb wird sie erst gespeichert, wenn du das einschaltest. Die Trainings selbst werden immer gespeichert, und keine KI-Funktion liest jemals eine Route. Ausschalten stoppt neue Routen; schon gespeicherte bleiben, bis du das Training löschst.",
"loadError": "Die Routen-Einstellung konnte nicht geladen werden."
},
"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.",
"accountDeletion": "Löschen deines Kontos, eines verwalteten Profils oder aller Daten: abgeschlossen nach {days} Tagen",
"accountDeletionImmediate": "Löschen deines Kontos, eines verwalteten Profils oder aller Daten: sofort abgeschlossen"
},
"delete": {
"title": "Löschen oder zurücksetzen",
"description": "Lösche dein Konto vollständig oder lösche deine Gesundheitsdaten und behalte das Konto.",
"openAdvanced": "Löschen oder zurücksetzen",
"immediateNotice": "Die Löschung entfernt deine Daten sofort. Wenn dieser Server verschlüsselte externe Sicherungen anlegt, werden die Kopien deiner Daten gleich danach aus diesem Speicher gelöscht, oder in der nächsten Nacht, falls der Speicher nicht erreichbar ist. Kopien in den Sicherungen dieses Servers verfallen nach ihrer Aufbewahrungsfrist.",
"graceNotice": "Wenn du dein Konto löschst, wird es sofort gesperrt und nach {days} Tagen endgültig gelöscht, zusammen mit jeder Kopie, die dieser Server davon aufbewahrt, auch verschlüsselten Kopien außerhalb des Servers. Bis dahin kann ein Admin dieses Servers die Löschung rückgängig machen. Beim Löschen aller Daten gilt dasselbe: Eine Kopie der Akte bleibt {days} Tage erhalten, sodass ein Admin sie wiederherstellen kann. Kopien in den Sicherungen dieses Servers verfallen nach ihrer Aufbewahrungsfrist."
},
"posture": {
"title": "Datenschutz-Einstellung",
"description": "Steuere, wie viele deiner Daten an KI-Funktionen weitergegeben werden.",
"openAi": "KI-Datenschutzmodus"
},
"sessions": {
"title": "Sitzungen und Geräte",
"description": "Wo du angemeldet bist, welche Geräte den zweiten Faktor überspringen, und die Sicherheitsaktivität deines Kontos.",
"open": "Sicherheit öffnen"
}
},
"mcp": {
"enableTitle": "Remote-MCP-Endpunkt",
"enableDescription": "Erlaube einem MCP-fähigen Assistenten (Claude.ai, ChatGPT), deine Gesundheitsdaten über ein begrenztes Token zu lesen.",
"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 Token für einen Assistenten, nur mit Lesezugriff, außer du erlaubst unten das Eintragen.",
"scopeNote": "Neue Tokens können nur deine eigenen Daten lesen. Schreibzugriff (health:write) vergibst du pro Token über den Schalter unten. Admin-Funktionen erreicht ein Token nie.",
"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.",
"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.",
"tokensDetail": "Das Token wird nur einmal angezeigt.",
"connectionsDetail": "Das Widerrufen einer Verbindung beendet den Zugriff sofort, einschließlich der Möglichkeit zur Erneuerung.",
"tokenNamePlaceholder": "Name, z. B. Claude Desktop",
"offKeepsTokens": "Ausschalten pausiert den Endpunkt. Deine Tokens und Verbindungen bleiben und funktionieren wieder, sobald er an ist."
},
"strava": "Strava",
"stravaDescription": "Verbinde dein Strava-Konto, um deine Aktivitäten in deinen Trainingsverlauf zu übernehmen.",
"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",
"stravaSync": "Jetzt synchronisieren",
"stravaSyncResult": "{count} Messwerte synchronisiert",
"stravaSyncFailed": "Synchronisierung fehlgeschlagen",
"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.",
"already_linked": "Dieses Strava-Konto ist schon mit einem anderen HealthLog-Profil verbunden. Melde dich bei Strava mit dem Konto an, das zu diesem Profil gehört, oder trenne es zuerst vom anderen Profil."
},
"appleHealth": {
"title": "Apple Health",
"description": "Die Live-Synchronisierung erfolgt über die HealthLog-iOS-App, nicht über eine Web- oder OAuth-Verbindung.",
"status": {
"unavailable": "Apple-Health-Status nicht verfügbar"
},
"setupTitle": "Live-Synchronisierung aktivieren",
"permissionStep": "Öffne in der HealthLog-iOS-App Einstellungen → Apple Health und erlaube die Gesundheitskategorien, die du teilen möchtest.",
"backgroundStep": "Lass die Hintergrundaktualisierung aktiviert. Die App synchronisiert neue Daten automatisch im Vordergrund und wenn iOS Hintergrundzeit gewährt.",
"importNote": "Du brauchst ältere Daten oder kannst die iOS-App nicht nutzen? Der Apple-Health-XML/ZIP-Upload ist ein einmaliger Ersatzweg und aktiviert keine Live-Synchronisierung.",
"importAction": "Einmaligen Import öffnen",
"progress": {
"title": "Sync-Fortschritt",
"receivedLabel": "Empfangene Datensätze",
"oldestLabel": "Älteste erreichte Messung",
"flowing": "In der letzten Stunde sind Daten angekommen. Die iPhone-App liefert weiter.",
"waiting": "Warten auf weitere Daten von der iPhone-App. Die Übertragung läuft weiter, wenn die App geöffnet ist oder iOS ihr Hintergrundzeit gewährt. Eine ruhige Phase während des ersten großen Abgleichs ist normal, kein Fehler."
},
"delivery": {
"title": "Übermittlung",
"lastTriggerLabel": "Letzte Synchronisierung kam",
"lastBackgroundLabel": "Letzte Hintergrund-Synchronisierung",
"backgroundNever": "Nie: bisher kam jede Synchronisierung bei geöffneter App an",
"noSyncYet": "Es ist noch keine Synchronisierung angekommen, daher gibt es hier nichts zu berichten.",
"trigger": {
"foreground": "bei geöffneter App",
"background": "im Hintergrund",
"push": "durch einen Push-Weckruf",
"unknown": "Auslöser von der App nicht gemeldet",
"manual": "über „Alles synchronisieren“"
}
},
"freshness": {
"title": "Nach Datentyp",
"lastReceived": "Zuletzt empfangen {relative}",
"lastNewValue": "Letzter neuer Wert {relative}",
"lastBackground": "Zuletzt im Hintergrund {relative}",
"lastDuplicate": "Zuletzt ohne neue Werte erneut gesendet {relative}",
"never": "Noch nicht empfangen",
"lastBackfill": "Verlauf nachgeladen {relative}",
"lastEnteredHere": "Zuletzt hier eingetragen {relative}"
}
},
"glucoseReference": {
"title": "Glukose-Referenzband",
"description": "Gegen welches Band deine Blutzuckerwerte bewertet werden.",
"enable": "Diabetes-Zielband verwenden",
"explainer": "Aus werden Werte gegen das allgemeine nicht-diabetische Referenzband bewertet. An werden sie gegen das engere glykämische Zielband der ADA Standards of Care bewertet, und der Coach begründet seine Glukose-Aussagen auf diesem Band. Deine eigenen Zielwert-Überschreibungen unten haben weiterhin Vorrang.",
"disclaimer": "Das wählt ein Referenzband aus. Es ist keine Diagnose, wird nie aus einem Messwert abgeleitet, und die App handelt klinisch nicht danach. Welche Zielwerte für dich gelten, klärst du mit deiner Ärztin oder deinem Arzt.",
"error": "Die Einstellung konnte nicht gespeichert werden."
},
"dangerZoneDetail": "Dein Konto und deine Anmeldedaten bleiben erhalten.",
"deleteAccountCardDetail": "Dieser Vorgang kann nicht rückgängig gemacht werden.",
"passkeyStepUpRequired": "Aus Sicherheitsgründen bitte erneut anmelden, bevor du einen Passkey entfernst.",
"setup": {
"title": "Einrichtung",
"description": "Die Fragen, die entscheiden, was HealthLog zuerst zeigt, und die Erste-Schritte-Checkliste auf dem Dashboard.",
"setUpAgain": "Erneut einrichten",
"showChecklist": "Checkliste wieder anzeigen",
"checklistShown": "Die Checkliste ist wieder auf dem Dashboard.",
"checklistNothingHidden": "Die Checkliste war nicht ausgeblendet; sie öffnet sich auf dem Dashboard."
},
"documentSources": {
"title": "Dokumentarchive",
"description": "Paperless-ngx oder Papra aus HealthLog durchsuchen und ausgewählte Dokumente importieren.",
"explainer": "Ein Import-Knopf erscheint überall, wo du Dokumente verknüpfst: bei Arztbesuchen, Impfungen und Erkrankungen sowie unter Dokumente. HealthLog speichert von jedem importierten Dokument eine eigene verschlüsselte Kopie und fragt dein Archiv nur, wenn du suchst oder importierst.",
"systemLabel": "Archiv",
"statusConnected": "Verbunden",
"statusNotConnected": "Nicht verbunden",
"connectedSince": "Verbunden, zuletzt geprüft am {date}",
"originRemoved": "Diese Adresse steht nicht mehr auf der Liste der erlaubten Archive dieses Servers. Frag die Administration oder speichere eine andere Adresse.",
"baseUrl": "Adresse",
"allowedOrigins": "Auf diesem Server erlaubt: {origins}",
"organizationId": "Organisations-ID",
"organizationHelp": "Der Teil nach /organizations/ in der Adresszeile von Papra. Papra-Organisations-IDs sehen aus wie org_ gefolgt von 24 Buchstaben und Ziffern.",
"token": "API-Token",
"tokenSaved": "Für diese Adresse gespeichert. Leer lassen, um es zu behalten.",
"tokenHelpPaperless": "In Paperless-ngx: Mein Profil, API-Token.",
"tokenHelpPapra": "In Papra: ein API-Schlüssel mit documents:read und tags:read.",
"save": "Speichern und testen",
"saving": "Wird getestet …",
"saved": "Verbunden. Das Archiv hat geantwortet.",
"test": "Testen",
"testOk": "Das Archiv hat in {latency} ms geantwortet.",
"disconnect": "Trennen",
"disconnectTitle": "{name} trennen?",
"disconnectDescription": "HealthLog vergisst Adresse und Token. Bereits importierte Dokumente bleiben in HealthLog.",
"unavailableExplainer": "Dieser Server erlaubt keine Dokumentarchive mehr, die Verbindung unten ist daher nicht nutzbar. Du kannst sie weiterhin entfernen.",
"moduleOffExplainer": "Dokumente sind ausgeschaltet, die Verbindung unten wird daher nicht genutzt. Du kannst sie weiterhin entfernen.",
"tokenNewAddress": "Für eine neue Adresse wird das API-Token erneut gebraucht."
},
"emailChangePassword": "Aktuelles Passwort (nötig, um die E-Mail-Adresse zu ändern)",
"reproof": {
"description": "Damit werden deine Gesundheitsdaten weitergegeben oder exportiert. Bestätige, dass du es bist, um fortzufahren.",
"descriptionChange": "Das ändert etwas, das nur du ändern können solltest. Bestätige, dass du es bist, um fortzufahren.",
"signInAgain": "Melde dich neu an und versuche es dann noch einmal. Dein Konto hat kein Passwort und keinen Passkey, den du hier bestätigen könntest.",
"failed": "Das hat nicht geklappt. Prüfe deine Eingabe und versuche es noch einmal.",
"oidcDone": "Bestätigt. In den nächsten fünf Minuten kannst du weitermachen, ohne erneut gefragt zu werden.",
"oidcFailed": "Dein Identitätsanbieter konnte nicht bestätigen, dass du es bist. Versuche es noch einmal."
},
"passwordTitle": "Passwort",
"tokenNameLabel": "Token-Name",
"displayCard": {
"title": "Darstellung",
"description": "Sprache, Einheiten und Formate, gespeichert, sobald du sie änderst."
},
"integrationCard": {
"state": {
"ok": "Läuft",
"limited": "Eingeschränkt",
"degraded": "Verzögert",
"actionRequired": "Aktion nötig"
},
"reason": {
"dataArriving": "Daten kommen an.",
"dataArrivingHistory": "Daten kommen an. Der ältere Verlauf wird im Hintergrund geladen.",
"firstSyncPending": "Verbunden. Die erste Synchronisierung läuft in Kürze.",
"planLimited": "Daten kommen an. Dein {provider}-Tarif enthält {list} nicht.",
"permissionLimited": "Daten kommen an. Für {list} fehlt die Freigabe.",
"providerErrors": "{provider} antwortet seit {since} nicht zuverlässig. HealthLog versucht es weiter, du musst nichts tun.",
"providerErrorsNoSince": "{provider} antwortet gerade nicht zuverlässig. HealthLog versucht es weiter, du musst nichts tun.",
"syncStalled": "Seit {since} hat HealthLog nicht mehr synchronisiert. Das liegt am Server, nicht an deinem Gerät.",
"syncStalledNoSince": "HealthLog synchronisiert gerade nicht. Das liegt am Server, nicht an deinem Gerät.",
"noNewData": "Seit {since} sind keine neuen Daten gekommen.",
"noNewDataNoSince": "Seit einer Weile sind keine neuen Daten gekommen.",
"noNewDataApple": "Seit {since} sind keine neuen Daten gekommen. Öffne HealthLog einmal auf dem iPhone.",
"noNewDataAppleNoSince": "Seit einer Weile sind keine neuen Daten gekommen. Öffne HealthLog einmal auf dem iPhone.",
"unexpectedSilence": "Seit {since} kommen keine Daten, obwohl {provider} sonst täglich liefert.",
"unexpectedSilenceNoSince": "Es kommen keine Daten, obwohl {provider} sonst täglich liefert.",
"reauthRequired": "Die Verbindung zu {provider} ist abgelaufen. Verbinde neu, damit wieder Daten kommen.",
"pausedAfterErrors": "{provider} ist pausiert, weil es seit {since} nur Fehler gab.",
"pausedAfterErrorsNoSince": "{provider} ist pausiert, weil es zuletzt nur Fehler gab."
},
"when": {
"today": "heute, {time}",
"yesterday": "gestern, {time}",
"date": "{date}, {time}"
},
"items": {
"activity": "Aktivität",
"sleep": "Schlaf"
},
"moreValuesOne": "{count} weiteren Wert",
"moreValuesFew": "{count} weitere Werte",
"moreValuesOther": "{count} weitere Werte",
"notConnected": "Nicht verbunden.",
"lastData": "Letzte Daten: {when}",
"lastDataNone": "Letzte Daten: noch keine",
"reconnect": "Neu verbinden",
"resume": "Fortsetzen",
"menuLabel": "Weitere Aktionen für {provider}",
"menu": {
"credentials": "Zugangsdaten ändern",
"address": "Adresse und Token ändern"
},
"syncing": "Synchronisierung läuft…",
"details": {
"title": "Details für eine Fehlermeldung",
"none": "keine",
"state": "Zustand",
"since": "seit",
"lastSync": "Letzte Synchronisierung",
"lastData": "Letzte Daten",
"failingParts": "fehlende Teile",
"recentCalls": "Letzte Aufrufe",
"unavailable": "Nicht verfügbar",
"unavailableList": "Nicht verfügbar: {list}",
"causePlan": "Tarif",
"causePermission": "Freigabe",
"failureStreak": "Fehlerserie: {count} von {threshold}",
"copyFailed": "Kopieren hat nicht geklappt. Markiere den Text und kopiere ihn von Hand."
},
"historyEnds": {
"horizon": "{type}: übernommen bis zurück zum {date}. Ältere Werte liegen jenseits der Importgrenze.",
"noProgress": "{type}: übernommen bis zurück zum {date}. Google lieferte keine älteren Werte mehr, deshalb endet der Import dort."
}
},
"dawarich": "Dawarich",
"dawarichTag": "Bewegung",
"dawarichDescription": "Verbinde deine Dawarich-Instanz, um Tagesstrecke, Zeit außer Haus und Reisetage zu übernehmen.",
"dawarichUrl": "Dawarich-Adresse",
"dawarichApiKey": "API-Schlüssel",
"dawarichApiKeyHelp": "Du findest ihn in Dawarich unter Konto. HealthLog liest damit nur Tageswerte, nie Koordinaten oder Ortsnamen.",
"dawarichConnect": "Verbinden",
"dawarichUpdate": "Änderungen speichern",
"dawarichConnected": "Dawarich verbunden. Die letzten 30 Tage werden gerade geladen.",
"dawarichSync": "Jetzt abrufen",
"dawarichSyncQueued": "Die letzten sieben Tage werden gleich abgerufen.",
"dawarichSyncAlreadyQueued": "Ein Abruf läuft bereits.",
"dawarichDisconnect": "Trennen",
"dawarichDisconnectTitle": "Dawarich trennen?",
"dawarichDisconnectDescription": "Künftige Abrufe stoppen. Bereits gespeicherte Tage bleiben erhalten.",
"dawarichDisconnectDelete": "Trennen und Tage löschen",
"dawarichDisconnectDeleteTitle": "Trennen und alle Tage löschen?",
"dawarichDisconnectDeleteDescription": "Die Verbindung und alle gespeicherten Bewegungstage werden entfernt. Das lässt sich nicht rückgängig machen.",
"dawarichHomePlaceSet": "Zuhause ist festgelegt.",
"dawarichHomePlaceMissing": "Lege dein Zuhause fest, damit die Zeit außer Haus gemessen werden kann.",
"dawarichHomeCountryIs": "Heimatland: {country}.",
"dawarichHomeCountryMissing": "Noch kein Heimatland, daher keine Reisetage.",
"dawarichDaysStored": "Gespeicherte Tage: {count}",
"dawarichHomePlace": "Zuhause",
"dawarichHomePlaceChoose": "Ort aus Dawarich wählen",
"dawarichHomePlaceChange": "Zuhause wählen",
"dawarichHomeCountry": "Heimatland",
"dawarichHomeCountryHelp": "Zweistelliger Ländercode, etwa DE. Leer gelassen gilt das Land, in dem du im letzten Jahr am häufigsten warst.",
"dawarichHomeSave": "Speichern",
"dawarichHomeSaved": "Gespeichert.",
"dawarichErrors": {
"invalid": "Diese Adresse funktioniert nicht. Nutze die Adresse der Instanz ohne Zugangsdaten.",
"privateOrigin": "Diese Instanz liegt in einem privaten Netz. Bitte den Betreiber des Servers, sie freizugeben.",
"credentials": "Dawarich hat den API-Schlüssel nicht angenommen.",
"unreachable": "Dawarich ist nicht erreichbar. Prüfe die Adresse und ob die Instanz läuft.",
"rateLimited": "Zu viele Versuche. Warte kurz und versuche es dann erneut.",
"homePlaceUnknown": "Diesen Ort kennt die Dawarich-Instanz nicht mehr.",
"notConnected": "Dawarich ist nicht verbunden.",
"generic": "Das hat nicht geklappt. Versuche es erneut."
},
"fitbitRetirement": {
"ending": "Google schaltet die Fitbit-Web-API am {date} ab. Ab dann synchronisiert diese Verbindung nicht mehr.",
"ended": "Google hat die Fitbit-Web-API am {date} abgeschaltet. Diese Verbindung synchronisiert nicht mehr.",
"move": "Google Health liest dieselben Fitbit- und Pixel-Geräte. Verbinde es unten, damit deine Daten weiter ankommen. Google fragt dich noch einmal nach deiner Zustimmung, weil sich die Fitbit-Verbindung nicht übertragen lässt. Alles bereits Importierte bleibt erhalten.",
"toCard": "Zu Google Health",
"guide": "So verbindest du Google Health",
"badgeEnding": "Wird abgeschaltet",
"badgeEnded": "Abgeschaltet"
},
"passkeyAddedToast": "Passkey hinzugefügt.",
"passkeyRemovedToast": "Passkey entfernt.",
"integrationDisconnected": "{provider} getrennt.",
"integrationDisconnectFailed": "{provider} konnte nicht getrennt werden.",
"timezoneSaved": "Zeitzone gespeichert.",
"moduleState": {
"on": "An",
"off": "Aus",
"change": "Unter Module ändern"
},
"timezoneUseDevice": "Zeitzone dieses Geräts übernehmen ({zone})",
"dangerZoneConfirmDescriptionGrace": "Dieser Vorgang löscht alles in deiner Akte: Messwerte, Medikamente, Stimmungseinträge, Laborwerte, Zykluseinträge, Dokumente, KI-Gespräche und jede Integrationsverbindung, dazu alles daraus Abgeleitete und alles, was du früher gelöscht hast. Freigabe-Links, die du an eine Praxis gegeben hast, funktionieren sofort nicht mehr. Dein Konto bleibt bestehen, ebenso deine Anmeldedaten und Anzeigeeinstellungen wie Sprache, Zeitzone und Einheiten. Eine Kopie deiner Akte wird {days} Tage aufbewahrt, sodass ein Admin dieses Servers sie bis dahin wiederherstellen kann. Danach ist die Löschung endgültig.",
"deleteAccountCardDetailGrace": "Dein Konto wird sofort gesperrt und nach {days} Tagen endgültig gelöscht. Bis dahin kann ein Admin dieses Servers die Löschung rückgängig machen.",
"deleteAccountConfirmDescriptionGrace": "Du wirst abgemeldet und dein Konto wird sofort gesperrt. Nach {days} Tagen wird es endgültig gelöscht, mit allen Gesundheitsdaten, Passkeys, Sessions und Audit-Einträgen. Bis dahin kann ein Admin dieses Servers die Löschung rückgängig machen. Kopien in den Sicherungen dieses Servers verfallen nach ihrer Aufbewahrungsfrist.",
"deleteAccountScheduled": "Dein Konto ist gesperrt und wird am {date} endgültig gelöscht. Du wirst abgemeldet.",
"dangerZoneSuccessGrace": "Deine Gesundheitsakte wurde gelöscht. Ein Admin dieses Servers kann sie bis zum {date} wiederherstellen.",
"dangerZoneRestoreLimits": "Auch Zugriffe enden: was du mit anderen teilst, was andere mit dir teilen, und jede Rolle als betreuende Person. Eine Wiederherstellung bringt die Akte so zurück, wie sie jetzt ist. Was nach dem Löschen hinzukommt, wird dabei ersetzt, und Integrationsverbindungen, Freigaben, Betreuungsrollen und Freigabe-Links kommen nicht zurück; sie müssen neu eingerichtet werden.",
"garmin": "Garmin",
"garminTag": "Personal API",
"garminDescription": "Füge einen Garmin-Personal-API-Schlüssel ein, um Schlaf, HRV, Body Battery, Stress, Schritte, Gewicht und Aktivitäten aus Garmin Connect zu synchronisieren.",
"garminSync": "Jetzt synchronisieren",
"garminSyncResult": "{count} Einträge synchronisiert",
"garminSyncFailed": "Synchronisierung fehlgeschlagen",
"garminViewData": "Erholung ansehen",
"garminReplaceKey": "Schlüssel ersetzen",
"garminDisconnect": "Trennen",
"garminDisconnectTitle": "Garmin trennen?",
"garminDisconnectDescription": "Künftige Synchronisierungen enden, und der Schlüssel wird von diesem Server entfernt. Bereits importierte Daten bleiben in deinem Verlauf. Bei Garmin bleibt der Schlüssel gültig, bis du ihn dort widerrufst.",
"garminKeyValidUntil": "Schlüssel gültig bis {date}",
"garminKeyExpired": "Dein Garmin-Schlüssel ist am {date} abgelaufen. Erstelle in Garmin Connect einen neuen Schlüssel und füge ihn hier ein, damit die Synchronisierung weiterläuft.",
"garminKeyExpiresToday": "Dein Garmin-Schlüssel läuft heute ab. Erstelle in Garmin Connect einen neuen Schlüssel und füge ihn hier ein, damit die Synchronisierung nicht stoppt.",
"garminKeyExpiring": "Dein Garmin-Schlüssel läuft am {date} ab. Erstelle vorher in Garmin Connect einen neuen Schlüssel und füge ihn hier ein.",
"garminKeyExpiryUnknown": "Garmin verrät nicht, wann dieser Schlüssel abläuft. Ersetze den Schlüssel und wähle die Gültigkeit, die du in Garmin Connect eingestellt hast, dann warnt dich diese Karte eine Woche vorher.",
"garminConnected": "Garmin verbunden. Die erste Synchronisierung läuft an.",
"garminConnectFailed": "Verbindung zu Garmin fehlgeschlagen.",
"garminKeyHowTo": "Öffne in Garmin Connect die Einstellungen, dann Personal API, und erstelle einen Schlüssel. Garmin zeigt ihn nur einmal an, kopiere ihn also sofort.",
"garminKeySettingsLink": "Garmin Connect öffnen",
"garminApiKey": "Personal-API-Schlüssel",
"garminApiKeyPlaceholder": "Schlüssel einfügen",
"garminApiKeySavedPlaceholder": "Gespeichert. Füge einen neuen Schlüssel ein, um ihn zu ersetzen",
"garminKeyValidity": "Gewählte Gültigkeit",
"garminKeyValidityUnknown": "Weiß ich nicht",
"garminKeyValidityDays": "{count} Tage",
"garminKeyValidityHelp": "Garmin meldet nicht, wann ein Schlüssel abläuft. Mit der Gültigkeit warnt dich diese Karte eine Woche, bevor der Schlüssel nicht mehr funktioniert.",
"garminConnect": "Verbinden",
"garminUpdate": "Änderungen speichern"
},
"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 Betreiber-Schlüssel für Konten, die keinen eigenen hinterlegt haben.",
"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.",
"baseUrlHint": "Die Basis-URL bestimmt die API: eine Anthropic-URL wie https://api.anthropic.com/v1 wird erkannt, jeder andere Host wird über die OpenAI-kompatible API angesprochen.",
"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",
"removeTitle": "Server-Schlüssel entfernen?",
"removeBody": "Konten ohne eigenen Schlüssel verlieren die KI-Funktionen sofort. Der Schlüssel wird nach dem Speichern nirgends mehr angezeigt. Zum Wiederherstellen brauchst du das Original.",
"removeConfirm": "Schlüssel entfernen",
"saved": "KI-Server-Schlüssel gespeichert",
"error": "Speichern des KI-Server-Schlüssels fehlgeschlagen",
"legacyGrantTitle": "ALLOW_LOCAL_AI_PRIVATE_HOSTS=true ist veraltet",
"legacyGrantBody": "Die Einstellung erlaubt dem Server-Schlüssel oben und KI-Einstellungen, die in einem Admin-Konto gespeichert sind, weiterhin Zugriff auf dein Netzwerk und entfällt in einer späteren Version. Andere Konten brauchen ihren KI-Endpunkt schon jetzt in AI_PRIVATE_ORIGINS. Setze AI_PRIVATE_ORIGINS in der Server-Umgebung, starte neu und entferne dann ALLOW_LOCAL_AI_PRIVATE_HOSTS.",
"legacyGrantOrigins": "Diese auf dieser Instanz gespeicherten KI-Adressen zeigen in dein Netzwerk:",
"legacyGrantNoOrigins": "Keine auf dieser Instanz gespeicherte KI-Adresse zeigt in dein Netzwerk, du kannst ALLOW_LOCAL_AI_PRIVATE_HOSTS also jetzt entfernen."
},
"providerHealth": {
"title": "Zustand der KI-Provider",
"description": "Zustellstatus jedes KI-Providers, zusammengefasst aus dem Wiederholungsregister pro Nutzer.",
"loading": "Provider-Zustand wird geladen…",
"loadError": "Der Provider-Zustand konnte nicht geladen werden.",
"empty": "Es wurden noch keine KI-Aufrufe aufgezeichnet.",
"trackedUsers": "{count} Nutzer erfasst",
"lastOk": "letzter Erfolg {at}",
"lastFailure": "letzter Fehlschlag {at}",
"lastFailureStatus": "HTTP {status}",
"statusHealthy": "In Ordnung",
"statusFailing": "{failing} von {tracked} scheitern, {run} in Folge",
"typeAdminOpenai": "Server-Schlüssel (Betreiber)",
"typeAdminCodex": "Zentrales ChatGPT (Betreiber)",
"typeOpenai": "OpenAI-Schlüssel (persönlich)",
"typeAnthropic": "Anthropic-Schlüssel (persönlich)",
"typeCodex": "ChatGPT-Anmeldung (persönlich)",
"typeLocal": "Lokales Modell (persönlich)",
"typeGateway": "OpenAI-kompatibles Gateway (persönlich)",
"spendToday": "Heute, jeweils am eigenen Kalendertag jedes Kontos: {total} Tokens, davon {operator} auf dem Schlüssel des Betreibers (Konten mit Verbrauch: {accounts}).",
"statusPaused": "Pausiert",
"pausedHint": "Nach wiederholten Fehlern für {count} Nutzer pausiert bis {at}. Danach wird er automatisch wieder versucht.",
"modelNotServed": "Der Endpunkt bietet das Modell {model} nicht mehr an. Wähle in den KI-Einstellungen ein Modell, das er anbietet.",
"usageLevels": "Konten je KI-Stufe: {frugal} sparsam, {standard} Standard, {full} voll."
},
"aiQuality": {
"title": "Insights-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": "Gilt für neue Konten ohne erkannte Browser-Zeitzone; bestehende Konten behalten ihre.",
"defaultUserTimezoneFallback": "Europe/Berlin (Standard)",
"servicesGlobal": "Kanäle und API",
"servicesGlobalDescription": "Deaktivierte Dienste stehen keinem Nutzer zur Verfügung.",
"telegramGlobal": "Telegram-Benachrichtigungen erlauben.",
"ntfyGlobal": "ntfy-Benachrichtigungen erlauben.",
"webPushGlobal": "Browser-Push-Benachrichtigungen erlauben.",
"integrationWebPush": "Web Push",
"offlineGeoLabel": "Geodaten",
"offlineGeoEnabled": "Offline (GeoLite2)",
"offlineGeoFallback": "Online ({host}). GeoLite2-Datenbanken einbinden und GEOLITE2_DIR setzen",
"heapLimitLabel": "Heap-Grenze",
"heapLimitValue": "{mb} MB",
"heapLimitLow": "{mb} MB, zu knapp. APP_MEMORY_LIMIT=1536m in .env setzen",
"memoryBelowFloor": "Container {mb} MB, unter der unterstützten Untergrenze von {floor} MB. APP_MEMORY_LIMIT={floor}m in .env setzen",
"offlineGeoOff": "Aus",
"offlineGeoChosen": "Online ({host})",
"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",
"glitchtipTargetOn": "Fehlerberichte gehen an {host}.",
"glitchtipTargetOff": "Fehlerberichte bleiben auf diesem Host. Es wird nichts verschickt.",
"glitchtipTargetNoTarget": "Fehler-Tracking ist an, aber kein Ziel gesetzt, also wird nichts verschickt.",
"glitchtipUnproven": "Unbestätigt",
"glitchtipDeliveryUnproven": "Ein Ziel ist gesetzt, aber noch kein Bericht hat diesen Host verlassen. Drücke Test, um zu sehen, ob es einen annimmt.",
"glitchtipDeliveryStale": "In den letzten {hours} h hat kein Bericht diesen Host verlassen. Drücke Test, um zu prüfen, ob das Ziel noch annimmt.",
"glitchtipDeliveryFailed": "Der letzte Bericht kam nicht durch ({reason}).",
"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",
"description": "Jeder Schalter stoppt die KI-Arbeit, die er abdeckt, und blendet ihren Text aus, Daten und Werte laden weiter.",
"master": {
"title": "Assistent aktiv",
"description": "Hauptschalter für alle KI-Funktionen. Ist er aus, wird nichts an ein Modell gesendet, und alle Schalter darunter sind aus."
},
"coach": {
"title": "Coach",
"description": "Chat, Pflege des Coach-Gedächtnisses und KI-Hinweise. Gespeicherte Gespräche bleiben lesbar und löschbar."
},
"briefing": {
"title": "Tagesbriefing",
"description": "Das Tagesbriefing, seine Einleitung an anderen Stellen der App und Zeitraum-Zusammenfassungen, die ein Modell schreibt."
},
"insightStatus": {
"title": "Statusnotizen",
"description": "Kurze Notizen, die ein Modell pro Messwert und Kennzahl schreibt, Trainingsnotizen und Reaktionszeilen. Der größte Anteil am Token-Verbrauch."
},
"documentAi": {
"title": "Dokumente lesen",
"description": "KI-Lesen gespeicherter Dokumente, Scans von Laborbefunden und das Erkennen von Medikamenten aus Text. Der größte Anteil der Daten, die den Server verlassen."
},
"reasoning": {
"enabled": "Gründliches Denken erlauben",
"max": "Höchste Denktiefe",
"description": "Modelle denken vor der Antwort nach: im Coach, im Tagesbriefing und in den Zusammenfassungen. Genauer, braucht mehr Tokens."
}
},
"modules": {
"title": "Modulverfügbarkeit",
"description": "Schalte ein Modul für den gesamten Server ab.",
"saveError": "Modulverfügbarkeit konnte nicht aktualisiert werden.",
"detail": "Gewicht, Blutdruck und Puls sind Kerndaten und bleiben immer aktiv.",
"coachFollowsSwitch": "Folgt dem Coach-Schalter im Bereich Coach."
},
"invites": {
"title": "Einladungslinks",
"description": "Jeder Link lässt eine Registrierung zu, auch wenn sie geschlossen ist.",
"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": "Konten",
"userManagementDescription": "Rollen, Passwort-Resets und erzwungene Abmeldungen für jedes Konto.",
"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.",
"loginOverviewDescription": "Anmelde- und Auth-Ereignisse aller Konten, filterbar und als CSV exportierbar.",
"loginOverviewFilterLabel": "Ereignisse filtern",
"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 Datensätze aller Konten; die Konten selbst und ihre Zugangsdaten bleiben erhalten.",
"deleteAllConfirm": "Alle Daten löschen?",
"deleteAllConfirmDescription": "Dieser Vorgang löscht unwiderruflich alle Datensätze aller Konten in der gesamten Datenbank, nicht eine Auswahl von Tabellen. Erhalten bleiben: die Nutzerkonten und ihre Anmelde-Zugangsdaten, die Konfiguration der Instanz und die Berechtigungen, über die betreute Profile erreichbar bleiben. Ein Beleg für diesen Vorgang wird danach ins Audit-Log geschrieben; die Audit-Historie davor geht mit allem anderen.",
"deleteButton": "Alle Daten löschen",
"deleteAllPromptLabel": "Tippe {token} zum Fortfahren",
"finalDelete": "Endgültig löschen",
"deletedResult": "Gelöscht: {rows} Zeilen in {tables} Tabellen. Nutzerkonten und Anmelde-Zugangsdaten bleiben erhalten.",
"authRegister": "Registrierung",
"authClaim": "Profil übernommen",
"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": {
"snapshotTitle": "System-Snapshot",
"snapshotDatabase": "Datenbank",
"snapshotWorker": "Worker",
"snapshotStarted": "Gestartet",
"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",
"versionTileCheckOff": "Update-Prüfung aus",
"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 die API für den ganzen Server ein- oder ausschalten."
},
"integrations": {
"title": "Integrationen",
"subtitle": "Umami, GlitchTip, Web Push und Bug-Reports konfigurieren."
},
"coach": {
"title": "Coach",
"subtitle": "Assistenz-Oberflächen, Server-Schlüssel und Feedback-Qualität 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"
},
"filterLabel": "Benutzer filtern",
"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",
"deletionPending": "Löschung am {date}",
"deletionPendingNoDate": "Löschung vorgemerkt",
"undoDeletion": "Löschung rückgängig machen",
"undoDeletionTitle": "Löschung von {name} rückgängig machen?",
"undoDeletionBody": "{name} hat die Löschung dieses Kontos verlangt; es wird gelöscht, wenn die Frist endet. Rückgängig machen behält das Konto und alles darin so, wie es war. {name} kann sich wieder anmelden, aber API-Tokens, Freigabe-Links und vertrauenswürdige Geräte bleiben widerrufen und müssen neu eingerichtet werden.",
"undoDeletionBodyGuardian": "Eine betreuende Person hat das verwaltete Profil {name} gelöscht; es wird gelöscht, wenn die Frist endet. Rückgängig machen behält das Profil und alles darin so, wie es war, und die betreuenden Personen erreichen es wieder. Seine Freigabe-Links und Tokens bleiben widerrufen und müssen neu eingerichtet werden.",
"undoDeletionDone": "Löschung von {name} rückgängig gemacht",
"undoDeletionFailed": "Löschung konnte nicht rückgängig gemacht werden",
"undoDeletionBodyAdmin": "Ein Admin hat das Konto {name} gelöscht; es wird gelöscht, wenn die Frist endet. Rückgängig machen behält das Konto und alles darin so, wie es war. {name} kann sich wieder anmelden, aber API-Tokens, Freigabe-Links und vertrauenswürdige Geräte bleiben widerrufen und müssen neu eingerichtet werden.",
"deleteUser": "Konto löschen",
"deleteUserTitle": "Das Konto {name} löschen?",
"deleteUserBodyGrace": "{name} wird sofort überall abgemeldet und kann sich nicht mehr anmelden. Das Konto und alles darin wird am {date} gelöscht. Bis dahin kannst du die Löschung hier rückgängig machen.",
"deleteUserBodyNow": "{name} und alles im Konto wird sofort gelöscht. Dieser Server hat keine Frist eingestellt, die Löschung lässt sich also nicht rückgängig machen.",
"deleteUserConfirm": "Konto löschen",
"deleteUserScheduled": "Das Konto {name} ist gesperrt und wird am {date} gelöscht",
"deleteUserDone": "Das Konto {name} wurde gelöscht",
"deleteUserFailed": "Das Konto konnte nicht gelöscht werden"
},
"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.",
"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",
"processDetail": "Der Puffer ist flüchtig und auf 500 Einträge begrenzt.",
"cardTitle": "Letzte Ereignisse",
"filterErrorId": "Fehler-ID"
},
"backups": {
"title": "Backups",
"subtitle": "Kontokopien in der Datenbank dieses Servers, um ein Konto hier zurückzusetzen.",
"description": "Jedes Konto hat eine wöchentliche Kopie, die jeden Sonntag ersetzt wird, dazu hier hochgeladene Kopien und die Kopie, die vor „Alle Daten löschen“ angelegt wird. Eine Kopie setzt ein bestehendes Konto auf diesem Server zurück. Einen verlorenen Server kann sie nicht wiederherstellen: Dafür braucht es einen Datenbank-Dump und die Verschlüsselungsschlüssel. Die Größen zeigen die verschlüsselte Kopie. Beim Herunterladen wird sie für den anfragenden Admin entschlüsselt; der Geheimtext bleibt in der Datenbank.",
"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öchentliche Kontokopie",
"typeManual": "Manuell",
"colSize": "Größe",
"colCreatedAt": "Letzter Snapshot",
"colActions": "Aktionen",
"scheduleStaleTitle": "Die wöchentliche Sicherung läuft nicht mehr",
"scheduleStaleDescription": "Die neueste geplante Kopie ist {days} Tage alt. Ein funktionierender wöchentlicher Lauf lässt keine älter als {threshold} Tage werden.",
"scheduleFailedTitle": "Der letzte geplante Sicherungslauf ist fehlgeschlagen",
"scheduleFailedDescription": "{when}: {reason}",
"scheduleFailedNoReason": "kein Grund aufgezeichnet",
"scheduleRemedy": "Starte jetzt eine Sicherung und prüfe, ob eine frische Zeile erscheint. Schlägt sie erneut fehl, nennt das Worker-Protokoll das Konto, an dem sie stehen geblieben ist.",
"activity": {
"running": "Läuft seit {when}.",
"interruptedTitle": "Ein Lauf ist mittendrin abgebrochen und nicht zurückgekehrt",
"interruptedAccount": "{username}: begonnen {when}, nie beendet",
"interruptedRemedy": "Wahrscheinlich wurde die App neu gestartet oder ihr ging beim Schreiben dieser Kopie der Speicher aus. Der nächste Lauf nimmt diese Konten zuletzt, damit alle anderen zuerst ihre Kopie bekommen. Passiert es wieder, gib dem Container mehr Speicher."
},
"download": "Herunterladen",
"downloadAria": "Backup für {username} herunterladen",
"downloadFailed": "Download fehlgeschlagen",
"downloadStarted": "Download gestartet",
"uploadTitle": "Backup hochladen",
"uploadDescription": "Prüft eine Kontokopie und speichert sie neben den Kopien dieses Servers. Eine Kopie, deren Konto es auf diesem Server nicht mehr gibt, kann in ein anderes Konto gehen. Das Wiederherstellen ist ein eigener Schritt.",
"uploadButton": "Datei hochladen",
"uploadHelp": "HealthLog-Backup als .json oder .json.gz. Die Datei wird vor dem Hochladen komprimiert; komprimiert darf sie bis zu 512 MB groß sein.",
"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.",
"restoreInstanceSettingsLabel": "Instanzweite Einstellungen mitwiederherstellen",
"restoreInstanceSettingsHint": "Registrierung, MFA-Pflicht, Standardsprache, Modulverfügbarkeit, Benachrichtigungs- und KI-Konfiguration aus dem Snapshot, gültig für alle auf dieser Installation. Leer lassen, um nur dieses Konto wiederherzustellen.",
"restorePromptLabel": "Tippe RESTORE zum Fortfahren",
"previewTitle": "Inhalt der Sicherung",
"previewLoading": "Inhalt wird gelesen…",
"previewUnavailable": "Inhalt konnte nicht gelesen werden, die Wiederherstellung bleibt möglich.",
"previewStillReading": "Diese Sicherung stammt aus einer früheren Version, deshalb wird ihr Inhalt vollständig gelesen. Bei einem großen Datenbestand dauert das eine Weile. Öffne diesen Dialog in ein paar Minuten noch einmal, dann steht er hier. Die Wiederherstellung hängt nicht davon ab.",
"previewEmpty": "Die Datei enthält keine Datensätze.",
"previewOther": "Weitere Datensätze",
"previewMeasurements": "Messwerte",
"previewMedications": "Medikamente und Einnahmen",
"previewMood": "Stimmungseinträge",
"previewLabs": "Laborwerte",
"previewDocuments": "Dokumente",
"previewWorkouts": "Workouts",
"previewCycles": "Zyklusdaten",
"previewVisits": "Arztbesuche",
"previewVaccinations": "Impfungen",
"previewReminders": "Vorsorge-Erinnerungen",
"previewCustomMetrics": "Eigene Messgrößen",
"previewHealthScores": "Score-Verlauf",
"restoreConfirm": "Jetzt wiederherstellen",
"restoreInProgress": "Wiederherstellung läuft…",
"restoreSuccess": "Wiederherstellung abgeschlossen",
"restoreFailed": "Wiederherstellung fehlgeschlagen",
"restoreSkippedToast": "Wiederherstellung abgeschlossen, {links} Symptomverknüpfungen konnten nicht zurückgeschrieben werden",
"restoreSkippedTitle": "{links} Verknüpfungen wurden nicht wiederhergestellt",
"restoreSkippedDescription": "Die Datei verweist auf Einträge, die diese Installation nicht kennt. Alles andere wurde wiederhergestellt. Dieselbe Liste steht im Audit-Log.",
"restoreSkippedLinks": "{count} Verknüpfungen",
"restoreSkippedCycleSymptom": "Zyklussymptom",
"restoreSkippedIllnessSymptom": "Krankheitssymptom",
"restoreSkippedMoodFactor": "Stimmungsfaktor",
"restoreSkippedMoodTag": "Stimmungs-Tag",
"restoreSkippedVisitReference": "Besuchsverknüpfung",
"restoreSkippedVaccinationReference": "Impfverknüpfung",
"restoreSkippedCheckupClosure": "Vorsorge-Abschluss",
"restoreSkippedReminderReference": "Erinnerungsverknüpfung",
"restoreSkippedCoachAttachment": "Coach-Dokumentverknüpfung",
"restoreSkippedCoachReference": "Coach-Verweis",
"restoreSkippedDocumentConditionLink": "Dokumentzuordnung",
"restoreSkippedRelationLink": "Verknüpfung zwischen Einträgen",
"restoreSkippedExtractedFact": "Dokumentbefund",
"restoreSkippedFactCommitment": "Befundübernahme",
"docsLink": "Dokumentation",
"restoreSkippedPersonalRecordReference": "Herkunft einer Bestleistung",
"restoreSkippedEcgReference": "Herkunft eines EKG-Streifens",
"restoreSkippedMedicationTarget": "Zielwert-Analyt einer Medikation",
"restoreSkippedScheduleRevisionLink": "Abfolge der Schema-Zeiträume",
"restoreSkippedAccountSetting": "Kontoeinstellung",
"restoreMissingTitle": "Wiederherstellung abgelehnt: Die Datei ist unvollständig",
"restoreMissingDescription": "Das Manifest der Datei sagt, sie enthalte den folgenden Abschnitt, und sie enthält ihn nicht. Es wurde nichts geändert: Eine Wiederherstellung ersetzt eine ganze Datenklasse, ein fehlender Abschnitt hätte sie also geleert.",
"restoreMissingRemedy": "Nutze eine der Kontokopien dieses Servers oder eine Kopie außerhalb des Servers, oder exportiere das Konto erneut und lade die neue Datei hoch. Ein Abschnitt, den das Manifest als ausgelassen angibt, ist etwas anderes und wird normal wiederhergestellt.",
"restoreMissingDocuments": "Dokumente",
"restoreMissingWorkouts": "Workouts",
"restoreMissingMentalHealth": "Psychische Fragebögen",
"restoreMissingConsent": "Einwilligungsnachweise",
"offhost": {
"title": "Kopien außer Haus",
"description": "Wann dieser Host zuletzt die verschlüsselte Kopie jedes Kontos in deinen Bucket gelegt hat.",
"loadError": "Der Status außer Haus konnte nicht geladen werden.",
"notConfiguredTitle": "Sicherung außer Haus ist nicht eingerichtet",
"notConfiguredDescription": "Es sind weder Bucket noch Schlüssel gesetzt, also verlässt keine Sicherung diesen Host. Setze BACKUP_S3_ENDPOINT, BACKUP_S3_BUCKET, BACKUP_S3_ACCESS_KEY, BACKUP_S3_SECRET_KEY und BACKUP_ENCRYPTION_KEY, um den nächtlichen Upload einzuschalten.",
"stateFresh": "Frisch",
"stateDue": "Fällig",
"stateStale": "Veraltet",
"stateNever": "Nie",
"stateUnknown": "Noch kein Eintrag",
"neverDetail": "Für dieses Konto ist nichts angekommen. Zuletzt geprüft {when}.",
"unknownDetail": "Noch kein nächtlicher Lauf hat dieses Konto erfasst.",
"age": "vor {hours} h",
"scheduleNote": "Der Upload läuft alle {hours} h. Frisch heißt innerhalb eines Laufs, fällig heißt ein Lauf blieb ohne Ergebnis, veraltet heißt zwei.",
"lifecycleConfigured": "Der Bucket löscht Kopien nach {days} Tagen über seine eigene Lifecycle-Regel.",
"lifecycleMissing": "Der Bucket hat keine Lifecycle-Regel, jede nächtliche Kopie bleibt also für immer liegen. Lege eine Regel an, die Objekte nach BACKUP_RETENTION_DAYS löscht.",
"lifecycleUnknown": "Ob der Bucket alte Kopien löscht, ließ sich nicht lesen: Die Zugangsdaten dürfen seine Lifecycle-Regel nicht lesen. Prüfe, dass eine Regel Objekte nach BACKUP_RETENTION_DAYS löscht.",
"pendingDeletions": "Kopien von {count} gelöschten oder geleerten Konten liegen noch im Bucket und werden entfernt.",
"pendingDeletionsFailing": "Kopien von {count} gelöschten oder geleerten Konten liegen noch im Bucket, weil er das Löschen verweigert hat ({error}). Gib den Zugangsdaten DeleteObject; das Löschen wird jede Nacht wiederholt."
},
"restoreStarted": "Wiederherstellung gestartet. Der Fortschritt steht über der Liste.",
"restoreActive": "Für dieses Konto läuft schon eine Wiederherstellung. Warte, bis sie fertig ist.",
"restoreJobQueuedTitle": "Wiederherstellung von {username} wartet auf den Start",
"restoreJobQueuedNote": "Sie beginnt, sobald der Hintergrunddienst sie übernimmt.",
"restoreJobWaitingBackupNote": "Wartet auf das Backup, das gerade auf dem Server läuft. Eine Wiederherstellung läuft nie neben einem Backup und startet etwa eine Minute nach dessen Ende.",
"restoreJobWaitingBusyNote": "Wartet, bis eine große Aufgabe auf dem Server fertig ist, etwa ein Import oder ein nächtlicher Durchlauf. Sie startet etwa eine Minute danach.",
"restoreJobQueuedSince": "In der Warteschlange seit {when}.",
"restoreJobRunningTitle": "{username} wird wiederhergestellt",
"restoreJobRunningNote": "Das Konto zeigt seine bisherigen Daten, bis die Wiederherstellung fertig ist. Du kannst die Seite verlassen; die Wiederherstellung läuft auf dem Server weiter.",
"restoreJobResumed": "Nach einem Neustart des Servers erneut gestartet.",
"restoreJobPhaseValidating": "Backup-Datei wird geprüft: {checked} Messwerte geprüft",
"restoreJobPhaseClearing": "Bisherige Daten des Kontos werden entfernt",
"restoreJobPhaseMeasurements": "Messwerte werden geschrieben: {done} von {total}",
"restoreJobPhaseSections": "Übrige Einträge werden geschrieben: {done} von {total} Bereichen",
"restoreJobPhaseRebuilding": "Diagramme und Zusammenfassungen werden neu berechnet",
"restoreJobSucceededTitle": "Wiederherstellung von {username} abgeschlossen",
"restoreJobSucceededDescription": "{count} Datensätze wiederhergestellt. Fertig {when}.",
"restoreJobFailedTitle": "Wiederherstellung von {username} nicht abgeschlossen",
"restoreJobFailedKept": "Es wurde nichts geändert. Das Backup bleibt erhalten, du kannst die Wiederherstellung also über seine Zeile erneut starten, ohne es noch einmal hochzuladen.",
"restoreFailureNotFound": "Das Backup wurde gelöscht, bevor die Wiederherstellung es lesen konnte.",
"restoreFailureChanged": "Das Backup wurde durch eine neuere Kopie ersetzt, während die Wiederherstellung wartete. Prüfe die neue Kopie und starte die Wiederherstellung dann erneut.",
"restoreFailureUndecryptable": "Das Backup ließ sich nicht entschlüsseln. Der Schlüssel, mit dem es geschrieben wurde, ist nicht mehr eingerichtet, oder die gespeicherte Kopie wurde verändert.",
"restoreFailureSchema": "Die Backup-Datei ist kein gültiges HealthLog-Backup.",
"restoreFailureVersion": "Das Backup stammt von einer neueren HealthLog-Version. Aktualisiere zuerst diesen Server.",
"restoreFailureOwnerMismatch": "Die Datei im Backup gehört zu einem anderen Konto als die Backup-Zeile.",
"restoreFailureOwnerMissing": "Das Konto, zu dem dieses Backup gehört, gibt es nicht mehr.",
"restoreFailureSectionMissing": "Die Datei ist unvollständig: Ihr Manifest nennt einen Bereich, den sie nicht enthält.",
"restoreFailureDocument": "Die Datei enthält Dokumente ohne ihren Inhalt, wie ein portabler Export. Nutze stattdessen eine der Kontokopien dieses Servers oder eine Kopie außerhalb des Servers.",
"restoreFailureTimeBudget": "Dieses Backup ist zu groß, um innerhalb des Zeitlimits des Hintergrundauftrags wiederhergestellt zu werden.",
"restoreFailureTransaction": "Die Datenbank hat die Wiederherstellung mittendrin abgelehnt, deshalb wurde alles zurückgerollt. Das Server-Log nennt den Fehler.",
"restoreFailureCauseTimeout": "Die Wiederherstellung hat länger gedauert, als die Datenbank zulässt, deshalb wurde alles zurückgerollt. War der Datenbank-Host ausgelastet, starte sie erneut, wenn er ruhiger ist. Das Server-Log nennt den Schritt.",
"restoreFailureCauseLock": "Die Wiederherstellung hat auf Einträge gewartet, die ein anderer Vorgang gerade geändert hat, deshalb wurde alles zurückgerollt. Starte die Wiederherstellung erneut.",
"restoreFailureCauseConstraint": "Die Datenbank hat einen Eintrag aus der Sicherung abgelehnt, deshalb wurde alles zurückgerollt. Das Server-Log nennt die Tabelle und die Regel.",
"restoreFailureCauseStorage": "Der Datenbank ist während der Wiederherstellung der Speicherplatz oder Arbeitsspeicher ausgegangen, deshalb wurde alles zurückgerollt. Schaffe Platz auf dem Datenbank-Host und starte die Wiederherstellung erneut.",
"restoreFailureCauseConnection": "Die Verbindung zur Datenbank ist während der Wiederherstellung abgerissen, deshalb wurde alles zurückgerollt. Prüfe, ob die Datenbank läuft, und starte die Wiederherstellung erneut.",
"restoreFailureInterrupted": "Die Wiederherstellung wurde durch einen Neustart des Servers unterbrochen und zurückgerollt. Bricht sie erneut ab, reicht dem Server wahrscheinlich der Arbeitsspeicher nicht.",
"restoreFailureNotStarted": "Der Hintergrunddienst hat die Wiederherstellung nicht übernommen. Prüfe, ob er läuft.",
"restoreFailureEnqueue": "Die Wiederherstellung konnte nicht an den Hintergrunddienst übergeben werden. Prüfe, ob er läuft.",
"restoreFailureAfterCommit": "Die Daten wurden wiederhergestellt, aber ein Schritt danach ist fehlgeschlagen. Diagramme holen das womöglich erst beim nächsten nächtlichen Lauf nach.",
"restoreFailureUnexpected": "Die Wiederherstellung ist an einem unerwarteten Fehler gescheitert und wurde zurückgerollt. Das Server-Log nennt den Fehler.",
"restoreFailureKeyMissing": "Die Sicherung braucht den Verschlüsselungsschlüssel {keys}, mit dem dieser Server sie nicht öffnen kann. Nimm den Schlüssel wieder in ENCRYPTION_KEYS auf, starte neu und starte die Wiederherstellung erneut.",
"restoreFailureForeignReference": "Die Datei verweist auf Einträge, die zu einem anderen Konto gehören. Es wurde nichts geschrieben.",
"restoreFailureRowsElsewhere": "Die Datensätze dieser Datei liegen schon in einem anderen Konto auf diesem Server: Dieselbe Datei wurde dort bereits wiederhergestellt. Eine Datei lässt sich nur in ein Konto wiederherstellen. Es wurde nichts geschrieben.",
"previewKeyMissing": "Diese Sicherung lässt sich auf diesem Server nicht wiederherstellen: Sie braucht den Verschlüsselungsschlüssel {keys}. Nimm den Schlüssel zuerst wieder in ENCRYPTION_KEYS auf und starte neu.",
"restoreSkippedSymptomEpisodeReference": "Symptom-Eintrag mit Verknüpfung zu einer Erkrankung, die die Datei nicht enthält (ohne Verknüpfung behalten)",
"restoreSkippedCycleCiphertext": "Zyklus-Notiz oder -Bezeichnung mit einem Schlüssel verschlüsselt, den dieser Server nicht hat (Tag oder Symptom ohne sie behalten)",
"restoreSkippedMoodLabelCiphertext": "Name eines Stimmungs-Tags oder einer Gruppe mit einem Schlüssel verschlüsselt, den dieser Server nicht hat (ohne Namen behalten)",
"restoreSkippedVisitCiphertext": "Text zu Arztbesuch oder Praxis mit einem Schlüssel verschlüsselt, den dieser Server nicht hat (ohne ihn behalten)",
"restoreSkippedVaccinationCiphertext": "Impf-Notiz mit einem Schlüssel verschlüsselt, den dieser Server nicht hat (Impfung ohne sie behalten)",
"restoreSkippedEnvironmentLocationCiphertext": "Ort eines Umweltzeitraums oder -tags mit einem Schlüssel verschlüsselt, den dieser Server nicht hat (verschlüsselt behalten, diese Tage werden nicht neu abgerufen)",
"typePreWipe": "Vor dem Löschen aller Daten",
"retentionNote": "Die wöchentliche Kopie wird jeden Sonntag ersetzt. Eine Kopie, die vor „Alle Daten löschen“ angelegt wurde, wird nach {days} Tagen gelöscht. Hochgeladene Kopien bleiben, bis ihr Konto gelöscht wird.",
"retentionNoteNoGrace": "Die wöchentliche Kopie wird jeden Sonntag ersetzt. Hochgeladene Kopien bleiben, bis ihr Konto gelöscht wird.",
"database": {
"title": "Datenbank-Dump",
"lastGood": "Letzter gültiger Dump {when}, {size}, {where}.",
"whereBoth": "auf diesem Server und extern gespeichert",
"whereLocal": "auf diesem Server gespeichert",
"whereOffhost": "nur extern gespeichert",
"none": "Noch kein Datenbank-Dump. Der erste läuft heute Nacht.",
"failedTitle": "Der letzte Datenbank-Dump ist fehlgeschlagen",
"failedDescription": "{when}: {reason}",
"disabled": "Datenbank-Dumps sind abgeschaltet (DB_BACKUP_ENABLED=false). Sichere die Datenbank auf anderem Weg.",
"noDirectoryOffhost": "Dieser Server kann nicht nach {dir} schreiben. Dumps gehen deshalb nur extern, hier wird keiner aufbewahrt. Binde das Backup-Volume ein.",
"noDirectory": "Dieser Server kann nicht nach {dir} schreiben und es ist kein externer Speicher eingerichtet. Deshalb entsteht kein Datenbank-Dump. Binde das Backup-Volume ein.",
"retentionLocal": "Gelöschte Konten bleiben in den Dumps, bis diese aussortiert werden: Auf diesem Server bleiben die neuesten {nights} nächtlichen Dumps, und der Dump vor dem letzten Update bleibt bis zum nächsten Update.",
"retentionOffhost": "Externe Kopien entfernt die Lebenszyklus-Regel des Buckets nach {days} Tagen.",
"retentionOffhostMissing": "Keine Lebenszyklus-Regel im Bucket gilt für database/. Dumps dort und die gelöschten Konten darin werden deshalb nie entfernt. Lege eine Regel für dieses Präfix an.",
"notPersistentOffhost": "{dir} liegt nicht auf dauerhaftem Speicher (im Container statt auf einem eingebundenen Volume, oder im Arbeitsspeicher). Ein Dump dort wäre beim nächsten Update verloren. Dumps gehen deshalb nur extern: Hier wird keiner aufbewahrt, und vor einer Migration wird keiner erstellt. Binde das Backup-Volume ein.",
"notPersistent": "{dir} liegt nicht auf dauerhaftem Speicher (im Container statt auf einem eingebundenen Volume, oder im Arbeitsspeicher), und es ist kein externer Bucket eingerichtet. Damit wird nirgends ein Datenbank-Dump aufbewahrt. Binde das Backup-Volume ein.",
"offhostFailedTitle": "Der neueste Datenbank-Dump ist nicht im externen Bucket angekommen",
"offhostLastUpload": "Der neueste Dump im Bucket stammt vom {when}.",
"offhostNeverUploaded": "Bisher ist kein Datenbank-Dump im Bucket angekommen."
},
"restorePreWipeLimits": "Diese Kopie wurde vor dem Löschen der Daten des Kontos angelegt, und ihre Wiederherstellung macht das Löschen rückgängig, soweit eine Kopie das kann: Was das Konto seitdem hinzugefügt hat, wird ersetzt, und Integrationsverbindungen, Freigaben, Betreuungszugriffe und Freigabe-Links kommen nicht zurück.",
"target": {
"title": "In ein anderes Konto wiederherstellen",
"description": "{file} gehört zu einem Konto, das es auf diesem Server nicht mehr gibt. Wähle das Konto, in das die Datensätze gehen. Eine Wiederherstellung ersetzt die Datensätze eines Kontos, deshalb kann sie nur ein Konto ohne Datensätze aufnehmen. Die Datei wird dafür noch einmal hochgeladen.",
"choiceLabel": "Wohin die Datensätze gehen",
"newAccount": "Neues Konto",
"existingAccount": "Bestehendes Konto",
"usernameLabel": "Benutzername für das neue Konto",
"usernameInvalid": "3 bis 30 Buchstaben, Ziffern, _ oder -, nicht mit „managed-“ am Anfang.",
"newAccountHint": "Das Konto wird ohne Passwort und ohne E-Mail angelegt. Bevor du es übergibst, setze sein erstes Passwort unter Nutzer mit „Passwort zurücksetzen“.",
"accountLabel": "Konto",
"accountPlaceholder": "Konto wählen",
"checking": "Konto wird geprüft …",
"eligible": "Dieses Konto hat noch keine Datensätze und kann die Kopie aufnehmen.",
"confirmLabel": "Tippe {username} zum Bestätigen",
"submit": "In dieses Konto hochladen",
"submitting": "Wird hochgeladen …",
"success": "Backup für {username} gespeichert ({count} Datensätze). Stelle es über seine Zeile wieder her.",
"failureHoldsRecords": "Dieses Konto hat schon Datensätze. Eine Wiederherstellung ersetzt Datensätze, statt sie zu ergänzen. Wähle ein Konto ohne Datensätze oder lege ein neues an.",
"failureManagedProfile": "Dieses Konto ist ein verwaltetes Profil. Die betreuenden Personen führen es, deshalb kann keine Kopie hinein.",
"failurePendingDeletion": "Dieses Konto wird gerade gelöscht. Mach die Löschung zuerst rückgängig oder wähle ein anderes Konto.",
"failureAdminAccount": "Das ist ein Admin-Konto. Die Datensätze einer anderen Person können nicht hinein. Wähle ein normales Konto oder lege ein neues an.",
"failureNotFound": "Dieses Konto gibt es nicht mehr.",
"failureUnconfirmed": "Tippe den Benutzernamen des Kontos genau ab, um zu bestätigen.",
"failureUsernameTaken": "Dieser Benutzername ist schon vergeben.",
"failureOwnerExists": "Das Konto, zu dem diese Datei gehört, ist auf diesem Server, und die Datei wird in dieses Konto wiederhergestellt. Lade sie noch einmal hoch, ohne ein Konto zu wählen."
}
},
"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.",
"loadError": "Verschlüsselungsstatus konnte nicht geladen werden.",
"coverageTitle": "Abdeckung",
"coverageDescription": "Wie viele verschlüsselte Zeilen unter welcher Schlüssel-ID liegen.",
"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.",
"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. Ohne ihn führen Betreiber scripts/rotate-encryption-key.ts aus einem Quellcode-Checkout dieser Version aus; die Schritte stehen in docs/ops/encryption-key-rotation.md.",
"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"
},
"coverageDetail": "Es werden nur Schlüssel-IDs und Anzahlen gezeigt, niemals Schlüsselmaterial.",
"backupsTitle": "Schlüssel, die die Sicherungen noch brauchen",
"backupsDescription": "Ein alter Schlüssel bleibt nötig, solange eine Sicherung unten ihn noch aufführt.",
"backupsStoredLine": "Schlüssel {key}: {count} gespeicherte Kopien, die älteste vom {when}",
"backupsUnrecordedLine": "{count} gespeicherte Kopien stammen aus der Zeit, bevor Sicherungen ihre Schlüssel festhielten (die älteste vom {when}). Sie können jeden damals vorhandenen Schlüssel brauchen: Behalte alle alten Schlüssel, bis sie ersetzt oder gelöscht sind.",
"backupsOffhostLine": "Schlüssel {key}: Die letzte externe Kopie, die ihn braucht, kam am {when} in den Bucket; dort gebraucht bis {until}",
"backupsOffhostLineUnknown": "Schlüssel {key}: Die letzte externe Kopie, die ihn braucht, kam am {when} in den Bucket. Wie lange der Bucket Kopien behält, ist unbekannt; behalte den Schlüssel, bis diese Kopie sicher weg ist.",
"backupsNone": "Noch keine Sicherung hat die Schlüssel festgehalten, die sie braucht.",
"backupsStillNeed": "Alle Zeilen sind rotiert, aber Sicherungen brauchen noch {keys}",
"backupsUnrecordedBadge": "Alle Zeilen sind rotiert, aber ältere Sicherungen können noch einen ausgemusterten Schlüssel brauchen",
"backupsDetail": "Die Rotation verschlüsselt jede Zeile neu, aber eine Sicherung behält den Schlüssel, unter dem ihr Inhalt geschrieben wurde, und ihre Wiederherstellung braucht ihn. Behalte einen ausgemusterten Schlüssel in ENCRYPTION_KEYS, bis er unten nicht mehr aufgeführt ist.",
"columnsShow": "Tabelle anzeigen ({count} mit Zeilen)",
"columnsHide": "Tabelle ausblenden",
"columnsShowAll": "Alle {count} Spalten anzeigen",
"columnsShowWithRows": "Nur Spalten mit Zeilen",
"columnsNoneWithRows": "Noch keine verschlüsselte Spalte enthält Zeilen.",
"backupsDumpLocalLine": "Schlüssel {key}: {count} Datenbank-Dumps auf diesem Server wurden unter ihm geschrieben; er wird gebraucht, bis die Aufbewahrung sie entfernt.",
"backupsDumpOffhostLine": "Schlüssel {key}: Der neueste Datenbank-Dump, der unter ihm geschrieben wurde, kam am {when} in den Bucket; dort gebraucht bis {until}",
"backupsDumpOffhostLineUnknown": "Schlüssel {key}: Der neueste Datenbank-Dump, der unter ihm geschrieben wurde, kam am {when} in den Bucket. Wie lange der Bucket database/ behält, ist unbekannt; behalte den Schlüssel, bis dieser Dump sicher weg ist."
},
"maintenance": {
"title": "Pflege der Messwert-Tabelle",
"description": "Gibt den Platz frei, den alte Sync-Reste belegt haben, sobald die Bereinigung gelaufen ist.",
"body": "Sie räumt die Messwert-Tabelle auf und baut danach ihre Indizes neu auf, einen nach dem anderen. Lesen und Speichern funktionieren währenddessen weiter. Wähle eine ruhige Stunde und halte freien Speicher für eine weitere Kopie des größten Index bereit.",
"tableSize": "Tabelle mit Indizes",
"indexSize": "Indizes",
"loading": "Stand der Pflege wird geprüft…",
"loadError": "Der Stand der Pflege konnte nicht gelesen werden.",
"unavailable": "Es ist kein Hintergrunddienst verbunden, deshalb kann die Pflege hier nicht laufen.",
"purgePending": "Die Bereinigung alter Sync-Reste läuft noch. Die Pflege kann starten, sobald sie fertig ist.",
"state": {
"idle": "Noch nicht gelaufen.",
"queued": "Wartet auf den Hintergrunddienst.",
"running": "Läuft seit {since}. Auf einer großen Instanz kann das eine Weile dauern.",
"completed": "Fertig am {at}.",
"refusedPurge": "Nicht gestartet, weil die Bereinigung noch lief. Starte sie erneut, sobald die Bereinigung fertig ist.",
"alreadyRunning": "Nicht gestartet, weil bereits ein anderer Lauf arbeitete.",
"failed": "Angehalten am {at}. Das App-Protokoll nennt den Schritt, das Runbook erklärt, was zu prüfen ist."
},
"start": "Pflege starten",
"confirmTitle": "Pflege jetzt starten?",
"confirmBody": "Sie läuft im Hintergrund, Schritt für Schritt, und kann eine Weile dauern. Wenn du heute noch keine Sicherung erstellt hast, erstelle zuerst eine.",
"confirm": "Starten",
"cancel": "Abbrechen",
"started": "Pflege gestartet.",
"alreadyQueued": "Ein Pflegelauf ist bereits eingeplant oder läuft.",
"startFailed": "Die Pflege konnte nicht gestartet werden."
},
"pulseDayMean": {
"title": "Puls-Tagesmittel",
"description": "Wie Stunden mit nur wenigen Messwerten in den Tagespuls eingehen.",
"body": "Bisher zählt jede Stunde mit einem Messwert gleich viel, sodass ein einzelner Ausreißer einen ganzen Tag verschieben kann. Die gewichtete Methode lässt eine Stunde ab drei Messwerten voll zählen und einen einzelnen Messwert zu einem Drittel. Starte zuerst den Probelauf, um zu sehen, wie viele Tage sich ändern würden. Beim Anwenden werden die gespeicherten Pulstage im Hintergrund neu berechnet.",
"method": {
"hourly": "Jede Stunde gleich",
"weighted": "Dünne Stunden gewichtet"
},
"loading": "Puls-Tagesmittel wird geprüft…",
"loadError": "Der Stand des Puls-Tagesmittels konnte nicht gelesen werden.",
"state": {
"idle": "Noch kein Probelauf.",
"queued": "Der Probelauf wartet auf den Hintergrunddienst.",
"running": "Der Probelauf läuft.",
"done": "Probelauf am {at} abgeschlossen.",
"failed": "Der Probelauf wurde abgebrochen. Das App-Protokoll nennt die Ursache; starte ihn erneut."
},
"result": {
"days": "Verglichene Tage",
"changed": "Tage mit mehr als 1 bpm Änderung",
"max": "Größte Änderung",
"maxValue": "{value} bpm",
"bucket": "{range} bpm",
"account": "Konto {account}",
"accountDays": "{changed} von {days} Tagen ändern sich"
},
"appliedAt": "Gewichtete Methode angewendet am {at}.",
"dryRun": "Probelauf",
"apply": "Anwenden",
"confirmTitle": "Gewichtetes Puls-Tagesmittel anwenden?",
"confirmBody": "Danach werden die Pulstage aller Konten mit gewichteten dünnen Stunden berechnet. Die gespeicherten Pulstage werden im Hintergrund neu berechnet, was auf einer großen Instanz eine Weile dauern kann.",
"confirm": "Anwenden",
"cancel": "Abbrechen",
"dryRunStarted": "Probelauf gestartet.",
"applied": "Gewichtete Methode angewendet. Die Pulstage werden neu berechnet.",
"appliedNoRebuild": "Gewichtete Methode angewendet. Ein anderer Lauf arbeitet noch; wende sie erneut an, sobald er fertig ist, damit die Pulstage neu berechnet werden.",
"error": {
"busy": "Ein Probelauf oder eine Neuberechnung läuft noch. Versuche es erneut, sobald er fertig ist.",
"dryRunRequired": "Starte zuerst einen Probelauf. Zum Anwenden braucht es einen, der in den letzten sieben Tagen abgeschlossen wurde.",
"generic": "Die Anfrage ist nicht durchgegangen."
},
"rebuild": {
"queued": "Die Neuberechnung wartet auf den Hintergrunddienst.",
"running": "Die Pulstage werden neu berechnet.",
"done": "Pulstage am {at} für {accounts} Konten neu berechnet.",
"failed": "Die Neuberechnung ist abgebrochen. Das App-Log nennt die Ursache; starte sie erneut."
},
"rebuildAgain": "Erneut berechnen",
"rebuildStarted": "Neuberechnung gestartet."
}
},
"carrier": "Netzbetreiber",
"mfaRequired": "Zweiten Faktor verlangen",
"mfaRequiredDescription": "Konten ohne zweiten Faktor werden nach der Web-Anmeldung zur Einrichtung geleitet; API- und nativer (Bearer-)Zugriff bleiben offen.",
"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",
"disconnectTitle": "Gemeinsames KI-Konto trennen?",
"disconnectBody": "Alle Nutzer auf diesem Server, die die gemeinsame Verbindung nutzen, verlieren die KI-Funktionen, bis wieder ein Konto verknüpft wird. Die gespeicherte Anmeldung lässt sich nicht wiederherstellen.",
"disconnectConfirm": "Trennen",
"connectedSince": "Verbunden seit {when}",
"connected": "Gemeinsame KI-Verbindung verknüpft",
"disconnected": "Gemeinsame KI-Verbindung entfernt",
"error": "Etwas ist schiefgelaufen. Bitte erneut versuchen"
},
"failingJobs": {
"title": "Hintergrundjobs",
"description": "Queues, deren Jobs nach allen Wiederholungen aufgegeben haben.",
"none": "In den letzten {hours} Stunden ist kein Job fehlgeschlagen.",
"unavailable": "Keine Job-Queue lesbar. Dieses Deployment läuft ohne Hintergrund-Worker.",
"countOne": "{count} Fehlschlag",
"countFew": "{count} Fehlschläge",
"countOther": "{count} Fehlschläge",
"lastFailed": "Letzter Fehlschlag {when}"
},
"deleteAllDetail": "Nutzerkonten bleiben bestehen.",
"cardError": {
"title": "Dieser Teil der Seite konnte nicht angezeigt werden",
"description": "Der Rest der Seite funktioniert weiter; versuche es erneut oder lade neu, wenn es bleibt."
},
"keyMismatch": {
"title": "HealthLog kann seine Daten nicht öffnen",
"body": "Der Verschlüsselungsschlüssel, mit dem dieser Server gestartet wurde, ist nicht der, mit dem seine Datenbank geschrieben wurde. Zum Schutz deiner Daten liefert HealthLog nichts aus, bis das behoben ist.",
"fixTitle": "So behebst du es",
"fixRestore": "Trage den ursprünglichen ENCRYPTION_KEY (oder den Eintrag in ENCRYPTION_KEYS) wieder in die Servereinstellungen ein.",
"fixDatabase": "Oder lass DATABASE_URL auf die Datenbank zeigen, die zu diesem Schlüssel gehört.",
"fixFresh": "Oder starte neu mit einer leeren Datenbank. Die alten Daten und ihre Sicherungen lassen sich nur mit dem alten Schlüssel lesen.",
"restartNote": "Starte HealthLog nach der Änderung neu.",
"lastResort": "Letzter Ausweg, nur wenn du sicher bist, dass der Schlüssel stimmt, und keiner der drei Wege passt: setze {setting} und starte neu. HealthLog liefert dann trotzdem aus und schreibt den Befund nur ins Log. Damit ist eine Sicherheitsprüfung abgeschaltet: Mit einem falschen Schlüssel scheitert jeder verschlüsselte Wert, und neue Daten werden unter diesem Schlüssel geschrieben.",
"codes": "Für den Betrieb: API-Anfragen antworten mit 503 und dem Fehlercode {code}, /api/health meldet den Grund {reason}."
},
"loginOverviewCardTitle": "Anmeldeereignisse",
"userColumn": "Nutzer",
"supportReport": {
"title": "Support-Bericht",
"description": "Eine Zusammenfassung dieser Instanz für eine Fehlermeldung, ohne E-Mails, IDs oder Werte.",
"body": "Konten erscheinen als „Account 1“, „Account 2“ und so weiter. Lies den Bericht, bevor du ihn teilst.",
"copy": "Kopieren",
"copied": "Kopiert",
"download": "Herunterladen",
"loadError": "Der Support-Bericht konnte nicht erstellt werden."
},
"aiUsage": {
"title": "KI-Einsatz-Stufen",
"description": "Die höchste Stufe, die Konten wählen dürfen, und die Stufe, mit der sie starten.",
"maxLabel": "Höchste Stufe",
"defaultLabel": "Standardstufe",
"defaultAboveCeiling": "Die Standardstufe darf nicht über der höchsten Stufe liegen.",
"gapLabel": "Stunden zwischen Karten-Erneuerungen nach einem Sync (Standard)",
"gapHint": "Ganze Stunden von 1 bis 48. Leer lassen für AI_SYNC_REGEN_GAP_HOURS, sonst 6. Gerade wirksam: {hours} h."
},
"recoveryKit": {
"title": "Wiederherstellungs-Kit",
"description": "Jeder Schlüssel, den eine Wiederherstellung dieses Servers braucht, mit Kennung und Fingerabdruck.",
"intro": "Bewahre von jedem Schlüssel unten eine Kopie außerhalb dieses Servers auf, zum Beispiel in einem Passwortmanager. Ohne sie lassen sich weder ein Datenbank-Dump noch eine Sicherungskopie wieder lesen, und HealthLog startet nicht, wenn ein benötigter Schlüssel fehlt.",
"loading": "Wiederherstellungs-Kit wird geladen…",
"loadError": "Das Wiederherstellungs-Kit konnte nicht geladen werden.",
"badgeDue": "Offen",
"badgeDone": "Gesichert",
"keyId": "Kennung",
"fingerprint": "Fingerabdruck",
"noFingerprint": "Nicht auf diesem Server",
"kind": {
"application": "Anwendungsschlüssel {id}",
"backup": "Schlüssel für externe Sicherungen",
"backupPrevious": "Früherer Schlüssel für externe Sicherungen",
"token": "Token-Schlüssel"
},
"need": {
"active": "Verschlüsselt neue Daten.",
"configured": "Liegt auf diesem Server.",
"storedCopies": "Wird von {count} gespeicherten Kopien gebraucht.",
"offhostUntil": "Wird von externen Kopien bis {date} gebraucht.",
"offhostUnknown": "Wird von externen Kopien gebraucht, solange der Bucket sie aufbewahrt.",
"backupActive": "Versiegelt jede neue externe Kopie.",
"backupPrevious": "Öffnet externe Kopien, die vor dem letzten Schlüsselwechsel geschrieben wurden.",
"token": "Signiert Sitzungen, Tokens und Freigabelinks. Ohne ihn werden alle abgemeldet, Daten gehen aber nicht verloren.",
"localDumps": "Wird von {count} Datenbank-Dumps auf diesem Server gebraucht.",
"offhostDumpsUntil": "Wird von externen Datenbank-Dumps bis {date} gebraucht.",
"offhostDumpsUnknown": "Wird von externen Datenbank-Dumps gebraucht, solange der Bucket sie aufbewahrt."
},
"source": "Gesetzt in {variable}.",
"status": {
"confirmed": "Gesichert",
"new": "Noch nicht gesichert",
"notConfigured": "Nicht auf diesem Server",
"unreadable": "Kein gültiger Schlüssel"
},
"notConfiguredHint": "Eine Sicherung braucht diesen Schlüssel noch, aber dieser Server hat ihn nicht. Nur eine Kopie, die du anderswo aufbewahrst, kann diese Sicherungen lesen. Bestätige das Kit, sobald du diese Kopie hast.",
"unreadableHint": "Die Variable ist gesetzt, enthält aber keinen gültigen Schlüssel. Behebe das, bevor du dich auf die externen Kopien verlässt.",
"fingerprintHint": "Der Fingerabdruck besteht aus den ersten 12 Zeichen des SHA-256-Hashs eines Schlüssels. Er erkennt den Schlüssel, ohne ihn preiszugeben, sodass du ihn mit deiner Kopie vergleichen kannst.",
"whereTitle": "Wo die Schlüssel gesetzt sind",
"platform": {
"composeLabel": "Compose",
"composeWhere": "Die Schlüssel stehen in der .env-Datei neben docker-compose.yml: ENCRYPTION_KEY oder ENCRYPTION_KEYS, API_TOKEN_HMAC_KEY und, mit externen Kopien, BACKUP_ENCRYPTION_KEY.",
"truenasLabel": "TrueNAS",
"truenasWhere": "Öffne Apps, wähle HealthLog und dann Edit. Die Schlüssel stehen unter HealthLog Configuration; bei einer per YAML installierten App sind es ENCRYPTION_KEY, API_TOKEN_HMAC_KEY und BACKUP_ENCRYPTION_KEY in den Umgebungsvariablen.",
"coolifyLabel": "Coolify",
"coolifyWhere": "Öffne die Anwendung in Coolify und kopiere ENCRYPTION_KEY, API_TOKEN_HMAC_KEY und BACKUP_ENCRYPTION_KEY aus den Environment Variables.",
"unraidLabel": "Unraid",
"unraidWhere": "Bearbeite auf dem Docker-Tab den HealthLog-Container und kopiere ENCRYPTION_KEY, API_TOKEN_HMAC_KEY und BACKUP_ENCRYPTION_KEY aus der Vorlage oder aus der .env deines Compose-Manager-Stacks.",
"portainerLabel": "Portainer",
"portainerWhere": "Öffne den HealthLog-Stack in Portainer und kopiere ENCRYPTION_KEY, API_TOKEN_HMAC_KEY und BACKUP_ENCRYPTION_KEY aus den Umgebungsvariablen."
},
"restoreTitle": "Diesen Server wiederherstellen",
"restoreBody": "Installiere HealthLog mit denselben Schlüsseln, spiele den neuesten Datenbank-Dump in eine leere Datenbank ein und starte dann die App. Die Anleitung führt durch jeden Schritt.",
"restoreLink": "Anleitung zur Notfallwiederherstellung",
"checkLabel": "Meine Kopie prüfen",
"checkKeyLabel": "Zu prüfender Schlüssel",
"checkValueLabel": "Deine Kopie des Schlüssels",
"checkButton": "Prüfen",
"checkNote": "Der eingefügte Schlüssel wird mit dem auf diesem Server verglichen und danach verworfen. Er wird nie gespeichert oder protokolliert.",
"checkInsecureNote": "Diese Seite wird nicht über https:// ausgeliefert. Der eingefügte Schlüssel geht deshalb unverschlüsselt über das Netzwerk, genau wie dein Passwort. Er wird verglichen und verworfen, nie gespeichert oder protokolliert.",
"checkMatches": "Deine Kopie passt zu diesem Schlüssel.",
"checkNoMatch": "Deine Kopie passt nicht zu diesem Schlüssel. Prüfe, ob du den ganzen Wert kopiert hast.",
"checkFailed": "Die Prüfung ist fehlgeschlagen.",
"confirmButton": "Ich habe von jedem Schlüssel eine Kopie",
"confirmed": "Wiederherstellungs-Kit bestätigt.",
"confirmFailed": "Die Bestätigung konnte nicht gespeichert werden.",
"stale": "Das Kit hat sich geändert, seit die Seite geladen wurde. Prüfe die Schlüssel, die es jetzt aufführt, und bestätige erneut.",
"confirmedAt": "Bestätigt am {date}.",
"confirmedAtBy": "Bestätigt am {date} von {who}.",
"dueAgain": "Das Kit wurde am {date} bestätigt. Es führt jetzt auch {keys} auf, was diese Bestätigung nicht abgedeckt hat. Sichere von jedem eine Kopie und bestätige erneut."
},
"recoveryReadiness": {
"title": "Wiederherstellbarkeit",
"description": "Ob sich dieser Server nach einem Ausfall wiederherstellen ließe, beurteilt anhand jeder Sicherung, die er anlegt.",
"loading": "Sicherungen werden geprüft…",
"loadError": "Die Wiederherstellbarkeit konnte nicht geladen werden.",
"state": {
"ok": "Bereit",
"attention": "Braucht Aufmerksamkeit",
"failing": "Gefährdet"
},
"signal": {
"database_dump": "Datenbank-Dump",
"weekly_copy": "Wöchentliche Kontokopien",
"offhost_copies": "Externe Kopien",
"restore_drill": "Wiederherstellungsprobe",
"offhost_setup": "Externe Sicherung",
"recovery_kit": "Wiederherstellungs-Kit",
"dump_retention": "Dumps im Bucket"
},
"at": {
"database_dump": "Neuester Dump: {date}",
"weekly_copy": "Älteste Kontokopie: {date}",
"offhost_copies": "Älteste externe Kopie: {date}",
"restore_drill": "Letzte Probe: {date}",
"recovery_kit": "Bestätigt: {date}"
},
"dueBy": "Fällig bis {date}",
"fix": {
"database_dump": "Sicherungen öffnen",
"weekly_copy": "Sicherungen öffnen",
"offhost_copies": "Sicherungen öffnen",
"restore_drill": "Sicherungen öffnen",
"offhost_setup": "Sicherungen öffnen",
"recovery_kit": "Kit öffnen",
"dump_retention": "Sicherungen öffnen"
},
"reason": {
"database_dump": {
"not_available": "Diese Version legt keinen geplanten Datenbank-Dump an.",
"disabled": "Der geplante Datenbank-Dump ist ausgeschaltet, daher kann keine Kopie diesen Server wieder aufbauen. Zum Wiedereinschalten DB_BACKUP_ENABLED entfernen oder auf true setzen und HealthLog neu starten.",
"unreadable": "Der Zustand des Datenbank-Dumps konnte nicht gelesen werden.",
"never_succeeded": "Noch kein Datenbank-Dump ist gelungen, und der letzte Versuch ist fehlgeschlagen.",
"never_ran": "In den {hours} Stunden, seit Dumps eingeschaltet sind, wurde kein Datenbank-Dump geschrieben.",
"first_pending": "Der erste Datenbank-Dump ist noch nicht gelaufen.",
"stale": "Der neueste Datenbank-Dump ist {hours} Stunden alt.",
"last_failed": "Der letzte Datenbank-Dump ist fehlgeschlagen. Der davor ist noch aktuell.",
"fresh": "Der neueste Datenbank-Dump ist aktuell.",
"nowhere_to_write": "Das Dump-Verzeichnis {directory} ist nicht beschreibbar und es ist kein externer Bucket eingerichtet, daher kann kein Dump aufbewahrt werden.",
"not_persistent": "Das Dump-Verzeichnis {directory} liegt nicht auf dauerhaftem Speicher, und es ist kein externer Bucket eingerichtet. Jeder Dump wäre beim nächsten Update verloren. Binde das Backup-Volume ein.",
"fresh_offhost_only": "Der neueste Datenbank-Dump ist aktuell und liegt im externen Bucket. Auf diesem Server wird keiner aufbewahrt, weil {directory} nicht auf dauerhaftem Speicher liegt, und vor einer Migration wird keiner erstellt.",
"offhost_failed": "Der neueste Datenbank-Dump liegt auf diesem Server, aber das Hochladen in den externen Bucket ist fehlgeschlagen.",
"offhost_stale": "Seit {hours} Stunden ist kein Datenbank-Dump im externen Bucket angekommen, das Hochladen schlägt immer wieder fehl. Geht dieser Server verloren, gibt es keinen aktuellen Dump, um ihn wiederherzustellen.",
"offhost_never": "Noch nie ist ein Datenbank-Dump im externen Bucket angekommen, das Hochladen schlägt fehl. Geht dieser Server verloren, gibt es keinen Dump, um ihn wiederherzustellen."
},
"weekly_copy": {
"no_accounts": "Es gibt noch keine Konten zum Kopieren.",
"stale": "Die älteste wöchentliche Kopie ist {days} Tage alt. Konten im Rückstand: {accounts}.",
"never": "Ein Konto hat seit {days} Tagen keine wöchentliche Kopie. Konten im Rückstand: {accounts}.",
"first_pending": "Die erste wöchentliche Kopie entsteht am frühen Sonntagmorgen.",
"fresh": "Jedes Konto hat eine Kopie aus der letzten Woche."
},
"offhost_copies": {
"not_configured": "Es ist kein externer Bucket eingerichtet.",
"stale": "Externe Kopien liegen mehr als zwei Nächte zurück. Konten im Rückstand: {accounts}.",
"first_pending": "Der nächtliche Lauf für externe Kopien hat noch kein Konto erreicht.",
"fresh": "Jedes Konto hat eine aktuelle Kopie im externen Bucket."
},
"restore_drill": {
"not_configured": "Die Probe liest den externen Bucket, und der ist nicht eingerichtet.",
"not_run_yet": "Die monatliche Wiederherstellungsprobe ist noch nicht gelaufen.",
"failed": "Die letzte Wiederherstellungsprobe ist fehlgeschlagen: {failed} von {checked} Kopien ließen sich nicht zurücklesen.",
"failed_run": "Die letzte Wiederherstellungsprobe konnte nicht zu Ende laufen.",
"passed": "Die letzte Wiederherstellungsprobe hat {checked} Kopien zurückgelesen.",
"nothing_checked": "Die letzte Wiederherstellungsprobe hat ihr Zeitlimit erreicht, bevor sie eine einzige Kopie zurückgelesen hat, und hat damit nichts belegt."
},
"offhost_setup": {
"configured": "Kopien verlassen diesen Server jede Nacht.",
"no_admin": "Es gibt noch kein Admin-Konto.",
"not_configured": "Es ist kein externer Bucket eingerichtet, daher liegt jede Kopie nur auf diesem Server.",
"not_configured_grace": "Es ist noch kein externer Bucket eingerichtet, daher liegt jede Kopie nur auf diesem Server."
},
"recovery_kit": {
"confirmed": "Von jedem Schlüssel, den eine Wiederherstellung braucht, gibt es eine Kopie.",
"out_of_date": "Das Wiederherstellungs-Kit führt jetzt auch {keys} auf, was die letzte Bestätigung nicht abgedeckt hat. Nichts ist kaputt: Sichere eine Kopie und bestätige das Kit erneut.",
"no_admin": "Es gibt noch kein Admin-Konto.",
"not_confirmed": "Niemand hat eine Kopie der Schlüssel bestätigt, die eine Wiederherstellung braucht: {keys}.",
"not_confirmed_grace": "Sichere eine Kopie der Schlüssel, die eine Wiederherstellung braucht: {keys}."
},
"dump_retention": {
"not_configured": "Es ist kein externer Bucket eingerichtet.",
"no_offhost_dumps": "Es geht kein Datenbank-Dump in den Bucket.",
"missing": "Keine Lebenszyklus-Regel im Bucket gilt für database/. Dumps dort und die gelöschten Konten darin werden deshalb nie entfernt. Lege eine Regel für dieses Präfix an.",
"configured": "Der Bucket entfernt Dumps nach {days} Tagen.",
"unknown": "Der Bucket gibt nicht an, ob eine Regel alte Dumps entfernt. Prüfe, ob eine Lebenszyklus-Regel database/ erfasst."
}
},
"recovered": {
"database_dump": "Der Datenbank-Dump ist wieder aktuell.",
"weekly_copy": "Jedes Konto hat wieder eine aktuelle wöchentliche Kopie.",
"offhost_copies": "Jedes Konto hat wieder eine aktuelle externe Kopie.",
"restore_drill": "Die Wiederherstellungsprobe ist wieder bestanden.",
"offhost_setup": "Externe Kopien sind jetzt eingerichtet.",
"recovery_kit": "Das Wiederherstellungs-Kit ist wieder bestätigt.",
"dump_retention": "Eine Lebenszyklus-Regel im Bucket erfasst jetzt die Datenbank-Dumps."
}
}
},
"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}",
"metricDaysOne": "{count} Tag",
"metricDaysFew": "{count} Tage",
"metricDaysOther": "{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."
},
"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": "80% Treue für 1 Tag",
"description": "Erreiche an einem Tag eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen1": {
"title": "BMI 1 Tag im Grün",
"description": "Halte deinen BMI an einem Tag im Normalbereich."
},
"bpGreen1": {
"title": "Blutdruck 1 Tag im Grün",
"description": "Halte deinen Blutdruck an einem Tag im Normalbereich."
},
"pulseGreen1": {
"title": "Puls 1 Tag im Grün",
"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": "80% Treue für 7 Tage",
"description": "Erreiche 7 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen7": {
"title": "BMI 7 Tage im Grün",
"description": "Halte deinen BMI 7 Tage in Folge im Normalbereich."
},
"bpGreen7": {
"title": "Blutdruck 7 Tage im Grün",
"description": "Halte deinen Blutdruck 7 Tage in Folge im Normalbereich."
},
"pulseGreen7": {
"title": "Puls 7 Tage im Grün",
"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": "80% Treue für 30 Tage",
"description": "Erreiche 30 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen30": {
"title": "BMI 30 Tage im Grün",
"description": "Halte deinen BMI 30 Tage in Folge im Normalbereich."
},
"bpGreen30": {
"title": "Blutdruck 30 Tage im Grün",
"description": "Halte deinen Blutdruck 30 Tage in Folge im Normalbereich."
},
"pulseGreen30": {
"title": "Puls 30 Tage im Grün",
"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": "80% Treue für 180 Tage",
"description": "Erreiche 180 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen180": {
"title": "BMI 180 Tage im Grün",
"description": "Halte deinen BMI 180 Tage in Folge im Normalbereich."
},
"bpGreen180": {
"title": "Blutdruck 180 Tage im Grün",
"description": "Halte deinen Blutdruck 180 Tage in Folge im Normalbereich."
},
"pulseGreen180": {
"title": "Puls 180 Tage im Grün",
"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": "80% Treue für 360 Tage",
"description": "Erreiche 360 Tage in Folge eine 30-Tage-Therapietreue von mindestens 80%."
},
"bmiGreen360": {
"title": "BMI 360 Tage im Grün",
"description": "Halte deinen BMI 360 Tage in Folge im Normalbereich."
},
"bpGreen360": {
"title": "Blutdruck 360 Tage im Grün",
"description": "Halte deinen Blutdruck 360 Tage in Folge im Normalbereich."
},
"pulseGreen360": {
"title": "Puls 360 Tage im Grün",
"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": "7 Tage lückenlos",
"description": "7 Tage in Folge ohne eine verpasste Dosis."
},
"missFree30": {
"title": "30 Tage lückenlos",
"description": "30 Tage in Folge ohne eine verpasste Dosis."
},
"missFree90": {
"title": "90 Tage lückenlos",
"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": "7 Tage Schlafprotokoll",
"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 über die Online-Abfrage bei {host} auf, damit verlässt jede Login-IP diesen Server. Um sie stattdessen lokal aufzulösen, lade die Datenbanken GeoLite2-City und GeoLite2-ASN mit einem kostenlosen MaxMind-Konto herunter, binde das Verzeichnis in den Container ein und setze GEOLITE2_DIR darauf. Anleitung: {docsUrl}",
"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.",
"accountErasureRefusedTitle": "Konto konnte nicht gelöscht werden: {username}",
"accountErasureRefusedBody": "Die Löschfrist von {username} ist abgelaufen, aber das Konto ist die letzte aktive betreuende Person eines verwalteten Profils und wurde deshalb nicht gelöscht. Es bleibt gesperrt. Füge dem Profil eine weitere betreuende Person hinzu, lösche das Profil oder mache die Löschung unter Administration, Nutzer rückgängig.",
"accountErasureFailedBody": "Die Löschfrist von {username} ist abgelaufen, aber das Löschen des Kontos ist fehlgeschlagen. Es bleibt gesperrt und wird jede Stunde erneut versucht, nach den anderen fälligen Konten. Den Fehler zeigt die Karte der fehlgeschlagenen Jobs unter Administration."
},
"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.",
"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",
"detail": "Greift nur auf bereits eingerichtete Kanäle (Telegram, ntfy, Web Push, Apple Push) zurück und schweigt, sobald du heute geloggt hast."
},
"coachNudge": {
"title": "Proaktiver Coach",
"description": "Meldet sich, wenn deine Daten einen Blick in den Coach nahelegen.",
"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.",
"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": "Meldet täglich, wenn ein Vorrat weniger Tage abdeckt als diese Schwelle.",
"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",
"detail": "Eine Benachrichtigung pro Engpass; nach dem Auffüllen meldet sie sich wieder."
},
"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.",
"eventSecurityAlert": "Neue Anmeldung",
"eventSecurityAlertDesc": "Wird gesendet, wenn dein Konto auf einem unbekannten Gerät oder von einem unbekannten Ort verwendet wird.",
"eventSharedRecordIntake": "Jemand mit Zugriff markiert eine Dosis",
"eventSharedRecordIntakeDesc": "Wird nur gesendet, wenn eine andere Person es tut, nie bei deinen eigenen Einträgen.",
"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"
},
"sharedRecordIntake": {
"title": "{name} hat eine Dosis markiert",
"bodyTaken": "{medication}: von {name} als eingenommen markiert.",
"bodySkipped": "{medication}: von {name} als ausgelassen markiert."
},
"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",
"handover": {
"claimedTitle": "{name} hat jetzt ein eigenes Konto",
"claimedEnd": "{name} hat die eigene Gesundheitsakte übernommen. Dein Zugriff ist beendet.",
"claimedRead": "{name} hat die eigene Gesundheitsakte übernommen. Du kannst sie weiter ansehen, aber nicht mehr ändern.",
"claimedManage": "{name} hat die eigene Gesundheitsakte übernommen. Du kannst sie weiter verwalten, bis {name} anders entscheidet.",
"changedTitle": "{name} hat deinen Zugriff geändert",
"changedEnd": "Dein Zugriff auf die Gesundheitsakte von {name} ist beendet.",
"changedRead": "Du kannst die Gesundheitsakte von {name} jetzt ansehen, aber nicht ändern.",
"changedManage": "Du kannst die Gesundheitsakte von {name} verwalten.",
"unnamed": {
"claimedTitle": "Die Person, die du betreut hast, hat jetzt ein eigenes Konto",
"claimedEnd": "Die Person, die du betreut hast, hat die eigene Gesundheitsakte übernommen. Dein Zugriff ist beendet.",
"claimedRead": "Die Person, die du betreut hast, hat die eigene Gesundheitsakte übernommen. Du kannst sie weiter ansehen, aber nicht mehr ändern.",
"claimedManage": "Die Person, die du betreut hast, hat die eigene Gesundheitsakte übernommen. Du kannst sie weiter verwalten, bis sie anders entscheidet.",
"changedTitle": "Dein Zugriff auf eine Gesundheitsakte hat sich geändert",
"changedEnd": "Dein Zugriff auf die Gesundheitsakte der Person, die du betreut hast, ist beendet.",
"changedRead": "Du kannst die Gesundheitsakte der Person, die du betreut hast, jetzt ansehen, aber nicht ändern.",
"changedManage": "Du kannst die Gesundheitsakte der Person, die du betreut hast, verwalten."
}
},
"links": {
"open": "In HealthLog öffnen"
},
"quickActions": {
"moodGood": "Gut",
"moodOkay": "Okay",
"moodBad": "Schlecht"
},
"content": {
"title": "Gesundheitswerte in Benachrichtigungen",
"description": "Ob eine Benachrichtigung Werte wie deinen Morgenscore zeigen darf.",
"detail": "Aus: Eine Benachrichtigung sagt nur, worum es geht, der Sperrbildschirm zeigt keine Gesundheitswerte. An: Sie nennt auch die Werte, etwa den Morgenscore im Überblick. Ein Tipp auf die Benachrichtigung öffnet in beiden Fällen die passende Stelle in der App.",
"toggleAria": "Gesundheitswerte in Benachrichtigungen zeigen",
"statusDetailed": "Mit Werten",
"statusGeneric": "Ohne Werte",
"detailedToast": "Benachrichtigungen zeigen jetzt Gesundheitswerte.",
"genericToast": "Benachrichtigungen zeigen keine Gesundheitswerte mehr.",
"saveError": "Speichern fehlgeschlagen. Bitte später erneut versuchen."
},
"checkupReminders": {
"title": "Vorsorge-Erinnerungen",
"description": "Schalte einzelne Vorsorge-Erinnerungen ein oder aus."
},
"eventBackupHealth": "Zustand der Sicherungen",
"eventBackupHealthDesc": "Wenn eine Sicherung ausbleibt, zurückfällt oder wieder läuft. Nur für Admins.",
"recoveryReadiness": {
"titleAttention": "Sicherungen brauchen Aufmerksamkeit",
"titleFailing": "Sicherungen sind gefährdet",
"titleReminder": "Sicherungen sind weiterhin gefährdet",
"titleRecovered": "Sicherungen laufen wieder normal"
},
"systemJobAlert": {
"titleFailing": "Hintergrundjob schlägt fehl: {queue}",
"titleReminder": "Hintergrundjob schlägt weiter fehl: {queue}",
"titleRecovered": "Hintergrundjob läuft wieder: {queue}",
"bodyFailing": "Der Hintergrundjob {queue} ist {failures}-mal in Folge fehlgeschlagen und steht auf der Admin-Statusseite. Letzter Fehler: {error}",
"bodyRecovered": "Der Hintergrundjob {queue} ist wieder erfolgreich gelaufen."
}
},
"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",
"resetTitle": "Dieses Ziel zurücksetzen?",
"resetBody": "Der Bereich kehrt zum Standard zurück. Die von dir gesetzten Werte werden nirgends sonst gespeichert und lassen sich nicht wiederherstellen.",
"resetBodyBp": "Sowohl der systolische als auch der diastolische Bereich kehren zum Standard zurück. Die von dir gesetzten Werte werden nirgends sonst gespeichert und lassen sich nicht wiederherstellen.",
"resetConfirm": "Ziel 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}",
"sourceNames": {
"moodEntries": "Stimmungseinträge",
"sevenDays": "7 Tage"
},
"inTarget": "Im Zielbereich",
"aboveTarget": "{delta} {unit} über Zielbereich",
"belowTarget": "{delta} {unit} unter Zielbereich",
"systolic": "Systolisch",
"diastolic": "Diastolisch",
"glucoseFasting": "Glukose, nüchtern",
"glucosePostprandial": "Glukose, postprandial",
"glucoseRandom": "Glukose, beliebig",
"glucoseBedtime": "Glukose, vor dem Schlafen",
"glucoseUnspecified": "Glukose, ohne Angabe",
"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}.",
"bodyExpired": "{medName}: kein nutzbarer Bestand mehr. {units} Einheiten sind als abgelaufen markiert.",
"bodyAsNeeded": "Von {medName} sind nur noch {units} Einheiten übrig. Bestelle nach, bevor du die nächste Dosis brauchst."
},
"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.",
"reminderSurfacedTitle": "Deine Erinnerung",
"reminderSurfacedLeadOne": "Du wolltest heute daran erinnert werden:",
"reminderSurfacedLeadMany": "Du wolltest heute an {count} Dinge erinnert werden:",
"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.",
"labs": "Laborwerte",
"medications": "Medikamente & Therapietreue",
"bmi": "Body-Mass-Index (BMI)",
"statSummary": "zuletzt {latest} (Ø {avg}, Bereich {min}–{max})",
"statSummaryWithUnit": "zuletzt {latest} {unit} (Ø {avg} {unit}, Bereich {min}–{max} {unit})",
"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."
},
"downloadPdf": "Als PDF herunterladen",
"downloadFhir": "Als FHIR herunterladen",
"bmiSection": "Body-Mass-Index",
"sectionEmpty": "In diesem Link enthalten, hier ist aber nichts erfasst.",
"sectionUnavailable": "In diesem Link enthalten, dieser Teil der Akte ist im zugehörigen Konto aber abgeschaltet und enthält deshalb keine Daten.",
"lastInjection": "Letzte Injektion",
"identity": {
"name": "Name"
},
"doses": {
"title": "Erfasste Dosen",
"showing": "Angezeigt werden die {shown} jüngsten von {total} erfassten Dosen."
},
"course": "Phase {n}",
"courseRange": "{start} bis {end}",
"courseSince": "seit {start}",
"unavailable": {
"title": "Link abgelaufen oder ungültig",
"description": "Dieser Freigabelink ist abgelaufen, wurde zurückgezogen oder ist unvollständig. Bitte die Person, die ihn geteilt hat, um einen neuen Link."
}
},
"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",
"removeTitle": "Dieses Symptom entfernen?",
"removeBody": "„{label}“ verschwindet aus der Symptomliste. Bereits damit markierte Tage behalten es, du kannst es aber nicht mehr auswählen.",
"removeConfirm": "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} {dir} als in der Follikelphase.",
"heartRateVariability": "Deine Herzfrequenzvariabilität liegt in der Lutealphase etwa {delta} {dir} als in der Follikelphase.",
"generic": "Dein/e {metric} liegt in der Lutealphase etwa {delta} {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. Follikelphase",
"detail": "Luteal {lutealAvg} ({lutealDays} Tage) vs. Follikel {follicularAvg} ({follicularDays} Tage).",
"metricRestingHeartRate": "Ruhepuls",
"metricHrv": "Herzfrequenzvariabilität",
"metricSleepDuration": "Schlafdauer",
"metricSteps": "Schritte",
"metricWeight": "Gewicht",
"metricBasalBodyTemp": "Basaltemperatur",
"metricWristTemperature": "Handgelenkstemperatur nachts",
"metricSkinTemperature": "Hauttemperatur",
"metricBloodGlucose": "Blutzucker",
"metricMood": "Stimmung"
},
"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",
"loadError": "Dein Zyklus konnte nicht geladen werden."
},
"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.",
"periodOverdueDays": "Deine Periode ist {days} Tage 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",
"legendIntercourse": "Geschlechtsverkehr",
"legendOtherEntries": "Weitere Einträge"
},
"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": "Stärke, Symptome und Notizen für diesen Tag.",
"flow": "Stärke",
"symptoms": "Symptome",
"temperature": "Basaltemperatur",
"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.",
"emptyHint": "Wähle eine Stärke oder ein Symptom, um diesen Tag zu speichern, oder nutze oben den Knopf für den Periodenbeginn.",
"intermenstrualBleeding": "Schmierblutung zwischen Perioden",
"pregnancyTest": "Schwangerschaftstest",
"progesteroneTest": "Progesterontest",
"contraceptive": "Verhütung",
"severity": "Schweregrad",
"severityLevel": "Schweregrad {level} von 4",
"delete": "Löschen",
"deleteTitle": "Diesen Tag löschen?",
"deleteBody": "Alles, was für diesen Tag erfasst ist, verschwindet: Blutung, Temperatur, Symptome und deine Notiz. Es lässt sich nicht wiederherstellen.",
"deleteConfirm": "Tag 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.",
"titleForDate": "Eintrag für {date}",
"descriptionToday": "Heute. Stärke, Symptome und Notizen.",
"deleteBodyCycleStart": "Dieser Tag eröffnet einen Zyklus. Beim Löschen geht der Periodenbeginn mit, sodass der vorherige Zyklus wie zuvor weiterläuft. Alles hier Erfasste geht ebenfalls: Stärke, Temperatur, Symptome und deine Notiz. Es gibt keinen Weg zurück."
},
"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} {unit}",
"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, also 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?"
},
"saveSuccess": "Eintrag gespeichert",
"deleteSuccess": "Eintrag gelöscht",
"periodStartSaved": "Periodenbeginn gespeichert",
"periodEndSaved": "Periodenende gespeichert",
"startedPeriodOnDate": "Periode hat an diesem Tag begonnen",
"endedPeriodOnDate": "Periode an diesem Tag beendet",
"startAbsorbed": "Periodenbeginn gespeichert. Dein Beginn am {absorbed} wurde mit dem {date} zusammengeführt.",
"startRestored": "Gespeichert. Der Beginn am {dates} ist wieder da."
},
"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.",
"markDone": "Erledigt",
"delete": "Löschen",
"deleteConfirmTitle": "Erinnerung löschen?",
"deleteConfirmDescription": "Diese Vorsorge-Erinnerung wird dauerhaft gelöscht.",
"postpone": {
"menuItem": "Verschieben…",
"title": "Fälligkeit verschieben",
"description": "Verschiebt nur die aktuelle Fälligkeit, der reguläre Rhythmus bleibt unverändert.",
"chip": "+{days} Tage",
"dateLabel": "Neues Datum",
"confirm": "Verschieben"
},
"skip": {
"heading": "Diese Fälligkeit überspringen",
"explainer": "Wird ehrlich als übersprungen festgehalten, nicht als erledigt. Das Intervall startet ab heute neu.",
"action": "Überspringen",
"confirmTitle": "Fälligkeit überspringen?"
},
"snoozedUntil": "Verschoben bis {date}",
"skippedOn": "Übersprungen am {date}",
"skipCount": "{count}× übersprungen",
"disabledBadge": "Aus",
"nextDue": {
"none": "Nicht geplant",
"today": "Heute fällig",
"tomorrow": "Morgen fällig",
"inDays": "In {days} Tagen"
},
"overdueByDays": "Überfällig seit {days} Tagen",
"overdueSinceYesterday": "Überfällig seit gestern",
"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": {
"empty": "Noch keine Erinnerungen zum Anpassen."
},
"dashboard": {
"empty": "Keine anstehenden Vorsorge-Erinnerungen.",
"openLink": "Vorsorge öffnen"
},
"showMeasurements": "Messergebnisse anzeigen",
"loadError": "Erinnerungen konnten nicht geladen werden.",
"fileVisit": "Termin eintragen"
},
"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 gelöscht. Direkt danach kannst du das kurz rückgängig machen.",
"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": "Liest das Foto auf deinem Gerät und sendet nur den erkannten Text an deinen Anbieter.",
"detail": "Nützlich, wenn dein KI-Anbieter keine Bilder lesen kann. 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": "Gib einen Wert ein.",
"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": "Wähle zuerst einen Biomarker aus.",
"resultType": "Ergebnistyp",
"numeric": "Numerisch",
"qualitative": "Qualitativ",
"qualitativeResult": "Ergebnis",
"qualitativePlaceholder": "z. B. negativ",
"qualNegative": "negativ",
"qualPositive": "positiv",
"qualBorderline": "grenzwertig",
"sourceRange": "Bereich laut Befund",
"sourceRangePlaceholder": "z. B. 3,5 - 5,0 oder < 5",
"sourceRangeAdd": "+ Bereich aus dem Befund ergänzen",
"sourceRangeHint": "Optional. Gilt nur für diesen Wert; dein gespeicherter Bereich bleibt unverändert.",
"sourceRangeUnparsed": "Wird so übernommen, daraus ließ sich kein Zahlenbereich lesen."
},
"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": "Gib ein gültiges Datum ein.",
"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"
},
"sourceRangeLabel": "Befundbereich",
"sourceBandLegend": "Zweites Band: der Bereich aus dem Befund vom {date}.",
"sourceBandMixed": "Zweites Band: der Bereich aus dem neuesten Befund. Frühere Befunde im Zeitraum nennen andere Bereiche."
},
"biomarker": {
"manageTitle": "Biomarker",
"managerDescription": "Marker einmal definieren; Einheit und Bereich gelten dann 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",
"unitLockedHint": "Sobald dieser Marker Werte hat, bleibt seine Einheit, wie sie ist. Sonst würden die gespeicherten Werte in einer neuen Einheit angezeigt, ohne umgerechnet zu werden.",
"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, also 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, also 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.",
"alkaline-phosphatase": "Die alkalische Phosphatase (AP) ist ein Enzym, das vor allem in Leber, Gallenwegen und Knochen vorkommt. Sie steigt, wenn der Gallenfluss gestört ist, und in Phasen aktiven Knochenaufbaus, etwa im Wachstum von Kindern und Jugendlichen oder bei der Heilung eines Bruchs. Weil beide Organe sie abgeben, wird ein erhöhter Wert meist zusammen mit der GGT und den übrigen Leberwerten gelesen, um eine Ursache in der Leber von einer im Knochen zu unterscheiden. Sie gehört zu den üblichen Leberwerten.",
"bilirubin-total": "Das Gesamtbilirubin ist das gelbe Abbauprodukt des Hämoglobins aus gealterten roten Blutkörperchen, gemessen als Summe seiner unkonjugierten und konjugierten Form. Die Leber nimmt es auf, bindet es und scheidet es mit der Galle aus, daher zeigt der Wert, wie gut dieser Weg funktioniert. Er kann bei Lebererkrankungen, verschlossenen Gallenwegen oder vermehrtem Abbau roter Blutkörperchen steigen, harmlos auch beim Gilbert-Syndrom. Er wird zusammen mit den übrigen Leberwerten gelesen."
},
"apob": "Apolipoprotein B (ApoB)",
"lp-a": "Lipoprotein(a)",
"fasting-insulin": "Nüchtern-Insulin",
"omega-3-index": "Omega-3-Index",
"alkaline-phosphatase": "Alkalische Phosphatase (AP)",
"bilirubin-total": "Bilirubin gesamt"
},
"noteLoadFailed": "Notiz konnte nicht geladen werden; sie bleibt beim Speichern unverändert.",
"showingLatestOf": "Die neuesten {shown} von {total} Messwerten werden angezeigt",
"convertedFrom": "umgerechnet aus {value} {unit}",
"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",
"pagesCapped": "Nur die ersten {read} von {total} Seiten wurden gelesen. Werte auf späteren Seiten fehlen in dieser Liste.",
"stoppedBudget": "Dein KI-Budget für heute war mitten im Befund aufgebraucht, deshalb wurden die übrigen Seiten nicht gelesen.",
"stoppedUnavailable": "KI wurde abgeschaltet, während der Befund gelesen wurde, deshalb wurden die übrigen Seiten nicht gelesen.",
"stoppedError": "Der Scan konnte wegen eines Serverfehlers nicht weiterlaufen, deshalb wurden die übrigen Seiten nicht gelesen. Versuche es später noch einmal.",
"tooLarge": "Dieser Text ist für einen Scan zu lang. Scanne den Befund Seite für Seite.",
"truncated": "Der KI-Anbieter hat sein Ausgabelimit vor dem Ende des Befunds erreicht. Werte danach können fehlen, vergleiche die Liste deshalb mit dem Befund.",
"truncatedPages": "Der KI-Anbieter hat auf diesen Seiten sein Ausgabelimit erreicht: {pages}. Werte weiter unten auf diesen Seiten können fehlen, vergleiche sie deshalb mit dem Befund.",
"unreadPages": "Diese Seiten konnten nicht gelesen werden, ihre Werte fehlen in dieser Liste: {pages}.",
"unreadParts": "Ein Teil des Befunds konnte nicht gelesen werden, seine Werte fehlen in dieser Liste.",
"rowsCapped": "Der Befund enthält {found} Werte. Ein Scan übernimmt {kept}, deshalb siehst du nur die ersten {kept}.",
"outputLimit": "Der KI-Anbieter hat sein Ausgabelimit erreicht, bevor er einen einzigen Wert geliefert hat. Versuche ein Foto einer einzelnen Seite oder ein Modell, das längere Antworten erlaubt.",
"errorTooLong": "Bitte auf {max} Zeichen kürzen.",
"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": "Prüfe diesen Wert",
"lowConfidenceBadge": "Geringe Sicherheit",
"valueUnreadable": "Wert unleserlich, bitte manuell eingeben",
"saveSelected": "{count} ausgewählte speichern",
"discardAll": "Alle verwerfen",
"savedToast": "{count} Laborwerte gespeichert",
"savedPartialToast": "{count} Laborwerte gespeichert, {skipped} als Dubletten übersprungen",
"savedNothingToast": "Nichts gespeichert: {skipped} Werte waren bereits erfasst",
"savedEmptyToast": "Nichts zu speichern",
"noRows": "In diesem Befund konnten keine Werte gefunden werden.",
"nothingToSave": "Wähle mindestens einen Wert zum Speichern aus.",
"validationSummary": "Betroffene Werte: {count}. Ergänze die markierten Felder oder wähle diese Werte ab.",
"errorDate": "Bitte ein Datum angeben.",
"errorAnalyte": "Bitte einen Namen angeben.",
"errorValue": "Bitte einen Wert angeben.",
"errorResult": "Bitte ein Ergebnis angeben.",
"errorUnit": "Bitte eine Einheit angeben.",
"errorUnitMismatch": "Dieser Marker wird in {markerUnit} geführt. Ändere die Einheit, falls der Befund falsch gelesen wurde, oder wähle den Wert ab.",
"unitDiffersBadge": "Geführt in {markerUnit}; dieser Befund nennt {unit}",
"unitConvertedBadge": "Wird als {value} {markerUnit} gespeichert, umgerechnet aus {statedValue} {unit}",
"savedPartialUnitToast": "{count} Laborwerte gespeichert. Nicht gespeichert, weil die Einheit von der des Markers abweicht: {analytes}",
"savedNothingUnitToast": "Nichts gespeichert: Die Einheit weicht bei {analytes} von der des Markers ab",
"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.",
"pdfRendererUnavailable": "Der Prozessor dieses Servers kann keine PDF-Seiten darstellen. Einen gescannten Befund kann hier nur ein KI-Anbieter lesen, der PDF-Dateien direkt annimmt. Lade stattdessen ein Foto hoch.",
"refTextLabel": "Bereich wie gedruckt",
"refTextPlaceholder": "z. B. 3,5 - 5,0",
"aiUnavailable": "Das Scannen eines Befunds mit KI ist hier gerade nicht verfügbar.",
"errorUnitMismatchNoUnit": "Dieser Marker wird ohne Einheit geführt. Setz das Häkchen bei Keine Einheit, falls der Befund falsch gelesen wurde, oder wähle den Wert ab.",
"unitDiffersBadgeNoUnit": "Ohne Einheit geführt; dieser Befund nennt {unit}"
},
"loadMoreReadings": "Weitere Werte laden",
"documentsLink": "Befund-Dokumente",
"notLinkedYet": "Noch keinem Biomarker zugeordnet",
"sourceRange": {
"fromReport": "Befundbereich {range}",
"catalogDiffers": "dein Bereich {range}",
"printed": "auf dem Befund in {unit}: {range}"
},
"match": {
"viaAlias": "über einen Namen, den du früher zugeordnet hast",
"viaCatalog": "als übliche Abkürzung erkannt",
"chooseLabel": "Gehört zu",
"suggestionOption": "{name} ({unit})",
"newMarkerOption": "Ein neuer Biomarker",
"rememberHint": "Der Name wird für den nächsten Befund gemerkt.",
"chooseHint": "Wähle einen Biomarker, wenn du ihn schon erfasst."
},
"aliases": {
"title": "Auch geschrieben als",
"taken": "{alias} gehört schon zu einem anderen Biomarker.",
"saveError": "Die Namen konnten nicht gespeichert werden. Versuche es erneut.",
"remove": "{alias} entfernen",
"empty": "Ergänze die Namen, die andere Labore für {name} drucken, damit ihre Befunde hier landen.",
"placeholder": "z. B. Alk.P",
"addLabel": "Weiterer Name für diesen Biomarker",
"add": "Hinzufügen",
"alsoWritten": "Auch geschrieben als {aliases}"
},
"merge": {
"open": "Zusammenführen",
"title": "Biomarker zusammenführen",
"description": "Fasse Biomarker zusammen, die derselbe Test unter anderem Namen sind.",
"pickHint": "Wähle mindestens zwei Biomarker aus.",
"keepLabel": "Behalten",
"keepHint": "Die anderen gehen in diesen auf, und ihre Namen werden seine weiteren Namen.",
"showPreview": "Vorschau zeigen",
"back": "Zurück",
"confirm": "Jetzt zusammenführen",
"previewSummaryOne": "{count} Messung wechselt zu {name} ({unit}).",
"previewSummaryFew": "{count} Messungen wechseln zu {name} ({unit}).",
"previewSummaryOther": "{count} Messungen wechseln zu {name} ({unit}).",
"movesOne": "{count} Messung, schon in derselben Einheit",
"movesFew": "{count} Messungen, schon in derselben Einheit",
"movesOther": "{count} Messungen, schon in derselben Einheit",
"convertedOne": "{count} Messung, umgerechnet von {unit} in {targetUnit}",
"convertedFew": "{count} Messungen, umgerechnet von {unit} in {targetUnit}",
"convertedOther": "{count} Messungen, umgerechnet von {unit} in {targetUnit}",
"refused": "{unit} lässt sich nicht in {targetUnit} umrechnen.",
"aliasesAdded": "Diese Namen führen danach zum behaltenen Biomarker:",
"blocked": "Solange sich eine Einheit nicht umrechnen lässt, wird nichts zusammengeführt. Lass diesen Biomarker weg oder behalte einen anderen.",
"noUndo": "Das Zusammenführen lässt sich nicht rückgängig machen.",
"doneToastOne": "In {name} zusammengeführt, {count} Messung verschoben",
"doneToastFew": "In {name} zusammengeführt, {count} Messungen verschoben",
"doneToastOther": "In {name} zusammengeführt, {count} Messungen verschoben",
"error": "Die Biomarker konnten nicht zusammengeführt werden. Versuche es erneut."
},
"trend": {
"title": "Verlauf",
"slope": {
"rising": "Steigt um etwa {amount} {unit} pro Jahr, über {n} Werte seit {since}.",
"falling": "Sinkt um etwa {amount} {unit} pro Jahr, über {n} Werte seit {since}.",
"flat": "Keine Veränderung über {n} Werte seit {since}."
},
"projection": {
"exits": {
"high": "Liefe diese Gerade so weiter, erreichte sie um den {date} das obere Ende deines Referenzbereichs. Das ist eine Fortschreibung, keine Vorhersage.",
"low": "Liefe diese Gerade so weiter, erreichte sie um den {date} das untere Ende deines Referenzbereichs. Das ist eine Fortschreibung, keine Vorhersage."
},
"beyond_horizon": "In diesem Tempo bleibt die Gerade länger als {years} Jahre in deinem Referenzbereich, so weit reichen deine Werte zurück.",
"beyond_horizon_capped": "In diesem Tempo bleibt die Gerade länger als {years} Jahre in deinem Referenzbereich, so weit schaut die Fortschreibung voraus.",
"no_exit": "Die Gerade läuft von den Grenzen deines Referenzbereichs weg.",
"already_outside": "Die Gerade liegt bereits außerhalb deines Referenzbereichs.",
"no_clear_trend": "Über diese Werte ist die Veränderung nicht klar von keiner Veränderung zu unterscheiden, deshalb wird nichts fortgeschrieben.",
"stale": "Der neueste Wert ist vom {date}, also älter als ein Jahr. Die Gerade gilt für diesen Stand, ohne Projektion."
},
"interval": "95-%-Intervall der jährlichen Veränderung: {lo} bis {hi} {unit}."
},
"unit": {
"none": "Keine Einheit",
"noneHint": "Für einen Quotienten oder Index wie INR oder Cholesterin/HDL."
}
},
"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": "KI-Analyse",
"description": "Briefing, Statusnotizen und Trainingsnotizen, die ein Modell schreibt, nie deine Daten oder Werte."
},
"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": "Lesezugriff für einen MCP-fähigen Assistenten, über ein begrenztes Token."
},
"environment": {
"label": "Umwelt",
"description": "Tägliches Wetter und Tageslicht für deinen Ort, neben Stimmung, Schlaf und Vitalwerten."
},
"inboundDocuments": {
"label": "Dokumente",
"description": "Arztbriefe, Befunde und Scans verschlüsselt und durchsuchbar an einem Ort."
},
"mentalHealth": {
"label": "Seelisches Wohlbefinden",
"description": "Vier freiwillige Selbsttests neben dem Stimmungstagebuch."
},
"nutrients": {
"label": "Nährstoffzufuhr",
"description": "Tägliche Mikronährstoff-Summen aus Apple Health."
},
"vaccinations": {
"label": "Impfungen",
"description": "Der Impfpass in strukturierter Form: Dosis, Serie, nächste Auffrischung."
},
"timeline": {
"label": "Zeitleiste",
"description": "Jahre auf einen Blick: Erkrankungen, Medikamente und Arztbesuche neben deinen Werten, dazu deine Lebensereignisse."
}
},
"moduleOff": {
"disabled": {
"description": "{module} ist für diese Akte ausgeschaltet, deshalb bleiben die Seiten verborgen. Schalte das Modul wieder ein, um sie zurückzuholen.",
"title": "{module} ist ausgeschaltet"
},
"notGranted": {
"description": "{module} liegt außerhalb der Bereiche, die mit dir geteilt wurden. Was ein geteilter Zugriff umfasst, legt die Person fest, der die Akte gehört.",
"title": "Gehört nicht zum geteilten Zugriff"
},
"unavailable": {
"description": "Der Betreiber hat {module} für alle Konten auf diesem Server ausgeschaltet. Keine eigene Einstellung holt es zurück.",
"title": "Auf diesem Server nicht verfügbar"
},
"openModules": "Einstellungen, Module öffnen"
},
"vaccinations": {
"title": "Impfungen",
"subtitle": "Dein Impfpass, Dosis für Dosis.",
"listLoadError": "Impfungen konnten nicht geladen werden.",
"series": {
"booster": "Auffrischung",
"ofTotal": "Dosis {position} von {total}",
"doseN": "{position}. Dosis"
},
"row": {
"lot": "Charge {lot}"
},
"form": {
"date": "Datum",
"catalogLabel": "Impfstoff",
"identityHint": "Aus der Liste wählen oder unten frei eintragen. Eins genügt.",
"catalogNone": "Impfstoff wählen",
"catalogSearch": "Impfstoff suchen",
"catalogNoMatch": "Kein Katalogeintrag gefunden",
"catalogClear": "Auswahl entfernen",
"freeTextLabel": "Freitext",
"freeTextPlaceholder": "wie im Impfpass angegeben",
"seriesToggle": "Serie angeben",
"doseNumber": "Dosis-Nr.",
"seriesDoses": "Dosen in Serie",
"lot": "Chargennummer",
"site": "Impfstelle",
"siteNone": "Keine Angabe",
"practitioner": "Praxis oder Arzt",
"note": "Notiz",
"linkDocuments": "Dokument verknüpfen",
"linkNothingToOffer": "Noch keine Dokumente vorhanden."
},
"site": {
"LEFT_ARM": "Linker Oberarm",
"RIGHT_ARM": "Rechter Oberarm",
"LEFT_THIGH": "Linker Oberschenkel",
"RIGHT_THIGH": "Rechter Oberschenkel",
"ORAL": "Oral",
"NASAL": "Nasal",
"OTHER": "Andere"
},
"createTitle": "Impfung erfassen",
"editTitle": "Impfung bearbeiten",
"formDescription": "Datum und Impfstoff genügen; alles andere ist optional.",
"created": "Impfung gespeichert",
"updated": "Impfung aktualisiert",
"saveFailed": "Impfung konnte nicht gespeichert werden.",
"deleteTitle": "Impfung löschen?",
"deleteDescription": "Der Eintrag wird aus deinem Impfpass entfernt. Ein geplanter Auffrischungs-Reminder bleibt bestehen.",
"deleteFailed": "Impfung konnte nicht gelöscht werden.",
"info": {
"primarySeriesOne": "Grundimmunisierung: {count} Dosis",
"primarySeriesFew": "Grundimmunisierung: {count} Dosen",
"primarySeriesOther": "Grundimmunisierung: {count} Dosen",
"yearly": "Jährliche Impfung",
"boosterYearsOne": "Auffrischung üblicherweise alle {count} Jahr",
"boosterYearsFew": "Auffrischung üblicherweise alle {count} Jahre",
"boosterYearsOther": "Auffrischung üblicherweise alle {count} Jahre",
"boosterMonthsOne": "Auffrischung üblicherweise alle {count} Monat",
"boosterMonthsFew": "Auffrischung üblicherweise alle {count} Monate",
"boosterMonthsOther": "Auffrischung üblicherweise alle {count} Monate",
"standard60": "Standardimpfung ab 60",
"sourceLabel": "Quelle: {source}",
"affordanceLabel": "Impfschema-Info"
},
"booster": {
"title": "Auffrischung planen?",
"body": "Aus dieser Impfung lässt sich eine Erinnerung für die nächste Auffrischung anlegen. Du kannst Intervall und Bezeichnung ändern oder ablehnen.",
"interval": "Intervall",
"label": "Bezeichnung",
"labelSuffix": "Auffrischung",
"decline": "Nicht jetzt",
"confirm": "Erinnerung anlegen",
"planned": "Auffrischung geplant",
"failed": "Erinnerung konnte nicht angelegt werden.",
"everyYearsOne": "alle {count} Jahr",
"everyYearsFew": "alle {count} Jahre",
"everyYearsOther": "alle {count} Jahre",
"everyMonthsOne": "alle {count} Monat",
"everyMonthsFew": "alle {count} Monate",
"everyMonthsOther": "alle {count} Monate"
},
"suggestion": {
"single": "Zu dieser Impfung hinzufügen?",
"choose": "Zu welcher Impfung gehört der Scan?",
"linked": "Mit Impfung verknüpft",
"failed": "Verknüpfung fehlgeschlagen.",
"unnamed": "Impfung"
},
"empty": {
"title": "Noch keine Impfung erfasst",
"description": "Übertrage deinen Impfpass Zeile für Zeile. Datum und Impfstoff genügen."
},
"catalog": {
"tetanus": "Tetanus (Wundstarrkrampf)",
"diphtheria": "Diphtherie",
"pertussis": "Keuchhusten (Pertussis)",
"polio": "Polio (Kinderlähmung)",
"measles": "Masern",
"mumps": "Mumps",
"rubella": "Röteln",
"varicella": "Windpocken (Varizellen)",
"hib": "Hib (Haemophilus influenzae b)",
"hepatitis-a": "Hepatitis A",
"hepatitis-b": "Hepatitis B",
"influenza": "Grippe (Influenza)",
"pneumococcal": "Pneumokokken",
"herpes-zoster": "Gürtelrose (Herpes zoster)",
"rsv": "RSV",
"covid-19": "COVID-19",
"fsme": "FSME (Frühsommer-Meningoenzephalitis)",
"hpv": "HPV (Humane Papillomviren)",
"meningococcal-acwy": "Meningokokken ACWY",
"meningococcal-b": "Meningokokken B",
"rotavirus": "Rotaviren",
"typhoid": "Typhus",
"rabies": "Tollwut",
"yellow-fever": "Gelbfieber",
"japanese-encephalitis": "Japanische Enzephalitis",
"cholera": "Cholera",
"dengue": "Dengue",
"tuberculosis": "Tuberkulose",
"td": "Td (Tetanus, Diphtherie)",
"tdap": "Tdap (Tetanus, Diphtherie, Pertussis)",
"tdap-ipv": "Tdap-IPV (Vierfachimpfung)",
"dtap-ipv": "DTaP-IPV (Vierfachimpfung, Kindesalter)",
"hexavalent": "Sechsfachimpfung (DTaP-IPV-Hib-HepB)",
"mmr": "MMR (Masern, Mumps, Röteln)",
"mmrv": "MMRV (Masern, Mumps, Röteln, Varizellen)",
"hepa-hepb": "Hepatitis A und B",
"hepa-typhoid": "Hepatitis A und Typhus"
},
"renewal": {
"overdue": "Auffrischung fällig seit {date}",
"dueSoon": "Auffrischung fällig am {date}",
"current": "Nächste Auffrischung {date}"
},
"custom": {
"title": "Eigene Impfstoffe",
"add": "Eigenen Impfstoff anlegen",
"name": "Name",
"components": "Schützt vor",
"seriesDoses": "Dosen der Grundimmunisierung",
"boosterMonths": "Auffrischung alle (Monate)",
"saved": "Impfstoff gespeichert",
"deleted": "Impfstoff entfernt",
"deleteConfirm": "Diesen Impfstoff entfernen? Bereits eingetragene Impfungen behalten ihren Namen.",
"saveFailed": "Der Impfstoff konnte nicht gespeichert werden.",
"nameTaken": "Du hast schon einen Impfstoff mit diesem Namen.",
"editTitle": "Eigenen Impfstoff bearbeiten",
"description": "Ein Impfstoff, den der Katalog nicht kennt, gezählt wie jeder Katalogeintrag.",
"componentsHint": "Alle Krankheiten wählen, vor denen er schützt.",
"boosterHint": "Leer lassen, wenn keine Auffrischung nötig ist.",
"protectsAgainst": "Schützt vor {list}.",
"deleteTitle": "Eigenen Impfstoff entfernen?",
"sectionDescription": "Selbst angelegte Impfstoffe, die der Katalog nicht kennt.",
"catalogGroup": "Katalog"
}
},
"illness": {
"title": "Krankheit",
"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",
"bodySiteHint": "Zum Beispiel Knie oder unterer Rücken."
},
"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} {unit}",
"empty": "Noch keine Tage erfasst."
},
"loadError": "Diese Episode konnte nicht geladen werden.",
"backToList": "Zurück zum Journal",
"detail": {
"note": "Notiz"
},
"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. Direkt danach kannst du das kurz rückgängig machen."
},
"vital": {
"RESTING_HEART_RATE": "Ruheherzfrequenz",
"HEART_RATE_VARIABILITY": "Herzfrequenzvariabilität",
"HRV_RMSSD": "HRV (RMSSD)",
"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.",
"readOnlyNote": "Der Coach ist gerade nicht verfügbar, deine Pläne kannst du aber weiter lesen und löschen.",
"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",
"removeTitle": "Diesen Plan entfernen?",
"removeBody": "Der Plan und sein Verlauf verschwinden aus deiner Historie. Er lässt sich nicht wiederherstellen.",
"removeConfirm": "Plan 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"
}
},
"refusal": {
"outOfScope": "Ich kann nur bei den Gesundheitsdaten in deinem Log helfen: Messwerte, Medikamente, Stimmung, Trends. Fragen außerhalb dieses Themas beantworte ich nicht.",
"promptInjection": "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.",
"conversationPoisoned": "Eine frühere Nachricht in dieser Unterhaltung enthält Anweisungen, die meine Vorgaben überschreiben sollen. Beginne bitte eine neue Unterhaltung."
},
"noRecordedData": "Zu deiner Frage sind bei dir keine Messwerte erfasst, also kann ich dir dazu keine Zahl nennen. Sobald du etwas eingetragen hast, frag mich noch einmal, dann rechne ich mit deinen eigenen Werten.",
"step": {
"read": "Prüfe: {domain}",
"readWindow": "Prüfe: {domain}, {window}",
"snapshot": "Lese die Übersicht deiner Daten",
"showResult": "Öffne eine frühere Tabelle",
"reuse": "Nutze die Tabelle von vorhin",
"headerActive": "{label}…",
"listLabel": "Was der Coach angesehen hat",
"toggleShow": "Anzeigen, was der Coach angesehen hat",
"toggleHide": "Ausblenden, was der Coach angesehen hat",
"announceDone": "Fertig: {label}",
"readingsOne": "1 Messwert",
"readingsFew": "{count} Messwerte",
"readingsOther": "{count} Messwerte",
"rowsOne": "1 Zeile",
"rowsFew": "{count} Zeilen",
"rowsOther": "{count} Zeilen",
"metricsOne": "1 Messgröße",
"metricsFew": "{count} Messgrößen",
"metricsOther": "{count} Messgrößen",
"reason": {
"noData": "keine Messwerte",
"outsideWindow": "keine Messwerte in diesem Zeitraum",
"moduleDisabled": "ausgeschaltet",
"retrievalFailed": "konnte nicht gelesen werden",
"invalidArguments": "Anfrage nicht verstanden"
},
"domain": {
"labs": "Laborwerte",
"illness": "Krankheit und Erholung",
"cycle": "Zyklus",
"correlations": "Zusammenhänge zwischen Messgrößen",
"snapshot": "Datenübersicht",
"environment": "Wetter und Luft",
"day": "Ein Tag"
},
"window": {
"last7days": "letzte 7 Tage",
"last30days": "letzte 30 Tage",
"last90days": "letzte 90 Tage",
"lastYear": "letzte 12 Monate",
"allTime": "gesamter Zeitraum"
},
"period": {
"current": "dieser Zeitraum",
"previous": "der Zeitraum davor",
"yearAgo": "ein Jahr zuvor"
},
"granularity": {
"day": "nach Tag",
"week": "nach Woche",
"month": "nach Monat"
}
},
"result": {
"title": {
"byDay": "{metric} nach Tag",
"byWeek": "{metric} nach Woche",
"byMonth": "{metric} nach Monat",
"previousPeriod": "{metric}, Zeitraum davor",
"yearAgo": "{metric}, ein Jahr zuvor",
"workoutsBySport": "Trainings nach Sportart",
"labsLatest": "Neueste Laborwerte",
"sleepByNight": "Schlaf nach Nacht",
"complianceByDay": "Medikamenten-Einnahmetreue nach Tag",
"distribution": "{metric}: wie oft welcher Bereich vorkam"
},
"column": {
"day": "Tag",
"week": "Woche",
"month": "Monat",
"night": "Nacht",
"sport": "Sportart",
"sessions": "Einheiten",
"analyte": "Laborwert",
"value": "Wert",
"unit": "Einheit",
"date": "Datum",
"referenceRange": "Referenzbereich",
"systolic": "Systolisch",
"diastolic": "Diastolisch",
"mean": "Durchschnitt",
"total": "Summe",
"min": "Niedrigster",
"max": "Höchster",
"readings": "Messwerte",
"rate": "Einnahmetreue",
"duration": "Dauer",
"range": "Bereich",
"count": "Anzahl"
},
"other": "Sonstige",
"noReading": "kein Messwert",
"showAll": "Alle anzeigen ({count})",
"showFewer": "Weniger anzeigen",
"copyMenu": "Tabelle kopieren",
"copyForSpreadsheet": "Für Tabellenkalkulation kopieren",
"copyAsText": "Als Text kopieren",
"copied": "Kopiert",
"copyFailed": "Die Tabelle konnte nicht kopiert werden",
"viewLabel": "Ansicht",
"viewChart": "Diagramm",
"viewTable": "Tabelle",
"chartSummary": "{title} als Diagramm. Die Tabellenansicht listet jeden Wert auf.",
"dataUsed": "Verwendete Daten ({count})",
"truncated": "Die letzten {shown} von {total} Zeilen",
"withheld": {
"moduleDisabled": "Diese Tabelle ist ausgeblendet, weil ihr Modul ausgeschaltet ist.",
"unavailable": "Diese Tabelle konnte nicht geladen werden."
},
"loading": "Tabelle wird geladen…",
"loadFailed": "Die Tabellen konnten nicht geladen werden.",
"reusedFrom": "Aus einer früheren Antwort ({date})",
"reusedFromUndated": "Aus einer früheren Antwort",
"histogramBin": "{from}–{to} {unit}"
},
"method": {
"label": "Wie das ermittelt wurde",
"entry": "{domain}, {window}: {detail}",
"entryNoWindow": "{domain}: {detail}",
"reused": "aus einer früheren Antwort",
"readingsOne": "1 Messwert",
"readingsFew": "{count} Messwerte",
"readingsOther": "{count} Messwerte",
"aggregation": {
"mean": "Durchschnitt",
"median": "Median",
"latest": "letzter Messwert",
"sum": "Summe",
"count": "Anzahl",
"rate": "Quote"
},
"averages": {
"day": "Tagesdurchschnitte",
"week": "Wochendurchschnitte",
"month": "Monatsdurchschnitte"
},
"totals": {
"day": "Tagessummen",
"week": "Wochensummen",
"month": "Monatssummen"
},
"absent": {
"noData": "keine Messwerte",
"outsideWindow": "keine Messwerte in diesem Zeitraum",
"moduleDisabled": "ausgeschaltet"
}
},
"followUp": {
"groupLabel": "Vorgeschlagene Anschlussfragen",
"widenWindow": "Weiter zurückschauen",
"previousPeriod": "Mit dem Zeitraum davor vergleichen",
"yearAgo": "Mit dem Vorjahr vergleichen",
"asChart": "Als Diagramm zeigen",
"asTable": "Als Tabelle zeigen",
"relatedMetric": "Siehe auch: {metric}",
"continue": "Weitersuchen",
"settingLabel": "Anschlussfragen vorschlagen",
"settingHint": "Zeigt unter der letzten Antwort des Coaches bis zu drei Vorschläge für die nächste Frage.",
"changeAssumption": "Stattdessen: {value}"
},
"clarify": {
"cardLabel": "Der Coach hat eine Rückfrage",
"choicesLabel": "Mögliche Antworten",
"freeTextHint": "Du kannst auch selbst eine Antwort schreiben.",
"contextHint": "Schreib deine Antwort unten.",
"window": {
"last7days": "Letzte 7 Tage",
"last30days": "Letzte 30 Tage",
"last90days": "Letzte 90 Tage",
"lastYear": "Letzte 12 Monate",
"allTime": "Gesamter Zeitraum"
},
"comparison": {
"baseline90d": "Mit meinen üblichen 90 Tagen vergleichen"
},
"anchor": {
"illness": "Seit der Erkrankung vom {date}"
}
},
"reuse": {
"caption": "Hier sind dieselben Werte aus meiner letzten Antwort, unverändert."
}
},
"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. Aussagekräftig ist der Verlauf, nicht ein einzelner Wert.",
"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"
},
"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",
"scoreOf": "von {max}",
"firstCheckIn": "Das ist dein erstes Ergebnis mit diesem Fragebogen. Ab dem nächsten siehst du hier die Veränderung.",
"nextStep": "Du kannst den Check-in in zwei Wochen oder später wiederholen, um die Veränderung zu sehen. Wenn dich etwas beunruhigt, sprich jederzeit mit einer Fachperson."
},
"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",
"answersToggle": "Antworten",
"answersUnavailable": "Die gespeicherten Antworten dieses Check-ins können nicht entschlüsselt werden."
},
"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"
},
"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"
},
"cvv": {
"name": "CVV, Centro de Valorização da Vida (Brasilien, rund um die Uhr, kostenlos, vertraulich)"
},
"samu": {
"name": "SAMU, medizinischer Notruf (Brasilien)"
},
"sns24": {
"name": "SNS 24, psychologische Beratung (Portugal, rund um die Uhr, Option 4 wählen)"
},
"sosVozAmiga": {
"name": "SOS Voz Amiga (Portugal, täglich 15:30 bis 0:30 Uhr)"
},
"zelfmoordpreventie113": {
"name": "113 Zelfmoordpreventie (Niederlande, rund um die Uhr, kostenlos, anonym, auch per Chat)"
},
"zelfmoordlijn1813": {
"name": "Zelfmoordlijn 1813 (Belgien, rund um die Uhr, kostenlos, anonym)"
}
},
"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."
},
"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."
},
"openDetail": "Details anzeigen",
"historyLoadError": "Dein Testverlauf konnte nicht geladen werden",
"historyLoadErrorHint": "Das heißt nicht, dass keine Ergebnisse vorliegen. Die Liste konnte nicht abgerufen werden. Versuche es erneut.",
"privacyNote": "Deine Antworten sind verschlüsselt gespeichert und erreichen den KI-Coach nicht.",
"trend": {
"sincePrevious": "Seit deinem vorigen Check-in am {date}: {change} Punkte.",
"sinceFirst": "Seit deinem ersten Check-in am {date}: {change} Punkte.",
"verdict": {
"improved": "Das erreicht die Veränderung von {threshold} Punkten, die Studien als bedeutsam ansehen, in die bessere Richtung.",
"worsened": "Das erreicht die Veränderung von {threshold} Punkten, die Studien als bedeutsam ansehen, in die weniger gute Richtung.",
"within_threshold": "Das ist weniger als die Veränderung von {threshold} Punkten, die Studien als bedeutsam ansehen."
}
},
"wizard": {
"progressLabel": "Frage {current} von {total}",
"followUpLabel": "Zusatzfrage (freiwillig)",
"keyboardHint": "Mit den Zahlentasten 1 bis {count} wählst du eine Antwort.",
"allAnswered": "Alle {total} Fragen beantwortet"
},
"review": {
"title": "Antworten prüfen",
"description": "Gespeichert wird erst beim Absenden, bis dahin lässt sich jede Antwort noch ändern.",
"change": "Ändern",
"changeLabel": "Antwort auf Frage {number} ändern",
"notAnswered": "Nicht beantwortet",
"open": "Antworten prüfen"
},
"bandMeaning": {
"PHQ9": {
"minimal": "Deine Antworten weisen für die letzten zwei Wochen auf keine oder kaum depressive Beschwerden hin.",
"mild": "Deine Antworten weisen für die letzten zwei Wochen auf leichte depressive Beschwerden hin.",
"moderate": "Deine Antworten weisen für die letzten zwei Wochen auf mittelgradige depressive Beschwerden hin.",
"modSevere": "Deine Antworten weisen für die letzten zwei Wochen auf mittelschwere depressive Beschwerden hin.",
"severe": "Deine Antworten weisen für die letzten zwei Wochen auf schwere depressive Beschwerden hin."
},
"GAD7": {
"minimal": "Deine Antworten weisen für die letzten zwei Wochen auf keine oder kaum Angstbeschwerden hin.",
"mild": "Deine Antworten weisen für die letzten zwei Wochen auf leichte Angstbeschwerden hin.",
"moderate": "Deine Antworten weisen für die letzten zwei Wochen auf mittelgradige Angstbeschwerden hin.",
"severe": "Deine Antworten weisen für die letzten zwei Wochen auf schwere Angstbeschwerden hin."
},
"WHO5": {
"low": "Dein Wohlbefinden lag in den letzten zwei Wochen unter dem Bereich, den der WHO-5 als gut wertet.",
"good": "Dein Wohlbefinden lag in den letzten zwei Wochen in dem Bereich, den der WHO-5 als gut wertet."
},
"SCI": {
"belowThreshold": "Dein Schlaf lag im letzten Monat in dem Bereich, in dem die Studie hinter diesem Fragebogen eine Insomnie für wahrscheinlich hielt.",
"aboveThreshold": "Dein Schlaf lag im letzten Monat außerhalb des Bereichs, den diese Studie mit Insomnie verbindet."
}
},
"wording": {
"unvalidatedNote": "Diese Übersetzung ist nicht wissenschaftlich validiert; nimm das Ergebnis als Orientierung.",
"showOriginal": "Englischen Originaltext zeigen",
"showTranslation": "Übersetzung zeigen",
"resultUnvalidated": "Beantwortet in einer Übersetzung, die nicht wissenschaftlich validiert ist; nimm das Ergebnis als Orientierung.",
"historyUnvalidated": "Beantwortet in einer nicht wissenschaftlich validierten Übersetzung"
}
},
"records": {
"aiInclusion": {
"cardTitle": "KI-Zugriff auf das Profil",
"cardDescription": "Lege fest, welche Teile deines Gesundheitsprofils Coach und umfassende Briefings verwenden dürfen.",
"sectionAboutMe": "Über mich",
"sectionConditions": "Chronische Erkrankungen",
"sectionAllergies": "Allergien und Unverträglichkeiten",
"sectionCoachFocus": "Coach-Schwerpunkt",
"sectionFamilyHistory": "Familienanamnese",
"sectionSmoking": "Rauchstatus",
"sectionAlcohol": "Alkoholkonsummuster",
"sectionShiftSchedule": "Arbeitszeitmodell",
"save": "Zugriff speichern",
"savedToast": "KI-Zugriff auf das Profil gespeichert",
"saveError": "KI-Zugriff auf das Profil konnte nicht gespeichert werden",
"loadError": "KI-Zugriff auf das Profil konnte nicht geladen werden"
},
"profileFacts": {
"cardTitle": "Lebensstil-Kontext",
"smokingLabel": "Rauchstatus",
"alcoholLabel": "Alkoholkonsummuster",
"shiftLabel": "Arbeitszeitmodell",
"notRecorded": "Nicht erfasst",
"remove": "{kind} entfernen",
"values": {
"SMOKING_STATUS": {
"NEVER": "Nie geraucht",
"FORMER": "Früher geraucht",
"CURRENT": "Raucht derzeit"
},
"ALCOHOL_PATTERN": {
"NONE": "Kein Alkohol",
"OCCASIONAL": "Gelegentlich",
"WEEKLY": "Wöchentlich",
"MOST_DAYS": "An den meisten Tagen"
},
"SHIFT_SCHEDULE": {
"NONE": "Keine Schichtarbeit",
"FIXED_SHIFT": "Feste Schicht",
"ROTATING": "Wechselschicht"
}
}
},
"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."
},
"freeText": {
"label": "Freitext-Ergänzung (Allergien & Unverträglichkeiten)",
"hint": "Eine Freitext-Ergänzung zur strukturierten Liste oben, für Kontext, den ein einzelner Eintrag nicht abbilden kann.",
"savedToast": "Allergie-Notiz gespeichert",
"saveError": "Speichern fehlgeschlagen. Bitte versuche es erneut."
}
},
"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."
},
"emergency": {
"cardTitle": "Notfalldaten",
"cardDescription": "Was Rettungskräfte zuerst brauchen: Blutgruppe, Kontakte, Verfügungen.",
"bloodType": "Blutgruppe",
"organDonor": "Organspender",
"advanceDirective": "Patientenverfügung",
"contacts": "Notfallkontakte",
"implants": "Implantate und Geräte",
"note": "Weitere Hinweise",
"notRecorded": "Nicht erfasst",
"bloodTypeValues": {
"A_POS": "A positiv",
"A_NEG": "A negativ",
"B_POS": "B positiv",
"B_NEG": "B negativ",
"AB_POS": "AB positiv",
"AB_NEG": "AB negativ",
"O_POS": "0 positiv",
"O_NEG": "0 negativ",
"UNKNOWN": "Unbekannt"
},
"organDonorValues": {
"YES": "Ja",
"NO": "Nein",
"UNKNOWN": "Keine Angabe"
},
"advanceDirectiveValues": {
"EXISTS": "Vorhanden",
"NONE": "Keine",
"UNKNOWN": "Keine Angabe"
},
"contactsPlaceholder": "Name und Telefonnummer für den Notfall",
"implantsPlaceholder": "z. B. Herzschrittmacher, Insulinpumpe, Metallimplantat",
"notePlaceholder": "Alles, was im Notfall wichtig sein könnte",
"reportHint": "Dies erscheint auf der ersten Seite deines Arztberichts.",
"save": "Speichern",
"savedToast": "Notfalldaten gespeichert",
"saveError": "Notfalldaten konnten nicht gespeichert werden.",
"loadError": "Notfalldaten konnten nicht geladen werden."
},
"life": {
"cardTitle": "Lebensumstände",
"cardDescription": "Rauchen, Alkohol, Bewegung, Arbeit, Gewohnheiten und Ziele, datiert und jeweils freiwillig.",
"loadError": "Deine Lebensumstände konnten nicht geladen werden.",
"noAnswer": "Keine Angabe",
"yes": "Ja",
"no": "Nein",
"validSince": "Gilt seit",
"month": "Monat",
"year": "Jahr",
"lastConfirmed": "Zuletzt bestätigt am {date}",
"notAnswered": "Noch nicht beantwortet",
"unreadable": "Diese Antwort kann auf diesem Server nicht gelesen werden.",
"save": "Abschnitt speichern",
"savedToast": "Abschnitt gespeichert",
"saveError": "Der Abschnitt konnte nicht gespeichert werden.",
"review": {
"question": "Stimmt das noch? Deine letzte Angabe ist über ein Jahr alt.",
"confirm": "Stimmt noch",
"confirmedToast": "Danke, als weiterhin gültig vermerkt",
"confirmError": "Die Bestätigung konnte nicht gespeichert werden."
},
"ai": {
"label": "Diesen Abschnitt für die KI freigeben",
"shiftLabel": "Schichtarbeit für die KI freigeben",
"hint": "Aus heißt: Coach und Briefings sehen diese Angaben nie.",
"savedToast": "KI-Freigabe geändert",
"saveError": "Die KI-Freigabe konnte nicht gespeichert werden."
},
"sections": {
"tobacco": {
"title": "Rauchen und Nikotin"
},
"alcohol": {
"title": "Alkohol"
},
"activity": {
"title": "Bewegung und Sitzen"
},
"work": {
"title": "Arbeit und Rhythmus"
},
"habits": {
"title": "Schlaf, Ernährung und Koffein"
},
"goals": {
"title": "Ziele"
}
},
"fields": {
"smokingStatus": "Rauchstatus",
"products": "Genutzte Produkte",
"cigarettesPerDay": "Zigaretten pro Tag",
"startYear": "Jahr des Rauchbeginns",
"quitMonth": "Rauchstopp",
"secondhandSmoke": "Regelmäßig Passivrauch",
"moderateDaysPerWeek": "Tage pro Woche mit mäßiger bis anstrengender Bewegung, etwa zügigem Gehen",
"moderateMinutesPerDay": "Minuten an diesen Tagen, im Schnitt",
"sittingHoursWorkday": "Stunden im Sitzen an einem Werktag",
"shiftSchedule": "Schichtarbeit",
"situation": "Arbeitssituation",
"physicalNature": "Art der Arbeit",
"nightWork": "Nachtarbeit",
"exposures": "Belastungen bei der Arbeit",
"freeWeekdays": "Freie Wochentage",
"napRegularly": "Regelmäßiger Mittagsschlaf",
"snoringReported": "Andere sagen, du schnarchst",
"dietPattern": "Ernährungsweise",
"dietSpecifics": "Besonderheiten",
"lateMealsPerWeek": "Mahlzeiten nach 21 Uhr pro Woche",
"fruitVegPortionsPerDay": "Portionen Obst und Gemüse pro Tag",
"caffeineDrinksPerDay": "Koffeinhaltige Getränke pro Tag",
"latestCaffeine": "Spätestes Koffein am Tag",
"goals": "Woran du arbeiten möchtest",
"goalsHint": "Höchstens drei."
},
"values": {
"products": {
"cigarettes": "Zigaretten",
"cigars_pipe": "Zigarre oder Pfeife",
"e_cigarette": "E-Zigarette",
"heated_tobacco": "Tabakerhitzer",
"snus_pouches": "Snus oder Nikotinbeutel"
},
"situation": {
"none": "Keine Erwerbsarbeit",
"indoor": "Überwiegend drinnen",
"outdoor": "Überwiegend draußen",
"mixed": "Drinnen und draußen"
},
"physicalNature": {
"mostly_sitting": "Überwiegend sitzend",
"standing_walking": "Stehend oder gehend",
"heavy_physical": "Schwere körperliche Arbeit"
},
"exposures": {
"heat": "Hitze",
"cold": "Kälte",
"dust": "Staub",
"fumes_solvents": "Dämpfe oder Lösungsmittel",
"noise": "Lärm"
},
"dietPattern": {
"mixed": "Mischkost",
"vegetarian": "Vegetarisch",
"vegan": "Vegan",
"pescetarian": "Pescetarisch",
"other": "Andere"
},
"dietSpecifics": {
"intermittent_fasting": "Intervallfasten",
"low_carb": "Kohlenhydratarm",
"prescribed_diet": "Ärztlich verordnete Diät"
},
"latestCaffeine": {
"before_12": "Vor 12 Uhr",
"12_15": "12 bis 15 Uhr",
"15_18": "15 bis 18 Uhr",
"after_18": "Nach 18 Uhr"
},
"goals": {
"weight": "Gewicht",
"blood_pressure": "Blutdruck",
"blood_sugar": "Blutzucker",
"sleep": "Schlaf",
"fitness": "Fitness",
"stress_recovery": "Stress und Erholung",
"medication_routine": "Medikamente regelmäßig nehmen",
"quit_smoking": "Rauchstopp",
"less_alcohol": "Weniger Alkohol"
},
"weekdays": {
"1": "Mo",
"2": "Di",
"3": "Mi",
"4": "Do",
"5": "Fr",
"6": "Sa",
"7": "So"
}
},
"derived": {
"packYears": "{value} Packungsjahre",
"packYearsMissing": "Für Packungsjahre fehlen Zigaretten pro Tag oder das Jahr des Rauchbeginns.",
"activityMinutes": "{value} Minuten pro Woche.",
"meetsWho": "Damit erreichst du die WHO-Empfehlung von 150 Minuten pro Woche.",
"belowWho": "Das liegt unter der WHO-Empfehlung von 150 Minuten pro Woche.",
"measuredSteps": "Deine gemessenen Schritte haben Vorrang, diese Angabe ergänzt sie.",
"freeDaysDefault": "Ohne Angabe gelten Samstag und Sonntag als frei."
},
"auditC": {
"intro": "Drei Fragen zu Alkohol aus dem WHO-AUDIT. Ein Screening, keine Diagnose.",
"start": "Fragen beantworten",
"again": "Erneut beantworten",
"offerDue": "Ein kurzer Blick einmal im Jahr genügt.",
"notValidated": "Für deine Sprache gibt es noch keine geprüfte Übersetzung, deshalb stehen die Fragen auf Englisch.",
"submit": "Antworten speichern",
"savedToast": "Antworten gespeichert",
"saveError": "Die Antworten konnten nicht gespeichert werden.",
"result": "{score} von 12 Punkten",
"above": "Am oder über dem Screening-Grenzwert von {cutoff}.",
"below": "Unter dem Screening-Grenzwert von {cutoff}.",
"noCutoff": "Ohne Angabe zum Geschlecht im Profil zeigen wir nur die Summe.",
"source": "Quelle: {source}",
"history": "Frühere Einträge",
"remove": "Eintrag entfernen",
"removeConfirmTitle": "Diesen Eintrag entfernen?",
"removeConfirmBody": "Der Eintrag verschwindet aus deinem Verlauf. Das lässt sich hier nicht rückgängig machen.",
"removedToast": "Eintrag entfernt",
"removeError": "Der Eintrag konnte nicht entfernt werden.",
"historyEntry": "{date}: {score} von 12",
"legacyLabel": "Frühere Angabe: {value}",
"legacyHint": "Aus der kurzen Alkoholfrage vor diesem Fragebogen. Sobald ein Fragebogen-Ergebnis vorliegt, liest der Coach sie nicht mehr.",
"legacyRemove": "Frühere Angabe entfernen",
"legacyRemoveConfirmTitle": "Frühere Angabe entfernen?",
"legacyRemoveConfirmBody": "Die frühere Angabe verschwindet aus deinen Daten. Fragebogen-Ergebnisse bleiben.",
"legacyRemovedToast": "Frühere Angabe entfernt",
"legacyRemoveError": "Die frühere Angabe konnte nicht entfernt werden."
},
"takeOver": {
"conditionsButton": "In Zustandstagebuch übernehmen",
"allergiesButton": "In Allergien übernehmen",
"conditionsTitle": "Chronische Erkrankung anlegen",
"allergiesTitle": "Allergie anlegen",
"description": "Dein Freitext bleibt, bis du ihn selbst leerst.",
"freeTextLabel": "Dein Freitext",
"conditionLabel": "Erkrankung",
"onset": "Seit",
"save": "Anlegen",
"savedToast": "Eintrag angelegt",
"saveError": "Der Eintrag konnte nicht angelegt werden.",
"clearQuestion": "Der Eintrag ist gespeichert. Freitext jetzt leeren?",
"clear": "Freitext leeren",
"keep": "Behalten",
"clearedToast": "Freitext geleert",
"clearError": "Der Freitext konnte nicht geleert werden."
},
"screening": {
"cardTitle": "Hinweise zur Früherkennung",
"cardDescription": "Aus deinen Lebensumständen, mit Regel und Land, aus dem sie stammt.",
"noReminder": "Nur ein Hinweis; eine Erinnerung legst du bei Bedarf selbst an.",
"source": "Quelle: {source}",
"titles": {
"lung_ldct": "Niedrigdosis-CT zur Lungenkrebs-Früherkennung",
"aaa_ultrasound": "Ultraschall der Bauchschlagader"
},
"status": {
"suggested": "Könnte für dich gelten",
"not_eligible": "Gilt nicht für dich",
"unknown": "Zu wenige Angaben"
},
"reasons": {
"never_smoked": "Du hast nie geraucht.",
"missing_birth_date": "Dein Geburtsdatum fehlt.",
"age_out_of_range": "Dein Alter liegt außerhalb des Bereichs.",
"missing_smoking_status": "Dein Rauchstatus fehlt.",
"no_cigarettes": "Die Regel zählt nur Zigaretten.",
"missing_smoking_history": "Zigaretten pro Tag oder das Jahr des Rauchbeginns fehlen.",
"pack_years_below_15": "Weniger als 15 Packungsjahre.",
"pack_years_below_20": "Weniger als 20 Packungsjahre.",
"smoked_years_below_25": "Weniger als 25 Jahre geraucht.",
"missing_quit_date": "Das Datum des Rauchstopps fehlt.",
"quit_over_10_years": "Der Rauchstopp liegt über 10 Jahre zurück.",
"quit_over_15_years": "Der Rauchstopp liegt über 15 Jahre zurück.",
"missing_sex": "Im Profil fehlt das Geschlecht.",
"sex_not_male": "Die Regel gilt für Männer."
}
}
}
},
"environment": {
"fields": {
"tempMean": "Tagestemperatur",
"tempMin": "Nachttiefstwert",
"sunshine": "Sonnenschein",
"daylight": "Tageslicht",
"precip": "Niederschlag",
"pressureMean": "Luftdruck",
"pressureDelta": "Druckschwankung",
"pm25": "Feinstaub (PM2,5)",
"pm10": "Feinstaub (PM10)",
"no2": "Stickstoffdioxid",
"ozone8h": "Ozon (höchster 8-Stunden-Wert)",
"europeanAqi": "Europäischer Luftqualitätsindex",
"uvIndexMax": "UV-Index (Höchstwert)",
"dustMax": "Saharastaub",
"pollenMax": "Pollen (höchster Wert)"
},
"chip": {
"day": "Wetter am {date}",
"pollenHigh": "Viel Pollen: {kinds}",
"hotNight": "Warme Nacht",
"veryPoorAir": "Sehr schlechte Luft"
},
"pollen": {
"alder": "Erle",
"birch": "Birke",
"grass": "Gräser",
"mugwort": "Beifuß",
"olive": "Olive",
"ragweed": "Ambrosia"
},
"movement": {
"awayFromHome": "Zeit außer Haus",
"distance": "Zurückgelegte Strecke"
}
},
"documents": {
"title": "Dokumente",
"subtitle": "Jeder Brief, Befund und Scan an einem durchsuchbaren Ort, verschlüsselt gespeichert.",
"pageUpload": "Hochladen",
"ownerOnlyUpload": "Dokumente kann nur die Inhaberin oder der Inhaber der Akte hinzufügen.",
"kind": {
"DOCTOR_REPORT": "Arztbericht",
"DISCHARGE_LETTER": "Entlassungsbrief",
"OTHER": "Sonstiges",
"LAB_RESULT": "Laborbefund",
"IMAGING": "Bildgebung",
"PRESCRIPTION": "Rezept",
"REFERRAL": "Überweisung",
"INSURANCE": "Versicherung",
"VACCINATION": "Impfung",
"SICK_NOTE": "Krankschreibung"
},
"filter": {
"searchLabel": "Dokumente durchsuchen",
"searchPlaceholder": "Titel, Dateiname",
"typeGroup": "Dokumenttyp",
"conditionGroup": "Erkrankung",
"procedureGroup": "Eingriffe und Operationen",
"yearGroup": "Jahr",
"clear": "Filter zurücksetzen",
"typeAll": "Alle Typen",
"typeCount": "{count} Typen",
"conditionAll": "Alle Erkrankungen",
"procedureAll": "Alle Eingriffe",
"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",
"deleteKey": "Entf"
},
"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 ist hervorgehoben.",
"deleted": "Dokument gelöscht",
"restoreFailed": "Das Dokument konnte nicht wiederhergestellt werden.",
"deletedHint": "Gelöschte Dokumente bleiben {days} Tage unter Zuletzt gelöscht."
},
"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. Sie werden verschlüsselt gespeichert und sind nach Typ, Erkrankung und Jahr durchsuchbar.",
"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.",
"none": "Für dieses Dokument wurde noch keine Zusammenfassung erstellt.",
"withheld": "Eine Zusammenfassung wurde erstellt, hat die Sicherheitsprüfung aber nicht bestanden und wird deshalb nicht angezeigt. Du kannst es erneut versuchen oder das Dokument selbst lesen.",
"unavailable": "Für dieses Dokument konnte keine Zusammenfassung erstellt werden.",
"generate": "Zusammenfassung erstellen",
"generating": "Wird erstellt…"
},
"index": {
"outcome": {
"local-empty": "Es wurde kein lesbarer Text gefunden. Das sieht nach einem Scan aus; ein KI-Vision-Anbieter kann ihn lesen.",
"local-unsupported": "Dieser Dateityp kann für die Suche nicht gelesen werden.",
"decrypt-error": "Die gespeicherte Datei konnte zum Lesen nicht geöffnet werden.",
"raster-failed": "Die PDF-Seiten konnten zum Lesen nicht gerendert werden. Gescannte Fax-Kompressionsformate sind eine bekannte Ursache.",
"provider-error": "Der KI-Anbieter konnte dieses Dokument beim letzten Versuch nicht lesen.",
"pdf-needs-anthropic": "Der Prozessor dieses Servers kann keine PDF-Seiten darstellen, und dieses PDF hat keine Textebene. Lesen kann es ein KI-Anbieter, der PDF-Dateien direkt annimmt, oder du lädst Fotos der Seiten hoch.",
"empty-transcription": "Der KI-Anbieter hat für dieses Dokument keinen Text geliefert.",
"resource-limit": "Dieses PDF ist zu groß oder zu komplex, um es hier zu lesen. Die Datei selbst ist in Ordnung und lässt sich weiterhin öffnen."
}
},
"loadError": "Dieses Dokument konnte nicht geladen werden.",
"saveError": "Die Änderung konnte nicht gespeichert werden.",
"deleteError": "Das Dokument konnte nicht gelöscht werden.",
"download": "Herunterladen",
"openInNewTab": "In neuem Tab öffnen",
"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}",
"importedFrom": "Importiert aus {system}",
"importedFromWithId": "Importiert aus {system}, ID {id}",
"sourceOther": "einem anderen System",
"share": "Teilen",
"labValuesLink": "{count} Laborwerte ansehen",
"visitsLabel": "Gehört zu Termin",
"vaccinationsLabel": "Impfungen",
"noVisitsToLink": "Noch keine Termine erfasst.",
"noVaccinationsToLink": "Noch keine Impfungen erfasst."
},
"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.",
"linkVisit": "Termin zuordnen"
},
"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": "Schalte „Scans auf diesem Gerät lesen“ unter Einstellungen → Module → Labor ein, 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": "Das stündliche KI-Leselimit ist erreicht. Bitte später erneut versuchen.",
"errorRateLimitedWaitOne": "Das stündliche KI-Leselimit ist erreicht. Bitte in etwa einer Minute erneut versuchen.",
"errorRateLimitedWaitFew": "Das stündliche KI-Leselimit ist erreicht. Bitte in etwa {count} Minuten erneut versuchen.",
"errorRateLimitedWaitOther": "Das stündliche KI-Leselimit ist erreicht. Bitte in etwa {count} Minuten erneut versuchen.",
"errorBudget": "Dein KI-Budget für heute ist aufgebraucht.",
"errorPdfRendererUnavailable": "Der Prozessor dieses Servers kann keine PDF-Seiten darstellen. Ein gescanntes PDF kann hier nur ein KI-Anbieter lesen, der PDF-Dateien direkt annimmt, oder du lädst Fotos der Seiten hoch.",
"errorFileType": "Dieser Dateityp kann nicht gelesen werden.",
"errorNotIndexed": "Lies das Dokument zuerst aus, dann extrahiere.",
"errorOutputLimit": "Der KI-Anbieter hat sein Ausgabelimit erreicht, bevor er einen einzigen Wert geliefert hat. Versuche ein Modell, das längere Antworten erlaubt.",
"errorLocalOcrDisabled": "Schalte zuerst „Scans auf diesem Gerät lesen“ unter Einstellungen → Module → Labor ein.",
"errorProvider": "Dafür ist kein KI-Anbieter eingerichtet.",
"errorTextImageOnly": "Lokale Texterkennung liest nur Bilder, nicht diese Datei.",
"errorConsent": "Für das Lesen von Dokumenten mit KI brauchst du zuerst deine Einwilligung.",
"errorUnavailable": "Das Lesen von Dokumenten mit KI ist hier gerade nicht verfügbar.",
"unavailableLocalOcrAction": "Labor-Einstellungen öffnen"
},
"summary": {
"summarise": "Zusammenfassen",
"showText": "Erkannten Text anzeigen",
"summaryTitle": "Zusammenfassung",
"textTitle": "Erkannter Text",
"close": "Ausblenden"
},
"ai": {
"readDone": "Die KI hat dein Dokument gelesen.",
"readStagedOne": "Die KI hat dein Dokument gelesen. 1 Laborwert wartet auf deine Prüfung.",
"readStagedFew": "Die KI hat dein Dokument gelesen. {count} Laborwerte warten auf deine Prüfung.",
"readStagedOther": "Die KI hat dein Dokument gelesen. {count} Laborwerte warten auf deine Prüfung.",
"read": "Mit KI auslesen",
"reread": "Erneut lesen",
"reading": "Liest…",
"notReadYet": "Dieses Dokument wurde noch nicht gelesen."
},
"review": {
"title": "Ausgelesene Werte prüfen",
"hint": "Bestätige, was mit dem Dokument übereinstimmt. Nicht angehakte Werte werden verworfen; ohne deine Bestätigung wird nichts gespeichert.",
"openOne": "Ausgelesenen Wert prüfen",
"openFew": "Ausgelesene Werte prüfen ({count})",
"openOther": "Ausgelesene Werte prüfen ({count})",
"includeAria": "{value} übernehmen",
"type": {
"OBSERVATION": "Laborwert",
"CONDITION": "Erkrankung",
"MEDICATION_STATEMENT": "Medikament"
},
"statedRange": "Angegebener Bereich {range}",
"needsCheck": "Prüfe diesen Wert gegen das Dokument und speichere ihn dann.",
"verify": "Prüfen",
"verifySave": "Wert speichern",
"verifyInvalid": "Gib einen Namen und entweder einen Zahlenwert oder ein Textergebnis an, nicht beides.",
"verifyFailed": "Die Korrektur konnte nicht gespeichert werden. Versuche es erneut.",
"fieldName": "Name",
"fieldDate": "Datum",
"fieldValue": "Wert",
"fieldValueText": "Ergebnis (Text)",
"fieldUnit": "Einheit",
"fieldDose": "Dosis",
"unverifiedNoteOne": "1 Wert muss noch geprüft werden und bleibt offen.",
"unverifiedNoteFew": "{count} Werte müssen noch geprüft werden und bleiben offen.",
"unverifiedNoteOther": "{count} Werte müssen noch geprüft werden und bleiben offen.",
"finish": "Prüfung abschließen",
"confirmFailed": "Die Prüfung konnte nicht gespeichert werden. Versuche es erneut.",
"savedToastOne": "1 Wert gespeichert",
"savedToastFew": "{count} Werte gespeichert",
"savedToastOther": "{count} Werte gespeichert",
"nothingSavedToast": "Prüfung gespeichert. Es wurden keine Werte übernommen.",
"extract": "Laborwerte auslesen",
"extracting": "Liest aus…",
"extractHint": "Nutzt den bereits ausgelesenen Text dieses Dokuments. Ausgelesene Werte warten auf deine Prüfung; nichts wird automatisch gespeichert.",
"extractEmpty": "Aus diesem Dokument konnten keine Werte ausgelesen werden.",
"extractIncomplete": "Ein Teil des Dokuments konnte nicht vollständig gelesen werden, deshalb können Werte fehlen. Vergleiche die Liste mit dem Dokument.",
"failUnitRequired": "Ein Zahlenwert braucht eine Einheit, bevor er gespeichert werden kann.",
"failUnitMismatch": "Die angegebene Einheit passt nicht zur gespeicherten Einheit dieses Markers. Passe sie an und schließe die Prüfung erneut ab.",
"failGeneric": "Dieser Wert konnte nicht gespeichert werden.",
"failUnknownBiomarker": "Den gewählten Biomarker gibt es nicht mehr. Wähle einen anderen."
},
"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",
"openButton": "Coach fragen"
},
"readingConsent": {
"body": "Beim Lesen mit KI geht dies an deinen KI-Dienst außerhalb dieses Servers. Darf HealthLog Dokumente, Laborbefunde und Medikamentenbeschreibungen zum Lesen senden?",
"grant": "Lesen erlauben",
"error": "Die Einwilligung konnte nicht gespeichert werden. Bitte versuch es erneut."
},
"sourcePicker": {
"open": "Aus Archiv importieren",
"openNamed": "Aus {name} importieren",
"title": "Aus {name} importieren",
"description": "Nach Namen suchen, dann die Dokumente anhaken, die HealthLog übernehmen soll.",
"sourceLabel": "Archiv",
"searchLabel": "Dokumentname",
"searchPlaceholder": "Nach Namen suchen",
"tagLabel": "Tag",
"tagAny": "Alle Tags",
"fromLabel": "Von",
"toLabel": "Bis",
"clearFilters": "Tag und Datum zurücksetzen",
"rangeInvalid": "Das Enddatum liegt vor dem Startdatum.",
"empty": "{name} hat keine Dokumente zum Anzeigen.",
"noMatch": "Keine passenden Dokumente.",
"loadMore": "Mehr laden",
"stateImported": "In HealthLog",
"stateDeleted": "In HealthLog gelöscht",
"stateInTrash": "Unter Zuletzt gelöscht",
"selectedCount": "{count} von höchstens {max} ausgewählt",
"importAction": "{count} importieren",
"importing": "Import läuft, ein Dokument nach dem anderen …",
"done": "Fertig",
"summary": "Importiert: {imported}. Schon vorhanden: {present}. Nicht importiert: {failed}.",
"stopped": "Abgebrochen: {reason}",
"result": {
"waiting": "Wartet",
"working": "Wird importiert …",
"imported": "Importiert",
"importedLinked": "Importiert und verknüpft",
"duplicate": "Schon in HealthLog",
"duplicateLinked": "Schon in HealthLog, jetzt verknüpft",
"deleted": "In HealthLog gelöscht, bleibt gelöscht",
"restored": "Aus Zuletzt gelöscht wiederhergestellt",
"restoredLinked": "Aus Zuletzt gelöscht wiederhergestellt und verknüpft"
},
"errors": {
"unavailable": "Dokumentarchive sind auf diesem Server nicht freigeschaltet.",
"notConnected": "Dieses Archiv ist nicht verbunden. Verbinde es unter Einstellungen, Integrationen.",
"originNotAllowed": "Diese Adresse steht nicht auf der Liste der erlaubten Archive dieses Servers. Bitte die Administration, sie aufzunehmen.",
"unreachable": "Das Archiv war nicht erreichbar. Prüfe, ob es läuft und die Adresse stimmt.",
"redirected": "Das Archiv hat die Anfrage umgeleitet. Trage die Adresse ein, auf die es umleitet.",
"authRefused": "Das Archiv hat das Token abgelehnt. Prüfe das Token und seine Berechtigungen.",
"versionTooOld": "Das Archiv ist zu alt. Nötig ist Paperless-ngx 2.16 oder neuer.",
"badResponse": "Die Antwort des Archivs ließ sich nicht lesen. Prüfe, ob die Adresse auf das Archiv selbst zeigt.",
"notFound": "Das Archiv kennt dieses Dokument nicht, oder die Organisations-ID ist falsch oder nicht deine.",
"linkTargetNotFound": "Der Eintrag, mit dem verknüpft werden sollte, existiert nicht mehr.",
"rateLimited": "Zu viele Anfragen. Warte eine Minute und versuche es erneut.",
"browserOnly": "Dokumentarchive lassen sich nur im Browser verwenden.",
"invalidAddress": "Gib die vollständige Adresse ein, beginnend mit https:// oder http://.",
"organizationRequired": "Gib die Organisations-ID aus Papra ein.",
"tokenRequired": "Gib das API-Token ein. Eine neue Adresse braucht es erneut.",
"fileTooLarge": "Die Datei ist größer, als HealthLog annimmt.",
"quotaExceeded": "Dein Dokumentenspeicher ist voll.",
"fileType": "HealthLog nimmt diesen Dateityp nicht an.",
"uploadLimit": "Das stündliche Upload-Limit ist erreicht. Versuche es später erneut.",
"uploadBusy": "Andere Uploads laufen noch. Versuche es gleich noch einmal.",
"moduleDisabled": "Dokumente sind in den Einstellungen ausgeschaltet.",
"generic": "Etwas ist schiefgelaufen. Versuche es erneut.",
"permissionMissing": "Der Papra-Schlüssel darf keine Tags lesen. Gib ihm die Berechtigung tags:read."
},
"pickMore": "Weitere auswählen",
"finishedHint": "Suche erneut oder ändere einen Filter, um weitere Dokumente auszuwählen.",
"maxReached": "Du kannst höchstens {max} Dokumente auf einmal importieren.",
"noMatchHint": "Versuche einen Teil des Namens oder setze Tag und Datum zurück."
},
"customize": "Darstellung anpassen",
"layout": {
"viewDescription": "Vorschaukarten mit Miniaturansicht oder eine kompakte Liste.",
"arrangementHeading": "Anordnung",
"arrangementDescription": "Jeder Monat als eigener Block oder alles fortlaufend über die ganze Breite.",
"stacked": "Monate untereinander",
"flow": "Fortlaufend",
"saveFailed": "Die Darstellung konnte nicht gespeichert werden."
},
"deleteConfirm": {
"titleOne": "Dieses Dokument löschen?",
"titleMany": "{count} Dokumente löschen?",
"body": "Gelöschte Dokumente bleiben {days} Tage unter Zuletzt gelöscht, danach werden sie endgültig entfernt.",
"action": "Löschen"
},
"trash": {
"title": "Zuletzt gelöscht",
"subtitle": "Gelöschte Dokumente bleiben {days} Tage hier, danach werden sie endgültig entfernt.",
"back": "Dokumente",
"entryLabel": "Zuletzt gelöscht ({count})",
"loadError": "Zuletzt gelöscht konnte nicht geladen werden.",
"emptyTitle": "Nichts unter Zuletzt gelöscht",
"emptyDescription": "Was du löschst, wartet hier {days} Tage, bevor es endgültig entfernt wird.",
"count": "Gelöschte Dokumente ({count})",
"restoreAll": "Alle wiederherstellen",
"restore": "Wiederherstellen",
"purge": "Jetzt löschen",
"deletedOn": "Gelöscht am {date}.",
"removesIn": "Wird in {days} Tagen endgültig entfernt.",
"removesSoon": "Wird innerhalb eines Tages endgültig entfernt.",
"restored": "Dokument wiederhergestellt",
"openRestored": "Öffnen",
"restoreDuplicate": "Ein identisches Dokument ist schon gespeichert, deshalb kann diese Kopie nicht wiederhergestellt werden.",
"restorePartial": "{failed} von {total} konnten nicht wiederhergestellt werden",
"purged": "Dokument endgültig gelöscht",
"purgeFailed": "Das Dokument konnte nicht gelöscht werden.",
"purgeConfirmTitle": "Dieses Dokument endgültig löschen?",
"purgeConfirmBody": "Es wird jetzt entfernt statt am Ende der Wartezeit und lässt sich nicht wiederherstellen."
}
},
"selfDescription": {
"dataPosture": "HealthLog wird selbst gehostet: Deine Gesundheitsdaten liegen in der Datenbank deiner eigenen Instanz. Notizen und andere Freitexte, Dokumente, Fragebogen-Antworten, von der KI geschriebene Texte und Zugangs-Tokens sind im Ruhezustand verschlüsselt; Messwerte, Laborwerte, Medikamentennamen und Stimmungswerte werden unverschlüsselt gespeichert und sind so sicher wie dein Server. KI-Funktionen senden Daten nur an den KI-Anbieter, der für dein Konto eingerichtet ist, 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.",
"correlationEnabled": "Für Korrelationssuche verwenden",
"correlationEnabledHint": "Fügt diese Metrik als begrenzten täglichen Verhaltenskanal hinzu. Standardmäßig ist dies ausgeschaltet.",
"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",
"restoredToast": "Messwert wiederhergestellt",
"restoreError": "Wiederherstellen fehlgeschlagen",
"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",
"dha": "DHA (Omega-3)",
"epa": "EPA (Omega-3)"
},
"page": {
"title": "Nährstoffaufnahme",
"description": "Flüssigkeits- und Vitamin-/Mineralstoffaufnahme aus der Gesundheits-App deines Telefons, plus manuelle Wassereinträge.",
"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.",
"loadError": "Deine Nährstoffdaten konnten nicht geladen werden",
"lastAttemptTitle": "Eine Synchronisierung ist angekommen, aber nichts konnte gespeichert werden",
"lastAttemptAt": "Letzter Versuch: {date}",
"lastAttemptReason": {
"unitMismatch": "Die übermittelten Werte entsprachen nicht den Einheiten, die diese App für diese Nährstoffe erwartet, daher konnten sie nicht gespeichert werden.",
"valueOutOfRange": "Die übermittelten Mengen lagen höher, als diese App plausibel speichern kann, daher konnten sie nicht gesichert werden.",
"dayInvalid": "Die Einträge trugen ein Datum, das der Server nicht akzeptieren konnte. Das kann passieren, wenn Uhrzeit oder Zeitzone auf der sendenden Seite falsch eingestellt sind. Das lohnt sich zu prüfen.",
"upsertFailed": "Diese Einträge haben den Server erreicht, aber ein Problem auf unserer Seite hat verhindert, dass sie gespeichert wurden. Du musst nichts weiter tun.",
"unknown": "Diese Einträge sind angekommen, konnten aber nicht gespeichert werden."
}
},
"hydration": {
"referenceMeta": "Richtwert {value} {unit}/Tag (EFSA)",
"loadError": "Wasser konnte nicht geladen werden."
},
"caffeine": {
"ceilingMeta": "Sichere Obergrenze {value} {unit}/Tag (EFSA)",
"loadError": "Koffein konnte nicht geladen werden."
},
"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",
"loadError": "Deine Nährstoffdaten konnten nicht geladen werden",
"sourcePart": "{source} {value} {unit}",
"aboveUpperLimit": "Über der tolerierbaren Höchstmenge für Erwachsene von {value} {unit} pro Tag ({source}).",
"aboveUpperLimitSupplemental": "Der Anteil aus Präparaten liegt über der tolerierbaren Höchstmenge für Erwachsene von {value} {unit} pro Tag für Präparate ({source}).",
"upperLimitForm": {
"retinol": "Die Höchstmenge gilt nur für vorgeformtes Vitamin A (Retinol): Stammt die Menge aus Beta-Carotin, gilt sie nicht.",
"folic_acid": "Die Höchstmenge gilt für Folsäure aus Präparaten und angereicherten Lebensmitteln, nicht für das Folat in gewöhnlicher Nahrung.",
"magnesium_salts": "Die Höchstmenge gilt für leicht lösliche Magnesiumsalze in Präparaten, nicht für das Magnesium aus der Nahrung.",
"alpha_tocopherol": "Die Höchstmenge ist für Alpha-Tocopherol festgelegt."
}
},
"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.",
"units": {
"IU": "IE"
},
"sources": {
"APPLE_HEALTH": "Synchronisiert",
"MANUAL": "Eingetragen",
"SUPPLEMENT": "Präparate"
}
},
"daily": {
"line": {
"allClear": "Heute braucht nichts deine Aufmerksamkeit.",
"scoreReady": "Dein Gesundheitsscore für heute ist da."
},
"push": {
"title": "Dein Morgenüberblick",
"bodyProvisional": "{line}\nDer Schlaf von letzter Nacht fehlt noch.",
"titleScore": "Morgenscore {score}",
"band": {
"green": "Heute sieht es stabil aus.",
"yellow": "Heute lohnt sich ein Blick auf ein paar Dinge.",
"red": "Heute brauchen einige Bereiche Aufmerksamkeit."
}
},
"item": {
"doseWindow": {
"title": "Medikament fällig",
"body": "Eine Dosis ist bald fällig.",
"bodyNamed": "{name} ist bald fällig.",
"overdueTitle": "Medikament überfällig",
"overdueBody": "Eine Dosis ist überfällig.",
"overdueBodyNamed": "{name} ist überfällig."
},
"preventiveCare": {
"title": "Vorsorge fällig",
"body": "{label} ist fällig.",
"bodyManyNamed": "Fällig: {labels}"
},
"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"
}
},
"sameTimeBaseline": {
"title": {
"below": "Hinter deinem üblichen Tempo",
"above": "Vor deinem üblichen Tempo"
},
"body": {
"below": "Bis {time} stehst du bei {today} Schritten. An einem üblichen Tag sind es um diese Zeit etwa {typical}.",
"above": "Bis {time} stehst du bei {today} Schritten, mehr als die {typical}, die um diese Zeit für dich üblich sind."
}
},
"upcomingVisit": {
"title": "Termin steht an",
"bodyToday": "{what}, heute",
"bodyTomorrow": "{what}, morgen",
"bodyDayAfterTomorrow": "{what}, übermorgen"
}
},
"action": {
"logDose": "Dosis erfassen",
"reconnect": "Neu verbinden",
"viewCheckups": "Vorsorge ansehen",
"viewAppointment": "Termin ansehen",
"viewAppointments": "Termine ansehen",
"checkinKeep": "Behalten",
"checkinAdjust": "Anpassen",
"checkinLetGo": "Loslassen",
"viewMilestone": "Ansehen",
"viewPulse": "Puls ansehen",
"viewEcg": "Aufzeichnung ansehen",
"viewSteps": "Schritte 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.",
"worthALook": "Einen Blick wert",
"allClear": "Heute braucht nichts deine Aufmerksamkeit.",
"ringLink": "{metric}-Details öffnen",
"heading": "Heute",
"steadyWeeksOne": "Seit {count} Woche stabil",
"steadyWeeksFew": "Seit {count} Wochen stabil",
"steadyWeeksOther": "Seit {count} Wochen stabil",
"valueWithUnit": "{value} {unit}",
"rangeWithUnit": "{low} bis {high} {unit}",
"rangeAtThisTime": "{range} für diese Tageszeit",
"vital": {
"RESTING_HEART_RATE": "Ruhepuls",
"HEART_RATE_VARIABILITY": "Herzfrequenzvariabilität",
"RESPIRATORY_RATE": "Atemfrequenz",
"OXYGEN_SATURATION": "Sauerstoffsättigung",
"BODY_TEMPERATURE": "Körpertemperatur",
"SKIN_TEMPERATURE": "Hauttemperatur",
"BLOOD_PRESSURE_SYS": "Systolischer Blutdruck",
"BLOOD_PRESSURE_DIA": "Diastolischer Blutdruck",
"BLOOD_GLUCOSE": "Blutzucker",
"PULSE": "Puls",
"WEIGHT": "Gewicht",
"generic": "Ein Vitalwert"
},
"steadyAtLeastWeeksOne": "Seit mindestens {count} Woche stabil",
"steadyAtLeastWeeksFew": "Seit mindestens {count} Wochen stabil",
"steadyAtLeastWeeksOther": "Seit mindestens {count} Wochen stabil"
},
"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."
}
}
},
"lead": {
"vitalOutside": {
"above": "{metric} liegt bei {value}, über deinem üblichen Bereich von {range}.",
"below": "{metric} liegt bei {value}, unter deinem üblichen Bereich von {range}."
},
"vitalsOutside": {
"aboveOne": "{metric} liegt bei {value}, über deinem üblichen Bereich von {range}, und {count} weiterer Vitalwert liegt ebenfalls außerhalb.",
"aboveFew": "{metric} liegt bei {value}, über deinem üblichen Bereich von {range}, und {count} weitere Vitalwerte liegen ebenfalls außerhalb.",
"aboveOther": "{metric} liegt bei {value}, über deinem üblichen Bereich von {range}, und {count} weitere Vitalwerte liegen ebenfalls außerhalb.",
"belowOne": "{metric} liegt bei {value}, unter deinem üblichen Bereich von {range}, und {count} weiterer Vitalwert liegt ebenfalls außerhalb.",
"belowFew": "{metric} liegt bei {value}, unter deinem üblichen Bereich von {range}, und {count} weitere Vitalwerte liegen ebenfalls außerhalb.",
"belowOther": "{metric} liegt bei {value}, unter deinem üblichen Bereich von {range}, und {count} weitere Vitalwerte liegen ebenfalls außerhalb."
},
"sleep": {
"more": "Letzte Nacht hast du {duration} geschlafen, {diff} mehr als sonst.",
"less": "Letzte Nacht hast du {duration} geschlafen, {diff} weniger als sonst.",
"usual": "Letzte Nacht hast du {duration} geschlafen, etwa so viel wie sonst.",
"plain": "Letzte Nacht hast du {duration} geschlafen."
},
"vitalsInRangeOne": "Dein letzter Vitalwert liegt in seinem üblichen Bereich.",
"vitalsInRangeFew": "Alle {count} letzten Vitalwerte liegen in ihrem üblichen Bereich.",
"vitalsInRangeOther": "Alle {count} letzten Vitalwerte liegen in ihrem üblichen Bereich.",
"vitalInRange": "{metric} liegt bei {value}, innerhalb deines üblichen Bereichs von {range}."
},
"todayFact": {
"restMode": {
"label": "Ruhemodus",
"value": "Tag {day}"
},
"medications": {
"label": "Medikamente",
"value": "{taken} von {scheduled} genommen"
},
"appointment": {
"label": "Termin",
"today": "Heute {time}, {what}",
"tomorrow": "Morgen {time}, {what}"
},
"sleep": {
"label": "Letzte Nacht",
"plain": "{duration}",
"usual": "{duration}, etwa wie sonst",
"more": "{duration}, {diff} mehr als sonst",
"less": "{duration}, {diff} weniger als sonst"
},
"vitals": {
"label": "Vitalwerte",
"allInOne": "{count} geprüft, im Bereich",
"allInFew": "{count} geprüft, alle im Bereich",
"allInOther": "{count} geprüft, alle im Bereich",
"oneOut": {
"above": "{metric} über deinem Bereich",
"below": "{metric} unter deinem Bereich"
},
"someOut": "{count} von {total} außerhalb deines Bereichs"
},
"cycle": {
"label": "Zyklus",
"value": "{phase}, Tag {day}",
"dayOnly": "Tag {day}"
}
}
},
"reportSelection": {
"leafAnamnesis": "Gesundheitsprofil",
"groupIdentity": "Stammdaten",
"groupVitals": "Vitalwerte",
"groupCardio": "Herz & Kreislauf",
"groupBody": "Körpermaße",
"groupSleepRecovery": "Schlaf & Erholung",
"groupActivity": "Aktivität",
"groupMobility": "Mobilität & Gang",
"groupEnvironment": "Umgebung",
"groupGlucose": "Blutzucker",
"groupLabs": "Laborwerte",
"groupMedications": "Medikamente",
"groupHistory": "Vorerkrankungen & Allergien",
"groupSensitive": "Sensible Daten",
"leafPatientIdentity": "Name, Geburtsdatum, Geschlecht, Größe",
"leafInsurance": "Krankenkasse und Versichertennummer",
"leafGlucosePanel": "Blutzucker-Panel (Zeit im Zielbereich, GMI, Variabilität)",
"leafLabResults": "Laborwerte",
"leafMedicationList": "Medikamentenliste",
"leafMedicationAdministrations": "Jede erfasste Einnahme",
"leafMedicationCompliance": "Einnahmetreue",
"leafGlp1Therapy": "GLP-1-Therapie (Dosisverlauf, Nebenwirkungen)",
"leafAllergies": "Allergien und Unverträglichkeiten",
"leafIllnessEpisodes": "Krankheitsepisoden",
"leafFamilyHistory": "Familienanamnese",
"leafMood": "Stimmung",
"leafCycle": "Menstruationszyklus",
"templateStandard": "Standard-Arztbericht",
"applyStandard": "{template} übernehmen",
"standardHint": "Ein Klick füllt aus, was ein normaler Arztbesuch meist braucht. Jeder Eintrag bleibt änderbar.",
"groupCount": "{on}/{total}",
"groupDisclosure": "Einträge in {group} anzeigen",
"sensitiveHint": "Hier ist nie etwas vorausgewählt. Wähle jeden Eintrag selbst.",
"scopeNone": "Noch nichts ausgewählt. Wähle aus, was enthalten sein soll, oder übernimm den Standardbericht.",
"scopeCount": "{count} Einträge aus {groups} Bereichen",
"scopeSensitive": "inkl. {names}",
"leafVisits": "Arztbesuche",
"leafSurgicalHistory": "Operationen und Eingriffe",
"leafImmunizations": "Impfungen",
"leafEmergency": "Notfalldaten (Blutgruppe, Kontakte, Verfügungen)",
"leafMedicationEffect": "Veränderung rund um den Start jedes Medikaments (braucht die Medikamentenliste)",
"leafWorkouts": "Trainings (Übersicht je Sportart)",
"leafHrvSdnn": "HRV (SDNN)"
},
"recordSharing": {
"banner": {
"viewing": "Du bist in der Akte von {name}",
"readOnly": "Du kannst sie lesen, nicht ändern.",
"canAdd": "Du kannst etwas hinzufügen, aber nichts ändern oder löschen.",
"leave": "Zurück zu meiner Akte"
},
"switcher": {
"label": "Akte öffnen",
"ownRecord": "Meine eigene Akte"
},
"switch": {
"failed": "Die Akte konnte nicht geöffnet werden. Bitte noch einmal versuchen.",
"noLongerAvailable": "Diese Akte ist nicht mehr für dich freigegeben."
},
"unavailable": {
"title": "Gehört nicht zum geteilten Zugriff",
"description": "Geteilt wird die Gesundheitsakte selbst, einschließlich der Vorgeschichte unter Anamnese. Kontoeinstellungen, verbundene Dienste, Benachrichtigungen und die KI-Funktionen bleiben bei der Person, der das Konto gehört.",
"leave": "Zurück zu meiner Akte"
},
"state": {
"active": "Aktiv",
"pending": "Wartet auf Zustimmung",
"expired": "Abgelaufen",
"revoked": "Beendet"
},
"row": {
"readOnly": "Darf die Akte lesen",
"canWrite": "Darf lesen und Einträge anlegen",
"canManage": "Darf lesen, Einträge anlegen sowie Einträge ändern und löschen",
"entireRecord": "Umfasst die gesamte Akte",
"sections": "Umfasst: {sections}",
"noSections": "Umfasst nichts: dieser Zugriff öffnet keinen Teil der Akte",
"invited": "Eingeladen",
"accepted": "Angenommen",
"expires": "Läuft ab",
"lastUsed": "Zuletzt geöffnet",
"neverUsed": "nie",
"endedByYou": "Von dir beendet",
"endedByOwner": "Zurückgezogen",
"handedBack": "Zurückgegeben",
"ended": "Beendet"
},
"invite": {
"title": "Jemanden einladen",
"description": "Vor der Zustimmung wird nichts geteilt.",
"needsAccount": "Die Person braucht ein eigenes HealthLog-Konto auf dieser Instanz und findet die Einladung dort unter Einstellungen → Geteilter Zugriff.",
"identifierLabel": "Benutzername oder E-Mail",
"identifierPlaceholder": "Der Name, mit dem sie sich anmeldet",
"identifierHint": "Die Person braucht ein Konto auf dieser Instanz. An eine E-Mail-Adresse ohne Registrierung lässt sich keine Einladung schicken.",
"accessLegend": "Was die Person darf",
"accessReadLabel": "Darf lesen",
"accessReadCapability": "Sie kann alles lesen, was von dieser Akte geteilt wird. Hinzufügen oder ändern kann sie nichts.",
"accessWriteLabel": "Darf lesen und hinzufügen",
"accessWriteCapability": "Sie kann Einträge hinzufügen, aber nichts ändern oder löschen, auch nicht das, was sie selbst eingetragen hat.",
"accessWriteDetail": "Sie kann Messwerte, Laborergebnisse, einen neuen Laborwert, einen Krankheitseintrag, eine Nebenwirkung zu einem Medikament und ein neues Medikament hinzufügen sowie eine Dosis als genommen oder ausgelassen markieren. Ändern oder löschen kann sie nichts, auch nicht das Eigene, und eine deiner Erinnerungen verschieben kann sie nicht. Das kannst nur du.",
"accessManageLabel": "Darf verwalten",
"accessManageCapability": "Sie kann Einträge anlegen, ändern und löschen, auch solche, die du selbst erfasst hast.",
"accessManageDetail": "Sie kann außerdem die daraus erzeugten Insights lesen. Deine Anmeldung, deine Sicherheitseinstellungen, deine Verbindungen und den Zugriff anderer Personen kann sie nicht ändern. Du kannst das jederzeit beenden.",
"manageStepUpNote": "Das geht nur im Browser, und falls du einen zweiten Faktor eingerichtet hast, wird er abgefragt.",
"scopeLegend": "Was die Person öffnen darf",
"scopeAllLabel": "Gesamte Akte",
"scopeAllCapability": "Jeder Teil davon, so wie das Teilen bisher funktioniert hat.",
"scopeSomeLabel": "Nur die Bereiche, die du auswählst",
"scopeSomeCapability": "Alles, was du nicht auswählst, bleibt für sie verschlossen.",
"scopeManageNote": "Verwaltender Zugriff umfasst immer die gesamte Akte.",
"scopeLeakNote": "Ein Bereich kann in seinen Notizen und Bezeichnungen auch den Rest deiner Gesundheit erwähnen. Wer einen Bereich bekommt, bekommt alles, was darin steht.",
"scopeAggregateNote": "Die Übersicht auf dem Dashboard, der Gesundheitsscore und die Tageszusammenfassung erscheinen nur, wenn die gesamte Akte geteilt ist.",
"scopeDocumentsNote": "Ein Dokument kann alles enthalten. Teile diesen Bereich nur, wenn die Person alles davon lesen darf.",
"scopeEmptyHint": "Wähle mindestens einen Bereich aus oder teile wieder die gesamte Akte.",
"scopeChooseHint": "Wähle, ob die gesamte Akte oder nur einzelne Bereiche geteilt werden.",
"expiresLabel": "Zugriff endet am (optional)",
"expiresHint": "Leer lassen für Zugriff, der gilt, bis ihn jemand beendet. Ein Datum wird bei jeder Anfrage geprüft, der Zugriff endet also am Ende dieses Tages von selbst.",
"submit": "Einladung senden",
"submitting": "Wird gesendet…",
"sent": "Einladung an {name} gesendet.",
"errorNoAccount": "Auf dieser Instanz gibt es kein Konto mit diesem Namen.",
"errorDuplicate": "Dieses Konto hat bereits Zugriff auf deine Akte.",
"errorSelf": "Das ist dein eigenes Konto.",
"errorInvalid": "Gib einen Benutzernamen oder eine E-Mail-Adresse ein.",
"errorRateLimited": "Zu viele Einladungen. Bitte später noch einmal versuchen.",
"errorFailed": "Die Einladung konnte nicht gesendet werden. Bitte noch einmal versuchen.",
"errorScope": "So lassen sich diese Bereiche nicht teilen. Wähle mindestens einen Bereich aus oder teile die gesamte Akte.",
"errorManageBrowserOnly": "Verwaltenden Zugriff kannst du nur im Browser vergeben.",
"errorStepUp": "Bestätige deinen zweiten Faktor oder Passkey und versuche es erneut.",
"errorOffline": "Das hat den Server nicht erreicht. Deine Einladung steht noch hier. Prüfe deine Verbindung und versuche es erneut."
},
"given": {
"title": "Wer meine Akte öffnen kann",
"description": "Beendeter Zugriff bleibt in der Liste, damit du immer siehst, wer ihn hatte und wann.",
"emptyTitle": "Niemand sonst kann deine Akte öffnen",
"emptyDescription": "Lade oben jemanden ein, wenn diese Person sie lesen können soll.",
"loadError": "Die Liste konnte nicht geladen werden.",
"revoke": "Zugriff beenden",
"withdrawInvite": "Zurückziehen",
"revokeTitle": "Zugriff von {name} beenden?",
"revokeBody": "Der Zugriff endet sofort, auch in jedem Browser, in dem deine Akte gerade offen ist. Was bereits gesehen wurde, lässt sich nicht zurückholen. Du kannst jederzeit erneut einladen.",
"revokeEntriesStay": "Was diese Person eingetragen hat, bleibt in deiner Akte, und du kannst alles davon selbst entfernen.",
"revokeAttribution": "Wer was eingetragen hat, bleibt {days} Tage lang in deiner Aktivitätsübersicht sichtbar.",
"revokeConfirm": "Zugriff beenden"
},
"received": {
"title": "Akten, die ich öffnen kann",
"description": "Eine Einladung gibt dir nichts, bevor du sie annimmst.",
"emptyTitle": "Niemand hat eine Akte mit dir geteilt",
"emptyDescription": "Wenn dich jemand einlädt, erscheint die Einladung hier.",
"loadError": "Die Liste konnte nicht geladen werden.",
"accept": "Annehmen",
"accepting": "Wird angenommen…",
"writeConsent": "Wenn du annimmst, wird das, was du hinzufügst, Teil der Akte von {name}. Ändern oder entfernen kannst du deine Einträge danach nicht mehr; das kann nur {name}.",
"manageConsent": "Wenn du annimmst, kannst du die Akte von {name} ergänzen und außerdem ändern oder löschen, was schon darin steht, auch Einträge von {name} selbst. Alles, was du tust, steht mit deinem Namen in der Aktivitätsübersicht, und {name} kann deinen Zugriff jederzeit beenden.",
"open": "Öffnen",
"renounce": "Zurückgeben",
"renounceTitle": "Akte von {name} zurückgeben?",
"renounceBody": "Dein Zugriff endet sofort. Die Person kann dich jederzeit erneut einladen.",
"renounceConfirm": "Zurückgeben",
"detail": "Du kannst den Zugriff jederzeit zurückgeben."
},
"activity": {
"title": "Wann meine Akte geöffnet wurde",
"description": "Jedes Mal, wenn jemand anderes deine Akte geöffnet hat.",
"retention": "Das umfasst die letzten {days} Tage. Ältere Einträge werden gelöscht.",
"emptyTitle": "Niemand hat deine Akte geöffnet",
"emptyDescription": "Zugriffe von anderen erscheinen hier, eine Zeile pro Person und Tag.",
"loadError": "Die Aktivität konnte nicht geladen werden.",
"opened": "{name} hat deine Akte {count}× geöffnet",
"acted": "{name} hat etwas in deiner Akte geändert",
"deletedAccount": "Ein gelöschtes Konto"
},
"delegate": {
"addOnlyNote": "Du kannst zu dieser Akte etwas hinzufügen. Einträge ändern oder löschen kann nur {name}."
},
"lookingAfter": {
"kindShared": "Geteilte Akte",
"kindManaged": "Verwaltetes Profil"
},
"managed": {
"title": "Profile, die du betreust",
"description": "Gesundheitsakten ohne eigenen Login.",
"explainer": "Ein verwaltetes Profil ist eine Gesundheitsakte für jemanden, der sich nicht selbst anmeldet, etwa ein Kind oder eine Person, um die du dich kümmerst. Es hat keinen Login und keine E-Mail-Adresse, und du wirst die erste betreuende Person. Später kannst du weitere hinzufügen, und ihr alle könnt in die Akte wechseln, um sie zu pflegen.",
"nameLabel": "Name",
"namePlaceholder": "Der Name, an dem du diese Akte erkennst",
"nameHint": "Bis zu 80 Zeichen. Wird überall dort angezeigt, wo diese Akte auftaucht.",
"nameRequired": "Gib der Akte einen Namen.",
"nameTooLong": "Dieser Name ist länger als 80 Zeichen.",
"dobLabel": "Geburtsdatum (optional)",
"dobHint": "Lass das Feld leer, wenn du keines hinterlegen willst. Aus einem Jahrgang wird nichts abgeleitet.",
"localeLabel": "Sprache dieser Akte",
"localeHint": "Die Sprache für Texte, die in diese Akte geschrieben werden. Deine eigenen Ansichten bleiben in deiner Sprache.",
"genderLabel": "Geschlecht (optional)",
"genderHint": "Entscheidet, ob die Zyklus-Funktion für diese Akte zunächst an ist. Jederzeit änderbar.",
"genderNone": "Keine Angabe",
"genderMale": "Männlich",
"genderFemale": "Weiblich",
"genderOther": "Divers",
"timezoneHint": "Die Zeitzone, in der die Tage dieser Akte gezählt werden.",
"timezoneInvalid": "Diese Zeitzone kennt der Browser nicht.",
"create": "Profil anlegen",
"creating": "Wird angelegt…",
"created": "{name} ist eingerichtet. Über das Kontomenü kannst du in diese Akte wechseln.",
"errorStepUp": "Bestätige deinen zweiten Faktor oder Passkey und versuche es erneut.",
"errorOffline": "Das hat den Server nicht erreicht. Es hat sich nichts geändert. Prüfe deine Verbindung und versuche es erneut.",
"errorInvalid": "Der Server hat diese Angaben abgelehnt. Prüfe Name, Datum und Zeitzone.",
"errorFailed": "Das Profil konnte nicht angelegt werden.",
"edit": "Bearbeiten",
"editSave": "Änderungen speichern",
"editSaving": "Wird gespeichert…",
"editLoadError": "Diese Angaben konnten nicht geladen werden.",
"editErrorGone": "Diese Akte gibt es nicht mehr, oder du betreust sie nicht mehr.",
"editErrorFailed": "Die Änderungen konnten nicht gespeichert werden.",
"delete": "Profil löschen",
"deleteTitle": "{name} löschen?",
"deleteBody": "Alles, was für {name} erfasst wurde, verschwindet mit dem Profil: Messwerte, Medikamente, Dokumente und Notizen. Das lässt sich nicht rückgängig machen.",
"deleteGuardiansOne": "{count} Person betreut diese Akte derzeit und verliert sie.",
"deleteGuardiansFew": "{count} Personen betreuen diese Akte derzeit und verlieren sie.",
"deleteGuardiansOther": "{count} Personen betreuen diese Akte derzeit und verlieren sie.",
"deleteFloorNote": "Das ist auch der Ausweg, wenn du die letzte betreuende Person bist: Du darfst die Akte beenden, aber nicht ohne Betreuung zurücklassen.",
"deleteConfirm": "Profil löschen",
"guardiansTitle": "Wer sich um {name} kümmert",
"guardianYou": "(du)",
"guardianSince": "Betreut diese Akte seit {date}",
"guardianPending": "Eingeladen am {date}, noch nicht angenommen",
"guardianRemove": "Zugriff beenden",
"guardianRemoveTitle": "Zugriff von {name} beenden?",
"guardianRemoveBody": "{name} kann {profile} dann nicht mehr öffnen. Was diese Person eingetragen hat, bleibt in der Akte.",
"guardianWithdrawBody": "Die Einladung an {name} wird zurückgezogen. Die Person hat {profile} nie geöffnet, in der Akte ändert sich nichts.",
"guardianRemoveConfirm": "Zugriff beenden",
"soleGuardian": "Du bist die einzige Person, die sich um {name} kümmert. Hier gibt es also keinen Zugriff, den du beenden könntest. Lade jemanden ein und warte auf die Annahme, gib deinen eigenen Zugriff unter „Akten, die ich öffnen kann“ zurück, oder lösche das Profil.",
"guardianInviteLabel": "Weitere betreuende Person einladen",
"guardianInvite": "Einladung senden",
"guardianInviting": "Wird gesendet…",
"guardianInvited": "Einladung an {name} gesendet.",
"guardianExpiresHint": "Optional. Der Zugriff endet am Ende dieses Tages in deiner Zeitzone.",
"guardianPendingNote": "Eine eingeladene Person zählt erst, wenn sie annimmt. Bis dahin bist du weiterhin die letzte, und die Rückgabe deines eigenen Zugriffs wird weiterhin abgelehnt.",
"guardianErrorDuplicate": "Dieses Konto hat bereits Zugriff auf diese Akte.",
"guardianErrorManagedInvitee": "Ein verwaltetes Profil kann keine andere Akte betreuen. Lade ein Konto ein, das sich anmeldet.",
"guardianErrorNoAccount": "Auf dieser Instanz gibt es kein Konto mit diesem Namen oder dieser E-Mail-Adresse.",
"guardianErrorRateLimit": "Zu viele Einladungen in der letzten Stunde. Warte etwas und versuche es erneut.",
"guardianErrorFailed": "Die Einladung konnte nicht gesendet werden.",
"errorMfaRequired": "Dafür ist ein zweiter Faktor oder ein Passkey nötig, und dein Konto hat noch keins von beiden. Richte unter Einstellungen → Sicherheit eins ein und versuche es dann erneut.",
"rosterLoadError": "Es ließ sich nicht laden, wer sich um diese Akte kümmert.",
"errorRateLimit": "Zu viele Profile in der letzten Stunde angelegt. Warte etwas und versuche es erneut.",
"handover": {
"action": "Übergeben",
"title": "An {name} übergeben",
"description": "Gib {name} eine eigene Anmeldung. Nichts wird kopiert oder verschoben: Die Akte wird zum eigenen Konto.",
"guardiansLabel": "Zugriff nach der Übergabe",
"guardiansHint": "Dein Vorschlag. {name} sieht ihn und entscheidet nach der Anmeldung.",
"access": {
"end": "Kein Zugriff",
"read": "Nur ansehen",
"manage": "Verwalten"
},
"expiryLabel": "Link gültig für",
"expiry1": "1 Tag",
"expiry7": "7 Tage",
"expiry14": "14 Tage",
"minorHint": "{name} ist unter 16. Es lohnt sich, den Lesezugriff zu behalten und den Schritt gemeinsam zu besprechen.",
"irreversible": "Sobald {name} den Link benutzt, lässt sich die Übergabe nicht rückgängig machen. Die Akte gehört dann {name}, und {name} entscheidet, wer Zugriff behält.",
"afterwards": "{name} bestätigt den Hinweis und jede KI-Einwilligung selbst. Erinnerungen für diese Akte erreichen dich nicht mehr.",
"replaceNote": "Ein neuer Link zieht den offenen zurück.",
"create": "Link erstellen",
"creating": "Wird erstellt…",
"linkOnce": "Dieser Link wird nur jetzt angezeigt. Gib ihn {name} persönlich oder über einen Weg, dem du vertraust, oder lass den Code scannen.",
"qrAlt": "QR-Code des Übergabelinks für {name}",
"urlLabel": "Übergabelink",
"copy": "Kopieren",
"copied": "Link kopiert",
"copyError": "Der Link ließ sich nicht kopieren. Markiere ihn und kopiere ihn von Hand.",
"linkExpires": "Gültig bis {date}.",
"done": "Fertig",
"pending": "Ein Übergabelink ist bis {date} offen.",
"replace": "Neuer Link",
"revoke": "Link zurückziehen",
"revoked": "Link zurückgezogen",
"revokeFailed": "Der Link ließ sich nicht zurückziehen. Versuche es erneut.",
"errorFailed": "Der Übergabelink ließ sich nicht erstellen.",
"errorRosterChanged": "Inzwischen hat sich geändert, wer die Akte betreut. Schließe das hier und öffne es erneut.",
"oidcOnly": "Ein Profil zu übergeben ist auf diesem Server nicht möglich.",
"loadError": "Der Stand der Übergabe ließ sich nicht laden.",
"entryHint": "Wenn {name} die Akte selbst führen möchte.",
"methodSso": "{name} meldet sich beim Einlösen des Links über Single Sign-on an.",
"methodBoth": "{name} kann ein Passwort festlegen oder sich über Single Sign-on anmelden."
},
"deleteBodyGrace": "Alles, was für {name} erfasst wurde, verschwindet mit dem Profil: Messwerte, Medikamente, Dokumente und Notizen. Das Profil wird sofort gesperrt und nach {days} Tagen endgültig gelöscht. Bis dahin kann ein Admin dieses Servers die Löschung rückgängig machen."
},
"toast": {
"savedTo": "In der Akte von {name} gespeichert"
},
"activityVerb": {
"measurementCreate": "{name} hat einen Messwert eingetragen",
"labResultCreate": "{name} hat einen Laborwert eingetragen",
"allergyCreate": "{name} hat eine Allergie eingetragen",
"familyHistoryCreate": "{name} hat einen Eintrag zur Familienanamnese angelegt",
"illnessEpisodeCreate": "{name} hat eine Erkrankung angelegt",
"biomarkerCreate": "{name} hat einen Biomarker angelegt",
"customMetricEntryCreate": "{name} hat einen eigenen Messwert eingetragen",
"medicationSideEffectCreate": "{name} hat eine Nebenwirkung notiert",
"medicationCreate": "{name} hat ein Medikament angelegt",
"medicationIntake": "{name} hat eine Dosis eingetragen",
"medicationIntakeRefused": "{name} wollte eine Dosis ändern oder eine Erinnerung verschieben und wurde abgewiesen",
"measurementUpdate": "{name} hat einen Messwert geändert",
"measurementDelete": "{name} hat einen Messwert gelöscht",
"measurementDeleteBulk": "{name} hat mehrere Messwerte auf einmal gelöscht",
"measurementRestore": "{name} hat einen Messwert wiederhergestellt",
"measurementReminderCreate": "{name} hat eine Messerinnerung angelegt",
"measurementReminderUpdate": "{name} hat eine Messerinnerung geändert",
"measurementReminderDelete": "{name} hat eine Messerinnerung gelöscht",
"measurementReminderComplete": "{name} hat eine Messerinnerung erledigt",
"measurementReminderSatisfy": "{name} hat eine Messerinnerung abgehakt",
"measurementReminderSkip": "{name} hat eine Messerinnerung übersprungen",
"measurementReminderSnooze": "{name} hat eine Messerinnerung verschoben",
"labResultUpdate": "{name} hat einen Laborwert geändert",
"labResultDelete": "{name} hat einen Laborwert gelöscht",
"labResultRestore": "{name} hat einen Laborwert wiederhergestellt",
"biomarkerUpdate": "{name} hat einen Biomarker geändert",
"biomarkerDelete": "{name} hat einen Biomarker gelöscht",
"allergyUpdate": "{name} hat eine Allergie geändert",
"allergyDelete": "{name} hat eine Allergie gelöscht",
"familyHistoryUpdate": "{name} hat einen Eintrag zur Familienanamnese geändert",
"familyHistoryDelete": "{name} hat einen Eintrag zur Familienanamnese gelöscht",
"illnessEpisodeUpdate": "{name} hat einen Krankheitseintrag geändert",
"illnessEpisodeDelete": "{name} hat einen Krankheitseintrag gelöscht",
"illnessEpisodeResolve": "{name} hat eine Erkrankung als beendet markiert",
"illnessEpisodeRestore": "{name} hat einen Krankheitseintrag wiederhergestellt",
"encounterVisitCreate": "{name} hat einen Arztbesuch angelegt",
"encounterVisitUpdate": "{name} hat einen Arztbesuch bearbeitet",
"encounterVisitDelete": "{name} hat einen Arztbesuch gelöscht",
"encounterVisitRestore": "{name} hat einen Arztbesuch wiederhergestellt",
"vaccinationRecordCreate": "{name} hat eine Impfung eingetragen",
"vaccinationRecordUpdate": "{name} hat eine Impfung bearbeitet",
"vaccinationRecordDelete": "{name} hat eine Impfung gelöscht",
"vaccinationRecordRestore": "{name} hat eine Impfung wiederhergestellt",
"practitionerContactCreate": "{name} hat eine Praxis zum Adressbuch hinzugefügt",
"practitionerContactUpdate": "{name} hat einen Adressbucheintrag bearbeitet",
"practitionerContactDelete": "{name} hat einen Adressbucheintrag gelöscht",
"practitionerContactRestore": "{name} hat einen Adressbucheintrag wiederhergestellt",
"illnessDayLogUpsert": "{name} hat einen Krankheitstag erfasst",
"medicationUpdate": "{name} hat ein Medikament geändert",
"medicationCourseEnd": "{name} hat eine Medikamenteneinnahme beendet",
"medicationDelete": "{name} hat ein Medikament gelöscht",
"medicationGlp1Update": "{name} hat eine GLP-1-Therapie geändert",
"medicationScheduleCreate": "{name} hat einen Einnahmeplan angelegt",
"medicationScheduleUpdate": "{name} hat einen Einnahmeplan geändert",
"medicationScheduleDelete": "{name} hat einen Einnahmeplan gelöscht",
"medicationInventoryCreate": "{name} hat eine Packung angelegt",
"medicationInventoryUpdate": "{name} hat eine Packung geändert",
"medicationInventoryDelete": "{name} hat eine Packung gelöscht",
"medicationSideEffectDelete": "{name} hat eine Nebenwirkung gelöscht",
"medicationIntakeUpdate": "{name} hat eine Einnahme geändert",
"medicationIntakeDelete": "{name} hat eine Einnahme gelöscht",
"medicationIntakeBulkDelete": "{name} hat mehrere Einnahmen auf einmal gelöscht",
"medicationIntakePurge": "{name} hat die gesamte Einnahmehistorie eines Medikaments gelöscht",
"medicationIntakeImport": "{name} hat einen Einnahme-Import für ein Medikament gestartet",
"medicationIntakeHistoryImport": "{name} hat einen Import der Einnahmehistorie gestartet",
"moodEntryCreate": "{name} hat einen Stimmungseintrag angelegt",
"moodEntryUpdate": "{name} hat einen Stimmungseintrag geändert",
"moodEntryDelete": "{name} hat einen Stimmungseintrag gelöscht",
"moodDeleteBulk": "{name} hat mehrere Stimmungseinträge auf einmal gelöscht",
"moodRestore": "{name} hat einen Stimmungseintrag wiederhergestellt",
"mentalHealthCreate": "{name} hat ein Fragebogenergebnis erfasst",
"cycleDelete": "{name} hat einen Zyklus gelöscht",
"cycleDayLogUpsert": "{name} hat einen Zyklustag erfasst",
"cycleDayLogUpdate": "{name} hat einen Zyklustag geändert",
"cycleDayLogDelete": "{name} hat einen Zyklustag gelöscht",
"cyclePeriodBoundary": "{name} hat den Beginn oder das Ende einer Periode geändert",
"cycleSymptomCreate": "{name} hat ein Zyklussymptom angelegt",
"nutrientWaterWrite": "{name} hat die Trinkmenge erfasst",
"healthRecordExport": "{name} hat die Akte exportiert",
"rejectedMeasurementQuery": "{name} hat eine Messwert-Suche gesendet, die diese Akte nicht lesen konnte",
"rejectedDoseQuery": "{name} hat eine Einnahme-Suche gesendet, die diese Akte nicht lesen konnte",
"rejectedMoodQuery": "{name} hat eine Stimmungs-Suche gesendet, die diese Akte nicht lesen konnte",
"rejectedMeasurementCreate": "{name} wollte einen Messwert eintragen und wurde abgewiesen",
"rejectedMeasurementBatch": "{name} wollte mehrere Messwerte eintragen und wurde abgewiesen",
"rejectedMeasurementUpdate": "{name} wollte einen Messwert ändern und wurde abgewiesen",
"rejectedLabCreate": "{name} wollte einen Laborwert eintragen und wurde abgewiesen",
"rejectedLabUpdate": "{name} wollte einen Laborwert ändern und wurde abgewiesen",
"rejectedBiomarkerCreate": "{name} wollte einen Biomarker anlegen und wurde abgewiesen",
"rejectedBiomarkerUpdate": "{name} wollte einen Biomarker ändern und wurde abgewiesen",
"rejectedReminderCreate": "{name} wollte eine Messerinnerung anlegen und wurde abgewiesen",
"rejectedReminderUpdate": "{name} wollte eine Messerinnerung ändern und wurde abgewiesen",
"rejectedMoodCreate": "{name} wollte einen Stimmungseintrag anlegen und wurde abgewiesen",
"rejectedMoodUpdate": "{name} wollte einen Stimmungseintrag ändern und wurde abgewiesen",
"rejectedDoseCreate": "{name} wollte eine Einnahme eintragen und wurde abgewiesen",
"rejectedDoseUpdate": "{name} wollte eine Einnahme ändern und wurde abgewiesen",
"rejectedDoseImport": "{name} wollte Einnahmen importieren und wurde abgewiesen",
"rejectedTrackedValue": "{name} wollte einen eigenen Messwert eintragen und wurde abgewiesen",
"rejectedTrackedValueTypeCreate": "{name} wollte eine eigene Messgröße anlegen und wurde abgewiesen",
"rejectedTrackedValueTypeUpdate": "{name} wollte eine eigene Messgröße ändern und wurde abgewiesen",
"rejectedMedicationLayout": "{name} wollte die Medikamentenliste neu anordnen und wurde abgewiesen",
"deniedDoseImport": "Ein von {name} gestarteter Einnahme-Import konnte nicht eingereiht werden",
"anamnesisFactCreate": "{name} hat einen Fakt zur Vorgeschichte eingetragen",
"customMetricCreate": "{name} hat eine eigene Messgröße angelegt",
"customMetricUpdate": "{name} hat eine eigene Messgröße geändert",
"customMetricDelete": "{name} hat eine eigene Messgröße gelöscht",
"documentStore": "{name} hat ein Dokument hinzugefügt",
"documentUpdate": "{name} hat ein Dokument geändert",
"documentDiscard": "{name} hat ein Dokument verworfen",
"medicationIntakeImportFinished": "Der von {name} gestartete Einnahme-Import ist fertig",
"medicationOneShotReconciled": "Ein einmaliges Medikament wurde nach einer Einnahme von {name} geöffnet oder geschlossen",
"vaccinationBoosterPlanned": "{name} hat eine Auffrischung geplant",
"medicationCategoryCreate": "{name} hat eine Medikamentenkategorie angelegt",
"symptomEventCreate": "{name} hat ein Symptom erfasst",
"symptomEventUpdate": "{name} hat einen Symptom-Eintrag bearbeitet",
"symptomEventDelete": "{name} hat einen Symptom-Eintrag gelöscht",
"symptomDefinitionCreate": "{name} hat ein Symptom angelegt",
"symptomDefinitionUpdate": "{name} hat ein Symptom geändert",
"symptomDefinitionDelete": "{name} hat ein Symptom entfernt",
"customVaccineCreate": "{name} hat einen eigenen Impfstoff angelegt",
"customVaccineUpdate": "{name} hat einen eigenen Impfstoff bearbeitet",
"customVaccineDelete": "{name} hat einen eigenen Impfstoff entfernt",
"lifeEventCreate": "{name} hat ein Lebensereignis hinzugefügt",
"lifeEventUpdate": "{name} hat ein Lebensereignis geändert",
"lifeEventDelete": "{name} hat ein Lebensereignis entfernt",
"biomarkerMerge": "{name} hat Biomarker zusammengeführt",
"medicationIngredientsUpdate": "{name} hat die Zusammensetzung eines Präparats geändert",
"auditCCreate": "{name} hat den AUDIT-C-Fragebogen ausgefüllt",
"auditCDelete": "{name} hat einen AUDIT-C-Eintrag gelöscht"
},
"section": {
"measurements": {
"label": "Messwerte",
"detail": "Gewicht, Blutdruck, Puls, Glukose, Schlaf, Training und die Werte, die du selbst verfolgst."
},
"medications": {
"label": "Medikamente",
"detail": "Die Medikamentenliste, ihre Zeitpläne, eingenommene Dosen, Nebenwirkungen und der Bestand."
},
"labs": {
"label": "Laborwerte",
"detail": "Laborergebnisse und die Liste der Kennwerte dahinter."
},
"profile": {
"label": "Gesundheitliche Vorgeschichte",
"detail": "Allergien, Familienanamnese, die Angaben in deinem Gesundheitsprofil, Arztbesuche und Praxen sowie deine Impfungen."
},
"illness": {
"label": "Krankheiten",
"detail": "Krankheitsverläufe und die Tageseinträge darunter."
},
"mind": {
"label": "Stimmung und Psyche",
"detail": "Stimmungseinträge und der Verlauf der psychologischen Fragebögen. Ein ausgefüllter Fragebogen legt seinen Summenwert zusätzlich als Messwert ab."
},
"cycle": {
"label": "Zyklus",
"detail": "Die Zyklusaufzeichnung."
},
"documents": {
"label": "Dokumente",
"detail": "Alles, was im Dokumententresor liegt."
}
},
"actionError": {
"retry": "Erneut versuchen",
"offline": "Das hat den Server nicht erreicht. Es hat sich nichts geändert. Prüfe deine Verbindung und versuche es erneut.",
"rateLimited": "Zu viele Versuche hintereinander. Warte eine Minute und versuche es erneut.",
"acceptExpired": "Diese Einladung ist abgelaufen. Bitte um eine neue.",
"acceptWithdrawn": "Diese Einladung wurde zurückgezogen.",
"acceptNotPending": "Diese Einladung wurde bereits angenommen.",
"acceptNotFound": "Diese Einladung gibt es nicht mehr.",
"acceptFailed": "Die Einladung konnte nicht angenommen werden.",
"lastGuardian": "Diese Person kümmert sich als Einzige um dieses Profil, deshalb kann der Zugriff noch nicht enden. Füge zuerst eine weitere betreuende Person hinzu oder lösche das Profil.",
"alreadyEnded": "Dieser Zugriff ist bereits beendet.",
"notFound": "Diesen Zugriff gibt es nicht mehr.",
"revokeFailed": "Der Zugriff konnte nicht beendet werden.",
"renounceFailed": "Der Zugriff konnte nicht zurückgegeben werden.",
"profileNotFound": "Dieses Profil gibt es nicht mehr. Es wurde vielleicht schon gelöscht, oder dein Zugriff darauf ist beendet.",
"deleteProfileFailed": "Das Profil konnte nicht gelöscht werden.",
"removeGuardianFailed": "Dieser Zugriff konnte nicht beendet werden."
},
"anamnesis": {
"relativeNote": "Ein Eintrag zur Familienanamnese beschreibt die Angehörigen dieser Person. Trage ihn nur ein, wenn sie das hier festgehalten haben möchte."
},
"handoverDecision": {
"title": "Wer Zugriff auf deine Akte behält",
"description": "Entscheide, was die Personen, die deine Akte geführt haben, ab jetzt dürfen.",
"proposed": "Vorgeschlagen: {access}",
"settled": "Bereits unter Geteilter Zugriff geändert",
"empty": "Niemand sonst hatte Zugriff auf deine Akte.",
"later": "Du kannst das jederzeit unter Einstellungen, Geteilter Zugriff ändern.",
"save": "Bestätigen",
"saving": "Wird gespeichert…",
"decideLater": "Später",
"errorFailed": "Deine Entscheidung ließ sich nicht speichern. Versuche es erneut.",
"loadError": "Wer deine Akte bisher betreut hat, ließ sich nicht laden.",
"notificationsTitle": "Richte deine eigenen Erinnerungen ein",
"notificationsBody": "Erinnerungen für diese Akte gingen bisher an die Personen, die sie geführt haben. Ab jetzt erreichen sie dich, sobald du einen Benachrichtigungskanal einrichtest.",
"notificationsAction": "Benachrichtigungen öffnen"
}
},
"encounters": {
"kind": {
"routine": "Routinetermin",
"acute": "Akuttermin",
"specialist": "Facharzttermin",
"preventive": "Vorsorgetermin",
"emergency": "Notfall",
"hospital": "Krankenhaus",
"therapy": "Therapietermin",
"other": "Arzttermin",
"procedure": "Eingriff oder Operation"
},
"laterality": {
"left": "Links",
"right": "Rechts",
"both": "Beidseitig",
"none": "Keine Angabe"
},
"bodySiteWithSide": "{site} ({side})",
"sectionTitle": "Termine",
"sectionDescription": "Arztbesuche und gebuchte Termine an einem Ort.",
"add": "Termin",
"loadError": "Termine konnten nicht geladen werden.",
"emptyTitle": "Noch kein Termin erfasst",
"emptyDescription": "Ein Datum genügt. Alles andere ist freiwillig.",
"upcomingHeading": "Anstehend",
"pastHeading": "Vergangen",
"createTitle": "Termin erfassen",
"editTitle": "Termin bearbeiten",
"formDescription": "Nur das Datum ist Pflicht.",
"created": "Termin gespeichert",
"updated": "Termin aktualisiert",
"saveFailed": "Termin konnte nicht gespeichert werden.",
"checkupNotClosed": "Termin gespeichert. Die Vorsorge bleibt offen, dafür reicht deine Freigabe nicht.",
"status": {
"planned": "Geplant",
"done": "Stattgefunden",
"cancelled": "Abgesagt",
"noShow": "Nicht wahrgenommen"
},
"card": {
"documentCount": "verknüpfte Dokumente",
"labCount": "verknüpfte Laborwerte",
"conditionCount": "verknüpfte Erkrankungen"
},
"form": {
"date": "Datum und Uhrzeit",
"dateDerivesStatusHint": "Ein Datum in der Zukunft ist ein gebuchter Termin.",
"status": "Status",
"practitioner": "Praxis oder Arzt",
"practitionerHint": "Optional, du kannst den Namen später nachtragen.",
"practitionerNone": "Keine Angabe",
"practitionerSearch": "Name oder Praxis suchen",
"practitionerNoMatch": "Kein Eintrag gefunden.",
"practitionerAdd": "Neu anlegen",
"practitionerClear": "Auswahl entfernen",
"kind": "Art",
"reason": "Anlass",
"outcome": "Ergebnis",
"outcomeReveal": "Ergebnis eintragen",
"bodySite": "Körperstelle",
"bodySiteHint": "Zum Beispiel Knie oder Gallenblase.",
"laterality": "Seite",
"linkDocuments": "Dokumente",
"linkLabResults": "Laborwerte",
"linkConditions": "Erkrankungen",
"linkNothingToOffer": "Nichts zum Verknüpfen vorhanden."
},
"deleteTitle": "Termin löschen?",
"deleteDescription": "Der Eintrag wird entfernt. Ist der Termin gebucht, entfällt auch die Erinnerung dazu.",
"deleteFailed": "Termin konnte nicht gelöscht werden.",
"suggestion": {
"single": "Gehört zu diesem Termin?",
"choose": "Zu welchem Termin gehört das?"
},
"episodeCard": {
"title": "Termine dazu",
"emptyLine": "Noch kein Termin mit dieser Erkrankung verknüpft.",
"add": "Termin hinzufügen"
},
"dashboard": {
"nextVisit": "Nächster Termin: {what} am {when}"
},
"procedures": {
"title": "Eingriffe und Operationen",
"description": "Alle Eingriffe und Operationen, die du hattest, die neuesten zuerst.",
"add": "Eingriff",
"searchLabel": "Nach Körperstelle filtern",
"searchPlaceholder": "Zum Beispiel Knie",
"sitesLabel": "Körperstellen",
"allSites": "Alle",
"count": "{shown} von {total}",
"emptyTitle": "Noch kein Eingriff erfasst",
"emptyDescription": "Erfasse einen Termin der Art Eingriff oder Operation, oder stelle einen vorhandenen Termin darauf um.",
"noMatchTitle": "Nichts passt zu diesem Filter",
"clearFilter": "Filter zurücksetzen",
"loadError": "Die Eingriffe konnten nicht geladen werden."
},
"preparation": {
"practitioner": "Seit deinem letzten Termin bei {name} am {date}",
"specialty": "Seit deinem letzten Termin ({specialty}) am {date}",
"kind": "Seit deinem letzten Termin der gleichen Art ({kind}) am {date}",
"default": "Die letzten {days} Tage",
"defaultReason": "Kein früherer Termin bei derselben Praxis, in derselben Fachrichtung oder derselben Art."
}
},
"checkups": {
"viewSwitchLabel": "Vorsorge, Termine, Eingriffe oder Körperstellen anzeigen",
"tabVorsorge": "Vorsorge",
"tabVisits": "Termine",
"tabProcedures": "Eingriffe",
"tabBodySites": "Körperstellen"
},
"practitioners": {
"title": "Praxen und Ärzte",
"description": "Dein eigenes Adressbuch: einmal tippen, überall auswählen.",
"linkLabel": "Adressbuch",
"searchPlaceholder": "Name, Praxis oder Fach suchen",
"loadError": "Adressbuch konnte nicht geladen werden.",
"emptyTitle": "Noch kein Eintrag",
"emptyDescription": "Lege eine Praxis an, damit du sie beim Termin auswählen kannst.",
"noMatchTitle": "Kein Treffer",
"noMatchDescription": "Zu dieser Suche gibt es keinen Eintrag.",
"createTitle": "Eintrag anlegen",
"editTitle": "Eintrag bearbeiten",
"formDescription": "Nur der Name ist Pflicht.",
"name": "Name",
"specialty": "Fachrichtung",
"practice": "Praxis",
"location": "Adresse",
"phone": "Telefon",
"note": "Notiz",
"noteHint": "Verschlüsselt gespeichert.",
"saveFailed": "Eintrag konnte nicht gespeichert werden.",
"deleteTitle": "Eintrag löschen?",
"deleteDescription": "Deine bisherigen Termine bleiben erhalten und behalten diesen Namen.",
"deleteFailed": "Eintrag konnte nicht gelöscht werden.",
"noSpecialtyGroup": "Ohne Fachrichtung"
},
"links": {
"picker": {
"add": "Hinzufügen",
"done": "Fertig",
"selectAll": "Alle auswählen",
"searchPlaceholder": "Suchen",
"searchNoMatch": "Kein Treffer",
"suggested": "Um dieses Datum",
"loadError": "Die Liste konnte nicht geladen werden.",
"removeNamed": "{name} entfernen",
"removed": "Verknüpfung mit {name} gelöst",
"linked": "Verknüpft",
"loadNewer": "Neuere laden",
"loadOlder": "Ältere laden",
"period": {
"showing": "Zeitraum: {period}"
}
},
"related": {
"title": "Verwandt",
"kind": {
"labResult": "Laborwert",
"encounter": "Besuch",
"document": "Dokument",
"conditionEpisode": "Erkrankung",
"medication": "Medikament",
"vaccination": "Impfung"
},
"via": {
"encounter": "über einen Besuch",
"efficacyTarget": "über das Wirkziel"
},
"pick": {
"conditionEpisode": "Erkrankungen",
"document": "Dokumente",
"encounter": "Besuche",
"medication": "Medikamente",
"vaccination": "Impfungen"
},
"nothingToOffer": "Noch nichts zum Verknüpfen.",
"saveError": "Die Verknüpfung konnte nicht gespeichert werden."
}
},
"bodySites": {
"title": "Körperstellen",
"description": "Eingriffe und Erkrankungen nach der Stelle am Körper.",
"loadError": "Die Körperstellen konnten nicht geladen werden.",
"emptyTitle": "Noch keine Körperstelle erfasst",
"emptyDescription": "Gib bei einem Eingriff oder einer Erkrankung eine Körperstelle an, dann erscheint sie hier.",
"sitesLabel": "Körperstellen",
"sidesLabel": "Seite",
"allSides": "Alle Seiten",
"pickPrompt": "Wähle eine Stelle, um zu sehen, was dazu erfasst ist.",
"noMatchTitle": "Auf dieser Seite ist nichts erfasst",
"visitsTitle": "Eingriffe und Termine",
"conditionsTitle": "Erkrankungen",
"hiddenDocument": "Ein Dokument, das nicht mit dir geteilt ist",
"hiddenLabResult": "Ein Laborwert, der nicht mit dir geteilt ist",
"hiddenCondition": "Eine Erkrankung, die nicht mit dir geteilt ist",
"hiddenVisit": "Ein Termin, der nicht mit dir geteilt ist",
"linkedLabel": "Verknüpfte Einträge",
"conditionSince": "Seit {onset}",
"conditionDates": "{onset} bis {resolved}"
},
"aiRuns": {
"backgroundDocument": "Wird im Hintergrund gelesen. Du kannst die Seite verlassen; das Ergebnis wird beim Dokument gespeichert.",
"backgroundScan": "Wird im Hintergrund gelesen. Mit einem langsamen Modell kann das ein paar Minuten dauern.",
"waitingForWorker": "Warte auf den Hintergrunddienst. Ändert sich das nicht, läuft der Worker auf dem Server vielleicht nicht.",
"errorWorkerUnavailable": "Der Hintergrunddienst ist gerade nicht erreichbar. Versuch es gleich noch einmal oder bitte die Person, die den Server betreibt, ihn zu prüfen.",
"errorTimedOut": "Das Lesen hat länger gedauert, als deine KI-Antwortzeit erlaubt. Versuch es noch einmal oder erhöhe die Antwortzeit in den KI-Einstellungen.",
"errorReaderBusy": "Der Dokumentleser ist gerade mit anderen Aufgaben beschäftigt. Versuch es in einer Minute noch einmal."
},
"symptoms": {
"add": "Neues Symptom",
"nameLabel": "Name",
"namePlaceholder": "z. B. Aura",
"iconLabel": "Symbol",
"icons": {
"Tag": "Etikett",
"Activity": "Aktivität",
"Heart": "Herz",
"HeartPulse": "Herzschlag",
"Brain": "Gehirn",
"Zap": "Blitz",
"Flame": "Flamme",
"Snowflake": "Schneeflocke",
"Droplet": "Tropfen",
"CircleDot": "Punkt",
"BatteryLow": "Leerer Akku",
"MoonStar": "Mond und Stern",
"PersonStanding": "Person",
"Drama": "Masken",
"Frown": "Trauriges Gesicht",
"Cookie": "Keks",
"Soup": "Suppe",
"Pill": "Tablette",
"Thermometer": "Fieberthermometer",
"Stethoscope": "Stethoskop"
},
"limitReached": "Du hast 8 Symptome. Blende eins aus, um ein neues anzulegen.",
"saveError": "Das Symptom konnte nicht gespeichert werden. Bitte versuch es noch einmal.",
"nameRequired": "Gib dem Symptom einen Namen.",
"unreadableLabel": "Unlesbares Symptom",
"intensityPill": "{value}/10",
"entry": {
"sheetDescription": "Eines deiner eigenen Symptome, wie stark und wann.",
"symptom": "Symptom",
"symptomRequired": "Wähle ein Symptom.",
"intensity": "Stärke",
"intensityRequired": "Gib an, wie stark es war.",
"intensityUnset": "Nicht gesetzt",
"anchorLow": "Keine",
"anchorHigh": "Stärkste vorstellbare",
"intensityValueText": "{value} von {max} ({low} bis {high})",
"when": "Wann",
"during": "Während einer Erkrankung",
"duringNone": "Nicht verknüpft",
"note": "Notiz",
"notePlaceholder": "Was war sonst noch?",
"reset": "Formular zurücksetzen",
"emptyHint": "Leg dein erstes Symptom an, zum Beispiel Aura oder Kopfschmerz.",
"emptyHintNoManage": "Für diesen Datensatz sind noch keine Symptome angelegt.",
"limitHint": "Bis zu {limit} Symptome. Blende auf der Krankheitsseite eins aus, um ein neues anzulegen."
},
"section": {
"title": "Deine Symptome",
"log": "Erfassen",
"loadError": "Deine Symptome konnten nicht geladen werden.",
"summaryOne": "Einmal in 30 Tagen, {max}/10, zuletzt {date}",
"summaryFew": "{count}-mal in 30 Tagen, bis {max}/10, zuletzt {date}",
"summaryOther": "{count}-mal in 30 Tagen, bis {max}/10, zuletzt {date}",
"summaryNoneRecent": "Nicht in den letzten 30 Tagen, zuletzt {date}",
"summaryNever": "Noch nicht erfasst",
"menuLabel": "Optionen für {symptom}",
"eventMenuLabel": "Optionen für diesen Eintrag {symptom}",
"hide": "Ausblenden",
"show": "Wieder einblenden",
"deleteTitle": "Symptom löschen?",
"deleteBody": "„{symptom}“ und alle Einträge dazu werden gelöscht. Um den Verlauf zu behalten, blende es stattdessen aus.",
"deleteEventTitle": "Eintrag löschen?",
"deleteEventBody": "Dieser Eintrag wird gelöscht.",
"hiddenOne": "Ausgeblendet (1)",
"hiddenFew": "Ausgeblendet ({count})",
"hiddenOther": "Ausgeblendet ({count})",
"recent": "Letzte 30 Tage",
"recentEmpty": "In den letzten 30 Tagen nichts erfasst.",
"editEventTitle": "{symptom} bearbeiten",
"editSymptomTitle": "Symptom bearbeiten"
},
"episode": {
"title": "Erfasste Symptome",
"during": "bei {illness}"
}
},
"day": {
"scoreOfMax": "von {max}",
"cycleDay": "Zyklustag {n}",
"cyclePhaseLine": {
"MENSTRUAL": "Zyklustag {n}, Menstruation",
"FOLLICULAR": "Zyklustag {n}, Follikelphase",
"OVULATORY": "Zyklustag {n}, Ovulation",
"LUTEAL": "Zyklustag {n}, Lutealphase"
},
"previousDay": "Vortag",
"nextDay": "Folgetag",
"close": "Tag schließen",
"hidePanel": "Tag ausblenden",
"showPanel": "{date} einblenden",
"openDay": "Tag öffnen",
"viewWholeDay": "Ganzen Tag ansehen",
"captureForDay": "Für diesen Tag erfassen",
"empty": "Für diesen Tag gibt es keine Einträge.",
"notShared": "Einige Bereiche sind für dich nicht freigegeben.",
"inTimeline": "In der Zeitleiste",
"askCoach": "Im Coach nach diesem Tag fragen",
"loadFailed": "Dieser Tag konnte nicht geladen werden.",
"dayOf": "Tag {n} von {m}",
"dayN": "Tag {n}",
"usualRange": "Üblich {lo} bis {hi}",
"groups": {
"scores": "Scores",
"running": "Laufend an diesem Tag",
"values": "Werte",
"happened": "Was war",
"movement": "Unterwegs"
},
"notable": {
"extremeHigh": "Höchster Tageswert seit {since}",
"extremeLow": "Niedrigster Tageswert seit {since}",
"firstValue": "Erster Wert dieser Art",
"gap": "{days} Tage ohne Wert"
},
"previousDayShortcut": "Vortag (Alt + Pfeil links)",
"nextDayShortcut": "Folgetag (Alt + Pfeil rechts)",
"captureShort": "Erfassen",
"inTimelineShort": "Zeitleiste",
"askCoachPrompt": "Was war am {date}?",
"coachChips": "Tage in dieser Antwort",
"description": "Alles, was deine Einträge für diesen Tag enthalten.",
"openDocument": "Dokument öffnen",
"previousReading": "Vorher, {date}",
"sheetExpand": "Auf volle Höhe aufziehen",
"sheetShrink": "Verkleinern",
"valuesLegend": "Punkt für diesen Tag, Strich für die 30 Tage davor",
"valuesAllOne": "Alle Werte",
"valuesAllFew": "Alle {count} Werte",
"valuesAllOther": "Alle {count} Werte",
"valuesFewer": "Weniger Werte",
"countEntriesOne": "1 Eintrag",
"countEntriesFew": "{count} Einträge",
"countEntriesOther": "{count} Einträge",
"meanOfReadingsOne": "Schnitt aus 1 Messung",
"meanOfReadingsFew": "Schnitt aus {count} Messungen",
"meanOfReadingsOther": "Schnitt aus {count} Messungen",
"sinceLastVisit": {
"countOne": "1 Eintrag",
"countFew": "{count} Einträge",
"countOther": "{count} Einträge",
"allOne": "Alle anzeigen",
"allFew": "Alle {count} anzeigen",
"allOther": "Alle {count} anzeigen",
"fewer": "Weniger anzeigen",
"note": "Zusammengestellt aus deinen Einträgen, ohne Bewertung. Jedes Datum öffnet den ganzen Tag.",
"report": "Arztbericht {date} bis heute",
"loadError": "Was seit dem letzten Besuch war, konnte nicht geladen werden."
},
"travel": "Unterwegs",
"event": {
"started": "{label} begonnen",
"ended": "{label} beendet",
"paused": "{label} pausiert",
"resumed": "{label} wieder aufgenommen",
"illnessBegan": "{label} begann",
"illnessResolved": "{label} abgeklungen"
},
"pickDate": "Datum wählen",
"pickerTitle": "Zu einem Tag springen",
"today": "Heute",
"hasEntries": "mit Einträgen",
"dayNSince": "Tag {n}, seit {date}",
"sinceDate": "Seit {date}",
"movement": {
"total": "Strecke",
"driving": "Mit dem Auto",
"train": "Mit der Bahn",
"places": "Besuchte Orte",
"away": "Außer Haus",
"travel": "Reisetag",
"travelYes": "Ja",
"kilometres": "{value} km",
"miles": "{value} mi"
}
},
"timeline": {
"title": "Zeitleiste",
"subtitle": "Was wann war, neben deinen Werten.",
"standing": "Dauerhaft",
"startUnknown": "Beginn unbekannt",
"zoom": {
"all": "Alles",
"year": "12 Monate",
"quarter": "3 Monate",
"range": "Zeitraum"
},
"lanes": {
"life": "Leben",
"illness": "Erkrankungen",
"allergies": "Allergien",
"medications": "Medikamente",
"vaccinations": "Impfungen",
"visits": "Arzt und Eingriffe",
"labs": "Labor",
"documents": "Dokumente",
"cycle": "Zyklus"
},
"readiness": {
"title": "Was deine Zeitleiste schon trägt",
"subtitle": "Eine ehrliche Bestandsaufnahme, bevor du sie öffnest.",
"menuEntry": "Datenlage",
"hint": "Leere Spuren bleiben ausgeblendet, bis etwas da ist. Abgeschaltete Module erscheinen nie. Du findest diese Übersicht später unter Datenlage in der Zeitleiste.",
"later": "Später",
"open": "Zeitleiste öffnen",
"verdict": {
"carries": "Trägt schon.",
"thin": "Noch dünn. Die Zeitleiste zeigt vorerst vor allem deine Werte."
},
"status": {
"carries": "trägt",
"thin": "dünn",
"empty": "leer"
},
"lanes": {
"values": "Werte",
"mood": "Stimmung",
"environment": "Umwelt",
"life": "Lebensereignisse"
},
"meter": "{carrying} von {total} Spuren tragen",
"carriesDetail": "{carrying} von {total} Spuren reichen für einen Überblick ab {since}.",
"loadFailed": "Die Bestandsaufnahme konnte nicht geladen werden.",
"card": {
"title": "Was die Zeitleiste schon trägt",
"summary": "Sie reicht bis {since} zurück, {carrying} von {total} Spuren tragen schon.",
"dismiss": "Ausblenden"
},
"detail": {
"valuesOne": "{count} Messgröße seit {since}",
"valuesFew": "{count} Messgrößen seit {since}",
"valuesOther": "{count} Messgrößen seit {since}",
"illnessOne": "{count} Episode, davon {chronic} chronisch",
"illnessFew": "{count} Episoden, davon {chronic} chronisch",
"illnessOther": "{count} Episoden, davon {chronic} chronisch",
"allergiesOne": "{count} Allergie",
"allergiesFew": "{count} Allergien",
"allergiesOther": "{count} Allergien",
"medicationsOne": "{count} Medikament, {missingStart} ohne Startdatum",
"medicationsFew": "{count} Medikamente, {missingStart} ohne Startdatum",
"medicationsOther": "{count} Medikamente, {missingStart} ohne Startdatum",
"medicationsDatedOne": "{count} Medikament mit Startdatum",
"medicationsDatedFew": "{count} Medikamente mit Startdatum",
"medicationsDatedOther": "{count} Medikamente mit Startdatum",
"vaccinationsOne": "{count} Impfung",
"vaccinationsFew": "{count} Impfungen",
"vaccinationsOther": "{count} Impfungen",
"visitsOne": "{count} Besuch, {procedures} mit Eingriff",
"visitsFew": "{count} Besuche, {procedures} mit Eingriff",
"visitsOther": "{count} Besuche, {procedures} mit Eingriff",
"visitsPlannedOne": "{count} Besuch, nur geplant",
"visitsPlannedFew": "{count} Besuche, nur geplant",
"visitsPlannedOther": "{count} Besuche, nur geplant",
"labsOne": "{count} Befundtag",
"labsFew": "{count} Befundtage",
"labsOther": "{count} Befundtage",
"documentsOne": "{count} Dokument mit Datum",
"documentsFew": "{count} Dokumente mit Datum",
"documentsOther": "{count} Dokumente mit Datum",
"lifeOne": "{count} Lebensereignis",
"lifeFew": "{count} Lebensereignisse",
"lifeOther": "{count} Lebensereignisse",
"cycleOne": "{count} Zyklus",
"cycleFew": "{count} Zyklen",
"cycleOther": "{count} Zyklen",
"moodOne": "{count} Eintrag seit {since}",
"moodFew": "{count} Einträge seit {since}",
"moodOther": "{count} Einträge seit {since}",
"environmentOne": "{count} Tag mit Umweltdaten",
"environmentFew": "{count} Tage mit Umweltdaten",
"environmentOther": "{count} Tage mit Umweltdaten",
"empty": "Noch keine"
},
"gap": {
"valuesEmpty": "Quellen verbinden",
"illnessEmpty": "Episode anlegen",
"medicationsWithoutStart": "Ergänzen",
"visitsEmpty": "Besuch nachtragen",
"documentsUndated": "Ansehen",
"labsEmpty": "Befund erfassen",
"vaccinationsEmpty": "Impfpass erfassen",
"lifeEventsEmpty": "Hinzufügen"
},
"gapLine": {
"medicationsWithoutStartOne": "{count} Medikament ohne Startdatum",
"medicationsWithoutStartFew": "{count} Medikamente ohne Startdatum",
"medicationsWithoutStartOther": "{count} Medikamente ohne Startdatum",
"documentsUndatedOne": "{count} Dokument ohne Datum",
"documentsUndatedFew": "{count} Dokumente ohne Datum",
"documentsUndatedOther": "{count} Dokumente ohne Datum",
"valuesEmpty": "Noch keine Werte über längere Zeit",
"illnessEmpty": "Noch keine Erkrankungen mit Beginn",
"visitsEmpty": "Noch keine erledigten Arztbesuche",
"labsEmpty": "Noch keine Laborbefunde",
"vaccinationsEmpty": "Noch keine Impfungen",
"lifeEventsEmpty": "Noch keine Lebensereignisse"
}
},
"legendSpan": "Zeitraum",
"legendEvent": "Ereignis",
"legendMeanQuarter": "Quartalsmittel",
"legendMeanMonth": "Monatsmittel",
"legendMeanWeek": "Wochenmittel",
"legendThin": "Weniger als 3 Messungen",
"legendGap": "Kurze Lücke ohne Messungen",
"today": "Heute",
"noDataYet": "Noch keine Daten",
"layers": "Ebenen",
"layersLanes": "Spuren",
"zoomLabel": "Zeitraum der Ansicht",
"chartLabel": "Zeitleiste von {from} bis {to}",
"keyboardHint": "Pfeiltasten verschieben die Auswahl, Pos1 und Ende springen an die Enden, Eingabe öffnet den Tag.",
"loadFailed": "Die Zeitleiste konnte nicht geladen werden.",
"empty": {
"title": "Noch nichts auf der Zeitleiste",
"description": "Sobald es Einträge mit Datum gibt, erscheinen sie hier."
},
"values": {
"menuTitle": "Werte unter den Spuren",
"trigger": "Werte ({count})",
"noneInWindow": "Keine Werte in diesem Zeitraum",
"series": {
"BLOOD_PRESSURE_SYS": "Blutdruck sys.",
"BLOOD_PRESSURE_DIA": "Blutdruck dia."
},
"noValue": "kein Wert",
"bloodPressure": "Blutdruck",
"readingsOne": "1 Messung",
"readingsFew": "Schnitt aus {count} Messungen",
"readingsOther": "Schnitt aus {count} Messungen"
},
"table": {
"caption": "Einträge der Zeitleiste",
"lane": "Spur",
"entry": "Eintrag",
"start": "Beginn",
"end": "Ende",
"seriesCaption": "Mittelwerte nach Zeitraum",
"period": "Zeitraum",
"labsCaption": "Laborwerte nach Tag",
"marker": "Marker",
"date": "Datum",
"value": "Wert"
},
"selection": {
"empty": "Keine Einträge in diesem Zeitraum",
"since": "seit {date}",
"range": "{from} bis {to}",
"mean": "Ø {values}",
"week": "Woche vom {date}",
"hintClick": "Klicke auf einen Zeitpunkt, um ihn hier zu sehen",
"hintTap": "Tippe auf einen Zeitpunkt, um ihn hier zu sehen"
},
"chronicle": {
"months": "Monate",
"years": "Jahre",
"groupingLabel": "Gruppierung",
"empty": "Keine Einträge von {from} bis {to}",
"emptySingle": "{period}: keine Einträge",
"ended": "{label} vorbei",
"afterDaysOne": "nach einem Tag",
"afterDaysFew": "nach {count} Tagen",
"afterDaysOther": "nach {count} Tagen",
"notable": {
"extremeHigh": "Höchster Wert seit Langem",
"extremeLow": "Niedrigster Wert seit Langem",
"firstValue": "Erster Wert einer Messgröße",
"gap": "Längere Lücke in den Werten"
},
"notableMeta": "Tag öffnen für Einzelheiten"
},
"standingAllergiesOne": "{count} Allergie",
"standingAllergiesFew": "{count} Allergien",
"standingAllergiesOther": "{count} Allergien",
"legendMeanDay": "Tagesmittel",
"range": {
"from": "Von",
"to": "Bis",
"label": "Gewählter Zeitraum",
"open": "Zeitraum wählen",
"clear": "Alles zeigen",
"apply": "Übernehmen"
},
"item": {
"labValuesOne": "1 Laborwert",
"labValuesFew": "{count} Laborwerte",
"labValuesOther": "{count} Laborwerte"
},
"labs": {
"menuTitle": "Laborwerte",
"otherPanel": "Weitere",
"full": "Bis zu {max} Laborwerte gleichzeitig. Entferne einen, um einen anderen hinzuzufügen.",
"above": "über dem Referenzbereich",
"below": "unter dem Referenzbereich",
"reference": "Referenz {range}",
"report": "Befund: {title}",
"reportUntitled": "Befund öffnen",
"excludedOne": "{name}: {count} Wert in einer anderen Einheit ist nicht eingezeichnet",
"excludedFew": "{name}: {count} Werte in einer anderen Einheit sind nicht eingezeichnet",
"excludedOther": "{name}: {count} Werte in einer anderen Einheit sind nicht eingezeichnet"
},
"legendLabValue": "Laborwert, wie gemessen",
"legendLabOutside": "Außerhalb des Referenzbereichs",
"legendLabRange": "Referenzbereich"
},
"lifeEvents": {
"title": "Lebensereignis",
"add": "Lebensereignis",
"privacy": "Titel und Notiz liegen verschlüsselt. Sie gehen an keine KI.",
"emptyHint": "Umzug, Geburt oder eine neue Stelle geben den Jahren einen Anker.",
"save": "Speichern",
"cancel": "Abbrechen",
"delete": "Lebensereignis löschen",
"saved": "Lebensereignis gespeichert",
"deleted": "Lebensereignis gelöscht",
"fields": {
"title": "Was war?",
"category": "Art",
"when": "Wann",
"precision": "Genauigkeit",
"addEnd": "Enddatum, wenn es ein Zeitraum war",
"endDate": "Bis",
"note": "Notiz",
"optionalTag": "optional",
"notePlaceholder": "Etwas, das du später wissen willst",
"removeEnd": "Enddatum entfernen"
},
"category": {
"FAMILY": "Familie",
"HOME": "Wohnen",
"WORK": "Arbeit",
"LOSS": "Verlust",
"OTHER": "Sonstiges"
},
"precision": {
"DAY": "Tag",
"MONTH": "Monat",
"YEAR": "Jahr"
},
"edit": "Lebensereignis bearbeiten",
"errors": {
"titleRequired": "Gib dem Ereignis einen Namen.",
"titleTooLong": "Höchstens 120 Zeichen.",
"categoryRequired": "Wähle eine Art.",
"dateRequired": "Gib ein gültiges Datum an.",
"endBeforeStart": "Das Ende liegt vor dem Beginn.",
"noteTooLong": "Höchstens 2000 Zeichen."
},
"saveFailed": "Speichern hat nicht geklappt.",
"deleteFailed": "Löschen hat nicht geklappt.",
"deleteConfirm": {
"title": "Lebensereignis löschen?",
"body": "Titel und Notiz sind danach nicht mehr da."
}
},
"palette": {
"title": "Suche",
"description": "Finde eine Seite, eine Einstellung, ein Modul, eine Aktion oder einen Eintrag in deinen Daten.",
"placeholder": "Seiten, Einstellungen, deine Einträge suchen…",
"results": "Treffer",
"noResults": "Nichts gefunden für „{query}“.",
"moduleOn": "An",
"moduleOff": "Aus",
"hintMove": "Wählen",
"hintOpen": "Öffnen",
"hintClose": "Schließen",
"groups": {
"recent": "Zuletzt",
"pages": "Seiten",
"insights": "Insights",
"settings": "Einstellungen",
"modules": "Module",
"actions": "Aktionen",
"records": "In deinen Einträgen"
},
"actions": {
"capture": "Neuer Eintrag",
"coach": "Coach fragen",
"backup": "Backup erstellen",
"today": "Heute öffnen",
"shortcuts": "Tastenkürzel zeigen"
},
"records": {
"loading": "Deine Einträge werden durchsucht…",
"empty": "Nichts in deinen Einträgen für „{query}“.",
"error": "Deine Einträge konnten nicht durchsucht werden. Versuch es gleich noch einmal.",
"truncated": "Nur die neuesten Einträge wurden durchsucht.",
"kind": {
"visit": "Arztbesuch",
"condition": "Erkrankung",
"document": "Dokument",
"vaccination": "Impfung",
"lab": "Laborwert",
"medication": "Medikament",
"symptom": "Symptom",
"workout": "Training",
"note": "Notiz"
},
"source": {
"mood": "Stimmungsnotiz",
"measurement": "Notiz zu einem Messwert",
"illness": "Krankheitstagebuch"
}
}
},
"shortcuts": {
"title": "Tastenkürzel",
"description": "Tasten, die überall in der App funktionieren, außer während du in ein Feld tippst.",
"menuEntry": "Tastenkürzel",
"then": "dann",
"search": "Suchen",
"help": "Diese Liste zeigen",
"close": "Dialog oder Bereich schließen",
"previousDay": "Vorheriger Tag",
"nextDay": "Nächster Tag",
"toggleDay": "Tag öffnen oder schließen",
"dayHint": "Vorheriger und nächster Tag gehen, solange ein Tag offen ist.",
"groups": {
"navigation": "Navigation",
"actions": "Aktionen",
"day": "Tag"
}
},
"aboutPage": {
"eyebrow": "Info",
"title": "Über HealthLog",
"lastUpdated": "Zuletzt aktualisiert: {date}",
"project": "Projekt",
"credits": "Danksagungen"
},
"series": {
"reference": {
"targetUpper": "Dein Ziel, Obergrenze",
"targetLower": "Dein Ziel, Untergrenze",
"clinicalUpper": "Klinische Obergrenze",
"clinicalLower": "Klinische Untergrenze"
}
},
"activityCalendar": {
"title": "Aktivitätskalender",
"periodLabel": "Zeitraum",
"period": {
"week": "Woche",
"month": "Monat"
},
"weekRange": "{start} bis {end}",
"previous": "Vorheriger Zeitraum",
"next": "Nächster Zeitraum",
"metricLabel": "Tage einfärben nach",
"metric": {
"steps": "Schritte",
"activeMinutes": "Aktive Minuten",
"load": "Trainingslast"
},
"empty": "In diesem Zeitraum gibt es noch keine Schritte, aktiven Minuten oder Trainings.",
"loadError": "Der Aktivitätskalender konnte nicht geladen werden.",
"weekGoalsColumn": "Wochenziele",
"weekGoalsMet": "Alle Wochenziele erreicht",
"weekGoalsNotMet": "Nicht alle Wochenziele erreicht",
"cell": {
"steps": "{value} Schritte",
"activeMinutes": "{value} aktive Minuten",
"workouts": "{value} Trainings: {sports}"
},
"level": {
"none": "Keine Daten",
"unrated": "Noch zu wenig Verlauf",
"low": "Weit unter deinem Üblichen",
"below": "Unter deinem Üblichen",
"usual": "Etwa wie üblich",
"above": "Über deinem Üblichen",
"high": "Weit über deinem Üblichen",
"in_progress": "Heute, noch nicht vorbei"
},
"legend": "Verglichen mit deinen 12 Wochen davor:",
"noBaseline": "Dein üblicher Bereich erscheint nach 14 Tagen mit Daten.",
"summary": {
"steps": "{value} Schritte",
"activeMinutes": "{value} aktive Minuten",
"workouts": "{value} Trainings",
"load": "Durchschnittliche Trainingslast {value}",
"usual": "Bis hierher üblich bei dir: {value}",
"noUsual": "Noch zu wenige frühere Wochen oder Monate zum Vergleichen.",
"usualThroughYesterday": "Bis gestern {value}, bis dahin üblich bei dir {usual}",
"firstDay": "Der Vergleich mit deinem Üblichen kommt, sobald der erste Tag vorbei ist."
},
"sportCount": "{sport}: {count}",
"goal": {
"workoutsPerWeek": "Trainings pro Woche",
"activeMinutesPerWeek": "Aktive Minuten pro Woche",
"stepsPerWeek": "Schritte pro Woche",
"stepsPerMonth": "Schritte pro Monat"
},
"goalOf": "{value} von {target}",
"setGoals": "Ziele festlegen",
"editGoals": "Ziele ändern",
"goalsSheet": {
"title": "Aktivitätsziele",
"description": "Lass ein Feld leer, wenn du dort kein Ziel möchtest.",
"none": "Kein Ziel",
"invalid": "Eine ganze Zahl von {min} bis {max}.",
"saveError": "Die Ziele konnten nicht gespeichert werden."
},
"crossLink": {
"title": "Aktivitätskalender",
"body": "Deine Schritte als Woche oder Monat, verglichen mit deinem Üblichen.",
"cta": "Kalender öffnen"
}
},
"sourceProvenance": {
"title": "Woher die Werte kommen",
"description": "Welche Quelle einen Wert an jedem Tag geliefert hat und welche deine Quellen-Priorität verwendet.",
"metric": "Messwert",
"day": "Tag",
"dayTitle": "Quellen an diesem Tag",
"loadError": "Die Quellen konnten nicht geladen werden.",
"dayEmpty": "An diesem Tag gibt es keine Werte dieser Art.",
"reason": {
"only_source": "{source} ist an diesem Tag die einzige Quelle.",
"highest_on_ladder": "{source} wird verwendet: Unter den Quellen dieses Tages steht sie in deiner Quellen-Priorität am höchsten.",
"name_tiebreak": "{source} wird verwendet: Keine der Quellen dieses Tages steht in deiner Quellen-Priorität, deshalb entscheidet der Name.",
"not_ranked": "Für diesen Wert gibt es keine Quellen-Priorität: Die Werte aller Quellen zählen."
},
"pass": {
"lower_on_ladder": "Steht in deiner Quellen-Priorität weiter unten.",
"not_on_ladder": "Steht für diesen Wert nicht in deiner Quellen-Priorität.",
"name_tiebreak": "Gleicher Rang wie die verwendete Quelle; der Name hat entschieden."
},
"used": "Verwendet",
"readings": "{count} Messungen, Geräte: {devices}",
"ladder": "Deine Reihenfolge für diesen Wert: {ladder}",
"utcNote": "Die Quelle wird pro Tag von Mitternacht bis Mitternacht UTC gewählt, genauso wie bei den Diagrammen.",
"openSettings": "Reihenfolge in der Quellen-Priorität ändern",
"compareTitle": "Zwei Quellen vergleichen",
"range": "Zeitraum",
"rangeDays": "{days} Tage",
"compareNeedsTwo": "In diesem Zeitraum hat nur eine Quelle Werte dieser Art.",
"side": {
"a": "Erste Quelle",
"b": "Zweite Quelle"
},
"daysBoth": "Tage mit beiden",
"meanOf": "Durchschnitt von {source}",
"meanAbsDiff": "Durchschnittliche Abweichung",
"pickedDays": "Verwendete Tage (erste / zweite)",
"pickedSplit": "{a} / {b}",
"compareNote": "Die Durchschnitte zählen nur Tage, an denen beide Quellen Werte haben, damit Gleiches mit Gleichem verglichen wird. Fett ist der Wert, den die Diagramme verwenden.",
"settingsHint": "Was diese Reihenfolge Tag für Tag entscheidet:",
"settingsHintLink": "Woher die Werte kommen",
"metricLink": "Woher diese Werte kommen"
},
"recordImport": {
"title": "Laborwerte und Medikamente aus einer Tabelle",
"description": "Hol dir Laborwerte aus Jahren oder eine Medikamentenliste aus einer CSV-Datei.",
"detail": "Du legst fest, welche Spalte was enthält. HealthLog prüft jede Zeile vorher und importiert erst, wenn du bestätigst. Zeilen, die schon da sind, werden übersprungen.",
"kind": {
"labs": "Laborwerte",
"medications": "Medikamente"
},
"sheetTitle": {
"labs": "Laborwerte importieren",
"medications": "Medikamente importieren"
},
"sheetDescription": {
"labs": "Marker werden deinen zugeordnet, Einheiten umgerechnet, wo die Umrechnung bekannt ist.",
"medications": "Name, Dosis, tägliche Uhrzeiten, bei Bedarf, Beginn und Ende. Andere Rhythmen legst du danach in der App fest."
},
"file": "CSV-Datei",
"template": "Vorlage herunterladen",
"mapping": "Welche Spalte enthält was",
"required": "(Pflicht)",
"notInFile": "Nicht in der Datei",
"column": "Spalte {n}",
"delimiter": "Trennzeichen",
"delimiterOption": {
"comma": "Komma",
"semicolon": "Semikolon",
"tab": "Tabulator"
},
"decimal": "Dezimalzeichen",
"decimalOption": {
"dot": "Punkt (5.4)",
"comma": "Komma (5,4)"
},
"dateOrder": "Datumsformat",
"dateOrderOption": {
"iso": "2025-03-01",
"dmy": "01.03.2025 (Tag zuerst)",
"mdy": "03/01/2025 (Monat zuerst)"
},
"header": "Die erste Zeile enthält Spaltennamen",
"reminders": "Erinnerungen für importierte Medikamente einschalten",
"timezoneNote": "Uhrzeiten ohne Zeitzone werden in der Zeitzone deines Kontos gelesen. Ein Datum ohne Uhrzeit bleibt dieser Kalendertag.",
"missing": "Noch auszuwählen: {fields}",
"check": "Datei prüfen",
"runIdle": "Importieren",
"run": "{count} Zeilen importieren",
"close": "Schließen",
"summaryCheck": "{rows} Zeilen gelesen: {inserted} können importiert werden, {duplicates} sind schon da, {failed} haben ein Problem.",
"summaryDone": "{inserted} Zeilen importiert. Übersprungen: {duplicates}, die schon da waren, und {failed} mit einem Problem.",
"markersMatched": "Deinen Markern zugeordnet:",
"markersCreated": "Neue Marker:",
"line": "Zeile {line}",
"errorsTruncated": "Nur die ersten 500 Probleme werden aufgelistet.",
"error": {
"tooLarge": "Die Datei ist größer als 16 MB.",
"rateLimited": "Zu viele Importe in der letzten Stunde. Versuch es später noch einmal.",
"invalid": "Die Datei oder die Spaltenauswahl konnte nicht gelesen werden.",
"failed": "Der Import hat nicht geklappt. Bitte versuch es noch einmal."
},
"reason": {
"missing_value": "Eine Pflichtzelle ist leer",
"invalid_number": "Keine Zahl",
"ambiguous_number": "Die Zahl ist mehrdeutig; prüf das Dezimalzeichen",
"missing_unit": "Eine Zahl braucht eine Einheit",
"invalid_date": "Kein Datum im gewählten Format",
"invalid_time": "Keine Uhrzeit",
"ambiguous_date": "Das Datum ist mehrdeutig; nutz eine vierstellige Jahreszahl und das gewählte Format",
"future_date": "Das Datum liegt in der Zukunft",
"text_too_long": "Der Text ist zu lang",
"unit_mismatch": "Diese Einheit lässt sich nicht in die Einheit des Markers umrechnen",
"invalid_reference_range": "Der Referenzbereich ist nicht lesbar",
"invalid_times": "Die Uhrzeiten sind nicht lesbar (z. B. 08:00 20:00)",
"missing_times": "Trag Einnahmezeiten ein oder markier das Medikament als bei Bedarf",
"invalid_yes_no": "Bitte ja oder nein",
"as_needed_with_times": "Ein Medikament bei Bedarf hat keine festen Uhrzeiten",
"end_before_start": "Das Ende liegt vor dem Beginn",
"invalid_medication": "So lässt sich das Medikament nicht speichern",
"oversized_row": "Die Zeile ist zu lang oder zu breit",
"row_limit": "Über der Zeilengrenze für einen Import",
"duplicate": "Schon da, übersprungen"
},
"field": {
"analyte": "Marker",
"value": "Ergebnis",
"unit": "Einheit",
"date": "Datum",
"time": "Uhrzeit",
"referenceRange": "Referenzbereich",
"referenceLow": "Referenz unten",
"referenceHigh": "Referenz oben",
"panel": "Gruppe",
"note": "Notiz",
"name": "Name",
"dose": "Dosis",
"times": "Uhrzeiten",
"asNeeded": "Bei Bedarf",
"startsOn": "Beginn",
"endsOn": "Ende"
},
"unitlessHint": "Ein Quotient oder Index ohne Einheit (INR, Cholesterin/HDL): Trag in der Spalte für die Einheit eine 1 ein. Eine leere Einheit bleibt ein Fehler."
}
}