vscode离线安装中文包需三步:下载ms-ceintl官方vsix、通过install from vsix安装、执行configure display language命令选zh-cn并重启。手动改locale.json为兜底方案,须确保系统区域和快捷方式不冲突。

VSCode 离线安装中文包,核心就三件事:下对文件、装进系统、告诉 VS Code 用它——少一个环节,界面照样是英文。
怎么下载到真正能用的 vscode-language-pack-zh-hans.vsix
别搜“VSCode 中文插件”,直接认准唯一发布者:MS-CEINTL。所有带“汉化”“中文支持”字样的第三方包都跳过。
- 打开官方语言包页面(比如通过 VS Code 扩展市场搜
Chinese (Simplified) Language Pack for Visual Studio Code),拉到最底部点 Download Extension,得到文件名类似MS-CEINTL.vscode-language-pack-zh-hans-1.104.2025082016.vsix - 右键解压这个 .vsix(它本质是 zip),打开里面的
package.json,确认"engines": {"vscode": "^1.104.0"}和你本地code --version输出的主版本号匹配(如1.104.2→ 匹配^1.104.0) - 别用百度网盘链接、exe 封装器或“一键汉化包”——那些不是过期就是签名失效,甚至含静默行为
离线安装必须用 Install from VSIX,不能复制文件夹
手动把 .vsix 解压后扔进 %USERPROFILE%\.vscode\extensions(Windows)或 $HOME/.vscode/extensions(macOS/Linux)完全无效:VS Code 启动时不扫描未注册的文件夹,也不会触发语言资源加载逻辑。
- 在离线机上启动 VS Code,按
Ctrl+Shift+X打开扩展面板 → 点右上角⋯→ 选Install from VSIX...→ 选中你传入的 .vsix 文件 - 如果拖拽 .vsix 到窗口没反应,先确认:VS Code 窗口有系统焦点(任务栏高亮)、没全屏、没在 RDP/TeamViewer 里;且文件是原始 .vsix(
unzip -l xxx.vsix应看到顶层有extension/目录) - Linux/macOS 虚拟机中若挂载了共享文件夹(如
/mnt/hgfs),先cp到~/Downloads/再安装,避免 FUSE 权限拦截
Configure Display Language 命令必须手动执行,且只认 zh-cn
装完 .vsix 只是放了个“字典”,真正启用中文的是 Configure Display Language 命令——它会写入或修正 locale.json,但不重启等于白设。
- 按
Ctrl+Shift+P→ 输入完整命令名Configure Display Language(注意大小写和空格,缩写或拼错都搜不到)→ 回车 → 从列表选zh-cn(必须小写、连字符、无空格;zh_CN、zh-hans、Chinese全部无效) - 选完会弹提示 “Restart Now”,必须点它;点
Developer: Reload Window不行——那只是重载插件,不加载语言资源 - 如果命令面板里根本搜不到该命令,说明语言包压根没装成功,或装完后没彻底退出过任何 VS Code 进程(Windows 查任务管理器清空所有
Code.exe,macOS 查活动监视器里的 Electron)
手动改 locale.json 是最后兜底手段
当命令面板卡死、UI 崩溃、或批量部署时,直接编辑配置文件最可靠——它的优先级高于 settings.json 里的 locale 字段。
- 彻底关闭所有 VS Code 窗口(包括托盘图标右键退出)
- 找到并用纯文本编辑器打开:
– 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、无多余空格或逗号)→ 保存 → 全新启动 VS Code
最容易被忽略的是:系统 locale 干预(比如 Windows 勾了 “Beta: Use Unicode UTF-8” 且区域设为 English)、快捷方式指向旧版 VS Code、或 settings.json 里硬写了错误的 "locale": "en" ——这些都会覆盖语言包设置,让前面所有操作归零。











