带参数的本地化字符串在参数周围添加换行符和括号
Localized string with argument adds line breaks and brackets around argument
我正在尝试显示包含参数的本地化字符串。结果不是在一行中显示嵌入参数的字符串,而是一个损坏的 3 行字符串:
预期结果:
The price is .99/year.
结果:
The price is (
".99"
)/year.
Localizable.strings:
"price_string" = "The price is %@/year.";
通话:
"price_string".localized(priceString)
其中 priceString
是一个字符串变量。
而.localized()
是这样定义的:
extension String {
var localized: String {
return NSLocalizedString(self, comment: "\(self)_comment")
}
func localized(_ args: CVarArg...) -> String {
return String(format: localized, args)
}
}
请查看输出。它清楚地表明 price 参数是一个数组。实际上,可变参数 args
被视为数组。
所以你只是用错了API
func localized(_ args: CVarArg...) -> String {
return String(format: localized, arguments: args)
}
我正在尝试显示包含参数的本地化字符串。结果不是在一行中显示嵌入参数的字符串,而是一个损坏的 3 行字符串:
预期结果:
The price is .99/year.
结果:
The price is (
".99"
)/year.
Localizable.strings:
"price_string" = "The price is %@/year.";
通话:
"price_string".localized(priceString)
其中 priceString
是一个字符串变量。
而.localized()
是这样定义的:
extension String {
var localized: String {
return NSLocalizedString(self, comment: "\(self)_comment")
}
func localized(_ args: CVarArg...) -> String {
return String(format: localized, args)
}
}
请查看输出。它清楚地表明 price 参数是一个数组。实际上,可变参数 args
被视为数组。
所以你只是用错了API
func localized(_ args: CVarArg...) -> String {
return String(format: localized, arguments: args)
}