我想显示设备 UI 使用的当前语言。我会使用什么代码?
我希望这是一个NSString完整的格式。(不是@“en_US”)
NSString
编辑:对于那些开车的人来说,这里有很多有用的评论,因为答案随着新的 iOS 版本而发展。
提供的解决方案实际上将返回设备的当前区域 - 而不是当前选择的语言。这些通常是相同的。但是,如果我在北美并且我将语言设置为日语,我的地区仍将是英语(美国)。为了检索当前选择的语言,您可以执行以下操作:
NSString * language = [[NSLocale preferredLanguages] firstObject];
这将为当前选择的语言返回一个两个字母的代码。“en”表示英语,“es”表示西班牙语,“de”表示德语等。更多示例,请参阅此 Wikipedia 条目(特别是 639-1 列):
ISO 639-1 代码列表
然后将两个字母代码转换为您想要显示的字符串是一件简单的事情。因此,如果它是“en”,则显示“English”。
编辑
值得引用来自 NSLocale.h 的头信息:
+ (NSArray *)preferredLanguages NS_AVAILABLE(10_5, 2_0); // note that this list does not indicate what language the app is actually running in; the [NSBundle mainBundle] object determines that at launch and knows that information