VS Code 语言设置必须通过用户级 locale.json 文件配置,内容为单行 JSON {"locale":"zh-cn"},路径因系统而异,需彻底重启生效;Remote-SSH/WSL 需单独配置远程 locale.json。

locale.json 文件必须放在正确路径,不是 settings.json
VS Code 只读 locale.json 里的 locale 字段,settings.json 中写 "locale": "zh-cn" 完全无效——这个字段在那里不被识别,也不会报错,只会静默忽略。
你必须把文件放到用户级配置目录下,三选一:
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
$HOME/Library/Application Support/Code/User/locale.json - Linux:
$HOME/.config/Code/User/locale.json
注意:不是工作区目录(.vscode/),也不是远程服务器上的 ~/.vscode-server/(那是 Remote-SSH/WSL 场景要单独配的)。
文件内容只能是严格单行 JSON
locale.json 不是普通配置文件,它只接受一个合法、无冗余的 JSON 对象,且必须是单行、无 BOM、UTF-8 编码。
正确写法(仅且只能这一行):
{"locale":"zh-cn"}
常见错误包括:
- 写成
{"locale": "zh-cn",}(末尾逗号 → 解析失败) - 用中文引号或全角符号 → JSON 无效
- 加空格、换行、注释、其他字段 → 整个文件被忽略
- 写成
zh_CN、zh-hans、Chinese或首字母大写 → 静默回退英文
改完必须彻底重启,不能只 reload 窗口
保存 locale.json 后,VS Code 不会自动重读它。你必须关闭所有窗口,并确认后台进程已退出:
- Windows:打开任务管理器,杀掉所有
Code.exe - macOS:活动监视器中结束
Electron和Code Helper - Linux:运行
pkill -f "code.*--no-sandbox"
再全新启动 VS Code。右下角状态栏会显示当前语言代码(如 zh-cn),点击它可快速验证或切换。
Remote-SSH / WSL 环境要单独配 locale.json
本地设好了中文,远程连接后还是英文?因为 Remote-SSH 和 WSL 启动的是独立的 VS Code Server 实例,它读取的是远程机器上的 locale.json,和本地完全无关。
在远程终端中执行:
code --list-extensions
确认 Server 已运行后,进入路径:
~/.vscode-server/data/Machine/xxxxx/
(xxxxx 是哈希目录名,可能有多个,找最新修改时间的那个)
在该目录下新建或编辑 locale.json,内容仍为:
{"locale":"zh-cn"}
然后在远程窗口中执行 Developer: Reload Window,不是 reload 本地窗口。
locale.json 变——那是它们各自的语言环境,不是 VS Code 汉化失败。盯住顶部菜单栏、左侧活动栏 hover 文字、设置页搜索框占位符是否为“搜索设置”,这三处对了,就是真生效。


















