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:
@@ -115,6 +115,10 @@ const STRINGS = {
|
|||||||
'imageref.invalid_file': 'Bitte eine Bilddatei verwenden (PNG, JPG, WebP, etc.).',
|
'imageref.invalid_file': 'Bitte eine Bilddatei verwenden (PNG, JPG, WebP, etc.).',
|
||||||
'imageref.invalid_file.title': 'Kein Bild',
|
'imageref.invalid_file.title': 'Kein Bild',
|
||||||
|
|
||||||
|
// Widget-Manager
|
||||||
|
'widget.minimize': 'Minimieren',
|
||||||
|
'widget.close': 'Schließen',
|
||||||
|
|
||||||
// Daten (Export/Import)
|
// Daten (Export/Import)
|
||||||
'data.invalid_format': 'Ungültiges Format',
|
'data.invalid_format': 'Ungültiges Format',
|
||||||
'data.no_boards': 'Keine gültigen Boards gefunden',
|
'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': 'Please use an image file (PNG, JPG, WebP, etc.).',
|
||||||
'imageref.invalid_file.title': 'Not an image',
|
'imageref.invalid_file.title': 'Not an image',
|
||||||
|
|
||||||
|
// Widget manager
|
||||||
|
'widget.minimize': 'Minimize',
|
||||||
|
'widget.close': 'Close',
|
||||||
|
|
||||||
// Data (export/import)
|
// Data (export/import)
|
||||||
'data.invalid_format': 'Invalid format',
|
'data.invalid_format': 'Invalid format',
|
||||||
'data.no_boards': 'No valid boards found',
|
'data.no_boards': 'No valid boards found',
|
||||||
|
|||||||
+3
-3
@@ -188,7 +188,7 @@ function bindSettingsEvents() {
|
|||||||
await saveSettings();
|
await saveSettings();
|
||||||
};
|
};
|
||||||
reader.onerror = () => {
|
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);
|
reader.readAsDataURL(file);
|
||||||
});
|
});
|
||||||
@@ -224,8 +224,8 @@ function bindSettingsEvents() {
|
|||||||
// Reset All
|
// Reset All
|
||||||
document.getElementById('btnResetAll').addEventListener('click', async () => {
|
document.getElementById('btnResetAll').addEventListener('click', async () => {
|
||||||
const ok = await HellionDialog.confirm(
|
const ok = await HellionDialog.confirm(
|
||||||
'Wirklich alle Boards und Einstellungen löschen? Das kann nicht rückgängig gemacht werden.',
|
t('settings.reset_confirm'),
|
||||||
{ type: 'danger', title: 'Alles zurücksetzen', confirmText: 'Alles löschen' }
|
{ type: 'danger', title: t('settings.reset_confirm.title'), confirmText: t('settings.reset_confirm.button') }
|
||||||
);
|
);
|
||||||
if (!ok) return;
|
if (!ok) return;
|
||||||
boards = [];
|
boards = [];
|
||||||
|
|||||||
+4
-4
@@ -20,7 +20,7 @@ const WidgetManager = {
|
|||||||
const state = {
|
const state = {
|
||||||
id,
|
id,
|
||||||
type,
|
type,
|
||||||
title: config.title || 'Note',
|
title: config.title || t('notes.default_title'),
|
||||||
x: config.x || 120,
|
x: config.x || 120,
|
||||||
y: config.y || 80,
|
y: config.y || 80,
|
||||||
width: config.width || 280,
|
width: config.width || 280,
|
||||||
@@ -75,7 +75,7 @@ const WidgetManager = {
|
|||||||
title.addEventListener('blur', async () => {
|
title.addEventListener('blur', async () => {
|
||||||
title.contentEditable = 'false';
|
title.contentEditable = 'false';
|
||||||
const newTitle = title.textContent.trim().slice(0, 20);
|
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);
|
const entry = this._widgets.get(state.id);
|
||||||
if (entry) {
|
if (entry) {
|
||||||
entry.state.title = title.textContent;
|
entry.state.title = title.textContent;
|
||||||
@@ -94,13 +94,13 @@ const WidgetManager = {
|
|||||||
|
|
||||||
const btnMin = document.createElement('button');
|
const btnMin = document.createElement('button');
|
||||||
btnMin.className = 'widget-btn widget-minimize';
|
btnMin.className = 'widget-btn widget-minimize';
|
||||||
btnMin.title = 'Minimieren';
|
btnMin.title = t('widget.minimize');
|
||||||
btnMin.textContent = '\u2500';
|
btnMin.textContent = '\u2500';
|
||||||
btnMin.addEventListener('click', () => this.minimize(state.id));
|
btnMin.addEventListener('click', () => this.minimize(state.id));
|
||||||
|
|
||||||
const btnClose = document.createElement('button');
|
const btnClose = document.createElement('button');
|
||||||
btnClose.className = 'widget-btn widget-close';
|
btnClose.className = 'widget-btn widget-close';
|
||||||
btnClose.title = 'Schließen';
|
btnClose.title = t('widget.close');
|
||||||
btnClose.textContent = '\u2715';
|
btnClose.textContent = '\u2715';
|
||||||
btnClose.addEventListener('click', () => this.close(state.id));
|
btnClose.addEventListener('click', () => this.close(state.id));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user