如何翻译包含变量的字符串,如下所示:
let alert = UIAlertController(title: NSLocalizedString("NEUEARTIKEL",comment:"Bitte gib einen neuen Artikel für \(titelArr[sender.tag]) an:"), message: nil, preferredStyle: .Alert)
当我在localizable.string中正常翻译String时这样:
NEUEARTIKEL="Add an item to \(titelArr[sender.tag]):";
警报将显示(titelArr [sender.tag])而不是其值。
这可能非常简单,但我是一个新手,很快就无法谷歌有用了! ; - )
感谢您的帮助 //的Seb
答案 0 :(得分:6)
在localisable中,您无法直接设置自定义文本,只能使用文本和格式标记。因此,为了实现目标,您可以这样做:
NEUEARTIKEL="Add an item to %@:";
之后,使用NSString(format: <#NSString#>, <#args: CVarArgType#>...)
let title = NSString(format: NSLocalizedString("NEUEARTIKEL", nil), titelArr[sender.tag])
let alert = UIAlertController(title: title, message: nil, preferredStyle: .Alert)
完成后,您的可本地化字符串将根据需要进行格式化。
答案 1 :(得分:6)
这是另一种方式以及我是如何做到的。
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)
基本上,具有格式的Localized String的主要思想是这样的:
let math = "Math"
let science = "Science"
String.localizedStringWithFormat(NSLocalizedString("I love %@ and %@", comment: "loved Subjects"), math, science)
答案 2 :(得分:1)
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