vscode中文界面不生效的主因是locale.json文件路径、内容或编码错误;configure display language命令唯一能自动校验并写入合法{"locale":"zh-cn"}至用户级正确路径,且需彻底重启。

VSCode 中文界面不生效,90% 是因为 locale.json 文件没写对位置、内容或编码——不是插件没装,也不是 settings.json 里少了一行配置。
Configure Display Language 命令到底干了什么
这个命令不是“切换语言”的快捷方式,而是 VS Code 唯一受信的配置触发器。它会自动检查是否已安装 Microsoft 官方 Chinese (Simplified) Language Pack for Visual Studio Code,定位用户级 locale.json 路径,写入合法 JSON,并确保 UTF-8 无 BOM 编码。
常见误操作包括:
- 在命令面板里输
Set Locale或Configure Language—— 只有Configure Display Language才有效 - 选了
zh-CN、zh_hans或Chinese—— 列表里必须手动滚动找到严格小写的zh-cn - 点了
Reload Window就以为完事 —— 必须点Restart Now,否则语言上下文不重载
locale.json 文件必须满足的硬性条件
VS Code 对这个文件极其挑剔,任何一项不满足都会静默回退到英文,且不报错。
路径必须是用户数据目录下的 User/locale.json:
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
$HOME/Library/Application Support/Code/User/locale.json - Linux:
$HOME/.config/Code/User/locale.json
内容必须严格为单行 JSON:
- 只允许这一行:
{"locale":"zh-cn"} - 不能有空格、逗号、注释、多余引号(比如全角双引号)
- 不能是
{"locale": "zh-cn"}(带空格)或{"locale":"zh_CN"}(下划线)
编码必须是 UTF-8 无 BOM —— 用 VS Code 自己新建并保存该文件,能天然规避 BOM 问题;别用记事本、Sublime 或某些编辑器另存为。
Remote-SSH / WSL 下中文不生效怎么办
本地设好了 locale.json,远程连接后仍是英文?这不是配置失败,而是 Remote-SSH 和 WSL 启动的是独立的 VS Code Server 实例,它读取的是远程机器上的配置,和本地完全无关。
必须在远程端单独处理:
- Remote-SSH 连接后,执行
Developer: Open User Data Folder,进User/目录新建或编辑locale.json - WSL 中先运行
code --list-extensions确认 Server 已启动,再进~/.vscode-server/data/Machine/xxx/User/locale.json(xxx 是哈希后缀) - 远程端的语言包也得单独安装:在远程窗口的扩展面板中搜索
Chinese (Simplified) Language Pack for Visual Studio Code并安装
注意:远程端的 locale.json 路径和内容规则与本地完全一致,只是位置不同。
settings.json 里写 "locale": "zh-cn" 为什么无效
这个字段在 VS Code 1.70+ 版本中已被废弃,VS Code 根本不读取它。你加了也不会报错,但也不会生效。
很多用户反复修改 settings.json 却没效果,就是因为混淆了配置层级:
-
settings.json控制编辑器行为(如主题、缩进、自动保存) -
locale.json控制 UI 语言(菜单、设置页、命令面板提示语),是唯一生效路径 - 工作区根目录下的
.vscode/locale.json不生效 —— 它不是工作区支持的配置项
真正容易被忽略的是:哪怕只多一个空格、用了全角引号、路径里有中文字符或空格、文件名写成 locale.txt,VS Code 都会直接放弃加载,且没有任何提示。











