PyQt/PySide 国际化实现
2014-09-13 19:56:00 by dragondjf1.概述:
在程序是使用self.tr对需要进行翻译的字符串进行修饰,实质上这样做就是标定这些字符串是可以进行国际化操作的.
2.步骤:
第一步:
新建main.pro工程文件,文件格式如下:
SOURCES += main.py
SOURCES += app.py
SOURCES += db.py
SOURCES += help.py
TRANSLATIONS += main.ts
第二步:
利用pylupdate4(PyQt4)或者pyside-lupdate(PySide)进行翻译文件提取:
PyQt4
pylupdate4 main.pro
PySide
pyside-lupdate main.pro
这样会在当前目录生成一个main.ts(main.pro中TRANSLATIONS的值)
第三步:
利用PyQt4或者是PySide安装目录下的linguist.exe打开main.ts,逐项进行翻译
第四步:
利用PyQt4或者是PySide安装目录下的lrelease进行翻译 lrelease main.ts 这样会在当前目录下生成一个main.qm的翻译文件
第五步:
import sys
app = QApplication(sys.argv)
trans = QTranslator()
trans.load("main.qm")
app.installTranslator(trans)
main = CenterWindow()
main.show()
sys.exit(app.exec_())
其中的
trans = QTranslator()
trans.load("main.qm")
app.installTranslator(trans)
就是将main.qm加载到程序当中去,这样即可实现程序国际化
PyQt/PySide 资源文件使用
步骤:
第一步: 利用QtDesigner进行资源文件的创建或者是手动创建main.qrc:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file alias="filenew.png">images/filenew.png</file>
<file alias="fileopen.png">images/fileopen.png</file>
<file alias="filesave.png">images/filesave.png</file>
<file alias="filesaveas.png">images/filesaveas.png</file>
<file alias="fileprint.png">images/fileprint.png</file>
<file alias="filequit.png">images/filequit.png</file>
<file alias="editinvert.png">images/editinvert.png</file>
<file alias="editswap.png">images/editswap.png</file>
<file alias="editzoom.png">images/editzoom.png</file>
<file alias="editmirror.png">images/editmirror.png</file>
<file alias="editunmirror.png">images/editunmirror.png</file>
<file alias="editmirrorhoriz.png">images/editmirrorhoriz.png</file>
<file alias="editmirrorvert.png">images/editmirrorvert.png</file>
<file alias="back.png">images/back.png</file>
<file alias="home.png">images/home.png</file>
<file alias="icon.png">images/icon.png</file>
</qresource>
<qresource>
<file>imagechanger.qm</file>
</qresource>
<qresource>
<file alias="editmenu.html">help/editmenu.html</file>
<file alias="filemenu.html">help/filemenu.html</file>
<file alias="index.html">help/index.html</file>
</qresource>
<qresource lang="fr">
<file alias="editmenu.html">help/editmenu_fr.html</file>
<file alias="filemenu.html">help/filemenu_fr.html</file>
<file alias="index.html">help/index_fr.html</file>
</qresource>
</RCC>
生成对应资源文件的xml数据结构。
第二步: 利用pyrcc4(PyQt4)或者是pyside-rcc(PySide)进行编译
pyrcc4 resources.qrc -o qrc_resources.py
或者是
pysdie-rcc resources.qrc -o qrc_resources.py
这样即可生成一个qrc_resources.py资源文件py库
第三步:在主程序中导入qrc_resources.py库即可
import qrc_resources
app.setWindowIcon(QIcon(":/icon.png"))
注意: 必须加上":/"进行路径限定
利用好资源文件可以方便的对资源文件进行固化和程序发布。