我正在尝试构建我的第一个本地化应用程序。我使用 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。显然,您将创建 xib 的新语言版本(在 XCode 中,您只需将一种语言添加到 xib 的语言列表中,就会自动创建本地化的 xib)。然后,如果您自己在 Interface Builder 中对它们进行本地化,那么您只需在本地化的 xib 中进行相关更改(文本翻译和任何必要的大小调整)即可。或者您可以将 xibs 中的文本提取到.strings
文件,翻译它们,并将它们注入到这些 xib 的相关语言版本中。为此,您将再次使用 ibtool 但使用--generate-strings-file
对于萃取相和--import-strings-file
用于注入阶段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)