From 779752e907d41f4e2c951b63930f932e7d69bb42 Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 27 Apr 2026 02:12:00 +0200 Subject: [PATCH] =?UTF-8?q?i18n(dreams):=20translate=20ListView=20via=20$?= =?UTF-8?q?=5F()=20=E2=80=94=20view=20tabs,=20insights,=20filters,=20edito?= =?UTF-8?q?r,=20transcription=20badges?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - View tabs (Träume/Symbole), insights ribbon, filter chips (Alle/Klarträume/Albträume/Wiederkehrend), search placeholder - Inline editor: title placeholder, transcription status (transcribing/failed/done), content/symbols placeholders, sleep-row labels (Nacht/Ins Bett/Aufgewacht), sleep quality + star aria-label, Klartraum/Wiederkehrend toggles, Löschen/Fertig actions - Dream-row: untitled fallback, transcribing/failed badge titles, STT-chip title - FloatingInputBar placeholder + voice reason - Mood labels routed through $_('dreams.moods.' + mood); MOOD_LABELS constant kept in types.ts for non-Svelte callers (SymbolDetailView) - Context menu: edit/pin/unpin/delete via $_() Baselines: hardcoded 1254 → 1242 (12 cleared); missing-keys baseline +1 (dreams.moods.* dynamic key). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/lib/modules/dreams/ListView.svelte | 105 +++++++++++------- scripts/i18n-hardcoded-baseline.json | 1 - scripts/i18n-missing-baseline.json | 1 + 3 files changed, 67 insertions(+), 40 deletions(-) diff --git a/apps/mana/apps/web/src/lib/modules/dreams/ListView.svelte b/apps/mana/apps/web/src/lib/modules/dreams/ListView.svelte index cec8972a1..fa2970e44 100644 --- a/apps/mana/apps/web/src/lib/modules/dreams/ListView.svelte +++ b/apps/mana/apps/web/src/lib/modules/dreams/ListView.svelte @@ -18,6 +18,7 @@ import { useItemContextMenu } from '$lib/data/item-context-menu.svelte'; import { PencilSimple, PushPin, Trash } from '@mana/shared-icons'; import SymbolsView from './views/SymbolsView.svelte'; + import { _ } from 'svelte-i18n'; let { navigate, goBack, params }: ViewProps = $props(); @@ -139,7 +140,7 @@ ? [ { id: 'edit', - label: 'Bearbeiten', + label: $_('dreams.list_view.ctx_edit'), icon: PencilSimple, action: () => { const target = ctxMenu.state.target; @@ -148,7 +149,9 @@ }, { id: 'pin', - label: ctxMenu.state.target.isPinned ? 'Lösen' : 'Pinnen', + label: ctxMenu.state.target.isPinned + ? $_('dreams.list_view.ctx_unpin') + : $_('dreams.list_view.ctx_pin'), icon: PushPin, action: () => { const target = ctxMenu.state.target; @@ -158,7 +161,7 @@ { id: 'div', label: '', type: 'divider' as const }, { id: 'delete', - label: 'Löschen', + label: $_('dreams.list_view.ctx_delete'), icon: Trash, variant: 'danger' as const, action: () => { @@ -188,14 +191,14 @@
@@ -210,9 +213,15 @@ {#if insights.total > 0}
- {insights.total} Träume + {$_('dreams.list_view.insights_total', { values: { n: insights.total } })} {#if insights.lucidCount > 0} - ✨ {insights.lucidCount} Klarträume + {$_('dreams.list_view.insights_lucid', { + values: { n: insights.lucidCount }, + })} {/if} {#each insights.topSymbols as sym} + {/if}
{/if} @@ -237,28 +248,28 @@ class:active={filterMode === 'all'} onclick={() => (filterMode = 'all')} > - Alle + {$_('dreams.list_view.filter_all')} {/if} @@ -268,7 +279,7 @@ {/if} @@ -293,36 +304,40 @@ class="ed-title" type="text" bind:value={editTitle} - placeholder="Titel (optional)..." + placeholder={$_('dreams.list_view.editor_title_placeholder')} autofocus /> {#if dream.processingStatus === 'transcribing'}
●●● - Transkribiert deine Aufnahme… + {$_('dreams.list_view.editor_transcribing')}
{:else if dream.processingStatus === 'failed'}
- Transkription fehlgeschlagen{dream.processingError + {$_('dreams.list_view.editor_transcribe_failed')}{dream.processingError ? `: ${dream.processingError}` : ''}
{:else if dream.transcript && dream.transcriptModel} -
- Transkribiert via {dream.transcriptModel} +
+ {$_('dreams.list_view.editor_transcribed_via')} + {dream.transcriptModel}
{/if}
@@ -333,10 +348,10 @@ class:active={editMood === mood} style="--mood-color: {MOOD_COLORS[mood]}" onclick={() => (editMood = editMood === mood ? null : mood)} - title={MOOD_LABELS[mood]} + title={$_('dreams.moods.' + mood)} > - {MOOD_LABELS[mood]} + {$_('dreams.moods.' + mood)} {/each}
@@ -344,29 +359,31 @@
- Schlafqualität + {$_('dreams.list_view.editor_label_sleep_quality')}
{#each [1, 2, 3, 4, 5] as q} @@ -376,19 +393,22 @@
- handleDelete(dream.id)} + >{$_('dreams.list_view.editor_action_delete')} + -
{:else} @@ -414,11 +434,18 @@
- {dream.title || 'Traum ohne Titel'} + {dream.title || $_('dreams.list_view.untitled')} {#if dream.processingStatus === 'transcribing'} - ●●● + ●●● {:else if dream.processingStatus === 'failed'} - ! + ! {/if} {#if dream.isLucid}{/if} {#if dream.isRecurring}{/if} @@ -432,7 +459,7 @@ {formatDreamDate(dream.dreamDate)} {#if dream.transcriptModel} · - + 🎤 {dream.transcriptModel} {/if} @@ -461,21 +488,21 @@ {/each} {#if filtered.length === 0 && dreams.length > 0} -

Keine Treffer

+

{$_('dreams.list_view.empty_no_match')}

{/if}
{#if dreams.length === 0} -

Erzähl deinen ersten Traum.

+

{$_('dreams.list_view.empty_no_dreams')}

{/if} diff --git a/scripts/i18n-hardcoded-baseline.json b/scripts/i18n-hardcoded-baseline.json index 80015b94d..78e81950b 100644 --- a/scripts/i18n-hardcoded-baseline.json +++ b/scripts/i18n-hardcoded-baseline.json @@ -117,7 +117,6 @@ "apps/mana/apps/web/src/lib/modules/core/widgets/RecentContactsWidget.svelte": 2, "apps/mana/apps/web/src/lib/modules/core/widgets/TasksTodayWidget.svelte": 1, "apps/mana/apps/web/src/lib/modules/core/widgets/UpcomingEventsWidget.svelte": 1, - "apps/mana/apps/web/src/lib/modules/dreams/ListView.svelte": 12, "apps/mana/apps/web/src/lib/modules/dreams/views/SymbolDetailView.svelte": 8, "apps/mana/apps/web/src/lib/modules/drink/ListView.svelte": 5, "apps/mana/apps/web/src/lib/modules/finance/ListView.svelte": 6, diff --git a/scripts/i18n-missing-baseline.json b/scripts/i18n-missing-baseline.json index b95591051..d3803708e 100644 --- a/scripts/i18n-missing-baseline.json +++ b/scripts/i18n-missing-baseline.json @@ -6,6 +6,7 @@ "apps/mana/apps/web/src/lib/modules/ai-agents/ListView.svelte": 2, "apps/mana/apps/web/src/lib/modules/ai-missions/ListView.svelte": 2, "apps/mana/apps/web/src/lib/modules/credits/ListView.svelte": 1, + "apps/mana/apps/web/src/lib/modules/dreams/ListView.svelte": 1, "apps/mana/apps/web/src/lib/modules/firsts/ListView.svelte": 2, "apps/mana/apps/web/src/lib/modules/invoices/components/StatusBadge.svelte": 1, "apps/mana/apps/web/src/lib/modules/invoices/constants.ts": 1,