【发布时间】:2010-11-19 10:58:01
【问题描述】:
我有一个令我困惑的 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,这解释了为什么文本没有本地化。现在我的问题是为什么代码没有得到本地化文件夹中文件的路径?
【问题讨论】:
标签: iphone cocoa-touch localization ios-simulator device