为什么文件在iPhone模拟器中显示为本地化,但在设备上却没有?

时间:2009-08-13 20:47:53

标签: iphone cocoa-touch localization ios-simulator device

我有一个让我困惑的iPhone本地化问题。我正在本地化我的应用程序,英语以及简体和繁体中文工作正常。我有两个文件,Localizable.strings和sounds.plist已经本地化。两个文件中的字符串在设备和模拟器上正确显示。

昨天我正在添加西班牙语,意大利语和德语。当我在模拟器中测试时,一切都正确显示。但是当我部署到设备时,Localizable.strings中包含的字符串显示正确,但sounds.plist中包含的字符串始终以英语显示。即使是中文字符串也没有正确显示。

我尝试清理构建版本,将已翻译的文本复制回sounds.plist文件,甚至将文件核化,删除lproj文件夹,删除本地化并重新开始。

我在XCode中设置了一个断点,看起来对于这个文件,它没有检测到loc文件夹。从sounds.plist加载字符串的代码是:

+ (NSDictionary*) getSounds
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
return dict;
}

我已验证文件名是sounds.plist,全部为小写。在这一点上,我不知所措。有没有人经历过这样的事情?有人有关于如何修复的建议吗?

谢谢!

更新:我在模拟器和设备上比较了以下行的结果:

NSString *path = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"plist"];

在模拟器上,路径正确报告为 / Users / Steve /.../ de.lproj / sounds.plist 。 在设备上,路径报告为/ var / mobile /.../ sounds.plist 请注意,de.lproj不在路径中。因此它从根目录加载sounds.plist,这解释了为什么文本不会出现本地化。现在我的问题是为什么代码不能获取本地化文件夹中文件的路径?

2 个答案:

答案 0 :(得分:0)

Xcode中的sounds.plist文件旁边是否有检查?你在调试或发布模式吗?

答案 1 :(得分:0)

这个问题在设备上搞砸了。我使用管理器从设备上卸载了应用程序,然后通过XCode重新安装。现在一切都很好。