Xcode本地化更新

所以我使用Use Base Internationalization在Xcode中本地化了一个故事板。

我进去并翻译了字符串文件中的所有字符串。 好极了。 这需要永远。

现在我在故事板的基本文件中添加了一个新元素。 它有一个标签,带有我需要国际化的字符串。 我保存它,构建它等等。但是在我漂亮的字符串文件中找不到新元素。

请不要告诉我,我现在必须手动添加我的所有元素?

Xcode发行说明说:

要使用用户界面文档中的新内容重新同步字符串文件,请使用ibtool命令的–generate-stings-file选项生成新的字符串文件。 然后,手动将新文件合并到现有的本地化字符串中。

这很蹩脚,但你去了。 您可以使用FileMerge之类的东西来帮助您理清差异。 (我们有一组脚本可以读入字符串文件并以这种方式合并它们;编写这样的东西并不难。)

在IB的检查器中手动查找对象ID(在类部分下)。 自己手动编写这些新元素。

我这样解决了这个问题。

  1. 取消选中Localization utilities面板的复选框。

  2. Xcode会询问,您是否要删除Main.storyboard的英语(语言)本地化?

  3. 对话框中有另一个复选框,不要检查它

  4. 点击删除。

  5. 再次选择你的故事板,并重新检查每种语言

  6. Xcode会说File已经存在

  7. 选择替换文件

  8. Xcode会自动从更新的UI重新生成字符串文件并替换您的文件。

祝你好运。

我发现在单独的电子表格中跟踪所有字符串更容易,然后从那里自动生成每种语言的.strings文件。

您仍然需要在2个位置(在xcode和电子表格中)跟踪翻译键,但至少每次要添加一些字符串时,您都不必编辑或合并所有Localizable.strings文件。

请参阅示例Excel电子表格和VBA宏: http : //members.home.nl/bas.de.reuver/files/multilanguage.zip

在等待Xcode 6和他的新本地化function (我希望将解决这个l10n更新中的痛苦)时,我们理论上可以自动执行这些步骤(从未尝试过)

  • 生成新的字符串find / xargs genstringsibtool
  • diff , patch两个版本的每个文件
  • 删除不需要的文件

这个要点 (不容易发音:)似乎也很有用(再次没有测试)

我找到了另一个蹩脚的解决方案,但它比Xcode发行说明中的​​解决方案更少蹩脚; 勾选本地化语言,从磁盘中删除该文件,然后再次打勾。 这将重新创建.strings文件。