2014-10-31 9 views
6

मैं यह पता लगाने की कोशिश कर रहा हूं कि चर के साथ NSLocalizedString का उपयोग कैसे करें।परिवर्तनीय के साथ NSLocalizedString स्विफ्ट

उदाहरण के लिए, यदि मैं अपने Localizable.strings फ़ाइल में "पीटर और लैरी द्वारा" आउटपुट करना चाहता हूं, तो क्या मुझे निम्न होना चाहिए?

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

मैं के साथ अगर वहाँ 2 चर हैं NSLocalizedString("account.by_user", comment: "")name1 और name2 जहां name1 = पीटर और name2 = लैरी कैसे कहेंगे?

उत्तर

10

हां, तो आप "account.by_user" = "by %@ and %@"; होनी चाहिए और इस ले:

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

यह एक और तरीका है और मैं इसे कैसे करते हैं।

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

मूल रूप से, स्वरूप के साथ स्थानीय स्ट्रिंग की मुख्य विचार इस तरह है:

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

'मुझे प्यार% @ और% @ 'स्ट्रिंग की कुंजी है, आप'% @ 'क्यों डालते हैं ... – user25

+0

'% @ 'किसी भी मूल्य (* निरंतर गणित और विज्ञान) के लिए प्लेसहोल्डर है जो नहीं है अनुवाद किया जा रहा है लेकिन बाद में रखा गया है, इसलिए 'String.localizedStringWithFormat' का उपयोग। –

+0

https://stackoverflow.com/a/28067154/4548520 यह मेरे लिए अधिक सही दिखता है – user25

3

नीचे के रूप में यह मेरे लिए कुछ समय Localizable.strings फ़ाइल प्रारूपण लगाने की ले ली एक छोटा सा नमूना जोड़ा जा रहा है।

कोड में:

let myVar: String = "My Var" 

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

Localizable.strings फ़ाइल में:

"translated_key %@" = "My var is: %@"; 
बेशक

, सही पक्ष पर %@

स्थानीय स्ट्रिंग के लिए चर को जोड़ने का उदाहरण प्रतिस्थापित किया जा सकता है:

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

इसके अलावा, %@ को फ्लोट के लिए int या %f के लिए %d द्वारा प्रतिस्थापित किया जा सकता है।

संबंधित मुद्दे