1

ibtool是从 XIB 文件中提取字符串的工具。示例命令:

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

但是 ibtool 生成的输出对于“正常”(阅读:非开发人员)人类来说是不可读的。

例子:

/* Class = "IBUILabel"; text = "Regards:"; ObjectID = "201"; */
"201.text" = "Regards:";

它几乎没有问题(从翻译的角度来看);

  1. 这种格式不同于 Localizable.strings 所期望的格式。
  2. 它混淆了要翻译哪些文本:a)这个在注释行中,b)一个在未注释行中,c)或者两者都可能
  3. 它有很多混乱。

我需要以格式提取的 XIB 字符串Localizable.strings(使用从 NSLocalizableString 宏中提取的字符串genstrings

 "key"="to translate";

有没有办法让 ibtool 以这种方式输出文本?

4

1 回答 1

0

我用 bash 编写了自己的脚本,它执行以下操作:

  1. 从目录中的所有 xib 文件中提取所有字符串
  2. 将其转换为 .strings 格式(NSLocalizableString宏预期)。"text to translate"="text to translate";它可以由您的翻译人员直接使用。只有右侧,= 之后的引号中的文本需要编辑。
  3. 删除重复项(我同意 - 有时这不是最好的主意,因为翻译可能会因上下文而异)
  4. 删除评论(只留下果汁)
  5. 按字母顺序排序(可选)
  6. 将结果保存到 1 个输出文件(全部合并并准备好翻译)

脚本并不完美,但效果很好。

它有点太长了(90 行),所以这里是直接的 GitHub 链接:

https://github.com/lukaszmargielewski/extract-strings-from-xib-files/blob/master/extract-strings-from-xib-files.sh

于 2014-05-22T07:14:42.887 回答