लौटा रहा है मुझे अपने NSLocalizedString
कार्यान्वयन को डिबग करने में कुछ परेशानी हो रही है। सरल होना चाहिए, लेकिन जो भी मैं करता हूं, फ़ंक्शन केवल KEY
स्ट्रिंग देता है।आईओएस - NSLocalizedString केवल कुंजी स्ट्रिंग
मैं XCode 4.5 और iOS6, इसलिए मैं उपयोग कर रहा हूँ:
- जोड़ा एक नई फ़ाइल
File.strings
कहा जाता है। - मेरी परियोजना सेटिंग्स में मैंने अंग्रेजी और स्पेनिश भाषा सेटिंग्स के रूप में जोड़ा।
- फ़ाइल निरीक्षक में "स्थानीय बनाएं" पर क्लिक किया गया, और यह सुनिश्चित किया कि अंग्रेजी और स्पेनिश दोनों विकल्प चुने गए थे, और यह भी कि मेरे लक्ष्य के लिए लक्ष्य सदस्यता का चयन किया गया था।
- को मेरी अंग्रेजी
File.strings
- जोड़ा गया
"KEY" = "TestSpanish";
"KEY" = "TestEnglish";
जोड़ी करने के लिए अपने स्पेनिशFile.strings
- जोड़ा गया
NSLog(@"Localization: %@\n", NSLocalizedString(@"KEY", nil));
मेरी.m
फाइल करने के लिए।
जब मैं अनुप्रयोग चलाने, मूल्य "KEY"
हमेशा NSLog
में मुद्रित प्रदर्शित होता है।
इस में कूद करने के लिए थोड़ा और, मैं इस रूप में अच्छी तरह करने की कोशिश की:
NSString *path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *str = [[NSBundle bundleWithPath:path] localizedStringForKey:@"KEY" value:@"" table:nil];
NSLog(@"Localization: %@\n", str);
और अभी भी मूल्य "KEY
"छपा है, फिर भी, path
कोई मान्य पथ है
किसी को भी किसी भी है। सुराग कैसे इस डिबग करने के लिए? मुझे लगता है कि मैं हर तो सवाल पढ़ा है/वहाँ बाहर का जवाब है, लेकिन सुझाव से कोई भी मदद करते हैं।
मुझे लगता है कि NSLocalizedString
रिटर्न KEY
स्ट्रिंग जब यह एके मेल नहीं खा सकता आई, लेकिन मुझे नहीं लगता कि मैं कैसे डिबग कर सकता हूं कि मेरा ऐप कुंजी से मेल नहीं खा रहा है।
मैंने ऐप को एक दर्जन बार भी हटा दिया/साफ़ कर दिया है।
'तालिका: शून्य' तालिका नहीं होनी चाहिए: @ "फ़ाइल" 'इसके बजाय? –
@ एच 2CO3: वाह, हाँ, धन्यवाद। यह अंग्रेजी संस्करण को पकड़ता है, और मैं बहुत खुश हूं कि काम करता है।लेकिन आखिरकार, मुझे काम करने के लिए NSLocalizedString की आवश्यकता है ताकि मैं उस विधि की सुविधा का उपयोग कर सकूं। क्या मुझे NSLocalizedString को काम करने के लिए कुछ और करने के लिए "File.strings" का नाम बदलने की आवश्यकता है ??? – Brett
आप उन सभी स्थानीयकरणों को रखेंगे जिन्हें आप "XXX.lproj/localized.strings" तक पहुंचने की उम्मीद करते हैं। इसके अलावा, आपको ** NSLocalizedString() 'का उपयोग क्यों करना है? –