1

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

除了复制我的资源文件之外,有没有一种方法可以做到,所以如果使用 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_AU而不是en_NZ

于 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 回答