locale.json是VS Code唯一认的界面语言配置文件,必须位于用户级目录、内容为{"locale":"zh-cn"}、UTF-8无BOM编码、文件名严格小写,四者缺一不可。

locale.json 是 VS Code 唯一认的界面语言配置文件
VS Code 从 1.70 版本起彻底弃用 settings.json 中的 "locale" 字段,也不再通过设置 UI 或命令面板“覆盖式”生效。它只在启动时读取用户数据目录下的 locale.json,且仅当该文件存在、路径正确、内容合法时才启用对应语言。其他所有操作(装插件、点右下角弹窗、改 settings.json)都只是为这个文件服务的辅助步骤。
必须严格满足的四个硬性条件
哪怕只错一处,VS Code 就会静默回退到英文,不报错、不提示、不警告。
-
locale.json文件名大小写敏感,不能是Locale.json或locale.txt - 路径必须是用户级目录,不是工作区或远程配置:
– Windows:%APPDATA%\Code\User\locale.json
– macOS:$HOME/Library/Application Support/Code/User/locale.json
– Linux:$HOME/.config/Code/User/locale.json - 内容必须是单行严格 JSON:
{"locale":"zh-cn"}(双引号、小写、短横线、无空格、无逗号、无注释) - 编码必须是 UTF-8 无 BOM;用 VS Code 自己新建并保存该文件最稳妥
为什么 Configure Display Language 命令有时不生效
这个命令本质是自动写入 locale.json 的快捷入口,但它依赖底层环境配合。常见失效原因不是命令坏了,而是:
- VS Code 进程未彻底退出:托盘图标还在、Remote-SSH 连接未断、WSL 后台服务活着 → 命令看似执行了,但文件没被重载
- 工作区
.vscode/settings.json里写了"locale": "en"→ 它不控制界面语言,但某些旧版插件或企业策略会干扰加载逻辑 - 启动参数强制覆盖:
code --locale=en或快捷方式目标末尾带参数 → 优先级最高,每次启动都生效 - Remote-SSH / WSL 场景下,本地改了没用:远程端需单独配置远程机器上的
locale.json
中文语言包和 locale.json 是绑定关系,缺一不可
装了 Microsoft 官方 Chinese (Simplified) Language Pack for Visual Studio Code(ID:ms-ceintl.vscode-language-pack-zh-hans)只代表“字典已就位”;locale.json 设为 {"locale":"zh-cn"} 才是“翻字典的指令”。两者必须同时满足:
- 只装包不配
locale.json→ 界面仍是英文 - 只配
locale.json不装包 → 中文显示为方块或 fallback 到英文 - 装了第三方“汉化插件”(如 Chinese Menu)→ 不提供完整翻译资源,
locale.json配对后仍大量英文
真正容易被忽略的是:终端、调试控制台、Git 输出、部分插件设置页默认不随 locale.json 变——这不是配置失败,是它们各自语言环境独立决定的。盯住顶部菜单栏、左侧活动栏 hover 文字、设置里搜 locale 看值是否为 zh-cn,这三处对了,就是真生效。


















