refactor(lasts,firsts): German display names — "Letzte Male" / "Erste Male"

"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) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-04-26 21:58:31 +02:00
parent 679fb160c2
commit 1398d76b41
4 changed files with 18 additions and 18 deletions

View file

@ -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."
}
}

View file

@ -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"
}
}

View file

@ -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();

View file

@ -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',