mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-11 22:02:16 +00:00
chore(meds): correct kebab comment + drop orphaned scheduling i18n keys
The medication-card kebab menu comment implied the GLP-1 "Log side effect" item is reachable from the card. It is not wired on the medications list page — both card variants there receive only the edit / history / advanced handlers, so the item never renders. Side- effect logging lives on the detail page's SideEffectsSection. Correct the comment to match. Remove the scheduling i18n key subtrees orphaned when the schedule section and cadence-summary row left the card: section, loading, loadFailed, editCta, reminders, cadenceViz, compliance, oneShot, legacyWindow, plus detail.cadence.title. Dropped in lockstep across all six locales; the still-live naturalLanguage / cadence / timesOfDay / courseWindow keys stay.
This commit is contained in:
1 parent
3a5e157d41
commit
039d402c9b
7 files changed
+9
-291
No files matched your search
@@ -642,45 +642,6 @@
|
||||
}
|
||||
},
|
||||
"scheduling": {
|
||||
"section": "Zeitplan",
|
||||
"loading": "Lade Zeitplan-Daten",
|
||||
"loadFailed": "Zeitplan-Daten konnten nicht geladen werden.",
|
||||
"editCta": "Bearbeiten",
|
||||
"reminders": {
|
||||
"on": "Erinnerungen an",
|
||||
"off": "Erinnerungen aus"
|
||||
},
|
||||
"cadenceViz": {
|
||||
"title": "Letzte 30 Tage",
|
||||
"ariaTimeline": "Dosis-Zeitstrahl der letzten 30 Tage",
|
||||
"emptyState": "Im Zeitfenster sind keine Dosen geplant.",
|
||||
"nextDoseLabel": "Nächste Dosis:",
|
||||
"noNextDose": "Keine kommende Dosis geplant.",
|
||||
"status": {
|
||||
"taken": "Genommen",
|
||||
"skipped": "Ausgelassen",
|
||||
"missed": "Verpasst",
|
||||
"upcoming": "Geplant"
|
||||
}
|
||||
},
|
||||
"compliance": {
|
||||
"title": "Adhärenz",
|
||||
"noData": "Keine Daten",
|
||||
"adherenceRate": "Adhärenz",
|
||||
"currentStreak": "Aktuelle Serie",
|
||||
"longestStreak": "Längste Serie",
|
||||
"missedLast30": "Verpasst (30 T.)",
|
||||
"unit": {
|
||||
"days": "T.",
|
||||
"doses": "Dosen"
|
||||
},
|
||||
"chips": {
|
||||
"adherenceTooltip": "Anteil genommener Dosen im 30-Tage-Fenster (ausgelassene Dosen werden ausgenommen).",
|
||||
"streakTooltip": "Aufeinanderfolgende Tage bis heute, an denen alle geplanten Dosen genommen oder bewusst ausgelassen wurden.",
|
||||
"longestTooltip": "Längste durchgehende Serie im 30-Tage-Fenster.",
|
||||
"missedTooltip": "Anzahl verpasster Dosen in den letzten 30 Tagen."
|
||||
}
|
||||
},
|
||||
"naturalLanguage": {
|
||||
"title": "Medikament beschreiben",
|
||||
"description": "Beschreibe das Medikament in eigenen Worten — das Formular wird automatisch vorausgefüllt.",
|
||||
@@ -786,14 +747,6 @@
|
||||
"noEndDate": "Kein Enddatum",
|
||||
"oneShotCaption": "(einmalige Dosis)",
|
||||
"invalidRange": "Das Enddatum muss am oder nach dem Startdatum liegen."
|
||||
},
|
||||
"oneShot": {
|
||||
"section": "Einmaldosis",
|
||||
"collapseWarning": "Einmaldosis aktiv — alle weiteren Pläne wurden auf den ersten zusammengeführt."
|
||||
},
|
||||
"legacyWindow": {
|
||||
"section": "Erinnerungsfenster (alt)",
|
||||
"help": "Ältere Pläne nutzen noch ein Zeitfenster-Paar. Neue Pläne nutzen die Uhrzeiten oben — das Fenster bleibt aus Kompatibilitätsgründen erhalten und entfällt in einer späteren Version."
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@@ -1153,7 +1106,6 @@
|
||||
"error": "Dosis konnte nicht erfasst werden."
|
||||
},
|
||||
"cadence": {
|
||||
"title": "Rhythmus",
|
||||
"oneShotOn": "Einmalige Dosis am {date}.",
|
||||
"oneShotPending": "Einmalige Dosis ausstehend."
|
||||
},
|
||||
|
||||
@@ -642,45 +642,6 @@
|
||||
}
|
||||
},
|
||||
"scheduling": {
|
||||
"section": "Schedule",
|
||||
"loading": "Loading schedule data",
|
||||
"loadFailed": "Schedule data failed to load.",
|
||||
"editCta": "Edit",
|
||||
"reminders": {
|
||||
"on": "Reminders on",
|
||||
"off": "Reminders off"
|
||||
},
|
||||
"cadenceViz": {
|
||||
"title": "Last 30 days",
|
||||
"ariaTimeline": "Dose timeline for the last 30 days",
|
||||
"emptyState": "No doses scheduled in this window.",
|
||||
"nextDoseLabel": "Next dose:",
|
||||
"noNextDose": "No upcoming dose scheduled.",
|
||||
"status": {
|
||||
"taken": "Taken",
|
||||
"skipped": "Skipped",
|
||||
"missed": "Missed",
|
||||
"upcoming": "Upcoming"
|
||||
}
|
||||
},
|
||||
"compliance": {
|
||||
"title": "Adherence",
|
||||
"noData": "No data",
|
||||
"adherenceRate": "Adherence",
|
||||
"currentStreak": "Current streak",
|
||||
"longestStreak": "Longest streak",
|
||||
"missedLast30": "Missed (30 d.)",
|
||||
"unit": {
|
||||
"days": "d.",
|
||||
"doses": "doses"
|
||||
},
|
||||
"chips": {
|
||||
"adherenceTooltip": "Share of doses taken across the last 30 days (skipped doses are excluded from the denominator).",
|
||||
"streakTooltip": "Consecutive days up to today on which every scheduled dose was taken or deliberately skipped.",
|
||||
"longestTooltip": "Longest unbroken streak within the 30-day window.",
|
||||
"missedTooltip": "Count of doses missed in the last 30 days."
|
||||
}
|
||||
},
|
||||
"naturalLanguage": {
|
||||
"title": "Describe your medication",
|
||||
"description": "Write the medication in your own words and we will pre-fill the form for you.",
|
||||
@@ -786,14 +747,6 @@
|
||||
"noEndDate": "No end date",
|
||||
"oneShotCaption": "(one-time dose)",
|
||||
"invalidRange": "End date must be on or after the start date."
|
||||
},
|
||||
"oneShot": {
|
||||
"section": "Single dose",
|
||||
"collapseWarning": "Single dose enabled — every other schedule was merged into the first."
|
||||
},
|
||||
"legacyWindow": {
|
||||
"section": "Reminder window (legacy)",
|
||||
"help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release."
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@@ -1153,7 +1106,6 @@
|
||||
"error": "Could not log the dose."
|
||||
},
|
||||
"cadence": {
|
||||
"title": "Cadence",
|
||||
"oneShotOn": "One-time dose on {date}.",
|
||||
"oneShotPending": "One-time dose pending."
|
||||
},
|
||||
|
||||
@@ -642,45 +642,6 @@
|
||||
}
|
||||
},
|
||||
"scheduling": {
|
||||
"section": "Programa",
|
||||
"loading": "Cargando datos del programa",
|
||||
"loadFailed": "No se han podido cargar los datos del programa.",
|
||||
"editCta": "Editar",
|
||||
"reminders": {
|
||||
"on": "Recordatorios activos",
|
||||
"off": "Recordatorios desactivados"
|
||||
},
|
||||
"cadenceViz": {
|
||||
"title": "Últimos 30 días",
|
||||
"ariaTimeline": "Línea temporal de dosis de los últimos 30 días",
|
||||
"emptyState": "No hay dosis programadas en este intervalo.",
|
||||
"nextDoseLabel": "Próxima dosis:",
|
||||
"noNextDose": "No hay ninguna dosis próxima programada.",
|
||||
"status": {
|
||||
"taken": "Tomada",
|
||||
"skipped": "Omitida",
|
||||
"missed": "Olvidada",
|
||||
"upcoming": "Pendiente"
|
||||
}
|
||||
},
|
||||
"compliance": {
|
||||
"title": "Adherencia",
|
||||
"noData": "Sin datos",
|
||||
"adherenceRate": "Adherencia",
|
||||
"currentStreak": "Racha actual",
|
||||
"longestStreak": "Racha más larga",
|
||||
"missedLast30": "Olvidadas (30 d.)",
|
||||
"unit": {
|
||||
"days": "d.",
|
||||
"doses": "dosis"
|
||||
},
|
||||
"chips": {
|
||||
"adherenceTooltip": "Proporción de dosis tomadas en los últimos 30 días (las dosis omitidas se excluyen del denominador).",
|
||||
"streakTooltip": "Días consecutivos hasta hoy en los que se ha tomado o se ha omitido deliberadamente cada dosis programada.",
|
||||
"longestTooltip": "Racha continua más larga dentro de la ventana de 30 días.",
|
||||
"missedTooltip": "Número de dosis olvidadas en los últimos 30 días."
|
||||
}
|
||||
},
|
||||
"naturalLanguage": {
|
||||
"title": "Describe tu medicación",
|
||||
"description": "Describe la medicación con tus propias palabras y completaremos el formulario por ti.",
|
||||
@@ -786,14 +747,6 @@
|
||||
"noEndDate": "No end date",
|
||||
"oneShotCaption": "(one-time dose)",
|
||||
"invalidRange": "End date must be on or after the start date."
|
||||
},
|
||||
"oneShot": {
|
||||
"section": "Single dose",
|
||||
"collapseWarning": "Single dose enabled — every other schedule was merged into the first."
|
||||
},
|
||||
"legacyWindow": {
|
||||
"section": "Reminder window (legacy)",
|
||||
"help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release."
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@@ -1153,7 +1106,6 @@
|
||||
"error": "Could not log the dose."
|
||||
},
|
||||
"cadence": {
|
||||
"title": "Cadence",
|
||||
"oneShotOn": "One-time dose on {date}.",
|
||||
"oneShotPending": "One-time dose pending."
|
||||
},
|
||||
|
||||
@@ -642,45 +642,6 @@
|
||||
}
|
||||
},
|
||||
"scheduling": {
|
||||
"section": "Calendrier",
|
||||
"loading": "Chargement des données du calendrier",
|
||||
"loadFailed": "Échec du chargement des données du calendrier.",
|
||||
"editCta": "Modifier",
|
||||
"reminders": {
|
||||
"on": "Rappels activés",
|
||||
"off": "Rappels désactivés"
|
||||
},
|
||||
"cadenceViz": {
|
||||
"title": "30 derniers jours",
|
||||
"ariaTimeline": "Chronologie des doses des 30 derniers jours",
|
||||
"emptyState": "Aucune dose prévue sur cette période.",
|
||||
"nextDoseLabel": "Prochaine dose :",
|
||||
"noNextDose": "Aucune dose à venir programmée.",
|
||||
"status": {
|
||||
"taken": "Prise",
|
||||
"skipped": "Sautée",
|
||||
"missed": "Manquée",
|
||||
"upcoming": "À venir"
|
||||
}
|
||||
},
|
||||
"compliance": {
|
||||
"title": "Observance",
|
||||
"noData": "Aucune donnée",
|
||||
"adherenceRate": "Observance",
|
||||
"currentStreak": "Série en cours",
|
||||
"longestStreak": "Série la plus longue",
|
||||
"missedLast30": "Manquées (30 j.)",
|
||||
"unit": {
|
||||
"days": "j.",
|
||||
"doses": "doses"
|
||||
},
|
||||
"chips": {
|
||||
"adherenceTooltip": "Part des doses prises sur les 30 derniers jours (les doses sautées sont exclues du dénominateur).",
|
||||
"streakTooltip": "Jours consécutifs jusqu'à aujourd'hui où chaque dose prévue a été prise ou volontairement sautée.",
|
||||
"longestTooltip": "Série continue la plus longue sur la fenêtre de 30 jours.",
|
||||
"missedTooltip": "Nombre de doses manquées au cours des 30 derniers jours."
|
||||
}
|
||||
},
|
||||
"naturalLanguage": {
|
||||
"title": "Décris ton médicament",
|
||||
"description": "Décris le médicament avec tes propres mots et le formulaire sera pré-rempli pour toi.",
|
||||
@@ -786,14 +747,6 @@
|
||||
"noEndDate": "No end date",
|
||||
"oneShotCaption": "(one-time dose)",
|
||||
"invalidRange": "End date must be on or after the start date."
|
||||
},
|
||||
"oneShot": {
|
||||
"section": "Single dose",
|
||||
"collapseWarning": "Single dose enabled — every other schedule was merged into the first."
|
||||
},
|
||||
"legacyWindow": {
|
||||
"section": "Reminder window (legacy)",
|
||||
"help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release."
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@@ -1153,7 +1106,6 @@
|
||||
"error": "Could not log the dose."
|
||||
},
|
||||
"cadence": {
|
||||
"title": "Cadence",
|
||||
"oneShotOn": "One-time dose on {date}.",
|
||||
"oneShotPending": "One-time dose pending."
|
||||
},
|
||||
|
||||
@@ -642,45 +642,6 @@
|
||||
}
|
||||
},
|
||||
"scheduling": {
|
||||
"section": "Programma",
|
||||
"loading": "Caricamento dei dati del programma",
|
||||
"loadFailed": "Impossibile caricare i dati del programma.",
|
||||
"editCta": "Modifica",
|
||||
"reminders": {
|
||||
"on": "Promemoria attivi",
|
||||
"off": "Promemoria disattivati"
|
||||
},
|
||||
"cadenceViz": {
|
||||
"title": "Ultimi 30 giorni",
|
||||
"ariaTimeline": "Cronologia delle dosi degli ultimi 30 giorni",
|
||||
"emptyState": "Nessuna dose programmata in questo intervallo.",
|
||||
"nextDoseLabel": "Prossima dose:",
|
||||
"noNextDose": "Nessuna dose programmata in arrivo.",
|
||||
"status": {
|
||||
"taken": "Assunta",
|
||||
"skipped": "Saltata",
|
||||
"missed": "Mancata",
|
||||
"upcoming": "In arrivo"
|
||||
}
|
||||
},
|
||||
"compliance": {
|
||||
"title": "Aderenza",
|
||||
"noData": "Nessun dato",
|
||||
"adherenceRate": "Aderenza",
|
||||
"currentStreak": "Serie attuale",
|
||||
"longestStreak": "Serie più lunga",
|
||||
"missedLast30": "Mancate (30 g.)",
|
||||
"unit": {
|
||||
"days": "gg.",
|
||||
"doses": "dosi"
|
||||
},
|
||||
"chips": {
|
||||
"adherenceTooltip": "Quota di dosi assunte negli ultimi 30 giorni (le dosi saltate sono escluse dal denominatore).",
|
||||
"streakTooltip": "Giorni consecutivi fino a oggi in cui ogni dose programmata è stata assunta o deliberatamente saltata.",
|
||||
"longestTooltip": "Serie continua più lunga nella finestra di 30 giorni.",
|
||||
"missedTooltip": "Numero di dosi mancate negli ultimi 30 giorni."
|
||||
}
|
||||
},
|
||||
"naturalLanguage": {
|
||||
"title": "Descrivi il farmaco",
|
||||
"description": "Descrivi il farmaco con parole tue e il modulo verrà precompilato per te.",
|
||||
@@ -786,14 +747,6 @@
|
||||
"noEndDate": "No end date",
|
||||
"oneShotCaption": "(one-time dose)",
|
||||
"invalidRange": "End date must be on or after the start date."
|
||||
},
|
||||
"oneShot": {
|
||||
"section": "Single dose",
|
||||
"collapseWarning": "Single dose enabled — every other schedule was merged into the first."
|
||||
},
|
||||
"legacyWindow": {
|
||||
"section": "Reminder window (legacy)",
|
||||
"help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release."
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@@ -1153,7 +1106,6 @@
|
||||
"error": "Could not log the dose."
|
||||
},
|
||||
"cadence": {
|
||||
"title": "Cadence",
|
||||
"oneShotOn": "One-time dose on {date}.",
|
||||
"oneShotPending": "One-time dose pending."
|
||||
},
|
||||
|
||||
@@ -642,45 +642,6 @@
|
||||
}
|
||||
},
|
||||
"scheduling": {
|
||||
"section": "Harmonogram",
|
||||
"loading": "Wczytywanie danych harmonogramu",
|
||||
"loadFailed": "Nie udało się wczytać danych harmonogramu.",
|
||||
"editCta": "Edytuj",
|
||||
"reminders": {
|
||||
"on": "Przypomnienia włączone",
|
||||
"off": "Przypomnienia wyłączone"
|
||||
},
|
||||
"cadenceViz": {
|
||||
"title": "Ostatnie 30 dni",
|
||||
"ariaTimeline": "Oś czasu dawek z ostatnich 30 dni",
|
||||
"emptyState": "Brak zaplanowanych dawek w tym oknie.",
|
||||
"nextDoseLabel": "Następna dawka:",
|
||||
"noNextDose": "Brak zaplanowanej nadchodzącej dawki.",
|
||||
"status": {
|
||||
"taken": "Przyjęta",
|
||||
"skipped": "Pominięta",
|
||||
"missed": "Niepodjęta",
|
||||
"upcoming": "Nadchodząca"
|
||||
}
|
||||
},
|
||||
"compliance": {
|
||||
"title": "Adherencja",
|
||||
"noData": "Brak danych",
|
||||
"adherenceRate": "Adherencja",
|
||||
"currentStreak": "Bieżąca seria",
|
||||
"longestStreak": "Najdłuższa seria",
|
||||
"missedLast30": "Pominięte (30 d.)",
|
||||
"unit": {
|
||||
"days": "d.",
|
||||
"doses": "dawek"
|
||||
},
|
||||
"chips": {
|
||||
"adherenceTooltip": "Udział dawek przyjętych w ostatnich 30 dniach (pominięte dawki są wyłączone z mianownika).",
|
||||
"streakTooltip": "Kolejne dni do dziś, w których każda zaplanowana dawka została przyjęta lub świadomie pominięta.",
|
||||
"longestTooltip": "Najdłuższa nieprzerwana seria w 30-dniowym oknie.",
|
||||
"missedTooltip": "Liczba dawek pominiętych w ostatnich 30 dniach."
|
||||
}
|
||||
},
|
||||
"naturalLanguage": {
|
||||
"title": "Opisz lek",
|
||||
"description": "Opisz lek własnymi słowami, a my wstępnie wypełnimy formularz za Ciebie.",
|
||||
@@ -786,14 +747,6 @@
|
||||
"noEndDate": "No end date",
|
||||
"oneShotCaption": "(one-time dose)",
|
||||
"invalidRange": "End date must be on or after the start date."
|
||||
},
|
||||
"oneShot": {
|
||||
"section": "Single dose",
|
||||
"collapseWarning": "Single dose enabled — every other schedule was merged into the first."
|
||||
},
|
||||
"legacyWindow": {
|
||||
"section": "Reminder window (legacy)",
|
||||
"help": "Older schedules still use a window pair. New schedules use times of day above — the window stays for backwards compatibility and is dropped in a future release."
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
@@ -1153,7 +1106,6 @@
|
||||
"error": "Could not log the dose."
|
||||
},
|
||||
"cadence": {
|
||||
"title": "Cadence",
|
||||
"oneShotOn": "One-time dose on {date}.",
|
||||
"oneShotPending": "One-time dose pending."
|
||||
},
|
||||
|
||||
@@ -8,9 +8,15 @@
|
||||
* / advanced) into a single overflow kebab so the card header carries one
|
||||
* affordance instead of a cluster. The card body itself navigates to the
|
||||
* detail page (the former chevron target); this menu owns the edit /
|
||||
* history / advanced actions. The GLP-1 card folds its "Log side effect"
|
||||
* item into the SAME menu via the optional `onLogSideEffect` slot so the
|
||||
* two card variants stay byte-symmetric in the header.
|
||||
* history / advanced actions.
|
||||
*
|
||||
* The optional `onLogSideEffect` slot exists for the GLP-1 card to fold a
|
||||
* "Log side effect" item into the SAME menu, but it is NOT wired on the
|
||||
* medications list page — both card variants there receive only the
|
||||
* edit / history / advanced handlers, so the item never renders. Side-
|
||||
* effect logging lives on the detail page's `<SideEffectsSection>`. When
|
||||
* the slot is left undefined the two card variants stay byte-symmetric in
|
||||
* the header (one kebab, identical items).
|
||||
*
|
||||
* The trigger is a 44px ghost icon-button (WCAG 2.5.5); every
|
||||
* `DropdownMenuItem` already carries `min-h-11` from the shadcn
|
||||
|
||||
Reference in new issue
Block a user