Qt言語学者を使用してui
ファイルを翻訳しています。ts
を使用してファイルを取得しlupdate
、それらの単語やフレーズを翻訳しました。今度はそれをコードに追加したいのですが、そのチュートリアルから、tr()
コード内のすべての単語とフレーズに追加する必要があるように思われることがわかりました。正しく理解できましたか?qm
翻訳したファイルを一度ロードして翻訳を行うことはできますか?もしそうなら、どうすればこのui
ファイルでそれを行うことができますか?
前もって感謝します。
アップデート
Jensが述べたようにプロパティを変更した後、私のuiヘッダーファイルに次のような文が表示されます。
buttonSetupData->setText(QApplication::translate("MainWindow", "Set Data", 0, QApplication::UnicodeUTF8));
Ajithの回答の後、コードを変更しました。ファイル内の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();
}
Ajithの最新の回答の後、次のフォームの警告/メッセージボックスの各文字列を変更しました(たとえば)。
QMessageBox::warning( this, QMessageBox::tr("ERROR"), QMessageBox::tr("Invalid IP adress") );
これらすべての文字列をlupdate
読み取り、翻訳して、qmファイルに保存することができます。現在の問題は、これらの文字列をuiに変換できますが、実行後の警告/メッセージボックスには変換できないことです。