vscode界面语言仅通过locale.json文件生效,settings.json中"locale"字段完全被忽略;必须执行configure display language命令或手动创建严格格式的{"locale":"zh-cn"}文件于指定路径,且需彻底重启进程。

VSCode 界面语言只认 locale.json 里的 "locale" 字段,其他任何地方写都无效——settings.json 中加 "locale": "zh-cn" 完全被忽略,不是“没生效”,而是压根不读。
locale.json 文件路径和创建时机
这个文件默认不存在,VS Code 不会自动生成,必须由插件安装后手动触发(如执行 Configure Display Language)或人工创建。路径严格固定:
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
$HOME/Library/Application Support/Code/User/locale.json - Linux:
$HOME/.config/Code/User/locale.json
注意:User 是目录名,不能写成 user 或 UserSettings;路径中不能含中文、空格或符号链接;远程环境(如 WSL / Remote-SSH)需在对应服务端的同路径下单独配置。
locale.json 内容格式必须精确到字符
文件内容只允许一行合法 JSON,且必须满足全部以下条件,缺一不可:
- 仅包含一个键值对:
"locale": "zh-cn"(小写、连字符、无空格) - 不能是
zh_CN、zh-hans、ZH-CN、Chinese或zh - 必须用英文双引号,不能用中文引号、单引号或全角符号
- 不能有多余逗号、换行、注释或 UTF-8 BOM(用 VS Code 自己新建并保存可天然规避 BOM)
- 不能和其他字段混写,例如
{"locale":"zh-cn","theme":"dark"}会整体失效
常见静默失败现象:右下角状态栏仍显示 en,设置页、命令面板全是英文——大概率就是这里多了一个空格、用了记事本保存、或写成了 zh_CN。
为什么 Configure Display Language 命令有时没反应
该命令本质是自动创建/覆盖 locale.json。它失效通常不是命令坏了,而是前置依赖没到位:
-
ms-ceintl.vscode-language-pack-zh-hans插件未真正安装成功(可在扩展面板搜@installed验证) - VS Code 正在运行旧进程(任务管理器里还有残留
Code.exe或Electron) - 企业设备受组策略限制,注册表
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\PreferredUILanguages被锁定 - 工作区级
.vscode/settings.json里误写了"locale"字段(虽不生效,但可能干扰调试判断)
命令面板里输入 Configure Display Language 后,列表必须手动滚动找到 zh-cn —— 搜索 zh 或 cn 不会匹配,也不会报错提示。
重启必须彻底,Reload Window 完全无效
VS Code 只在**进程启动时**读取一次 locale.json。运行中修改文件、或只点 Developer: Reload Window,界面语言绝不会变。
- Windows:关掉所有窗口后,打开任务管理器 → 结束所有
Code.exe进程 - macOS:活动监视器中结束
Electron和Code Helper - Linux:执行
pkill -f "code.*--no-sandbox"
重新启动后,右下角状态栏会显示当前语言代码(如 zh-cn),点击它可快速切换——但这只是快捷入口,底层仍是改 locale.json 并重启。
最容易被忽略的是:locale.json 编码、路径、大小写、JSON 格式这四者必须同时正确,任意一项偏差,VS Code 就会静默回退到英文,且不给任何提示。











