From 1398d76b4111d621d5d98259ae4942522bd18162 Mon Sep 17 00:00:00 2001 From: Till JS Date: Sun, 26 Apr 2026 21:58:31 +0200 Subject: [PATCH] =?UTF-8?q?refactor(lasts,firsts):=20German=20display=20na?= =?UTF-8?q?mes=20=E2=80=94=20"Letzte=20Male"=20/=20"Erste=20Male"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "Lasts" auf Deutsch ist ein Homophon zu "die Last" (Bürde/Belastung). Ein deutscher Muttersprachler las "Last nicht gefunden" als "Bürde nicht gefunden". Falsches Gefühl für ein kontemplatives Modul. Renames: - mana-apps.ts: name "Lasts" → "Letzte Male", "Firsts" → "Erste Male" - lasts/de.json: app.title + Singular-Bezüge weg von "Last" auf "Letztes Mal" (detail.routeTitle, banner.recognition) bzw. "Eintrag" (detail.notFound, settings.testSampleTitle, …) - milestones/de.json: tabs.first/last + recap.topFirstsLabel/topLastsLabel switchen auf "Erste Male" / "Letzte Male" - store error: "Aufgehobene Lasts ..." → "Aufgehobene Einträge ..." Andere Locales (en/es/fr/it) bleiben unangetastet — dort ist "Lasts" und "Firsts" linguistisch unproblematisch. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../web/src/lib/i18n/locales/lasts/de.json | 22 +++++++++---------- .../src/lib/i18n/locales/milestones/de.json | 8 +++---- .../lib/modules/lasts/stores/items.svelte.ts | 2 +- packages/shared-branding/src/mana-apps.ts | 4 ++-- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/apps/mana/apps/web/src/lib/i18n/locales/lasts/de.json b/apps/mana/apps/web/src/lib/i18n/locales/lasts/de.json index cddb0d9d8..9af3ec165 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/lasts/de.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/lasts/de.json @@ -1,12 +1,12 @@ { "app": { - "title": "Lasts", + "title": "Letzte Male", "tagline": "Letzte Male — markieren oder erkennen." }, "list": { - "emptyAll": "Noch keine Lasts erfasst.", + "emptyAll": "Noch keine Einträge erfasst.", "emptyTab": "Nichts in dieser Ansicht.", - "searchPlaceholder": "Lasts durchsuchen ..." + "searchPlaceholder": "Letzte Male durchsuchen ..." }, "tabs": { "all": "Alle", @@ -36,9 +36,9 @@ "cancel": "Abbrechen" }, "detail": { - "routeTitle": "Last", + "routeTitle": "Letztes Mal", "loading": "Lädt ...", - "notFound": "Last nicht gefunden.", + "notFound": "Eintrag nicht gefunden.", "backLink": "Zurück zur Liste", "titlePlaceholder": "Titel ...", "categoryLabel": "Kategorie", @@ -83,23 +83,23 @@ "banner": { "title": "Heute", "anniversary": "Vor {years} Jahr(en) das letzte Mal", - "recognition": "Vor {years} Jahr(en) als Last erkannt", + "recognition": "Vor {years} Jahr(en) als letztes Mal erkannt", "inbox": "{count} neue Vorschläge in der Inbox" }, "settings": { - "routeTitle": "Lasts — Einstellungen", + "routeTitle": "Letzte Male — Einstellungen", "title": "Einstellungen", - "tagline": "Wann sollen dich Lasts daran erinnern, dass du heute hier bist?", + "tagline": "Wann sollen dich letzte Male daran erinnern, dass du heute hier bist?", "anniversaryLabel": "Jahrestags-Erinnerungen", - "anniversaryDesc": "Zeigt heute Lasts, deren Datum auf den heutigen Tag vor X Jahren fällt.", + "anniversaryDesc": "Zeigt heute Einträge, deren Datum auf den heutigen Tag vor X Jahren fällt.", "recognitionLabel": "Erkennungs-Erinnerungen", - "recognitionDesc": "Zeigt Lasts, die heute vor X Jahren als Last erkannt wurden.", + "recognitionDesc": "Zeigt Einträge, die heute vor X Jahren als letztes Mal erkannt wurden.", "inboxLabel": "Inbox-Hinweis", "inboxDesc": "Zeigt eine Zeile, wenn neue AI-Vorschläge in der Inbox liegen.", "bannerCapLabel": "Maximal {count} Erinnerungen gleichzeitig", "reset": "Zurücksetzen", "showTestBanner": "Test-Banner zeigen", - "testSampleTitle": "Beispiel-Last", + "testSampleTitle": "Beispiel-Eintrag", "pushNote": "Echtes OS-Push folgt sobald die PWA-Push-Infrastruktur landet. Bis dahin tauchen Erinnerungen oben in der Liste auf, sobald du die App öffnest." } } diff --git a/apps/mana/apps/web/src/lib/i18n/locales/milestones/de.json b/apps/mana/apps/web/src/lib/i18n/locales/milestones/de.json index 048343f3c..d4b8c8e57 100644 --- a/apps/mana/apps/web/src/lib/i18n/locales/milestones/de.json +++ b/apps/mana/apps/web/src/lib/i18n/locales/milestones/de.json @@ -8,8 +8,8 @@ }, "tabs": { "all": "Alle", - "first": "Firsts", - "last": "Lasts" + "first": "Erste Male", + "last": "Letzte Male" }, "recap": { "title": "{year} im Rückblick", @@ -20,8 +20,8 @@ "backLink": "Zurück zur Timeline", "totalLabel": "Gesamt", "categoriesLabel": "Nach Kategorie", - "topFirstsLabel": "Top Firsts", - "topLastsLabel": "Top Lasts", + "topFirstsLabel": "Top Erste Male", + "topLastsLabel": "Top Letzte Male", "activeMonthsLabel": "Aktive Monate" } } diff --git a/apps/mana/apps/web/src/lib/modules/lasts/stores/items.svelte.ts b/apps/mana/apps/web/src/lib/modules/lasts/stores/items.svelte.ts index 28bd79145..27994f416 100644 --- a/apps/mana/apps/web/src/lib/modules/lasts/stores/items.svelte.ts +++ b/apps/mana/apps/web/src/lib/modules/lasts/stores/items.svelte.ts @@ -321,7 +321,7 @@ export const lastsStore = { if (before === next) return; if (next === 'unlisted' && existing.status === 'reclaimed') { - throw new Error('Aufgehobene Lasts können nicht öffentlich geteilt werden.'); + throw new Error('Aufgehobene Einträge können nicht öffentlich geteilt werden.'); } const now = nowIso(); diff --git a/packages/shared-branding/src/mana-apps.ts b/packages/shared-branding/src/mana-apps.ts index 5388b1938..8236aa947 100644 --- a/packages/shared-branding/src/mana-apps.ts +++ b/packages/shared-branding/src/mana-apps.ts @@ -736,7 +736,7 @@ export const MANA_APPS: ManaApp[] = [ }, { id: 'firsts', - name: 'Firsts', + name: 'Erste Male', description: { de: 'Erste Male', en: 'First Times', @@ -753,7 +753,7 @@ export const MANA_APPS: ManaApp[] = [ }, { id: 'lasts', - name: 'Lasts', + name: 'Letzte Male', description: { de: 'Letzte Male', en: 'Last Times',