Pyqt 国际化多语言支持

 

国际化是指在代码设计上加入能方便的移植到其他国家和地区的特性, 给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
    app = QtGui.QApplication(sys.argv)
    mainWin = Mwindow()
    mainWin.show()
    sys.exit(app.exec_())

效果:

 

二. 创建语言文件

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
    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_())

效果:

转载于:https://www.cnblogs.com/dcb3688/p/4578355.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值