如何逆向工程Mac OS X语言本地化文件用于自然语言学习



好的,这个问题的目标与编程无关,但是程序员可以使用编程工具来回答这个问题,程序员可以在这里找到有用的答案。听我说。

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

我知道本地化文件存储在Localizable之类的地方。字符串,lproj文件和nib文件,但我不能使头或尾如何存储或如何使用它们。我会编程,但我从未用Xcode写过东西。我能找到的所有信息都是为Mac OS/iOS程序员本地化他们的软件,而不是为黑客提取已经本地化的信息。

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

字符串文件很容易。它们只是序列化为属性列表的字典。程序使用字典键查找给定字符串以查找特定的本地化。您可以构建从英语到另一种语言的映射,方法是加载两个字典,遍历键,并使用英语字典中的值作为输出中的键,使用另一种语言字典中的值作为输出中的值。

nib更难。构建过程将NIB文件"编译"成一种不利于编辑或解析的形式。如果您可以访问未编译的NIB文件,那么您可以使用ibtool --export-strings-file来转储字符串文件,然后您可以按照上述方法处理该文件。如果你不这样做,我想你可能会很困难。

最新更新