8

如何获取所有可用本地化的列表?

我有一个有五个本地化的应用程序。我需要知道当前语言环境是否在该列表中,如果没有,则创建一个后备。但是如何确定当前语言环境是否在该列表中?

4

2 回答 2

12

对我来说,接受的解决方案不起作用,如果不支持语言 - 应用程序只是回退到英语,并且由于英语字符串文件包含“IsSupported”字符串 - 它返回“是”。

我不得不使用这个解决方案

NSString* currentLanguage = [NSLocale preferredLanguages][0];
NSArray* supportedLocalizations = [[NSBundle mainBundle] localizations];

if ([supportedLocalizations containsObject:currentLanguage]) {
    isLocalizedToCurrentLanguage = YES;
}
else {
    isLocalizedToCurrentLanguage = NO;
}
于 2013-07-08T16:11:33.503 回答
2

确定当前语言环境是否受支持的最简单方法是在@"IsSupported" = @"Yes"您支持的所有五种本地化中添加一个特殊的“测试”字符串(例如 )。然后一个简单的检查将起作用:

BOOL supported = [NSLocalizedString(@"IsSupported", nil) isEqualToString:@"Yes"];
于 2013-02-26T15:56:52.710 回答