vscode 1.80+ 唯一有效语言设置方式是手动创建/修改用户级 locale.json 文件,内容须为 {"locale":"en"} 或 {"locale":"zh-cn"},且必须彻底退出进程后重启才生效。

VSCode 1.80+ 版本中,locale.json 是唯一可靠控制界面语言的配置文件,其他方式(如改 settings.json、用命令面板搜 Configure Display Language)均已失效或被静默忽略。
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
如果该文件不存在,直接新建即可;存在但内容错误(如 {"locale":"zh-CN"}),VSCode 会跳过整份文件,继续显示上一次缓存的语言(通常是中文)。
locale.json 的合法写法与常见非法格式
VSCode 对 JSON 格式极其严格,任何小偏差都会导致文件被完全忽略——不是报错,而是静默失效。
- ✅ 正确写法(仅此一种):
{"locale":"en"}或{"locale":"zh-cn"} - ❌ 单引号:
{'locale':'en'}→ 不识别 - ❌ 大写或大小写混用:
{"locale":"EN"}、{"locale":"zh-CN"}→ 部分版本可能兼容但不稳定 - ❌ 尾部空格:
{"locale":"en" }→ 整个文件被跳过 - ❌ 多余逗号、注释、换行、BOM头 → 文件无效
注意:en 和 zh-cn 是唯一被广泛验证有效的值;zh-hans 在部分旧版可用,但新版已不推荐。
为什么改了 locale.json 还是没变?三个隐藏覆盖层
VSCode 的语言优先级是:启动参数 > 工作区 .vscode/locale.json > 用户级 locale.json。容易漏掉的干扰项远比想象中多。
- 当前项目根目录下有
.vscode/locale.json?→ 直接删掉,它会覆盖用户设置 - 你是用终端 alias 启动的?比如
alias code='code --locale=zh-cn'→ 检查~/.bashrc或~/.zshrc - 用了 Remote-SSH / WSL?→ 本地改了没用,得登录远程主机,删掉远程端同路径的
locale.json
改完必须彻底退出 VSCode:Windows 杀掉所有 Code.exe,macOS 执行 killall -u $USER 'Code Helper',Linux 用 pkill -f 'code'。
locale.json 生效前必须杀干净后台进程
VSCode 后台进程(尤其是托盘图标、Code Helper、GPU Process)会复用旧语言环境,哪怕你开了新窗口,界面仍显示旧语言。
验证是否真退出:打开任务管理器(Windows)、活动监视器(macOS)或 htop(Linux),确认没有任何含 code 或 Electron 的进程残留。这是最容易被跳过的一步,也是 90% “改了没生效” 的真实原因。











