在 Xcode 和 SwiftUI 中如何避免预览中使用的字符串被写入 Localizes.xcstrings?

问题描述 投票:0回答:1

我有很多自定义视图。下面是一个最小的例子:

struct PairView: View {
    let left: String
    let right: String
    var body: some View {
        HStack(alignment: .firstTextBaseline) {
            Text(left)
                .foregroundColor(.black)
            Text(right)
                .foregroundColor(.gray)
        }
    }
}

在应用程序代码中,我有时会编写硬编码字符串,因此 Xcode 预计会自动将“1000”和“$”写入 Localized.xcstrings 中。这太棒了!

PairView(left: "1000", right: "$")

但是对于预览,我也有硬编码字符串,但它们是虚拟文本。不是真实的东西,我不希望它们出现在 Localized.xcstrings 文件中。

#Preview {
    PairView(left: "nacho", right: "4d")
}

如何使 SwiftUI 预览中的字符串写入 Localized.xcstrings 无效?

我读到了有关逐字记录(例如:文本(逐字记录:“...”)的内容,但我找不到有关如何将其应用于自定义视图的信息。

swift xcode swiftui localization localizable.strings
1个回答
0
投票

verbatim
初始化器中使用
Text
参数。这可以防止 Xcode 将这些字符串视为需要本地化。但是,直接在自定义视图中应用
verbatim
方法可能并不简单,因为
verbatim
Text
视图的初始化参数,而不是所有视图的通用功能。

struct PreviewText: View {
  var text: String
  
  var body: some View {
    Text(verbatim: text)
  }
}

使用说明:

#Preview {
  PairView(left: PreviewText(text: "nacho").text, right: PreviewText(text: "4d").text)
}
© www.soinside.com 2019 - 2024. All rights reserved.