作为i18n项目的一部分,我需要以编程方式从NIB文件中提取字符串。当然,这可以通过ibtool轻松完成。但这是一个跨平台的产品,其中NIB只是其中的一部分。如果我们不必将字符串提取锁定到特定的机器,或者必须将目录合并脚本整合在一起,那就太好了。
所以我意识到这是一个很长的镜头,因为对此的需求可能很低,但有没有ibtool的开源替代品?是否有任何关于NIB格式的文档可靠到足以编写解析器?
答案 0 :(得分:2)
如果您使用XIB,那么它们就是简单的XML文件。只需查找具有密钥string
的{{1}}元素即可。如果您熟悉XML解析,那么几乎任何语言的NSContents
反向工程都不会花费很长时间。
如果您无法移动到XIB,则可以阅读--export-strings-file
,这是一个二进制plist。一个便携式阅读器是Perl实现plutil.pl。您还可以查看Apple的开源代码,以便在CFBinaryPlist.c中处理它们。如果您需要这样做,请查看OpenCFLite。阅读和编写Plists是人们使用便携式Core Foundation的关键原因。