QT4 7 0 產生語言檔案 ts

2021-09-26 15:13:34 字數 2662 閱讀 9746

使用者那給的協議是和qt相關的,並沒有輸出裸資料,而是用qt序列化之後輸出的。

如果要訪問他們的socket server, 得到資料後,要處理成裸資料才能用.

為了解決能用他們提供的協議資料,有下面2個方法:

我採用第一種方法來弄,最簡單直接。

我要作的這個小client, 需要國際化。

因為我對qt不熟,客戶將他們的qt版demo工程給了乙個作參考。而且給了開發環境qt4.7.0的安裝包。

我發現,他們的軟體支援中英文,但是都是在程式中寫死的。硬編碼,維護肯定不方便啊

於是就想先看看國際化怎麼作合適。

看到了參考資料:

但是資料版本的qt明顯比4.7.0高,並沒有找到他說的選單來轉語言檔案。

但是lupdate.exe在qt安裝目錄中有。我用命令列轉語言檔案好使。

又找到個資料,這個使用命令列來幹活的

因為用lupdate來生成語言檔案,是要求工程中的編碼頁為utf8

然後重啟qt,使編碼頁生效

看了一眼工程,字串已經都用tr包裹了。

// e.g. 

ui->my_tip->settext(tr("prev"));//上乙個

新增qt控制項後,預設就有可翻譯的屬性。

將qt的bin目錄加入path. 我這預設安裝完qt4.7.0,qt工具的路徑是 c:\qt\2010.05\qt\bin

設定好環境變數後,新開乙個cmd.

cd /d d:\ls\dev_tmp\test_qt

lupdate test_qt.pro

這時,可以看到工程目錄下生成了中英文的語言檔案,還挺大的。

開啟ts檔案,看看qt生成的語言檔案是啥樣子的:)

<?xml version="1.0" encoding="utf-8"?>

dlg_a

對話方塊a

狀態a上乙個

可以看出, qt是對.ui檔案的控制項定義行數那,指定了可替換的文字。

而且控制項和父視窗都有對應關係。

linguist.exe 是圖形化工具,載入ts檔案編輯儲存。

這時,如果源工程編碼時,不是utf8編碼,在linguist.exe看到的源字串就是亂碼。

編輯完儲存。這步,必須用linguist.exe編輯儲存完,才能用lrelease x.pro生成qm檔案

lrelease test.pro
用source insight, 將c:\qt\2010.05\qt\examples包含進來,看**操作.qm"

languagechooser::languagechooser(qwidget *parent)

: qdialog(parent, qt::windowstaysontophint)

groupbox->setlayout(groupboxlayout);

buttonbox = new qdialogbuttonbox;

showallbutton = buttonbox->addbutton("show all",

qdialogbuttonbox::actionrole);

hideallbutton = buttonbox->addbutton("hide all",

qdialogbuttonbox::actionrole);

connect(showallbutton, signal(clicked()), this, slot(showall()));

connect(hideallbutton, signal(clicked()), this, slot(hideall()));

qvboxlayout *mainlayout = new qvboxlayout;

mainlayout->addwidget(groupbox);

mainlayout->addwidget(buttonbox);

setlayout(mainlayout);

#ifdef q_ws_mac

qt_mac_set_menubar_merge(false);

#endif

setwindowtitle("i18n");

}

void languagechooser::checkboxtoggled()

window->setvisible(checkbox->ischecked());

}

找到的資料上,在載入.qm語言檔案後,還會去重新整理ui, 比官方demo考慮的細緻。也許是官方demo, 選擇完語言後,才顯示其他主ui, 所以不用去重新整理ui.

等用到的時候再試試。

Qt4 7 0 使用電容屏

cd build 4.7.0 configure opensource embedded arm xplatform qws linux armv6 g no webkit qt libtiff qt libmng no mouse tslib no mouse pc no mouse linuxt...

QT中的TS檔案與QM檔案

一 介紹一下qm檔案與ts檔案與作用與聯絡。qm是qt的語言檔案。用qt的languist先製作好ts檔案,再生成qm檔案,再在qt程式裡面載入qm檔案即可實現國際化 qm檔案是qt中translate類進行讀取的原始檔 英譯中的翻譯檔案 其 是不可讀懂的。ts檔案的生成 lupdate.exe v...

Qt翻譯家 ts檔案,刪除舊字串

qt語言家是qt生態強有力的組成部分,通常情況下,我們只需要更新翻譯,發布翻譯,然後用qt語言家編輯即可,有時候,當我們更改原始碼tr的字串字面量時,ts檔案中,還會有殘留翻譯文字,對於有潔癖或者強迫症的人來說,就很難受。刪除方法很簡單,如下操作 win下,進入命令列模式,lupdate test....