From a5d4554c1134f3aed3d0982e9ee7780932918627 Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 27 Apr 2026 15:36:15 +0200 Subject: [PATCH] =?UTF-8?q?i18n(myday):=20translate=20ListView=20via=20$?= =?UTF-8?q?=5F()=20=E2=80=94=205=20sections=20+=20alerts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds myday namespace covering 5 section headers (Tasks/Termine/Wasser/ Ernährung/Streaks), overdue alert with {n}, empty states (Keine Tasks heute, Keine Termine), coffee+meals counters with {n} interpolation. Misspelled "ueberfaellig"/"Ernaehrung" inputs corrected via Unicode fallback in JSON. Baselines: hardcoded 989 → 982 (7 cleared); missing-keys baseline unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../web/src/lib/i18n/locales/myday/de.json | 14 ++++++++++ .../web/src/lib/i18n/locales/myday/en.json | 14 ++++++++++ .../web/src/lib/i18n/locales/myday/es.json | 14 ++++++++++ .../web/src/lib/i18n/locales/myday/fr.json | 14 ++++++++++ .../web/src/lib/i18n/locales/myday/it.json | 14 ++++++++++ .../web/src/lib/modules/myday/ListView.svelte | 27 ++++++++++++------- scripts/i18n-hardcoded-baseline.json | 1 - 7 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/myday/de.json create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/myday/en.json create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/myday/es.json create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/myday/fr.json create mode 100644 apps/mana/apps/web/src/lib/i18n/locales/myday/it.json diff --git a/apps/mana/apps/web/src/lib/i18n/locales/myday/de.json b/apps/mana/apps/web/src/lib/i18n/locales/myday/de.json new file mode 100644 index 000000000..4ac6a6d15 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/myday/de.json @@ -0,0 +1,14 @@ +{ + "list_view": { + "section_tasks": "Tasks", + "alert_overdue": "{n} überfällig", + "empty_no_tasks": "Keine Tasks heute", + "section_events": "Termine", + "empty_no_events": "Keine Termine", + "section_water": "Wasser", + "coffee_count": "{n}× Kaffee", + "section_nutrition": "Ernährung", + "meals_count": "{n} Mahlz.", + "section_streaks": "Streaks" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/myday/en.json b/apps/mana/apps/web/src/lib/i18n/locales/myday/en.json new file mode 100644 index 000000000..b1d44f549 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/myday/en.json @@ -0,0 +1,14 @@ +{ + "list_view": { + "section_tasks": "Tasks", + "alert_overdue": "{n} overdue", + "empty_no_tasks": "No tasks today", + "section_events": "Events", + "empty_no_events": "No events", + "section_water": "Water", + "coffee_count": "{n}× coffee", + "section_nutrition": "Nutrition", + "meals_count": "{n} meals", + "section_streaks": "Streaks" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/myday/es.json b/apps/mana/apps/web/src/lib/i18n/locales/myday/es.json new file mode 100644 index 000000000..93daefb69 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/myday/es.json @@ -0,0 +1,14 @@ +{ + "list_view": { + "section_tasks": "Tareas", + "alert_overdue": "{n} vencidas", + "empty_no_tasks": "Sin tareas hoy", + "section_events": "Eventos", + "empty_no_events": "Sin eventos", + "section_water": "Agua", + "coffee_count": "{n}× café", + "section_nutrition": "Nutrición", + "meals_count": "{n} comidas", + "section_streaks": "Rachas" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/myday/fr.json b/apps/mana/apps/web/src/lib/i18n/locales/myday/fr.json new file mode 100644 index 000000000..a7a7e9a27 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/myday/fr.json @@ -0,0 +1,14 @@ +{ + "list_view": { + "section_tasks": "Tâches", + "alert_overdue": "{n} en retard", + "empty_no_tasks": "Aucune tâche aujourd'hui", + "section_events": "Rendez-vous", + "empty_no_events": "Aucun rendez-vous", + "section_water": "Eau", + "coffee_count": "{n}× café", + "section_nutrition": "Nutrition", + "meals_count": "{n} repas", + "section_streaks": "Séries" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/myday/it.json b/apps/mana/apps/web/src/lib/i18n/locales/myday/it.json new file mode 100644 index 000000000..856e8902f --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/myday/it.json @@ -0,0 +1,14 @@ +{ + "list_view": { + "section_tasks": "Attività", + "alert_overdue": "{n} in ritardo", + "empty_no_tasks": "Nessuna attività oggi", + "section_events": "Eventi", + "empty_no_events": "Nessun evento", + "section_water": "Acqua", + "coffee_count": "{n}× caffè", + "section_nutrition": "Alimentazione", + "meals_count": "{n} pasti", + "section_streaks": "Serie" + } +} diff --git a/apps/mana/apps/web/src/lib/modules/myday/ListView.svelte b/apps/mana/apps/web/src/lib/modules/myday/ListView.svelte index 4b4f9af0b..81abc2620 100644 --- a/apps/mana/apps/web/src/lib/modules/myday/ListView.svelte +++ b/apps/mana/apps/web/src/lib/modules/myday/ListView.svelte @@ -6,6 +6,7 @@ import { useDaySnapshot } from '$lib/data/projections/day-snapshot'; import { useStreaks } from '$lib/data/projections/streaks'; import { CheckCircle, CalendarBlank, Drop, ForkKnife, MapPin, Fire } from '@mana/shared-icons'; + import { _ } from 'svelte-i18n'; const day = useDaySnapshot(); const streaks = useStreaks(); @@ -16,19 +17,21 @@
- Tasks + {$_('myday.list_view.section_tasks')} {day.value.tasks.completed}/{day.value.tasks.total + day.value.tasks.completed}
{#if day.value.tasks.overdue > 0} -
{day.value.tasks.overdue} ueberfaellig
+
+ {$_('myday.list_view.alert_overdue', { values: { n: day.value.tasks.overdue } })} +
{/if} {#each day.value.tasks.dueToday.slice(0, 5) as t}
• {t.title}
{/each} {#if day.value.tasks.dueToday.length === 0 && day.value.tasks.total === 0} -
Keine Tasks heute
+
{$_('myday.list_view.empty_no_tasks')}
{/if}
@@ -36,7 +39,7 @@
- Termine + {$_('myday.list_view.section_events')} {day.value.events.total}
{#each day.value.events.upcoming.slice(0, 4) as e} @@ -46,7 +49,7 @@
{/each} {#if day.value.events.total === 0} -
Keine Termine
+
{$_('myday.list_view.empty_no_events')}
{/if} @@ -54,7 +57,7 @@
- Wasser + {$_('myday.list_view.section_water')} {day.value.drinks.water.percent}%
@@ -65,7 +68,9 @@
{day.value.drinks.water.ml} / {day.value.drinks.water.goal} ml
{#if day.value.drinks.coffee.count > 0} -
{day.value.drinks.coffee.count}x Kaffee
+
+ {$_('myday.list_view.coffee_count', { values: { n: day.value.drinks.coffee.count } })} +
{/if}
@@ -73,8 +78,10 @@
- Ernaehrung - {day.value.nutrition.meals} Mahlz. + {$_('myday.list_view.section_nutrition')} + {$_('myday.list_view.meals_count', { values: { n: day.value.nutrition.meals } })}
- Streaks + {$_('myday.list_view.section_streaks')}
{#each streaks.value as s}
diff --git a/scripts/i18n-hardcoded-baseline.json b/scripts/i18n-hardcoded-baseline.json index f1de54daa..380342edb 100644 --- a/scripts/i18n-hardcoded-baseline.json +++ b/scripts/i18n-hardcoded-baseline.json @@ -137,7 +137,6 @@ "apps/mana/apps/web/src/lib/modules/moodlit/components/mood/CreateMoodDialog.svelte": 3, "apps/mana/apps/web/src/lib/modules/music/ListView.svelte": 3, "apps/mana/apps/web/src/lib/modules/music/views/DetailView.svelte": 6, - "apps/mana/apps/web/src/lib/modules/myday/ListView.svelte": 7, "apps/mana/apps/web/src/lib/modules/news-research/ListView.svelte": 3, "apps/mana/apps/web/src/lib/modules/news/widgets/NewsUnreadWidget.svelte": 2, "apps/mana/apps/web/src/lib/modules/notes/ListView.svelte": 4,