news 2026/8/22 12:14:46

3分钟把开源宏录制工具PyMacroRecord调成中文界面:完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3分钟把开源宏录制工具PyMacroRecord调成中文界面:完整指南

3分钟把开源宏录制工具PyMacroRecord调成中文界面:完整指南

【免费下载链接】PyMacroRecordFree and Open Source Macro Recorder with a modern GUI using Python项目地址: https://gitcode.com/gh_mirrors/py/PyMacroRecord

PyMacroRecord 是一款免费的开源宏录制工具:录下你的鼠标点击、移动与键盘输入,实现自动化回放。它新增了中文语言支持——怎么切换、为什么立刻生效、如何再扩展,往下看。

英文界面劝退?中文支持解决的正是这个

第一次打开英文界面的新手常有这种体验:"Speed"、"Repeat count"、"Infinite loop?" 一排英文选项,哪个能动?动错了会怎样?对录制回放类工具来说,最麻烦的是误改设置——录好的宏回放时走样。现在有了中文语言支持,菜单和提示全部用中文呈现,照着读就能操作,新手的上手成本明显降下来了。

三步切换到中文界面

不用重启,也不用翻配置文件,操作路径很简单:

  1. 在主窗口顶部菜单栏点选项 → 设置 → 语言设置,弹出一个语言选择小窗口;
  2. 在下拉框里选中简体中文对应项,按"确认";
  3. 界面文字立刻全部变为中文,选择会写入配置,下次启动默认还是中文。

你会发现切换的瞬间连菜单栏的文字都跟着变了,因为程序重新读取了文案并重建了菜单栏,而不是"刷新"了窗口。

中文文案存放在哪里:语言文件这样组织

所有翻译文本集中在独立的 语言文件目录 里,每种语言对应一个 JSON 文件(JSON 是纯文本键值对格式,人和机器都能读)。目前已有英语、简体中文、德语、法语、西班牙语、意大利语、葡萄牙语(巴西)、俄语、土耳其语、荷兰语、保加利亚语等 13 种,全部按这个方式存放。

以中文文件src/langs/zh-CN.json为例,内部分两块:

  • information 部分:记录作者和语言标识(lang_short 为 zh-CN);
  • content 部分:按功能模块分组存放文案——全局按钮文本、文件菜单、选项下的回放设置、帮助菜单等。

这种"代码与翻译分离"的组织方式有三个好处:翻译不干扰代码逻辑;不会写程序的人也能直接提交译文;新增一种语言只需往目录里丢一个文件,代码零改动。

切换后界面为什么立刻变了:原理拆解

打个比方:界面像一座舞台,按钮、菜单、提示只是贴在上面的"标签"。切换语言不是重建舞台,而是把旧标签揭下来、贴上新一批。

你按"确认"后,程序依次做了三件事:

  1. 把新语言写进配置文件;
  2. 重新读取对应 JSON,把整套文案装进一个内存字典(text_content);
  3. 销毁旧菜单栏,基于新文案重建一个新菜单。

第 2 步是核心,代码很短:

def load_language(self): self.lang = self.settings.settings_dict["Language"] with open(resource_path(path.join('langs', self.lang + '.json')), encoding='utf-8') as f: self.text_content = json.load(f)

这里的resource_path()是个小工具(作用是不管程序从源码还是打包安装后运行,都能正确定位文件),它保证了文件找得到。更稳妥的一点是:如果当前语言文件漏了某段文案,程序会自动用英文补齐,界面上不会出现空白或报错。

菜单栏的"换标签"还多一步,拆掉旧的、装上新的:

main_app.nametowidget(old_menu_name).destroy() from windows.main.menu_bar import MenuBar main_app.menu = MenuBar(main_app)

菜单文字全部来自那个字典,所以重建后新文案即刻生效。

容易踩的坑与对策

中文支持落地过程中,有几个真实问题值得注意。如果你也要加语言,提前心里有数:

  • 编码:中文必须以 UTF-8 存取,打开文件时漏掉 encoding 参数就会乱码甚至报错。对策:读写语言文件永远带上encoding='utf-8'
  • 术语一致性:同一个设置项不能一处叫"速度"、另一处叫"速率"。对策:对照英文文件逐键翻译,先定小术语表再动手。
  • 界面宽度:中文整体紧凑,但"无限循环"这类词比英文长,按钮和弹窗要留余量。对策:译完后过一遍界面,把局促的窗口适当加宽。
  • 标点混用:中文全角和英文半角标点混在一起观感很差。对策:统一使用中文标点,全文件保持一致。

动手扩展:再加一种语言只需四步 🔧

想给这个项目补充另一种语言(比如日语),步骤如下:

  1. 复制src/langs/里一份完整的语言文件(推荐以英文 en.json 为底本),改成你的语言代码,如 ja.json;
  2. 在 information 部分填上译者名,把 lang_short、lang_long 改为新语言的标识与正式名称;
  3. 逐键翻译 content 部分,键一个都不要删或漏,结构必须与英文文件一致;
  4. 运行程序,打开选项 → 设置 → 语言设置,新语言会自动出现在下拉框里——程序启动时会扫描语言目录,扫到即加载。

对其他桌面项目的参考价值

PyMacroRecord 这套"翻译独立成 JSON、运行时动态加载、界面按需重建"的做法,值得任何做桌面软件国际化(internationalization,业内指"让软件会说用户语言")的 Python GUI 项目直接参考:新增一种语言的代价只是一个文件,维护与代码互不纠缠,社区也能顺手上手。开源项目多语言支持怎么做,这里就是一份可以直接抄的模板。

【免费下载链接】PyMacroRecordFree and Open Source Macro Recorder with a modern GUI using Python项目地址: https://gitcode.com/gh_mirrors/py/PyMacroRecord

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 12:14:16

【VRTK】【VR开发】【Unity】19-VRTK实现旋转运动

课程配套学习项目源码资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【背景】 在实际开发中,旋转运动也是时常需要模拟的重要运动类型。常见的场景有开关门,方向盘轮胎以及拉动拉杆等等。 旋转运动的实现可以基于物理系…

作者头像 李华
网站建设 2026/8/22 12:13:40

搭建elk环境并接入frostmourne,实现监控报警效果(三)

浏览 #docker-compose.yaml配置 version: 3.8 services:kibana:# 镜像名称image: docker.elastic.co/kibana/kibana:8.6.0# 容器名称hostname: kibanacontainer_name: kibanaports:- 5601:5601volumes:- /data/elk_monitor/kibana/config/kibana.yml:/usr/share/kibana/confi…

作者头像 李华
网站建设 2026/8/22 12:12:24

Realtek 8192FU 无线网卡驱动:一次配置长期有效的 Linux 安装指南

Realtek 8192FU 无线网卡驱动:一次配置长期有效的 Linux 安装指南 【免费下载链接】rtl8192fu Realtek 8192FU Linux USB无线网卡驱动 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8192fu Linux 默认不带 Realtek 8192FU 的驱动,这张无线网卡…

作者头像 李华
网站建设 2026/8/22 12:11:35

Java 浮点数如何运算

为什么浮点数运算的时候会有精度丢失的风险?浮点数运算精度丢失代码演示:float a 2.0f - 1.9f; float b 1.8f - 1.7f; System.out.println(a);// 0.100000024 System.out.println(b);// 0.099999905 System.out.println(a b);// false为什么会出现这个…

作者头像 李华