Fixing bugs

This commit is contained in:
Andrea Filice
2025-04-21 19:16:05 +02:00
parent 83e7c2b8e7
commit 3f7d895228

View File

@@ -615,7 +615,7 @@ struct StatItemView: View {
// MARK: - Updated SettingsView // MARK: - Updated SettingsView
struct SettingsView: View { struct SettingsView: View {
@Environment(\.dismiss) private var dismiss @Environment(\.dismiss) private var dismiss
@State private var selectedLanguage = 0 @AppStorage("selectedLanguage") private var selectedLanguage = Locale.current.languageCode ?? "en"
@AppStorage("TunnelDeviceIP") private var deviceIP = "10.7.0.0" @AppStorage("TunnelDeviceIP") private var deviceIP = "10.7.0.0"
@AppStorage("TunnelFakeIP") private var fakeIP = "10.7.0.1" @AppStorage("TunnelFakeIP") private var fakeIP = "10.7.0.1"
@AppStorage("TunnelSubnetMask") private var subnetMask = "255.255.255.0" @AppStorage("TunnelSubnetMask") private var subnetMask = "255.255.255.0"
@@ -680,11 +680,14 @@ struct SettingsView: View {
Section(header: Text("language")) { Section(header: Text("language")) {
Picker("language", selection: $selectedLanguage) { Picker("language", selection: $selectedLanguage) {
Text("english").tag(0) Text("English").tag(0)
Text("spanish").tag(1) Text("Spanish").tag(1)
Text("italian").tag(2) Text("Italian").tag(2)
}
.onChange(of: selectedLanguage) { newValue in
let languageCode = ["en", "es", "it"][newValue]
LanguageManager().updateLanguage(to: languageCode)
} }
.pickerStyle(MenuPickerStyle())
} }
} }
.navigationTitle(Text("settings")) .navigationTitle(Text("settings"))
@@ -967,6 +970,24 @@ struct SetupPageView: View {
} }
} }
class LanguageManager: ObservableObject {
@Published var currentLanguage: String = Locale.current.languageCode ?? "en"
private let supportedLanguages = ["en", "es", "it"]
func updateLanguage(to languageCode: String) {
if supportedLanguages.contains(languageCode) {
currentLanguage = languageCode
UserDefaults.standard.set([languageCode], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
} else {
currentLanguage = "en" //FALLBACK TO DEFAULT LANGUAGE
UserDefaults.standard.set(["en"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
}
}
}
#Preview { #Preview {
ContentView() ContentView()
} }