code --install-extension 装中文包大概率失败,因该命令仅解压文件不注册语言资源,必须配合手动写入 {"locale":"zh-cn"} 到 locale.json 并彻底重启所有进程才生效。

直接用 code --install-extension 装中文包大概率失败
很多人以为下载好 vscode-language-pack-zh-hans-*.vsix 后,执行 code --install-extension xxx.vsix 就完事了,结果重启后还是英文界面。根本原因不是命令错了,而是 VSCode 自 1.70 版起已禁用静默注册机制:这个命令只负责把文件解压到扩展目录,但不会触发语言资源加载流程,也不会写入启用状态。现象是扩展面板里能看到插件条目,但状态始终是“未启用”,右下角语言标识也不变。
真正生效的前提有三个:
– 插件必须通过内置安装器注册(而非仅复制文件)
– locale.json 文件必须存在且内容严格为 {"locale":"zh-cn"}
– 所有 VS Code 进程必须彻底退出后全新启动
所以,批量部署时不能只靠一条命令,得组合动作:
- 先确保
code命令可用:在联网机器上打开 VSCode →Ctrl+Shift+P→ 输入Shell Command: Install 'code' command in PATH→ 回车 - 装包时加
--allow-unverified参数绕过签名验证:code --install-extension ms-ceintl.vscode-language-pack-zh-hans-1.103.2025080609.vsix --allow-unverified - 装完不重启 = 白装;必须杀掉所有
Code.exe(Windows)或Electron(macOS/Linux)进程再启动
批量部署必须手动写 locale.json,别信 settings.json
很多人想当然地改 settings.json 加 "locale": "zh-cn",结果没用。VSCode 启动时优先读取 locale.json,它的优先级高于 settings.json 中的 locale 字段,而且只认这个文件里的值。如果它不存在,哪怕 settings.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、无多余空格或逗号) - 填
zh-hans或zh_CN都会被忽略,1.95+ 版本尤其严格
离线环境最容易漏掉的兼容性陷阱
中文包不是“装上就通用”的。VSCode 主程序版本和语言包版本必须匹配,否则会静默失败或报 Extension is not compatible。比如你内网机器装的是 VSCode 1.95,但下载的是 1.92 的 .vsix,它可能连“已启用”状态都进不去。
查版本最准的方式不是看文件名,而是看插件详情页 Requirements 栏写的 “VS Code >= x.x” —— 这个是硬性门槛。下载时务必核对:
- 去官网插件页找
ms-ceintl.vscode-language-pack-zh-hans,点右侧 Resources →Download Extension(这个按钮生成的是带签名的直链,版本确定) - 别从 GitHub Release 页面随便下,除非你手动校验了
package.json里的engines.vscode字段 - 批量分发前,建议在一台目标机器上先试装 + 重启 + 查 Developer: Show Running Extensions 确认状态为“已启用”
最稳的批量安装脚本要包含三步闭环
单纯循环执行 code --install-extension 是不可靠的。一个能落地的批处理(Windows)或 shell 脚本,必须闭环这三件事:
- 安装插件:
code --install-extension *.vsix --allow-unverified - 写配置:
echo {"locale":"zh-cn"} > %APPDATA%\Code\User\locale.json(注意重定向覆盖) - 强制清理并重启:
taskkill /f /im Code.exe >nul 2>&1 & start "" "C:\Users\%USERNAME%\AppData\Local\Programs\Microsoft VS Code\Code.exe"
最后提醒一句:批量脚本跑完,别只看终端输出 success,一定要打开新窗口,按 Ctrl+Shift+P 搜 Configure Display Language —— 如果搜不到,说明语言包根本没注册成功,得回退检查 .vsix 版本和 locale.json 路径是否写错。











