QT國際化 小結

2021-05-26 06:33:23 字數 1508 閱讀 8762

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

前期準備,首先在main.cpp中指明你的編碼格式:

我在main.cpp指明的字串的編碼格式都是gbk(windows下基本都用這個)的,**如下:

qtextcodec::setcodecfortr(qtextcodec::codecforname("gbk"));

qtextcodec::setcodecforcstrings(qtextcodec::codecforname("gbk"));

qtextcodec::setcodecforlocale(qtextcodec::codecforname("gbk"));

下面是翻譯資源的步驟:

1。在你工程的.pro檔案中加上:

translations = ***.ts(***你工程的名字,或其它名字,以下類似)

如果是中文系統的話還要加上

codecfortr = gbk(指明你源**裡tr裡使用的編碼格式)

codecforsrc = gbk(指明你源**檔案使用的編碼格式,不過在

linguist仍舊是顯示亂碼

)在qt的assistant幫助文件裡特別指明了,如果使用visual studio開發工具的話,必須加上codecforsrc = 編碼格式。

2。執行cmd命令,然後進入到你源**目錄下,使用lupdate ***.pro命令提取你源**裡tr裡的資源;

3。使用linguist.exe開啟,第2步驟中生成的***.ts檔案進行翻譯。

這裡需要注意的是,當你在linguist翻譯的時候,當翻譯完乙個字元的時候,別忘了點工具欄按鈕上那個帶有對勾並有乙個向右箭頭的按鈕,表示你完成了翻譯,如果在linguist的右下角的警告出視窗中有提示的話,那表示你翻譯的資源字元要與原資源字元的結尾標點是一樣的,翻譯好之後,然後儲存(當你進行翻譯的時候可能原始碼的位置把漢字顯示成了亂碼,這個不必關心,只要提取的tr中的字元時正確的就可以了);

4。使用lrelease ***.ts就可以生成***.qm檔案,這就是我們想要的,放到你***.exe所在目錄下就可以了。

如果直接在linguist的file選單下release的話,通過本人的實踐證明

,直接在linguist的file選單下release與直接在命令列裡面生成的.qm檔案是不一樣的,命令列裡的是正確的,能被.exe載入並且翻譯也是正確的,而

linguist的file下release生成的.qm檔案就不行,原因是

linguist裡使用了自己預定義好的編碼集,即使你在

linguist剛開啟時選擇了chinese-china也不行

,這個應該算是

linguist的bug吧,

qtranslator載入多個.qm檔案的),

這樣就能正確翻譯了。

Qt 國際化小結

通過qt linguist翻譯應用程式執行ludata工具,提取要翻譯的文字,生成.ts檔案,這個檔案是xml格式的。開啟qt linguist進行翻譯。執行lrelease工具,生成.qm檔案,這個乙個根據.ts生成的檔案,供我們翻譯時使用。這裡的.ts和.qm均與平台無關。pro transla...

QT國際化支援

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

qt國際化程式設計

下面說一下qt國際化程式設計的操作步驟 1 編寫源 2 在 pro檔案中新增translations ts 有多少中語言就新增多少個ts檔案。3 執行lupdate pro 生成ts檔案。lupdate會根據源 中的內容提取出待翻譯的字段,然後生成ts檔案,ts檔案是xml格式的。4 用qt lin...