qt 中英文翻译 如何配置和使用

发布于:2025-07-18 ⋅ 阅读:(18) ⋅ 点赞:(0)

qt 中英文翻译 如何配置和使用

1. 在.pro文件中添加TRANSLATIONS

在你的 .pro 文件(比如 HYAC_AAF_HOST.pro)中添加:

TRANSLATIONS +\= zh\_CN.ts en\_US.ts

image

这会告诉Qt项目你要支持中文和英文。

2. 提取可翻译文本(生成ts文件)

在项目根目录下打开Qt命令行(或Qt Creator自带终端),运行:

lupdate HYAC_AAF_HOST.pro

image

这会自动扫描所有tr()和.ui文件,把可翻译的内容提取到zh_CN.ts和en_US.ts。

image

3. 编辑翻译(用Qt Linguist)

用Qt Linguist(Qt自带的图形工具)打开zh_CN.ts和en_US.ts,把每条中文/英文都翻译好,然后保存。

就这么选择就好

image

image

image

4. 生成qm文件

在命令行运行:

lrelease HYAC_AAF_HOST.pro

或者

点击Qt Linguist发布

image

这会把zh_CN.ts和en_US.ts编译成zh_CN.qm和en_US.qm,这两个文件就是程序运行时用的语言包。

5. 放置qm文件

把zh_CN.qm和en_US.qm放到你的可执行文件同目录,或者你代码里指定的路径。

如果不知道路径,可以用下面的代码得知具体路径

qDebug() << "Current dir:" << QDir::currentPath();
qDebug() << "App dir:" << QCoreApplication::applicationDirPath();

6.添加如下代码

比如我是用comboBox_language来切换中英文的。我只用了en_us.qm作为翻译成英文

/*中英文翻译*/
    connect(ui->comboBox_language, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [this](int index) {
        if (index == 0) { // 中文
            qDebug() << "切换为中文";
            qApp->removeTranslator(&translator);
            translator.load("zh_CN.qm", "");
            qApp->installTranslator(&translator);
        } else { // 英文
            qDebug() << "Current dir:" << QDir::currentPath();
            qDebug() << "App dir:" << QCoreApplication::applicationDirPath();
            qDebug() << "切换为英文";
            qApp->removeTranslator(&translator);
            bool ok = translator.load("en_US.qm", "");
            qDebug() << "load qm:" << ok;
            qApp->installTranslator(&translator);
        }
        ui->retranslateUi(this); // 让界面刷新为新语言
    });

网站公告

今日签到

点亮在社区的每一天
去签到