支持大模型调用的 VSCode 代码注释翻译插件,作为 Comment Translate 的翻译源扩展。兼容所有 OpenAI API 格式的服务,如 OpenAI、DeepSeek、OpenRouter 等。
⚠️本插件不提供大模型 Key,请自备 Key
[简体中文]|English
✨ 特性
- 🤖 支持 OpenAI 兼容模式,适用于 DeepSeek、OpenRouter 等多种服务
- 🎯 对函数、类、变量等参数的智能命名,按照命名规则优化命名
- 🔄 对问题面板信息进行翻译
- ⌨️ 自定义提示词模板
- ⚡ 快速的翻译响应(支持流式传输)
- 🛡️ 过滤深度思考模型的思考内容(如 DeepSeek-R1)
- 💾 智能 LRU 缓存,避免重复翻译
- 🛠️ 灵活的配置选项
📦 安装
- 安装 Comment Translate
- 安装本插件 Comment Translate for AI
- 在 VS Code 中打开命令面板 (Ctrl+Shift+P)
- 输入 "Comment Translate: Change translation source"
- 选择 "AI Translate" 作为翻译源
⚙️ 配置
在 VS Code 设置中配置以下选项:
| 配置项 |
说明 |
默认值 |
aiTranslate.largeModelApi |
OpenAI 兼容 API 端点,支持 DeepSeek、OpenRouter 等服务 |
https://api.openai.com/v1 |
aiTranslate.largeModelKey |
API 密钥 |
- |
aiTranslate.largeModelName |
模型名称,如 gpt-3.5-turbo、deepseek-chat |
gpt-3.5-turbo |
aiTranslate.largeModelMaxTokens |
最大 token 数 |
4096 |
aiTranslate.requestTimeout |
请求超时时间(秒),本地慢速模型建议调大(如 180) |
50 |
aiTranslate.largeModelTemperature |
温度参数 (0-1),较低值更确定,较高值更多样 |
0.5 |
aiTranslate.namingRules |
命名规则 |
default |
aiTranslate.streaming |
启用流式传输 |
false |
aiTranslate.extraRequestParams |
额外请求参数,支持传递厂商扩展参数(如 DashScope 的 enable_thinking) |
{} |
aiTranslate.filterThinkingContent |
过滤深度思考内容 |
false |
aiTranslate.problemTranslateLang |
问题面板翻译目标语言 |
none |
aiTranslate.customTranslatePrompt |
自定义翻译提示词 |
- |
aiTranslate.customNamingPrompt |
自定义命名提示词 |
- |
🚀 快速开始
配置 API 相关信息,请确保您使用的大模型服务商兼容 OpenAI 的 API 调用格式

配置完成后,请调用 "Comment Translate" 中的 "Comment Translate: Change translate source" 命令

选择翻译源为 "AI translate"

怎么使用 "AI 命名"
- 右键鼠标 → 在列表中选择 "注释翻译" → 点击 "AI 命名" 即可使用
- 将命名按照所选的命名格式翻译成英文
- 按照命名格式优化命名

自定义 AI 提示词
提示词中需要包含以下参数,参数内容由插件自动获取
自定义命名提示词
| 参数 |
说明 |
必填 |
${variableName} |
当前正在处理的变量名 |
是 |
${paragraph} |
变量所在的段落 |
是 |
${languageId} |
当前文件的语言标识 |
是 |
${namingRule} |
命名规则描述 |
否 |
示例:请根据 ${languageId} 判断 "${paragraph}" 中的 "${variableName}" 是类名、方法名、函数名还是其他类型。
然后,根据 ${languageId} 的标准规范和 ${namingRule},将 "${variableName}" 翻译为英文,
使用专业术语,并直接返回 "${variableName}" 的翻译结果,无需任何解释或特殊符号。
自定义翻译提示词
| 参数 |
说明 |
必填 |
${targetLang} |
翻译时的目标语言 |
是 |
${content} |
需要翻译的内容 |
是 |
示例:请充当翻译员,检查句子或词语是否准确,翻译自然、流畅且符合习惯用法,
使用专业的计算机术语以确保注释或功能的准确翻译,无需添加不必要的内容。
将以下文本翻译成 ${targetLang}:
${content}
问题面板信息翻译
将问题面板中的警告、报错等信息翻译成所选的语言
⚠️ 对语言的支持能力取决于你使用的模型

本地推理模型(Ollama / LM Studio)使用指南
使用 Gemma、Qwen、DeepSeek-R1 等本地推理("思考型")模型时,请注意:
请求超时:推理模型可能需要数分钟思考后才返回内容,默认 60 秒超时会不够用。请调大 aiTranslate.requestTimeout(单位:秒,如 180 或 600)。
空内容问题:部分推理模型默认开启思考,可能把全部 max_tokens 预算消耗在思考通道上,导致 HTTP 200 但正文为空。推荐在 aiTranslate.extraRequestParams 中关闭思考:
// Ollama + Gemma 4 示例
"aiTranslate.extraRequestParams": { "reasoning_effort": "none" }
// 其他厂商可能是以下之一(视模型而定)
"aiTranslate.extraRequestParams": { "enable_thinking": false }
"aiTranslate.extraRequestParams": { "think": false }
错误提示:当 API 返回 200 但正文为空时,本扩展会明确提示"内容为空"并给出排查建议,而不是误报"网络请求超时"。
🏗️ 架构
本项目采用分层架构设计:
src/
├── api/ # API 客户端层 (OpenAIClient)
├── core/ # 核心业务逻辑 (AiTranslate, ConfigManager, PromptBuilder)
├── errors/ # 错误处理 (TranslationError)
├── services/ # 业务服务层 (TranslationService, NamingService, ProblemTranslationService, LoggingService)
├── types/ # 类型定义
├── utils/ # 工具函数 (url)
└── extension.ts # 扩展入口
性能优化
- LRU 缓存(lru-cache):最多缓存 500 条翻译结果,1 小时过期,语言检测缓存 12 小时
- 请求去重:相同内容的并发请求自动合并
- 防抖处理(lodash.debounce):问题面板翻译防抖 1 秒
- 指数退避重试(async-retry):网络错误自动重试 3 次,指数退避
- 并发翻译:诊断消息通过 Promise.allSettled 并发翻译,大幅减少等待时间
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📝 更新日志
详见 CHANGELOG.md
🙏 致谢
上游项目
开源依赖
本项目使用了以下优秀的开源库:
📄 许可证
本项目采用 MIT License 许可证。
| |