Простое представление имеет смещенное локализованное содержимое после преобразования в изображение с помощью ImageRenderer.
Независимо от языка, при использовании ImageRenderer оно будет неправильно преобразовано в английский.
Я пытался использовать UIGraphicsImageRenderer, но UIGraphicsImageRenderer фиксирует изображение в неточном положении, и оно будет смещено, в результате чего появится белая рамка. И я не знаю, почему в некоторых случаях он сталкивается с циклическими ссылками, которые приводят к пустым изображениям.
Снимки экрана кода и симулятора
Это по-прежнему проблематично на реальном телефоне и TestFlight p>
Я не уверен, в чем проблема, я предполагаю, что это ошибка ImageRenderer.
VStack(spacing: 8) {
// The normal view
let simpleView = VStack() {
Text("连续生存")
Text("总打卡天数")
Text("\(0) days")
Text("\(1) days")
Text("\(2) days")
}
.padding(4)
.background(Color.gray)
simpleView // The normal view, language is Chinese
simpleView // "\(1) days" is correctly converted to "1 day".
.environment(\.locale, .init(identifier: "en"))
// After converting to UIImage with ImageRenderer, the text becomes English, it should be Simplified Chinese.
// and "\(1) days" is not converted to "1 day".
let image: UIImage = ImageRenderer(content: simpleView).uiImage ?? UIImage(named: "error.image")!
Image(uiImage: image)
}
.environment(\.locale, .init(identifier: "zh-Hans")) // Language set to Simplified Chinese
。
Localizable.strings:
"总打卡天数" = "Total Check-ins";
"连续生存" = "Streak";
Localizable.stringsdict:
%lld days
NSStringLocalizedFormatKey
%#@Variable@
Variable
NSStringFormatSpecTypeKey
NSStringPluralRuleType
NSStringFormatValueTypeKey
lld
other
%lld days
one
1 day
zero
0 day
Подробнее здесь: https://stackoverflow.com/questions/782 ... rectly-bug