问题描述
作为 Swift 新手,我正在尝试在 Github 本地化 a simple SwiftUI and Core Data project:
我已将以下 en.lproj/Localizable.strings 文件添加到我的项目中:
"elo-rating %@" = "Elo rating: %@";
"avg-time %@" = "Average time: %@";
"avg-score %@" = "Average score: %@";
在我的自定义 SwiftUI 视图 TopRow.swift 中,我尝试使用上述 3 个键:
struct TopRow: View {
let topEntity:TopEntity
var body: some View {
HStack {
DownloadImage(url: topEntity.photo ?? "Todo")
.frame(width: 60,height: 60)
Spacer()
Text(topEntity.given ?? "UnkNown Person")
.frame(minWidth: 60,maxWidth: .infinity,alignment: .leading)
Spacer()
vstack {
Text("elo-rating \(topEntity.elo)")
Text("avg-time \(topEntity.avg_time ?? "")")
Text("avg-score \(topEntity.avg_score)")
}.fixedSize(horizontal: true,vertical: false)
}.font(.footnote)
}
}
然而,只有平均时间的中间文本被正确定位:
我也尝试了以下几行但没有成功:
"elo-rating %@" = "Elo rating: %ld";
"elo-rating %ld" = "Elo rating: %ld";
"elo-rating %lld" = "Elo rating: %lld";
它只是不起作用 :-) 请帮我找出我的错误。
解决方法
仅使用 %d
。 %d
用于整数类型
"elo-rating %d" = "Elo rating: %d";
对于平均分数,使用 %lf
。
"avg-score %lf" = "Average score: %lf";