首先,这里是Evernote菜单的一张截图,翻译成了法语:
[]
正如您所见,主菜单中的所有菜单项(我指的是应用程序名称为菜单名称的主菜单,例如此处是 Evernote )都已本地化为法语。 Evernote 应用程序本身提供了许多菜单项,例如 Évaluez Evernote pour Mac (评价Mac版Evernote), Information du compte... (帐户信息...)等等。另外还有标准的 OS X 提供的菜单项,例如 退出Evernote , 首选项 等也已本地化。
我的问题:
- 我如何在此主菜单中添加新项?如何访问此菜单以添加项目?
- 如何根据我的应用程序本地化本地化这些项目,包括 OS X 提供的默认项目和我添加的项目?
- 在Evernote菜单中,似乎除了服务菜单选项之外,一切都已本地化(但子菜单选项已本地化!)?难道这也不能本地化吗?
我尝试过的:
fMenuBar = fMainWindow->menuBar();
fMenuFile = fMenuBar->addMenu(QObject::tr(qPrintable(String_Class::FileMenu))); //"File" in English, translated into other languages
fAboutAppAct = new QAction(QObject::tr(qPrintable(String_Class::About_App)), fMainWindow); //prints "About App", localized in all languages
fMenuFile->addAction(fAboutAppAct);
fAboutAppAct->setMenuRole(QAction::AboutRole); //otherwise it sits with the other file menu options in the File menu
//reset UI language slot, called whenver UI language is reset. It retranslates all strings in all menus, except this
void AppMenu::reTranslateUISlot()
{
fAboutAppAct->setText(QObject::tr(qPrintable(String_Class::About_App)));
}
QTranslator::translate
,然后使用QCoreApplication::installTranslator
安装它。这将帮助您查看是否为主菜单项调用了翻译器。 - hank