gpt4 book ai didi

ios - 如何在 Swift 中格式化本地化字符串?

转载 作者:IT王子 更新时间:2023-10-29 05:06:30 25 4
gpt4 key购买 nike

我正在学习将我的应用程序本地化为简体中文。我正在关注 this tutorial关于如何做到这一点。

因为教程是基于Obj-C的,所以格式化字符串可以这样写:

"Yesterday you sold %@ apps" = "Ayer le vendió %@ aplicaciones";

“你喜欢吗?” = "~Es bueno?~";

但我使用的是 Swift。在 Swift 中,我不认为你可以使用 %@ 来表示有东西要放在那里。我们有字符串插值吗?

我的应用程序与数学有点相关。我想在表格 View 单元格的详细标签中显示哪些输入用于计算结果。例如

--------------
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"

我的意思是我可以将得出 放在字符串文件的两个不同条目中。但是有更好的方法吗?

最佳答案

可以在Swift的String(format:...)中使用%@,它可以被替换通过 Swift StringNSObject 子类的任何实例。例如,如果 Localizable.strings 文件包含定义

"From %@, %@" = "从 %@, %@ 得出";

然后

let x = 1.2
let 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 双 float 格式:

"From %f, %f" = "从 %f, %f 得出";

let text = String(format: NSLocalizedString("From %f, %f", comment: ""), x, y)

参见 Niklas' answer一个更好的解决方案,将数字表示本地化

关于ios - 如何在 Swift 中格式化本地化字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35316655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com