vscode唯一认的界面语言开关是locale.json;自1.70起弃用settings.json中"locale"字段,该文件必须位于用户级目录、内容为严格json格式{"locale":"zh-cn"}且无bom编码,修改后需彻底退出进程并重启。

locale.json 是 VSCode 唯一认的界面语言开关
VSCode 自 1.70 起就彻底弃用了 settings.json 里的 "locale" 字段,无论你写成 "locale": "zh-cn" 还是 "locale": "en",它都静默忽略——不报错、不警告、也不生效。真正起作用的只有 locale.json 文件,且必须放在用户级配置目录下,VSCode 启动时只读一次这个文件,用里面的值决定加载哪套翻译资源。
locale.json 必须严格满足三个条件才生效
常见失效不是因为没装语言包,而是文件位置、内容或编码错了:
- 路径必须是用户级:Windows 是
%APPDATA%\Code\User\locale.json,macOS 是~/Library/Application Support/Code/User/locale.json,Linux 是~/.config/Code/User/locale.json;工作区里放的.vscode/locale.json完全不读 - 内容必须是合法 JSON,仅一行:
{"locale":"zh-cn"}(英文同理为{"locale":"en"});多一个空格、少一个引号、用中文双引号、带 BOM 头,都会导致静默 fallback 到英文 - 文件权限不能是只读(尤其 WSL 或远程挂载场景),否则 VS Code 写入失败但不提示
Configure Display Language 命令本质就是帮你写对 locale.json
这个命令不是“切换语言”的 UI 操作,而是一个安全写入工具:它会自动检查语言包是否已安装、跳转安装页(如缺失)、定位到正确的用户级路径、写入格式严格的 JSON,并弹出重启提示。手动编辑容易出错,但命令面板打不开、卡死或执行后仍无效时,直接编辑 locale.json 反而是最稳的兜底方式。
注意:Configure Display Language 在 VS Code 1.80+ 版本中已被移除,此时只能手动改 locale.json;命令存在时也必须选 zh-cn(小写、短横线),不是 zh_CN、Chinese 或 zh-hans。
远程开发(SSH / WSL)需要独立的 locale.json
本地设了中文,远程窗口还是英文?因为 Remote-SSH 和 WSL 启动的是独立的 VS Code Server 实例,它读取的是远程机器上的 locale.json,和本地完全无关。你需要在远程终端中进入 ~/.vscode-server/data/Machine/xxx/(具体子目录名含哈希)并新建或编辑该路径下的 locale.json,内容同样是 {"locale":"zh-cn"},然后在远程窗口中执行 Developer: Reload Window。
别指望本地设置透传过去,也别把本地的 locale.json 复制进远程项目目录——它只会被 vsce 打包误引入,引发构建失败。
最关键的细节常被忽略:VSCode 不会动态监听 locale.json 变化,改完必须彻底退出所有进程(包括托盘图标),再重新启动;任何“热重载”“Ctrl+R”“Reload Window”都不等于真正重启实例。











