必须安装microsoft官方chinese (simplified) language pack for visual studio code(id:ms-ceintl.vscode-language-pack-zh-hans),在扩展面板中逐字搜索全名、认准发布者microsoft和蓝白图标,安装后执行configure display language选zh-cn并彻底重启。

怎么装对中文语言包,而不是搜“中文插件”
VS Code 没有内置中文界面,必须装 Microsoft 官方的 Chinese (Simplified) Language Pack for Visual Studio Code,ID 是 ms-ceintl.vscode-language-pack-zh-hans。搜“中文插件”“汉化”“Chinese Language Pack”大概率点进非官方扩展,装了也没用。
正确操作路径:按 Ctrl+Shift+X 打开扩展面板 → 搜索框里**逐字输入**:Chinese (Simplified) Language Pack for Visual Studio Code → 认准发布者是 Microsoft、图标为蓝白 VS 标志 → 点击 Install。
- 装完右下角会弹提示,但必须点 “Change and Restart”,只 Reload Window 不生效
- 如果没弹窗,手动执行命令:
Ctrl+Shift+P→ 输入Configure Display Language→ 选zh-cn→ 确认重启 - 某些 Snap 或企业定制版 VS Code 会忽略用户配置,此时启动需加参数:
code --locale=zh-cn
locale.json 写错或缺失导致界面仍是英文
VS Code 的语言切换依赖 locale.json 文件,不是靠系统语言,也不是靠 settings.json 里的 "locale" 配置项(那个字段已废弃)。这个文件必须存在且格式严格。
路径如下:
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
~/Library/Application Support/Code/User/locale.json - Linux:
~/.config/Code/User/locale.json
内容只能是:
{"locale":"zh-cn"} —— 注意:小写、短横线、无空格、无引号外多余字符。写成 "zh"、"zh_CN"、"zh-CN" 都不识别。
- 文件不存在?直接新建,VS Code 会自动读取
- 改完没反应?先执行
Developer: Reload Window,再检查是否被其他插件(如 locale 切换工具)覆盖 - 多用户环境要注意:该文件在用户目录下,不同 Windows 账户或 macOS 用户之间不共享
code --install-extension 装中文包失败的三个卡点
离线或批量部署时常用 code --install-extension 命令,但对中文语言包特别容易失败,核心问题不在命令本身,而在包来源和签名验证。
-
code命令不可用?不是 PATH 问题,而是没启用 Shell Command:在 VS Code 里按Ctrl+Shift+P→ 输入Shell Command: Install 'code' command in PATH→ 回车执行 - 报错
INVALID_SIGNATURE?离线环境无法校验微软证书链,必须加--allow-unverified参数:code --install-extension zh-hans.vsix --allow-unverified - 装完列表里有、界面仍是英文?说明
locale.json没配,或者插件没激活 —— 执行Developer: Show Running Extensions查看ms-ceintl.vscode-language-pack-zh-hans是否状态为 “Running”
为什么部分菜单/提示还是英文
这是正常现象,不是安装失败。VS Code 本体语言包只负责编辑器自身 UI(菜单栏、设置页、命令面板等),不翻译第三方插件的界面和错误提示。
比如:
-
ms-python.python插件的调试日志、LSP 报错仍为英文,需单独看它是否提供中文 locale 支持(目前没有) -
esbenp.prettier-vscode的格式化提示、配置项描述也是英文,和 VS Code 语言无关 - 某些插件(如 GitLens)自带多语言,但需手动在插件设置里开启
gitlens.advanced.messages.language
真正要警惕的是:所有主菜单(文件、编辑、视图……)和设置搜索框仍是英文 —— 这才说明 locale.json 或语言包根本没生效,得回头查前三个环节。











