【问题标题】:How can I extract all localizable strings from all XIB files into one file?如何将所有 XIB 文件中的所有可本地化字符串提取到一个文件中?
【发布时间】:2011-08-10 06:30:13
【问题描述】:

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

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

【问题讨论】:

  • @Lukasz 不是一个完整的,但当我有解决方案时,我一定会发布答案。

标签: localization xib ibtool


【解决方案1】:

打开终端并 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 '{}' cat '{}' > ./xib-strings-concatenated.txt

此命令会将所有字符串放入根目录下的一个文件 xib-strings-concatenated.txt 中。

您可以再次使用 find 和 xargs 删除生成的部分文件(如果需要):

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

【讨论】:

  • 很好的答案。有没有网络资源可以让我学习如何制作这样的命令行工具?
  • 是的..我希望你能给我指出一个你经常提到的具体资源。无论如何,我想我懒得去谷歌了:D
  • 第一个命令没有列出属性字符串。请建议如何解决这个问题?
  • @AUK4SO:由于 ibtool 在这里完成了主要工作并且它还不支持属性字符串,因此可能需要不同的方法。
  • 有没有办法把它们放回去? @Lukasz
【解决方案2】:

这现在容易多了。

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

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

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

【讨论】:

  • 这是否只取自 xibs ?还是来自 .m 文件?
  • 它是否包括来自 xib 或故事板的所有可能的字符串? F.ex:所有按钮状态的标题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-01
  • 1970-01-01
  • 2011-09-10
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
相关资源
最近更新 更多