【问题标题】:Why does my XIB file not localize (iPhone)?为什么我的 XIB 文件没有本地化 (iPhone)?
【发布时间】:2011-04-24 13:55:27
【问题描述】:

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

问题: 现在我清理并重建应用程序 - 但它总是显示旧的 XIB 文件,总是字符串“hello”。即使我将 iphone 上的设置更改为其他语言,我总是得到显示的“hello”字符串。但是带有“hello”的XIB在我的xcode中不存在!

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

我正在使用 XCode 3.2.3 和 SDK 4.0

提前非常感谢!

【问题讨论】:

    标签: iphone localization xib


    【解决方案1】:

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

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      试试这个:

      1. 检查您是否已将 Localitations 参数添加到项目文件的“信息”选项卡中
      2. 窗口 - 管理器 - 选择您的项目 - 删除派生数据
      3. 项目清理
      4. 从您的设备中删除应用程序
      5. 再次运行。

      【讨论】:

        【解决方案3】:

        就我而言,除了删除模拟器上的应用程序以使其工作之外,我还必须重新启动 xcode。

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 你不能这样做,但是当你的应用程序重建时,你有时间从设备/模拟器中删除应用程序。至少,它对我有用,因为应用程序足够大......
          【解决方案5】:

          有几个步骤需要遵循,包括:

          • ibtool --generate-strings-file Example.strings en.lpoj/Example.xib
          • genstrings -o en.lproj *.m
          • 翻译资源文件
          • ibtool --strings-file fr.lproj/Example.strings en.lproj/Example.xib --write fr.lproj/Example.xib
          • 将翻译后的资源文件拖到项目中(在正确的位置)。

          查看iPhone localization tutorial 了解完整步骤和屏幕截图。

          【讨论】:

          • 感谢您的帮助。不幸的是,它并没有解决问题。但是:它帮助了我,更好地定位问题。即使我在上面的示例中删除了 XIB 文件(使用 xcode 或旧的命令行) - XIB 文件仍然显示在模拟器上。所以问题是:如何摆脱XIB?我期待在编译期间或执行期间出现错误 - 但没有。还在显示旧的 XIB?但为什么?有什么提示吗?
          • 好的——思考了2-5分钟后,重点如下:在iPhone-Simulator上没有删除应用程序时,Simulator似乎持有XIB-文件。删除应用程序后,我确实得到了预期的运行时错误
          • 好的 - 就是这样:我错过了删除 iPhone 模拟器上的应用程序。本地化应用程序后,我不得不在 iPhone 模拟器上删除它,而不是进行干净 + 构建,一切都很好。
          • 我确认设备上存在同样的错误功能。我必须从设备中删除应用程序并进行干净的重建才能看到本地化的 xib 文件。这真的很奇怪,但事实就是如此。
          猜你喜欢
          • 2011-04-11
          • 2013-08-16
          • 2011-04-23
          • 1970-01-01
          • 1970-01-01
          • 2013-10-21
          • 1970-01-01
          • 1970-01-01
          • 2012-02-05
          相关资源
          最近更新 更多