繁体   English   中英

SwiftUI 本地化不适用于 @State 字符串

[英]SwiftUI Localisation not working with @State Strings

我已经在我的 SwiftUI 应用程序中实现了本地化。 一切正常,但我在本地化 @State var 时遇到问题。 本地化不起作用,我只能打印出密钥。 知道如何解决这个问题吗?

type的值已经在我的Localizable.strings

@State var type: String

var body: some View {
    VStack {
        Text(self.type) // not working
        Text("test") // working
    }
}

您可以将字符串转换为NSLocalizedString

Text(NSLocalizedString(type, comment: ""))

或将类型的type更改为LocalizedStringKey

@State var type: LocalizedStringKey

当将字符串文字传递给Text时,需要推断其类型(因为没有明确说明)。 文字文本可能是 UI 的固定部分,因此它被解释为LocalizedStringKey

当您传递属性self.type时,它具有显式类型 - String ,因此使用Text(_ verbatim:)初始化程序会导致非本地化文本。

如果您希望该属性被本地化,您可以使用LocalizedStringKey(_ string: String)初始化程序:

Text(LocalizedStringKey(self.type))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM