參與過qt專案,對qt國際化得了解並不深入,只知道使用tr即可達到翻譯的效果,但不曾細究其中的用法。
這次在**中看到了qt_tr_noop,於是搜尋了下,特此將學習到的總結下:
之前使用qt翻譯用到tr,但是有些類並未繼承自qobject,沒有tr函式,在這種情況下如何使用呢?
今天,看到乙個csdn的部落格,寫得很詳細:參考如下:
我自己也總結了下:
直接使用tr:
qpushbutton *button = new qpushbutton(this);
button->settext(tr("國際化"));
qpushbutton *button =
new qpushbutton(this);
button->settext(qobject::tr("國際化"));
class myclass
; myclass::myclass
一般tr均包裹乙個常亮字串,而如果我們tr內部包裹乙個變數,如何通知程式進行翻譯呢?
於是,這便用到了qt_tr_noop() 和 tr()
//.h file
class mytranslation : qobject
//.cpp
mytranslation(qobject *parent) : qobject(parent)
qstring mytr(const qstring& str)
qstring test = mytr("國際化");
QT國際化支援
為了是我們的qt程式支援如中文等其他語言,通常的做法是在需要翻譯的地方顯示的用tr標記,所以你在閱讀其他人編寫的源程式時會看到很多字串做了tr標記,這樣做是有原因的。1.在hello.pro檔案中增加 translations hello zh cn.ts 2.進入工程目錄,執行 lupdate h...
QT國際化 小結
qt應用程式的國際化問題,應該總的來說還是比較容易的,如果你原始碼中沒有使用漢字,直接使用英文,這個問題就不大,下面我講的是通過在原始碼中直接使用中文 就是本地化了的 然後把中文翻譯成別的文字而言的 例如加密文字 大致分這麼幾個步驟,基本與對英文進行國際化的步驟差不多 這裡是針對windows平台的...
qt國際化程式設計
下面說一下qt國際化程式設計的操作步驟 1 編寫源 2 在 pro檔案中新增translations ts 有多少中語言就新增多少個ts檔案。3 執行lupdate pro 生成ts檔案。lupdate會根據源 中的內容提取出待翻譯的字段,然後生成ts檔案,ts檔案是xml格式的。4 用qt lin...