diff --git a/apps/web/src/lib/components/AnkiImport.svelte b/apps/web/src/lib/components/AnkiImport.svelte index db3595b..733d407 100644 --- a/apps/web/src/lib/components/AnkiImport.svelte +++ b/apps/web/src/lib/components/AnkiImport.svelte @@ -11,6 +11,7 @@
-
Aus Anki importieren
+
{t('import.anki_label')}
{#if stage === 'idle'} @@ -94,11 +95,17 @@ ondragover={(e) => e.preventDefault()} ondrop={onDrop} onclick={() => fileInput?.click()} + role="button" + tabindex="0" + onkeydown={(e) => { + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault(); + fileInput?.click(); + } + }} > -
📦 .apkg-Datei hier ablegen oder klicken
-
- Basic, Basic + Reverse, Cloze · Bilder + Audio werden in dieser Phase nicht übernommen. -
+
{t('import.dropzone')}
+
{t('import.dropzone_hint')}
{:else if stage === 'parsing'} -
Lese {fileName}…
+
+ {t('import.parsing', { file: fileName })} +
{:else if stage === 'preview' && parsed}
- Gefunden in + {t('import.preview_found')} {fileName}:
{#if parsed.warnings.length > 0}
- Hinweise ({parsed.warnings.length}) + {t('import.preview_warnings', { n: parsed.warnings.length })} @@ -148,26 +160,32 @@ class="rounded px-3 py-1.5 text-sm text-[var(--color-muted)] hover:text-[var(--color-fg)]" onclick={reset} > - Abbrechen + {t('import.cancel')}
{:else if stage === 'importing'} -
+
{#if progress.stage === 'decks'} - Lege Decks an · {progress.current} / {progress.total} + {t('import.stage_decks', { current: progress.current, total: progress.total })} {:else if progress.stage === 'cards'} - Importiere Karten · {progress.current} / {progress.total} + {t('import.stage_cards', { current: progress.current, total: progress.total })} {:else} - Fertig. + {t('import.stage_done')} {/if} -
+
- ✓ {result.cardsCreated} Karten in {result.decksCreated} - {result.decksCreated === 1 ? 'Deck' : 'Decks'} angelegt. + {result.decksCreated === 1 + ? t('import.done_summary_one', { cards: result.cardsCreated }) + : t('import.done_summary', { cards: result.cardsCreated, decks: result.decksCreated })}
{#if result.failed > 0}
- {result.failed} Fehler + {t('import.done_failures', { n: result.failed })}
    {#each result.failures.slice(0, 20) as msg (msg)}
  • {msg}
  • {/each}
@@ -192,17 +211,17 @@ class="rounded px-3 py-1.5 text-sm text-[var(--color-muted)] hover:text-[var(--color-fg)]" onclick={reset} > - Weitere Datei + {t('import.done_more')}
{:else if stage === 'error'} -
-
Fehler: {error}
+ {/if} diff --git a/apps/web/src/lib/components/Header.svelte b/apps/web/src/lib/components/Header.svelte index 17c2b02..f87b008 100644 --- a/apps/web/src/lib/components/Header.svelte +++ b/apps/web/src/lib/components/Header.svelte @@ -1,6 +1,7 @@
- Cards + {t('app.name')} -