ios - 带有动态变量的 NSLocalizedString (Swift) - 不工作

标签 ios swift nslocalizedstring

我开始使用 this guide 将本地化集成到我的应用程序中.在我本地化了一个包含动态变量的字符串之前,它工作得很好。原文是这样的:

let myString = "I have \(countOfMoney) dollars in my wallet."

然后我试着模仿this堆栈答案以对其进行本地化。但是,我收到 EXC_Bad_Access 错误。以下是我尝试对其进行本地化的方法。

这是在我的 Localizable.strings 英文文件中:

localizedMsg="I have %@ dollars in my wallet.";

这是在我的 View Controller 中:

let countOfMoney = moneyInWallet.count
let localizedMsg = String(format: NSLocalizedString("localizedMsg", comment: ""), countOfMoney)

但是,当我在模拟器上运行该应用程序时,此行显示为错误。我该如何解决?

最佳答案

您的设置不正确。您的代码应如下所示:

let localizedMsg = String(format: NSLocalizedString("I have %d dollars in my wallet.", comment: ""), countOfMoney)

现在运行 genstrings 以获取更新后的 Localizable.strings 文件。

这将添加行:

"I have %d dollars in my wallet." = "I have %d dollars in my wallet.";

另请注意从 %@%d 的更改。这假定 countOfMoney 是整数类型。仅使用 %@ 作为对象指针。

关于ios - 带有动态变量的 NSLocalizedString (Swift) - 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37264744/

相关文章:

iphone - 本地化动态 NSString

objective-c - “无法识别的选择器发送到实例”

ios - 线程 1 : Signal SIGABRT when trying to switch view controllers

ios - UIView 框架和边界错误

ios - Swift Facebook SDK 无法工作,出现 "Include of non-modular header..."错误

ios - 如何使用英语以外的语言,但仍然使用英语的 NSLocalizedString?

ios - 快速关闭 xib View

ios - Apple 发布的 64 位支持公告对 Worklight 6.1 开发人员有何影响?

swift - 覆盖 Swift 子类中的属性

objective-c - 静态 NSLocalizedString