离线虚拟机中vscode中文语言包安装失败,主因是code命令不可用、vscode版本不匹配或remote-ssh/wsl远程配置未单独设置locale.json;需检查path、下载对应版本vsix、并在远程machine目录下配置{"locale":"zh-cn"}。

离线虚拟机里装不上 VSCode 中文语言包,90% 不是插件本身的问题,而是环境没对齐——code 命令不可用、VSCode 版本太低、远程实例配置被忽略,这三类问题占了绝大多数失败场景。
code 命令根本找不到?先确认 PATH 和安装方式
在终端直接敲 code --install-extension 报 command not found,说明 VSCode 没注册进系统路径。Ubuntu 虚拟机用官方 .deb 包安装后,默认不自动加 /usr/bin/code 到 $PATH,尤其 SSH 登录后更常见。
- 运行
which code,无输出就证实路径缺失 - 临时解决:用绝对路径,比如
/usr/bin/code --install-extension vscode-language-pack-zh-hans.vsix - 永久解决:把
/usr/bin加进~/.bashrc的PATH,然后source ~/.bashrc - 别用
sudo code—— 插件会装到 root 用户目录,普通用户启动 VSCode 后看不到
vsix 安装静默失败?检查 engines.vscode 版本兼容性
拖进去没反应、命令执行完也没提示、甚至重启后语言包列表里压根不显示——大概率是 package.json 里声明的 "engines": {"vscode": "^1.85.0"} 和你本地 code --version 输出(比如 1.79.2)不匹配。VSCode 会直接跳过安装,连错误都不抛。
- 用
unzip -p plugin.vsix package.json | grep engines提取插件要求的最低版本 - 对比
code --version输出,差一个主版本号(如 1.79 vs 1.85)基本就失败 - 降级方案:去 Marketplace 的
/versionhistory页面手动选旧版下载,例如https://marketplace.visualstudio.com/items/MS-CEINTL.vscode-language-pack-zh-hans/versionhistory - 别手改
package.json再重打包——签名失效后插件可能被禁用或功能异常
Remote-SSH / WSL 下 locale.json 配置只生效一半?远程端必须单独设
宿主机上改了 locale.json,虚拟机里打开还是英文;或者本地窗口中文、远程窗口英文——这是因为 Remote-SSH 或 WSL 启动的是独立的 VS Code Server 实例,它读的是虚拟机本地的配置,和宿主机完全无关。
- 进虚拟机终端,运行
code --list-extensions确认语言包已装好 - 定位远程配置目录:
~/.vscode-server/data/Machine/下那个带哈希名的子目录(若没有,先开个远程文件夹触发 Server 启动) - 在该子目录下新建或编辑
locale.json,内容仅一行:{"locale":"zh-cn"} - 保存后,在 VSCode 远程窗口中按
Ctrl+Shift+P→ 输入Developer: Reload Window(注意不是本地窗口!) - 别往
settings.json里写locale字段——Remote 模式下这个字段被忽略
最常被忽略的一点:主界面变中文 ≠ Git 面板、调试控制台、终端日志也变中文。那些文字来自 Git、Node.js、Python 等底层工具,取决于虚拟机系统的 LANG 和 LC_ALL 环境变量,不是语言包管的范围。验证方法很简单:locale 命令输出里有没有 zh_CN。











