locale.json 配置失效主因是路径、格式或写入时机错误,必须严格使用小写短横线格式{"locale":"zh-cn"}、utf-8无bom编码、无注释空格,且仅在vs code启动时读取;远程开发需配置远程端对应路径;settings.json中locale设置优先级更高但受语法限制。

locale.json 配置失效,90% 是文件路径、内容格式或写入时机不对,不是插件没装或 VS Code 坏了。
为什么 locale.json 写对了还是英文?
VS Code 只在启动时读一次 locale.json,且校验极严:路径错、内容多空格、引号用中文、大小写/连字符写错(比如 zh-CN 或 zh_cn),都会静默忽略整个文件,回退英文。
- 必须严格使用小写 + 短横线:
{"locale":"zh-cn"}(不是zh-CN、zh-hans、Chinese) - 文件必须 UTF-8 无 BOM 编码;记事本直接保存默认带 BOM,会失败
- 不能有注释、不能有多余逗号、不能有换行或空格(哪怕只在花括号外加一个空格)
- Windows 路径是
%APPDATA%\Code\User\locale.json,不是%USERPROFILE%\.vscode\...
Configure Display Language 命令为什么没反应?
这个命令本质就是打开并写入 locale.json。它失效,说明底层写入被拦截,常见于:
- VS Code 进程未完全退出(托盘图标还在、Remote-SSH 连接未断、WSL 后台服务活着)
- 目录权限问题:macOS/Linux 上曾用
sudo code启动过,导致~/.config/Code/User/所有者错乱 - 文件被杀软、OneDrive 或另一个 VS Code 实例锁定
- 命令输错:必须是
Configure Display Language(大小写、空格、字母数全对),搜locale或language不会出来
此时别反复重试,直接手动编辑 locale.json 更可靠。
远程开发(SSH / WSL / Dev Container)下 locale.json 生效不了
本地的 locale.json 对远程窗口完全无效——远程端运行的是独立的 VS Code Server,它只读自己机器上的对应路径。
- SSH 连上后,在远程终端执行:
mkdir -p ~/.vscode-server/data/Machine/$(ls ~/.vscode-server/data/Machine/ | head -n1) - 进该目录(如
~/.vscode-server/data/Machine/abc123),创建或编辑locale.json - 内容仍为严格一行:
{"locale":"zh-cn"} - 保存后,在远程窗口中执行
Developer: Reload Window(不是本地窗口!)
settings.json 里写 "locale" 还管不管用?
VS Code 1.80+ 支持在 settings.json 中写 "locale": "zh-cn",且优先级高于 locale.json。但它不是万能解药:
- 如果
settings.json本身因语法错误(如注释、中文引号、末尾逗号)被整份跳过,那这行就根本不会生效 - 工作区级
.vscode/settings.json会覆盖用户级设置,哪怕你写了也白写 - 它不解决插件市场页、调试控制台、终端等子系统语言问题——那些依赖主语言包加载时机,仍要靠
locale.json触发
真正难搞的从来不是“怎么写”,而是“写完有没有被读到”——检查右下角状态栏是否显示 en,是唯一即时反馈。显示 en 就说明配置层彻底没走通,得一层层往下扒路径、权限、进程残留和远程隔离。











