QT翻訳の使用と回避に関するガイド

1.はじめに

翻訳者を使用する利点

1. qtがmsvcコンパイラを使用する場合、中国語は文字化けした文字を表示します。これは、翻訳を使用することで効果的に解決できます。

2.インターフェイスのテキストプロンプトは、多くの場合、変更する必要があります。ソースコードを変更せずに、翻訳ファイルを再公開するだけで済みます。

2.翻訳プロセス

 

1.構成:ProjectproがTRANSLATIONSに追加されます  

TRANSLATIONS  +=  xxx_zh.ts  \
        xxx_en.ts

2.翻訳するテキストはtr()に含める必要があります

    ui->ribbonTabWidget->addTab(tr("Project"));
    ui->ribbonTabWidget->addTab(tr("Setting"));
    ui->ribbonTabWidget->addTab(tr("Basic tools"));
    ui->ribbonTabWidget->addTab(tr("Advanced tools"));

3.更新:cmdを開き、lupdate xxx.proを実行して、ソースコードから翻訳するテキストを抽出します

注:qtでcmdを使用する必要があります

 

 4.翻訳:翻訳ツールQt Linguistを使用して、tsファイルを開き、翻訳作業を完了します

5.公開:Qt Linguist file = "公開、xxx.qmを生成

6.main.cppに翻訳ファイルをロードします

QTranslator appTranslator;
appTranslator.load(app_path + "/translations/czvision_zh.qm");
app.installTranslator(&appTranslator);

3.よくある質問

1.QDialogBu​​ttonBoxの変換は有効になりません

これはqtのバグです。https://bugreports.qt.io/browse/QTBUG-39180

解決策は次のとおりです。src/qttranslations/ translations / qt_zh_CN.tsを編集し、QDialogBu​​ttonBoxをQPlatformThemeに置き換えて、再公開します。

2.複数のプロプロジェクト、複数の翻訳の問題、翻訳者の定義が有効にならない

解決策:複数の翻訳者を定義する必要があり、1人を共有することはできません

QTranslator qtTranslator;
QTranslator appTranslator;
QTranslator coreTranslator;

qtTranslator.load(app_path + "/translations/qt_zh_CN.qm");
appTranslator.load(app_path + "/translations/czvision_zh.qm");
coreTranslator.load(app_path + "/translations/CZCore_zh.qm");

app.installTranslator(&qtTranslator);
app.installTranslator(&appTranslator);
app.installTranslator(&coreTranslator);

3. QObjectを継承するクラスのみがtr()関数を使用できます。Qt以外のクラスを変換するにはどうすればよいですか?

回避策:QCoreApplication :: tr()を使用し、

splash.showProgressMessage(1, QCoreApplication::tr("Load config file"));

おすすめ

転載: blog.csdn.net/qq_40602000/article/details/123881731