如何在Swift中本地化tableView单元格?

时间:2018-01-21 19:31:47

标签: ios arrays swift uitableview localization

如何在Swift中本地化TableView个单元格?

对于一个String变量,它是:

let alertTitle = NSLocalizedString("a", comment: "")

但是如何为TableView本地化数组?

let array = ["a", "b", "c", "d", "e"]

3 个答案:

答案 0 :(得分:4)

您需要像使用alertTitle一样单独本地化每个字符串。如果您不使用本地化字符串的注释(与大多数人一样),您可以使用扩展名简化本地化

extension String {

    var localized: String {
        return NSLocalizedString(self, comment: "")
    }

}

并使用

定义您的数组
let array = ["a".localized, "b".localized, "c".localized, "d".localized, "e".localized]

甚至更短

let let array = ["a", "b", "c", "d", "e"].map({ $0.localized })

答案 1 :(得分:2)

使用@ sundance的字符串扩展名:

extension String {
    var localized: String {
        return NSLocalizedString(self, comment: "")
    }
}

我希望在[String]上使用此扩展程序:

extension Array where Element == String {
    var localized: [Element] {
        return self.map({ $0.localized })
    }
}

然后你可以使用它:

let array = ["a", "b", "c", "d", "e"].localized

答案 2 :(得分:1)

 let array = [NSLocalizedString("a", comment: ""), NSLocalizedString("b", comment: ""), NSLocalizedString("c", comment: ""), NSLocalizedString("d", comment: ""), NSLocalizedString("e", comment: "")]

在本地化相关数据组时我喜欢的某种方式

 let arrayLocalized = [string]()

 for i in 1...10
 {
   arrayLocalized.append(NSLocalizedString("a\(i)", comment: ""))

 }

本地化文件就像这样讨论

 "a1"="first value";

 "a2"="second value";

  .
  .
  .


 "a10"="last value";