code --locale=zh-cn 仅强制主进程界面中文,因vs code语言分三层(主进程、渲染进程、子进程),终端、远程会话、部分扩展等不继承该参数,需配合关闭残留进程、配置locale.json或修改启动方式才能彻底生效。

直接用 code --locale=zh-cn 就能强制中文启动,但只对当前窗口生效,且部分子进程(如终端、扩展 UI)可能仍显示英文——这不是 bug,是 VS Code 的语言上下文透传机制限制。
为什么 --locale=zh-cn 有时不彻底?
VS Code 的语言设置分三层:主进程、渲染进程、子进程(比如集成终端、调试器控制台、某些扩展的弹窗)。--locale 只保证主窗口和核心 UI 中文,但终端里跑的 node 或 python 命令输出、扩展自己渲染的 Webview、甚至 Copilot 的对话框,都可能按系统 locale 或进程环境变量走。
- 终端默认继承系统
LANG(Linux/macOS)或区域设置(Windows),不是 VS Code 的--locale - Remote-SSH / WSL 连接后,远程端的 VS Code Server 不读本地命令行参数,必须单独配
locale.json - 某些插件(如旧版 GitLens、非官方主题)会硬编码英文文案,
--locale对它们无效
code --locale=zh-cn 怎么加才真正起作用?
关键不是“输没输对”,而是“有没有被正确加载”。常见失败原因是 code 命令根本没指向 VS Code 主程序,或者后台残留进程抢了控制权。
- 先确认
code命令可用:在终端执行which code(macOS/Linux)或where code(Windows),确保路径指向 VS Code 安装目录下的bin/code或Code.exe - 关干净所有 VS Code 进程:Windows 查任务管理器里的
Code.exe和Code Helper;macOS 执行pkill -f "Electron.*Code";Linux 用pkill -f "code" - 启动时加空格再加参数:
code --locale=zh-cn .(打开当前目录),不要写成code--locale=zh-cn(少空格就当文件名处理) - 如果用快捷方式或桌面图标启动,需改其目标字段(Windows)或
Exec=行(Linux .desktop 文件),否则双击仍走默认 locale
哪些场景适合用命令行强制中文?
它不是日常主力方案,但对这几类需求最实用:
- 临时帮别人排查问题:不用改对方配置,一行命令就能验证是否是语言包缺失导致的 UI 异常
- CI/CD 脚本中启动 VS Code 进行自动化截图或 UI 测试,需固定界面语言避免 flaky 测试
- 多用户共享机器时,不同用户用不同 locale 启动,互不干扰(注意:扩展安装仍全局)
- 调试语言包加载顺序:配合
--log-level=trace看日志里locale是怎么被解析和 fallback 的
真正容易被忽略的是:即使你每次都在终端敲 code --locale=zh-cn,只要后台有另一个没关干净的英文版 VS Code 在跑,新窗口的某些状态栏提示、设置搜索结果排序、甚至命令面板历史,都可能被旧进程缓存污染。关进程这一步,比写对参数还关键。











