en_NZ (ニュージーランド) のローカリゼーションに en_AU (オーストラリア) のローカリゼーションと同じリソースを使用する必要がある iOS アプリがあります。
リソース ファイルを複製する代わりに、en_NZ のロケールを持つ誰かがアプリを使用すると、デフォルトで en_AU リソースになるようにする方法はありますか?
en_NZ (ニュージーランド) のローカリゼーションに en_AU (オーストラリア) のローカリゼーションと同じリソースを使用する必要がある iOS アプリがあります。
リソース ファイルを複製する代わりに、en_NZ のロケールを持つ誰かがアプリを使用すると、デフォルトで en_AU リソースになるようにする方法はありますか?
これを試して:
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として使用できます。
次のアプローチを使用できます:
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);