Swift 中带有变量的 NSLocalizedString

NSLocalizedString with variable in Swift

如何翻译其中包含变量的字符串,如下所示:

let alert = UIAlertController(title: NSLocalizedString("NEUEARTIKEL",comment:"Bitte gib einen neuen Artikel für \(titelArr[sender.tag]) an:"), message: nil, preferredStyle: .Alert)

当我在 localizable.string 中像这样正常翻译字符串时:

NEUEARTIKEL="Add an item to \(titelArr[sender.tag]):";

警报将显示 (titelArr[sender.tag]) 而不是它的值。

这可能非常简单,但我是 swift 的新手,无法 google 提供一些有用的东西! ;-)

感谢您的帮助 //塞布

在您的 localisable 中,您不能直接设置自定义文本,您只能使用文本和格式标志。所以,为了达到你的目标,你可以这样做:

NEUEARTIKEL="Add an item to %@:";

之后,使用 NSString(format: <#NSString#>, <#args: CVarArgType#>...)

获得您的头衔 well-formatted
let title = NSString(format: NSLocalizedString("NEUEARTIKEL", nil), titelArr[sender.tag])
let alert = UIAlertController(title: title, message: nil, preferredStyle: .Alert)

完成后,您的可本地化字符串将按照您的需要进行格式化。

这是另一种方法以及我的做法。

let NEUEARTIKEL = "Add an item to %@:"
let alert = UIAlertController(title: String.localizedStringWithFormat(NSLocalizedString(NEUEARTIKEL, comment: "Bitte gib einen neuen Artikel für \(titelArr[sender.tag]) an:"), titelArr[sender.tag]), message: nil, preferredStyle: .Alert)

基本上,带格式的本地化字符串的主要思想是这样的:

let math = "Math"
let science = "Science"
String.localizedStringWithFormat(NSLocalizedString("I love %@ and %@", comment: "loved Subjects"), math, science)
let myString = String(format: NSLocalizedString("account.by_user", comment: "any comment"), "Peter","Larry")

let title = String(format:
            NSLocalizedString("account.user_count", comment: ""),
                           users.count.description)

你可以找到要点here