Keil 翻译插件:一键翻译中英文注释,提升嵌入式开发效率
2026/7/16 2:53:10 网站建设 项目流程

初衷
针对初学嵌入式时看不懂 Keil 中英文注释、频繁切换翻译工具效率低的痛点。

核心思路
通过给 Keil 添加翻译插件,实现一键选中注释翻译(支持中英互译),无需切换浏览器,直接在 Keil 编辑器内完成翻译,大幅提升开发效率。

前置条件
Keil MDK-ARM V5.28+(V6 版本操作类似)
已安装 Python 3.8+(添加系统环境变量)
安装翻译 API 依赖(如百度翻译 API / 有道翻译 API,免费额度足够初学使用)
步骤 1:申请免费翻译 API(以百度翻译为例)
登录百度翻译开放平台,注册并创建应用,获取 APP_ID 和 密钥。
记录 API 接口地址:https://api.fanyi.baidu.com/(个人认证免费额度:100 万字符 / 月)。

步骤 2:编写 Python 翻译脚本
新建 keil_translator.py 文件,放在 Keil 安装目录下或者在电脑上新建任意一个文件夹存放(文件路径要记住,一会添加插件的时候要用到),代码如下:

import requests import pyperclip import json import sys import random # 配置百度翻译API (免费申请:http://api.fanyi.baidu.com) APP_ID = 'APP ID' SECRET_KEY = '密钥' def translate(text, from_lang='en', to_lang='zh'): url = 'http://api.fanyi.baidu.com/api/trans/vip/translate' salt = random.randint(32768, 65536) # 随机数 # 生成签名 sign = APP_ID + text + str(salt) + SECRET_KEY import hashlib sign = hashlib.md5(sign.encode()).hexdigest() params = { 'q': text, 'from': from_lang, 'to': to_lang, 'appid': APP_ID, 'salt': salt, 'sign': sign } try: response = requests.get(url, params=params) result = json.loads(response.text) # 处理多行翻译结果 translations = [item['dst'] for item in result['trans_result']] return '\n'.join(translations) except Exception as e: return f"翻译失败: {str(e)}" if __name__ == "__main__": # 获取Keil传来的选中文本 text_to_translate = sys.argv[1] if len(sys.argv) > 1 else pyperclip.paste() if not text_to_translate.strip(): print("未检测到选中文本") else: # 自动检测中英文 is_chinese = any('\u4e00' <= char <= '\u9fff' for char in text_to_translate) from_lang = 'zh' if is_chinese else 'en' to_lang = 'en' if is_chinese else 'zh' translated = translate(text_to_translate, from_lang, to_lang) print(f"原文: {text_to_translate}\n翻译: {translated}") # 可选:自动复制到剪贴板 pyperclip.copy(translated)

步骤 3:配置 Keil 外部工具(关联翻译脚本)
打开 Keil,点击菜单栏 Tools → Customize Tools Menu(不同版本可能位置不一样)。
点击 Add 新增工具,配置参数:
Name:翻译选中文本(自定义)
Command:python.exe(需填写完整路径,如 C:\Python38\python.exe)
Arguments:keil_translator.py 文件的路径(如C:\ARM\Scripts\keil_translator.py")
Initial Folder:空着
勾选 Capture Output(捕获翻译结果)、Show Console(显示结果窗口)。如果有这两个选项就勾上,我的版本没有。
点击 OK 保存配置。

步骤 4:使用方法
在 Keil 编辑器中选中需要翻译的英文注释(如 /* Initialize UART peripheral */)然后按Ctrl+C复制这段注释。
点击菜单栏 Tools → 翻译选中文本,即可在弹出的控制台中看到翻译结果:/* 初始化UART外设 */。
也可以给这个翻译选中文本的插件添加快捷键:点击菜单栏 Edit → Configuration → Shortcut Keys 在Select Command中找到Tools:翻译选中文本 → 点击右侧Create Shortcut,就可以设置你想用的快捷键了,设置完成点击OK保存(如 我用的是Alt+Shift+F)。

————————————————
版权声明:本文为CSDN博主「毛毛゛」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2501_90739332/article/details/155864155

以上是原文作者的

我只说我遇到的问题,最终翻译结果如下

我在想为什么?是不是没有选中段落,于是我进行了一下测试

根本原因

Keil 的$C(当前行内容)和$S(选中文本)这类宏,只在特定上下文中有效。在你的环境下,它们没有被正确解析为实际的文本内容,可能的原因有:

  1. Keil 版本较老(如 μVision 4):对$S支持不完整

  2. 宏被转义或误用:在Arguments中写法有细微差别

  3. 焦点位置不对:工具执行时,焦点不在编辑器窗口

解决方案(推荐切换为剪贴板方式)

与其跟 Keil 的宏较劲,不如换一种更稳定可靠的方法:让 Python 脚本直接读取剪贴板内容。这样你只需要Ctrl+C 复制要翻译的文本,然后运行脚本即可,完全不依赖 Keil 的宏。

修改后的脚本(剪贴板版)

keil_translator.py中替换为以下代码:

import requests import json import hashlib import random import pyperclip # 新增库:用于读取剪贴板 # 请替换为你的百度翻译密钥 APPID = '你的APPID' SECRET_KEY = '你的密钥' def translate(text, from_lang, to_lang): url = "https://fanyi-api.baidu.com/api/trans/vip/translate" salt = random.randint(32768, 65536) sign = hashlib.md5((APPID + text + str(salt) + SECRET_KEY).encode('utf-8')).hexdigest() params = { 'q': text, 'from': from_lang, 'to': to_lang, 'appid': APPID, 'salt': salt, 'sign': sign } try: response = requests.get(url, params=params) result = response.json() translations = [item['dst'] for item in result['trans_result']] return '\n'.join(translations) except Exception as e: return f"翻译失败: {str(e)}" if __name__ == "__main__": # 从剪贴板读取文本(而不是从命令行参数) text_to_translate = pyperclip.paste() if not text_to_translate.strip(): print("剪贴板为空,请先复制要翻译的文本!") else: # 判断中英文自动切换方向 is_chinese = any('\u4e00' <= char <= '\u9fff' for char in text_to_translate) from_lang = 'zh' if is_chinese else 'en' to_lang = 'en' if is_chinese else 'zh' translated = translate(text_to_translate, from_lang, to_lang) print(f"原文: {text_to_translate}\n翻译: {translated}")
安装剪贴板库

在命令行执行:

pip install pyperclip
使用方法
  1. 在 Keil 编辑器中,选中你要翻译的英文注释

  2. Ctrl+C复制(这一步替代了原来的宏取词)

  3. 点击Tools翻译选中文本

  4. 弹出窗口显示翻译结果

结果

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询