Qt多言語切り替え

この記事では、Qt言語学者を使用して中国語と英語を切り替えます。

1.次のコンテンツをプロファイルに追加します

2.インターフェースを編集します

3. .ts翻訳ファイルを生成します。tsファイルは、実際にはxml形式のファイルです。

4. QtLinguistから.tsファイルを開いて編集します。

 

  • .tsファイルを変更した後、翻訳ファイルを公開する必要があります。そうすれば、.qmファイルをプログラムで使用できます。
  • 方法1:ツール-「外部ツール-「Qt言語学者」-」翻訳を公開します。.tsファイルをテキストモードで開き、自分で変更してから、この方法で翻訳を公開できます。
  • 方法2:QtLinguistで.tsファイルを開き、ファイル->翻訳を公開します

これは主に、デフォルトの.uiファイルのテキストが英語であるためです。デフォルトが中国語の場合、

上の図では、左側の「ソーステキスト」は「ファイル」、「中国語の翻訳」はファイル、右側の「ソーステキスト」は「ドキュメント」、「中国語の翻訳」はファイルである必要がありますファイルになります

デフォルトの言語は中国語であるため、zh_cn.ts(中国語の翻訳ファイル)のソーステキストは翻訳と一致しており、en_US.tsの翻訳には英語の翻訳が必要です。

デフォルトの言語は英語であるため、en_US.ts(英語の翻訳ファイル)のソーステキストは翻訳と一致しており、zh_cn.tsの翻訳には中国語の翻訳が必要です。

注:ファイルに新しい方法でコントロールを作成する場合は、Qt言語ホームで.tsファイルを開きます。対応するボタンのフレーズとフォームはコードであり、Uiではありません。

 

5..qmファイルをリソースファイルに追加します

6.コアコード:

#pragma execution_character_set("utf-8")
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QTranslator>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QTranslator translator;
    translator.load(":/zh_CN.qm");//en_US
//    qApp->installTranslator(&translator);
//    ui->retranslateUi(this);
    connect(ui->radioButton,SIGNAL(clicked(bool)),this,SLOT(changeLanguage(bool)));
    btn = new QPushButton(tr("测试"),this);
//    btn->setObjectName("btnTest");
    btn->move(00,00);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::changeLanguage(bool ch)
{
    QTranslator translator;
    if(ch)
    {
        translator.load(":/en_US.qm");
    }
    else
    {
        translator.load(":/zh_CN.qm");

    }
    qApp->installTranslator(&translator);//会触发QEvent::LanguageChange事件
    ui->retranslateUi(this);//用于更新界面,F2可以查看没有更新btn,所以增加如下代码
    btn->setText(tr("测试"));//此步骤很关键。  由于btn不是通过Ui创建的,所以必须增加此代码。
}

7.スクリーンショット:

おすすめ

転載: blog.csdn.net/weixin_41882459/article/details/113846886