Anki Selection Translator
Anki Selection Translator 是一个用于 Anki 复习界面的划词翻译插件。你可以在卡片中选中文字后用快捷键翻译,也可以开启“划词即翻译”模式,让选中文字后自动弹出翻译结果。
功能
- 支持 Anki 复习界面划词翻译
- 支持两种触发方式:快捷键触发、划词自动触发
- 翻译结果以页面浮层显示,不需要点击确认
- 点击浮层外任意位置即可关闭结果
- 支持 50 条本地 LRU 缓存,命中缓存时不会再次请求 API
- 支持 DeepSeek、OpenAI、Gemini、DeepL
- API key 从 Anki 插件配置读取,不写死在代码中
- 请求失败时在浮层中显示错误信息
安装
方式一:AnkiWeb 安装
AnkiWeb 下载代码:1206358969
AnkiWeb 页面:https://ankiweb.net/shared/info/1206358969
在 Anki 中打开:
工具 -> 插件 -> 获取插件...
输入代码 1206358969,安装后重启 Anki。
方式二:从 GitHub Release 安装
下载 release 中的 .ankiaddon 文件,然后在 Anki 中打开:
工具 -> 插件 -> 从文件安装...
选择下载的 .ankiaddon 文件并重启 Anki。
使用
- 打开 Anki,进入复习界面。
- 选中卡片上的文字。
- 如果触发方式是
shortcut,按配置的快捷键,默认是 Cmd+T。
- 如果触发方式是
selection,选中文字后会自动翻译。
- 翻译结果会显示为浮层;点击浮层外任意位置,或按
Esc 关闭。
配置
在 Anki 中打开:
工具 -> 插件 -> anki-selection-translator -> 配置
插件会显示图形化设置窗口。也可以直接编辑插件配置 JSON。
默认配置示例:
{
"shortcut": "Meta+T",
"trigger_mode": "shortcut",
"selection_trigger_delay_ms": 350,
"cache_size": 50,
"provider": "openai",
"target_lang": "ZH",
"deepl_api_key": "",
"deepl_api_url": "https://api-free.deepl.com/v2/translate",
"openai_api_key": "",
"openai_model": "gpt-4.1-mini",
"gemini_api_key": "",
"gemini_model": "gemini-1.5-flash",
"deepseek_api_key": "",
"deepseek_model": "deepseek-v4-flash"
}
触发方式
快捷键触发:
"trigger_mode": "shortcut"
划词自动翻译:
"trigger_mode": "selection"
快捷键
macOS 的 Cmd 写作 Meta。
示例:
"shortcut": "Meta+T"
也可以设置为:
"shortcut": "Meta+Shift+T"
Windows/Linux 可以使用:
"shortcut": "Ctrl+T"
DeepSeek 配置
{
"provider": "deepseek",
"target_lang": "ZH",
"deepseek_api_key": "你的 DeepSeek API key",
"deepseek_model": "deepseek-v4-flash"
}
也可以把模型改为:
"deepseek_model": "deepseek-v4-pro"
OpenAI 配置
{
"provider": "openai",
"target_lang": "ZH",
"openai_api_key": "你的 OpenAI API key",
"openai_model": "gpt-4.1-mini"
}
Gemini 配置
{
"provider": "gemini",
"target_lang": "ZH",
"gemini_api_key": "你的 Gemini API key",
"gemini_model": "gemini-1.5-flash"
}
DeepL 配置
DeepL Free:
{
"provider": "deepl",
"target_lang": "ZH",
"deepl_api_key": "你的 DeepL API key",
"deepl_api_url": "https://api-free.deepl.com/v2/translate"
}
DeepL Pro:
"deepl_api_url": "https://api.deepl.com/v2/translate"
缓存
插件会在本地保存翻译缓存,默认最多 50 条:
"cache_size": 50
缓存命中时会直接显示翻译,不再发送 API 请求。缓存文件为 translation_cache.json,不会提交到仓库,也不会打包进发布文件。
隐私和安全
- 不要把 API key 写入代码。
- 不要提交
meta.json,Anki 可能会把本地配置写入这个文件。
- 发布包中只应包含空 key 的配置模板。
开发和打包
打包 .ankiaddon 时,只需要包含:
__init__.py
config.json
README.md
不要包含:
.git/
__pycache__/
translation_cache.json
meta.json
dist/