feat(i18n): settings.js und widgets.js auf t() umstellen

Reset-Dialog, Dateifehler, Widget-Buttons (Minimieren/Schließen)
und Default-Titel verwenden jetzt i18n-Keys.
This commit is contained in:
2026-03-22 18:16:41 +01:00
parent ab165d4f75
commit f07200cd8e
3 changed files with 15 additions and 7 deletions
+8
View File
@@ -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',
+3 -3
View File
@@ -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 = [];
+4 -4
View File
@@ -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));