notepad++的translate插件因依赖已关闭的google免费api而彻底失效,推荐用python脚本调用mymemory等免密钥api,通过剪贴板中转文本、检测语言方向并妥善处理编码来实现稳定翻译。

Notepad++ 的 Translate 插件根本不能用了
官方插件管理器里搜 Translate,装上后基本无法调用翻译服务——多数人遇到的是 HTTP Error 403 或空响应,因为原插件依赖的 Google Translate 免费 API 接口早已关闭,且作者多年未更新。这不是配置问题,是插件本身已失效。
替代方案:用 Python 脚本 + requests 调用免费翻译 API
自己写个轻量脚本,通过 Notepad++ 的「运行 → 运行…」(Ctrl+R)触发,比等一个修不好的插件更可靠。关键点:
- 选支持中文、无需密钥、有合理限流的 API,比如
https://api.mymemory.translated.net/get(免费,带缓存,响应快) - 脚本需接收 Notepad++ 当前选中文本(通过
$(CURRENT_WORD)或剪贴板),返回译文后自动替换或弹窗 - Windows 下建议用 Python 3.7+,安装
requests:pip install requests - 保存脚本为
translate.py,路径不含空格和中文(如C:\tools\translate.py)
示例核心逻辑(非完整脚本):
import sys, requests, json
text = sys.argv[1] if len(sys.argv) > 1 else input("Input text: ")
r = requests.get("https://api.mymemory.translated.net/get", params={"q": text, "langpair": "zh|en"})
print(json.loads(r.text)["responseData"]["translatedText"])
Notepad++ 中绑定脚本的实操细节
不是所有参数都能被正确传入,尤其含空格或换行的文本。必须绕过 Notepad++ 对命令行参数的截断限制:
- 不要用
python C:\tools\translate.py "$(CURRENT_SELECTION)"—— 多词时会丢内容 - 改用剪贴板中转:
cmd /c "echo | set /p=%SELECTEDTEXT% | clip && python C:\tools\translate.py" - 脚本内用
import pyperclip读取剪贴板,避免命令行编码/空格问题 - 在 Notepad++「运行 → 运行…」中保存为快捷键(如
Ctrl+Alt+T),别勾选「启用宏重复」
中英互译方向怎么动态判断
硬编码 zh|en 或 en|zh 很被动。实际可用简单语言检测规避歧义:
- 检查首字符 Unicode 范围:
\u4e00-\u9fff基本是中文,否则倾向英文原文 - 调用两次 API(一次 zh→en,一次 en→zh),比较返回长度和常见词匹配度(如含 "the"、"is" 就更可能是英文译文)
- 更稳的做法:固定用「当前语言→目标语言」,靠快捷键区分——
Ctrl+Alt+T英→中,Ctrl+Alt+Shift+T中→英
真正麻烦的不是翻译本身,而是 Notepad++ 对多字节字符、换行符、BOM 的处理方式——脚本里得显式 decode/encode,否则中文乱码或截断。这点容易忽略,一试就崩。











