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)
完整代码:
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import QTranslator
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)
trans = QTranslator()
trans.load("zh_CN") # 没有后缀.qm
app.installTranslator(trans)
mainWin = Mwindow()
mainWin.show()
sys.exit(app.exec_())
效果:
Pyqt 国际化多语言支持的更多相关文章
- iOS 项目国际化(多语言支持)
按下图步骤创建好后使用如下代码即可实现国际化:self.infoLB.text = NSLocalizedString("key", comment: "") ...
- iOS-生成国际化包-配置App多语言支持
标签: ios国际化 ios多语言支持 xcode多语言支持 xcode生成多语言 国际化 it 分类: 功能知识 如果你的App需要支持多国语言.那么,就应该为你的App应用添加“国际化”支 ...
- 逐浪web无障碍与国际化以及全民族语言支持白皮书
北京时间2019年5月10日,领先的门户网站与WEB内核服务厂商--上海Zoomla!逐浪CMS团队发布其年度重榜产品:逐浪CMS全民族语言与国际版,体验站点:http://demo2.z01.com ...
- (视频)《快速创建网站》 3.3 国际化高大上 - WordPress多语言支持
本文是<快速创建网站>系列的第7篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- ios调用系统相册、相机 显示中文标题、本地化多语言支持
因为调用系统相册.相机需要显示中文,所以搞了半天才知道是在Project->info->Custom ios Target Properties 添加 Localizations 并加入C ...
- Windows 8本地化多语言支持
原文:Windows 8本地化多语言支持 在Win8平台处理本地化多语言的支持相对比较容易的,但比WP8稍微复杂一点,并不像WP8平台那样大部分工作都有VS IDE处理,Win8平台的操作基本需要开发 ...
- SAS进阶《深入解析SAS》之开发多语言支持的SAS程序
SAS进阶<深入解析SAS>之开发多语言支持的SAS程序 1. 多语言支持的应用程序是指该程序在世界给第使用时,其能够处理的数据,以及处理数据的方式.信息展现的方式都符合当地的语言.文化习 ...
- php gettext方式实现UTF-8国际化多语言(i18n)
php gettext方式实现UTF-8国际化多语言(i18n) 一.总结 一句话总结: 二.php gettext方式实现UTF-8国际化多语言(i18n) 近 来随着i18n(国际化)的逐渐标准化 ...
- thinkphp 多语言支持
ThinkPHP内置多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. 要启用多语言功能,需要配置开启多语言行为,在应用的配置目录下面 ...
随机推荐
- iOS小知识点(非UI部分)
1. _cmd 表示当前方法的@SEL指针, - (void)putString{} 对于这个函数_cmd 等效于@selector(putString)
- EL表达式怎么获取Map的动态key?
缘由 El表达式在调用Map的时候,后台传过来的Map的key不一定是一个固定的值,需要根据另外一个对象的id作为key来put,或者更加复杂的组合id+"string"作为一个k ...
- js jquery 选择器总结
js jquery 选择器总结 一.原始JS选择器. id选择器:document.getElementById("test"); name选择器:document.getElem ...
- Python * 和 ** 参数问题
Problem def calcuate(*keys) def calcluate(**keys) Slove *: 用来传递人一个无名字的参数,这些参数会以一个Tuple的形式来访问. **: 用来 ...
- 增量关联规则挖掘—FUP算法
一.背景介绍 关联规则( Association rule)概念最初由Agrawal提出,是数据挖掘的一个重要研究领域, 其目的是发现数据集中有用的频繁模式. 静态关联规则挖掘,是在固定数据集和支持度 ...
- java进行文件上传,带进度条
网上看到别人发过的一个java上传的代码,自己写了个完整的,附带源码 项目环境:jkd7.tomcat7. jar包:commons-fileupload-1.2.1.jar.commons-io-1 ...
- 6种php发送get、post请求的方法简明归纳与示例
方法1: 用file_get_contents 以get方式获取内容: <?php $url='http://www.jb51.net/'; $html = file_get_contents( ...
- java学习笔记一
数据类型 Java数据类型分为两大类:基本数据类型和复合数据类型,其中复合数据类型包括数组.类和接口. 基本数据类型(默认值只在类中有,函数变量无初始值) int 32bit 0 boolean 1b ...
- 解析Java类和对象的初始化过程
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来 ...
- 11月8日下午Jquery取属性值(复选框、下拉列表、单选按钮)、做全选按钮、JSON存储、去空格
1.jquery取复选框的值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...