PyQt 国际化支持

来源:互联网 发布:服装销售英文软件 编辑:程序博客网 时间:2024/06/16 20:18

想用PyQt实现国际化,google了一下,Qt的资料倒是很多,但是PyQt的基本没有,有的也说得含糊不清了。

无奈只有翻文档,文档也只说了先用pylupdate4生成ts语言文件,然后用linguist进行翻译,最后使用rlease

生成qm工程文件,但是自己按照这个方式写起来错误百出,弄了一晚上终于整好了~~分享下~~~

 

1.首先写程序,这里我使用Qtdesigner设计的,然后用pyuic4命令生成代码,这步就省略了,拖拽什么的谁

不会啊。。。程序如下图:(需要说明的是,国际化的时候源程序所有东西都用English的,然后再翻译~)

可以看到这里全部都是英文的。

 

2.然后就是创建语言文件了,按照手册里面说的“The programmer uses pylupdate4 to create or update a

.ts translation file for each language that the application is to be translated into”,然后使用这个命令的

帮助看了下,是这样的:

很多C++的资料说,那个project-file就是pro的工程文件,但是咱们python哪来的工程文件啊!找了好半天

才明白,不一定需要工程文件的,这里面的那个project-file可以是任何你需要翻译的文件,于是乎~就使用

pylupdate4 Ui_fileasearch.py -ts zh_CN.ts解决!

后来才知道所谓的工程文件就是对一系列文件的说明,大概是如下的结构:

SOURCES    = main.py\
                        ui_mainWindow.py\
                        otherFile.py\
                        etc

TRANSLATIONS    = appName_ar.ts

CODECFORTR      = UTF-8

CODECFORSRC     = UTF-8

就是说如果你有一系列的文件需要国际化的话,可以手动写一个工程文件,然后他可以将所有需要翻译的东

西全部都提取出来,当然你也可以写一个简单的脚本,楼主就是这么干滴,因此方便省事儿多啦

3.接下来用Linguist打开ts文件,愉快地完成翻译工作吧,这里没有什么好说滴~

 

4.然后使用命令rlease zh_CN.ts得到文件zh_CN.qm这就是我们要滴咯~等等,还有一步。。。

 

5.前面是仅仅完成了表面上的翻译工作,咱们的程序还不知道呢。所以还需要在程序里面加一个东西,首先

from PyQt4.QtCore import QTranslator

然后,在程序里加上如下内容:

trans = QTranslator()trans.load("zh_CN")# 这里是之前生成的qm文件,注意没有后缀,程序知道app = QApplication(sys.argv)app.installTranslator(trans)# 就是这一步!

最后打开程序看看是不是翻译好了!楼主的如下:

大功告成!效果不错~~

原创粉丝点击