使用PyQt工具提供的 Linguist.exe 进行翻译操作及pycharm外部工具配置, Linguist.exe该工具在“python37\Lib\site-packages\pyqt5_tools\Qt\bin”内, 以下创建一个简单的国际化程序。
1、使用Qt Designer 创建一个Ui界面文件名为 Ui_main.ui, 并且转换为Ui_main.py。
CMD控制台命令为:pyuic5 Ui_main.ui -o Ui_main.py

2、创建翻译包,将.py文件生成为.ts文件。
CMD控制台命令: pylupdate5 Ui_main.py -ts Ui_main.ts 得到翻译包文件

2.1、 使用Pycharm 生成翻译包的设置。
打开设置-工具-外部工具-添加设置
Program: D:\Anaconda3\envs\python37\Scripts\pylupdate5.exe ( 这里设置为PyQt5文件夹下的pylupdate5.exe 程序。)
Arguments: $FileName$ -ts $FileNameWithoutExtension$.ts
Working directory: $FileDir$

添加外部工具完毕后, 可以点击py文件鼠标右键生成.ts文件。

注意:保存.py程序的路径不能用带中文路径, 不然生成.ts文件,会出错!
3、使用语言家 Linguist.exe 打开.ts 文件, 选择需要翻译字样,并将译文写入,最后发布程序.qm文件。
打开.ts文件。
来源语言默认:任何国家
目标语言:这里设置为中文或者English, 如果你想翻译为其它国家的语言就选择其它国家。

因为我们本身使用的是中文, 所以直接发布保存为cn.qm备用, 文件会生成在该文件路径下。

继续打开Ui_main.ts 文件

打开编辑-翻译文件设置, 修改为目标语言为英国(根据自身需求)

输入译文,输入完毕后,跟之前说的步骤一直保持为.qm文件。


4、准备工作完毕,编写主程序。
# -*- coding: utf-8 -*-
"""
Creation Time:
"""
import sys
from PyQt5.QtCore import QTranslator
from PyQt5.QtWidgets import QApplication,QMainWindow
from Ui_main import Ui_MainWindow
class name(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.trans = QTranslator() #实例翻译者
self.ui.pushButton.clicked.connect(self.chinese)
self.ui.pushButton_2.clicked.connect(self.english)
def english(self):
self.trans.load("en") #读取qm语言包
app = QApplication.instance() #应用实例
app.installTranslator(self.trans)#将翻译者安装到实例中
self.ui.retranslateUi(self)#翻译界面
def chinese(self):
self.trans.load("cn")
app = QApplication.instance()
app.installTranslator(self.trans)
self.ui.retranslateUi(self)
if __name__ == "__main__":
app = QApplication(sys.argv)
a = name()
a.show()
sys.exit(app.exec_())
切换效果:

参考链接:
https://www.jianshu.com/p/010bebde9577
https://doc.qt.io/qt-5/linguist-translators.html#batch-translation
原文:https://www.cnblogs.com/siyun/p/13723440.html