vs code 语言设置失败的四大原因:路径错误导致静默回退英文;locale.json 格式不合法(仅允许一行纯 json 如{"locale": "zh-cn"});被启动参数、工作区或远程配置覆盖;权限异常或文件被锁定。

locale.json 文件路径错误或根本不存在
VS Code 只读取用户级 locale.json,且路径必须严格匹配,写错一级目录或拼错字母都会静默失败。它不会报错,只是回退英文界面。
必须检查并确认以下路径是否真实存在且可写:
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
~/Library/Application Support/Code/User/locale.json - Linux:
~/.config/Code/User/locale.json
如果文件不存在,不是“没装对”,而是 Configure Display Language 命令压根没执行成功,或被进程残留、权限拦截阻断了写入。此时手动创建是最稳解法。
locale.json 内容格式不合法
VS Code 对 locale.json 的解析极其严格:只接受一行纯 JSON,且仅含一个键值对。任何偏差都会导致整个文件被忽略——没有警告,没有日志,直接英文 fallback。
正确内容只能是(注意所有细节):
{"locale": "zh-cn"}
常见错误包括:
- 用了中文引号或全角字符(如
“zh-cn”) - 写成
zh_CN、zh-Hans、ZH-CN或zh-cn(末尾空格) - 加了注释(
//或/* */)、多了一个逗号、多了一个字段 - 文件编码带 BOM(尤其 Windows 记事本默认保存为 UTF-8 with BOM)
用 VS Code 自己新建文件、粘贴、保存为 UTF-8 无 BOM 是最保险的做法。
locale.json 被更高优先级配置覆盖
locale.json 是用户级语言开关,但它会被三类更高优先级的设置强行覆盖,导致你明明改对了,重启后还是英文。
需逐项排查:
- 启动参数:快捷方式目标或终端 alias 中含
--locale=en;运行code --list-extensions前先看ps aux | grep code是否带 locale 参数 - 工作区设置:项目根目录下
.vscode/settings.json中写了"locale": "en"(它会覆盖用户级配置) - Remote-SSH / WSL 场景:本地
locale.json对远程窗口完全无效;远程机器上对应路径(如~/.vscode-server/data/Machine/xxx/locale.json)才是决定远程 UI 语言的关键
临时验证方法:关闭当前文件夹(File > Close Folder),再执行 Configure Display Language,可绕过工作区干扰。
locale.json 权限异常或被进程锁定
写入失败不等于命令没点,而是系统拒绝落盘。典型现象是:点了 Configure Display Language → 选了 zh-cn → 弹出“已保存”提示 → 但文件内容没变、为空、或仍是 en。
根本原因常是:
- Windows 下以管理员身份运行过 VS Code,导致后续普通用户权限无法向
%APPDATA%写入 - macOS/Linux 下
~/.config/Code/User/所有者错乱(比如曾用sudo code) - OneDrive、杀软、另一个 VS Code 实例正在占用该文件
解决动作很直接:先 killall code(macOS/Linux)或任务管理器清空所有 Code.exe 和 Code Helper 进程;再用当前用户权限打开对应路径,手动编辑保存 locale.json;最后双击图标启动(**不要**右键“以管理员身份运行”)。











