mal*_*low 2 xcode ios swift swiftui
我正在尝试使用此方法本地化我的应用程序:如何在 Swift UI 中实现本地化
一般来说它有效。我发现的一个问题是文本连接。示例:我有文本“bookings”的翻译。为了使它工作,我需要分离我以前的代码:
Text("bookings: 40")
Run Code Online (Sandbox Code Playgroud)
成为:
Text("bookings")
.fontWeight(.bold)
+ Text(": 40")
.fontWeight(.bold)
Run Code Online (Sandbox Code Playgroud)
翻译仍然有效。问题是现在我需要两次文本格式(在这个例子中:fontWeight,但有时它更复杂)。
我试图让它更简单:
Text("bookings" + ": 40)
.fontWeight(.bold)
Run Code Online (Sandbox Code Playgroud)
此代码适用于英语,但现在不会被翻译成其他语言。我应该如何更改我的代码以使其工作并保持简单?
Text本地化适用于字符串插值,例如参见WWDC 2019: What's new in Swift session video,或Localization in SwiftUI,或此答案。
但是,您必须使用正确的格式说明符。对于字符串,它是%@,对于整数,它是%lld。例子:
let value = 40
struct ContentView: View {
var body: some View {
Text("bookings: \(value)")
.fontWeight(.bold)
}
}
Run Code Online (Sandbox Code Playgroud)
带有本地化条目
"bookings: %lld" = "Buchungen: %lld";
Run Code Online (Sandbox Code Playgroud)
在 Localizable.strings 文件中,文本“Buchungen: 40”以粗体显示:
| 归档时间: |
|
| 查看次数: |
1089 次 |
| 最近记录: |