$ibtool --prevIoUs-file path/to/prev.xib \ --incremental-file path/to/inc.xib --localize-incremental \ --write path/to/new.xib mod.xib
我从哪里获得增量文件?据我所知,如果我使用的是版本控制(git / svn),那么“旧”文件在几次提交之前,增量文件是diff和path / to / new.xib是新生成的xib文件. mod.nib对我来说是一个谜.有谁能解释我这是如何工作的?另外 – 如果没有以前的版本可用,我该如何开始xib的本地化(即不进行增量,而是初始本地化)?
解决方法
我们来举个例子吧.您之前使用过英语(源语言)的home.xib,并且有人将其翻译为法语(目标语言).您已经开发了一个新功能,现在您已经有了英文版home.xib的更新版本,其中添加了UILabel和UITextField并移动了一些东西.您显示的命令可以帮助您使用法语获取home.xib的更新版本,以便它具有新的UILabel和UITextField,并且像英语一样移动.请注意,您在新UILabel和UITextField中设置的任何文本内容都将以英语添加,然后需要在法语xib中进行翻译(但您可以通过添加–import-strings-file并提供翻译来自动执行此操作.再来一份文件).
因此,如果我们将您显示的命令映射到此示例:
> –prevIoUs-file path / to / prev.xib指定旧的英文xib
> –incremental-file path / to / inc.xib指定旧的法语xib
> –write path / to / new.xib指定将创建的新法语xib
> mod.xib指定新的英文xib
关于你如何开始这个过程的另一个问题,这取决于你如何本地化你的xib.您显然会创建xibs的新语言版本(在XCode中,您只需将语言添加到xib的语言列表中,并自动创建本地化的xib).然后,如果您自己在Interface Builder中对它们进行本地化,那么您只需在本地化的xib中进行相关更改(文本转换和任何必要的大小调整).或者,您可以将xib中的文本提取为.strings文件,将其翻译,并将它们注入这些xib的相关语言版本.为此,您将再次使用ibtool,但使用–generate-strings-file作为提取阶段,使用–import-strings-file作为注入阶段.