swift - SwiftUI - 动态文本的本地化
问题描述
我正在为我的一些 TextFields 的本地化而苦苦挣扎。如果我要翻译的文本是这样硬编码的,通常 Text() 或 TextField() 的“正常”本地化在我的应用程序中没有任何问题:
Text("English Text")
我在我的 Localizable.strings 中翻译它,如下所示:
"English Text" = "German Text";
现在我想翻译更动态的文本字段,但我知道每个可能的条目:
TextField("New note" + (refresh ? "" : " "),text: $newToDo, onCommit: {
self.addToDo()
self.refresh.toggle()
})
(刷新是必要的,因为 SwiftUI 错误有时不会再次显示占位符文本。)
另一个例子是:
func dayWord() -> String {
let dateFormatter = DateFormatter()
dateFormatter.timeZone = TimeZone.current
dateFormatter.locale = Locale(identifier: "de_DE")
dateFormatter.dateFormat = "EEEE"
return dateFormatter.string(from: self)
}
var day: String {
return data.date.dateFromMilliseconds().dayWord()
}
Text(day.prefix(2))
Text(day.prefix(2)) 只有七种可能的状态,但我不知道在我的 Localizable.strings 中写什么作为键。
解决方案
使用 NSLocalizedString,比如
TextField(NSLocalizedString("New note", comment: "") + (refresh ? "" : " "), ...
推荐阅读
- django - python django这个错误的原因是什么
- django - 子查询字段的总和 django
- android - 字符串资源和十进制格式
- ios - 通过 OneDrive 进行的 ios OTA 无法正常工作
- arrays - PySpark 在数据帧中将 ByteArray 转换为 Double
- javascript - 无法使用 CSS 网格使项目变小
- c# - 在 SQL Server Management Studio 中更新记录后,MVC 网页不会更改
- reactjs - React、API 密钥和中介服务
- android - 使用 FragmentStatePagerAdapter 填充 TabLayout 仅包含选定项
- ruby-on-rails - Rails 5 仅在某些视图中部分渲染