如何在Swift中格式化本地化字符串?
我正在学习将我的应用本地化为简体中文。我正在按照本教程进行操作。
因为本教程基于Obj-C,所以格式化后的字符串可以这样写:
"Yesterday you sold %@ apps" = "Ayer le vendió %@ aplicaciones";
“你喜欢?” =“〜Es bueno?〜”;
但是我正在使用Swift。而且在Swift中,我认为您不能%@
用来表示在那里放置了一些东西。我们有字符串插值对吗?
我的应用与数学有关。我想在表格视图单元格的详细标签中显示哪些输入用于计算结果。例如
--------------1234.5678
From x, y <---- Here is the detailed label
--------------
此处的From x, y
意思是“根据x和y计算结果”。我想将其翻译成中文:
从 x, y 得出
在此之前,我可以使用以下代码:
"From \(someVariable)"
与字符串文件:
"From" = "从 得出";
这就是我在代码中使用它的方式
"\(NSLocalizedString("From", comment: "")) \(someVariable)"
但是,如果将其用于中文版本,则最终字符串将如下所示:
"从 得出 x, y"
我的意思是我可以将从
and和得出
放在字符串文件中的两个不同条目中。但是有更好的方法吗?
回答:
您 可以%@
在Swift的中使用String(format:...)
,它可以由Swift
String
或NSObject
子类的任何实例替代。例如,如果Localizable.strings文件包含定义
"From %@, %@" = "从 %@, %@ 得出";
然后
let x = 1.2let y = 2.4
let text = String(format: NSLocalizedString("From %@, %@", comment: ""), "\(x)", "\(y)")
// Or alternatively:
let text = String(format: NSLocalizedString("From %@, %@", comment: ""), NSNumber(double: x), NSNumber(double: y))
产生“从1.2,2.4得出”。另一种选择是将 %f
格式用于双浮点数:
"From %f, %f" = "从 %f, %f 得出";
与
let text = String(format: NSLocalizedString("From %f, %f", comment: ""), x, y)
请参见Niklas的答案以获得更好的解决方案,该解决方案还可以对数字表示形式进行本地化。
以上是 如何在Swift中格式化本地化字符串? 的全部内容, 来源链接: utcz.com/qa/410932.html