【问题标题】:Localization IOS default Language本地化 IOS 默认语言
【发布时间】:2014-01-20 14:53:01
【问题描述】:

我已经构建了一个 iphone 应用程序,并从应用程序中的荷兰语文本开始。我想将其扩展到其他国家/地区,因此我将应用本地化并添加了英语。

所以我现在要本地化文件夹 en.lproj 和 nl.lproj。

当我在 iphone 上安装应用程序并将语言设置为荷兰语时,我在应用程序中获得了荷兰语。当我切换到英语时,我明白了。但是当我切换到德语时,我会得到荷兰语。当没有本地化文件夹时,我希望默认使用英语。

我该怎么做?

【问题讨论】:

  • 默认情况下应该是英文的...如果您没有明确更改语言...

标签: ios iphone objective-c localization


【解决方案1】:

聚会有点晚了,但最近遇到了这个问题,有人帮助了我,所以这就是魔法:

假设您的应用支持英语和西班牙语。

如果“设置”应用程序中的语言列表是葡萄牙语、西班牙语、英语,那么将向用户显示西班牙语。如果列表是葡萄牙语、英语、西班牙语,那么将向用户显示英语。

简而言之,语言是按顺序加载的,因此如果您希望在设置德语(或任何其他缺少的语言)时加载英语,您的设置屏幕应显示为:

德语 |英语 |荷兰语 |其他的

但您不知道您的用户是如何设置语言的,而英语可能排在最后。到目前为止,我发现的最佳 solution 解决方法是在启动时手动更改区域设置顺序,因此英语始终排在第二位,因此是默认设置。

【讨论】:

  • 用户无法在 iOS 上重新排序语言 -- 那是 osx 10.8 及以下版本
  • 实际上,假设您选择德语作为您的设备语言。然后将其更改为意大利语,然后再更改为西班牙语。您的设置页面中的语言列表将是:西班牙语|意大利语|德语|TheRest。因此,在这种情况下,您的应用程序将尝试加载您的西班牙语 localizable.strings。如果没有找到,意大利的,然后是德国的,依此类推。至少这是我在过去几天发现的行为。
  • @andres.cianio 起初,我以为我在某处错误地配置了默认语言设置。但这不是错误,而是功能!非常感谢。
【解决方案2】:

在您的 Info.plist 中,您必须将 Localization native development region 设置为 English (en),它应该可以正常工作。

【讨论】:

  • 是的,这就是我到处读到的,但不是吗?会不会是我的 plist 中的某些东西搞砸了?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
  • 2019-02-10
相关资源
最近更新 更多