本地化编辑菜单和其他标准菜单

时间:2012-08-02 19:47:08

标签: cocoa localization

我正在尝试将我的Mac应用翻译成几种不同的语言。 OS X提供了大量菜单项,特别是在“编辑”菜单中,可自动运行。我假设这些项目也会自动翻译,但它们似乎不是。正如您在下面的屏幕截图中看到的,我正在混合使用已翻译和未翻译的项目。

The Edit menu, partially localized

奇怪的是,相同的菜单项在出现在上下文菜单中时会被翻译,例如在NSTextView中。在这种情况下,除了底部的两个服务之外,所有内容都会自动翻译。

A contextual menu, automatically translated

所以我很困惑:我真的要自己翻译编辑菜单吗?我显然希望我的翻译与Apple的翻译相匹配,所以我会做很多的复制和粘贴。或者是否有一些秘密来启动本地化?我的应用程序需要10.7或更高版本,所以如果有任何新的东西使这更容易,那应该不是问题。

附录:假设没有更简单的方法可以做到这一点,那么至少有一种简单的方法可以复制Apple的翻译文本,这样我就可以将它们粘贴到我的应用程序中了吗?我以为我可以从他们的一个应用程序中打开一个NIB,但它们都已编译,无法在Xcode中打开。我可以在文本编辑器中打开它们,但尝试以这种方式找到合适的字符串似乎并不比仅重新输入所有内容更快。

3 个答案:

答案 0 :(得分:4)

Localized Nibs包含 MainMenu.nib 文件,其中菜单栏预先本地化为各种语言。所有项目都连接到正确的操作,还包括一些其他资源(例如标志图形,ISO语言表等)。

localize-mainmenu - 自动本地化OS X应用程序的常用主菜单项的命令行工具。

答案 1 :(得分:2)

我发现Martin Stemmel的git项目很有用(仅供参考:我与作者有联系)。它是免费的,您可以浏览所需的标准主菜单字符串的各种语言文件,也可以使用该项目。

https://github.com/martnst/localize-mainmenu

答案 2 :(得分:1)

据我所知,真的没有简单的方法可以做到这一点。特别是对于日语,我最终使用了这样的过程:

  1. 在Finder中,右键单击现有应用,例如TextEdit,然后选择“显示包内容”

  2. 在软件包中,转到目录/资源,您将看到本地化文件夹,如en.lproj和Japanese.lproj

  3. 在这些文件夹中,您将看到NIB文件。使用纯文本编辑(如BBEdit),打开主要语言的主NIB文件以及要翻译的语言。在许多情况下,您需要的文件将命名为MainMenu.nib。使用TextEdit,文件名为Edit.nib。这些文件是XML,所以它们结构清晰,但有很多你不关心的东西。打开这两个文件可以更容易。

  4. 在英文文件中,您可以搜索“立即检查文档”之类的内容。直接在其下方是键盘快捷键(;)和菜单项调用的方法(checkSpelling:)。现在,您可以在日语文件中搜索checkSpelling,并且您需要的翻译就在它上方。这听起来很乏味,但我发现它大部分都很快,特别是因为你很少需要完全输入所有内容来找到你需要的东西。许多方法名称都很明显,如cut: paste: copy:等等,所以当你去的时候,你可以先跳过检查英文文件。

    < / LI>
  5. 子菜单的菜单项有点棘手,因为该方法只是submenuAction:。您可以使用周围的XML来帮助验证您在两个NIB中查看相同的内容,或者您​​可以检查应用程序本身以确保您正在查看正确的文本。当我想确保复制正确的东西时,谷歌翻译也很有帮助。您甚至可以先尝试使用Google翻译,然后验证它是否与Apple使用的相匹配。

  6. 显然,您需要非常小心,或者让某人说出语言,确认一切正常。最好让翻译人员完成所有工作。在我的情况下,我有人自愿做翻译,我的应用程序独有的所有文本已经翻译。我不想用翻译其他人已经翻译的一堆文本的繁琐工作来打扰他们。