我有一个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"];
在模拟器上,路径正确报告为
/用户/steve/…/de.lproj/sounds.plist
.
在设备上,路径报告为/
var/mobile/…/sounds.plist
.
请注意,de.lproj不在路径中。
所以它从根目录加载sounds.plist,这解释了为什么文本没有本地化。现在我的问题是,为什么代码不能获取本地化文件夹中文件的路径?