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))
我在我的 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))