まず最初に、フランス語にローカライズされた Evernote のメニューのスクリーンショットを示します。
[ ]
ご覧のとおり、メイン メニューのすべてのメニュー項目 (メイン メニューとは、ここではEvernoteのように、名前がアプリケーション名になっているものを意味します) はフランス語にローカライズされています。Évaluez Evernote pour Mac ( Rate Evernote for Mac )、Information du compte... (アカウント情報... ) など、Evernote アプリ自体が提供する多くのメニュー項目があります。さらに、標準の 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)));
}