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了一个Stringextension ,因为我有很多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)