离线安装中文包失败主因是vscode未注册扩展或locale配置错误。需确保:拖拽前已打开工作区;用code --install-extension安装并匹配引擎版本;locale.json置于用户级路径且内容为{"locale": "zh-cn"};重启前彻底终止所有code进程。

离线安装中文包失败,90% 不是文件坏了,而是 VSCode 在扩展注册、引擎校验或 locale 加载环节静默卡住——它不报错,只让你看到英文界面。
为什么拖拽/双击 .vsix 文件完全没反应
VSCode 自 1.70 起已禁用直接加载机制。拖进窗口或双击只是把文件复制到 ~/.vscode/extensions/(Linux/macOS)或 %USERPROFILE%\.vscode\extensions\(Windows),但不会注册扩展 ID、不触发语言资源加载流程。
- 必须先打开一个工作区(至少一个文件夹),纯空白启动时拖放被忽略
- 确认 VSCode 窗口有系统焦点:任务栏图标高亮,远程桌面(RDP/TeamViewer)下常被拦截
- 检查文件是否真为原始
.vsix:运行unzip -l your.vsix,第一行应含extension/package.json;若显示零散文件,说明已被解压或损坏 - 路径含空格或中文?Windows 下必须用英文双引号包裹,如
"C:\my ext\ms-ceintl.vscode-language-pack-zh-hans-1.96.3.vsix"
code --install-extension 报 “not compatible with Code” 怎么修
错误本质是 .vsix 内 extension/package.json 的 "engines": {"vscode": "^1.90.0"} 与你本地 code --version 输出不匹配。VSCode 只比对主版本号(如 1.96.3 → 1.96),差一个小版本就拒绝。
- 运行
code --version,记下完整版本号(如1.96.3) - 用
unzip -p your.vsix extension/package.json | grep engines查看当前声明 - 解压该文件(别用 Windows 资源管理器双击!用
7-Zip或unzip),将"vscode": "^1.90.0"改为"vscode": "1.96.3"(填你本地的完整版号,不是范围) - 重新打包为 ZIP,再把后缀改为
.vsix(不是重命名,是改后缀;确保 ZIP 内结构不变)
装完还是英文?三个硬性条件缺一不可
语言包安装成功 ≠ 界面变中文。VSCode 必须同时满足:插件已注册、locale.json 值正确、进程彻底重启。
-
locale.json必须放在用户级路径:
Linux/macOS:~/.config/Code/User/locale.json
Windows:%APPDATA%\Code\User\locale.json
内容严格为:{"locale": "zh-cn"}(小写、短横线、双引号、UTF-8 无 BOM) - 必须通过命令面板执行
Configure Display Language,手动选zh-cn,然后点Restart(不是Reload Window) - 重启前杀干净所有后台进程:
Windows:任务管理器中结束所有Code.exe
macOS/Linux:pkill -f "Code Helper"和pkill -f "Electron"
Remote-SSH / WSL 场景下中文不生效
本地装了中文包,对远程窗口完全无效。VS Code Server 是独立进程,读的是远程机器自己的配置。
- 在远程终端执行
code --list-extensions,确认ms-ceintl.vscode-language-pack-zh-hans已列出 - 远程配置路径不是
User,而是:~/.vscode-server/data/Machine/locale.json(Linux/macOS)或%USERPROFILE%\AppData\Roaming\Code\User\locale.json(Windows 远程) - 内容仍为
{"locale": "zh-cn"},保存后在远程窗口中按Ctrl+Shift+P→Developer: Reload Window(注意是远程窗口) - 若
~/.vscode-server/data/Machine/下无子目录,说明 Server 没跑起来,先打开一个远程文件夹再试
最常被忽略的点:locale.json 文件路径和值必须一字不差,且重启前必须杀光所有 Code 相关进程——残留的 Electron 实例会缓存旧配置,导致改了也白改。











