必须手动创建 utf-8 无 bom 的 locale.json 文件于用户级路径,内容仅限 {"locale":"zh-cn"},并确保语言包已离线安装启用,且彻底退出所有进程后重启 vs code。

离线安装中文包后,locale.json 必须手动创建并严格按路径、格式、编码三重条件写对,否则 VS Code 会静默忽略,界面始终英文。
locale.json 文件必须放在用户级路径,且不能是 settings.json
locale.json 是一个独立配置文件,不是 settings.json 的一部分。它只存在于用户级目录下,内容也仅用于声明界面语言,不支持任何其他字段或注释。
- Windows 路径:
%APPDATA%\Code\User\locale.json(即C:\Users\{用户名}\AppData\Roaming\Code\User\locale.json) - macOS 路径:
~/Library/Application Support/Code/User/locale.json - Linux 路径:
~/.config/Code/User/locale.json - 便携版(Portable Mode)路径:
[安装目录]/data/user-data/User/locale.json(不是data/User/或data/settings/) - 千万别往
settings.json里写"locale": "zh-cn"——这个字段在那里完全不被解析
内容只能是 {"locale":"zh-cn"},且必须 UTF-8 无 BOM
VS Code 对该文件的 JSON 格式和编码极其敏感,任意偏差都会导致静默失败,回退到系统语言。
- 正确写法(唯一可接受):
{"locale":"zh-cn"}(无空格、无换行、无逗号结尾、双引号为英文符号) - 常见错误写法:
{"locale": "zh-cn"}(引号间有空格)、{"locale":"zh_CN"}(下划线不识别)、{"locale":"zh-hans"}(1.95+ 版本已废弃)、{'locale':'zh-cn'}(单引号非法) - 保存时务必确认编辑器右下角显示“UTF-8”,不是“UTF-8 with BOM”——记事本默认带 BOM,推荐用 VS Code 自身新建并保存该文件
- 该文件不支持注释、不接受多余逗号、不能有多余空行,必须是单行合法 JSON
语言包没装好,locale.json 再对也没用
locale.json 只是“开关”,真正提供翻译的是语言包。离线环境下,必须确保 ms-ceintl.vscode-language-pack-zh-hans 已正确安装并启用。
- 验证方式:打开扩展面板(
Ctrl+Shift+X),搜索@installed ms-ceintl.vscode-language-pack-zh-hans,状态必须为“已启用” - 离线安装必须走命令面板:
Ctrl+Shift+P→ 输入Extensions: Install from VSIX→ 选中下载好的vscode-language-pack-zh-hans-*.vsix(发布者必须是 Microsoft) - 双击 .vsix 或拖拽进窗口无效(VS Code 1.70+ 已禁用该机制),只会复制文件但不注册扩展 ID
- 安装后不会自动生效,必须配合
locale.json+ 彻底重启
改完必须彻底退出所有进程,否则新窗口复用旧上下文
VS Code 后台进程残留是离线配置失败最常被忽略的原因。只要有一个进程还在运行,新启动的窗口就会继承旧的 locale 设置。
- Windows:任务管理器中杀光所有
Code.exe和Code Helper.exe - macOS:活动监视器中查找并终止所有
Electron进程(注意区分其他 Electron 应用) - Linux:执行
ps aux | grep code,确认无残留进程后再启动 - 别点 “Reload Window”——它只重载插件,不加载语言资源;必须完全退出再双击启动
- 重启后右下角仍显示
en?说明locale.json没被读到,优先检查路径是否写错、进程是否杀干净
真正容易被忽略的是:locale.json 不是“写了就能用”,它依赖语言包注册成功、路径精准匹配、编码零误差、进程彻底清空这四个条件同时满足。少一个,就退回英文——没有报错,也没有提示,只有静默失效。











