環境
系統版本: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這個按鈕之後,翻譯之後顯示的內容。
結束...