xcode iOS获取所有本地化的列表

Swi*_*ude 8 iphone xcode localization

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

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

A.S*_*.S. 12

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

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

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

if ([supportedLocalizations containsObject:currentLanguage]) {
    isLocalizedToCurrentLanguage = YES;
}
else {
    isLocalizedToCurrentLanguage = NO;
}
Run Code Online (Sandbox Code Playgroud)

  • 阅读“[[NSBundle mainBundle] PreferredLocalizations]”而不是“[NSLocale PreferredLanguages]”。这将返回“en”、“cs”等...... (2认同)

das*_*ght 2

确定当前区域设置是否受支持的最简单方法是@"IsSupported" = @"Yes"向您支持的所有五种本地化添加一个特殊的“测试”字符串(例如,)。然后一个简单的检查就会起作用:

BOOL supported = [NSLocalizedString(@"IsSupported", nil) isEqualToString:@"Yes"];
Run Code Online (Sandbox Code Playgroud)