作为 i18n 项目的一部分,我需要以编程方式从 NIB 文件中提取字符串。当然,这可以使用 ibtool 轻松完成。但这是一个跨平台的产品,NIB只是其中的一部分。如果我们不必将字符串提取锁定到特定机器,或者不必将目录合并脚本组合在一起,那就太好了。
所以我意识到这是一个很长的机会,因为对此的需求可能非常低,但是有没有 ibtool 的开源替代品?是否有任何关于 NIB 格式的文档足够可靠,可以从中编写解析器?
作为 i18n 项目的一部分,我需要以编程方式从 NIB 文件中提取字符串。当然,这可以使用 ibtool 轻松完成。但这是一个跨平台的产品,NIB只是其中的一部分。如果我们不必将字符串提取锁定到特定机器,或者不必将目录合并脚本组合在一起,那就太好了。
所以我意识到这是一个很长的机会,因为对此的需求可能非常低,但是有没有 ibtool 的开源替代品?是否有任何关于 NIB 格式的文档足够可靠,可以从中编写解析器?
如果您使用 XIB,那么它们就是简单的 XML 文件。只需寻找string
具有 key 的元素NSContents
。如果您熟悉 XML 解析,那么--export-strings-file
用几乎任何语言进行逆向工程应该不会花很长时间。
如果你不能迁移到 XIBs,你可以阅读keyedobjects.nib
,这是一个二进制 plist。一种便携式阅读器是 Perl 实现plutil.pl。您还可以在CFBinaryPlist.c中查看 Apple 的开源代码来处理它们。如果您需要这样做,请查看OpenCFLite。读写 Plist 是人们使用可移植 Core Foundation 的一个关键原因。