SwiftUI - 本地化的可访问性标签

SwiftUI - localized accessibility label

我在 SwiftUI 中有以下代码,我想将辅助功能标签从英语翻译成波兰语:

Text("Example")
.accessibilityLabel("Color: \(color.description)")

我在 Localizable.strings 文件中有这样的翻译:

/* Color: color.description */
"Color: %@" = "Kolor: %@";

/* Color */
"blue" = "niebieski";

我用 VoiceOver 对此进行了测试,它显示为: “颜色:蓝色” 但应该阅读: “颜色:niebieski”

这意味着 color.description(在我的例子中是“blue”)没有被翻译成“niebieski”。这是为什么?我做错了什么?

您应该使用 NSLocalizedString 来本地化您的字符串。

所以在你的情况下你应该使用

Text("Example")
.accessibilityLabel(String(format: NSLocalizedString("Color: %@", comment: ""),
 color.description))

我修好了 :) 很简单。

这是一个工作代码:

Text("Example")
  .accessibilityLabel("Color")
  .accessibilityValue(LocalizedStringKey(Color.blue.description))

如果颜色值来自一个变量(就像在原来的问题中一样),它将是:

Text("Example")
  .accessibilityLabel("Color")
  .accessibilityValue(LocalizedStringKey(color.description))

重要的是使用localizedString(value:)。 而且我已经将 accessibilityLabel 分开,以分开 accessibilityLabel 和 accessibilityValue。