Hi, I have a handler which responds to user language selection.
I have map the index to load the correct language file but the UI remains the same (no change to the text label) What function do I need to call to tell the application that I have loaded a language file and to use it ? void CMEForm::handleLanguageChange(int index) { QLocale locale = ui_languageComboBox->itemData(index).toLocale(); std::cout << "handleLanguageChange() called index = " << index << " locale = " << QLocale::languageToString(locale.language()).toStdString() << std::endl; // This may be the location where we can do the language/local swap/change { QTranslator translator; QString lang = QLocale::languageToString(locale.language()); /* QString country = QLocale::countryToString(locale.country()); */ QString bcp47Name = locale.bcp47Name(); QString langFile; if (bcp47Name == "en") langFile = QString(":/language/.qm/cme_gb.qm"); else langFile = QString(":/language/.qm/cme_%1.qm").arg(bcp47Name); /* qDebug() << "START"; qDebug() << "bcp47Name = " << bcp47Name; qDebug() << "locale = " << locale; qDebug() << "lang = " << lang; qDebug() << "country = " << country; qDebug() << "langFile = " << langFile; qDebug() << "END"; */ if (qApp->removeTranslator(&translator)) { if (translator.load(langFile)) { qDebug() << "HELLO WORLD"; bool installed = qApp->installTranslator(&translator); if (installed) { loadLanguage("German"); } qDebug() << "installed = " << installed; QString t = qApp->translate("Form", "German"); qDebug() << "t = " << t; //return translator.translate("MainWindow", "English"); } } } } Cheers -- Nicholas Yue Graphics - Arnold, Alembic, RenderMan, OpenGL, HDF5 Custom Dev - C++ porting, OSX, Linux, Windows http://au.linkedin.com/in/nicholasyue https://vimeo.com/channels/naiadtools
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest