VSCode 中文语言包更新无法关闭,因其由主程序通过 product.json 和微软 CDN 静默同步,不受 extensions.autoUpdate 控制;唯一禁用方式是设 "enableLanguagePacks": false,但会导致界面回退英文且升级时易被重置。

中文语言包更新关不掉,这不是 bug 是设计
VSCode 的 vscode-language-pack-zh-hans 不是普通插件,它由主程序通过 product.json 和微软 CDN 静默同步,extensions.autoUpdate 对它完全无效。你看到的“更新”其实是启动时自动拉取最新 .vsix 覆盖本地资源的过程,没有弹窗、不走扩展更新通道、也不受用户设置控制。
常见现象包括:
- 重启后语言包版本号变了,但没日志、没提示
- 手动禁用该扩展,下次启动又被自动启用
-
"update.mode": "none"已设,中文语言包仍更新
唯一能阻止的方式是修改安装目录下的 resources/app/product.json,添加 "enableLanguagePacks": false。但这么做会让界面回退到英文,且主程序升级时该字段大概率被重置——尤其是 macOS / Linux 的 snap 安装版根本无法修改此文件。
插件中文更新提示 ≠ 语言包更新,得拆开管
右下角弹出的“Python 扩展有新版本可用”这类中文提示,本质是英文提示被本地化渲染的结果。真正源头是插件自身的更新检查行为,不是语言包在作祟。
必须同时关闭两个开关才生效:
-
"extensions.autoCheckUpdates": false—— 停止每小时一次的后台 HTTP 请求轮询 -
"extensions.autoUpdate": false—— 阻止检测到后自动下载安装
这两个字段必须同时出现在 settings.json 中,缺一不可。只关一个,依然会弹窗、依然会静默下载卡住。
还要注意工作区配置覆盖问题:打开某个 Git 仓库后插件又开始升级,很可能是项目根目录下的 .vscode/settings.json 里写了 "extensions.autoUpdate": true,得手动检查并删掉。
GitLens、ESLint 等插件的中文弹窗绕过全局设置
即使关了 extensions.autoUpdate,GitLens、ESLint、Prettier 这类插件仍可能在右下角刷“New release available”,因为它们不走 VS Code 通用更新流程,而是直接调用 vscode.window.showInformationMessage 弹通知。
处理方式因插件而异:
- GitLens:搜
gitlens.advanced.messages,设为[];或关掉gitlens.telemetry.enabled - ESLint:目前无官方静音开关,
eslint.lintTask.enable设为false可减少触发时机 - Prettier:截至 2026 年 7 月仍无静音配置,临时办法是手动安装旧版后,在扩展页点「禁用自动更新」(若支持)
这类弹窗只受通知通道控制,所以还得关掉 Notifications: Toasts(不是 Notifications: Center),否则即使插件不检查更新,消息照样弹出来。
locale 设置和插件汉化是两回事
很多人以为把 "locale": "zh-cn" 写进 settings.json 就能管住所有中文文案,其实它只影响 VS Code 自身 UI 和依赖它的官方插件(比如 ms-python.python 的菜单和报错)。第三方插件如 prettier 或 auto-rename-tag 是否显示中文,取决于插件自己是否打包了 zh-cn locale 文件,跟你的 locale 设置无关。
如果你发现某插件中文显示异常(比如菜单乱码、提示仍是英文),大概率是插件没适配新版语言包字段,需要等它发版修复,而不是去改 VS Code 的设置。
真正要关注的是“中文功能插件”(比如 chinese-copywriting-helper),这类才受 extensions.autoUpdate 控制,可以正常关闭;而语言包本身,你几乎不需要干预它。


















