From 42e4d58c8c6dd7345a3a03660e64d943cd32c455 Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 27 Apr 2026 15:11:03 +0200 Subject: [PATCH] =?UTF-8?q?i18n(news/preferences):=20translate=20+page.sve?= =?UTF-8?q?lte=20via=20$=5F()=20=E2=80=94=20header,=20all=205=20sections?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reuses existing news.preferences sub-namespace (topicsHeading/Hint, languagesHeading, sourcesHeading/Hint, weightsHeading/Hint/Reset, weightsResetConfirm, onboardingHeading/Hint/Rerun) and adds 4 keys (page_title_html, subtitle, sourcesHintHtml with {count}, sourcesLinkArrow). Languages pills (Deutsch/English) routed via news.languages.*. Baselines: hardcoded 1017 → 1009 (8 cleared); missing-keys baseline unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../web/src/lib/i18n/locales/news/de.json | 4 ++ .../web/src/lib/i18n/locales/news/en.json | 4 ++ .../web/src/lib/i18n/locales/news/es.json | 4 ++ .../web/src/lib/i18n/locales/news/fr.json | 4 ++ .../web/src/lib/i18n/locales/news/it.json | 4 ++ .../(app)/news/preferences/+page.svelte | 44 +++++++++++-------- scripts/i18n-hardcoded-baseline.json | 1 - 7 files changed, 45 insertions(+), 20 deletions(-) diff --git a/apps/mana/apps/web/src/lib/i18n/locales/news/de.json b/apps/mana/apps/web/src/lib/i18n/locales/news/de.json index c6a5bb8e0..e19c93852 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/news/de.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/news/de.json @@ -94,13 +94,17 @@ }, "preferences": { "title": "News-Einstellungen", + "page_title_html": "News-Einstellungen — Mana", + "subtitle": "Themen · Sprachen · Gewichtungen", "backToFeed": "Feed", "topicsHeading": "Themen", "topicsHint": "Welche Themen sollen im Feed auftauchen?", "languagesHeading": "Sprachen", "sourcesHeading": "Quellen", "sourcesHint": "Du blockst aktuell {count} Quellen.", + "sourcesHintHtml": "Du blockst aktuell {count} Quellen.", "sourcesLink": "Quellen verwalten", + "sourcesLinkArrow": "Quellen verwalten →", "weightsHeading": "Gelernte Gewichtungen", "weightsHint": "Über Reaktionen lernt der Feed deine Vorlieben: {topics} Themen-Gewichte, {sources} Quellen-Gewichte.", "weightsReset": "Zurücksetzen", diff --git a/apps/mana/apps/web/src/lib/i18n/locales/news/en.json b/apps/mana/apps/web/src/lib/i18n/locales/news/en.json index 7cc040b32..8128b0fee 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/news/en.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/news/en.json @@ -94,13 +94,17 @@ }, "preferences": { "title": "News settings", + "page_title_html": "News settings — Mana", + "subtitle": "Topics · Languages · Weights", "backToFeed": "Feed", "topicsHeading": "Topics", "topicsHint": "Which topics should appear in the feed?", "languagesHeading": "Languages", "sourcesHeading": "Sources", "sourcesHint": "You're currently blocking {count} sources.", + "sourcesHintHtml": "You're currently blocking {count} sources.", "sourcesLink": "Manage sources", + "sourcesLinkArrow": "Manage sources →", "weightsHeading": "Learned weights", "weightsHint": "From your reactions the feed learns your preferences: {topics} topic weights, {sources} source weights.", "weightsReset": "Reset", diff --git a/apps/mana/apps/web/src/lib/i18n/locales/news/es.json b/apps/mana/apps/web/src/lib/i18n/locales/news/es.json index 32f16f26d..97b53af46 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/news/es.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/news/es.json @@ -94,13 +94,17 @@ }, "preferences": { "title": "Ajustes de noticias", + "page_title_html": "Ajustes de noticias — Mana", + "subtitle": "Temas · Idiomas · Pesos", "backToFeed": "Feed", "topicsHeading": "Temas", "topicsHint": "¿Qué temas deben aparecer en el feed?", "languagesHeading": "Idiomas", "sourcesHeading": "Fuentes", "sourcesHint": "Estás bloqueando {count} fuentes.", + "sourcesHintHtml": "Estás bloqueando {count} fuentes.", "sourcesLink": "Gestionar fuentes", + "sourcesLinkArrow": "Gestionar fuentes →", "weightsHeading": "Pesos aprendidos", "weightsHint": "El feed aprende tus preferencias a partir de tus reacciones: {topics} pesos de temas, {sources} pesos de fuentes.", "weightsReset": "Restablecer", diff --git a/apps/mana/apps/web/src/lib/i18n/locales/news/fr.json b/apps/mana/apps/web/src/lib/i18n/locales/news/fr.json index 0e55d6bc2..c569fc77e 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/news/fr.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/news/fr.json @@ -94,13 +94,17 @@ }, "preferences": { "title": "Réglages des actualités", + "page_title_html": "Réglages des actualités — Mana", + "subtitle": "Thèmes · Langues · Pondérations", "backToFeed": "Fil", "topicsHeading": "Thèmes", "topicsHint": "Quels thèmes doivent apparaître dans le fil ?", "languagesHeading": "Langues", "sourcesHeading": "Sources", "sourcesHint": "Tu bloques actuellement {count} sources.", + "sourcesHintHtml": "Tu bloques actuellement {count} sources.", "sourcesLink": "Gérer les sources", + "sourcesLinkArrow": "Gérer les sources →", "weightsHeading": "Pondérations apprises", "weightsHint": "Le fil apprend tes préférences via tes réactions : {topics} pondérations de thèmes, {sources} pondérations de sources.", "weightsReset": "Réinitialiser", diff --git a/apps/mana/apps/web/src/lib/i18n/locales/news/it.json b/apps/mana/apps/web/src/lib/i18n/locales/news/it.json index 7e348bcbb..d0c5af8b3 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/news/it.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/news/it.json @@ -94,13 +94,17 @@ }, "preferences": { "title": "Impostazioni notizie", + "page_title_html": "Impostazioni notizie — Mana", + "subtitle": "Temi · Lingue · Pesi", "backToFeed": "Feed", "topicsHeading": "Temi", "topicsHint": "Quali temi devono apparire nel feed?", "languagesHeading": "Lingue", "sourcesHeading": "Fonti", "sourcesHint": "Stai bloccando {count} fonti.", + "sourcesHintHtml": "Stai bloccando {count} fonti.", "sourcesLink": "Gestisci fonti", + "sourcesLinkArrow": "Gestisci fonti →", "weightsHeading": "Pesi appresi", "weightsHint": "Dalle tue reazioni il feed impara le tue preferenze: {topics} pesi tema, {sources} pesi fonte.", "weightsReset": "Reimposta", diff --git a/apps/mana/apps/web/src/routes/(app)/news/preferences/+page.svelte b/apps/mana/apps/web/src/routes/(app)/news/preferences/+page.svelte index 07c22355f..3043aee70 100644 --- a/apps/mana/apps/web/src/routes/(app)/news/preferences/+page.svelte +++ b/apps/mana/apps/web/src/routes/(app)/news/preferences/+page.svelte @@ -9,6 +9,7 @@ import { ALL_TOPICS, type Topic, type Language } from '$lib/modules/news/types'; import { TOPIC_LABELS } from '$lib/modules/news/sources-meta'; import { RoutePage } from '$lib/components/shell'; + import { _ } from 'svelte-i18n'; const prefs$ = usePreferences(); const prefs = $derived(prefs$.value); @@ -29,7 +30,7 @@ await preferencesStore.setLanguages(next); } async function resetWeights() { - if (!confirm('Alle gelernten Gewichtungen zurücksetzen?')) return; + if (!confirm($_('news.preferences.weightsResetConfirm'))) return; await preferencesStore.resetWeights(); } async function rerunOnboarding() { @@ -45,21 +46,21 @@ - News-Einstellungen — Mana + {$_('news.preferences.page_title_html')}
- News-Einstellungen - Themen · Sprachen · Gewichtungen + {$_('news.preferences.title')} + {$_('news.preferences.subtitle')}
-

Themen

-

Welche Themen sollen im Feed auftauchen?

+

{$_('news.preferences.topicsHeading')}

+

{$_('news.preferences.topicsHint')}

{#each ALL_TOPICS as topic}
-

Quellen

+

{$_('news.preferences.sourcesHeading')}

- Du blockst aktuell {prefs.blockedSources.length} Quellen. + {@html $_('news.preferences.sourcesHintHtml', { + values: { count: prefs.blockedSources.length }, + })}

- Quellen verwalten → + {$_('news.preferences.sourcesLinkArrow')}
-

Gelernte Gewichtungen

+

{$_('news.preferences.weightsHeading')}

- Über Reaktionen lernt der Feed deine Vorlieben: - {topicWeightCount} Themen-Gewichte, {sourceWeightCount} Quellen-Gewichte. + {$_('news.preferences.weightsHint', { + values: { topics: topicWeightCount, sources: sourceWeightCount }, + })}

- +
-

Onboarding

-

Themen, Sprachen und Quellen neu wählen.

+

{$_('news.preferences.onboardingHeading')}

+

{$_('news.preferences.onboardingHint')}

diff --git a/scripts/i18n-hardcoded-baseline.json b/scripts/i18n-hardcoded-baseline.json index cfe872cf5..7507d2721 100644 --- a/scripts/i18n-hardcoded-baseline.json +++ b/scripts/i18n-hardcoded-baseline.json @@ -262,7 +262,6 @@ "apps/mana/apps/web/src/routes/(app)/news-research/+page.svelte": 2, "apps/mana/apps/web/src/routes/(app)/news/[id]/+page.svelte": 3, "apps/mana/apps/web/src/routes/(app)/news/add/+page.svelte": 1, - "apps/mana/apps/web/src/routes/(app)/news/preferences/+page.svelte": 8, "apps/mana/apps/web/src/routes/(app)/news/saved/+page.svelte": 1, "apps/mana/apps/web/src/routes/(app)/news/sources/+page.svelte": 1, "apps/mana/apps/web/src/routes/(app)/notes/[id]/+page.svelte": 5,