comment translate插件的source填翻译服务(如google、bing),targetlanguage必须用iso 639-1两字母码(如zh、en),不可加地区后缀;二者与vscode界面语言locale完全独立,混设会导致功能异常。

Comment Translate 插件的 source 和 targetLanguage 配置项怎么填
插件不自动推断源语言,只负责把检测到的注释原文(无论什么语言)按你指定的引擎和目标语言翻译过去。source 是你选的翻译服务(如 google、bing、deepl),不是代码里注释的原始语言;targetLanguage 才是你希望译成的语言代码。
常见错误是把 targetLanguage 设成 zh-cn 或 zh_CN——多数引擎(尤其是 rokoroku.vscode-japanese-translator)只认 zh,设错会导致配置保存失败、右键菜单消失或弹窗空白。
-
commentTranslate.source可选值:google(无需 API Key)、bing(需 Bing Translator API)、deepl(需 DeepL API Key) -
commentTranslate.targetLanguage必须用 ISO 639-1 小写两字母码:中文填zh,英文填en,日文填ja,别加地区后缀 - 源语言(即注释本身是什么语言)由插件自动检测,不需要也不支持手动指定
sourceLanguage
VSCode 界面语言(locale)和翻译目标语言(targetLanguage)冲突怎么办
这两个完全独立:locale 控制 VSCode 菜单/设置面板显示语言,存在 argv.json 或通过 Configure Display Language 命令设置;targetLanguage 是翻译插件输出结果的语言,存在 settings.json 里。混设会出问题。
典型现象:界面设了 zh-cn,翻译插件又配了 zh-cn,结果右键菜单消失、悬停无反应、甚至翻译弹窗乱码。根本原因是部分插件把 zh-cn 当非法值直接丢弃配置,回退为空,导致功能瘫痪。
- VSCode 界面语言必须用
zh-cn(这是微软语言包要求),但仅限于argv.json或命令面板中设置 - 所有翻译插件的
targetLanguage都应设为zh,哪怕你装的是简体中文语言包 - 改完
settings.json不用重启 VSCode,但得关掉所有已打开的翻译弹窗再试,否则缓存旧配置
为什么悬停翻译没反应?检查这三项配置是否同时生效
悬停翻译依赖三个开关同时打开,缺一不可。只配 targetLanguage 不起作用。
-
commentTranslate.hover.enabled必须为true(默认开启,但有人手误关掉) -
commentTranslate.source不能是空字符串或未安装对应服务(比如设了deepl却没填 API Key,插件会静默禁用该引擎) - 文件类型要被插件支持:默认只处理
//、/* */、#、--类注释,对 JSON 或 HTML 中的文本不触发
如果仍不工作,打开 VSCode 开发者工具(Help → Toggle Developer Tools),在 Console 里搜 commentTranslate,看是否有报错提示具体哪项配置缺失或非法。
多行注释和嵌套注释翻译不准,multilineMerge 有什么影响
默认情况下,插件对每行单独调用翻译 API,遇到换行多、缩进深、含特殊符号的注释容易断句错乱。启用 multilineMerge 后,它会把连续的多行注释块合并成一段再提交翻译,语义更连贯,但代价是响应稍慢、无法逐行悬停预览。
- 设为
true:适合长段说明性注释(如函数文档、算法解释) - 设为
false:适合短小、分散的调试注释,悬停快,但可能漏译标点或拆分不当 - 注意:某些插件版本(如 v2.10.0 之前)对
/* ... */块注释的合并逻辑有 bug,升级到最新版可缓解
真正容易被忽略的是:这个选项只影响“翻译内容”,不影响“触发时机”——哪怕关了它,悬停依然能触发,只是每行各自翻译。











