不能。vs code 的 configure display language 命令不支持热切换,必须点击 restart 重启才能生效,reload window 仅刷新 dom 不重建语言环境,手动修改 locale.json 也需重启才加载。

Configure Display Language 命令能热切换吗?
不能。VS Code 的 Configure Display Language 命令本身不支持热切换——选完语言后,它一定会提示「需要重启以应用更改」,点 Restart 才生效。所谓「无需重启」是常见误解,源于混淆了「语言包加载」和「界面重绘」两个阶段:语言包确实已内置、无需下载,但 UI 层级的语言上下文在进程启动时就固化了,不重启无法重建。
locale.json 改了为什么没立刻变中文?
因为 VS Code 不读取修改后的 locale.json 直到下次启动。它只在初始化阶段加载一次该文件,运行中改了也不会监听或重载。你看到的「右下角弹出『语言已更改』提示」,其实是命令面板操作触发的,不是文件监听机制。
- 该提示仅出现在通过
Configure Display Language命令修改时(它会自动写入locale.json并触发提示) - 手动编辑
locale.json后保存,不会有任何提示,必须完全退出再启动才生效 - 如果点了 Reload Window 而不是 Restart,界面仍为旧语言——Reload 不重建语言环境,只刷新当前窗口 DOM
有没有真能不关进程就切语言的办法?
没有官方支持的方式。所有声称「热切换」的方案,本质都是绕过 VS Code 限制的临时补丁,不可靠:
-
code --locale=zh-cn是启动参数,只影响新进程,对已运行实例无效 - 某些插件尝试 patch Electron 渲染层,但 VS Code 1.80+ 加强了沙箱隔离,这类 hack 大概率失效或导致 WebView 崩溃
- Remote-SSH / WSL 环境下,连重启都得分别处理本地 + 远程两套
locale.json,更不存在统一热切路径
为什么有人觉得“点 Reload 就变了”?
那是错觉,通常由以下情况造成:
- 之前已执行过
Configure Display Language,但忘记点 Restart,后来恰好因其他原因(如更新、崩溃)被强制重启,误以为是 Reload 生效 - 部分菜单项(如设置页、扩展页)使用了异步加载的本地化字符串,在 Reload 后延迟渲染,造成“局部变中文”的假象
- 系统级 locale 被终端继承(尤其 macOS/Linux),用
code命令从 shell 启动时,若终端 locale 是zh_CN.UTF-8,可能覆盖配置,形成不稳定切换
真正稳定切换的唯一路径:执行 Configure Display Language → 选 zh-cn → 点 Restart → 等待所有 Code Helper 进程退出干净。别省这十几秒,否则后面花十分钟排查「为什么菜单还是英文」更费劲。











