ios – 增量本地化如何运作?

我正在尝试构建我的第一个本地化应用程序.我使用NSLocalizedString(用于genstrings工具)在代码中翻译了所有字符串.现在我碰到了ibtool.增量本地化如何运作?关于手册页,我应该写这样的东西:
$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的本地化(即不进行增量,而是初始本地化)?

解决方法

我认为他们选择的术语,尤其是–incremental-file,会引起混淆.我们的想法是,您使用两种语言(源代码和目标语言)拥有旧版本的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作为注入阶段.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...