いくつかの変数を持つ文字列をローカライズする必要があり、ローカライズされた文字列はキー: 値: コメント形式で定義する必要があります。みんな私は多くの方法を試しましたが、まだ正しい方法を取得していません. ここを参照してください...
let timeValue = 5
let timeString = "hours"
//Bellows are working fine
dateLabelString = String(format: "Overdue by %d %@", timeValue,timeString) //Working //Normal flat string
dateLabelString = String(format: NSLocalizedString("Overdue by %d %@", comment: "Overdue by 5 days/hours/minutes/seconds"), timeValue,timeString) //Working
dateLabelString = String.localizedStringWithFormat(NSLocalizedString("Overdue by %d %@", comment: "Overdue by 5 days/hours/minutes/seconds"), timeValue,timeString) //Working
dateLabelString = NSString.init(format: "Overdue by %d %@", timeValue,timeString) as String //Working
dateLabelString = NSString.init(format: NSLocalizedString("Overdue by %d %@", comment: "Overdue by 5 days/hours/minutes/seconds"), timeValue,timeString) as String //Working
//Bellows are not working
dateLabelString = String(format: NSLocalizedString("OVERDUE_BY", value: "Overdue by %d %@", comment: "Overdue by 5 days/hours/minutes/seconds"), timeValue,timeString) //Not Working
dateLabelString = String.localizedStringWithFormat(NSLocalizedString("OVERDUE_BY", value: "Overdue by %d %@", comment: "Overdue by 5 days/hours/minutes/seconds"), timeValue,timeString) //Not Working
dateLabelString = NSString.init(format: NSLocalizedString("OVERDUE_BY", value: "Overdue by %d %@", comment: "Overdue by 5 days/hours/minutes/seconds"), timeValue,timeString) as String //Not Working
Xcode: 8.2.1 Swift: 2.3
問題は NSLocalizedString にキーを含めることであることに注意してください。それ以外の場合は完全に機能します。私は鍵が必要です。