2012-06-08 12 views
5

मैं सिस्टम डिफ़ॉल्ट भाषा और सिस्टम लोकेल प्राप्त करना चाहता हूं।कोको में सिस्टम लोकेल और सिस्टम भाषा कैसे प्राप्त करें

मैं निम्नलिखित कोड का टुकड़ा की कोशिश की है निम्नलिखित

NSLocale *locale; 
locale = [NSLocale systemLocale]; 

NSString * localLanguage = [locale objectForKey:NSLocaleIdentifier]; 
NSLog (@"Language : %@", localLanguage); 

NSLog(@"System locale Identifier %@",[locale localeIdentifier]); 

लेकिन कुछ भी नहीं के रूप में प्रणाली वर्तमान स्थान प्राप्त करने के लिए सिस्टम लोकेल के साथ प्रदर्शित किया जाता है Identifier.If यह है currentlocale यह सही result.Why सिस्टम स्थान दे रहा है कोई मूल्य नहीं दे रहा है और सिस्टम डिफ़ॉल्ट भाषा कैसे प्राप्त करें, उपयोगकर्ता को पसंदीदा भाषा नहीं है? कृपया

उत्तर

4

डिफ़ॉल्ट NSLocaleIdentifier जानबूझकर @"" यह इंगित करने के लिए कि कोई वर्तमान चयन नहीं है। ऐप्पल के मुताबिक, systemLocale सिर्फ उन चाबियों के लिए फॉलबैक है जो उपयोगकर्ता के चुने हुए लोकेल (currentLocale) में लागू नहीं किए जाते हैं, और चूंकि यह हमेशा सेट होता है और यह हमेशा उपयोगकर्ता के नियंत्रण में होता है, यह समझ में आता है।

यदि आप उपयोगकर्ता की पसंदीदा भाषाओं की सूची का पालन करना चाहते हैं, तो आप + preferredLanguages का उपयोग करना चाहते हैं, जो उपयोगकर्ता द्वारा पसंद की जाने वाली भाषाओं की एक सूची देता है, जिसमें वे उन्हें पसंद करते हैं। यह ओएसएक्स और आईओएस दोनों के लिए काम करता है, और भाषा चुनते समय सिस्टम के लिए उपयुक्त फॉलबैक प्रदान करता है।

परीक्षण के लिए, आप एक अल्पविराम से अलग, कोष्टक-घिरा सरणी (उदाहरण: (DE,FR,EN)) के मान के साथ कमांड लाइन स्विच -AppleLanguages उपयोग कर सकते हैं और Xcode अनुकरण करेगा कि उपयोगकर्ता के लिए पसंदीदा भाषाओं सूची जा रहा है।

चूंकि उपयोगकर्ता पसंदीदा भाषाएं (कम से कम ओएसएक्स में) सेट करता है, इसलिए ऑपरेटिंग सिस्टम उस सूची का पालन करेगा जब यह उपयोगकर्ता के लिए स्थानीय डेटा चुनता है। आम तौर पर, मैक्रोज़ का उपयोग करने से कहीं ज्यादा कुछ भी इस तथ्य के कारण अनावश्यक माना जाता है। हालांकि, यदि आपके पास स्थानीयकरण करने के लिए आवश्यक गैर-संसाधन जानकारी है, तो आप मैन्युअल रूप से मूल्य को देख सकते हैं।

+0

के लिए धन्यवाद अपने response.Do क्या आपको पता है कि कैसे मैं सिस्टम भाषा प्राप्त कर सकते हैं। – Akbar

+0

ओएस एक्स के लिए वास्तव में कोई नहीं है। यह सब उपयोगकर्ता द्वारा निर्धारित किया गया है। आप इसका उपयोग करने की क्या कोशिश कर रहे हैं? शायद एक और तंत्र है जिसे मैं आपको इंगित कर सकता हूं। – gaige

+0

मेरा रिक। उपयोगकर्ता को पसंदीदा भाषा में टेक्स्ट प्रदर्शित करना है, इसे बैकएंड सेवाओं से प्राप्त किया जाता है, यदि उपयोगकर्ता को विशिष्ट भाषा नहीं चुना जाता है, तो मुझे डिफ़ॉल्ट सिस्टम भाषा में टेक्स्ट प्रदर्शित करने की आवश्यकता होती है। यही कारण है कि मैं यह जानने का प्रयास क्यों कर रहा हूं कि मैं कैसे कर सकता हूं सिस्टम को डिफ़ॉल्ट भाषा लाएं। क्या आप कृपया मुझे बता सकते हैं कि अन्य तंत्र क्या है? – Akbar

8

आप बस का उपयोग कर सकते हैं: NSString* language = [[NSLocale preferredLanguages] objectAtIndex:0];

+0

यह सबसे अच्छा समाधान है जिसका मैं उपयोग कर सकता हूं, धन्यवाद! – thibmaek

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