可能重复:
在 iOS 中获取当前设备语言?
我需要3 个字母的语言 ISO代码,因为它是调用另一个服务的一部分。我可以使用 NSLocale.CurrentLocale.Identifier 来获取国家代码,但不能使用设备设置的语言。
可能重复:
在 iOS 中获取当前设备语言?
我需要3 个字母的语言 ISO代码,因为它是调用另一个服务的一部分。我可以使用 NSLocale.CurrentLocale.Identifier 来获取国家代码,但不能使用设备设置的语言。
你能做的最好的事情是:
[[NSLocale preferredLanguages] objectAtIndex:0];
根据Apple docs是:
用户首选语言的有序列表。
用户在配置设备时选择主要语言,如查看语言和区域设置中所述。当更高优先级语言的本地化不可用时,他们还可以按优先顺序指定一种或多种辅助语言。使用此属性可获取当前用户的语言有序列表,以区域设置标识符字符串数组的形式呈现。
您可以在此处阅读更多相关信息:IETF BCP 47
您可以自己进行映射,从您返回到等效的 ISO 3 字母代码。从 iOS 调用返回的内容中只有 47 个条目,所以没什么大不了的。