Xcode本地化更新
所以我使用Use Base Internationalization在Xcode中本地化了一个故事板。
我进去并翻译了字符串文件中的所有字符串。 好极了。 这需要永远。
现在我在故事板的基本文件中添加了一个新元素。 它有一个标签,带有我需要国际化的字符串。 我保存它,构建它等等。但是在我漂亮的字符串文件中找不到新元素。
请不要告诉我,我现在必须手动添加我的所有元素?
Xcode发行说明说:
要使用用户界面文档中的新内容重新同步字符串文件,请使用ibtool命令的–generate-stings-file选项生成新的字符串文件。 然后,手动将新文件合并到现有的本地化字符串中。
这很蹩脚,但你去了。 您可以使用FileMerge之类的东西来帮助您理清差异。 (我们有一组脚本可以读入字符串文件并以这种方式合并它们;编写这样的东西并不难。)
在IB的检查器中手动查找对象ID(在类部分下)。 自己手动编写这些新元素。
我这样解决了这个问题。
-
取消选中Localization utilities面板的复选框。
-
Xcode会询问,您是否要删除Main.storyboard的英语(语言)本地化?
-
对话框中有另一个复选框,不要检查它
-
点击删除。
-
再次选择你的故事板,并重新检查每种语言
-
Xcode会说File已经存在
-
选择替换文件
-
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 genstrings
和ibtool
- diff , patch两个版本的每个文件
- 删除不需要的文件
这个要点 (不容易发音:)似乎也很有用(再次没有测试)
我找到了另一个蹩脚的解决方案,但它比Xcode发行说明中的解决方案更少蹩脚; 勾选本地化语言,从磁盘中删除该文件,然后再次打勾。 这将重新创建.strings
文件。