2012-12-03 29 views
2

我正在开发一个iOS应用程序,它需要告诉服务器它与iPhone/iPad上使用的当前语言进行通信。我目前正在使用:如何从NSLocale preferredLanguages中找到国家代码?

[[NSLocale preferredLanguages] objectAtIndex:0] 

然而,因为应用程序是英文的情况下,根据游戏中的词被使用(EN),这是不够的,走,我需要能够EN_GB和EN_US区分(以及未来可能的其他语言)。

目前我有这样做的方法有两种:

1)使用currentLocale设置来获得设备的当前国家代码,并结合,与preferredLanguage,但是这却是相当哈克。

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

我倾向于选择2,但它会涉及一大段工作。

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

+0

我决定继续选择2)。这个答案真的有助于制作我自己的语言选择器:http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language/1746920#1746920如果有人发现更好方式来处理这个我会很高兴听:) – Bijington

回答

1

iOS确实包含英式英语(en_GB),而不是美式英语(en),因此在此特定示例中,您可以单独依赖用户的iOS语言设置。如果用户选择了英国英语,并且您的应用程序将其包含在本地化列表中,那么您应该使用您的代码行看到en_GB。当然,如果你想支持一种iOS本身没有公开的语言,你就不得不提供你自己的选择器。

+1

谢谢@Clafou你其实是正确的,我完全错过了国际部分英国英语选项。我现在已经创建了我自己的,它运行良好,但我将利​​用首选语言来确定最初的语言(我最初使用currentLocale) – Bijington