代码之家  ›  专栏  ›  技术社区  ›  Steve

为什么文件在iPhone模拟器中显示为本地化文件,而不是在设备上?

  •  0
  • Steve  · 技术社区  · 17 年前

    我有一个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,这解释了为什么文本没有本地化。现在我的问题是,为什么代码不能获取本地化文件夹中文件的路径?

    2 回复  |  直到 16 年前
        1
  •  0
  •   mcandre    17 年前

    xcode中sounds.plist文件旁边是否有检查?您是处于调试模式还是释放模式?

        2
  •  0
  •   Steve    17 年前

    问题是设备出了问题。我使用管理器从设备卸载了应用程序,然后通过xcode重新安装。现在一切都很顺利。

    推荐文章