swift - 如何在 Swift 中本地化 tableView?

标签 swift uitableview localization

我正在将我的应用程序翻译成多种语言, 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/

相关文章:

ios - 如何自定义UITableViewCell的插入删除控件?

ios - 如何更改不在 Storyboard 中的 viewController 的方向

ios - 设置 slider 值以在 AVPlayer 中设置 SeekToTime

ios - 检索 UITableViewCell 框架

ios - 如何在 Xcode 中对图像 Assets 使用本地化?

iOS 本地化图像未显示

java - Vaadin 和自定义 Gwt Widget - 设置小部件语言

ios - 如何更改 UITableViewCell 中先前按下的 UIButton 标签?

swift - 在 Swift 中使用 "/"的 Base64Encoding 结果字符串

ios - 带有手势识别器的 UITextView - 有条件地将触摸转发到父 View