此应用程序已开发超过一年,并且已经有多个版本。在这个开发周期中,我注意到“后备”语言似乎不再起作用了。
该应用有3个目标:CountryA,CountryB和CountryC。 每个目标都有以下本地化目录:
在每个目标info.plist中,指定了一个值为“en”的键“CFBundleDevelopmentRegion”。
project.pbxproj文件在PBXProject部分中指定了以下键/值:
当我在iPhone或iPhone模拟器中启动应用程序时,系统语言设置与指定的本地化目录之一不同,UI会显示NSLozalizedString标识符而不是本地化字符串。即使我在iOS中将“英语”指定为系统语言!
所以...由于某种原因,没有选择en.lproj文件,因为如果我使用langA或langB作为目标CountryA的系统语言,一切都按预期进行。
感谢任何帮助!
亲切的问候, Niels R。
注意:问题是由我们必须集成的外部公司的插件引起的,它也有一个Localizable.strings文件。这将导致“我们的”Localizable.strings被覆盖。
很抱歉打扰这个!似乎在提问之前我只需要进一步了解一下。
答案 0 :(得分:1)
“UI显示NSLozalizedString标识符而不是本地化字符串” - 您是否正确地为各个目标添加Localizable.strings文件?
另一个问题可能是语言的“区域”设置。您应该尝试在模拟器中更改区域。在将区域设置为与语言完全不同的区域时,我看到NSLocale发生了意想不到的事情。