为什么我的XIB文件没有本地化(iPhone)?

问题描述:

情况: 我正在启动XCode,为iPhone(查看应用程序)创建一个新项目并将XIB文件加载到IB中。我操纵视图(添加一个字符串“hello”的标签),保存,构建,运行应用程序,一切都很好。 现在我正在本地化XIB。我所做的:右键单击xib文件,添加所需的语言,然后在我的XCode中有两个XIB文件。看起来绝对完美,就像它在我的iPhone编程书(“大书呆子牧场”)中所展示的一样。 我确实将两个XIB中的标签更改为另一个字符串,可以说“早上好!”。为什么我的XIB文件没有本地化(iPhone)?

问题: 现在我清理并重建应用程序 - 但它总是显示旧的XIB文件,总是字符串“你好”。即使当我将iPhone上的设置更改为其他语言时,我总是会显示“hello”字符串。但是带有“hello”的XIB在任何地方都不存在于我的xcode中!

对我有什么提示?这让我发疯 - 我只希望我错过了一件简单的事情。

我正在使用XCode 3.2.3和SDK 4.0

非常感谢!

有只有几步之遥遵循,包括:

  • ibtool --generate弦文件Example.strings en.lpoj/Example.xib
  • genstrings -o en.lproj * .M
  • 平移所述资源文件
  • ibtool --strings文件fr.lproj/Example.strings en.lproj/Example.xib -write fr.lproj/Example.xib
  • 经翻译的资源文件拖放到项目(在th准确的地方)。

看看这个iPhone localization tutorial的全部步骤+截图。

+0

感谢您的帮助。不幸的是,这并没有解决问题。但是:它帮助了我,使问题更加明确。即使当我在上面的示例中删除XIB文件(使用xcode或旧的命令行) - XIB文件仍然显示在模拟器上。所以问题是:如何摆脱XIB?我在编译期间或执行期间期待错误 - 但没有。仍然显示旧的XIB?但为什么?对我有什么提示? – peace97 2010-10-13 16:43:56

+3

好了 - 思考了2-5分钟后,重点如下:当不在iPhone模拟器上删除应用程序时,仿真器似乎保存着XIB文件。删除应用程序后,我确实得到了预期的运行时错误 – peace97 2010-10-13 17:26:30

+4

好吧 - 就是这样:我错过了在iPhone模拟器上删除应用程序。本地化应用程序后,我不得不在iPhone模拟器上删除它,而不是做一个干净的+构建,并且一切都很好。 – peace97 2010-10-13 18:38:43

iPhone模拟器和设备持有NIB的缓存。它很容易在模拟器上清除,因为它可以被删除,但我想弄清楚如何清除设备上的缓存而不必删除应用程序。

+0

你不能这样做,但是当你的应用程序重建时,你有时间从设备/模拟器中删除应用程序。至少,它适用于我,因为应用程序足够大...... – 18446744073709551615 2011-11-19 15:19:36

在我的情况下,除了在模拟器上删除应用程序以使其正常工作外,我还必须重新启动xcode。

试试这个:

  1. 检查,如果你已经添加Localitations参数到您的项目文件
  2. 窗口的“信息”选项卡 - 主办单位 - 之所以选择你的项目 - 删除派生数据
  3. 项目清洁
  4. 从您的设备上删除应用程序
  5. 再次运行。

当涉及到xib文件中的本地化字符串时,Xcode有一个错误。 Xcode不是用实际的xib字符串替换本地化的字符串,而是保留原始的xib字符串。您只需将Localizable字符串文件转换为Interface Builder文件即可。您可以在界面构建器文件属性的本地化部分下执行此操作。

希望这会有所帮助!