locale.json 是唯一生效的语言配置文件,必须手动创建于用户数据目录 user/ 子目录下,内容为严格格式的单行 utf-8 无 bom json,如{"locale":"zh-cn"},且路径、编码、大小写、字符均需合规,否则静默回退英文。

locale.json 是唯一生效的语言配置文件
VS Code 从 1.70 版本起彻底废弃 settings.json 中的 "locale" 字段,现在只认独立的 locale.json 文件。它不是可选配置,而是语言切换的硬性开关——没这个文件,或内容不合法,VS Code 就静默 fallback 到英文,且不报错、不提示。
这个文件必须手动创建(新版默认不生成),路径严格限定在用户数据目录下的 User/ 子目录中,不能放在工作区 .vscode/ 或插件目录里。
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
$HOME/Library/Application Support/Code/User/locale.json - Linux:
$HOME/.config/Code/User/locale.json
文件内容必须严格满足四项条件
哪怕只错一处,VS Code 就忽略整个文件。最常被卡住的是编码和大小写。
- 内容只能是单行 JSON:
{"locale":"zh-cn"}(注意双引号、小写、短横线、无空格、无逗号、无注释) - 不能写成
zh_CN、zh-hans、Zh-cn或"zh-cn "(末尾带空格) - 编码必须是 UTF-8 无 BOM —— 用 VS Code 自己新建并保存该文件,能天然规避 BOM 问题;别用记事本、Sublime Text 或 Notepad++ 直接编辑
- 文件名必须是
locale.json,大小写敏感,不能是Locale.json、locale.txt或locale.json.bak
Configure Display Language 命令本质是自动写 locale.json
这个命令不是“设置语言”,而是帮你自动生成合规的 locale.json:检查是否已安装 Microsoft 官方语言包 ms-ceintl.vscode-language-pack-zh-hans,定位正确路径,写入合法内容,并触发重启提示。
但它有三个真实失效场景:
- 命令面板输入
Configure Display Language后列表为空 → 很可能插件根本没装成功,或装了非官方包(如 Chinese Language Pack) - 列表里有
zh-cn但点了没反应 →locale.json所在路径被企业策略锁定,或文件已被其他进程占用 - 点了
zh-cn后仍不生效 → 弹窗提示出现时没点Restart Now,只点了Reload Window—— 后者不重载语言上下文
Remote-SSH / WSL 下 locale.json 必须单独配
本地设好 locale.json,远程连接后仍是英文?这不是配置失败,而是 Remote-SSH 和 WSL 启动的是另一个 VS Code Server 实例,它读取的是远程机器上的配置,和本地完全无关。
- Remote-SSH 连上后,运行
Developer: Open User Data Folder,进User/目录新建或编辑locale.json - WSL 中先执行
code --list-extensions确认 Server 已启动,再进~/.vscode-server/data/Machine/xxx/User/locale.json(xxx 是哈希后缀) - 远程端的语言包也得单独安装 —— 插件不会自动同步,
locale.json也不会继承











