2013-05-07 14 views
5

के लिए आईओएस में लेबल स्ट्रिंग को स्थानीयकृत करने के लिए कैसे करें IOS पर स्थानीयकरण की प्रक्रिया पर बहुत अधिक अटक गया है।शुरुआती

यहाँ मैं क्या समझते हैं, कैसे परियोजना एक्सप्लोरर पर जाने के लिए और विभिन्न देशों के लिए आधार स्थानीयकरणों निर्धारित करते हैं,

कैसे एक स्ट्रिंग फ़ाइल बनाने के लिए और सेट यह विशेष रूप से देशों में से एक आधार के भीतर चुना करने के लिए स्थानीय होने के लिए स्थानीयकरण

चीनी सरलीकृत जैसे

कुंजी मान जोड़े और शब्द "नमस्ते दुनिया" = "कुछ अन्य भाषा" अनुरूप करने के लिए; स्थानीयकृत स्ट्रिंग फ़ाइल

संकलित होने पर हेलो दुनिया के साथ एक साधारण लेबल कितना ऐप है जब चीनी सिम्युलेटर में चीनी में परिवर्तित नहीं होता है।

हेरेस जहां मुझे लगता है कि मैं गलत हो रहा हूं।

मुझे लगता है कि मुझे स्क्रीन पर तारों को मेरी स्थानीय स्ट्रिंग फ़ाइल में मौजूद तारों से कनेक्ट करने की आवश्यकता है।

और क्या मैं प्रत्येक भाषा के लिए एक अलग स्ट्रिंग फ़ाइल बना सकता हूं?

मैं एक ऐप का एक बहुत ही सरल स्टब बनाने के लिए देख रहा हूं जिसमें कुछ लेबल नहीं हैं, लेकिन कुछ लेबल हैं जो अलग-अलग भाषाओं में अनुवादित हैं, इसलिए मैं सीख सकता हूं कि इसे कैसे कनेक्ट करें और काम करें ताकि मैं इसे और कहां उपयोग कर सकूं।

चीनी के लिए एक स्टोरीबोर्ड है, क्या मुझे इसके लिए कोई काम करना है? या यह खाली छोड़ दिया गया है?

पढ़ने दस्तावेजों के घंटे के बाद मैं हलकों में चारों ओर जा रहा हो रहे हैं, im सेब प्रलेखन से प्रभावित नहीं इस मुद्दे पर लगता है कि इसके कुछ कमी,

उत्तर

5

स्थानीयकरण के लिए, आप सब करने की ज़रूरत:

  1. प्रत्येक भाषा
  2. के लिए अलग .strings फ़ाइल जोड़ें प्रत्येक भाषा फ़ाइल के लिए कुंजी मूल्य जोड़े
  3. उपयोग:

NSLocalizedString(yourKey, nil);

या

[[NSBundle mainBundle] localizedStringForKey:(yourKey) value:@"" table:nil] 

पारित कर दिया कुंजी के स्थानीय स्ट्रिंग हो रही है।

ट्यूटोरियल:

  1. Localization in iOS apps made simple
  2. iPhone Apps Localization Guide
  3. Preparing your iOS app for localization in Xcode
+0

मुझे पूरे दिन ले गया लेकिन आईव ने इसे धन्यवाद दिया, –

2

यह बहुत

स्विफ्ट के लिए, वहाँ है बेहतर समाधान बनाना जो आपके स्थानीयकरण करता है थोड़ा बेहतर - वह गन्दा नहीं। आप नीचे दिए गए एक्सटेंशन का उपयोग कर सकते हैं:

extension String { 

    var localized: String { 
     return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: "") 
    } 


    func localizedWithComment(comment:String) -> String { 
     return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: comment) 
    } 
} 

अब, जब भी आप कुछ स्थानीय चाहते हैं, तो आप सिर्फ यह स्ट्रिंग संपत्ति के रूप में अनुरोध कर सकते हैं:

let text = "my-localization-key".localized 

और यह आपके वर्तमान सिस्टम भाषा के आधार पर स्थानीयकरण स्ट्रिंग मिल जाएगा/लोकेल।

कुछ सुझाव दिए गए

आप बड़ा परियोजना है, तो यह प्रबंधकों में देख लायक है, कि स्थानीयकरण निर्यात/आप के लिए नई भाषाएँ जोड़ने संभाल। उदाहरण के लिए मैं क्रॉउडिन का उपयोग करता हूं - लेकिन आपको कुछ सेवाएं अधिक आकर्षक लग सकती हैं। बड़ी बात यह है कि आपको हाथ से सब कुछ करने की ज़रूरत नहीं है, आप बस अपनी सभी भाषाओं के लिए कुंजी/अनुवाद डालें और निर्यात आपके लिए किया जाता है।

इसके अलावा, अपनी चाबियों के अच्छे नामकरण का पालन करें। मैं क्या देखा है लोग/मेरे अनुभव के आधार पर करते हैं, मुझे लगता है कि यह तार्किक घटक/मॉड्यूल, जहां वे संबंधित द्वारा नाम चाबियाँ करने के लिए बुद्धिमान है, उदाहरण के लिए:

"Profile.NavigationBar.Title" = "Profile"; 
"Profile.NavigationBar.Button.Edit" = "Edit; 

इस तरह, आप तुरंत क्या देख सकते हैं और कर सकते हैं आप इसे कहाँ मिलेगा।

आखिरकार, सामान्य रूप से स्थानीयकरण बहुत बड़ी दर्द हैं क्योंकि आप जो गलतियों को कर सकते हैं। जनरेटर है जो आपके स्थानीयकरण से वास्तविक कोड बना सकता है, इसलिए कंपाइलर आपके लिए यह जांच करेगा। You can get it on GitHub

शुभकामनाएं!

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