मैं अपना आईओएस ऐप स्थानीयकरण कर रहा हूं, और सिम्युलेटर में यह हर बार मेरी चुनी भाषा में सही ढंग से चलता है।मेरा आईओएस ऐप केवल पहली बार ठीक से वर्तमान भाषा का पता क्यों लगाता है?
मेरे आईफोन 5 पर परीक्षण करते समय, यह केवल ऐप चलाने पर पहली बार भाषा का पता लगाता है। हर बार जब मैं डिवाइस पर अपना ऐप पुन: संकलित करता हूं और चलाता हूं, तो यह भाषा के रूप में "एन" का पता लगाता है, भले ही मैं Español ("es") के साथ परीक्षण कर रहा हूं।
[[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]
मैं भी उपयोग किया है::
[[NSLocale preferredLanguages] objectAtIndex:0]
एक ही परिणाम
मैं का उपयोग कर भाषा का पता लगाने।
यदि मैं पहले रन के बाद ऐप को मारता हूं, और डिवाइस पर पुनरारंभ करता हूं, तो यह भाषा को सही तरीके से पहचानता रहता है।
लेकिन अगर मैं ऐप को मारता हूं और फिर प्रारंभिक दौड़ के बाद एक्सकोड के माध्यम से पुनः संकलित/पुनरारंभ करता हूं, तो इसके बजाय यह "एन" (अंग्रेज़ी) के साथ लोड होगा।
उसके बाद, ऐप को फिर से शुरू करने और फिर से शुरू करने तक अंग्रेजी के रूप में पता चलता है जब तक कि मैं पूरी तरह से ऐप को हटा नहीं देता, और एक्सकोड के माध्यम से ऐप को पुनः संयोजित/पुनर्स्थापित/चलाता हूं। चक्र फिर दोहराता है ... बाद में पुनर्निर्माण/डिवाइस के परिणामों से ऐप को मिटाने के बिना पुन: प्रारंभ करें।
मेरे डिवाइस पर अन्य सभी ऐप्स पूरे समय स्पेनिश भाषा के साथ प्रदर्शित होते हैं। संपूर्ण यूआई स्पेनिश में दिखाता है।
अद्यतन: अब मैंने अपने आईपैड (तीसरे जीन) पर आईओएस 6 चलाने का परीक्षण किया है, और एक ही व्यवहार का अनुभव कर रहा हूं।
अद्यतन 2: (भाषा एक NSString * है):
didFinishLaunchingWithOptions में, मैं भाषा का पता लगाने के लिए इस कोड है
language = [[NSLocale preferredLanguages] objectAtIndex:0];
इस डिबगिंग बयान इसके बाद, तुलना करने के लिए मूल्य मैं प्राप्त कर रहा हूं, साथ ही इसे पहचानने का थोड़ा अलग तरीका, केवल डीबगिंग के लिए:
NSLog(@"Detected language: %@/%@", language, [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]);
आउटपुट "डिटेक्टेड भाषा: es/es" के रूप में दिखाता है जब ऐप स्पैनिश मोड में ठीक से काम करता है, और उसके बाद "पता लगाई गई भाषा: en/en" के रूप में दिखाता है। अभी भी कोई विचार नहीं है कि यह कभी-कभी अंग्रेजी के रूप में लोड करने का फैसला क्यों करता है ...
अद्यतन 4: मैं सभी के उत्तरों की सराहना करता हूं, और मैंने विभिन्न सुझावों का प्रयास किया है। दुर्भाग्य से मैं +100 बाउंटी पुरस्कार देने में असमर्थ था क्योंकि इस मुद्दे को हल करने के लिए कोई सुझाव नहीं था। अगर कोई अंतिम समाधान करता है जो मेरे लिए काम करता है, तो मैं उस समय उन्हें एक और +50 बक्षीस दूंगा।
अद्यतन 5: मैंने एक्सकोड 4.5 से 4.5.2 तक अद्यतन किया है, और इस समस्या का सामना कर रहा है।
अद्यतन 6: मैंने अब स्क्रैच से एक नया परीक्षण प्रोजेक्ट बनाया है, और यह पूरी तरह से ठीक काम करता है! जाहिर है कि मेरी परियोजना को निर्धारित करने के तरीके में कुछ गलत होना चाहिए, या शायद डेटा फ़ाइलों में से एक में। मुझे लगता है कि मेरी अगली यात्रा खरोंच से परियोजना को फिर से बनाने के लिए, एक के बाद एक से अधिक फ़ाइल डेटा की प्रतिलिपि हो जाएगा ...
अद्यतन 7 (महीने बाद): दुख की बात है, मैं फिर से अस्थायी रूप से हल करने के बाद इस मुद्दे का सामना करना पड़ रहा यह (प्रतीत होता है) दर्दनाक रूप से मेरी परियोजना को पुनर्जीवित करके। पहले लोड पर, भाषा सही ढंग से प्रस्तुत की जाती है, लेकिन बाद के भार पर, यह वापस अंग्रेजी में वापस आती है।
सोल्व मेरा अंतिम समाधान below देखें। सहायता के लिए हर किसी को धन्यवाद। मैं कुछ बकाया राशि निकाल सकता हूं क्योंकि यह वैसे भी बर्बाद हो जाएगा।
मेरे पास वास्तव में आपके साथ साझा करने के लिए बहुत कुछ नहीं है, लेकिन क्या आपने -अप्पल भाषा "(अंग्रेज़ी") रन पैरामीटर के साथ खेला था? (Http://dl.dropbox.com/u/15994997/Screenshots/2h.png देखें, जो योजनाएं अनुभाग अनुभाग में है)। मुझे संदेह है कि यह मुद्दा है लेकिन यह एकमात्र चीज है जो यह मानने के लिए आती है कि आपका कोड ठीक है। साथ ही, मुझे यकीन है कि आपने ऐसा किया है, लेकिन इसे लोकेल से प्राप्त करने के बाद बस एनएसएलओजी के साथ भाषा को प्रिंट करने का प्रयास करें और सत्यापित करें कि यह आपका शेष कोड नहीं है। – Mayjak
क्या आपने आईओएस 5 में इसका परीक्षण किया है? शायद यह एक आईओएस 6 बग है? – Lefteris
@Estarriol मैं आपकी दोपहर भाषा को आज दोपहर एक शॉट दे दूंगा। मैं मूल्य प्राप्त करने के बाद मैं एनएसएलओजी के साथ प्रिंट कर रहा हूं, और यह पहली बार "es" के रूप में रिपोर्ट करता है जब यह काम करता है, और फिर यह विफल होने पर "एन" होता है। अगर मैं ऐप से बाहर निकलता हूं, तो आईओएस में बाकी सब कुछ स्पैनिश में होने की उम्मीद है। –