Pyqt 國際化多語言支援

2021-09-06 23:50:12 字數 2561 閱讀 4954

國際化是指在**設計上加入能方便的移植到其他國家和地區的特性, 給pyqt 新增國際化支援需要五步

一.編寫gui.py

在要被翻譯的text上用tr方法括起來

#

-*- coding: utf-8 -*-

from pyqt4 import

qtcore, qtgui

class

mwindow(qtgui.qdialog):

def__init__

(self):

super(mwindow, self).

__init__

() self.resize(100, 60)

self.down1 = qtgui.qpushbutton(self.tr(u'

download

'), self)

self.down1.setgeometry(qtcore.qrect(10, 5, 90, 23))

self.down2 = qtgui.qpushbutton(self.tr(u'

upload

'), self)

self.down2.setgeometry(qtcore.qrect(10, 30, 90, 23))

if__name__ == '

__main__':

import

sys mainwin =mwindow()

mainwin.show()

效果:

二. 建立語言檔案

cmd使用命令:

pylupdate4 ui_main.py -ts zh_cn.ts
會生成乙個zh_cn.ts 的語言檔案

其實.ts 檔案就是xml檔案,你也可以直接開啟xml進行修

三. 翻譯語言檔案

用qt的語言家開啟zh_cn.ts 

qt語言家linguist.exe目錄:python/lib/site-packages/pyqt4/

四. 轉換為qm檔案

轉換命令:

lrelease  zh_cn.ts
qt lrelease.exe目錄: python/lib/site-packages/pyqt4/

也可以通過qt語言家的選單--發布

五. **中引入qm檔案

引用:

from pyqt4.qtcore import qtranslator
trans =qtranslator()

trans.load(

"zh_cn

") #

沒有字尾.qm

完整**:1#

-*- coding: utf-8 -*-

2from pyqt4 import

qtcore, qtgui

3from pyqt4.qtcore import

qtranslator

4class

mwindow(qtgui.qdialog):

5def

__init__

(self):

6 super(mwindow, self).__init__

()7 self.resize(100, 60)

8 self.down1 = qtgui.qpushbutton(self.tr(u'

download

'), self)

9 self.down1.setgeometry(qtcore.qrect(10, 5, 90, 23))

1011 self.down2 = qtgui.qpushbutton(self.tr(u'

upload

'), self)

12 self.down2.setgeometry(qtcore.qrect(10, 30, 90, 23))

1314

15if

__name__ == '

__main__':

16import

sys18 trans =qtranslator()

19 trans.load("

zh_cn

") #

沒有字尾.qm

2021 mainwin =mwindow()

22mainwin.show()

效果:

android國際化(多語言)

1.很大程度上,為什麼我們能如此方便的實現國際化 解析度匹配等?主要就是得益於 android 中這種獨特的資源管理方式。程式設計師的 可以不直接和資源發生關係。android 中,我們通常通過 r 檔案提供的索引來間接的引用某乙個資源。而如何維護資源索引和真正的資源之間的關係,這個活,卻是 and...

springboot多語言國際化

實現localresolve介面,定義messageservice bean 自定義messages服務,指定國際化配置路徑 return bean name messagesource public resourcebundlemessagesource getmessageresource co...

inno 多語言支援

languages name en messagesfile compiler default.isl licensefile c license en.txt name fr messagesfile compiler languages french.isl licensefile c lice...