國際化時定義的文本中需要外部數據替換,拼接太麻煩。
寫過簡單的工具,替換字符串中的值。
/// 替換國際化字符串中的值
/// - Parameters:
/// - string: 原始字符串
/// - replaceTarget: 待替換字符(可以傳入多個,index:標示根據 mark 切割后所占的下標位置;value:該位置對應的值。)
/// - mark: 替換標識
/// 例子:"test" = "ABC*DEF*EGH*";
/// LocalizedTool.customLocalized(NSLocalizedString("test",comment:""), replaceTarget: [(index: 1, value: "123"), (index: 3, value: "234"), (index: 5, value: "345")])
static func customLocalized(_ string: String, replaceTarget: [(index: Int, value: String)], mark: Character? = "*") -> String {
var array = string.split(separator: mark!).map{String($0)}
for target in replaceTarget {
array.insert(target.value, at: target.index)
}
return array.joined()
}