Pyside(PyQt)开发中英文版软件

前言

最近接到一个新需求,软件需要开发英文版。自己研究了一阵子,差不多走通了,把方案分享给大家

操作流程

  1. 在代码中将需要翻译的字符串用tr包裹,如下图所示

    在这里插入图片描述

  2. 编写脚本,将所有需要翻译的py文件加入ts,这里我写bat脚本举例(如果是linux环境,编写shell脚本即可)

       @echo off
       setlocal
       
       REM 设置你的源代码目录和输出ts文件的位置
       set "sourceDir=.\src"
       set "outputTsFile=.\assets\i18n\bms_analyse_zh_CN.ts"
       set "tempFileList=temp_filelist.txt"
       
       REM 清除现有的ts文件和临时文件列表
       if exist "%tempFileList%" del "%tempFileList%"
       
       REM 收集所有.py文件的路径到临时文件,去除双引号
       for /r "%sourceDir%" %%F in (*.py) do (
           echo %%~fF>> "%tempFileList%"
       )
       
       REM 使用pyside6-lupdate处理临时文件列表中的所有.py文件
       if exist "%tempFileList%" (
           pyside6-lupdate @"%tempFileList%" -ts "%outputTsFile%"
           del "%tempFileList%"
       )
       
       echo TS file generation complete.
       pause
       endlocal
    
  3. 执行脚本生成完ts文件后,将翻译内容填入到ts文件中

    在这里插入图片描述

    translation里面填要翻译的语言,报错不用理会,无关紧要

  4. 编译.ts文件生成.qm文件

    lrelease -verbose .\assets\i18n\bms_analyse_zh_CN.ts -qm .\assets\i18n\bms_analyse_zh_CN.qm
    

    在这里插入图片描述

    生成过程如下图所示

    在这里插入图片描述

    这里显示已经翻译的条数和未翻译的条数

  5. 在程序中设置语言

        # 设置语言
        translator = QTranslator(app)
        path = os.path.join(assets_dir, "i18n", "bms_analyse_zh_CN.qm")
        translator.load(path)
        app.installTranslator(translator)
    

    可以写一个按钮触发事件,或者读配置文件,将我上面加载语言的代码放进去,我这里选择的是读配置文件

    在这里插入图片描述

  6. 打开程序后就能看到英文版界面了,这里是我数据分析软件的一个例子(还有部分翻译工作未完成)

    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MC皮蛋侠客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值