2015-09-25 4 views
5

जब से मैं iOS ऐप्स बनाने मैं अनुवाद करने के लिए/मेरी क्षुधा स्थानीय बनाना निम्नलिखित कोड का उपयोग करें:स्थानीयकरण आईओएस के तहत अब और काम नहीं करता है 9/आईओएस 9.0.1

NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0]; 
if ([language isEqualToString:@"de"]) { 
    // localized language 
} 
else { //base language 
} 

लेकिन iOS 9 के लिए अद्यतन के बाद से इस कोड करता है अब और काम नहीं करो। मेरे सभी ऐप्स अब अंग्रेजी में हैं।

न तो ऐप स्टोर में मेरे पास पहले से मौजूद ऐप्स हैं, न ही मैं सिम्युलेटर में चलाए गए ऐप्स को स्थानांतरित कर दिया गया है।

यदि आप मुझे बता सकते हैं कि कैसे मैं अपने कोड प्रोग्राम के रूप में आईओएस 9. में

+0

आप 'भाषा' के लिए क्या प्राप्त करते हैं? – zaph

+0

मुझे हमेशा "एन" मिलता है। वास्तव में मैं जर्मन में ऐप चलाता हूं, इसलिए मुझे यह प्राप्त करना चाहिए: "डी"। – EANicolas1

+0

शायद यह निम्न बग से संबंधित है http://stackoverflow.com/questions/33017981/ios-localization-doesnt-work-with-more-than-63-files?newreg=5def7e334c554377be788b1ce2eace3e –

उत्तर

1

मैं समस्या का समाधान कर सकता है अनुवाद करने के लिए है बहुत अच्छा होगा।

अगर मैं आईओएस 9.

[[NSBundle mainBundle] preferredLocalizations]; 
NSString *language = [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]; 
     if ([language isEqualToString:@"de"]){ 
      // localization 
     } 
     else { 
      //base language 
     } 

के अंतर्गत निम्नलिखित कोड स्थानीयकरण काम करता है का उपयोग मुझे आशा है कि आप में से कुछ भी मदद मिलेगी।

0

मैं निर्दिष्ट भाषा के लिए तारों को स्थानीयकरण के लिए श्रेणी श्रेणी का उपयोग करने का सुझाव दूंगा जो स्वचालित रूप से वर्तमान भाषा का पता लगाएगा और इसे स्थानीयकृत करेगा।

नाम RunTimeLanguage

ज फ़ाइल

#import <Foundation/Foundation.h> 

@interface NSBundle (RunTimeLanguage) 
#define NSLocalizeString(key, comment) [[NSBundle mainBundle] runTimeLocalizedStringForKey:(key) value:@"" table:nil] 
- (NSString *)runTimeLocalizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName; 

@end 

मीटर फ़ाइल

#import "NSBundle+RunTimeLanguage.h" 

@implementation NSBundle (RunTimeLanguage) 
- (NSString *)runTimeLocalizedStringForKey:(NSString *)key value:(NSString *)value table:(NSString *)tableName 
{ 
    NSString *StrCurrentLang = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0]; 
    NSString *path= [[NSBundle mainBundle] pathForResource:StrCurrentLang ofType:@"lproj"]; 
    NSBundle *languageBundle = [NSBundle bundleWithPath:path]; 
    NSString *localizedString=[languageBundle localizedStringForKey:key value:key table:nil]; 
    return localizedString; 
} 
@end 

साथ एक वर्ग कक्षा बनाएं आप सीधे बयान नीचे का उपयोग करके स्थानीय मूल्य तक पहुँच सकते हैं।

NSLocalizeString(@"yourText", nil) 
संबंधित मुद्दे