如何对自然语言学习的Mac OS X语言本地化文件进行逆向工程?

时间:2013-03-19 11:39:40

标签: xcode nslocalizedstring localizable.strings

好的,这个问题的目标并不是严格的编程相关,但程序员可以使用编程工具回答这个问题,程序员可以在这里找到有用的答案。忍受我。

我发现在Mac OS X中更改系统语言是增强我对自然语言学习的有用方法,例如法语。然而,有时我发现法语中的菜单项或对话框我无法理解,谷歌翻译或将系统语言改回英语是一个难题。但我知道英文翻译隐藏在本地化文件的某个地方,并以某种方式映射到法语短语。所以我想要做的是从所有本地化文件中提取所有文本,以便用英语开发这个短语的映射=法语中的那个短语,这样我就可以轻松查找了。

我知道本地化文件存储在像Localizable.strings,lproj文件和nib文件这样的东西中,但是我无法知道它们的存储方式或如何使用它们。我可以编程,但我从来没有在Xcode中写过任何东西。我能找到的所有信息都是Mac OS / iOS程序员本地化他们的软件,而不是黑客提取已经制作的本地化信息。

如何从Mac OS X系统和第三方软件本地化文件中提取纯文本的外语信息?谢谢!

1 个答案:

答案 0 :(得分:1)

字符串文件很简单。它们只是序列化为属性列表的字典。程序使用字典键来查找特定本地化的给定字符串。您可以通过加载字典,迭代键,并使用英语字典中的值作为输出中的键,将另一种语言字典中的值作为输出中的值来构建从英语到另一种语言的映射。 / p>

NIB更难。构建过程将NIB文件“编译”为不能编辑或解析的形式。如果您可以访问未编译的NIB文件,则可以使用ibtool --export-strings-file转储字符串文件,然后按照上面的说明处理该文件。如果你不这样做,我认为你可能会遇到困难。