i18n: Complete DE/EN language switcher integration

- Add LangManager with 270+ translation keys, anti-flicker lang detection
- Replace all hardcoded German strings in app.js, components.js, dashboard.html, index.html
- Dynamic getter properties for fact-check labels, category badges
- Language-aware map tiles (DE/EN OSM servers), CSP updated for tile.openstreetmap.org
- Lang switcher in header bar and login page
- Locale-aware date formatting, translateApiError for backend messages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-03-05 16:13:11 +01:00
Ursprung 1644f8786c
Commit 44997d511b
7 geänderte Dateien mit 422 neuen und 362 gelöschten Zeilen

Datei anzeigen

@@ -3584,6 +3584,35 @@ a:hover {
transition: background 0.2s, border-color 0.2s;
}
/* === Language Switcher === */
.lang-switcher {
display: flex;
gap: 2px;
background: var(--bg-secondary);
border-radius: var(--radius);
padding: 2px;
}
.lang-btn {
padding: 4px 8px;
border-radius: var(--radius);
font-size: 11px;
font-weight: 600;
letter-spacing: 0.5px;
cursor: pointer;
background: transparent;
color: var(--text-secondary);
border: none;
transition: background 0.15s, color 0.15s;
}
.lang-btn:hover {
color: var(--text-primary);
background: var(--bg-hover);
}
.lang-btn.active {
background: var(--accent);
color: var(--bg-primary);
}
/* === Light Theme Sonderregeln === */
[data-theme="light"] .sidebar {
border-right: 1px solid var(--border);