【发布时间】:2020-09-08 06:00:57
【问题描述】:
当我需要翻译一个显示用户分数的插值字符串时,我真的是在努力翻译我的 iOS SwiftUI 应用程序。
我已经尝试了一些字符串扩展,但它似乎无法正常工作。例如,我有:
字符串扩展
extension String {
func localized(withComment comment: String? = nil) -> String {
return NSLocalizedString(self, comment: comment ?? "")
}
}
Localizable.strings 中的本地化字符串
"Score" = "Perf";
ContentView.swift 中的分数视图
ScoreCard("\("Score".localized()): \(quizManager.score)/\(quizManager.numberOfQuestions)")
这让我明白了:
我在网上搜索并没有发现任何关于可本地化字符串的字符串插值。
请问有人有解决办法吗?
【问题讨论】:
-
我想出了一个临时解决方案,即在它之前创建另一个 Text() 视图并将两个 Text 视图分组在 HStack() 中,如下所示:
HStack { Text("Score:"); Text(text) } -
ScoreCard里面是什么?因为如果我用Text替换它,那么你的扩展程序一切正常。使用 Xcode 11.4 / iOS 13.4 测试。 -
您的扩展程序运行良好。应该被视为解决方案
标签: swift swiftui string-interpolation localizable.strings