如何在Swift中本地化TableView
个单元格?
对于一个String变量,它是:
let alertTitle = NSLocalizedString("a", comment: "")
但是如何为TableView
本地化数组?
let array = ["a", "b", "c", "d", "e"]
答案 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";