M16: Zweisprachigkeit (DE/EN) im Experte-Tab, eigener L10n-Helfer statt String Catalog

.environment(\.locale) + Localizable.xcstrings schaltete Text(LocalizedStringKey)
live nachweislich nicht um. Ersetzt durch Core/Localization/L10n.swift
(Dictionary-Lookup je AppStorage("appLanguage")), Umschalt-Button in der Toolbar.
Vollständig übersetzt: alle Tab-Namen, alle Menü-Kategorien, kompletter
Experte-Tab inkl. Firewall-Formulare. 60 Tests grün, live bestätigt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YDmUd93KxsYGr2kLTotWnG
This commit is contained in:
Kay
2026-09-15 15:54:26 +02:00
co-authored by Claude Sonnet 5
parent 2e507aa9ef
commit 0d16d05cb3
8 changed files with 220 additions and 51 deletions
+10
View File
@@ -41,6 +41,11 @@ Einrichten, Übersicht, Geräte, Experte, Sicherungen. Die App spricht mit
dem Router per REST-API (bevorzugt) oder SSH (Fallback) — beides wird
automatisch gewählt, ohne dass du dich darum kümmern musst.
Ein DE/EN-Umschalt-Button in der Toolbar wechselt die Sprache der App
(persistiert über Neustarts). Aktuell vollständig übersetzt: alle
Tab-Namen sowie der komplette Experte-Tab (Menünamen, Firewall-Formulare,
Buttons, Tooltips). Weitere Bereiche folgen schrittweise.
## 1. Verbinden
- Router-Adresse, Benutzername und Passwort eingeben, verbinden.
@@ -168,6 +173,11 @@ Connect, Setup, Topology, Devices, Expert, Backups. The app talks to the
router over its REST API (preferred) or SSH (fallback) — chosen
automatically, no configuration needed.
A DE/EN toggle button in the toolbar switches the app's language
(persists across restarts). Fully translated so far: every tab name and
the entire Expert tab (menu names, Firewall forms, buttons, tooltips).
More areas will follow incrementally.
## 1. Connect
- Enter the router's address, username and password, then connect.