双击.vsix文件不生效是因为VSCode自1.70版起禁用直接加载机制,仅复制文件却不注册扩展ID、不触发资源加载流程;必须通过命令面板“Extensions: Install from VSIX”安装,并设locale为"zh-cn"后彻底重启。

离线安装 VSCode 中文包,唯一可靠路径是通过命令面板执行 Extensions: Install from VSIX,再手动设置 locale 为 "zh-cn" 并重启——双击 .vsix 文件、拖拽进窗口、或用 code --install-extension 命令行安装,都可能静默失败或界面不切换。
为什么双击 .vsix 文件不生效?
VSCode 自 1.70 版起已禁用文件系统直接加载机制。双击或拖入只是把文件复制到 ~/.vscode/extensions/(Linux/macOS)或 %USERPROFILE%\.vscode\extensions\(Windows),但不会注册扩展 ID、不触发语言资源加载流程,也不会写入激活状态。现象是:安装后右下角仍显示 en,设置页、命令面板、调试面板全英文,且无任何错误提示。
- 根本原因:VSCode 主程序只认通过内置安装器注册的语言包,否则视为“未启用扩展”
- 验证方式:打开扩展面板,搜索
ms-ceintl.vscode-language-pack-zh-hans,若未显示“已启用”状态,说明未真正安装 - 补救操作:必须先卸载(点击扩展右上角 … → Uninstall),再走命令面板重装
locale.json 里该填 zh-cn 还是 zh-hans?
填 "zh-cn" ——这是 VSCode 主程序硬编码识别的简体中文标识。虽然 zh-hans 在部分版本中能触发部分翻译,但自 1.95+ 起,它仅加载基础 UI 字符串,设置页、终端面板、调试视图等关键区域仍为英文。
-
locale.json必须放在用户级配置路径:
Linux:~/.config/Code/User/locale.json
Windows:%APPDATA%\Code\User\locale.json
macOS:$HOME/Library/Application Support/Code/User/locale.json - 内容严格为:
{"locale": "zh-cn"}(小写、连字符、双引号、UTF-8 无 BOM 编码) - 不要写成
zh_CN、ZH-CN、chinese或带空格的"zh-cn ",VSCode 会直接忽略该字段
安装后重启仍无效?检查这三件事
常见失效不是配置错,而是环境残留干扰:
- 后台进程未彻底退出:Windows 上用任务管理器杀掉所有
Code.exe进程;macOS/Linux 执行pkill -f "Code Helper"和pkill -f "Electron",再启动 - 语言包版本与 VSCode 不匹配:比如用 v1.92 的 .vsix 安装到 v1.95+ 的 VSCode,会出现
Extension is not compatible提示(但有时静默失败)。解决办法是去官网下载对应版本的vscode-language-pack-zh-hans-*.vsix,ID 必须是ms-ceintl.vscode-language-pack-zh-hans - 企业策略禁用
file://协议:某些内网安全组策略会拦截本地扩展加载。此时需联系 IT 管理员确认是否放开file://白名单,或改用管理员权限运行 VSCode
最易被忽略的是 locale.json 的编码和路径——很多人改了配置却存成 UTF-8 with BOM,或者误放到工作区级 .vscode/ 目录下,VSCode 根本不读取。改完一定要用编辑器确认编码,并在终端里 cat 或 type 一下路径是否真实存在且内容正确。


















