iPhone上的默认区域设置(en_NZ到en_AU)

时间:2013-02-26 05:55:53

标签: ios locale nslocalizedstring

我有一个iOS应用程序,我需要使用与en_AU(澳大利亚)本地化相同的en_NZ(新西兰)本地化资源。

有没有一种方法可以实现,所以如果某个具有en_NZ语言环境的人使用该应用程序,它将默认使用en_AU资源?

2 个答案:

答案 0 :(得分: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_AU ,而不是 en_NZ

答案 1 :(得分: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);