如何获取所有可用本地化的列表?
我有一个包含五个本地化的应用。我需要知道当前的语言环境是否在该列表中,如果没有,则创建一个回退。 但是,如何确定当前区域设置是否在该列表中?
答案 0 :(得分:11)
对于我来说,如果语言不受支持,接受的解决方案不起作用 - 应用程序简单地回归到英语,并且由于英语字符串文件包含“IsSupported”字符串 - 它返回“是”。
我不得不使用这个解决方案
NSString* currentLanguage = [NSLocale preferredLanguages][0];
NSArray* supportedLocalizations = [[NSBundle mainBundle] localizations];
if ([supportedLocalizations containsObject:currentLanguage]) {
isLocalizedToCurrentLanguage = YES;
}
else {
isLocalizedToCurrentLanguage = NO;
}
答案 1 :(得分:2)
查明当前语言环境是否受支持的最简单方法是向您支持的所有五个本地化添加一个特殊的“测试”字符串(例如@"IsSupported" = @"Yes"
)。然后一个简单的检查将起作用:
BOOL supported = [NSLocalizedString(@"IsSupported", nil) isEqualToString:@"Yes"];