2011-04-21 77 views
15

我正在寻找一种方法从.xib文件中提取所有可本地化的字符串,并将它们全部保存在一个文件中。如何从所有XIB文件中将所有可本地化的字符串提取到一个文件中?

也许这涉及ibtool但我无法确定合并所有这些只有一个翻译词典的方法(可能是.strings.plist或别的东西)。 (您存储的所有XIB文件或目录)

+0

您是否找到了答案? – Lukasz 2011-06-07 08:47:04

+0

@Lukasz不是一个完整的人,但当我有解决方案时,我肯定会发表一个答案。 – sorin 2011-06-07 09:15:07

回答

32

打开终端和cd到项目的根目录,然后键入以下命令:

find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.txt '{}' 

神奇的是查找和xargs的命令一起工作。 -I选项生成占位符。 -t仅用于详细输出(您会看到哪些命令已生成并执行)。 它生成与同一目录中的xib文件具有相同名称的txts文件。 可以改进此命令以将输出连接成一个文件,但仍然是一个很好的起点。

将它们连接在一起:

可以使用类似的终端命令串联这些新创建的文件合并为一个:

find . -name \*.xib.txt | xargs -t -I '{}' cat '{}' > ./xib-strings-concatenated.txt 

该命令将会把所有的字符串放到一个文件XIB串 - 并置。 txt在根目录下。

您可以再次使用查找和xargs的删除生成的部分文件(如果你想):

find . -name \*.xib.txt | xargs -t -I '{}' rm -f '{}' 
+1

很棒的回答。有没有一个网络资源,我可以学习如何制作这样的命令行工具? – 2014-04-28 06:38:07

+0

@TusharKoul Bash脚本文档和教程? ;-) – Lukasz 2014-04-28 07:23:20

+0

是的。我希望你能指点我一个你经常提到的具体资源。无论如何,我想我对Google的感觉太懒了:D – 2014-04-28 09:25:43

5

这是现在很多更容易。

在Xcode中,选择您的项目(不是目标)

然后使用菜单/编辑/导出本地化

的Xcode将输出与整个项目的所有localisable字符串的XLIFF文件。

+0

这是否只从xibs?或从.m文件呢? – 2016-03-24 13:58:50

+0

它是否包含来自xib或故事板的所有可能的字符串? F.ex:所有按钮状态的标题? – Lukasz 2016-03-24 14:43:16

相关问题