国际化时定义的文本中需要外部数据替换,拼接太麻烦。
写过简单的工具,替换字符串中的值。
/// 替换国际化字符串中的值
/// - 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()
}