【问题标题】:How do you find the country code from NSLocale preferredLanguages?你如何从 NSLocale preferredLanguages 中找到国家代码?
【发布时间】:2012-12-03 12:50:15
【问题描述】:

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

[[NSLocale preferredLanguages] objectAtIndex:0]

但是,由于该应用程序是一个基于单词的游戏,在使用英语 (en) 的情况下,这还不够,我需要能够区分 en_GB 和 en_US(以及未来可能的其他语言) .

目前我有两种方法:

1) 使用 currentLocale 设置获取设备的当前国家/地区代码,并将其与首选语言相结合,但是这相当 hacky。

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

我倾向于选项 2,但这将涉及大量工作。

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

【问题讨论】:

  • 我决定继续使用选项 2)。这个答案确实有助于制作我自己的语言选择器:stackoverflow.com/questions/1669645/… 不过,如果有人找到更好的方法来处理这个问题,我很乐意倾听 :)

标签: ios localization


【解决方案1】:

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

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

【讨论】:

  • 感谢@Clafou,您实际上是正确的,我完全错过了国际部分的英式英语选项。我现在已经创建了自己的,效果很好,但我将使用首选语言来确定初始语言(我最初使用的是 currentLocale)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
相关资源
最近更新 更多