文章目录
  1. 1. 安装PyQt4
  2. 2. PyQt4 示例
  3. 3. 国际化与本地化
    1. 3.1. 处理字符串
    2. 3.2. 添加代码
    3. 3.3. 生成 .ts 文件
    4. 3.4. 翻译
    5. 3.5. 生成 .qm
  4. 4. 运行

安装PyQt4

首先安装 PyQt4 开发环境,使用以下命令进行安装:

1
$ sudo apt-get install python-qt4 python-qt4-dev pyqt4-dev-tools

注:笔者的机器安装的是 Ubuntu 12.04。

PyQt4 示例

安装完毕后,按照惯例,编写一个 mainwindow.py 验证下,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class MainWindow(QMainWindow):
def __init__(self, app, parent=None):
super(MainWindow, self).__init__(parent)
label = QLabel("Hello PyQt4!")
self.setCentralWidget(label)
self.setWindowTitle("PyQt4 main Window")
if __name__ == "__main__":
app = QApplication(sys.argv)
win = MainWindow(app)
win.show()
sys.exit(app.exec_())

国际化与本地化

处理字符串

将程序中所有需要做国际化与本地化处理的字符串用self.tr()方法处理。

1
2
3
label = QLabel(self.tr("Hello PyQt4!"))
...
self.setWindowTitle(self.tr("PyQt4 main Window"))

添加代码

待字符串处理完后,还需在 QApplication 后面添加以下代码:

1
2
3
translator = QTranslator()
translator.load("zh_CN.qm")
app.installTranslator(translator)

生成 .ts 文件

在终端中,使用 pylupdate4 命令生成 .ts 文件,操作如下:

1
$ pylupdate4 mainwindow.py -ts zh_CN.ts

zh_CN.ts 的内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="zh_CN">
<context>
<name>MainWindow</name>
<message>
<location filename="mainwindow.py" line="13"/>
<source>Hello PyQt4!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mainwindow.py" line="15"/>
<source>PyQt4 main Window</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

翻译

使用编辑器打开 zh_CN.ts,并修改内容并保存:

1
2
3
4
5
6
7
8
9
10
11
<name>MainWindow</name>
<message>
<location filename="mainwindow.py" line="13"/>
<source>Hello PyQt4!</source>
<translation type="unfinished">你好,PyQt4!</translation>
</message>
<message>
<location filename="mainwindow.py" line="15"/>
<source>PyQt4 main Window</source>
<translation type="unfinished">PyQt4 主窗体</translation>
</message>

生成 .qm

使用 lrelease 工具生成 zh_CN.qm 文件,如下:

1
$ lrelease zh_CN.ts

运行

在终端中运行 mainwindow.py,如下:

1
$ python mainwindow.py

看到了什么?界面上出现了中文,说明本地化处理OK!

文章目录
  1. 1. 安装PyQt4
  2. 2. PyQt4 示例
  3. 3. 国际化与本地化
    1. 3.1. 处理字符串
    2. 3.2. 添加代码
    3. 3.3. 生成 .ts 文件
    4. 3.4. 翻译
    5. 3.5. 生成 .qm
  4. 4. 运行