Pyqt 國際化多語言支持

 

國際化是指在代碼設計上加入能方便的移植到其餘國家和地區的特性, 給Pyqt 添加國際化支持須要五步python

一.編寫GUI.pyapp

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

# -*- 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
    app = QtGui.QApplication(sys.argv)
    mainWin = Mwindow()
    mainWin.show()
    sys.exit(app.exec_())

效果:spa

 

二. 建立語言文件翻譯

CMD使用命令:設計

pylupdate4 Ui_Main.py -ts zh_CN.ts

會生成一個zh_CN.ts 的語言文件code

其實.ts 文件就是xml文件,你也能夠直接打開xml進行修xml

 

三. 翻譯語言文件blog

用qt的語言家打開zh_CN.ts utf-8

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
    app.installTranslator(trans)

完整代碼:

 1 # -*- coding: utf-8 -*-
 2 from PyQt4 import QtCore, QtGui
 3 from PyQt4.QtCore import QTranslator
 4 class Mwindow(QtGui.QDialog):
 5     def __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))
10 
11         self.down2 = QtGui.QPushButton(self.tr(u'upload'), self)
12         self.down2.setGeometry(QtCore.QRect(10, 30, 90, 23))
13 
14 
15 if __name__ == '__main__':
16     import sys
17     app = QtGui.QApplication(sys.argv)
18     trans = QTranslator()
19     trans.load("zh_CN")  # 沒有後綴.qm
20     app.installTranslator(trans)
21     mainWin = Mwindow()
22     mainWin.show()
23     sys.exit(app.exec_())

效果:

相關文章
相關標籤/搜索