PyQt5 使用 Qt Linguist 完成语言转换功能,知识点与实例(例子是中英文转换翻译)

您所在的位置:网站首页 pyqt5界面切换栏 PyQt5 使用 Qt Linguist 完成语言转换功能,知识点与实例(例子是中英文转换翻译)

PyQt5 使用 Qt Linguist 完成语言转换功能,知识点与实例(例子是中英文转换翻译)

2024-07-10 22:13| 来源: 网络整理| 查看: 265

PyQt5 使用 Qt Linguist 完成语言转换功能,知识点与实例(例子是中英文翻译) 前言Qt Linguist介绍创建一个完整项目1. 使用Qtdesigner创建ui界面2.写入主界面逻辑3.Qt Linguist创建翻译包 github项目地址

前言

大概思路是做一个Language工具栏选项,通过点击选项实现中英文界面切换,具体用到了Qt Linguist.exe,工具栏创建与功能连接,下面将详细介绍。

QT Linguist官方例子https://doc.qt.io/qt-5/examples-linguist.html,共有三个例子。

这篇文章写了太多的官方文档介绍,不需要的可以直接跳到创建完整项目的步骤。

Qt Linguist介绍

QT为Qt C++和Qt Quick提供了专用的快捷开发语言翻译的应用,使得权限管理者,翻译者,开发者可以用Qt tools来完成他们的工作。 权限管理者 承担着管理所有应用权限的责任,比如说,调配开发者跟翻译者的工作,还可以用已发布的应用,lupdate tool来同步源代码跟翻译后的,还可以用lrelease tool来创建一个运行时的翻译文件(我理解为语言包)。 翻译者 可以使用Qt Linguist 工具来在应用中翻译文本。不需要计算机知识,只需要你会启动项目,会用文本编辑器。 开发者必须创建可以使用被翻译过的文本的Qt应用。应当帮助译者识别短语出现的上下文。开发人员可以使用教程了解他们的任务。 (虽然官方文档这么说,但是我们应当知道,三个角色一般来说都是程序员扮演的)

QT Linguist 包含在pyqt5-tools中一并安装上了(安装在前一篇文章)。一般在Python文件夹 目录下

venv\Lib\site-packages\pyqt5_tools\Qt\bin

可以找到QT Linguist.exe运行程序。

Qt Linguist提供了多种语言支持,但是没有增加很多开发者的工作 Qt通过只在程序创建的时候,使用翻译者翻译短句,实现对程序的最小开支。在大多数情况下,主窗口只创建一遍,一旦窗口初始化的时候完成翻译,根据需要来选择显示还是隐藏,只有在窗口被创建,销毁的时候才需要翻译者。

创建一个完整项目

主窗口文件MainWin.py UI界面文件test_ui.py

1. 使用Qtdesigner创建ui界面

(在我的文章初探在Pycharm中使用QT开发GUI页面,组件安装配置以及一个完整项目中有详细介绍) 在这里插入图片描述 一个label ,两个按钮,实现点击 English按钮 出现英文,点击 简体中文 按钮将其切换为英文,保存为.ui文件,并转换为.py文件

pyuic5 -o test_ui.py test_ui.ui

2.写入主界面逻辑

引入ui格式,建立app窗口

import sys from PyQt5.QtWidgets import QMainWindow,QApplication from test_ui import * class MyMainForm(QMainWindow,Ui_Form): def __init__(self,parent = None): super(MyMainForm, self).__init__(parent) self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) myWin = MyMainForm() myWin.show() sys.exit(app.exec_())

PyQt5文档中对各个语句功能的详解,不再赘述

https://www.riverbankcomputing.com/static/Docs/PyQt5/designer.html

3.Qt Linguist创建翻译包

首先需要生成一个 .ts 文件,test_ui.py 是要翻译的文件名,zn_CN.ts是要生成的文件名。

E:\Python_project\CSDN>pylupdate5 test_ui.py -ts zn_CN.ts

在Python文件夹下,找到Qt Linguist.exe程序,打开刚才生成的.ts文件

Linguist文件夹: venv\Lib\site-packages\pyqt5_tools\Qt\bin

注意在进入的时候选择源语言与要翻译的目标语言,这里我选择的是英翻汉,主界面如下: 在这里插入图片描述

完成所有的字段翻译并保存,作为例子只翻译helloworld这个字段

在这里插入图片描述 完成后点击file>release,将翻译好的包保存到当前目录下,得到.qm文件 在这里插入图片描述 在这里插入图片描述

将翻译逻辑写添加到逻辑页面中 完整代码如下:

import sys from PyQt5.QtWidgets import QMainWindow,QApplication from PyQt5.QtCore import QTranslator from test_ui import * class MyMainForm(QMainWindow,Ui_Form): def __init__(self,parent = None): super(MyMainForm, self).__init__(parent) self.setupUi(self) #定义翻译家 self.trans = QTranslator() #将两个按钮链接到槽函数 self.pushButton.clicked.connect(self._tigger_english) self.pushButton_2.clicked.connect(self._trigger_zh_cn) def _tigger_english(self): #加载语言包 self.trans.load("zn_CN") #获取窗口实例 app = QApplication.instance() #将翻译家安装到实例中 app.installTranslator(self.trans) #翻译界面 self.retranslateUi(self) pass def _trigger_zh_cn(self): #加载语言包 self.trans.load("en") #获取窗口实例 app = QApplication.instance() #将翻译家安装到实例中 app.installTranslator(self.trans) self.retranslateUi(self) pass if __name__ == '__main__': app = QApplication(sys.argv) myWin = MyMainForm() myWin.show() sys.exit(app.exec_()) github项目地址

https://github.com/yuuanjiaxiang/CSDN/tree/master/Translation

最后一点自己的叨叨,在学习linguist过程中,看了很多QtLinguist以及pyqt5的官方文档,进步很多,比看博客或者网络搜索得到的更系统更清晰,同时也很煎熬,顶着工地英语压力确实很大,以后还是要多看官方文档,对自己的提升比较快一些吧。不忘初心,砥砺前行,哈哈。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3