diff --git a/messages/de.json b/messages/de.json index 402eb5abf..2ca08a6d2 100644 --- a/messages/de.json +++ b/messages/de.json @@ -216,7 +216,7 @@ }, "welcomeBack": "{greeting}, willkommen zurück.", "welcomeBackWithName": "{greeting} {name}, willkommen zurück.", - "greetingSalutation": "Hi, {name}", + "greetingSalutation": "Hallo, {name}", "streakLabel": "Tage in Folge", "weight": "Gewicht", "bloodPressure": "Blutdruck", @@ -262,7 +262,7 @@ }, "measurements": { "title": "Messungen", - "subtitle": "Gewicht, Blutdruck, Puls & mehr", + "subtitle": "Gewicht, Blutdruck, Puls und mehr", "addMeasurement": "Hinzufügen", "editMeasurement": "Messwert bearbeiten", "type": "Typ", @@ -327,7 +327,7 @@ }, "mood": { "title": "Stimmung", - "subtitle": "Stimmungsverlauf & Einträge", + "subtitle": "Stimmungsverlauf und Einträge", "addEntry": "Hinzufügen", "editEntry": "Eintrag bearbeiten", "moodLevel": "Stimmung", @@ -744,7 +744,7 @@ "confidenceMittel": "Mittel", "confidenceGering": "Gering", "loadError": "Auswertungen konnten nicht geladen werden", - "generationFailed": "Die Analyse konnte nicht erstellt werden. Bitte erneut versuchen.", + "generationFailed": "Die Analyse konnte nicht erstellt werden. Bitte versuche es erneut.", "title": "Insights", "subtitle": "KI-basierte Analyse deiner Gesundheitsdaten", "overviewSubtitle": "Trends, Risiken, Fortschritt auf einen Blick", @@ -1071,10 +1071,10 @@ "targetSys": "Systolisch (mmHg)", "targetDia": "Diastolisch (mmHg)", "targetWeight": "Zielgewicht (kg)", - "errorProfile": "Dein Profil konnte nicht gespeichert werden. Bitte erneut versuchen.", - "errorMedication": "Das Medikament „{name}\" konnte nicht angelegt werden. Bitte erneut versuchen oder später unter „Medikamente\" hinzufügen.", - "errorTargets": "Deine Zielwerte konnten nicht gespeichert werden. Bitte erneut versuchen.", - "errorGeneric": "Beim Abschluss des Setups ist etwas schiefgelaufen. Bitte erneut versuchen.", + "errorProfile": "Dein Profil konnte nicht gespeichert werden. Bitte versuche es erneut.", + "errorMedication": "Das Medikament „{name}\" konnte nicht angelegt werden. Bitte versuche es erneut oder lege es später unter „Medikamente\" an.", + "errorTargets": "Deine Zielwerte konnten nicht gespeichert werden. Bitte versuche es erneut.", + "errorGeneric": "Beim Abschluss des Setups ist etwas schiefgelaufen. Bitte versuche es erneut.", "medScheduleHint": "Wir legen ein Standard-Erinnerungsfenster an (08:00–09:00 täglich). Du kannst es jederzeit unter „Medikamente\" anpassen.", "v2": { "title": "Willkommen bei HealthLog", @@ -1306,7 +1306,7 @@ "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 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.", @@ -1810,6 +1810,7 @@ "bugReportNotConfigured": "Bugreport ist noch nicht vollständig konfiguriert.", "bugReportSave": "Bugreport speichern", "userManagement": "Benutzerverwaltung", + "userName": "Name", "userEmail": "E-Mail", "userRole": "Rolle", "userPasskeys": "Passkeys", @@ -1885,7 +1886,7 @@ "reminderMissedMinutesDescription": "Minuten nach Fenster-Ende bis die Einnahme als verpasst gilt.", "reminderThresholdsSave": "Schwellenwerte speichern", "notificationTest": "Benachrichtigungen testen", - "notificationTestSend": "Test-Notification senden", + "notificationTestSend": "Test senden", "notificationTestSuccess": "Test-Notification wurde gesendet", "notificationTestFailed": "Test-Notification konnte nicht gesendet werden", "reminderCheckRun": "Reminder-Check ausführen", @@ -2045,7 +2046,7 @@ "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 LOKI_ENDPOINT konfiguriert ist. Der Puffer ist flüchtig und auf 500 Einträge begrenzt.", + "processNote": "Es werden nur App-Prozess-Logs angezeigt — Worker-Logs landen in Loki, sofern die Integration konfiguriert ist. Der Puffer ist flüchtig und auf 500 Einträge begrenzt.", "filterTraceId": "Trace-ID", "filterAction": "Aktion enthält…", "filterLevel": "Level", @@ -2433,6 +2434,7 @@ }, "notifications": { "title": "Benachrichtigungen", + "eventColumn": "Ereignis", "subtitle": "Wähle aus, welche Benachrichtigungen du über welchen Kanal erhalten möchtest.", "noChannels": "Konfiguriere zuerst einen Benachrichtigungskanal in den Einstellungen.", "goToSettings": "Zu den Einstellungen", diff --git a/messages/en.json b/messages/en.json index 95e328a92..635d9b946 100644 --- a/messages/en.json +++ b/messages/en.json @@ -262,7 +262,7 @@ }, "measurements": { "title": "Measurements", - "subtitle": "Weight, blood pressure, pulse & more", + "subtitle": "Weight, blood pressure, pulse and more", "addMeasurement": "Add", "editMeasurement": "Edit measurement", "type": "Type", @@ -327,7 +327,7 @@ }, "mood": { "title": "Mood", - "subtitle": "Mood tracker & entries", + "subtitle": "Mood tracker and entries", "addEntry": "Add", "editEntry": "Edit entry", "moodLevel": "Mood", @@ -1810,6 +1810,7 @@ "bugReportNotConfigured": "Bug report is not fully configured yet.", "bugReportSave": "Save bug report settings", "userManagement": "User Management", + "userName": "Name", "userEmail": "Email", "userRole": "Role", "userPasskeys": "Passkeys", @@ -1885,7 +1886,7 @@ "reminderMissedMinutesDescription": "Minutes after window end until the intake is considered missed.", "reminderThresholdsSave": "Save thresholds", "notificationTest": "Test Notifications", - "notificationTestSend": "Send test notification", + "notificationTestSend": "Send test", "notificationTestSuccess": "Test notification sent", "notificationTestFailed": "Failed to send test notification", "reminderCheckRun": "Run reminder check", @@ -2045,7 +2046,7 @@ "app-logs": { "title": "App Logs", "subtitle": "Tail the most recent structured wide-events emitted by this process.", - "processNote": "Showing app-process logs only — worker-process logs go to Loki when LOKI_ENDPOINT is configured. Buffer is volatile and capped at 500 entries.", + "processNote": "Showing app-process logs only — worker-process logs go to Loki when that integration is configured. Buffer is volatile and capped at 500 entries.", "filterTraceId": "Trace ID", "filterAction": "Action contains…", "filterLevel": "Level", @@ -2433,6 +2434,7 @@ }, "notifications": { "title": "Notifications", + "eventColumn": "Event", "subtitle": "Choose which notifications you want to receive through which channel.", "noChannels": "Configure a notification channel in Settings first.", "goToSettings": "Go to Settings", diff --git a/src/app/notifications/page.tsx b/src/app/notifications/page.tsx index fd83f6cbd..dfbdcfed7 100644 --- a/src/app/notifications/page.tsx +++ b/src/app/notifications/page.tsx @@ -191,7 +191,7 @@ export default function NotificationsPage() { - {t("notifications.title")} + {t("notifications.eventColumn")} {activeChannels.map((ch) => (
- + {/* v1.4.22 D / F-58 — icon swap so the section header matches + the admin-shell nav tile (Bell). Clock now lives on the + timing chips inline instead of competing as the page icon. */} +
{t("admin.medicationReminders")}
diff --git a/src/components/admin/user-management-section.tsx b/src/components/admin/user-management-section.tsx index d2903ec08..7ca2953ac 100644 --- a/src/components/admin/user-management-section.tsx +++ b/src/components/admin/user-management-section.tsx @@ -311,7 +311,7 @@ export function UserManagementSection() { - {t("admin.users")} + {t("admin.userName")} {t("admin.userEmail")} diff --git a/src/components/settings/dashboard-layout-section.tsx b/src/components/settings/dashboard-layout-section.tsx index 92676a60d..260602a6d 100644 --- a/src/components/settings/dashboard-layout-section.tsx +++ b/src/components/settings/dashboard-layout-section.tsx @@ -181,9 +181,17 @@ export function DashboardLayoutSection({ id }: { id: string }) { {t("dashboard.layoutReset")}
-

- {t("dashboard.customizeSubtitle")} -

+ {/* + v1.4.22 D / F-32 — the surrounding `` page + already renders a `settings.sections.dashboard.description` + paragraph beneath the H1. The previous in-card help line + repeated the same idea ("Choose which cards appear … + Defaults work out of the box.") right next to the comparison + picker, giving the page three muted-foreground help blocks + stacked on top of each other. Removing this duplicate keeps + the comparison picker as the only thing between the header + and the widget table. + */} {/* v1.4.16 phase B8 — comparison baseline picker. Lives at the top of the section because it changes how every chart + tile below diff --git a/src/components/settings/integrations-section.tsx b/src/components/settings/integrations-section.tsx index 0192872bc..fd32aced0 100644 --- a/src/components/settings/integrations-section.tsx +++ b/src/components/settings/integrations-section.tsx @@ -721,7 +721,10 @@ function MoodLogCard({ setMsgType("success"); }} > - {t("common.copied").replace("!", "")} + {/* v1.4.22 D / D-DSGN-M-04 — use the proper + common.copy key instead of stripping the + exclamation off common.copied. */} + {t("common.copy")}