diff --git a/messages/en.json b/messages/en.json index 4e8e9c6f5..f8cfcef9f 100644 --- a/messages/en.json +++ b/messages/en.json @@ -238,7 +238,7 @@ }, "cycle": "Cycle", "labs": "Labs", - "vorsorge": "Preventive Care", + "vorsorge": "Checkups", "illness": "Illness" }, "auth": { @@ -3677,8 +3677,8 @@ "body": "The illness journal records acute episodes and chronic diagnoses with their flares. Hidden: correlate an episode with your readings, and Rest Mode that pauses reminders. That’s how the Coach understands why values drift for a while." }, "vorsorge": { - "title": "Preventive care", - "body": "Preventive care reminds you of check-ups and vaccinations on their own interval. Tip: “Done” can create a reading or a lab result directly. Due items appear as reminders and in the doctor report." + "title": "Checkups", + "body": "Checkups remind you of screenings and vaccinations on their own interval. Tip: “Done” can create a reading or a lab result directly. Due items appear as reminders and in the doctor report." }, "cycle": { "title": "Cycle", @@ -3702,7 +3702,7 @@ }, "export": { "title": "Doctor report", - "body": "The doctor report bundles readings, medications, lab values, and preventive care as PDF or FHIR for the appointment. This is where every module converges — a complete report only comes from well-kept data." + "body": "The doctor report bundles readings, medications, lab values, and checkups as PDF or FHIR for the appointment. This is where every module converges — a complete report only comes from well-kept data." }, "achievements": { "title": "Achievements", @@ -4132,8 +4132,8 @@ "subtitle": "Manage the view and order of episodes." }, "vorsorge": { - "title": "Preventive care", - "description": "View, order, and individual preventive-care reminders.", + "title": "Checkups", + "description": "View, order, and individual checkup reminders.", "subtitle": "Manage the view, order, and individual reminders." }, "modules": { @@ -6483,13 +6483,13 @@ "selectionBarLabel": "Selection actions" }, "measurementReminders": { - "sectionTitle": "Preventive care", + "sectionTitle": "Checkups", "sectionDescription": "Reminders for what to measure or check, when, and where.", "addButton": "Add reminder", "markDone": "Done", "delete": "Delete", "deleteConfirmTitle": "Delete reminder?", - "deleteConfirmDescription": "This preventive-care reminder will be permanently deleted.", + "deleteConfirmDescription": "This checkup reminder will be permanently deleted.", "disabledBadge": "Off", "nextDue": { "none": "Not scheduled", @@ -6551,7 +6551,7 @@ "rruleHint": "RFC-5545, e.g. FREQ=YEARLY for an annual check.", "firstDue": "First due (optional)" }, - "pushTitle": "Preventive-care reminder", + "pushTitle": "Checkup reminder", "pushBody": "Time for: {label}", "pushLocation": "(at {location})", "edit": "Edit", @@ -6562,7 +6562,7 @@ "measureNow": "Measure now", "nextDueLabel": "Next due:", "lastDoneLabel": "Last done:", - "customize": "Customize preventive care", + "customize": "Customize checkups", "adherence": { "label": "Within interval", "onTrack": "On track", @@ -6578,8 +6578,8 @@ "empty": "No reminders to customize yet." }, "dashboard": { - "empty": "No upcoming preventive-care reminders.", - "openLink": "Open preventive care" + "empty": "No upcoming checkup reminders.", + "openLink": "Open checkups" }, "showMeasurements": "Show measurements" }, diff --git a/messages/es.json b/messages/es.json index fe481268d..3a14f746a 100644 --- a/messages/es.json +++ b/messages/es.json @@ -238,7 +238,7 @@ }, "cycle": "Ciclo", "labs": "Análisis", - "vorsorge": "Prevención", + "vorsorge": "Revisiones", "illness": "Enfermedad" }, "auth": { @@ -3677,8 +3677,8 @@ "body": "El diario de enfermedades registra episodios agudos y diagnósticos crónicos con sus brotes. Oculto: correlacionar un episodio con tus mediciones y el Modo descanso que pausa los recordatorios. Así el Coach entiende por qué los valores varían un tiempo." }, "vorsorge": { - "title": "Prevención", - "body": "Prevención te recuerda revisiones y vacunas con su propio intervalo. Consejo: «Hecho» puede crear directamente una medición o un resultado de laboratorio. Lo pendiente aparece como recordatorio y en el informe médico." + "title": "Revisiones", + "body": "Las revisiones te recuerdan controles y vacunas con su propio intervalo. Consejo: «Hecho» puede crear directamente una medición o un resultado de laboratorio. Lo pendiente aparece como recordatorio y en el informe médico." }, "cycle": { "title": "Ciclo", @@ -3702,7 +3702,7 @@ }, "export": { "title": "Informe médico", - "body": "El informe médico reúne mediciones, medicación, valores de laboratorio y prevención en PDF o FHIR para la cita. Aquí convergen todos los módulos: un informe completo solo sale de datos bien cuidados." + "body": "El informe médico reúne mediciones, medicación, valores de laboratorio y revisiones en PDF o FHIR para la cita. Aquí convergen todos los módulos: un informe completo solo sale de datos bien cuidados." }, "achievements": { "title": "Logros", @@ -4132,8 +4132,8 @@ "subtitle": "Gestiona la vista y el orden de los episodios." }, "vorsorge": { - "title": "Prevención", - "description": "Vista, orden y recordatorios de prevención individuales.", + "title": "Revisiones", + "description": "Vista, orden y recordatorios de revisión individuales.", "subtitle": "Gestiona la vista, el orden y los recordatorios individuales." }, "modules": { @@ -6483,13 +6483,13 @@ "selectionBarLabel": "Acciones de selección" }, "measurementReminders": { - "sectionTitle": "Prevención", + "sectionTitle": "Revisiones", "sectionDescription": "Recordatorios de qué medir o revisar, cuándo y dónde.", "addButton": "Añadir recordatorio", "markDone": "Hecho", "delete": "Eliminar", "deleteConfirmTitle": "¿Eliminar recordatorio?", - "deleteConfirmDescription": "Este recordatorio de prevención se eliminará de forma permanente.", + "deleteConfirmDescription": "Este recordatorio de revisión se eliminará de forma permanente.", "disabledBadge": "Apagado", "nextDue": { "none": "Sin programar", @@ -6551,7 +6551,7 @@ "rruleHint": "RFC-5545, p. ej. FREQ=YEARLY para una revisión anual.", "firstDue": "Primer vencimiento (opcional)" }, - "pushTitle": "Recordatorio de prevención", + "pushTitle": "Recordatorio de revisión", "pushBody": "Toca: {label}", "pushLocation": "(en {location})", "edit": "Editar", @@ -6562,7 +6562,7 @@ "measureNow": "Medir ahora", "nextDueLabel": "Próximo vencimiento:", "lastDoneLabel": "Última vez:", - "customize": "Personalizar prevención", + "customize": "Personalizar revisiones", "adherence": { "label": "Dentro del intervalo", "onTrack": "Al día", @@ -6578,8 +6578,8 @@ "empty": "Aún no hay recordatorios para personalizar." }, "dashboard": { - "empty": "No hay recordatorios de prevención próximos.", - "openLink": "Abrir prevención" + "empty": "No hay revisiones próximas.", + "openLink": "Abrir revisiones" }, "showMeasurements": "Ver mediciones" }, diff --git a/messages/fr.json b/messages/fr.json index 11ab9eee5..fd8340c16 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -238,7 +238,7 @@ }, "cycle": "Cycle", "labs": "Analyses", - "vorsorge": "Prévention", + "vorsorge": "Examens", "illness": "Maladie" }, "auth": { @@ -3677,8 +3677,8 @@ "body": "Le journal des maladies consigne les épisodes aigus et les diagnostics chroniques avec leurs poussées. Caché : corréler un épisode à vos mesures et le Mode repos qui suspend les rappels. Le Coach comprend ainsi pourquoi les valeurs dérivent un temps." }, "vorsorge": { - "title": "Prévention", - "body": "Prévention vous rappelle examens et vaccins selon leur propre intervalle. Astuce : « Fait » peut créer directement une mesure ou un résultat de laboratoire. Les échéances apparaissent en rappels et dans le rapport médical." + "title": "Examens", + "body": "Les examens vous rappellent dépistages et vaccins selon leur propre intervalle. Astuce : « Fait » peut créer directement une mesure ou un résultat de laboratoire. Les échéances apparaissent en rappels et dans le rapport médical." }, "cycle": { "title": "Cycle", @@ -3702,7 +3702,7 @@ }, "export": { "title": "Rapport médical", - "body": "Le rapport médical regroupe mesures, médicaments, valeurs de laboratoire et prévention en PDF ou FHIR pour le rendez-vous. Tous les modules convergent ici — un rapport complet ne vient que de données bien tenues." + "body": "Le rapport médical regroupe mesures, médicaments, valeurs de laboratoire et examens en PDF ou FHIR pour le rendez-vous. Tous les modules convergent ici — un rapport complet ne vient que de données bien tenues." }, "achievements": { "title": "Réussites", @@ -4132,8 +4132,8 @@ "subtitle": "Gérez l’affichage et l’ordre des épisodes." }, "vorsorge": { - "title": "Prévention", - "description": "Affichage, ordre et rappels de prévention individuels.", + "title": "Examens", + "description": "Affichage, ordre et rappels d’examen individuels.", "subtitle": "Gérez l’affichage, l’ordre et les rappels individuels." }, "modules": { @@ -6483,13 +6483,13 @@ "selectionBarLabel": "Actions de sélection" }, "measurementReminders": { - "sectionTitle": "Prévention", + "sectionTitle": "Examens", "sectionDescription": "Rappels de ce qu'il faut mesurer ou vérifier, quand et où.", "addButton": "Ajouter un rappel", "markDone": "Terminé", "delete": "Supprimer", "deleteConfirmTitle": "Supprimer le rappel ?", - "deleteConfirmDescription": "Ce rappel de prévention sera définitivement supprimé.", + "deleteConfirmDescription": "Ce rappel d’examen sera définitivement supprimé.", "disabledBadge": "Désactivé", "nextDue": { "none": "Non planifié", @@ -6551,7 +6551,7 @@ "rruleHint": "RFC-5545, p. ex. FREQ=YEARLY pour un contrôle annuel.", "firstDue": "Première échéance (facultatif)" }, - "pushTitle": "Rappel de prévention", + "pushTitle": "Rappel d’examen", "pushBody": "C'est l'heure : {label}", "pushLocation": "(chez {location})", "edit": "Modifier", @@ -6562,7 +6562,7 @@ "measureNow": "Mesurer maintenant", "nextDueLabel": "Prochaine échéance :", "lastDoneLabel": "Dernière fois :", - "customize": "Personnaliser la prévention", + "customize": "Personnaliser les examens", "adherence": { "label": "Dans l'intervalle", "onTrack": "Dans les temps", @@ -6578,8 +6578,8 @@ "empty": "Aucun rappel à personnaliser pour l'instant." }, "dashboard": { - "empty": "Aucun rappel de prévention à venir.", - "openLink": "Ouvrir la prévention" + "empty": "Aucun rappel d’examen à venir.", + "openLink": "Ouvrir les examens" }, "showMeasurements": "Afficher les mesures" }, diff --git a/messages/it.json b/messages/it.json index b3f1f0c92..8a81972dd 100644 --- a/messages/it.json +++ b/messages/it.json @@ -238,7 +238,7 @@ }, "cycle": "Ciclo", "labs": "Esami", - "vorsorge": "Prevenzione", + "vorsorge": "Controlli", "illness": "Malattia" }, "auth": { @@ -3677,8 +3677,8 @@ "body": "Il diario delle malattie registra episodi acuti e diagnosi croniche con le loro riacutizzazioni. Nascosto: correlare un episodio alle tue misurazioni e la Modalità riposo che mette in pausa i promemoria. Così il Coach capisce perché i valori variano per un periodo." }, "vorsorge": { - "title": "Prevenzione", - "body": "Prevenzione ti ricorda controlli e vaccinazioni con un proprio intervallo. Suggerimento: «Fatto» può creare direttamente una misurazione o un risultato di laboratorio. Le scadenze compaiono come promemoria e nel referto medico." + "title": "Controlli", + "body": "I controlli ti ricordano screening e vaccinazioni con un proprio intervallo. Suggerimento: «Fatto» può creare direttamente una misurazione o un risultato di laboratorio. Le scadenze compaiono come promemoria e nel referto medico." }, "cycle": { "title": "Ciclo", @@ -3702,7 +3702,7 @@ }, "export": { "title": "Referto medico", - "body": "Il referto medico raccoglie misurazioni, farmaci, valori di laboratorio e prevenzione in PDF o FHIR per la visita. Qui convergono tutti i moduli: un referto completo nasce solo da dati ben curati." + "body": "Il referto medico raccoglie misurazioni, farmaci, valori di laboratorio e controlli in PDF o FHIR per la visita. Qui convergono tutti i moduli: un referto completo nasce solo da dati ben curati." }, "achievements": { "title": "Traguardi", @@ -4132,8 +4132,8 @@ "subtitle": "Gestisci la vista e l’ordine degli episodi." }, "vorsorge": { - "title": "Prevenzione", - "description": "Vista, ordine e singoli promemoria di prevenzione.", + "title": "Controlli", + "description": "Vista, ordine e singoli promemoria di controllo.", "subtitle": "Gestisci la vista, l’ordine e i singoli promemoria." }, "modules": { @@ -6483,13 +6483,13 @@ "selectionBarLabel": "Azioni di selezione" }, "measurementReminders": { - "sectionTitle": "Prevenzione", + "sectionTitle": "Controlli", "sectionDescription": "Promemoria su cosa misurare o controllare, quando e dove.", "addButton": "Aggiungi promemoria", "markDone": "Fatto", "delete": "Elimina", "deleteConfirmTitle": "Eliminare il promemoria?", - "deleteConfirmDescription": "Questo promemoria di prevenzione verrà eliminato definitivamente.", + "deleteConfirmDescription": "Questo promemoria di controllo verrà eliminato definitivamente.", "disabledBadge": "Disattivato", "nextDue": { "none": "Non pianificato", @@ -6551,7 +6551,7 @@ "rruleHint": "RFC-5545, es. FREQ=YEARLY per un controllo annuale.", "firstDue": "Prima scadenza (facoltativo)" }, - "pushTitle": "Promemoria di prevenzione", + "pushTitle": "Promemoria di controllo", "pushBody": "È ora di: {label}", "pushLocation": "(presso {location})", "edit": "Modifica", @@ -6562,7 +6562,7 @@ "measureNow": "Misura ora", "nextDueLabel": "Prossima scadenza:", "lastDoneLabel": "Ultima volta:", - "customize": "Personalizza prevenzione", + "customize": "Personalizza controlli", "adherence": { "label": "Nell'intervallo", "onTrack": "In linea", @@ -6578,8 +6578,8 @@ "empty": "Nessun promemoria da personalizzare." }, "dashboard": { - "empty": "Nessun promemoria di prevenzione in arrivo.", - "openLink": "Apri prevenzione" + "empty": "Nessun promemoria di controllo in arrivo.", + "openLink": "Apri controlli" }, "showMeasurements": "Mostra le misurazioni" }, diff --git a/messages/pl.json b/messages/pl.json index d227d654f..8535f958a 100644 --- a/messages/pl.json +++ b/messages/pl.json @@ -238,7 +238,7 @@ }, "cycle": "Cykl", "labs": "Wyniki badań", - "vorsorge": "Profilaktyka", + "vorsorge": "Badania", "illness": "Choroba" }, "auth": { @@ -3677,8 +3677,8 @@ "body": "Dziennik chorób zapisuje ostre epizody i przewlekłe diagnozy wraz z zaostrzeniami. Ukryte: korelacja epizodu z pomiarami oraz Tryb odpoczynku wstrzymujący przypomnienia. Dzięki temu Coach rozumie, czemu wartości przez chwilę odbiegają." }, "vorsorge": { - "title": "Profilaktyka", - "body": "Profilaktyka przypomina o badaniach i szczepieniach z własnym interwałem. Wskazówka: „Wykonane” może od razu utworzyć pomiar lub wynik laboratoryjny. Terminy pojawiają się jako przypomnienia i w raporcie dla lekarza." + "title": "Badania", + "body": "Badania przypominają o przeglądach i szczepieniach z własnym interwałem. Wskazówka: „Wykonane” może od razu utworzyć pomiar lub wynik laboratoryjny. Terminy pojawiają się jako przypomnienia i w raporcie dla lekarza." }, "cycle": { "title": "Cykl", @@ -3702,7 +3702,7 @@ }, "export": { "title": "Raport dla lekarza", - "body": "Raport dla lekarza łączy pomiary, leki, wyniki laboratoryjne i profilaktykę w PDF lub FHIR na wizytę. Tu zbiegają się wszystkie moduły — pełny raport powstaje tylko z zadbanych danych." + "body": "Raport dla lekarza łączy pomiary, leki, wyniki laboratoryjne i badania w PDF lub FHIR na wizytę. Tu zbiegają się wszystkie moduły — pełny raport powstaje tylko z zadbanych danych." }, "achievements": { "title": "Osiągnięcia", @@ -4132,8 +4132,8 @@ "subtitle": "Zarządzaj widokiem i kolejnością epizodów." }, "vorsorge": { - "title": "Profilaktyka", - "description": "Widok, kolejność i poszczególne przypomnienia profilaktyczne.", + "title": "Badania", + "description": "Widok, kolejność i poszczególne przypomnienia o badaniach.", "subtitle": "Zarządzaj widokiem, kolejnością i poszczególnymi przypomnieniami." }, "modules": { @@ -6483,13 +6483,13 @@ "selectionBarLabel": "Akcje zaznaczenia" }, "measurementReminders": { - "sectionTitle": "Profilaktyka", + "sectionTitle": "Badania", "sectionDescription": "Przypomnienia, co, kiedy i gdzie zmierzyć lub sprawdzić.", "addButton": "Dodaj przypomnienie", "markDone": "Gotowe", "delete": "Usuń", "deleteConfirmTitle": "Usunąć przypomnienie?", - "deleteConfirmDescription": "To przypomnienie profilaktyczne zostanie trwale usunięte.", + "deleteConfirmDescription": "To przypomnienie o badaniu zostanie trwale usunięte.", "disabledBadge": "Wył.", "nextDue": { "none": "Niezaplanowane", @@ -6551,7 +6551,7 @@ "rruleHint": "RFC-5545, np. FREQ=YEARLY dla corocznego badania.", "firstDue": "Pierwszy termin (opcjonalnie)" }, - "pushTitle": "Przypomnienie profilaktyczne", + "pushTitle": "Przypomnienie o badaniu", "pushBody": "Czas na: {label}", "pushLocation": "(u {location})", "edit": "Edytuj", @@ -6562,7 +6562,7 @@ "measureNow": "Zmierz teraz", "nextDueLabel": "Następny termin:", "lastDoneLabel": "Ostatnio wykonano:", - "customize": "Dostosuj profilaktykę", + "customize": "Dostosuj badania", "adherence": { "label": "W interwale", "onTrack": "Zgodnie z planem", @@ -6578,8 +6578,8 @@ "empty": "Brak przypomnień do dostosowania." }, "dashboard": { - "empty": "Brak nadchodzących przypomnień profilaktycznych.", - "openLink": "Otwórz profilaktykę" + "empty": "Brak nadchodzących przypomnień o badaniach.", + "openLink": "Otwórz badania" }, "showMeasurements": "Pokaż pomiary" }, diff --git a/next.config.ts b/next.config.ts index 8b38781dc..2c6e0c4ed 100644 --- a/next.config.ts +++ b/next.config.ts @@ -134,6 +134,21 @@ const nextConfig: NextConfig = { destination: "/settings/notifications", permanent: true, }, + // v1.22.0 — the preventive-care surface moved from the German slug + // `/vorsorge` to the English `/checkups` (the feature reads "Checkups" + // in every non-German locale now). 301-redirect so bookmarks, the PWA's + // cached navigation, and any push deep-link keep resolving. The + // persisted internal id stays `vorsorge`; only the URL changes. + { + source: "/vorsorge", + destination: "/checkups", + permanent: true, + }, + { + source: "/vorsorge/:path*", + destination: "/checkups/:path*", + permanent: true, + }, ]; }, async headers() { diff --git a/src/app/vorsorge/page.tsx b/src/app/checkups/page.tsx similarity index 93% rename from src/app/vorsorge/page.tsx rename to src/app/checkups/page.tsx index 126f17539..162843a3c 100644 --- a/src/app/vorsorge/page.tsx +++ b/src/app/checkups/page.tsx @@ -12,7 +12,7 @@ import { VorsorgeSection } from "@/components/measurement-reminders/vorsorge-sec import { queryKeys } from "@/lib/query-keys"; /** - * v1.17.1 — Vorsorge (preventive-care) reminders page. The dedicated + * v1.17.1 — Checkups (preventive-care) reminders page. The dedicated * feature surface for "wann muss ich was wo machen". Auth-gated; the * section component owns the list + create flow. * @@ -20,7 +20,7 @@ import { queryKeys } from "@/lib/query-keys"; * measurements): a pull invalidates the measurement-reminders read so the * list + server-computed next-due repaint. */ -export default function VorsorgePage() { +export default function CheckupsPage() { const { isAuthenticated, isLoading } = useAuth(); const mounted = useMounted(); const queryClient = useQueryClient(); diff --git a/src/components/layout/__tests__/nav-model.test.ts b/src/components/layout/__tests__/nav-model.test.ts index 89c8c6c7b..880650980 100644 --- a/src/components/layout/__tests__/nav-model.test.ts +++ b/src/components/layout/__tests__/nav-model.test.ts @@ -45,17 +45,17 @@ describe("nav-model destination list", () => { } }); - it("gives Vorsorge a top-level nav home in the clinical spine (N-3)", () => { + it("gives Checkups a top-level nav home in the clinical spine (N-3)", () => { const hrefs = NAV_DESTINATIONS.map((d) => d.href); - expect(hrefs).toContain("/vorsorge"); - const vorsorge = NAV_DESTINATIONS.find((d) => d.href === "/vorsorge"); + expect(hrefs).toContain("/checkups"); + const vorsorge = NAV_DESTINATIONS.find((d) => d.href === "/checkups"); expect(vorsorge?.tKey).toBe("nav.vorsorge"); - // v1.19.1 (S4) — the fixed spine is Medications → Vorsorge → Labs → - // Illness → Insights, so Vorsorge sits after Medications and before Labs. + // v1.19.1 (S4) — the fixed spine is Medications → Checkups → Labs → + // Illness → Insights, so Checkups sits after Medications and before Labs. expect(hrefs.indexOf("/medications")).toBeLessThan( - hrefs.indexOf("/vorsorge"), + hrefs.indexOf("/checkups"), ); - expect(hrefs.indexOf("/vorsorge")).toBeLessThan(hrefs.indexOf("/labs")); + expect(hrefs.indexOf("/checkups")).toBeLessThan(hrefs.indexOf("/labs")); expect(hrefs.indexOf("/labs")).toBeLessThan(hrefs.indexOf("/insights")); }); @@ -170,7 +170,7 @@ describe("visibleNavDestinations module gate", () => { expect(emptyMap).toContain("/measurements"); expect(emptyMap).toContain("/medications"); expect(emptyMap).toContain("/insights"); - expect(emptyMap).toContain("/vorsorge"); + expect(emptyMap).toContain("/checkups"); }); }); @@ -210,7 +210,7 @@ describe("mobileMoreHubDestinations — the F-1 mobile invariant (N-2)", () => { // Feature surfaces that left the always-visible strip stay reachable. expect(hub).toContain("/measurements"); expect(hub).toContain("/mood"); - expect(hub).toContain("/vorsorge"); + expect(hub).toContain("/checkups"); // The shared utility tail rides at the end. expect(hub).toContain("/bugreport"); expect(hub).toContain("/settings/account"); diff --git a/src/components/layout/__tests__/sidebar-nav.test.tsx b/src/components/layout/__tests__/sidebar-nav.test.tsx index 049694844..c5a0d91df 100644 --- a/src/components/layout/__tests__/sidebar-nav.test.tsx +++ b/src/components/layout/__tests__/sidebar-nav.test.tsx @@ -142,7 +142,7 @@ describe(" module gating (v1.18.0)", () => { expect(html).toContain('href="/measurements"'); expect(html).toContain('href="/medications"'); expect(html).toContain('href="/insights"'); - expect(html).toContain('href="/vorsorge"'); + expect(html).toContain('href="/checkups"'); }); it("renders a module's nav entry when its module is enabled", () => { diff --git a/src/components/layout/nav-model.ts b/src/components/layout/nav-model.ts index c0c94a18d..cd260adf1 100644 --- a/src/components/layout/nav-model.ts +++ b/src/components/layout/nav-model.ts @@ -104,7 +104,7 @@ export const NAV_DESTINATIONS: ReadonlyArray = [ // render — not buried three taps deep under Settings → Reminders. The // Reminders hub still links to it; this is the direct front door. { - href: "/vorsorge", + href: "/checkups", tKey: "nav.vorsorge", icon: Stethoscope, tourId: "nav-vorsorge", diff --git a/src/components/measurement-reminders/vorsorge-dashboard-card.tsx b/src/components/measurement-reminders/vorsorge-dashboard-card.tsx index 84d69dd7f..c27186808 100644 --- a/src/components/measurement-reminders/vorsorge-dashboard-card.tsx +++ b/src/components/measurement-reminders/vorsorge-dashboard-card.tsx @@ -5,7 +5,7 @@ * * A compact chart-row card listing the next few due reminders with an * inline primary action per row — the same done-vs-capture branch the - * dedicated `/vorsorge` page surfaces, scaled down for the dashboard. + * dedicated `/checkups` page surfaces, scaled down for the dashboard. * A free-text / self-planned exam marks done silently; a measurement- * linked reminder opens the real measurement-entry form and satisfies * the reminder in the same action. @@ -109,7 +109,7 @@ export function VorsorgeDashboardCard() { {t("measurementReminders.dashboard.empty")}

diff --git a/src/lib/onboarding/tour-state.ts b/src/lib/onboarding/tour-state.ts index 6106f2b67..2e2fd3a48 100644 --- a/src/lib/onboarding/tour-state.ts +++ b/src/lib/onboarding/tour-state.ts @@ -137,7 +137,7 @@ const ALL_STOPS: readonly TourStop[] = [ id: "vorsorge", targetId: "vorsorge-hero", placement: "bottom", - route: "/vorsorge", + route: "/checkups", titleKey: "onboarding.tour.steps.vorsorge.title", bodyKey: "onboarding.tour.steps.vorsorge.body", },