configure display language 命令不出现或无法选择 zh-cn,说明官方语言包 ms-ceintl.vscode-language-pack-zh-hans 未成功安装或被禁用;需确认插件已启用、正确安装、重启生效,并确保用户级 locale.json 文件内容为 {"locale":"zh-cn"} 且路径准确,远程开发需单独配置远程端。

Configure Display Language 命令不出现或选不了 zh-cn
这说明 ms-ceintl.vscode-language-pack-zh-hans 根本没装成功,或者装了但被禁用。VS Code 的命令面板只在语言包启用状态下才注入 Configure Display Language 命令。
检查方式:按 Ctrl+Shift+P 输入 Extensions: Show Installed Extensions,确认列表中存在该插件且状态为 Enabled(不是灰色)。如果已禁用,点击右侧齿轮图标 → Enable;如果根本不在列表里,卸载所有名字含“Chinese”“中文”“汉化”的第三方插件(如 Chinese Language Pack),再重新安装官方包。
常见干扰项:
- 插件 ID 不对:必须是
ms-ceintl.vscode-language-pack-zh-hans,发布者为 Microsoft,带蓝勾认证 - 安装后没点右下角弹出的 Restart Now ——
Reload Window不会加载语言资源 - 公司内网或代理拦截了扩展市场请求,导致安装静默失败(可尝试手动下载 VSIX 安装)
locale.json 手动设置后仍不生效
VS Code 只读取用户级 locale.json,路径和内容格式错一个字符就回退英文。它不认工作区配置、不认远程端路径、也不接受任何多余空格或 BOM。
正确操作:
- 先彻底退出 VS Code:Windows 查任务管理器杀光所有
Code.exe和Code Helper进程;macOS 运行killall -u $USER 'Code Helper' - 定位文件:
%APPDATA%\Code\User\locale.json(Windows)、~/Library/Application Support/Code/User/locale.json(macOS)、~/.config/Code/User/locale.json(Linux) - 文件内容**只能是且仅是**这一行:
{"locale":"zh-cn"}(双引号、冒号后有空格、值全小写、短横线,无注释、无逗号、无 UTF-8 BOM) - 如果文件已存在但内容是
{"locale":"en"},直接删掉重写,别改
远程开发(SSH/WSL/Dev Container)界面仍是英文
本地设好没用,因为远程实例运行的是独立的 VS Code Server,它读的是远程机器上的 locale.json,和本地完全无关。
必须在远程环境中单独配置:
- 连上 Remote-SSH / WSL 后,在远程终端中执行
code --list-extensions,确认ms-ceintl.vscode-language-pack-zh-hans已安装(未安装需在远程扩展面板里装) - 编辑远程端的
locale.json(路径同本地,但位于远程用户目录下),内容仍为{"locale":"zh-cn"} - 保存后,在远程窗口中执行
Developer: Reload Window(不是 reload 本地窗口) - 若远程没有图形界面,可直接用
echo '{"locale":"zh-cn"}' > ~/.config/Code/User/locale.json
终端和 Debug Console 仍是英文
这是正常现象,不是配置失败。Terminal 和 Debug Console 是 Electron 独立子进程,它们的语言由操作系统环境变量(如 LANG、LC_ALL)决定,不继承 VS Code 主窗口的 locale.json 设置。
想让终端也显示中文,得单独配置系统级语言环境:
- Windows:PowerShell 中运行
$env:LANG="zh_CN.UTF-8"(临时);或修改系统区域设置 - macOS/Linux:在 shell 配置文件(如
~/.zshrc)中添加export LANG=zh_CN.UTF-8,然后source ~/.zshrc - 注意:VS Code 终端启动时读取的是父进程环境,改完需重启 VS Code 才能生效
最常被忽略的一点:语言包只是翻译资源,真正激活中文的是 locale.json 里的 "zh-cn" 字符串。哪怕插件装了、命令也执行了,只要这个文件没落盘、没被正确读取,或者被远程/工作区配置覆盖,界面就会静默回退英文——它不会报错,也不会提示,只会默默显示英文。











