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。
我在 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。