From f07200cd8efda2f6a6f60d9d5f7c5999540441ed Mon Sep 17 00:00:00 2001 From: Florian Wathling Date: Sun, 22 Mar 2026 18:16:41 +0100 Subject: [PATCH] feat(i18n): settings.js und widgets.js auf t() umstellen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reset-Dialog, Dateifehler, Widget-Buttons (Minimieren/Schließen) und Default-Titel verwenden jetzt i18n-Keys. --- src/js/i18n.js | 8 ++++++++ src/js/settings.js | 6 +++--- src/js/widgets.js | 8 ++++---- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/js/i18n.js b/src/js/i18n.js index 7789159..4ed47db 100644 --- a/src/js/i18n.js +++ b/src/js/i18n.js @@ -115,6 +115,10 @@ const STRINGS = { 'imageref.invalid_file': 'Bitte eine Bilddatei verwenden (PNG, JPG, WebP, etc.).', 'imageref.invalid_file.title': 'Kein Bild', + // Widget-Manager + 'widget.minimize': 'Minimieren', + 'widget.close': 'Schließen', + // Daten (Export/Import) 'data.invalid_format': 'Ungültiges Format', 'data.no_boards': 'Keine gültigen Boards gefunden', @@ -406,6 +410,10 @@ const STRINGS = { 'imageref.invalid_file': 'Please use an image file (PNG, JPG, WebP, etc.).', 'imageref.invalid_file.title': 'Not an image', + // Widget manager + 'widget.minimize': 'Minimize', + 'widget.close': 'Close', + // Data (export/import) 'data.invalid_format': 'Invalid format', 'data.no_boards': 'No valid boards found', diff --git a/src/js/settings.js b/src/js/settings.js index fca7e5c..29408e2 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -188,7 +188,7 @@ function bindSettingsEvents() { await saveSettings(); }; reader.onerror = () => { - HellionDialog.alert('Fehler beim Lesen der Datei. Bitte eine andere Datei wählen.', { type: 'danger', title: 'Dateifehler' }); + HellionDialog.alert(t('settings.file_read_error'), { type: 'danger', title: t('settings.file_read_error.title') }); }; reader.readAsDataURL(file); }); @@ -224,8 +224,8 @@ function bindSettingsEvents() { // Reset All document.getElementById('btnResetAll').addEventListener('click', async () => { const ok = await HellionDialog.confirm( - 'Wirklich alle Boards und Einstellungen löschen? Das kann nicht rückgängig gemacht werden.', - { type: 'danger', title: 'Alles zurücksetzen', confirmText: 'Alles löschen' } + t('settings.reset_confirm'), + { type: 'danger', title: t('settings.reset_confirm.title'), confirmText: t('settings.reset_confirm.button') } ); if (!ok) return; boards = []; diff --git a/src/js/widgets.js b/src/js/widgets.js index d958bfc..47ea24d 100644 --- a/src/js/widgets.js +++ b/src/js/widgets.js @@ -20,7 +20,7 @@ const WidgetManager = { const state = { id, type, - title: config.title || 'Note', + title: config.title || t('notes.default_title'), x: config.x || 120, y: config.y || 80, width: config.width || 280, @@ -75,7 +75,7 @@ const WidgetManager = { title.addEventListener('blur', async () => { title.contentEditable = 'false'; const newTitle = title.textContent.trim().slice(0, 20); - title.textContent = newTitle || 'Note'; + title.textContent = newTitle || t('notes.default_title'); const entry = this._widgets.get(state.id); if (entry) { entry.state.title = title.textContent; @@ -94,13 +94,13 @@ const WidgetManager = { const btnMin = document.createElement('button'); btnMin.className = 'widget-btn widget-minimize'; - btnMin.title = 'Minimieren'; + btnMin.title = t('widget.minimize'); btnMin.textContent = '\u2500'; btnMin.addEventListener('click', () => this.minimize(state.id)); const btnClose = document.createElement('button'); btnClose.className = 'widget-btn widget-close'; - btnClose.title = 'Schließen'; + btnClose.title = t('widget.close'); btnClose.textContent = '\u2715'; btnClose.addEventListener('click', () => this.close(state.id));