1

en_NZ (ニュージーランド) のローカリゼーションに en_AU (オーストラリア) のローカリゼーションと同じリソースを使用する必要がある iOS アプリがあります。

リソース ファイルを複製する代わりに、en_NZ のロケールを持つ誰かがアプリを使用すると、デフォルトで en_AU リソースになるようにする方法はありますか?

4

2 に答える 2

1

これを試して:

1)言語を取得します

    NSUserDefaults* apple_defaults = [NSUserDefaults standardUserDefaults]; 
    NSArray* languagesList = [apple_defaults objectForKey: @"AppleLanguages"];
    NSString* lang = [languagesList objectAtIndex: 0];

2)それから彼を回心させる

    if ([lang isEqualToString:@"en_NZ"])
    {
        lang = @"en_AU";
    }

また、アプリにlangをen_NZではなくen_AUとして使用できます。

于 2013-03-07T04:46:32.527 に答える
0

次のアプローチを使用できます:
1) en_AU リソースを作成する

2) 現在のロケールが en_NZ であるかどうかを確認する

NSString *currentLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];
// or 
NSString *langID = [[NSLocale preferredLanguages] objectAtIndex:0];
NSString *lang = [[NSLocale currentLocale] displayNameForKey:NSLocaleLanguageCode value:langID];

NSBundle *xBundle; 

3) en_NZ の場合:

// find the path to the bundle based on the locale
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"Localizable" ofType:@"strings" inDirectory:nil forLocalization:@"en_AU"];

// load it!
xBundle = [[NSBundle alloc] initWithPath:[bundlePath stringByDeletingLastPathComponent]];

4) en_NZ 以外の場合:

xBundle = nil;

5) コードで使用:

NSLocalizedStringFromTableInBundle(@"yourStr2Localize", nil, xBundle, nil);     
于 2013-03-04T15:48:38.827 に答える