configure display language命令是vscode切换中文的唯一可靠入口,必须手动执行并选择zh-cn后重启,语言包仅提供翻译资源,不自动生效。

Configure Display Language 命令才是唯一可靠入口
VSCode 启动时自动显示中文,不靠任何“开机自启脚本”或“环境变量”,只依赖一个内置命令:执行 Configure Display Language 并选 zh-cn。这个命令会自动写入用户级 settings.json 的 "locale": "zh-cn" 字段,并确保后续每次启动都读取该值。
手动改 settings.json 也行,但容易出错——比如写成 zh-CN(大小写敏感)、zh(不被识别)或 zh-hans(VSCode 不认这个标识)。官方唯一稳定支持的是 zh-cn。
常见失效场景:
- 你改了
settings.json,但没完全退出 VSCode(只重载窗口),语言不会变 - 用终端启动时加了
code --locale=en,命令行参数优先级高于配置文件 - 工作区
settings.json里也写了locale,它会覆盖用户设置
中文语言包不是插件,关不掉自动更新也没必要关
很多人想“禁止语言包自动更新”,以为它像普通插件一样走 extensions.autoUpdate 流程。其实不是:vscode-language-pack-zh-hans 是内置语言资源,由主程序在启动时静默拉取 CDN,完全绕过扩展系统。
你在 settings.json 里设 "extensions.autoUpdate": false,对它毫无影响;右键禁用它,下次启动又自动启用;弹出“语言包已更新”提示却找不到日志——这正是它的正常行为。
真正能禁用的方式只有修改安装目录下的 product.json,加 "enableLanguagePacks": false。但这会导致界面立刻回退为英文,且 VSCode 升级后该字段会被重置。没必要折腾。
远程开发(SSH / WSL / Containers)下 locale 不生效?检查启动方式
在远程环境中,settings.json 里的 locale 很可能被忽略,因为远程 VS Code Server 启动时没继承本地的配置上下文。
解决方法很直接:
- 在远程机器上打开命令面板,运行
Configure Display Language→ 选zh-cn→ 重启远程窗口 - 不要依赖本地设置同步过去;远程端必须独立完成一次语言配置
- 如果用 SSH 连接,确保远程
code-server或 VS Code Server 版本 ≥ 1.30(旧版不支持locale配置)
macOS/Linux 桌面启动器有时也不传 locale,这时终端执行 code --locale=zh-cn 是最稳的兜底方案。
字体和乱码问题不是语言设置的事,别混在一起调
界面变成中文后出现方块、文字过小、标点错位,不是 locale 没设对,而是编辑器字体不支持中文渲染。
只需在 settings.json 加一行:
"editor.fontFamily": "'Fira Code', 'Microsoft YaHei', 'PingFang SC', 'sans-serif"
注意几点:
-
Microsoft YaHei(微软雅黑)是 Windows 默认中文字体,macOS 用PingFang SC,Linux 常用Noto Sans CJK SC - 字体名带空格必须用单引号包裹,否则解析失败
- 别把
terminal.integrated.fontFamily漏了,终端中文也要单独配
语言包只管翻译文本,不管怎么画出来。字体、编码、渲染引擎,是另一套链路。











