Command Palette 命令名是否中文取决于语言包安装、locale 设置为 zh-cn、重启生效及命令是否为官方内置并提供中文翻译;第三方扩展命令需作者在 package.nls.zh-cn.json 中提供对应翻译。

Command Palette 本身不会“汉化”——它显示的是命令名,而命令名是否中文,取决于你安装的语言包和当前 locale 设置。只要中文语言包已正确安装并生效,Configure Display Language、Preferences: Open Settings (JSON) 等命令就会自动显示为中文(如“配置显示语言”“打开设置(JSON)”),但底层命令 ID 仍是英文。
Command Palette 里命令名不显示中文?先确认语言包是否真正生效
很多人以为装了中文包就万事大吉,结果 Command Palette 还是英文,其实根本原因是 locale.json 没被正确写入或未重启。
- 按
Ctrl+Shift+P输入Configure Display Language,回车后必须从下拉列表中**手动选择zh-cn**(不能只装包不选) - 选完后弹出的提示框里一定要点
Restart,不是关闭再开,而是点击那个弹窗按钮 - 重启后,再按
Ctrl+Shift+P输入任意中文关键词(比如“设置”),看是否能搜到“打开设置(UI)”“打开设置(JSON)”等中文命令项 - 如果仍全是英文,检查
locale.json文件内容是否为{"locale":"zh-cn"},路径如下:
Windows:%APPDATA%\Code\User\locale.json
macOS:~/Library/Application Support/Code/User/locale.json
Linux:~/.config/Code/User/locale.json
为什么有些命令在 Command Palette 里还是英文?
这不是 bug,是设计使然:VSCode 只翻译官方内置命令,第三方扩展注册的命令名由扩展作者决定。比如 Git: Commit 能变成“提交更改”,但某个插件注册的 MyExt: Do Something 若没提供中文 translation,就永远显示英文。
- 查看某条命令是否被翻译:打开
Command Palette→ 输入该命令英文名 → 观察右侧是否显示中文别名(如Developer: Toggle Developer Tools显示为“切换开发者工具”) - 部分高频命令有固定中文映射,例如:
workbench.action.terminal.toggleTerminal→ “切换终端”editor.action.formatDocument→ “格式化文档”files.newFile→ “新建文件” - 插件作者若未在
package.nls.json中提供zh-cn键值对,VSCode 就无法显示中文,此时只能向插件提 issue 或暂时忍受英文
想让自定义快捷键或命令也显示中文?别折腾,没用
VSCode 不允许用户直接修改命令显示名。你通过 keybindings.json 绑定的快捷键,触发的仍是原始命令 ID;你在 commands 中注册的自定义命令,其显示名也必须由 extension 的 contributes.commands 配置项指定,并依赖对应语言包文件。
- 不要试图在
locale.json里手动加键值对来“覆盖”命令名——VSCode 忽略这种写法 - 也不要用正则替换
vscode-*.nls.js文件——下次更新会被覆盖,且可能破坏签名验证 - 如果你开发插件,务必在
package.nls.json和package.nls.zh-cn.json中同步维护中英文键值,否则用户切换语言后你的命令就“失语”
真正容易被忽略的点是:语言包安装 ≠ 语言生效。很多人卡在“点了安装”就以为完事,却漏掉 Configure Display Language 里那一步手动选 zh-cn,更忘了重启。Command Palette 的中文映射不是开关,而是链式依赖——语言包 + locale 设置 + 重启 + 官方命令支持,缺一不可。


















