我有一个iOS应用程序,我需要使用与en_AU(澳大利亚)本地化相同的en_NZ(新西兰)本地化资源。
有没有一种方法可以实现,所以如果某个具有en_NZ语言环境的人使用该应用程序,它将默认使用en_AU资源?
答案 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);