diff --git a/messages/de.json b/messages/de.json index 38556d3ae..444284b28 100644 --- a/messages/de.json +++ b/messages/de.json @@ -8,11 +8,11 @@ "moreOptions": "Weitere Optionen", "create": "Erstellen", "close": "Schließen", - "loading": "Laden...", + "loading": "Laden…", "loadFailed": "Konnte nicht geladen werden", "error": "Fehler", "saved": "Gespeichert", - "pullToRefresh": "Wird aktualisiert …", + "pullToRefresh": "Wird aktualisiert…", "no": "Nein", "noData": "Keine Daten vorhanden", "optional": "Optional", @@ -220,7 +220,7 @@ "themeDark": "Dunkel", "themeLight": "Hell", "collapseSidebar": "Einklappen", - "userMenu": "Benutzermenü", + "userMenu": "Nutzermenü", "accountSettings": "Kontoeinstellungen", "mood": "Stimmung", "coach": "Coach", @@ -252,11 +252,11 @@ "auth": { "login": "Anmelden", "register": "Registrieren", - "username": "Benutzername", + "username": "Nutzername", "password": "Passwort", "email": "E-Mail-Adresse", "emailPlaceholder": "name@beispiel.de", - "emailOrUsername": "E-Mail-Adresse oder Benutzername", + "emailOrUsername": "E-Mail-Adresse oder Nutzername", "emailOrUsernamePlaceholder": "name@beispiel.de oder benutzername", "loginWithPasskey": "Mit Passkey anmelden", "loginWithPassword": "Mit Passwort anmelden", @@ -306,7 +306,7 @@ "hero": { "scoreLabel": "Health Score", "scoreProvisional": "Noch nicht genug Daten", - "scoreComputing": "Score wird berechnet …", + "scoreComputing": "Score wird berechnet…", "doses": { "summary": "{taken} von {scheduled} Dosen genommen", "nextAt": "Nächste um {time}", @@ -378,7 +378,7 @@ "saveError": "Einnahme konnte nicht gespeichert werden.", "emptyTitle": "Noch keine Medikamente angelegt", "emptyDescription": "Lege zuerst ein Medikament mit Zeitfenster an, damit du die Einnahme protokollieren kannst.", - "emptyCta": "Medikament anlegen" + "emptyCta": "Medikament hinzufügen" }, "quickEntryDiscard": { "title": "Eintrag verwerfen?", @@ -772,10 +772,10 @@ }, "medications": { "title": "Medikamente", - "subtitle": "Medikation, Zeitpläne & Einnahmen", + "subtitle": "Medikamente, Zeitpläne & Einnahmen", "loginRequired": "Bitte anmelden, um Medikamente zu verwalten.", "addMedication": "Hinzufügen", - "firstMedication": "Erstes Medikament anlegen", + "firstMedication": "Erstes Medikament hinzufügen", "addChoice": { "logIntake": "Einnahme erfassen", "newMedication": "Neues Medikament" @@ -817,7 +817,7 @@ "importIntakes": "Einnahmen importieren", "importDescription": "JSON-Array mit Einnahme-Daten einfügen. Erwartetes Format:", "importUploadFile": "JSON-Datei hochladen", - "importPaste": "JSON hier einfügen...", + "importPaste": "JSON hier einfügen…", "importSelected": "Ausgewählt: {name}", "importFileLoaded": "Datei \"{name}\" geladen", "importInvalidJson": "Datei enthält kein gültiges JSON", @@ -949,7 +949,7 @@ "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 …", + "submitBusy": "Wird verarbeitet…", "cancel": "Abbrechen", "examples": { "label": "Eines dieser Beispiele übernehmen", @@ -1412,7 +1412,7 @@ } }, "verlauf": { - "loading": "Verlauf wird geladen …", + "loading": "Verlauf wird geladen…", "loadError": "Verlauf konnte nicht geladen werden.", "empty": "Noch keine Einnahmen in diesem Zeitraum.", "summaryEmpty": "Noch keine auswertbaren Dosen.", @@ -1682,7 +1682,7 @@ "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.", + "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", @@ -2152,7 +2152,7 @@ "send": "Senden", "stop": "Stopp", "thinking": "Denke nach…", - "composerPlaceholder": "Frag mich etwas …", + "composerPlaceholder": "Frag mich etwas…", "nudgeBubbleLabel": "Neue Nachricht vom Coach — Chat öffnen", "fabLabel": "Coach öffnen", "readAloud": "Vorlesen", @@ -2393,7 +2393,7 @@ "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 Medikamentenadhärenz aus, und passt sie dazu, wie ich mich gefühlt habe?", + "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?", @@ -2406,7 +2406,7 @@ "healthScore": "Warum liegt mein Gesundheits-Score bei {score} von 100, und was würde ihn am stärksten bewegen?", "periodWeek": "Geh mit mir durch, wie meine letzte Woche über meine Gesundheitswerte hinweg lief — was sticht heraus?", "periodMonth": "Geh mit mir durch, wie mein letzter Monat über meine Gesundheitswerte hinweg lief — was sticht heraus?", - "correlationBpCompliance": "Wie hängt meine Medikamentenadhärenz mit meinem Blutdruck zusammen? Geh mit mir durch, was dieser Zusammenhang für mich bedeutet.", + "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?" @@ -2534,7 +2534,7 @@ "stimmungEmptyAction": "Stimmungs-Tagebuch öffnen", "medikamenteDescription": "Einnahme-Kalender pro Medikament plus eine textbasierte Einschätzung.", "medikamenteEmptyTitle": "Erstes Medikament hinzufügen", - "medikamenteEmptyDescription": "Adhärenz-Insights brauchen mindestens ein erfasstes Medikament.", + "medikamenteEmptyDescription": "Therapietreue-Insights brauchen mindestens ein erfasstes Medikament.", "medikamenteEmptyAction": "Medikamente öffnen", "bmiDescription": "BMI aus deinem Gewicht und deiner Größe abgeleitet, mit Einschätzung.", "target": { @@ -3820,7 +3820,7 @@ }, "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 Compliance-Säule im Dashboard und den Kontext der KI." + "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", @@ -3832,7 +3832,7 @@ }, "vorsorge": { "title": "Vorsorge", - "body": "Vorsorge erinnert an Untersuchungen und Impfungen mit eigenem Intervall. Tipp: „Erledigt“ kann direkt eine Messung oder ein Laborergebnis anlegen. Fällige Vorsorgen erscheinen als Reminder und im Arztbericht." + "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", @@ -3994,7 +3994,7 @@ "profileTitle": "Profil einrichten", "profileDescription": "Größe, Geburtsdatum und Geschlecht schalten personalisierte Zielwerte frei.", "profileCta": "Profil öffnen", - "measurementTitle": "Erste Messung anlegen", + "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", @@ -4421,7 +4421,7 @@ "saved": "Datumsformat gespeichert.", "saveError": "Speichern des Datumsformats fehlgeschlagen." }, - "username": "Benutzername", + "username": "Nutzername", "height": "Körpergröße (cm)", "dateOfBirth": "Geburtsdatum", "dateOfBirthHint": "Wird für die automatische Berechnung der Blutdruck-Zielwerte benötigt.", @@ -4673,7 +4673,7 @@ "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 …", + "placeholder": "Z. B. Schichtarbeit, vegetarische Ernährung, Knieverletzung, Training für einen Halbmarathon…", "charCount": "{used} / {max} Zeichen", "clear": "Leeren", "save": "Speichern", @@ -4685,11 +4685,11 @@ "profileHint": "Alter und Geschlecht stammen aus deinem Profil und werden automatisch mitgegeben.", "freeTextLabel": "Über mich (Freitext)", "conditionsLabel": "Chronische Erkrankungen", - "conditionsPlaceholder": "Z. B. Bluthochdruck, Typ-2-Diabetes …", + "conditionsPlaceholder": "Z. B. Bluthochdruck, Typ-2-Diabetes…", "allergiesLabel": "Allergien & Unverträglichkeiten", - "allergiesPlaceholder": "Z. B. Laktoseintoleranz, Penicillin-Allergie …", + "allergiesPlaceholder": "Z. B. Laktoseintoleranz, Penicillin-Allergie…", "focusLabel": "Worauf soll der Coach achten?", - "focusPlaceholder": "Z. B. behalte meinen Blutdruck im Blick, motiviere mich zu mehr Bewegung …", + "focusPlaceholder": "Z. B. behalte meinen Blutdruck im Blick, motiviere mich zu mehr Bewegung…", "completeness": "{answered} von {total} beantwortet", "questionsTitle": "Der Coach hat Rückfragen", "questionsOpenCoach": "Im Coach beantworten", @@ -4892,9 +4892,9 @@ "expand": "Ausklappen", "dangerZone": "Alle Daten löschen", "dangerZoneTitle": "Gefahrenzone", - "dangerZoneDescription": "Löscht alle deine Gesundheitsdaten und Integrationen. Dein Benutzerkonto bleibt erhalten.", + "dangerZoneDescription": "Löscht alle deine Gesundheitsdaten und Integrationen. Dein Nutzerkonto bleibt erhalten.", "dangerZoneConfirm": "Alle Daten löschen?", - "dangerZoneConfirmDescription": "Dieser Vorgang löscht alle deine Gesundheitsdaten und Integrationen unwiderruflich. Dein Benutzerkonto bleibt erhalten.", + "dangerZoneConfirmDescription": "Dieser Vorgang löscht alle deine Gesundheitsdaten und Integrationen unwiderruflich. Dein Nutzerkonto bleibt erhalten.", "dangerZoneSuccess": "Alle persönlichen Daten wurden gelöscht", "dangerZoneDeleteFailed": "Löschen fehlgeschlagen", "finalDelete": "Endgültig löschen", @@ -5343,7 +5343,7 @@ }, "admin": { "title": "Administration", - "subtitle": "Systemstatus, Benutzer und Einstellungen", + "subtitle": "Systemstatus, Nutzer und Einstellungen", "settingsSaveError": "Einstellungen konnten nicht gespeichert werden", "systemStatus": "Systemstatus", "systemStatusDescription": "Laufzeitdaten der Instanz: Datenbank, Worker und Bestandszähler.", @@ -5351,11 +5351,11 @@ "databaseConnected": "Verbunden", "databaseError": "Fehler", "startedAt": "Gestartet", - "users": "Benutzer", + "users": "Nutzer", "measurementsCount": "Messwerte", "activeTokens": "Aktive API-Tokens", "activeSessions": "Aktive Sessions", - "loadingStatus": "Lade Status...", + "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.", @@ -5387,7 +5387,7 @@ }, "aiQuality": { "title": "Auswertungs-Qualität", - "loading": "Feedback-Zusammenfassung wird geladen...", + "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", @@ -5402,7 +5402,7 @@ }, "coachFeedback": { "title": "Coach-Feedback", - "loading": "Coach-Feedback-Zusammenfassung wird geladen...", + "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", @@ -5422,14 +5422,14 @@ "appSettings": "Anwendungseinstellungen", "appSettingsDescription": "Globale Standardwerte für Registrierung, Sprache und Zeitzone neuer Konten.", "registrationEnabled": "Registrierung erlauben", - "registrationEnabledDescription": "Wenn deaktiviert, können sich keine neuen Benutzer registrieren.", + "registrationEnabledDescription": "Wenn deaktiviert, können sich keine neuen Nutzer registrieren.", "defaultLanguage": "Standard-Sprache", - "defaultLanguageDescription": "Wird für neue Benutzer und als Fallback verwendet.", + "defaultLanguageDescription": "Wird für neue Nutzer und als Fallback verwendet.", "defaultUserTimezone": "Standard-Zeitzone für neue Konten", - "defaultUserTimezoneDescription": "Wird für neue Konten ohne erkannte Browser-Zeitzone verwendet. Bestehende Benutzer sind nicht betroffen.", + "defaultUserTimezoneDescription": "Wird für neue Konten ohne erkannte Browser-Zeitzone verwendet. Bestehende Nutzer sind nicht betroffen.", "defaultUserTimezoneFallback": "Europe/Berlin (Standard)", "servicesGlobal": "Dienste (global)", - "servicesGlobalDescription": "Deaktivierte Dienste stehen keinem Benutzer zur Verfügung.", + "servicesGlobalDescription": "Deaktivierte Dienste stehen keinem Nutzer zur Verfügung.", "telegramGlobal": "Telegram-Benachrichtigungen erlauben.", "ntfyGlobal": "ntfy-Benachrichtigungen erlauben.", "webPushGlobal": "Browser-Push-Benachrichtigungen erlauben.", @@ -5553,7 +5553,7 @@ "revokedToast": "Einladung widerrufen.", "revokeError": "Einladung konnte nicht widerrufen werden." }, - "userManagement": "Benutzerverwaltung", + "userManagement": "Nutzerverwaltung", "userManagementDescription": "Konten verwalten: Rollen, Passwort-Resets und erzwungene Abmeldungen.", "userName": "Name", "userEmail": "E-Mail", @@ -5561,11 +5561,11 @@ "userPasskeys": "Passkeys", "userCreated": "Erstellt", "userActions": "Aktionen", - "editUser": "Benutzer bearbeiten", - "editUserTitle": "Benutzer bearbeiten: {name}", + "editUser": "Nutzer bearbeiten", + "editUserTitle": "Nutzer bearbeiten: {name}", "demoteToUser": "Zu User degradieren", "promoteToAdmin": "Zum Admin befördern", - "toUser": "Zum Benutzer", + "toUser": "Zum Nutzer", "toAdmin": "Zum Admin", "ownRoleUnchangeable": "Eigene Rolle nicht änderbar", "resetPassword": "Passwort zurücksetzen", @@ -5574,10 +5574,10 @@ "newPasswordPlaceholder": "Mindestens 12 Zeichen", "passwordReset": "Passwort wurde zurückgesetzt", "reset": "Zurücksetzen", - "loadingUsers": "Lade Benutzer...", + "loadingUsers": "Nutzer werden geladen…", "apiTokens": "API-Tokens", "apiTokensDescription": "Alle aktiven und widerrufenen API-Tokens über alle Konten hinweg.", - "tokenUser": "Benutzer", + "tokenUser": "Nutzer", "tokenName": "Name", "tokenPermissions": "Berechtigungen", "tokenPermissionAll": "Alle", @@ -5613,9 +5613,9 @@ "outcomeFailed": "Fehlgeschlagen", "auditDetails": "Details", "deleteAllData": "Alle Daten global löschen", - "deleteAllDescription": "Löscht alle Mess-, Medikamenten-, Integrations- und Protokoll-Daten aller Benutzer. Benutzerkonten bleiben bestehen.", + "deleteAllDescription": "Löscht alle Mess-, Medikamenten-, Integrations- und Protokoll-Daten aller Nutzer. Nutzerkonten bleiben bestehen.", "deleteAllConfirm": "Alle Daten wirklich löschen?", - "deleteAllConfirmDescription": "Dieser Vorgang löscht alle Messwerte, Medikamente, Einnahmen, API-Tokens, Withings-Verbindungen, offene Authentifizierungs-Challenges, Benachrichtigungskanäle (Telegram, ntfy, Web Push), Push-Abonnements und in der Warteschlange befindliche Telegram-Nachrichtenlöschungen aller Benutzer unwiderruflich. Benutzerkonten, das Audit-Log und eingereichtes Feedback bleiben erhalten, damit der Löschvorgang nachvollziehbar bleibt und Bug-Reports weiter triagierbar sind.", + "deleteAllConfirmDescription": "Dieser Vorgang löscht alle Messwerte, Medikamente, Einnahmen, API-Tokens, Withings-Verbindungen, offene Authentifizierungs-Challenges, Benachrichtigungskanäle (Telegram, ntfy, Web Push), Push-Abonnements und in der Warteschlange befindliche Telegram-Nachrichtenlöschungen aller Nutzer unwiderruflich. Nutzerkonten, das Audit-Log und eingereichtes Feedback bleiben erhalten, damit der Löschvorgang nachvollziehbar bleibt und Bug-Reports weiter triagierbar sind.", "deleteButton": "Alle Daten löschen", "deleteAllPromptLabel": "Tippe {token} zum Fortfahren", "finalDelete": "Endgültig löschen", @@ -5681,11 +5681,11 @@ "versionTileUpdateAvailable": "Update verfügbar: {tag}", "versionTileUpToDate": "Aktuell", "snapshotLoadError": "System-Snapshot konnte nicht geladen werden.", - "snapshotLoading": "Snapshot wird geladen...", + "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...", + "auditLoading": "Aktivitäten werden geladen…", "auditViewAll": "Alle anzeigen" }, "section": { @@ -5714,7 +5714,7 @@ "subtitle": "Schwellwerte für Medikamentenerinnerungen anpassen." }, "users": { - "title": "Benutzer", + "title": "Nutzer", "subtitle": "Konten, Rollen und aktive Sitzungen verwalten.", "filter": { "all": "Alle", @@ -5723,7 +5723,7 @@ }, "forceLogout": "Abmeldung erzwingen", "forceLogoutConfirmTitle": "{name} abmelden?", - "forceLogoutConfirmBody": "Alle aktiven Sitzungen dieses Benutzers werden widerrufen. Auf allen Geräten ist eine erneute Anmeldung erforderlich.", + "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", @@ -5744,7 +5744,7 @@ "subtitle": "Audit-Spur für Authentifizierungs- und Admin-Ereignisse." }, "auditLog": { - "filterActor": "Akteur (Benutzer-ID oder -Name)", + "filterActor": "Akteur (Nutzer-ID oder -Name)", "filterAction": "Aktion", "filterActionAll": "Alle Aktionen", "filterTarget": "Ziel (ID oder Pfad)", @@ -5792,7 +5792,7 @@ "runNow": "Jetzt sichern", "runEnqueued": "Backup-Job eingeplant", "runFailed": "Backup konnte nicht eingeplant werden", - "loading": "Backups werden geladen...", + "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.", @@ -5820,7 +5820,7 @@ "restoreDescription": "Dies ersetzt ALLE aktuellen Daten von {username} mit dem Snapshot von {when}. Vorhandene Messungen, Medikamente, Einnahmen, Stimmungseinträge, Benachrichtigungs-Kanäle, Push-Abos und Telegram-Lösch-Aufträge werden entfernt.", "restorePromptLabel": "Tippe RESTORE zum Fortfahren", "restoreConfirm": "Jetzt wiederherstellen", - "restoreInProgress": "Wiederherstellung läuft...", + "restoreInProgress": "Wiederherstellung läuft…", "restoreSuccess": "Wiederherstellung abgeschlossen", "restoreFailed": "Wiederherstellung fehlgeschlagen", "docsLink": "Dokumentation" @@ -5840,7 +5840,7 @@ "encryption": { "title": "Verschlüsselung", "subtitle": "Verschlüsselungsabdeckung und Schlüsselrotations-Status für ruhende Daten.", - "loading": "Verschlüsselungsstatus wird geladen...", + "loading": "Verschlüsselungsstatus wird geladen…", "loadError": "Verschlüsselungsstatus konnte nicht geladen werden.", "coverageTitle": "Abdeckung", "coverageDescription": "Wie viele verschlüsselte Zeilen unter welcher Schlüssel-ID liegen. Es werden nur Schlüssel-IDs und Anzahlen gezeigt — niemals Schlüsselmaterial.", @@ -7068,7 +7068,7 @@ "saveError": "Wert konnte nicht gespeichert werden", "biomarker": "Biomarker", "biomarkerPlaceholder": "Biomarker auswählen", - "defineNew": "+ Neuen Biomarker anlegen", + "defineNew": "+ Neuen Biomarker hinzufügen", "noBiomarkersHint": "Lege zuerst einen Biomarker an, um einen Wert zu erfassen.", "pickBiomarkerError": "Bitte zuerst einen Biomarker auswählen.", "resultType": "Ergebnistyp", @@ -7114,9 +7114,9 @@ "biomarker": { "manageTitle": "Biomarker", "managerDescription": "Marker einmal definieren — Einheit und Bereich gelten für jede Messung.", - "define": "Anlegen", - "defineFirst": "Ersten Biomarker anlegen", - "defineTitle": "Biomarker anlegen", + "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", @@ -7332,7 +7332,7 @@ }, "medications": { "label": "Medikamente", - "description": "Pläne, Einnahmen und Compliance." + "description": "Pläne, Einnahmen und Therapietreue." }, "illness": { "label": "Krankheitstagebuch", @@ -7893,7 +7893,7 @@ "review": { "title": "Erkannte Angaben prüfen", "confirm": "Bestätigte Angaben speichern", - "confirming": "Wird gespeichert …", + "confirming": "Wird gespeichert…", "needsReview": "Prüfung nötig", "approve": "Übernehmen", "reject": "Ablehnen", diff --git a/messages/en.json b/messages/en.json index b2da6e5f8..468dcbe75 100644 --- a/messages/en.json +++ b/messages/en.json @@ -8,7 +8,7 @@ "moreOptions": "More options", "create": "Create", "close": "Close", - "loading": "Loading...", + "loading": "Loading…", "loadFailed": "Could not load", "error": "Error", "saved": "Saved", @@ -306,7 +306,7 @@ "hero": { "scoreLabel": "Health Score", "scoreProvisional": "Not enough data yet", - "scoreComputing": "Calculating score …", + "scoreComputing": "Calculating score…", "doses": { "summary": "{taken} of {scheduled} doses taken", "nextAt": "Next at {time}", @@ -817,7 +817,7 @@ "importIntakes": "Import intakes", "importDescription": "Paste a JSON array with intake data. Expected format:", "importUploadFile": "Upload JSON file", - "importPaste": "Paste JSON here...", + "importPaste": "Paste JSON here…", "importSelected": "Selected: {name}", "importFileLoaded": "File \"{name}\" loaded", "importInvalidJson": "File does not contain valid JSON", @@ -1412,7 +1412,7 @@ } }, "verlauf": { - "loading": "Loading history …", + "loading": "Loading history…", "loadError": "Could not load the history.", "empty": "No intakes in this period yet.", "summaryEmpty": "No doses to score yet.", @@ -1682,7 +1682,7 @@ "zeitplan": { "title": "Schedule", "timesTitle": "Dose times", - "timesNote": "Adjust each dose's time and on-time window. The frequency (daily, weekly …) is edited in the editor under Advanced.", + "timesNote": "Adjust each dose's time and on-time window. The frequency (daily, weekly…) is edited in the editor under Advanced.", "scheduleLabel": "Schedule {index}", "fullEditNote": "Frequency, treatment class and course window are edited in the editor under Advanced → Lifecycle.", "graceEcho": "Reminder window: {minutes} minutes", @@ -2152,7 +2152,7 @@ "send": "Send", "stop": "Stop", "thinking": "Thinking…", - "composerPlaceholder": "Ask me anything …", + "composerPlaceholder": "Ask me anything…", "nudgeBubbleLabel": "New message from the Coach — open chat", "fabLabel": "Open the Coach", "readAloud": "Read aloud", @@ -2534,7 +2534,7 @@ "stimmungEmptyAction": "Open mood journal", "medikamenteDescription": "Per-medication adherence calendars and a written assessment.", "medikamenteEmptyTitle": "Add your first medication", - "medikamenteEmptyDescription": "Compliance insights need at least one tracked medication.", + "medikamenteEmptyDescription": "Adherence insights need at least one tracked medication.", "medikamenteEmptyAction": "Open medications", "bmiDescription": "BMI derived from your weight and height, with a written assessment.", "target": { @@ -3820,7 +3820,7 @@ }, "medications": { "title": "Medications & intakes", - "body": "Medications manages schedules, intakes, stock, and titration. Hidden: recurring plans (RRULE/rolling) and low-stock warnings. Your intake rate feeds the compliance pillar on the dashboard and the AI’s context." + "body": "Medications manages schedules, intakes, stock, and titration. Hidden: recurring plans (RRULE/rolling) and low-stock warnings. Your intake rate feeds the adherence pillar on the dashboard and the AI’s context." }, "labs": { "title": "Lab values", @@ -5355,7 +5355,7 @@ "measurementsCount": "Measurements", "activeTokens": "Active API Tokens", "activeSessions": "Active Sessions", - "loadingStatus": "Loading status...", + "loadingStatus": "Loading status…", "systemStatusLoadError": "Failed to load system status.", "systemStatusRetry": "Retry", "adminSettingsLoadError": "Failed to load admin settings. Toggles below may not reflect the live state — refresh the page.", @@ -5387,7 +5387,7 @@ }, "aiQuality": { "title": "Insights Quality", - "loading": "Loading feedback summary...", + "loading": "Loading feedback summary…", "loadError": "Failed to load Insights quality summary. Try refreshing the page.", "empty": "No feedback yet. The aggregator runs daily at 04:00 — once users start rating recommendations, helpful-rate bands appear here.", "windowLabel": "Last {days} days", @@ -5402,7 +5402,7 @@ }, "coachFeedback": { "title": "Coach Feedback", - "loading": "Loading Coach feedback summary...", + "loading": "Loading Coach feedback summary…", "loadError": "Failed to load Coach feedback summary. Try refreshing the page.", "empty": "No Coach feedback yet. The aggregator runs daily at 04:00 — once users rate Coach replies, helpful-rate bands appear here.", "windowLabel": "Last {days} days", @@ -5574,7 +5574,7 @@ "newPasswordPlaceholder": "At least 12 characters", "passwordReset": "Password has been reset", "reset": "Reset", - "loadingUsers": "Loading users...", + "loadingUsers": "Loading users…", "apiTokens": "API Tokens", "apiTokensDescription": "All active and revoked API tokens across all accounts.", "tokenUser": "User", @@ -5681,11 +5681,11 @@ "versionTileUpdateAvailable": "Update available: {tag}", "versionTileUpToDate": "Up to date", "snapshotLoadError": "Failed to load system snapshot.", - "snapshotLoading": "Loading snapshot...", + "snapshotLoading": "Loading snapshot…", "auditTitle": "Recent activity", "auditEmpty": "No recent audit entries.", "auditLoadError": "Failed to load recent activity.", - "auditLoading": "Loading activity...", + "auditLoading": "Loading activity…", "auditViewAll": "View all" }, "section": { @@ -5792,7 +5792,7 @@ "runNow": "Backup now", "runEnqueued": "Backup job enqueued", "runFailed": "Failed to enqueue backup", - "loading": "Loading backups...", + "loading": "Loading backups…", "loadError": "Failed to load backups.", "emptyTitle": "No backups yet", "emptyDescription": "Backups run automatically every Sunday at 03:00 — or trigger one now to create the first snapshot.", @@ -5820,7 +5820,7 @@ "restoreDescription": "This will replace ALL current data for {username} with the snapshot from {when}. Existing measurements, medications, intake events, mood entries, notification channels, push subscriptions and queued Telegram deletions will be deleted.", "restorePromptLabel": "Type RESTORE to continue", "restoreConfirm": "Restore now", - "restoreInProgress": "Restoring...", + "restoreInProgress": "Restoring…", "restoreSuccess": "Restore complete", "restoreFailed": "Restore failed", "docsLink": "Documentation" @@ -5840,7 +5840,7 @@ "encryption": { "title": "Encryption", "subtitle": "Encryption coverage and key-rotation status for data at rest.", - "loading": "Loading encryption status...", + "loading": "Loading encryption status…", "loadError": "Failed to load encryption status.", "coverageTitle": "Coverage", "coverageDescription": "How many encrypted rows sit under each key id. Only key ids and counts are shown — never key material.", @@ -7332,7 +7332,7 @@ }, "medications": { "label": "Medications", - "description": "Schedules, intakes, and compliance." + "description": "Schedules, intakes, and adherence." }, "illness": { "label": "Illness journal",