我有一个 iOS 应用程序,我需要在 en_NZ(新西兰)本地化中使用与 en_AU(澳大利亚)本地化相同的资源。
除了复制我的资源文件之外,有没有一种方法可以做到,所以如果使用 en_NZ 语言环境的人使用该应用程序,它将默认使用 en_AU 资源?
我有一个 iOS 应用程序,我需要在 en_NZ(新西兰)本地化中使用与 en_AU(澳大利亚)本地化相同的资源。
除了复制我的资源文件之外,有没有一种方法可以做到,所以如果使用 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_AU而不是en_NZ
您可以使用以下方法:
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);