离线安装VSCode中文语言包失败,90%是因引擎版本不匹配、locale.json配置错误或未通过命令面板安装;必须解压修改package.json中engines.vscode为本地精确版本号,配置用户级locale.json为{"locale":"zh-cn"},并执行Extensions: Install from VSIX后彻底重启。

离线安装 VSCode 中文语言包失败,90% 不是文件坏了,而是 VSCode 在扩展注册、引擎版本匹配或 locale 配置加载环节静默跳过——它不报错,只“假装装上了”。
为什么双击或拖拽 .vsix 文件完全没反应
VSCode 自 1.70 版起已禁用直接文件系统加载机制。双击/拖拽只是把文件复制到 ~/.vscode/extensions/(Linux/macOS)或 %USERPROFILE%\.vscode\extensions\(Windows),但不会注册扩展 ID、不触发 nls 资源加载、也不写入启用状态。
- 验证方式:打开扩展面板,搜
ms-ceintl.vscode-language-pack-zh-hans,若没显示“已启用”,说明根本没注册 - 唯一可靠路径:按
Ctrl+Shift+P→ 输入Extensions: Install from VSIX→ 选中官方下载的vscode-language-pack-zh-hans-*.vsix - 别用浏览器直接另存为——必须从 Marketplace 页面点 “Download Extension” 拿到原始 .vsix
安装后界面仍是英文?关键在 locale.json 和重启方式
装上 ≠ 生效。VSCode 1.70+ 只认用户级 locale.json 里的 {"locale":"zh-cn"},其他任何地方写的都无效。
- 文件路径必须准确:
Linux:~/.config/Code/User/locale.json
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json - 内容必须严格为 UTF-8 无 BOM 编码的 JSON:
{"locale":"zh-cn"}(小写、短横线、双引号,冒号后有空格) - 别写成
zh_CN、zh-hans、Chinese或带空格的"zh-cn ",VSCode 会直接忽略 - 执行
Configure Display Language命令并选zh-cn后,必须点Restart—— 关闭再手动打开不算,后台Code Helper进程必须彻底退出
报 “not compatible with the current version of VS Code” 怎么修
这不是签名问题,而是 package.json 里 "engines": {"vscode": "^1.90.0"} 和你本地 code --version 输出(如 1.96.3)不满足语义化匹配规则。
- 先解压 .vsix:
unzip -l your.vsix确认根目录含extension/package.json - 用
7-Zip或unzip -p your.vsix extension/package.json | grep engines查看当前字段 - 编辑该文件,把
"vscode": "^1.90.0"改成"vscode": "1.96.3"(填你本地完整版本号) - 重新打包为 ZIP,再改后缀为
.vsix(注意:不是重命名,是改后缀;结构不能破坏) - Windows 下别用资源管理器双击解压再压缩——会破坏 ZIP 结构,导致静默失败
远程开发(SSH/WSL)环境单独失效
本地装了中文包,对 Remote 窗口完全无效。Remote-SSH / WSL 启动的是独立的 vscode-server 实例,读的是远程机器自己的配置。
- 必须在远程终端执行:
code --install-extension vscode-language-pack-zh-hans.vsix - 再进远程
~/.vscode-server/data/Machine/(后面带哈希名的子目录),新建或编辑locale.json,内容仅{"locale":"zh-cn"} - 远程窗口中按
Ctrl+Shift+P→Developer: Reload Window(不是本地窗口!) - 如果
~/.vscode-server/data/Machine/下没有子目录,说明 server 没跑起来,先开个远程文件夹再试
最常被忽略的点:装完语言包后,VSCode 主程序必须加载 vs/nls.js 模块才能替换字符串,而这个模块在 ≤1.75 版本中默认不启用——如果你用的是企业内网统一部署的老版本(比如 1.72),即使装了最新语言包也白搭。


















