Qt國際化出錯導致漢化不完全

2021-06-20 00:10:16 字數 952 閱讀 4742

在使用qt的國際化功能時一直出現漢化不完全的現象,比如主視窗的文字都是漢化的,但開啟乙個子視窗卻發現文字是英文的,本來應該被漢化的字串卻沒有被漢化(注:翻譯qm檔案已經生成)。一直都不明白是怎麼回事,在csdn也發了幾次帖子,但也都沒有實質性的解決問題,後來在qt官方論壇發了兩個帖子,最終在乙個老外的指點下發現了問題的根源,現在將這個問題記錄於此,希望對和我一樣對qt理解不夠深入的人有所幫助。

我出現問題的**是這樣的:

qtranslator

trans

;

trans

.load(

"gui_zh"

);

switch

(index

)

他讓我回頭去看相關的文件,裡面有介紹,但我找了一圈也沒找到**有說需要在建構函式中呼叫下面是經過更改後的**,像這樣就能正常的對所有的需要翻譯的字串進行翻譯了:

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include

mainwindow::~mainwindow()

void mainwindow::on_pushbutton_e_clicked()

void mainwindow::on_pushbutton_c_clicked()

void mainwindow::on_pushbutton_clicked()

void mainwindow::changeevent(qevent *e)

qmainwindow::changeevent(e);

}在建構函式中安裝翻譯器,在其他函式中對翻譯器載入的檔案進行修改(中文或者英文),在事件函式changeevent(qevent *e)中進行重新翻譯ui->retranslateui(this);

示例**:

Qt國際化 中文化(漢化)

最近的乙個專案需要把系統從原先的英文版漢化。為了完成這個工作,收集和學習了不少的資料。所以就自己整理資料留作記錄吧。在網上你會發現很多關於qt顯示中文出現亂碼的現象 於是你上網搜尋解決方案,不外乎以下三個語句 qtextcodec setcodecforlocale qtextcodec codec...

QT國際化支援

為了是我們的qt程式支援如中文等其他語言,通常的做法是在需要翻譯的地方顯示的用tr標記,所以你在閱讀其他人編寫的源程式時會看到很多字串做了tr標記,這樣做是有原因的。1.在hello.pro檔案中增加 translations hello zh cn.ts 2.進入工程目錄,執行 lupdate h...

QT國際化 小結

qt應用程式的國際化問題,應該總的來說還是比較容易的,如果你原始碼中沒有使用漢字,直接使用英文,這個問題就不大,下面我講的是通過在原始碼中直接使用中文 就是本地化了的 然後把中文翻譯成別的文字而言的 例如加密文字 大致分這麼幾個步驟,基本與對英文進行國際化的步驟差不多 這裡是針對windows平台的...