M21: Zweisprachigkeit (DE/EN) auf alle fünf Tabs ausgerollt
Einrichten-Wizard (alle sieben Schritte), Übersicht, LAN-Scanner, Sicherungen laufen jetzt über L10n.t statt fester deutscher String-Literale — Experte- und Verbinden-Tab waren bereits vorher umgestellt (M16/M17). Model-Layer-Strings werden am Verwendungsort gewrappt, ViewModel-generierte Laufzeitstrings (Fehlermeldungen, CLI-Zeilen, Log) bleiben bewusst unübersetzt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+26
-7
@@ -1259,6 +1259,27 @@ grün, wartet auf Test durch den Nutzer in Xcode):
|
||||
Funktionen aufgeteilt (`withStaticAssignmentDialogs`/
|
||||
`withDeviceDetailSheets`).
|
||||
|
||||
- ✅ M21: `L10n.t(...)`-Zweisprachigkeit (Bug-19-Muster: M16 begann im
|
||||
Experte-Tab, siehe oben) auf die restlichen vier Tabs ausgerollt —
|
||||
Einrichten (alle sieben Wizard-Schritte:
|
||||
Mode/Wan/Lan/Vlan/Wifi/Firewall/Review, inkl. `PortConflictWarningView`
|
||||
als eigener Sub-Struct mit durchgereichtem `appLanguage`), Übersicht
|
||||
(inkl. `EdgeTooltipView`/`EdgeDetailView`/`NodeDetailView`/`LegendView`),
|
||||
LAN-Scanner, Sicherungen. `L10n.swift` um einen entsprechenden
|
||||
Übersetzungsblock erweitert; Model-Layer-Strings (z.B.
|
||||
`WanConnectionMode.label`, `OverviewNode.Category.rawValue`,
|
||||
`OverviewEdgeKind.rawValue`) werden wie schon bei `RouterOSMenuCategory`
|
||||
am Verwendungsort gewrappt, nicht in der Model-Datei selbst geändert.
|
||||
Etablierte Konvention beibehalten: nur statische View-Strings werden
|
||||
übersetzt, ViewModel-generierte Laufzeitstrings (Fehlermeldungen,
|
||||
`command.summary`/`cliLine`, `applyLog`-Zeilen, Router-Live-Daten)
|
||||
bleiben unübersetzt — dieselbe Grenze, die schon der Experte-Tab zieht.
|
||||
Bug 19 (Modifier-Ketten-Typecheck-Timeout) trat dabei ein drittes Mal
|
||||
in `DevicesView.swift` auf (zwei lange Confirmation-Dialog-Texte), Fix
|
||||
wie gehabt: in eigene Funktionen (`staticAssignmentMessage`/
|
||||
`staticRemovalMessage`) ausgelagert statt inline verkettet. Live
|
||||
bestätigt ("funktioniert").
|
||||
|
||||
**Nutzerfrage, keine Umsetzung** (2026-09-15): ob es Sinn macht, weitere
|
||||
Sprachen "per Plugin" zu importieren. Antwort: für 1-2 weitere feste
|
||||
Sprachen passt das bestehende `L10n.swift`-Dictionary-Muster gut; ein
|
||||
@@ -1271,13 +1292,11 @@ Claude-Memory `future-language-support.md` für Details.
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
1. ~~M16: restliche `RouterOSSchemaCatalog.swift`-Sektionen übersetzen~~
|
||||
und ~~Verbinden-Tab zweisprachig~~ — beides erledigt, live bestätigt.
|
||||
Offen: dieselbe `L10n.t(...)`-Umstellung auf die übrigen vier Tabs
|
||||
(Einrichten/Übersicht/Geräte/Sicherungen) ausrollen — dort läuft
|
||||
aktuell noch alles auf festen deutschen String-Literalen ohne
|
||||
Sprachumschaltung, mit dem Nutzer vereinbart Tab für Tab
|
||||
weiterzumachen.
|
||||
1. ~~M16: restliche `RouterOSSchemaCatalog.swift`-Sektionen übersetzen~~,
|
||||
~~Verbinden-Tab zweisprachig~~ und ~~`L10n.t(...)`-Umstellung auf die
|
||||
übrigen vier Tabs (Einrichten/Übersicht/LAN-Scanner/Sicherungen)~~ —
|
||||
alles erledigt, live bestätigt ("funktioniert"). Damit sind alle
|
||||
fünf Tabs vollständig zweisprachig (DE/EN).
|
||||
2. WLAN (M5) an einem Gerät mit echtem WLAN-Chip nachholen.
|
||||
2. Rest von M7: Fehlerzustände/Politur, REST-Schreibtest an einem Gerät
|
||||
mit aktivem `www-ssl`.
|
||||
|
||||
Reference in New Issue
Block a user