From 721e88dfa86ff16b71468156beebebb9cab434e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sat, 16 May 2026 20:42:57 +0200 Subject: [PATCH] feat(i18n): add stale-hint week/month plurals and dashboard coach CTA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dashboard tile-strip `` caption renders bucket-aware copy so a tile whose latest reading is older than a week reads naturally: * `staleDays > 7 && <= 30` — existing `dashboard.staleHint` ("Letzter Wert vor Xd") * `30 < staleDays <= 60` — collapses to a weekly form ("vor X Wochen") * `staleDays > 60` — collapses to a monthly form ("vor X Monaten") Two new singular/plural key pairs per bucket — `staleHintWeeksOne` / `staleHintWeeksOther`, `staleHintMonthsOne` / `staleHintMonthsOther` — so locales with non-English plural rules read naturally. Polish takes the genitive-plural fallback ("tygodni" / "miesięcy") which covers every non-1 count the bucket math can produce. Also adds `dashboard.coachCta` ("Frag den Coach" / "Ask the coach") for the dashboard hero strip's Coach launch button — the global drawer is hoisted to the auth-shell in a follow-up so every authed surface can call `askCoach()` from the same context. All six locales (de, en, es, fr, it, pl) updated. --- messages/de.json | 5 +++++ messages/en.json | 5 +++++ messages/es.json | 5 +++++ messages/fr.json | 5 +++++ messages/it.json | 5 +++++ messages/pl.json | 5 +++++ 6 files changed, 30 insertions(+) diff --git a/messages/de.json b/messages/de.json index 6ab049d93..575515e9b 100644 --- a/messages/de.json +++ b/messages/de.json @@ -260,6 +260,11 @@ "emptyDescription": "Erfasse den ersten Messwert oder Stimmungseintrag. Kacheln und Charts erscheinen automatisch, sobald Daten vorhanden sind.", "emptyAddMeasurement": "Ersten Messwert erfassen", "staleHint": "Letzter Wert vor {count} T.", + "staleHintWeeksOne": "Letzter Wert vor 1 Woche", + "staleHintWeeksOther": "Letzter Wert vor {count} Wochen", + "staleHintMonthsOne": "Letzter Wert vor 1 Monat", + "staleHintMonthsOther": "Letzter Wert vor {count} Monaten", + "coachCta": "Frag den Coach", "recentWorkouts": { "title": "Letzte Workouts", "viewAll": "Alle anzeigen", diff --git a/messages/en.json b/messages/en.json index 6f2ad1c00..0838a626f 100644 --- a/messages/en.json +++ b/messages/en.json @@ -260,6 +260,11 @@ "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", "emptyAddMeasurement": "Add your first measurement", "staleHint": "Last reading {count} d ago", + "staleHintWeeksOne": "Last reading 1 week ago", + "staleHintWeeksOther": "Last reading {count} weeks ago", + "staleHintMonthsOne": "Last reading 1 month ago", + "staleHintMonthsOther": "Last reading {count} months ago", + "coachCta": "Ask the coach", "recentWorkouts": { "title": "Recent workouts", "viewAll": "View all", diff --git a/messages/es.json b/messages/es.json index 79385e30b..b93557c2c 100644 --- a/messages/es.json +++ b/messages/es.json @@ -260,6 +260,11 @@ "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", "emptyAddMeasurement": "Add your first measurement", "staleHint": "Último valor hace {count} d", + "staleHintWeeksOne": "Último valor hace 1 semana", + "staleHintWeeksOther": "Último valor hace {count} semanas", + "staleHintMonthsOne": "Último valor hace 1 mes", + "staleHintMonthsOther": "Último valor hace {count} meses", + "coachCta": "Pregunta al coach", "recentWorkouts": { "title": "Entrenamientos recientes", "viewAll": "Ver todos", diff --git a/messages/fr.json b/messages/fr.json index 967cb5835..ac1a73e64 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -260,6 +260,11 @@ "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", "emptyAddMeasurement": "Add your first measurement", "staleHint": "Dernière valeur il y a {count} j", + "staleHintWeeksOne": "Dernière valeur il y a 1 semaine", + "staleHintWeeksOther": "Dernière valeur il y a {count} semaines", + "staleHintMonthsOne": "Dernière valeur il y a 1 mois", + "staleHintMonthsOther": "Dernière valeur il y a {count} mois", + "coachCta": "Demande au coach", "recentWorkouts": { "title": "Entraînements récents", "viewAll": "Tout voir", diff --git a/messages/it.json b/messages/it.json index 4047c7cda..8837a2d16 100644 --- a/messages/it.json +++ b/messages/it.json @@ -260,6 +260,11 @@ "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", "emptyAddMeasurement": "Add your first measurement", "staleHint": "Ultimo valore {count} g fa", + "staleHintWeeksOne": "Ultimo valore 1 settimana fa", + "staleHintWeeksOther": "Ultimo valore {count} settimane fa", + "staleHintMonthsOne": "Ultimo valore 1 mese fa", + "staleHintMonthsOther": "Ultimo valore {count} mesi fa", + "coachCta": "Chiedi al coach", "recentWorkouts": { "title": "Allenamenti recenti", "viewAll": "Vedi tutti", diff --git a/messages/pl.json b/messages/pl.json index 37c4e0ff2..2d91e3ef8 100644 --- a/messages/pl.json +++ b/messages/pl.json @@ -260,6 +260,11 @@ "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", "emptyAddMeasurement": "Add your first measurement", "staleHint": "Ostatni odczyt {count} d temu", + "staleHintWeeksOne": "Ostatni odczyt 1 tydzień temu", + "staleHintWeeksOther": "Ostatni odczyt {count} tygodni temu", + "staleHintMonthsOne": "Ostatni odczyt 1 miesiąc temu", + "staleHintMonthsOther": "Ostatni odczyt {count} miesięcy temu", + "coachCta": "Zapytaj coacha", "recentWorkouts": { "title": "Ostatnie treningi", "viewAll": "Zobacz wszystkie",