小编典典

在 iOS 中获取当前设备语言?

all

我想显示设备 UI 使用的当前语言。我会使用什么代码?

我希望这是一个NSString完整的格式。(不是@“en_US”)

编辑:对于那些开车的人来说,这里有很多有用的评论,因为答案随着新的 iOS 版本而发展。


阅读 132

收藏
2022-03-17

共1个答案

小编典典

提供的解决方案实际上将返回设备的当前区域 -
而不是当前选择的语言。这些通常是相同的。但是,如果我在北美并且我将语言设置为日语,我的地区仍将是英语(美国)。为了检索当前选择的语言,您可以执行以下操作:

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
2022-03-17