您如何从NSLocale preferredLanguages找到国家代码?

时间:2012-12-03 12:50:15

标签: ios localization

我正在开发一个iOS应用程序,需要告诉服务器它与iPhone / iPad上使用的当前语言进行通信。我目前正在使用:

[[NSLocale preferredLanguages] objectAtIndex:0]

然而,因为App是基于单词的游戏,在使用英语的情况下(en)这还不够,我需要能够区分en_GB和en_US(以及将来可能的其他语言)

目前我有两种方法:

1)使用currentLocale设置获取设备的当前国家/地区代码,并将其与preferredLanguage相结合,但这相当骇人听闻。

2)滚动我自己的页面以允许用户更改App中的语言。

我倾向于选择2,但它将涉及相当多的工作。

我的问题是,有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

iOS确实包含英国英语(en_GB),而不是美国英语(en),因此在此特定示例中,您可以单独依赖用户的iOS语言设置。如果用户选择了英式英语,并且您的应用程序将其包含在本地化列表中,那么您应该使用您的代码行看到en_GB

但是,当然,如果您希望支持iOS本身不会公开的语言,那么您将不得不提供自己的选择器。