iOS:本地化间歇性地中断

时间:2012-01-06 02:56:15

标签: ios localization ios-4.2

我对应用程序的本地化有一个奇怪的问题。它在以前的版本中运行良好,但它最近停止了工作,对本地化文件没有明显的改变(我确实添加了一种语言,但这就是全部)。

当我使用Xcode Organizer(Xcode 3.2.5)安装构建时,本地化仅在某些情况下有效。在操作系统中更改语言设置似乎没有任何作用。从Xcode Organizer卸载,然后重新安装没有帮助。

似乎本地化API无法找到我的资源。我在我的一个ViewControllers中添加了一些NSLog()语句,打印出一个应该使用此函数进行本地化的字符串:

NSLog(@"Value: %@", [[NSBundle mainBundle] localizedStringForKey:@"MY_KEY" value:@"none found" table:nil]);

当本地化工作时,会打印出预期的结果。当本地化不起作用时,会打印出“未找到”。我检查了捆绑包的内容,并且.lproj文件都在那里。我错过了什么?

编辑:我发现在构建之后,各种语言的一些结果* .lproj / Localizable.strings文件无法正确创建 - 有时候。我可以触摸德语文件,它将正确生成,但下次运行构建时,它是不对的。所有Localizable.strings文件的编码当前都设置为UTF-16,我尝试切换到UTF-8而没有运气。我没有在构建日志中看到任何警告或错误,表明字符串文件存在问题。

1 个答案:

答案 0 :(得分:3)

我之前看到过这种情况,因为您的项目中有多个localizable.strings文件。如果将开源库放入解决方案(例如ShareKit,它带有自己的localizable.strings文件),就很容易发生这种情况。请参阅Localisation strings not always work having ShareKit in a project上的问题,了解有关此问题可能原因的更多信息。