zoukankan      html  css  js  c++  java
  • 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_())

    效果:

  • 相关阅读:
    BigTale
    GFS Google File System(中文翻译)
    MapReduce
    Google MapReduce/GFS/BigTable三大技术的论文中译版
    Linux常用命令大全
    linux常用命令
    Oracle复杂查询
    jquery on事件jquery on实现绑定多个事件
    Java 多线程(六) synchronized关键字详解
    什么才算是真正的编程能力?
  • 原文地址:https://www.cnblogs.com/dcb3688/p/4578355.html
Copyright © 2011-2022 走看看