vscode中文语言包在虚拟机中安装失败,主因是网络隔离或配置未同步;需检查版本≥1.13、市场访问性,优先离线安装vsix;remote-ssh/wsl需单独配置远程locale.json;git/调试英文属系统locale问题,须设置lang;重启前须彻底杀掉code进程。

VSCode中文语言包在虚拟机里装不上?先确认宿主和客户机的网络与版本
虚拟机中 VSCode 中文界面失效,90% 的情况不是语言包问题,而是环境隔离导致的安装路径或配置未同步。VirtualBox/VMware 的 NAT 或仅主机模式常拦截扩展市场请求,尤其国内用户容易卡在搜索页空白或“找不到扩展”。
检查两件事:code --version 输出是否 ≥ 1.13(旧版不支持在线安装语言包);虚拟机能否访问 https://marketplace.visualstudio.com(可终端 curl -I https://marketplace.visualstudio.com 测试)。若失败,要么换桥接模式,要么改用离线安装。
- 离线安装命令(在宿主机下载后传入虚拟机):
code --install-extension vscode-language-pack-zh-hans.vsix - 别用浏览器直接下 —— 必须从 官方页面 点 “Download Extension” 拿到 .vsix 文件
- Windows 虚拟机若提示“签名无效”,右键 .vsix → 属性 → 勾选“解除锁定”再安装
Remote-SSH / WSL 场景下 locale 配置只生效一半?远程端必须单独设
你在宿主机上把 locale.json 改成 {"locale":"zh-cn"},虚拟机里打开 VSCode 还是英文 —— 因为 Remote-SSH 或 WSL 启动的是独立的 VS Code Server 实例,它读的是远程环境(即虚拟机)自己的配置,和宿主机完全无关。
进虚拟机终端执行:code --list-extensions 确认语言包已安装;再定位远程配置目录:~/.vscode-server/data/Machine/(后面带哈希名的子目录),进去新建或编辑 locale.json,内容仅一行:{"locale":"zh-cn"}。
- 保存后,在 VSCode 远程窗口中按
Ctrl+Shift+P→ 输入Developer: Reload Window(不是本地窗口!) - 别往
settings.json里写locale—— Remote 模式下该字段被忽略,只认locale.json - 如果
~/.vscode-server/data/Machine/下没有子目录,说明 Server 没跑起来,先开个远程文件夹再试
中文显示了但 Git 面板/调试控制台仍是英文?这不是语言包没装好
虚拟机里 VSCode 主界面变中文,但源代码管理(Git)面板、调试控制台、终端输出还是英文,这是正常现象,和语言包无关。Git 面板文字来自 Git 本体,调试控制台日志由 Node.js 或 Python 解释器生成,它们的语言取决于虚拟机系统的 LANG 和 LC_ALL 环境变量,不是 VSCode 控制的。
验证:在虚拟机终端运行 locale,看输出是否含 zh_CN.UTF-8。若不是,临时生效可执行:export LANG=zh_CN.UTF-8;永久生效需改 /etc/default/locale(Ubuntu/Debian)或 /etc/locale.conf(CentOS/RHEL)。
- VSCode 终端内运行的
git status输出语言,和 VSCode 自身 locale 无关,只受 shell 环境变量影响 - 某些插件(如 GitLens)自带英文 UI,需查其文档看是否支持
gitlens.language等独立配置项 - 别删重装语言包 —— 这类问题改系统 locale 才治本
重启后界面闪一下又回英文?后台进程根本没杀干净
虚拟机资源有限,VSCode 常驻进程更容易残留。你点“Restart”,只是开了新窗口,旧进程仍在后台占用内存和配置上下文,新窗口会复用它,导致 locale 不加载。
Windows 虚拟机:打开任务管理器 → 详细信息 → 结束所有 Code.exe(包括后台进程);Linux/WSL 虚拟机:终端执行 pkill -f 'code';macOS 虚拟机:活动监视器搜 Electron 全部强制退出。
- 杀完再启动 VSCode,观察右下角状态栏是否显示
zh-cn(不是en) - 如果右下角显示灰色不可编辑的
en,说明企业策略或组策略锁定了 locale,需检查虚拟机是否加入域或有策略管理工具 - 便携版 VSCode 用户注意:配置文件在
data/user-data/User/locale.json,不是$HOME/.config/Code/User/











