**:
dipperkun的部落格
在編寫國際化程式的時候,很多情況下都是在系統啟動的過程中選擇語言,然後載入對應的地方語言翻譯檔案,實現語言的本地化。
但是也會有使用者需要進行動態的語言切換(dynamic language switching),也就是在程式主體都執行起來後,需要改變語言的選項。而使用者不希望因為語言切換而引起程式的重啟或者視窗的關閉。
qt的國際化設計提供了這種可能。要實現這種動態切換,只需要在程式裡使用一點小小的技巧,就是把呼叫了qt翻譯語句tr的**集中在某個和窗體變化無關的函式裡,比如retranslatestrings()這樣的函式裡。在改變語言的時候,呼叫這個函式就可以了。
例子:
#ifndef dialog_h
#define dialog_h
#include class qlabel;
class qpushbutton;
class dialog : public qdialog
;#endif
#include #include "dialog.h"
dialog::dialog(qwidget *parent)
: qdialog(parent)
//tr()相關的語句
void dialog::retranslatestrings()
//切換語言
void dialog::switchlang()
else
retranslatestrings();
}int main(int argc, char *argv)
target =
dependpath += .
includepath += .
# input
headers += dialog.h
sources += dialog.cpp main.cpp
# 翻譯檔案
translations += switchlang_zh.ts
//編譯執行
lupdate switchlang.pro
lrelease switchlang.pro
qmake
make
QT的動態語言切換
1.在.pro檔案裡新增的內容如下 2.新增好以後,在工具 外部 qt語言家 更新語言 啟動外部工具 c qt 4.8.6 bin lupdate.exe c qt test qtwidget qtwidget.pro updating zh cn.ts found 7 source text s ...
QT多視窗語言動態切換
1 在main函式中進行靜態切換 qtranslator translator translator.load qstring language cn.qm a.installtranslator translator 2 在介面上進行動態切換 qtranslator translator tran...
QT多國語言動態切換常見例子
qt多國語言需要用到三個工具 l lupdate 生成ts檔案 l linguist 翻譯ts 檔案中的字串 l lrelease 生成qm檔案 這三個工具都是qt自帶的工具,在相關的安裝路徑下。1.準備乙個介面工程 新建工程命名為 cabagge langsw,使用設計師設計介面設計如下 設定下拉...