vscode 汉化需为每个运行实例(本地、remote-ssh、wsl、dev containers)单独配置 locale.json;configure display language 仅作用于当前窗口,不全局生效,且必须严格匹配路径与 json 格式,重启进程才能生效。

VSCode 无法靠单次配置“汉化所有窗口”,必须区分本地窗口、Remote-SSH、WSL、Dev Containers 等不同运行实例,各自独立配置 locale.json 才能生效。
Configure Display Language 命令只影响当前窗口实例
这个命令不是全局开关,它只修改当前 VS Code 实例所读取的 locale.json 路径(即用户级 locale.json),并触发该窗口重启。如果你同时开着本地窗口 + 远程 SSH 窗口,执行命令后只有本地窗口变中文,远程窗口仍为英文——因为它连接的是另一台机器上的 VS Code Server,读的是远程机器上的配置。
- 命令面板输入
Configure Display Language后选zh-cn,仅作用于当前打开的窗口所属进程 - 右下角状态栏显示
en→ 说明该窗口没加载到中文配置,别指望“下次自动同步” - 多个窗口并存时,每个窗口的语言状态相互隔离,不存在“一次设置,全部生效”
Remote-SSH / WSL 必须单独配 ~/.vscode-server/data/Machine/xxx/locale.json
远程环境不继承本地配置,locale.json 必须手动写入远程机器的 VS Code Server 运行目录。路径中 xxx 是哈希值子目录(每次 Server 更新可能变化),不能硬编码。
- 先通过 Remote-SSH 连上目标机器,在远程终端中执行:
ls ~/.vscode-server/data/Machine/,找到最新时间戳的子目录名 - 进入该目录,用
echo '{"locale":"zh-cn"}' > locale.json写入(确保是双引号、英文冒号、小写短横线) - 保存后,在远程 VS Code 窗口中执行
Developer: Reload Window(不是本地窗口!) - 若远程是 Snap 安装的 VS Code,语言包大概率因沙盒限制加载失败,建议改用官方
.deb或tar.gz包
Windows/macOS/Linux 用户级 locale.json 路径和格式必须严格匹配
手写配置最容易栽在路径或 JSON 格式上。VS Code 对 locale.json 的读取极其挑剔:位置错、引号错、大小写错、空格多一个,全都不生效。
- Windows 正确路径:
%APPDATA%\Code\User\locale.json(不是%LOCALAPPDATA%,也不是项目内.vscode/locale.json) - macOS 正确路径:
~/Library/Application Support/Code/User/locale.json(注意Application Support中间有空格) - Linux 正确路径:
~/.config/Code/User/locale.json(.config是隐藏目录,别漏点) - 文件内容只能是合法 JSON 单行:
{"locale":"zh-cn"},不能有注释、不能换行、不能用单引号
彻底退出再启动,否则旧语言环境会残留
VS Code 的语言初始化只发生在全新进程启动时。Developer: Reload Window 只刷新渲染层,不重建语言上下文。后台残留进程会直接复用旧 locale 设置,导致你改了配置也白改。
- Windows:任务管理器中结束所有
Code.exe进程(包括后台服务进程) - macOS:活动监视器中查找
Electron,强制退出;或 Dock 右键 VS Code 图标选“退出” - Linux:终端执行
pkill -f "code --ms-enable-electron-run-as-node"或类似命令清空残留 - 重启后,第一时间检查顶部菜单栏是否为中文,而不是只看状态栏右下角 —— 那里有时会缓存旧状态
真正麻烦的从来不是“怎么写”,而是“写在哪”和“谁在读”。每个 VS Code 实例都像一个独立的小系统,locale.json 不是共享变量,而是每个进程启动时从自己认定的路径里硬读出来的。漏掉任何一个实例的配置,那个窗口就永远卡在英文里。











