vscode 界面语言仅由用户级 locale.json 控制,必须为 utf-8 无 bom 编码、内容为 {"locale":"zh-cn"}(全小写短横线)、存放于正确路径,且不控制终端/git/调试器输出。

locale.json 是 VSCode 唯一认的界面语言开关文件
VSCode 自 1.70 版本起,settings.json 中的 "locale" 字段已被完全弃用,无论你写成 "locale": "zh-cn" 还是 "locale": "en",它都静默忽略、不报错也不生效。真正控制 UI 显示语言(菜单、设置页、命令面板、错误提示文字等)的,只有独立存在的 locale.json 文件,且只读取用户级路径下的那个——其他位置(如工作区 .vscode/locale.json 或 settings.json 里混写的)全无效。
locale.json 必须严格满足四个条件才生效
哪怕内容只差一个字符,VSCode 就会退回到英文界面,且不提示原因。常见失效点包括:
-
locale.json文件编码不是 UTF-8 无 BOM(用记事本或 Sublime Text 直接保存极易带 BOM,必须用 VS Code 自己新建并保存) - 值写成
"zh_CN"、"zh-hans"、"Chinese"或"zh-CN"—— 只有"zh-cn"(全小写、短横线、无空格)被认可 - 文件内容多了一个逗号、少了一个引号、加了注释(如
// 中文)、或用了中文引号,JSON 解析失败即静默忽略 - 路径放错:Windows 必须是
%APPDATA%\Code\User\locale.json,macOS 是$HOME/Library/Application Support/Code/User/locale.json,Linux 是$HOME/.config/Code/User/locale.json
Configure Display Language 命令本质是自动写 locale.json
这个命令不是“切换语言”的魔法按钮,而是帮你完成三件事:检查语言包是否已安装 → 若未安装则跳转扩展页 → 安装后在正确路径下创建或覆盖 locale.json,内容固定为 {"locale":"zh-cn"}。它不改 settings.json,也不影响远程环境。
如果你点了命令、选了 zh-cn、点了 Reload Window,但界面仍是英文,大概率是:
- VSCode 进程没彻底退出(Windows 托盘图标还在、macOS/Linux 有残留
code进程) - 远程连接(Remote-SSH / WSL)下,该命令只改本地配置,远程窗口仍读远程机器上的
locale.json - 工作区目录下存在
.vscode/settings.json,里面写了"locale": "en"—— 虽然这个字段本身无效,但某些旧版插件或企业策略可能干扰加载流程
locale.json 不控制终端、调试控制台和 Git 输出
很多人发现“菜单变中文了,但集成终端里的 git status 还是英文”,这不是配置失败,而是设计如此。locale.json 只影响 VSCode 自身 UI 层;终端子进程(bash、python、node)、Git CLI、调试器输出,都由操作系统环境变量(如 $LANG、$LC_ALL)决定,和 VSCode 的 locale 设置无关。盯住顶部菜单栏、左侧活动栏 hover 文字、设置页搜索框占位符是否变成中文,这三处对了,locale.json 就真的起作用了。











