离线安装VSCode中文语言包需验证磁盘文件存在且locale.json配置正确:检查~/.vscode/extensions/下是否有zh-hans文件夹,确保%APPDATA%\Code\User\locale.json(Windows)等内容为{"locale":"zh-cn"}并UTF-8无BOM保存,彻底重启生效。

插件列表里根本找不到语言包,先确认它是不是真装进去了
离线安装中文语言包后,在扩展面板(Ctrl+Shift+X)里搜不到 MS-CEINTL.vscode-language-pack-zh-hans,不代表没装成功——VSCode 有时会静默失败,但不报错也不列出来。最直接的验证方式是看磁盘上有没有对应文件夹:
- Linux/macOS:
ls ~/.vscode/extensions/ | grep zh-hans - Windows:
dir %USERPROFILE%\.vscode\extensions\ | findstr "zh-hans"
如果目录下有类似 ms-ceintl.vscode-language-pack-zh-hans-1.104.2025082016 的文件夹,说明安装已写入磁盘;如果没有,问题出在安装命令本身或权限上,不是“显示”问题。
装进了 extensions 目录却仍不显示,检查 locale.json 是否生效
语言包只是资源文件,真正触发 UI 切换的是 VSCode 的本地化配置。这个配置存在独立的 locale.json 文件里,和插件市场、扩展列表完全无关。很多人反复重装语言包,却漏了这一步:
- 关闭所有 VSCode 窗口,杀掉后台进程(Windows 任务管理器里结束所有
Code.exe,macOS 活动监视器里干掉Code Helper) - 打开
locale.json: • Windows:%APPDATA%\Code\User\locale.json• macOS:$HOME/Library/Application Support/Code/User/locale.json• Linux:$HOME/.config/Code/User/locale.json - 文件内容必须且仅有一行:
{"locale":"zh-cn"},保存为 UTF-8 无 BOM 编码
改完不重启 = 白改。必须彻底退出再双击图标重开,否则 locale.json 不加载,语言包再全也没用。
扩展面板里能搜到语言包但状态是“已禁用”,别急着点启用
如果你在扩展面板里搜到了语言包,但右下角显示“已禁用”,直接点启用很可能无效——因为禁用原因通常是版本不匹配或依赖冲突,不是开关问题:
- 打开命令面板(
Ctrl+Shift+P),输入Configure Display Language,选中后回车,再选zh-cn→ 这个操作会强制刷新语言上下文,比手动启用来得可靠 - 如果该命令不出现,说明 VSCode 启动时压根没读到语言服务,大概率是
locale.json路径错误或格式非法(比如多了空格、用了中文引号、末尾缺逗号) - 禁用状态还可能源于插件与当前 VSCode 版本不兼容,比如你装了
1.104.x语言包,但 VSCode 是1.84.2,它会在安装时拒绝激活但不提示——查~/.vscode/extensions/下对应文件夹里有没有package.json,打开看里面的"engines": {"vscode": "^1.104.0"}字段是否高于你本地版本
离线环境里命令行安装失败,code --install-extension 报“找不到文件”的真实原因
你在终端执行 code --install-extension /path/to/zh-hans.vsix 却提示“找不到文件”,不是路径错了,而是 code 命令本身不可用:
- 先运行
which code(macOS/Linux)或where code(PowerShell),如果返回空,说明 VSCode 没注册 CLI 工具 —— macOS 需在 Command Palette 里运行Shell Command: Install 'code' command in PATH;Windows 要在安装时勾选 “Add to PATH”,或进设置手动开启 - 路径必须是绝对路径,不能用
~/或./,VSCode 不解析波浪号;Windows 上反斜杠要双写或全用正斜杠:C:/downloads/zh-hans.vsix可以,C:\downloads\zh-hans.vsix也行,但C:\downloads\zh-hans.vsix在 PowerShell 里可能被误解析为转义序列 - 装完后别只信终端输出的 “successfully installed”,去
~/.vscode/extensions/下确认文件夹是否存在,因为校验失败(如 .vsix 被解压重打包过、SHA256 不匹配)会导致静默跳过
真正容易被忽略的是:语言包的可见性由两套机制控制——磁盘上的文件存在性(extensions 目录)、和内存里的语言上下文(locale.json + 启动时加载)。离线环境下,后者常被当成“插件问题”去排查,其实它根本不走插件系统,也不依赖 Marketplace。


















