VSCode ≤1.75 离线安装中文包必须升级至 ≥1.76 版本,因旧版默认禁用 nls.js 翻译模块;若无法升级,则需手动修改语言包 package.json 的 engines.vscode 字段匹配本地版本,并严格配置 UTF-8 无 BOM 的 {"locale":"zh-cn"} 到用户级 locale.json 路径,最后彻底终止所有 Code 进程再重启。

VSCode ≤1.75 版本离线安装中文包必须手动启用 nls 模块
VSCode 1.75 及更早版本默认不加载语言包的字符串替换机制(vs/nls.js),即使你装对了 ms-ceintl.vscode-language-pack-zh-hans,界面也必然保持英文。这不是配置错误,而是主程序压根没启动翻译引擎。
解决办法只有一个:强制开启 nls 支持。这需要修改 VSCode 主程序的启动参数或二进制资源,但普通用户无法安全操作。因此,**最可行的兜底方案是升级 VSCode 到 ≥1.76**——该版本起 nls 成为默认启用模块,离线安装语言包才真正可生效。
若因政策或环境限制完全无法升级(如某些国企内网锁定 1.72),只能接受英文界面,或改用其他编辑器(如 Notepad++ + 中文插件、JetBrains Gateway 等)。
离线安装 .vsix 前必须验证 package.json 的 engines.vscode 字段
老版本 VSCode 对语言包的兼容性检查非常严格,package.json 里的 "engines": {"vscode": "^1.72.0"} 必须与你本地 code --version 输出的主版本号完全匹配(例如输出 1.72.2,则需匹配 ^1.72.0;若输出 1.71.4,则 ^1.72.0 会直接拒绝加载)。
常见失败现象:Extensions: Install from VSIX 显示“Extension is not compatible”,但无进一步提示;安装后扩展面板里看不到该语言包,或状态为“已禁用”。
- 解压 .vsix 文件(本质是 zip),打开根目录下的
package.json - 找到
"engines": {"vscode": "..."}行,将值改为你的实际版本号范围,例如"^1.71.0" - 用 7-Zip 或
zip命令重新打包,再改后缀为.vsix(Windows 资源管理器双击解压再压缩会破坏结构)
locale.json 必须写成 {"locale":"zh-cn"},且路径和编码不能错
老版本 VSCode(尤其是 ≤1.70)对 locale.json 的解析极其脆弱:字段名大小写敏感、值必须小写连字符、文件必须 UTF-8 无 BOM、路径必须精确到用户级配置目录。
写成 {"locale": "zh-hans"} 或 {"locale":"zh_CN"} 都会被静默忽略,回退英文;用记事本保存会自动加 BOM,导致整个文件被跳过。
- Windows 路径:
%APPDATA%\Code\User\locale.json - macOS 路径:
~/Library/Application Support/Code/User/locale.json - Linux 路径:
~/.config/Code/User/locale.json - 文件内容严格为单行:
{"locale":"zh-cn"}(无空格、无逗号结尾、双引号为英文符号) - 用 VS Code 自身打开并保存,或用 VS Code 内置命令
Configure Display Language自动生成该文件(即使命令面板卡死,也可先尝试)
后台进程残留会导致 locale.json 不被重读
老版本 VSCode 的进程模型更松散,常驻的 Code Helper、GPU Process、Renderer 进程可能持有旧 locale 缓存。哪怕你改了 locale.json 并点了 Restart,新窗口仍复用旧进程的 UI 上下文,结果还是英文。
必须彻底终止所有相关进程,而非仅关闭窗口:
- Windows:打开任务管理器 → 结束所有
Code.exe和Code Helper.exe进程 - macOS:终端执行
pkill -f "Code Helper"和pkill -f Electron - Linux:执行
pkill -f "code"和pkill -f "Code Helper" - 再从开始菜单 / 应用坞 / 命令行(
code)全新启动,不要双击旧快捷方式
老版本里最容易被忽略的是“系统托盘残留”——右下角图标点退出,往往只隐藏不退出进程。这点在企业定制版 VSCode(如银河麒麟预装版)中尤为顽固。


















