From 9dcf0e246c38bfd73332739b690f2474f2b54053 Mon Sep 17 00:00:00 2001 From: Steffen Becker Date: Sun, 5 Jul 2026 16:01:33 +0200 Subject: [PATCH] feat: expand i18n catalog with submenues of images, table, ... --- src/lib/components/AboutDialog.svelte | 11 +- src/lib/components/ColorPicker.svelte | 17 +-- src/lib/components/FindReplaceBar.svelte | 26 ++-- src/lib/components/HeaderFooterLayer.svelte | 13 +- src/lib/components/ImageToolbar.svelte | 32 ++--- src/lib/components/LinkDialog.svelte | 9 +- src/lib/components/SpecialCharPicker.svelte | 20 ++- src/lib/components/SpellContextMenu.svelte | 9 +- src/lib/components/TableBorderPicker.svelte | 41 +++--- src/lib/components/TablePicker.svelte | 21 +-- src/lib/components/TableSplitDialog.svelte | 11 +- src/lib/components/TableToolbar.svelte | 49 +++---- src/lib/components/TextBoxToolbar.svelte | 77 ++++++----- src/lib/i18n/locales/de.ts | 141 ++++++++++++++++++++ src/lib/i18n/locales/en.ts | 141 ++++++++++++++++++++ 15 files changed, 461 insertions(+), 157 deletions(-) diff --git a/src/lib/components/AboutDialog.svelte b/src/lib/components/AboutDialog.svelte index 69d2222..02c5803 100644 --- a/src/lib/components/AboutDialog.svelte +++ b/src/lib/components/AboutDialog.svelte @@ -1,4 +1,5 @@ - @@ -107,12 +109,12 @@ bind:value={replaceText} onkeydown={onReplaceKeydown} type="text" - placeholder="Replace" + placeholder={t().findReplace.replacePlaceholder} spellcheck="false" autocomplete="off" /> - - + + {/if} diff --git a/src/lib/components/HeaderFooterLayer.svelte b/src/lib/components/HeaderFooterLayer.svelte index e5898f8..2507394 100644 --- a/src/lib/components/HeaderFooterLayer.svelte +++ b/src/lib/components/HeaderFooterLayer.svelte @@ -4,6 +4,7 @@ import { hfIsEmpty, DEFAULT_HF_DISTANCES, type HfDoc, type HfZone, type HfDistances } from '../storage/headerFooter'; import { cmToPx, type PageMargins } from '../storage/pageMargins'; import { PAGE_W_PORTRAIT, PAGE_H_PORTRAIT, type Orientation } from '../storage/pageOrientation'; + import { t } from '../i18n/i18n.svelte'; let { headerDoc = $bindable(), @@ -130,7 +131,7 @@ liveZone = zone; const ed = new Editor({ element: mount, - extensions: hfExtensions(zone === 'header' ? 'Header…' : 'Footer…'), + extensions: hfExtensions(zone === 'header' ? t().hf.headerPlaceholder : t().hf.footerPlaceholder), content: (zoneDoc(zone) ?? emptyDoc()) as Content, // No autofocus: its scrollIntoView nudges the page so the just-clicked zone // appears to jump. Focus the zone explicitly without scrolling instead. @@ -180,7 +181,7 @@
startEdit(zone, p)} role="button" @@ -197,11 +198,11 @@ {@const box = zoneBox(hfActive, editingPage)}
- Insert - - + {t().hf.insert} + + - +
{/if}
diff --git a/src/lib/components/ImageToolbar.svelte b/src/lib/components/ImageToolbar.svelte index f5ff24e..f365e8c 100644 --- a/src/lib/components/ImageToolbar.svelte +++ b/src/lib/components/ImageToolbar.svelte @@ -1,6 +1,7 @@
e.preventDefault()} > {#each modes as m} + {/if} - - + +
{/if} diff --git a/src/lib/components/SpecialCharPicker.svelte b/src/lib/components/SpecialCharPicker.svelte index 985b397..525092d 100644 --- a/src/lib/components/SpecialCharPicker.svelte +++ b/src/lib/components/SpecialCharPicker.svelte @@ -1,6 +1,12 @@
- {#if open} - {/if} diff --git a/src/lib/components/SpellContextMenu.svelte b/src/lib/components/SpellContextMenu.svelte index f34114d..cba18ff 100644 --- a/src/lib/components/SpellContextMenu.svelte +++ b/src/lib/components/SpellContextMenu.svelte @@ -1,4 +1,5 @@
- +
{/if} diff --git a/src/lib/components/TableSplitDialog.svelte b/src/lib/components/TableSplitDialog.svelte index f5822e3..e967ef6 100644 --- a/src/lib/components/TableSplitDialog.svelte +++ b/src/lib/components/TableSplitDialog.svelte @@ -1,4 +1,5 @@ @@ -52,7 +55,7 @@ style="top: {top}px; left: {left}px;" role="toolbar" tabindex="-1" - aria-label="Text box options" + aria-label={t().textBox.toolbar} onmousedown={(e) => { // Keep the box selection/caret; buttons work via click. if ((e.target as HTMLElement).closest('select') === null) e.preventDefault(); @@ -61,13 +64,13 @@ {#each wrapModes as m}