我正在为一个欧洲客户开发一款应用程序,我是美国的英语用户。我们的应用程序将支持多种语言,但不包括英语。我已经将所有字符串放在本地化字符串文件中,并针对不同语言正确设置,当设备设置为正确的语言时(设备的语言为德语=应用程序正确地本地化为德语),它们都可以正常工作。
但是如果设备没有设置为我们支持的语言之一,例如我的手机设置为英语,就会出现问题。我们希望在这种情况下,手机会回退到德语,但这并没有发生。我们看到的是,手机使用的语言是在“设置”应用程序的“国际”部分的语言列表中排名最高的语言。对于我的手机,在列表中最高的非英语语言是法语,因此当我运行应用程序时,它被本地化为法语。如果我将我的手机更改为德语,然后再改回英语(这会改变语言列表中的顺序),那么应用程序会本地化为德语。
我该如何确保应用程序在不支持的语言环境下默认使用德语?我使用了这个教程来设置项目的本地化。这包括删除在首次本地化文件时创建的默认“英语”本地化。在项目文件中,我已经添加了:
developmentRegion = de;
此外,在 Info.plist 文件中,我有以下内容:
<key>CFBundleDevelopmentRegion</key>
<string>de</string>
没有成功。
欢迎任何想法!
[NSLocale preferredLanguages]
的输出。但确实这对用户来说并不明显,我忘了在iOS上你不能重新排列语言,只能选择你的首选语言。 - Pascal