Localizable.strings работает для String, но не для Double и Integer 32
Как новичок в Swift, я пытаюсь локализовать простой проект SwiftUI и Core Data на Github:
Я добавил в свой проект следующий файл en.lproj / Localizable.strings :
"elo-rating %@" = "Elo rating: %@";
"avg-time %@" = "Average time: %@";
"avg-score %@" = "Average score: %@";
И в моем пользовательском SwiftUI View 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";
Просто не работает :-) Помогите, пожалуйста, найти мою ошибку.
1 ответ
Решение
Использовать только .
%d
для целочисленного типа
"elo-rating %d" = "Elo rating: %d";
Для среднего балла используйте
%lf
.
"avg-score %lf" = "Average score: %lf";