后备语言似乎不起作用(iOS / iPhone)

时间:2011-09-01 06:57:59

标签: iphone ios xcode ios4 xcode4

此应用程序已开发超过一年,并且已经有多个版本。在这个开发周期中,我注意到“后备”语言似乎不再起作用了。

该应用有3个目标:CountryA,CountryB和CountryC。 每个目标都有以下本地化目录:

  • CountryA:en.lproj,langA.lproj,langB.lproj
  • CountryB:en.lproj
  • CountryC:en.lproj,langC.lproj

在每个目标info.plist中,指定了一个值为“en”的键“CFBundleDevelopmentRegion”。

project.pbxproj文件在PBXProject部分中指定了以下键/值:

  • developmentRegion = en;
  • knownRegions =(             英语,             日本,             法国,             德语,             恩,             FR,             DK,             DA,             NL,             新,             PT,             德,         );

当我在iPhone或iPhone模拟器中启动应用程序时,系统语言设置与指定的本地化目录之一不同,UI会显示NSLozalizedString标识符而不是本地化字符串。即使我在iOS中将“英语”指定为系统语言!

所以...由于某种原因,没有选择en.lproj文件,因为如果我使用langA或langB作为目标CountryA的系统语言,一切都按预期进行。

感谢任何帮助!

亲切的问候, Niels R。

注意:问题是由我们必须集成的外部公司的插件引起的,它也有一个Localizable.strings文件。这将导致“我们的”Localizable.strings被覆盖。

很抱歉打扰这个!似乎在提问之前我只需要进一步了解一下。

1 个答案:

答案 0 :(得分:1)

“UI显示NSLozalizedString标识符而不是本地化字符串” - 您是否正确地为各个目标添加Localizable.strings文件?

另一个问题可能是语言的“区域”设置。您应该尝试在模拟器中更改区域。在将区域设置为与语言完全不同的区域时,我看到NSLocale发生了意想不到的事情。

相关问题