5

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

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

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

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

4

1 回答 1

1

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

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

于 2013-03-27T09:14:56.547 回答