2014-10-31 7 views
6

Sto cercando di capire come utilizzare NSLocalizedString con variabili.NSLocalizedString con variabili Swift

Ad esempio, se voglio produrre "di Peter e Larry", nel mio file Localizable.strings, dovrei avere quanto segue?

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

Come dovrei chiamare NSLocalizedString("account.by_user", comment: "") con se ci sono 2 variabili name1 e name2 dove name1 = Pietro e name2 = Larry?

risposta

10

sì, si dovrebbe avere "account.by_user" = "by %@ and %@"; e prende questo:

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

Questo è un altro modo e come lo faccio.

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

sostanza, l'idea principale di stringa localizzata con il formato è simile a questo:

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

'I love% @ e% @' è la chiave della stringa, perché si inserisce '% @' là ... – user25

+0

'% @' è un segnaposto per qualsiasi valore (* matematica costante e scienza) che non è essere tradotto ma messo dopo, quindi l'uso di 'String.localizedStringWithFormat'. –

+0

https://stackoverflow.com/a/28067154/4548520 mi sembra più corretto per me – user25

3

L'aggiunta di un piccolo campione di seguito come mi c'è voluto del tempo per capire il file di formattazione Localizable.strings.

Esempio di aggiunta di variabili stringa localizzata:

in codice:

let myVar: String = "My Var" 

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

Nel file di Localizable.strings:

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

Naturalmente, il %@ sul lato destro può essere sostituito:

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

Inoltre, %@ può essere sostituito da %d per interno o %f per un galleggiante.

Problemi correlati