PyQt 语言国际化
本文最后更新于:2018年9月21日 上午
PyQt4 语言国际化
使用pylupdate4
将界面的py文件转成ts文件。
进入py文件所在目录,执行转换命令。1
/d/python27/Lib/site-packages/PyQt4/pylupdate4 ui_main.py -ts zh_CN.ts
得到zh_CN.ts
文件。这个文件本质上是xml文件。
当界面的py文件修改时,运行pylupdate4
生成ts不会破坏原ts的翻译。
用Qt语言家(Linguist)打开zh_CN.ts
文件。可以对相应的字符串进行翻译。
点击“发布”可获得zh_CN.qm
文件。这就是qt的语言资源文件,是一个二进制文件。
创建app时,先加载语言资源文件zh_CN.qm
1
2
3
4
5
6
7
8
9
10
11
12if __name__ == '__main__':
configs.init_configs() # 确定语言配置
app = QApplication(sys.argv)
trans = QTranslator() # Setup locale, we need .qm files
if configs.g_locale_type == configs.LOCALE_ZH_CH:
trans.load("res/locale/zh_CN") # No need suffix .qm
app.installTranslator(trans)
main_d = FAMainWindow()
main_d.show()
sys.exit(app.exec_())
App运行中切换语言
在程序运行时,我们可以选择当前显示的语言。不需要重新启动程序即可完成切换。
准备语言资源文件
以英文和简体中文为例,想要切换语言,需要这2种语言包1
2$ /d/python27/Lib/site-packages/PyQt4/pylupdate4 ui_main.py -ts zh_CN.ts
$ /d/python27/Lib/site-packages/PyQt4/pylupdate4 ui_main.py -ts en.ts
借助Qt语言家发布得到en.qm
和zh_CN.qm
这2个文件,放在res/locale
目录里
在UI上设置触发切换语言
界面上需要按钮或菜单栏的action;需要持有QTranslator
;
1 |
|