fix(i18n): add missing notification event labels

The notification preferences build event labels dynamically as
notifications.event<PascalCase>, so the static call-site coverage test
never enumerated them and three event types rendered raw keys:
MEASUREMENT_REMINDER, MEDICATION_INTAKE_SYNC and COACH_NUDGE. Add label
and description for each across all six locale bundles.
This commit is contained in:
Marc-André Bombeck committed 2026-06-21 11:05:01 +02:00
1 parent b8fc648bfc
commit 7969b79443
6 files changed
+42 -18

No files matched your search

+7 -3
View File
@@ -5687,8 +5687,6 @@
},
"notifications": {
"title": "Benachrichtigungen",
"breadcrumbInbox": "Benachrichtigungen",
"breadcrumbChannels": "Benachrichtigungs-Kanäle",
"eventColumn": "Ereignis",
"subtitle": "Wähle aus, welche Benachrichtigungen du über welchen Kanal erhalten möchtest.",
"loadError": "Benachrichtigungseinstellungen konnten nicht geladen werden.",
@@ -5785,7 +5783,13 @@
"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"
"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."
},
"i18n": {
"maintainershipBanner": {
+7 -3
View File
@@ -5687,8 +5687,6 @@
},
"notifications": {
"title": "Notifications",
"breadcrumbInbox": "Notifications",
"breadcrumbChannels": "Notification channels",
"eventColumn": "Event",
"subtitle": "Choose which notifications you want to receive through which channel.",
"loadError": "Notification preferences could not be loaded.",
@@ -5785,7 +5783,13 @@
"eventCycleFertileSoon": "Fertile window coming up",
"eventCycleFertileSoonDesc": "Sent a few days before your estimated fertile window when your goal is trying to conceive.",
"eventMedicationLowStock": "Medication stock low",
"eventMedicationLowStockDesc": "When a tracked medication supply covers fewer days than your low-stock threshold"
"eventMedicationLowStockDesc": "When a tracked medication supply covers fewer days than your low-stock threshold",
"eventCoachNudge": "Coach nudge",
"eventCoachNudgeDesc": "Occasional prompt from your Coach when your recent trends warrant a check-in.",
"eventMeasurementReminder": "Measurement reminder",
"eventMeasurementReminderDesc": "Sent when a tracked measurement is due.",
"eventMedicationIntakeSync": "Medication intake sync",
"eventMedicationIntakeSyncDesc": "Cross-device update when a dose is logged, taken or skipped."
},
"i18n": {
"maintainershipBanner": {
+7 -3
View File
@@ -5687,8 +5687,6 @@
},
"notifications": {
"title": "Notificaciones",
"breadcrumbInbox": "Notificaciones",
"breadcrumbChannels": "Canales de notificación",
"eventColumn": "Evento",
"subtitle": "Elige qué notificaciones recibes y por qué canal.",
"loadError": "No se han podido cargar los ajustes de notificación.",
@@ -5785,7 +5783,13 @@
"eventCycleFertileSoon": "Ventana fértil próxima",
"eventCycleFertileSoonDesc": "Se envía unos días antes de tu ventana fértil estimada cuando tu objetivo es concebir.",
"eventMedicationLowStock": "Existencias de medicación bajas",
"eventMedicationLowStockDesc": "Cuando unas existencias registradas cubren menos días que tu umbral de existencias"
"eventMedicationLowStockDesc": "Cuando unas existencias registradas cubren menos días que tu umbral de existencias",
"eventCoachNudge": "Aviso del Coach",
"eventCoachNudgeDesc": "Aviso ocasional de tu Coach cuando tus tendencias recientes justifican una revisión.",
"eventMeasurementReminder": "Recordatorio de medición",
"eventMeasurementReminderDesc": "Se envía cuando una medición registrada está pendiente.",
"eventMedicationIntakeSync": "Sincronización de tomas",
"eventMedicationIntakeSyncDesc": "Actualización entre dispositivos cuando se registra, toma u omite una dosis."
},
"i18n": {
"maintainershipBanner": {
+7 -3
View File
@@ -5687,8 +5687,6 @@
},
"notifications": {
"title": "Notifications",
"breadcrumbInbox": "Notifications",
"breadcrumbChannels": "Canaux de notification",
"eventColumn": "Événement",
"subtitle": "Choisis quelles notifications tu reçois et par quel canal.",
"loadError": "Impossible de charger les paramètres de notification.",
@@ -5785,7 +5783,13 @@
"eventCycleFertileSoon": "Fenêtre fertile à venir",
"eventCycleFertileSoonDesc": "Envoyé quelques jours avant votre fenêtre fertile estimée lorsque votre objectif est de concevoir.",
"eventMedicationLowStock": "Stock de médicament faible",
"eventMedicationLowStockDesc": "Quand un stock suivi couvre moins de jours que votre seuil de stock"
"eventMedicationLowStockDesc": "Quand un stock suivi couvre moins de jours que votre seuil de stock",
"eventCoachNudge": "Rappel du Coach",
"eventCoachNudgeDesc": "Message ponctuel de votre Coach quand vos tendances récentes justifient un point.",
"eventMeasurementReminder": "Rappel de mesure",
"eventMeasurementReminderDesc": "Envoyé lorsqu'une mesure suivie est due.",
"eventMedicationIntakeSync": "Synchronisation des prises",
"eventMedicationIntakeSyncDesc": "Mise à jour entre appareils quand une dose est enregistrée, prise ou ignorée."
},
"i18n": {
"maintainershipBanner": {
+7 -3
View File
@@ -5687,8 +5687,6 @@
},
"notifications": {
"title": "Notifiche",
"breadcrumbInbox": "Notifiche",
"breadcrumbChannels": "Canali di notifica",
"eventColumn": "Evento",
"subtitle": "Scegli quali notifiche ricevere e su quale canale.",
"loadError": "Impossibile caricare le impostazioni di notifica.",
@@ -5785,7 +5783,13 @@
"eventCycleFertileSoon": "Finestra fertile in arrivo",
"eventCycleFertileSoonDesc": "Inviato alcuni giorni prima della finestra fertile stimata quando il tuo obiettivo è il concepimento.",
"eventMedicationLowStock": "Scorte di farmaco in esaurimento",
"eventMedicationLowStockDesc": "Quando una scorta tracciata copre meno giorni della tua soglia di scorte"
"eventMedicationLowStockDesc": "Quando una scorta tracciata copre meno giorni della tua soglia di scorte",
"eventCoachNudge": "Suggerimento del Coach",
"eventCoachNudgeDesc": "Messaggio occasionale del tuo Coach quando gli andamenti recenti richiedono una verifica.",
"eventMeasurementReminder": "Promemoria misurazione",
"eventMeasurementReminderDesc": "Inviato quando una misurazione tracciata è in scadenza.",
"eventMedicationIntakeSync": "Sincronizzazione assunzioni",
"eventMedicationIntakeSyncDesc": "Aggiornamento tra dispositivi quando una dose viene registrata, assunta o saltata."
},
"i18n": {
"maintainershipBanner": {
+7 -3
View File
@@ -5687,8 +5687,6 @@
},
"notifications": {
"title": "Powiadomienia",
"breadcrumbInbox": "Powiadomienia",
"breadcrumbChannels": "Kanały powiadomień",
"eventColumn": "Zdarzenie",
"subtitle": "Wybierz, które powiadomienia chcesz otrzymywać i którym kanałem.",
"loadError": "Nie udało się załadować ustawień powiadomień.",
@@ -5785,7 +5783,13 @@
"eventCycleFertileSoon": "Zbliża się okno płodności",
"eventCycleFertileSoonDesc": "Wysyłane kilka dni przed szacowanym oknem płodności, gdy Twoim celem jest poczęcie.",
"eventMedicationLowStock": "Niski zapas leku",
"eventMedicationLowStockDesc": "Gdy śledzony zapas leku wystarcza na mniej dni niż twój próg zapasu"
"eventMedicationLowStockDesc": "Gdy śledzony zapas leku wystarcza na mniej dni niż twój próg zapasu",
"eventCoachNudge": "Wskazówka Coacha",
"eventCoachNudgeDesc": "Okazjonalna wskazówka od Coacha, gdy twoje ostatnie trendy wymagają sprawdzenia.",
"eventMeasurementReminder": "Przypomnienie o pomiarze",
"eventMeasurementReminderDesc": "Wysyłane, gdy śledzony pomiar jest wymagany.",
"eventMedicationIntakeSync": "Synchronizacja przyjęć leku",
"eventMedicationIntakeSyncDesc": "Aktualizacja między urządzeniami, gdy dawka zostanie zapisana, przyjęta lub pominięta."
},
"i18n": {
"maintainershipBanner": {