【发布时间】:2013-10-25 23:33:25
【问题描述】:
ibtool 是从 XIB 文件中提取字符串的工具。示例命令:
find . -name \*.xib | xargs -t -I '{}' ibtool --generate-strings-file '{}'.strings.txt '{}'
但是 ibtool 生成的输出对于“正常”(阅读:非开发人员)人类来说是不可读的。
例子:
/* Class = "IBUILabel"; text = "Regards:"; ObjectID = "201"; */
"201.text" = "Regards:";
它的问题很少(从翻译者的角度来看);
- 这种格式不同于 Localizable.strings 所期望的格式。
- 它混淆了要翻译哪些文本:a)这个在注释行中,b)一个在未注释行中,c)或者两者都可能
- 只是杂乱无章。
我需要以Localizable.strings 格式提取的XIB 字符串(使用genstrings 从NSLocalizableString 宏中提取的字符串:
"key"="to translate";
有没有办法让 ibtool 以这种方式输出文本?
【问题讨论】:
-
您说得对,生成的格式是一场噩梦。认为我们被钥匙困住了,因为这就是它在内部匹配的东西。我发现一个杀手是输出的顺序是由(随机)键按字母顺序排列的 - 这与字符串出现在界面中的位置没有对应关系,因此很难理解。除非我遗漏了什么,否则 ibtool 似乎不能只将新字符串附加到手动重组和注释的文件中(这可能会有所帮助)。拥有一个通用应用程序意味着发送两个包含基本相同字符串的同样不可读的文件。
-
@RobGlassey 我在下面发布了工作脚本。
标签: iphone localization translation xib libtool