qt 中英文翻译 如何配置和使用
qt 中英文翻译 如何配置和使用
1. 在.pro文件中添加TRANSLATIONS
在你的 .pro 文件(比如 HYAC_AAF_HOST.pro)中添加:
TRANSLATIONS +\= zh\_CN.ts en\_US.ts
这会告诉Qt项目你要支持中文和英文。
2. 提取可翻译文本(生成ts文件)
在项目根目录下打开Qt命令行(或Qt Creator自带终端),运行:
lupdate HYAC_AAF_HOST.pro
这会自动扫描所有tr()和.ui文件,把可翻译的内容提取到zh_CN.ts和en_US.ts。
3. 编辑翻译(用Qt Linguist)
用Qt Linguist(Qt自带的图形工具)打开zh_CN.ts和en_US.ts,把每条中文/英文都翻译好,然后保存。
就这么选择就好
4. 生成qm文件
在命令行运行:
lrelease HYAC_AAF_HOST.pro
或者
点击Qt Linguist发布
这会把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); // 让界面刷新为新语言});