如何在 Swift 中本地化 tableView 单元格?
Posted
技术标签:
【中文标题】如何在 Swift 中本地化 tableView 单元格?【英文标题】:How to localize tableView cells in Swift? 【发布时间】:2018-01-21 19:31:47 【问题描述】:如何在 Swift 中本地化 TableView
单元格?
对于一个字符串变量,它是:
let alertTitle = NSLocalizedString("a", comment: "")
但是如何本地化 TableView
的数组?
let array = ["a", "b", "c", "d", "e"]
【问题讨论】:
【参考方案1】:您需要像使用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 )
【讨论】:
这种方法存在一个严重的问题 - 您不能使用genstrings
在代码中使用 NSLocalizedString
生成字符串文件,并且您不能为每个字符串提供正确的 cmets .【参考方案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
【讨论】:
这种方法存在一个严重的问题 - 您不能使用genstrings
在代码中使用 NSLocalizedString
生成字符串文件,并且您不能为每个字符串提供正确的 cmets .【参考方案3】:
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";
【讨论】:
使用for
循环的方法存在严重问题 - 您不能使用 genstrings
在代码中使用 NSLocalizedString
生成字符串文件,而且您不能为每个字符串提供适当的 cmets。以上是关于如何在 Swift 中本地化 tableView 单元格?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中使用 MagicalRecord CoreData 删除 tableview 中的记录
如何在 swift 中更改 tableView 部分中的文本颜色
如何在 swift 中在动态 TableView 中创建动态 tableView?