Динамический перевод QT c++
Я хочу сделать чтобы все надписи в моём приложении переводились с русского на английский по выбору варианта в QComboBox или по нажатию кнопки. Нашёл инструкцию: https://evileg.com/ru/post/153/ Вроде сделал почти всё как там MainWindow.cpp:
void MainWindow::on_comboBox_currentIndexChanged(int index)
{
if (index == 0){qtLanguageTranslator.load(QString("QtLanguage_") + QString("ru_RU"));}
else{qtLanguageTranslator.load(QString("QtLanguage_") + QString("en_EU"));}
qApp->installTranslator(&qtLanguageTranslator); // Устанавливаем перевод в приложение
}
void MainWindow::changeEvent(QEvent *event)
{
// В случае получения события изменения языка приложения
if (event->type() == QEvent::LanguageChange) {
ui->retranslateUi(this); // переведём окно заново
}
}
Mainwindow.h:
protected:
// Метод получения событий в главном окне приложения
// В нём будет производиться проверка события смены перевода приложения
void changeEvent(QEvent * event);
private:
Ui::MainWindow *ui;
QTranslator qtLanguageTranslator;
.pro:
TRANSLATIONS += QtLanguage_ru.ts
TRANSLATIONS += QtLanguage_en.ts
Настроил для них переводы, сделал lrelease. Но дальше не получается поменять язык выбором варианта или вообще установить английский язык (по умолчанию русский). Что я сделал не так? Или есть более простой вариант?