From 94d90f31eaf4018271eeb48731914148357e421f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sun, 17 May 2026 17:14:15 +0200 Subject: [PATCH] i18n(dashboard): translate greeting, layout, and empty-state copy into es/fr/it/pl Localises the remaining 27 keys per locale across dashboard.greeting, welcomeBack, streakLabel, vo2Max, bpInTarget, quickAdd shortcuts, compliance7d, the layout-customisation cluster, and the empty-state hero. Keeps placeholders ({greeting}, {name}, {count}) intact and matches the calm professional register used in the German source. Co-Authored-By: Claude Opus 4.7 (1M context) --- messages/es.json | 52 ++++++++++++++++++++++++------------------------ messages/fr.json | 48 ++++++++++++++++++++++---------------------- messages/it.json | 46 +++++++++++++++++++++--------------------- messages/pl.json | 48 ++++++++++++++++++++++---------------------- 4 files changed, 97 insertions(+), 97 deletions(-) diff --git a/messages/es.json b/messages/es.json index 0523d4517..6f0aa4cc0 100644 --- a/messages/es.json +++ b/messages/es.json @@ -214,23 +214,23 @@ "dashboard": { "title": "Panel", "greeting": { - "morning": "Good morning", - "day": "Hello", - "evening": "Good evening" + "morning": "Buenos días", + "day": "Hola", + "evening": "Buenas tardes" }, - "welcomeBack": "{greeting}, welcome back.", - "welcomeBackWithName": "{greeting} {name}, welcome back.", - "greetingSalutation": "Hi, {name}", - "streakLabel": "days in a row", + "welcomeBack": "{greeting}, te damos la bienvenida de nuevo.", + "welcomeBackWithName": "{greeting} {name}, te damos la bienvenida de nuevo.", + "greetingSalutation": "Hola, {name}", + "streakLabel": "días seguidos", "weight": "Peso", "bloodPressure": "Presión arterial", "pulse": "Pulso", "bodyFat": "Grasa corporal", "sleep": "Sueño", "steps": "Pasos", - "vo2Max": "VO₂ max", + "vo2Max": "VO₂ máx", "vo2MaxUnit": "mL/(kg·min)", - "bpInTarget": "BP in Target", + "bpInTarget": "TA en rango objetivo", "weightShort": "Peso", "bloodPressureSysShort": "PA (Sys)", "bloodPressureDiaShort": "PA (Dia)", @@ -239,11 +239,11 @@ "moodShort": "Humor", "sleepShort": "Sueño", "stepsShort": "Pasos", - "vo2MaxShort": "VO₂ max", + "vo2MaxShort": "VO₂ máx", "bpInTargetShort": "PA-objetivo", "medications": "Medicamentos", - "quickAddMeasurement": "Log measurement", - "quickAddMood": "Log mood", + "quickAddMeasurement": "Registrar medición", + "quickAddMood": "Registrar estado de ánimo", "quickAddMedicationIntake": "Registrar toma", "medicationIntakeQuickAdd": { "sheetTitle": "Registrar toma de medicación", @@ -259,22 +259,22 @@ "emptyDescription": "Crea primero un medicamento con horario, después vuelve aquí para registrar la toma.", "emptyCta": "Añadir medicamento" }, - "compliance7d": "Compliance (7 days)", + "compliance7d": "Cumplimiento (7 días)", "mood": "Estado de ánimo", - "customizeTitle": "Dashboard layout", - "layoutReset": "Reset to defaults", - "layoutSaveSuccess": "Dashboard layout saved", - "layoutSaveError": "Could not save dashboard layout", - "layoutResetSuccess": "Reset to default layout", - "layoutUsingDefaults": "Using default layout", - "layoutCustomized": "Custom layout active", - "moveUp": "Move up", - "moveDown": "Move down", - "layoutTileColumn": "Tile", + "customizeTitle": "Diseño del panel", + "layoutReset": "Restablecer valores por defecto", + "layoutSaveSuccess": "Diseño del panel guardado", + "layoutSaveError": "No se ha podido guardar el diseño", + "layoutResetSuccess": "Restablecido al diseño por defecto", + "layoutUsingDefaults": "Diseño por defecto activo", + "layoutCustomized": "Diseño personalizado activo", + "moveUp": "Subir", + "moveDown": "Bajar", + "layoutTileColumn": "Tarjeta", "layoutChartColumn": "Gráfico", - "emptyTitle": "Your dashboard is empty", - "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", - "emptyAddMeasurement": "Add your first measurement", + "emptyTitle": "Tu panel está vacío", + "emptyDescription": "Registra tu primera medición o estado de ánimo. Las tarjetas y gráficas aparecerán automáticamente en cuanto haya datos.", + "emptyAddMeasurement": "Registrar la primera medición", "staleHint": "Último valor hace {count} d", "staleHintWeeksOne": "Último valor hace 1 semana", "staleHintWeeksOther": "Último valor hace {count} semanas", diff --git a/messages/fr.json b/messages/fr.json index 08738721e..ebfd7ad73 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -214,14 +214,14 @@ "dashboard": { "title": "Tableau de bord", "greeting": { - "morning": "Good morning", - "day": "Hello", - "evening": "Good evening" + "morning": "Bonjour", + "day": "Bonjour", + "evening": "Bonsoir" }, - "welcomeBack": "{greeting}, welcome back.", - "welcomeBackWithName": "{greeting} {name}, welcome back.", - "greetingSalutation": "Hi, {name}", - "streakLabel": "days in a row", + "welcomeBack": "{greeting}, content de te revoir.", + "welcomeBackWithName": "{greeting} {name}, content de te revoir.", + "greetingSalutation": "Bonjour, {name}", + "streakLabel": "jours d’affilée", "weight": "Poids", "bloodPressure": "Tension artérielle", "pulse": "Pouls", @@ -230,7 +230,7 @@ "steps": "Pas", "vo2Max": "VO₂ max", "vo2MaxUnit": "mL/(kg·min)", - "bpInTarget": "BP in Target", + "bpInTarget": "TA dans la cible", "weightShort": "Poids", "bloodPressureSysShort": "TA (Sys)", "bloodPressureDiaShort": "TA (Dia)", @@ -242,8 +242,8 @@ "vo2MaxShort": "VO₂ max", "bpInTargetShort": "TA-cible", "medications": "Médicaments", - "quickAddMeasurement": "Log measurement", - "quickAddMood": "Log mood", + "quickAddMeasurement": "Saisir une mesure", + "quickAddMood": "Saisir une humeur", "quickAddMedicationIntake": "Saisir une prise", "medicationIntakeQuickAdd": { "sheetTitle": "Saisir une prise de médicament", @@ -259,22 +259,22 @@ "emptyDescription": "Crée d’abord un médicament avec un horaire, puis reviens ici pour saisir la prise.", "emptyCta": "Ajouter un médicament" }, - "compliance7d": "Compliance (7 days)", + "compliance7d": "Observance (7 jours)", "mood": "Humeur", - "customizeTitle": "Dashboard layout", - "layoutReset": "Reset to defaults", - "layoutSaveSuccess": "Dashboard layout saved", - "layoutSaveError": "Could not save dashboard layout", - "layoutResetSuccess": "Reset to default layout", - "layoutUsingDefaults": "Using default layout", - "layoutCustomized": "Custom layout active", - "moveUp": "Move up", - "moveDown": "Move down", - "layoutTileColumn": "Tile", + "customizeTitle": "Mise en page du tableau", + "layoutReset": "Rétablir les valeurs par défaut", + "layoutSaveSuccess": "Mise en page enregistrée", + "layoutSaveError": "Impossible d’enregistrer la mise en page", + "layoutResetSuccess": "Mise en page par défaut restaurée", + "layoutUsingDefaults": "Mise en page par défaut active", + "layoutCustomized": "Mise en page personnalisée active", + "moveUp": "Monter", + "moveDown": "Descendre", + "layoutTileColumn": "Tuile", "layoutChartColumn": "Graphique", - "emptyTitle": "Your dashboard is empty", - "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", - "emptyAddMeasurement": "Add your first measurement", + "emptyTitle": "Ton tableau de bord est vide", + "emptyDescription": "Saisis ta première mesure ou humeur. Les tuiles et graphiques apparaissent automatiquement dès qu’il y a des données.", + "emptyAddMeasurement": "Saisir la première mesure", "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", diff --git a/messages/it.json b/messages/it.json index 6a817bda5..699298aab 100644 --- a/messages/it.json +++ b/messages/it.json @@ -214,14 +214,14 @@ "dashboard": { "title": "Cruscotto", "greeting": { - "morning": "Good morning", - "day": "Hello", - "evening": "Good evening" + "morning": "Buongiorno", + "day": "Ciao", + "evening": "Buonasera" }, - "welcomeBack": "{greeting}, welcome back.", - "welcomeBackWithName": "{greeting} {name}, welcome back.", - "greetingSalutation": "Hi, {name}", - "streakLabel": "days in a row", + "welcomeBack": "{greeting}, bentornato.", + "welcomeBackWithName": "{greeting} {name}, bentornato.", + "greetingSalutation": "Ciao, {name}", + "streakLabel": "giorni di fila", "weight": "Peso", "bloodPressure": "Pressione arteriosa", "pulse": "Polso", @@ -230,7 +230,7 @@ "steps": "Passi", "vo2Max": "VO₂ max", "vo2MaxUnit": "mL/(kg·min)", - "bpInTarget": "BP in Target", + "bpInTarget": "PA nel range obiettivo", "weightShort": "Peso", "bloodPressureSysShort": "PA (Sys)", "bloodPressureDiaShort": "PA (Dia)", @@ -242,8 +242,8 @@ "vo2MaxShort": "VO₂ max", "bpInTargetShort": "PA-target", "medications": "Farmaci", - "quickAddMeasurement": "Log measurement", - "quickAddMood": "Log mood", + "quickAddMeasurement": "Registra misurazione", + "quickAddMood": "Registra umore", "quickAddMedicationIntake": "Registra assunzione", "medicationIntakeQuickAdd": { "sheetTitle": "Registra assunzione del farmaco", @@ -259,22 +259,22 @@ "emptyDescription": "Crea prima un farmaco con un orario, poi torna qui per registrarne l’assunzione.", "emptyCta": "Aggiungi farmaco" }, - "compliance7d": "Compliance (7 days)", + "compliance7d": "Aderenza (7 giorni)", "mood": "Umore", - "customizeTitle": "Dashboard layout", - "layoutReset": "Reset to defaults", - "layoutSaveSuccess": "Dashboard layout saved", - "layoutSaveError": "Could not save dashboard layout", - "layoutResetSuccess": "Reset to default layout", - "layoutUsingDefaults": "Using default layout", - "layoutCustomized": "Custom layout active", - "moveUp": "Move up", - "moveDown": "Move down", + "customizeTitle": "Layout della dashboard", + "layoutReset": "Ripristina i valori predefiniti", + "layoutSaveSuccess": "Layout della dashboard salvato", + "layoutSaveError": "Impossibile salvare il layout", + "layoutResetSuccess": "Layout predefinito ripristinato", + "layoutUsingDefaults": "Layout predefinito attivo", + "layoutCustomized": "Layout personalizzato attivo", + "moveUp": "Sposta su", + "moveDown": "Sposta giù", "layoutTileColumn": "Tile", "layoutChartColumn": "Grafico", - "emptyTitle": "Your dashboard is empty", - "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", - "emptyAddMeasurement": "Add your first measurement", + "emptyTitle": "La tua dashboard è vuota", + "emptyDescription": "Registra la prima misurazione o un umore. Tile e grafici appaiono automaticamente non appena ci sono dati.", + "emptyAddMeasurement": "Registra la prima misurazione", "staleHint": "Ultimo valore {count} g fa", "staleHintWeeksOne": "Ultimo valore 1 settimana fa", "staleHintWeeksOther": "Ultimo valore {count} settimane fa", diff --git a/messages/pl.json b/messages/pl.json index 5ca599c5d..59c51a8ee 100644 --- a/messages/pl.json +++ b/messages/pl.json @@ -214,14 +214,14 @@ "dashboard": { "title": "Pulpit", "greeting": { - "morning": "Good morning", - "day": "Hello", - "evening": "Good evening" + "morning": "Dzień dobry", + "day": "Cześć", + "evening": "Dobry wieczór" }, - "welcomeBack": "{greeting}, welcome back.", - "welcomeBackWithName": "{greeting} {name}, welcome back.", - "greetingSalutation": "Hi, {name}", - "streakLabel": "days in a row", + "welcomeBack": "{greeting}, witaj ponownie.", + "welcomeBackWithName": "{greeting} {name}, witaj ponownie.", + "greetingSalutation": "Cześć, {name}", + "streakLabel": "dni z rzędu", "weight": "Waga", "bloodPressure": "Ciśnienie krwi", "pulse": "Tętno", @@ -230,7 +230,7 @@ "steps": "Kroki", "vo2Max": "VO₂ max", "vo2MaxUnit": "mL/(kg·min)", - "bpInTarget": "BP in Target", + "bpInTarget": "RR w zakresie docelowym", "weightShort": "Waga", "bloodPressureSysShort": "RR (Sk)", "bloodPressureDiaShort": "RR (Rk)", @@ -242,8 +242,8 @@ "vo2MaxShort": "VO₂ max", "bpInTargetShort": "RR-cel", "medications": "Leki", - "quickAddMeasurement": "Log measurement", - "quickAddMood": "Log mood", + "quickAddMeasurement": "Zarejestruj pomiar", + "quickAddMood": "Zarejestruj nastrój", "quickAddMedicationIntake": "Zarejestruj przyjęcie", "medicationIntakeQuickAdd": { "sheetTitle": "Zarejestruj przyjęcie leku", @@ -259,22 +259,22 @@ "emptyDescription": "Najpierw dodaj lek z harmonogramem, a potem wróć tutaj, aby zarejestrować jego przyjęcie.", "emptyCta": "Dodaj lek" }, - "compliance7d": "Compliance (7 days)", + "compliance7d": "Przestrzeganie (7 dni)", "mood": "Nastrój", - "customizeTitle": "Dashboard layout", - "layoutReset": "Reset to defaults", - "layoutSaveSuccess": "Dashboard layout saved", - "layoutSaveError": "Could not save dashboard layout", - "layoutResetSuccess": "Reset to default layout", - "layoutUsingDefaults": "Using default layout", - "layoutCustomized": "Custom layout active", - "moveUp": "Move up", - "moveDown": "Move down", - "layoutTileColumn": "Tile", + "customizeTitle": "Układ panelu", + "layoutReset": "Przywróć wartości domyślne", + "layoutSaveSuccess": "Układ panelu zapisany", + "layoutSaveError": "Nie udało się zapisać układu", + "layoutResetSuccess": "Przywrócono układ domyślny", + "layoutUsingDefaults": "Aktywny układ domyślny", + "layoutCustomized": "Aktywny układ niestandardowy", + "moveUp": "W górę", + "moveDown": "W dół", + "layoutTileColumn": "Kafelek", "layoutChartColumn": "Wykres", - "emptyTitle": "Your dashboard is empty", - "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", - "emptyAddMeasurement": "Add your first measurement", + "emptyTitle": "Twój panel jest pusty", + "emptyDescription": "Zarejestruj pierwszy pomiar lub nastrój. Kafelki i wykresy pojawią się automatycznie, gdy będą dane.", + "emptyAddMeasurement": "Zarejestruj pierwszy pomiar", "staleHint": "Ostatni odczyt {count} d temu", "staleHintWeeksOne": "Ostatni odczyt 1 tydzień temu", "staleHintWeeksOther": "Ostatni odczyt {count} tygodni temu",