VS Code本身不提供悬浮提示中英文切换功能,hover文字语言由后端语言服务器决定,与界面语言设置无关;locale.json仅影响菜单、命令面板等UI元素,不影响hover、补全文档和诊断信息。

VSCode 没有“悬浮提示中英文切换”这个功能——所谓悬浮提示(hover)里的文字,是语言服务器(如 TypeScript Server、Python Pylance、Rust Analyzer)返回的文档字符串或类型信息,它的语言取决于语言服务器自身是否提供多语言文档,**和 VSCode 界面语言无关**。
hover 文字为什么有时是英文、有时是中文?
这完全由后端语言服务决定,不是 VSCode 控制的:
- TypeScript/JavaScript 的 hover 提示默认只有英文(即使界面设为中文),因为
tsserver不生成中文文档 - 部分 Python 扩展(如 Pylance)会尝试读取 docstring 原文,如果你写的注释是中文,hover 就显示中文;写的是英文,就显示英文
- Java 的 Language Support for Java™ by Red Hat 若搭配中文 Javadoc 包,且项目配置了
java.configuration.updateBuildConfiguration,才可能显示中文 API 描述 - Go 的
gopls目前不支持本地化 hover,一律英文
locale.json 改的是界面,不是 hover
很多人误以为改了 locale.json 里 {"locale":"zh-cn"} 就能让所有提示变中文——其实它只影响:
- 菜单栏(File / Edit / Terminal…)
- 命令面板(
Ctrl+Shift+P)里的命令名 - 设置项标题(Settings → “Files: Auto Guess Encoding”)
- 错误弹窗标题(如 “Unable to open settings”)
但 hover、completion documentation、diagnostic messages 这三类内容,全由对应语言扩展的 server 决定,VSCode 本身不翻译它们。
想让 hover 显示中文,得看具体语言扩展
目前真正支持 hover 中文化(且稳定可用)的组合极少,常见情况如下:
-
Vue + Volar:若组件使用中文注释,
hover会原样显示;但 Vue 官方 API 的提示仍是英文(无中文 d.ts) -
React + TypeScript:除非你手动给
node_modules里包打中文类型补丁(极不推荐),否则 hover 100% 英文 -
中文文档优先的私有 SDK:团队可维护带中文 JSDoc 的
.d.ts文件,发布到 npm 后,VSCode 自动读取 -
禁用自动提示再手动查:临时切回英文界面(
{"locale":"en"}),配合 Translator Helper 插件选中 hover 文本 → 右键「Translate Selection」,比等一个不存在的“自动中文化”更可靠
真正容易被忽略的一点:hover 内容是否可读,首要取决于你使用的语言服务器有没有附带对应语言的文档资源。VSCode 本身只是个展示容器,它不会、也不能把英文 API 描述实时翻译成中文——那需要调用外部翻译服务,而这类操作既涉及隐私风险,也违背 LSP 协议设计原则。所以别在 locale.json 或设置里反复折腾,先确认你用的语言扩展是否公开承诺支持中文 hover。











