NSLocalizedString与swiftvariables
我试图使用NSLocalizedString本地化我的应用程序。 当我导入XLIFF文件时,大多数工作像一个魅力,但一些不这样做,一些string没有本地化。 我注意到,问题是从NSLocalizedString里面包含一些variables,如:
NSLocalizedString(" - \(count) Notifica", comment: "sottotitolo prescrizione per le notifiche al singolare")
要么
NSLocalizedString("Notifica per \(medicina!) della prescrizione \(prescription!)\nMemo: \(memoTextView.text)", comment: "Messaggio della Local Notification")
也许这不是这种东西的正确语法。 有人可以解释我如何迅速做到这一点? 非常感谢你。
你可以在NSLocalizedString
使用sprintf
格式参数,所以你的例子可以像这样:
let myString = String(format: NSLocalizedString(" - %d Notifica", comment: "sottotitolo prescrizione per le notifiche al singolare"), count)
在WWDC2014“使用Xcode 6进行本地化”的会话#412中,Swift的正确方法如下:
String.localizedStringWithFormat( NSLocalizedString(" - %d Notifica", comment: "sottotitolo prescrizione per le notifiche al singolare"), count)
我已经遵循了创buildstring扩展的方法,因为我有很多string进行本地化。
extension String { var localized: String { return NSLocalizedString(self, comment:"") } }
在代码中使用它进行本地化:
self.descriptionView.text = "Description".localized
对于dynamicvariables的string,请按照
self.entryTimeLabel.text = "\("Doors-open-at".localized) \(event.eventStartTime)"
在String文件中声明不同语言的string(例如:阿拉伯文和英文)
希望会有所帮助!
我创build了一个String
的extension
,因为我有很多strings
进行localized
。
extension String { var localized: String { return NSLocalizedString(self, tableName: nil, bundle: Bundle.main, value: "", comment: "") } }
例如:
let myValue = 10 let anotherValue = "another value" let localizedStr = "This string is localized: \(myValue) \(anotherValue)".localized print(localizedStr)