我需要 3个字母的语言ISO 代码,因为它是对另一个服务的调用的一部分。我可以使用NSLocale.CurrentLocale.Identifier来获取国家/地区代码,但不能使用设备设置的语言。
答案 0 :(得分:1)
你能做的最好的事情是:
[[NSLocale preferredLanguages] objectAtIndex:0];
根据Apple文档的说法是:
用户首选语言的有序列表。
用户在配置设备时选择主要语言,如查看语言和区域设置中所述。他们还可以按优先顺序指定一种或多种辅助语言,以便在更高优先级语言中无法使用本地化时使用。使用此属性可获取当前用户的有序语言列表,以区域设置标识符字符串数组的形式显示。
您可以在此处详细了解:IETF BCP 47
您可以自己完成从您返回的等效ISO 3字母代码的映射。从iOS调用回来的内容中只有47个条目,所以没什么大不了的。