2014-10-31 12 views
6

Ich versuche herauszufinden, wie NSLocalizedString mit Variablen zu verwenden.NSLocalizedString mit Variablen Swift

Zum Beispiel, wenn ich "von Peter und Larry", in meiner Localizable.strings Datei ausgeben möchte, sollte ich folgendes haben?

"account.by_user" = "by %@ and %@"; 

Wie würde ich rufen NSLocalizedString("account.by_user", comment: "") mit, wenn es zwei Variablen name1 und name2 wo name1 = Peter und name2 = Larry?

Antwort

10

ja, sollten Sie "account.by_user" = "by %@ and %@"; haben und diese nehmen:

let myString = String(format: NSLocalizedString("account.by_user", comment: "any comment"), "Peter","Larry") 
7

Dies ist ein weiterer Weg ist und wie ich es tun.

let myString = String.localizedStringWithFormat(NSLocalizedString("by %@ and %@", comment: "yourComment"), name1, name2) 

im Grunde die Hauptidee von Lokalisierte String mit Format ist wie folgt:

let math = "Math" 
let science = "Science" 
String.localizedStringWithFormat(NSLocalizedString("I love %@ and %@", comment: "loved Subjects"), math, science) 
+0

'Ich liebe% @ und% @' ist der Schlüssel der Zeichenfolge, warum Sie '% @' dort setzen ... – user25

+0

'% @' ist ein Platzhalter für einen beliebigen Wert (* konstante Mathematik und Wissenschaft), die nicht ist übersetzt werden, aber nach, daher die Verwendung von 'String.localizedStringWithFormat'. –

+0

https://Stackoverflow.com/a/28067154/4548520 das sieht für mich richtiger aus – user25

3

eine kleine Probe unter Hinzufügen wie es brauchte einige Zeit, um die Localizable.strings Datei Formatierung Figur.

Beispiel von Variablen zu lokalisierten String hinzu:

In Code:

let myVar: String = "My Var" 

String(format: NSLocalizedString("translated_key %@", 
     comment: "Comment"), myVar) 

In Localizable.strings Datei:

"translated_key %@" = "My var is: %@"; 

Natürlich die %@ auf der rechten Seite kann ersetzt werden:

"translated_key %@" = "My var is: %@"; 
"translated_key %@" = "%@ is my var"; 
"translated_key %@" = "I use %@ as my var"; 

Auch %@ kann durch %d für int oder %f für einen Schwimmer ersetzt werden.

Verwandte Themen