本地化 IOS 默认语言

Posted

技术标签:

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

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

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

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

我该怎么做?

【问题讨论】:

默认情况下应该是英文的...如果您没有明确更改语言... 【参考方案1】:

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

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

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

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

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

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

【讨论】:

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

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

【讨论】:

是的,这就是我到处读到的,但不是吗?会不会是我的 plist 中的某些东西搞砸了?

以上是关于本地化 IOS 默认语言的主要内容,如果未能解决你的问题,请参考以下文章

单一语言的 iOS 应用本地化

Apple Watch基本本地化显示错误的默认语言

iOS App 默认语言“en”未应用

iOS:复数和自定义语言环境

iOS Facebook SDK 本地化

Cordova 6.0.0 iOS 本地化与 cordova-ios@4.0 和 Xcode 7.2.1