vs code 默认不生成 locale.json,仅在执行 configure display language 命令后创建;若命令未执行或失败,需手动创建于指定路径,内容严格为{"locale":"zh-cn"}(utf-8无bom),且必须彻底退出进程后重启才生效。

locale.json 文件路径和创建时机
VS Code 默认不生成 locale.json,它只在你执行 Configure Display Language 命令后才被创建;如果命令面板卡死、插件未装好、或你跳过了这步,文件就不存在——此时手动创建是最直接的解决方式。
必须用对路径,否则 VS Code 完全忽略:
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
$HOME/Library/Application Support/Code/User/locale.json - Linux:
$HOME/.config/Code/User/locale.json
路径中不能含中文字符或空格;若使用符号链接或 OneDrive 同步目录,也可能导致读取失败。
locale.json 内容格式与编码陷阱
locale.json 不是 settings 配置文件,它只认一个字段、一种写法、一种编码:内容必须严格为单行 JSON,且仅包含 {"locale":"zh-cn"}。任何偏差都会让 VS Code 静默回退到英文。
常见失效原因:
- 用了全角引号(“”)或中文冒号(:)
- 多了一个空格、换行、逗号,或写了注释
- 保存为 UTF-8 with BOM(记事本默认行为),必须选“UTF-8 无 BOM”
- 误写成
zh_CN、zh-hans、Chinese、ZH-CN—— 全部无效
推荐用 VS Code 自己打开该文件编辑,它默认保存为 UTF-8 无 BOM;别用系统记事本、Sublime 或某些 IDE 直接覆盖保存。
settings.json 里加 "locale" 没用
在 settings.json 中写 "locale": "zh-cn" 是无效操作。VS Code 根本不读这个字段,也不会报错,只是完全忽略。
这个设计不是疏漏,而是明确区分职责:settings.json 控制功能行为(如自动保存、缩进),而界面语言由独立的 locale.json 管理。
如果你发现 settings.json 里有这一行,请删掉——它只会干扰判断,尤其当你排查问题时误以为“已经设了”。
重启必须杀进程,不是重载窗口
VS Code 只在**进程启动时**读一次 locale.json。点 Developer: Reload Window 或按 Ctrl+R,界面语言完全不变。
真正生效的重启动作是:
- Windows:任务管理器中结束所有
Code.exe进程 - macOS:活动监视器中结束
Electron和Code Helper - Linux:运行
pkill -f "code.*--no-sandbox"或手动 kill
右下角状态栏显示 en 却没变?大概率后台还有残留进程在跑。这是最常被跳过的一步。
真正容易被忽略的是:locale.json 的格式容错率为零——一个空格、一个 BOM、一个大小写错误,VS Code 就当它不存在;而且它和终端、Git 输出、调试控制台的语言完全无关,盯错地方会白调半天。











