带参数的本地化字符串在参数周围添加了换行符和括号



我正在尝试显示包含参数的本地化字符串。结果不是在嵌入参数的一行中显示字符串,而是损坏的 3 行字符串:

预期成果:

The price is $9.99/year.

结果:

The price is (
"$9.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)
}
}

请查看输出。它清楚地表明价格参数是一个数组。事实上,可变参数args被视为一个数组。

所以你只是使用了错误的API

func localized(_ args: CVarArg...) -> String {
return String(format: localized, arguments: args)
}

最新更新