Localization 如何将所有XIB文件中的所有可本地化字符串提取到一个文件中?

Localization 如何将所有XIB文件中的所有可本地化字符串提取到一个文件中?,localization,xib,ibtool,Localization,Xib,Ibtool,我正在寻找一种从.xib文件中提取所有可本地化字符串的方法,并将它们保存在一个文件中 这可能涉及到ibtool,但我无法确定一种方法将所有这些内容合并到一个翻译词典中(可以是.strings,.plist或其他内容) 打开terminal and cd到项目的根目录(或存储所有XIB文件的目录)并键入以下命令: find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.txt '{}' 神奇之处在于fi

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


这可能涉及到
ibtool
,但我无法确定一种方法将所有这些内容合并到一个翻译词典中(可以是
.strings
.plist
或其他内容)

打开terminal and cd到项目的根目录(或存储所有XIB文件的目录)并键入以下命令:

find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.txt '{}'
神奇之处在于find和xargs命令协同工作。-I选项生成占位符-t仅用于详细输出(您可以看到生成和执行了哪些命令)。 它生成与同一目录中的xib文件同名的txts文件。 该命令可以改进为将输出连接到一个文件中,但仍然是一个很好的起点

将它们连接在一起:

find . -name \*.xib.txt | xargs -t -I '{}' rm -f '{}'
可以使用类似的terminal命令将这些新创建的文件连接到一个文件中:

find . -name \*.xib.txt | xargs -t -I '{}' cat '{}' > ./xib-strings-concatenated.txt
此命令将所有字符串放入根目录中的一个文件xib-strings-concatenated.txt中

您可以再次使用find和xargs删除生成的部分文件:

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

现在容易多了

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

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


xcode将输出一个包含整个项目中所有可本地化字符串的xliff文件。

@Lukasz不是一个完整的文件,但当我有了解决方案时,我肯定会发布一个答案。答案很好。有没有一个网络资源可以让我学习如何制作这样的命令行工具?是的。我希望你能给我指一个你经常提到的具体资源。不管怎么说,我想我觉得自己太懒了,不想用谷歌搜索:d第一个命令没有列出属性字符串。请建议如何修复此问题?@AUK4SO:由于ibtool在这里做主要工作,但它还不支持属性字符串,因此可能需要不同的方法。有没有办法将它们放回去@卢卡斯:这是不是只从锡伯银行取的?还是来自.m文件?它是否包括来自xib或故事板的所有可能字符串?所有按钮状态的标题?