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); // 讓界面刷新為新語言});