2015-09-25 22 views
5

私はiOSのアプリを作成して以来、私は翻訳/私のアプリをローカライズするために、次のコードを使用します。9/iOSの9.0.1

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

をしかし、iOSの9に更新されてから、このコードはありませんもう動作しません。 私のすべてのアプリは今英語になっています。

私が既にApp Storeに持っているアプリも、Simulatorで実行しているアプリもローカライズされていません。私はこの問題を解決することができiOSの9でプログラム

+0

「言語」には何がありますか? – zaph

+0

私はいつも "en"を得る。 実際に私はドイツ語でアプリを実行するので、私は取得する必要があります: "デ"。 – EANicolas1

+0

多分、次のバグに関係しています。http://stackoverflow.com/questions/33017981/ios-localization-doesnt-work-with-more-than-63-files?newreg=5def7e334c554377be788b1ce2eace3e –

答えて

1

を自分のコードを変換する必要がどのようにあなたが私に言うことができれば

それは素晴らしいことです。

私は、次のコードを使用している場合は局在が、私はそれがあまりにも、あなたのいくつかを助けることを願っていますiOSの9

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

の下で動作します。

0

指定した言語の文字列をローカライズするためのカテゴリクラスを使用して、現在の言語を自動的に検出してローカライズすることをお勧めします。

あなたは直接の文の下に使用してローカライズされた値にアクセスすることができます名前 RunTimeLanguage

.hファイルで

#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 

.mファイル

#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) 
関連する問題