vscode中文界面生效的唯一条件是用户级路径下存在严格格式的locale.json文件:windows为%appdata%\code\user\locale.json,macos为$home/library/application support/code/user/locale.json,linux为$home/.config/code/user/locale.json,内容必须为{"locale":"zh-cn"}(小写、短横线、无空格、无bom、utf-8编码),且需彻底退出所有vs code进程后重启;remote-ssh/wsl等远程环境须在对应远程路径单独配置并重载窗口。

locale.json 文件必须放在用户级路径,不能放错位置
VS Code 只读取特定路径下的 locale.json,放错地方等于没配。它不认工作区目录里的 .vscode/locale.json,也不读系统级或远程实例的同名文件(比如 WSL 里没单独配就还是英文)。
- Windows:
%APPDATA%\Code\User\locale.json(即C:\Users\用户名\AppData\Roaming\Code\User\locale.json) - macOS:
$HOME/Library/Application Support/Code/User/locale.json - Linux:
$HOME/.config/Code/User/locale.json
如果该路径下没有 locale.json,就新建一个;已有但内容不对,直接覆盖。别用记事本编辑——容易带 BOM 或换行符,用 VS Code 自己打开并保存为 UTF-8 无 BOM 编码。
文件内容只允许一行合法 JSON,且值必须是 "zh-cn"
locale.json 不是配置集合,它只干一件事:声明界面语言。任何多余字符、空格、逗号、注释、换行都会导致解析失败,VS Code 会静默回退到英文。
- ✅ 正确写法:
{"locale":"zh-cn"}(严格小写、连字符、无空格、无逗号、无换行) - ❌ 常见错误:
{"locale": "zh_CN"}、{"locale":"Chinese"}、{"locale":"zh-hans"}、{"locale":"zh-cn",}、// zh-cn、{"locale":"zh-cn"}\n
这个值必须符合 BCP 47 标准,VS Code 不做容错转换。输错不会报错,只会当配置不存在。
改完必须彻底退出再重开,后台进程残留会导致配置不加载
VS Code 启动后会在后台驻留进程(如 Code.exe、Electron、Code Helper),哪怕所有窗口都关了,locale.json 的改动也不会被新窗口读取。
- Windows:打开任务管理器 → 结束所有名为
Code.exe的进程 - macOS:打开活动监视器 → 搜索并强制退出
Electron和Code Helper - Linux:终端执行
pkill -f "code.*--no-sandbox"或ps aux | grep code | grep -v grep | awk '{print $2}' | xargs kill
重启后看右下角状态栏是否显示 zh-cn;若仍显示 en,说明旧进程还在跑,或者你根本没改对那个正在被读的文件。
Remote-SSH / WSL 环境要单独配,本地设置不透传
你在本地配好了 locale.json,但通过 Remote-SSH 连进 Linux 服务器,或在 WSL 里打开项目,界面还是英文——因为远程 VS Code Server 实例读的是远程机器上的 locale.json,和本地完全隔离。
- 先在远程终端确认 VS Code Server 已运行:
code --list-extensions - 进入远程路径:
~/.vscode-server/data/Machine/(后面可能带哈希子目录) - 在该目录下新建或编辑
locale.json,内容仍是:{"locale":"zh-cn"} - 保存后,在远程窗口中执行
Developer: Reload Window(不是 reload 本地窗口)
这个细节最容易被忽略:以为配一次就全局生效,其实每个运行上下文(本地、WSL、SSH、Dev Containers)都要独立配置。











