vs code 界面语言唯一生效配置是用户数据目录下的 locale.json 文件,内容必须为 {"locale":"zh-cn"}(全小写、短横线、utf-8无bom),且需彻底重启进程;remote-ssh/wsl 需单独配置远程端 locale.json。

locale.json 是唯一生效的语言配置文件
VS Code 界面语言不生效,90% 的问题出在根本没写对 locale.json,或者压根没写它。你往 settings.json 里加 "locale": "zh-cn" 完全无效——这个字段自 VS Code 1.70+ 起已被废弃,VS Code 不读、不报错、不提示,静默忽略。
真正起作用的只有用户数据目录下的 locale.json,路径必须精准,内容必须严格,编码必须无 BOM。它不是“可选配置”,是强制生效的唯一入口。
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
~/Library/Application Support/Code/User/locale.json - Linux:
~/.config/Code/User/locale.json
别放进 .vscode/ 工作区目录,也别放错成 Locale.json(大小写敏感)或 locale.txt(必须是 .json 后缀)。
文件内容只允许一行标准 JSON
locale.json 不是普通配置文件,它没有容错机制。任何格式偏差都会导致 VS Code 直接放弃读取,回退英文界面,且不报错。
合法内容只有一行:
{"locale":"zh-cn"}
必须满足全部条件:
-
zh-cn全小写、带短横线、无空格(zh_CN、zh-hans、Chinese都无效) - 双引号包裹,不能用单引号
- 无多余逗号、无注释、无换行、无 UTF-8 BOM
- 整个文件仅此一行,不能有其他字段(比如和
settings.json混写)
最稳妥的创建方式:用 VS Code 自己新建该文件并保存——它默认就是 UTF-8 无 BOM。
重启必须彻底,否则配置不加载
改完 locale.json 后点 “Reload Window” 没用。VS Code 的语言上下文在进程启动时就固化了,窗口重载不会重新解析 locale.json。
必须执行完整退出流程:
- Windows:关掉所有窗口后,打开任务管理器,杀掉所有
Code.exe进程(包括后台服务进程) - macOS:活动监视器中结束
Electron和Code Helper所有实例 - Linux:运行
pkill -f "code.*--no-sandbox"或手动检查ps aux | grep code
再全新启动 VS Code,右下角状态栏会显示 zh-cn ——这是配置已加载的明确信号。如果还显示 en,说明旧进程仍在运行。
Remote-SSH / WSL 需要独立配置
你在本地配好了 locale.json,连上 Remote-SSH 或 WSL 后仍是英文?这不是配置失败,而是远程端运行的是另一个 VS Code Server 实例,它完全不读本地配置。
必须在远程环境单独操作:
- Remote-SSH:连接后按
Ctrl+Shift+P→Developer: Open User Data Folder→ 进入User/目录编辑或新建locale.json - WSL:先在终端运行
code --list-extensions确认 Server 已启动,再进入路径:~/.vscode-server/data/Machine/[哈希后缀]/User/locale.json - 远程端的语言包也得单独安装,插件不会自动同步
改完记得在远程窗口中执行 Developer: Reload Window,不是本地窗口。
最容易被忽略的一点:VS Code 的集成终端、调试控制台、Git 输出、部分插件界面显示英文,这不表示汉化失败,而是它们走各自独立的本地化逻辑,和主界面的 locale.json 无关。验证是否成功,只看设置页(Ctrl+,)左侧导航栏文字、搜索框占位符、命令面板提示语这三处核心 UI。











