From 2790244683eead8733f3f35e8ebdd3e55ce59c92 Mon Sep 17 00:00:00 2001 From: Till JS Date: Mon, 27 Apr 2026 02:16:47 +0200 Subject: [PATCH] =?UTF-8?q?i18n(spiral):=20translate=20ListView=20via=20$?= =?UTF-8?q?=5F()=20=E2=80=94=20visualization,=20stats,=20apps,=20palette,?= =?UTF-8?q?=20actions,=20info-box?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Section titles (Visualisierung/Statistiken/Apps/Farbpalette/Aktionen) - Viz controls: Zoom + Grid labels, empty-state copy - Stats grid: Bildgröße/Events/Pixel belegt/Kompression/Aktueller Ring/Apps aktiv labels, Ring {n} value, "Zuletzt gesammelt: …" line - App cards: empty-state, "{n} Events" trailing text - Action buttons: Sammle…/Daten sammeln, PNG herunterladen, PNG importieren, Zurücksetzen - Info-box heading + 4-line body - Toast/confirm: "Import fehlgeschlagen: {error}" alert + "Alle Spiral-Daten löschen?" confirm Baselines: hardcoded 1230 → 1218 (12 cleared); missing-keys baseline unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../src/lib/modules/spiral/ListView.svelte | 70 +++++++++++-------- scripts/i18n-hardcoded-baseline.json | 1 - 2 files changed, 41 insertions(+), 30 deletions(-) diff --git a/apps/mana/apps/web/src/lib/modules/spiral/ListView.svelte b/apps/mana/apps/web/src/lib/modules/spiral/ListView.svelte index c22b36d7c..a3f0afff8 100644 --- a/apps/mana/apps/web/src/lib/modules/spiral/ListView.svelte +++ b/apps/mana/apps/web/src/lib/modules/spiral/ListView.svelte @@ -11,6 +11,7 @@ import SpiralCanvas from './components/SpiralCanvas.svelte'; import { manaSpiralStore } from './index'; import { collectAppSnapshots } from './index'; + import { _ } from 'svelte-i18n'; const colorsArray: ColorDefinition[] = Object.values(COLORS); @@ -50,13 +51,13 @@ if (!file) return; const result = await manaSpiralStore.importFromPng(file); if (!result.success) { - alert(`Import fehlgeschlagen: ${result.error}`); + alert($_('spiral.list_view.import_failed', { values: { error: result.error ?? '' } })); } input.value = ''; } function handleClear() { - if (confirm('Alle Spiral-Daten löschen?')) { + if (confirm($_('spiral.list_view.confirm_clear'))) { manaSpiralStore.clear(); } } @@ -71,16 +72,16 @@
-

Visualisierung

+

{$_('spiral.list_view.section_visualization')}

@@ -96,7 +97,7 @@ /> {:else}
-

Keine Daten. Klicke "Daten sammeln" um deine Spirale zu generieren.

+

{$_('spiral.list_view.empty_no_data')}

{/if} @@ -111,39 +112,45 @@ {#if manaSpiralStore.stats}
-

Statistiken

+

{$_('spiral.list_view.section_stats')}

{manaSpiralStore.stats.imageSize}x{manaSpiralStore.stats.imageSize} - Bildgrösse + {$_('spiral.list_view.stat_image_size')}
{manaSpiralStore.stats.activeRecords} - Events + {$_('spiral.list_view.stat_events')}
{manaSpiralStore.stats.usedPixels} - Pixel belegt + {$_('spiral.list_view.stat_pixels_used')}
{manaSpiralStore.stats.compressionRatio}% - Kompression + {$_('spiral.list_view.stat_compression')}
- Ring {manaSpiralStore.stats.currentRing} - Aktueller Ring + {$_('spiral.list_view.stat_ring_value', { + values: { n: manaSpiralStore.stats.currentRing }, + })} + {$_('spiral.list_view.stat_current_ring')}
{manaSpiralStore.snapshots.length} - Apps aktiv + {$_('spiral.list_view.stat_apps_active')}
{#if manaSpiralStore.lastCollectedAt}

- Zuletzt gesammelt: {formatTime(manaSpiralStore.lastCollectedAt)} + {$_('spiral.list_view.last_collected', { + values: { when: formatTime(manaSpiralStore.lastCollectedAt) }, + })}

{/if}
@@ -152,14 +159,14 @@

- Apps + {$_('spiral.list_view.section_apps')} {#if manaSpiralStore.snapshots.length > 0} {manaSpiralStore.snapshots.length} {/if}

{#if manaSpiralStore.snapshots.length === 0} -

Noch keine App-Daten gesammelt.

+

{$_('spiral.list_view.empty_no_app_data')}

{:else}
{#each manaSpiralStore.snapshots as snap} @@ -182,7 +189,11 @@
{snap.label} - {appRecords.length} Events + {$_('spiral.list_view.events_count', { + values: { n: appRecords.length }, + })}
{/each} @@ -192,7 +203,7 @@
-

Farbpalette (3-Bit)

+

{$_('spiral.list_view.section_palette')}

{#each colorsArray as color}
@@ -209,35 +220,36 @@
-

Aktionen

+

{$_('spiral.list_view.section_actions')}

- +
-

Mana Spiral

+

{$_('spiral.list_view.info_heading')}

- Die Mana Spiral sammelt Aktivitätsdaten aus allen deinen Apps und kodiert sie als farbige - Pixel in einem Spiralmuster. Jeder Pixel speichert 3 Bit (8 Farben). Das Bild wächst von - der Mitte nach aussen — je mehr du die Apps nutzt, desto grösser wird deine Spirale. - Exportiere sie als PNG oder nutze sie als Wallpaper. + {$_('spiral.list_view.info_body')}

diff --git a/scripts/i18n-hardcoded-baseline.json b/scripts/i18n-hardcoded-baseline.json index a21b10567..71552c8c8 100644 --- a/scripts/i18n-hardcoded-baseline.json +++ b/scripts/i18n-hardcoded-baseline.json @@ -187,7 +187,6 @@ "apps/mana/apps/web/src/lib/modules/sleep/components/MorningLog.svelte": 5, "apps/mana/apps/web/src/lib/modules/sleep/ListView.svelte": 8, "apps/mana/apps/web/src/lib/modules/spaces/ListView.svelte": 6, - "apps/mana/apps/web/src/lib/modules/spiral/ListView.svelte": 12, "apps/mana/apps/web/src/lib/modules/storage/ListView.svelte": 2, "apps/mana/apps/web/src/lib/modules/storage/views/DetailView.svelte": 4, "apps/mana/apps/web/src/lib/modules/themes/ListView.svelte": 3,