【问题标题】:Why does a file appear localized in the iPhone simulator, but not on the device?为什么文件在 iPhone 模拟器中出现本地化,但在设备上却没有?
【发布时间】: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


    【解决方案1】:

    问题是设备上出现了问题。我使用 Organizer 从设备上卸载了该应用程序,然后通过 XCode 重新安装。现在一切正常。

    【讨论】:

      【解决方案2】:

      Xcode 中的sounds.plist 文件旁边有检查吗?您是处于调试模式还是发布模式?

      【讨论】:

      • 在 sim 上我使用模拟器 - 调试。对于我使用设备 - 开发的设备。我在文件旁边没有看到复选标记。以前从未见过文件旁边的支票。 sound.plist 旁边没有。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 2011-03-17
      • 2019-10-19
      • 2012-07-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多