qt多國語言需要用到三個工具:
l
lupdate
:生成ts檔案
l linguist
:翻譯ts
檔案中的字串
l lrelease:生成qm檔案
這三個工具都是qt自帶的工具,在相關的安裝路徑下。
1. 準備乙個介面工程
新建工程命名為: cabagge_langsw, 使用設計師設計介面設計如下
設定下拉框內容的時候不用翻譯,其他顯示的字串需要翻譯
如果手工**更新介面的內容,需要在字串前面使用tr函式
2. 配置ts檔案
在.pro中新增
需要支援多少種語言,則就新增多少個檔案,每個檔案對應一種語言的翻譯
3. 生成.ts檔案工具
->
外部->qt
語言家->
更新翻譯
,將生成翻譯檔案
ts檔案(lang_en.ts 和lang_zh.ts )
【注意】這一步一定要在編譯完後再做,因為ui_***.h編譯後才生成.
4. 使用linguist.exe翻譯檔案
linguist.exe在qt的安裝路徑下,
如我的是在:d:\devsoft\qt\qt5.4.2\5.4\mingw491_32\bin
通過linguist開啟.ts檔案,給每個需要翻譯的字元新增對應的翻譯語言
5. 發布生成qm檔案
每個字元翻譯完之後,需要轉換為qm檔案
在當前路徑下生成對應的qm檔案。
每個ts檔案都重複做上面兩個步驟。
6. 新增**:切換時更新翻譯語言的版本
新增切換下拉框的變化的槽函式:
[cpp]view plain
copy
//下拉框的切換的槽函式
void
widget::on_combobox_sw_currentindexchanged(
const
qstring &arg1)
//安裝語言翻譯器
static
qtranslator* translator = null;
if(translator != null)
translator = new
qtranslator;
qstring qmfilename = "lang_"
+ lang;
//這裡用了絕對路徑你要更改回來哦
if(translator->load(
qstring("g:/workingspace/qt/2016.3/cabagge_langsw/"
)+qmfilename))
}7. 新增更新介面字串的響應
呼叫installtranslator方法後,系統會自動給每個窗體傳送訊號並告知changeevent槽event產生,在要切換語言的每個窗體中都要重寫changeevent這個方法,格式基本差不多:
[cpp]view plain
copy
void
widget::changeevent(qevent *e)
} 8. 效果圖:
Qt 多國語言
1 建立語言檔案 開啟.pro檔案,加入以下 translations cn.ts 工具 外部 qt語言家 更新翻譯,將生成翻譯檔案cn.ts 2 編輯翻譯檔案 啟動linguist qt語言家 開啟cn.ts,然後進行編輯,主要是將源文對應的譯文填寫上,最後儲存 3 部署翻譯檔案 工具 外部 qt...
C WPF 動態切換多國語言支援
wpf支援多國語言方式大同小異,本文將介紹使用資源字典檔案實現多國語言動態切換,其不僅可以實現ui顯示語言的切換,也可以實現控制項對應繫結資料的語言切換,整體操作可行且較容易實現。以下分步描述具體實現過程 為方便說明,新建乙個wpf專案,新增乙個combox textbox以及button控制項 一...
c 實現動態多國語言的動態切換
動態多國語言的切換目前大多採用的是動態載入資源 dll,每乙個資源 dll中包含了乙份對應某一語言的字串表,但這種方法的缺點就是需要為每一種語言都要做乙個 dll,程式安裝時資源 dll過於繁多。下面我們將所有的多國語言資源都封裝在乙個動態庫中,然後通過 setthreadlocale api來實現...