2015-01-16 4 views
2

Как я могу перевести строку, которая имеет переменную в нем так:NSLocalizedString с переменной 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]) вместо его значения.

Это, вероятно, очень просто, но я новый, чтобы быстро, не смог Google что-то полезное! ;-)

Спасибо за вашу помощь // Себ

+0

Возможный дубликат [NSLocalizedString с быстрой переменной] (HTTP : //stackoverflow.com/questions/26277626/nslocalizedstring-with-swift-variable) – shim

+0

Возможный дубликат [NSLocalizedString с переменными Swift] (http://stackoverflow.com/questions/26 684868/NSLocalizedString-с-переменные-быстрые) – bauerMusic

ответ

5

В вашем 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) 

Как только это сделано, ваша локализуемым строка будет отформатирован вы хотите.

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) 

в основном, основная идея локализованную строку с форматом, как это:

let math = "Math" 
let science = "Science" 
String.localizedStringWithFormat(NSLocalizedString("I love %@ and %@", comment: "loved Subjects"), math, science) 
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) 

Вы можете найти GIST here