本地化应用程序(主)菜单?

时间:2009-10-29 15:15:54

标签: cocoa qt internationalization localization

我正在移植一个UNIX应用程序,它使用Qt框架(Qt,而不是QuickTime)到Mac / Cocoa。一般来说,生活是美好的。 Qt有一个Cocoa实现,所以使用一些Objective-C ++,我已经有很多Mac特定的位工作了。

我无法翻译主菜单(即应用程序菜单)。它使用:

设置
    [NSApp setMainMenu:menu];

我已经设置了en.lproj,ja.lproj,fr.lproj等文件夹,并且它们有InfoPlist.strings文件。 Qt处理特定于应用程序的菜单的内部本地化。但如果我换语言,我仍然会“退出Avogadro”。

我已尽可能多地阅读Mac开发中心的文档,但无法找到答案。

我知道mainMenu中的字符串是由Cocoa处理的 - 它们没有在任何Apple应用程序中本地化。关于魔法触发的任何想法?关于在哪里看的任何想法?

提前致谢!

2 个答案:

答案 0 :(得分:0)

事实证明这是一个Qt错误:https://bugreports.qt-project.org//browse/QTBUG-4463

它已在Qt 4.7及更高版本中修复

答案 1 :(得分:0)

我想为此添加一些信息,以防其他人希望这样做。我还试图修改应用程序主菜单,我试图在awakeFromNib方法中设置它。这从来没有奏效,因为根据这个thread,我们需要在设置菜单后修改应用程序主菜单。否则,应用程序将始终使用其Info.plist中找到的标题。因此,这意味着如果您更改了应用程序的名称,则无需更新应用程序的MainMenu.nib。