forked from kay/RouterOS
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>
45 lines
1.8 KiB
Swift
45 lines
1.8 KiB
Swift
import SwiftUI
|
|
|
|
struct ModeStepView: View {
|
|
@ObservedObject var viewModel: SetupViewModel
|
|
@AppStorage("appLanguage") private var appLanguage: String = "de"
|
|
|
|
var body: some View {
|
|
Form {
|
|
Section {
|
|
Picker(L10n.t("Modus", appLanguage), selection: $viewModel.mode) {
|
|
Text(L10n.t("Einfach", appLanguage)).tag(SetupMode.simple)
|
|
Text(L10n.t("Experte", appLanguage)).tag(SetupMode.expert)
|
|
}
|
|
.pickerStyle(.segmented)
|
|
}
|
|
|
|
Section {
|
|
switch viewModel.mode {
|
|
case .simple:
|
|
Text(L10n.t("Grundeinrichtung: Internetverbindung (WAN), ein Heimnetzwerk (LAN) mit DHCP, WLAN und ein fest aktivierter Firewall-Grundschutz.", appLanguage))
|
|
Text(L10n.t("Kein VLAN, keine mehreren getrennten Netzwerke, keine Netzwerk-Isolation — für später jederzeit über den Expertenmodus nachrüstbar.", appLanguage))
|
|
.font(.caption)
|
|
.foregroundStyle(.secondary)
|
|
case .expert:
|
|
Text(L10n.t("Voller Zugriff: mehrere LAN-Interfaces mit je eigenem DHCP-Server, VLANs, Netzwerk-Isolation zwischen Netzwerken, und alle Firewall-Optionen.", appLanguage))
|
|
.foregroundStyle(.secondary)
|
|
}
|
|
}
|
|
|
|
Section {
|
|
HStack {
|
|
Spacer()
|
|
Button(L10n.t("Weiter", appLanguage)) { viewModel.goNext() }
|
|
}
|
|
}
|
|
}
|
|
.formStyle(.grouped)
|
|
.navigationTitle(LocalizedStringKey(L10n.t("Modus wählen", appLanguage)))
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
ModeStepView(viewModel: SetupViewModel(connectionService: ConnectionService()))
|
|
}
|