我有一個字串單詞“Every”,它存盤如下,但不會被翻譯。
ForEach(viewModel.repeatTimes, id: \.self) { repeatedDay in
Button(action: {
if repeatTime.contains(repeatedDay) {
repeatTime.removeAll(where: { repeatedDay == $0 })
} else {
repeatTime.append(repeatedDay)
}
}, label: {
HStack {
Text("Every " repeatedDay.day)
.foregroundColor(Color(.label))
Spacer()
if repeatTime.contains(repeatedDay) {
Image(systemName: "checkmark")
}
}
})
}
雖然按鈕、導航標題其他 Text 物件可以毫無問題地翻譯,但我無法翻譯。在我的 localized.strings 檔案中,這是訪問它的方式。
"Every " = "Every ";
我什至嘗試洗掉整個檔案并復制粘貼字串,這樣就不會有任何錯字,但我仍然無法讓它作業,也不知道我錯過了什么。
這是應用程式在翻譯成土耳其語的模擬器上的樣子

uj5u.com熱心網友回復:
你可以試試這個,或者這樣的組合(根據@jnpdx的建議):
Text(LocalizedStringKey("Every " repeatedDay.day))
uj5u.com熱心網友回復:
感謝@jnpdx 的解決方案,但是 .foreground 顏色不起作用,所以我只是將其更改為這個。
HStack {
Text("Every")
.foregroundColor(Color(.label))
Text(repeatedDay.day)
.foregroundColor(Color(.label))
}
編輯:一個更好的方法來做到這一點:
HStack {
Text("Every \(repeatedDay.day)")
.foregroundColor(Color(.label))
}
在 localized.strings 檔案中:
"Every %@" = "Every %@"; // for EN
"Every %@" = "Her %@"; // for TR
由于 HStack 添加了它自己的間距,因此可能會導致本地化字串引數 '%@' 出現一些問題,它更簡單、更清晰/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/313641.html
