带SwiftUI的Swift 5:如何动态更改环境区域设置

带SwiftUI的Swift 5:如何动态更改环境区域设置,swiftui,locale,environment,Swiftui,Locale,Environment,我必须让用户从列表中选择应用程序的语言 在SceneDelegate中放置下一行效果很好,因为它在开头加载指定的语言: window.rootViewController = UIHostingController(rootView: ContentView().environment(\.locale, .init(identifier: "de"))) 但我不知道如何从包含列表的视图中设置区域设置,以便在整个应用程序中切换语言 感谢您的帮助您可以使用@State var作为区域设置标识符。

我必须让用户从列表中选择应用程序的语言

在SceneDelegate中放置下一行效果很好,因为它在开头加载指定的语言:

window.rootViewController = UIHostingController(rootView: ContentView().environment(\.locale, .init(identifier: "de")))
但我不知道如何从包含列表的视图中设置区域设置,以便在整个应用程序中切换语言


感谢您的帮助

您可以使用
@State var
作为区域设置标识符。在本例中,我使用按钮更改状态,文本立即更改

结构语言视图:视图{ @状态变量标识符=“en” var body:一些观点{ VStack{ 按钮(“法语”,动作:{ self.identifier=“fr” }) 按钮(“英语”,动作:{ self.identifier=“en” }) 文本(“测试”) } .environment(\.locale.init(标识符:标识符)) } } 在我的Localizable.strings中,我添加了
“Test”=“我的英文文本”用于英语和
“测试”=“法语文本”法语