1. 程式人生 > >Qml動態語言切換

Qml動態語言切換

此方法需要在Qt5.10或更高版本實現, 在Qt5.10或更高版本實現, 在Qt5.10或更高版本實現
重要的事情說三遍

首先在工程檔案.pro中加入TRANSLATIONS = zh_CN.ts en_US.ts
兩個翻譯檔案, 支援中英文兩種語言切換

在工程目錄下 cmd 執行

lupdate main.qml -ts zh_CN.ts
lupdate main.qml -ts en_US.ts

執行完後在程式碼目錄裡就可以看到生成了 zh_CN.ts, en_US.ts 兩個翻譯檔案
接下來用Qt的Linguist分別開啟和編輯ts檔案

這裡寫圖片描述

然後點選各個源文中的項, 並在下面的譯文中填寫與語言對應的文字就行了.
全部填寫完成, 再執行選單 檔案->釋出就會生成對應的.qm檔案. 這個檔案就是我們程式在實際執行中需要載入的翻譯檔案了.

程式碼中的載入過程:

void QmlLanguage::setLanguage(int nLanguage)
{
    QTranslator translator;
    if (nLanguage == 0)
    {
        translator.load(":/en_US.qm");
    }else{
        translator.load(":/zh_CN.qm");
    }
    m_app->installTranslator(&translator);
    m_engine->retranslate();
}

重點的是這句 m_engine->retranslate(); Qt5.10的新方法, 使Qml介面全部動態重新翻譯

這裡寫圖片描述