Qt,多語言軟件,開發流程,總結

環境

系統版本:ubuntu

Qt版本:Qt 5.12

開始

步驟1:先編寫一段Qt代碼

如下,這個意思就是創建一個Qlabel。其內容 要寫成 tr("hello111"),tr(),這個大家可以當成是一個翻譯的函數,裏面“hello111”當成是一個標籤,這個再沒有加載語言包的時候,QLabel直接顯示的就是“hello111”,如果加載了語言包就顯示是,語言包中對應的內容。

    QLabel* lab = new QLabel(this);
    lab->setText(tr("hello111"));

步驟2:生成.ts文件

.ts文件是用qt的 languist 工具先製作好的,裏面存放着,代碼中標籤所對應的內容。這個標籤就是步驟1中的“hello111”。

打開.pro文件,加上一段代碼,保存。其中的  en.ts  和  cn.ts  名字根據項目自己修改。

TRANSLATIONS = en.ts \
               cn.ts

生成.ts文件,點擊菜單欄,工具-》外部-》linguist-》更新翻譯(lupdata),這時候在項目目錄下就會出現en.ts  和  cn.ts兩個文件了。

步驟3:編輯  .ts  文件

用Qt自帶的 languist 工具,打開上面的文件,如果languist這個工具找不到,就重新安裝下。打開之後如下圖

編輯完之後,保存退出。

步驟4:生成.qm文件

qm是qt的語言文件。用qt的languist工具先製作好ts文件,再生成qm文件,再在qt程序裏面加載qm文件即可實現國際化

QM文件是QT中translate類進行讀取的源文件(英譯中的翻譯文件),其代碼是不可讀懂的。

生成.qm文件,點擊菜單欄,工具-》外部-》linguist-》發佈翻譯(lrelease),這時候在項目目錄下就會出現en.qm  和  cn.qm兩個文件了。

這個時候記住這兩個文件的路徑,我案例中的路徑是

/home/leo/Demo/multiLanguage/cn.qm

/home/leo/Demo/multiLanguage/en.qm

步驟5:加載語言包

找到步驟1中的QLabel,添加代碼

    QTranslator translator;
    translator.load("/home/leo/Demo/multiLanguage/cn.qm");
    QApplication::installTranslator(&translator);

    QLabel* lab = new QLabel(this);
    lab->setText(tr("hello111"));

這樣當執行到這段代碼的時候,QLabel顯示的就是cn.qm中的翻譯內容,我這邊是中文翻譯,所以顯示的是如下圖:

翻譯之前的內容

翻譯之後的內容

上面兩圖,圖1,是翻譯之前的原始內容,圖二是點擊cn這個按鈕之後,翻譯之後顯示的內容。

 

結束...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章