Я использую лингвист Qt для перевода файла ui
. Я получил файл ts
с помощью lupdate
и перевел эти слова и фразы. Теперь я хочу добавить его в свой код, но из его руководства я обнаружил, что мне нужно добавить tr()
к каждому слову и фразе в моем коде. Я правильно понял? Могу ли я просто загрузить переведенный файл qm
один раз, чтобы сделать перевод? Если да, то как мне это сделать в этом ui
файле?
Заранее спасибо.
Обновить
После изменения свойств, как упомянул Йенс, в моем заголовочном файле пользовательского интерфейса я вижу такие предложения, как:
buttonSetupData->setText(QApplication::translate("MainWindow", "Set Data", 0, QApplication::UnicodeUTF8));
После ответа Аджита я изменил свой код, и теперь моя функция retranslateUi
в файле ui_main.h
выглядит так:
void retranslateUi ( QMainWindow *MainWindow )
{
QTranslator translator;
translator.load ( " ...\Test.ts " );
QApplication::installTranslator ( &translator );
MainWindow->setWindowTitle ( QApplication::translate ("MainWindow", "The Sentioscope - Beta v2.0 for Soccer", 0, QApplication::UnicodeUTF8));
...
}
Но это все равно не сработало.
последнее обновление
Моя текущая функция для чтения файла «.qm» выглядит так:
void MainWindow::translate()
{
QTranslator translator;
translator.load ( "Test.qm", "D:\\" );
qApp->installTranslator ( &translator );
retranslateUi ( this );
}
Затем я вызываю эту функцию следующим образом:
MainWindow::MainWindow ( QWidget *parent ) : QMainWindow ( parent )
{
setupUi(this);
translate();
}
После последнего ответа Аджита я изменил каждую строку для окон предупреждений/сообщений в этой форме (например):
QMessageBox::warning( this, QMessageBox::tr("ERROR"), QMessageBox::tr("Invalid IP adress") );
К lupdate
я могу прочитать все эти строки, перевести и сохранить их в файле qm. Теперь проблема в том, что он может переводить эти строки для пользовательского интерфейса, но не для окон предупреждений/сообщений после выполнения.