2014-10-31 21 views
6

Próbuję dowiedzieć się, jak używać NSLocalizedString ze zmiennymi.NSLocalizedString ze zmiennymi Swift

Na przykład, jeśli chcę wyprowadzać "przez Petera i Larry'ego", w moim pliku Localizable.strings powinienem mieć następujące elementy?

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

Jak nazwałbym NSLocalizedString("account.by_user", comment: "") ze jeśli istnieją 2 zmienne name1 i name2 gdzie name1 = Piotr i name2 = Larry?

Odpowiedz

10

tak, trzeba mieć "account.by_user" = "by %@ and %@"; i wziąć to:

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

Jest to kolejny sposób i jak to zrobić.

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

zasadzie główną ideą zlokalizowanych String z formatu jest tak:

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

"Uwielbiam% @ i% @" jest kluczem ciągu, dlaczego wstawiasz '% @' tam ... – user25

+0

'% @' jest symbolem zastępczym dowolnej wartości (* stała matematyka i nauka), która nie jest tłumaczone, ale umieszczane po, stąd użycie "String.localizedStringWithFormat". –

+0

https://stackoverflow.com/a/28067154/4548520 to wygląda bardziej poprawnie dla mnie – user25

3

Dodawanie małą próbkę poniżej jako zajęło mi trochę czasu, aby dowiedzieć formatowanie pliku Localizable.strings.

Przykład dodawania zmiennych miejscowego wyrażenie:

W kodzie:

let myVar: String = "My Var" 

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

w pliku Localizable.strings:

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

oczywiście %@ po prawej stronie można wymienić:

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

Można również zastąpić %@ przez %d dla int lub %f dla elementu pływającego.

Powiązane problemy