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?" 一排英文选项,哪个能动?动错了会怎样?对录制回放类工具来说,最麻烦的是误改设置——录好的宏回放时走样。现在有了中文语言支持,菜单和提示全部用中文呈现,照着读就能操作,新手的上手成本明显降下来了。
三步切换到中文界面
不用重启,也不用翻配置文件,操作路径很简单:
- 在主窗口顶部菜单栏点选项 → 设置 → 语言设置,弹出一个语言选择小窗口;
- 在下拉框里选中简体中文对应项,按"确认";
- 界面文字立刻全部变为中文,选择会写入配置,下次启动默认还是中文。
你会发现切换的瞬间连菜单栏的文字都跟着变了,因为程序重新读取了文案并重建了菜单栏,而不是"刷新"了窗口。
中文文案存放在哪里:语言文件这样组织
所有翻译文本集中在独立的 语言文件目录 里,每种语言对应一个 JSON 文件(JSON 是纯文本键值对格式,人和机器都能读)。目前已有英语、简体中文、德语、法语、西班牙语、意大利语、葡萄牙语(巴西)、俄语、土耳其语、荷兰语、保加利亚语等 13 种,全部按这个方式存放。
以中文文件src/langs/zh-CN.json为例,内部分两块:
- information 部分:记录作者和语言标识(lang_short 为 zh-CN);
- content 部分:按功能模块分组存放文案——全局按钮文本、文件菜单、选项下的回放设置、帮助菜单等。
这种"代码与翻译分离"的组织方式有三个好处:翻译不干扰代码逻辑;不会写程序的人也能直接提交译文;新增一种语言只需往目录里丢一个文件,代码零改动。
切换后界面为什么立刻变了:原理拆解
打个比方:界面像一座舞台,按钮、菜单、提示只是贴在上面的"标签"。切换语言不是重建舞台,而是把旧标签揭下来、贴上新一批。
你按"确认"后,程序依次做了三件事:
- 把新语言写进配置文件;
- 重新读取对应 JSON,把整套文案装进一个内存字典(
text_content); - 销毁旧菜单栏,基于新文案重建一个新菜单。
第 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'。 - 术语一致性:同一个设置项不能一处叫"速度"、另一处叫"速率"。对策:对照英文文件逐键翻译,先定小术语表再动手。
- 界面宽度:中文整体紧凑,但"无限循环"这类词比英文长,按钮和弹窗要留余量。对策:译完后过一遍界面,把局促的窗口适当加宽。
- 标点混用:中文全角和英文半角标点混在一起观感很差。对策:统一使用中文标点,全文件保持一致。
动手扩展:再加一种语言只需四步 🔧
想给这个项目补充另一种语言(比如日语),步骤如下:
- 复制
src/langs/里一份完整的语言文件(推荐以英文 en.json 为底本),改成你的语言代码,如 ja.json; - 在 information 部分填上译者名,把 lang_short、lang_long 改为新语言的标识与正式名称;
- 逐键翻译 content 部分,键一个都不要删或漏,结构必须与英文文件一致;
- 运行程序,打开选项 → 设置 → 语言设置,新语言会自动出现在下拉框里——程序启动时会扫描语言目录,扫到即加载。
对其他桌面项目的参考价值
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),仅供参考