void TxtReader::createLanguageMenu() { languageMenu = new QMenu(this); languageMenu->setIcon(QIcon(":/images/lang.png")); languageActionGroup = new QActionGroup(this); connect(languageActionGroup, SIGNAL(triggered(QAction *)), this, SLOT(switchLanguage(QAction *))); QDir qmDir(":/i18n/"); QStringList fileNames = qmDir.entryList(QStringList("txtreader_*.qm")); for (int i = 0; i < fileNames.size(); ++i) { QString locale = fileNames[i]; locale.remove(0, locale.indexOf('_') + 1); locale.chop(3); QAction *action = new QAction(tr("&%1 %2") .arg(i + 1).arg(locale), this); action->setCheckable(true); action->setData(locale); languageMenu->addAction(action); languageActionGroup->addAction(action); if (locale == uilang) action->setChecked(true); } }
int main(int argc, char *argv[]) { QApplication app(argc, argv); if (argc < 3) { std::cerr << "Usage: translateme QM_DIR LOCALE" << std::endl; return 1; } QString qmDir(argv[1]); QString locale(argv[2]); QString fileName = QString("helloqt_") + locale; QTranslator translator; translator.load(fileName, qmDir); app.installTranslator(&translator); QString hello = QApplication::tr("Hello world!"); std::cout << hello.toUtf8().data(); return 0; }