我正在将我的应用程序翻译成多种语言, Storyboard翻译工作完美,但我正在努力本地化 tableView(tableView 单元格)和相应的 viewController 的内容。
到目前为止,我已经为 2 种语言创建了字符串文件 Localizable.strings。
FirstViewController 包含一个数组,其名称作为 UILabel 传递给 TableViewCell,然后传递给相应的 DetailViewController。
表格 View 单元格:
class UpperTableViewCell: UITableViewCell {
@IBOutlet weak var upperImage: UIImageView!
@IBOutlet weak var upperBodyType: UILabel!
@IBOutlet weak var upperLblName: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
名称标签的Main.strings中的objectID引用是 "BkN-Wi-Ai3.text"= "Label1";
但是我不知道如何将 name 数组和 bodyType 数组的翻译数据翻译和解析为 TableView 中的标签。
感谢您的建议。
最佳答案
尝试以下步骤:
制作字符串扩展名(表名应该是您的 .strings 文件):
extension String {
func localized(bundle: Bundle = .main, tableName: String = "Localized”) -> String {
return NSLocalizedString(self, tableName: tableName, value: "**\(self)**", comment: "")
}
}
在那之后更新你的awakeFromNib:
override func awakeFromNib() {
super.awakeFromNib()
upperBodyType.text = upperBodyType.text?.localized()
upperLblName.text = upperLblName.text?.localized()
}
关于swift - 如何在 Swift 中本地化 tableView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57858468/