VSCode中文包报“not compatible”错误是因package.json中"engines.vscode"字段与本地版本不匹配,需解压.vsix、修改extension/package.json的vscode版本范围(如">=1.85.0”)、重打包为.vsix后通过命令面板安装,并确保locale.json正确配置{"locale":"zh-hans"}且完全重启。

VSCode中文包报“not compatible with VS Code '1.xxx'”
这根本不是插件坏了,而是 package.json 里写的 "engines": {"vscode": "^1.103.0"} 和你本地 code --version 输出的版本(比如 1.90.2)不满足语义化匹配规则。VS Code 启动时直接拒绝加载,连日志都不进。
常见于:刚升级 VS Code 到 1.102.3,但下载的中文包最新版只标了 "^1.103.0";或你在内网离线安装,用的是为 1.104.0 打的包。
- 别重装、别换网络、别禁用其他插件——这些操作完全绕不开引擎校验
- 必须解压
.vsix→ 修改extension/package.json→ 重打包 → 再安装 - Windows 下别用资源管理器双击解压再拖拽保存,会破坏 ZIP 结构;用 PowerShell 的
Expand-Archive或 7-Zip
手动改 .vsix 中的 engines.vscode 字段
中文包本质是 ZIP 格式,.vsix 后缀只是个马甲。修改它比找旧版包快得多,5 分钟内可完成。
- 用 7-Zip(Windows)、Archive Utility(macOS)或
unzip(Linux)打开ms-ceintl.vscode-language-pack-zh-hans-*.vsix - 进入
extension/package.json(注意不是根目录那个) - 找到
"engines": { "vscode": "^1.103.0" },改成你当前版本能接受的范围,例如:"vscode": ">=1.85.0"(推荐,兼容性宽)或"vscode": "^1.90.0"(若code --version是1.90.2) - 保存后,把整个文件夹重新打包为 ZIP,再把后缀名改回
.vsix - 在 VS Code 命令面板运行
Extensions: Install from VSIX,选这个改过的文件
装完重启还是英文?检查 locale 配置是否被覆盖
VS Code 不靠插件自动切换语言,它只认 locale.json 里的值。即使插件已启用、版本也对得上,只要这个文件不存在、写错、或被更高优先级设置覆盖,界面就一定是英文。
- 路径:
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json
Linux:~/.config/Code/User/locale.json - 合法内容只能是:
{"locale": "zh-hans"}(注意不是zh-cn,写错就报invalid locale value) - 如果文件不存在,手动创建;如果存在但值是
"en"或空,直接改掉并保存 - 改完必须完全退出 VS Code(包括托盘进程),再重新启动
日志里出现 Failed to load language pack 怎么办
这说明关键翻译资源没加载进来,不是配置问题,而是插件本身损坏或下载不全。扩展面板显示“已安装”,不代表 package.nls.zh-hans.json 等文件真在磁盘上。
- 打开输出面板:
Ctrl+Shift+U→ 选择Log (Window) - 搜索
languagePack或zh-hans,正常应看到Loaded locale zh-hans from … - 若出现
Failed to load language pack或路径指向空目录,说明资源缺失 - 删掉
%USERPROFILE%\.vscode\extensions\ms-ceintl.vscode-language-pack-zh-hans-*文件夹后重装 - 顺便清缓存:
rm -rf ~/.cache/Code(Linux/macOS)或del /s /q "%APPDATA%\Code\Cache"(Windows)
locale.json,或者读到了但插件根本没提供对应语言的 nls bundle——这两者之间差一行 JSON,但表现出来全是“为什么还是英文”。


















