code --locale=zh-cn 仅强制主进程界面中文,因vs code语言分主进程、渲染进程、子进程三层,终端、远程会话、部分扩展等不继承该参数,需配合杀净残留进程、配置远程locale.json或安装对应语言包方可彻底生效。

code --locale=zh-cn 能起作用,但只对当前窗口主 UI 生效,终端、远程会话、部分扩展仍可能显示英文——这不是配置错了,而是 VS Code 的语言上下文不透传。
为什么 code --locale=zh-cn 启动后还是有英文?
VS Code 的语言控制分三层:主进程(菜单/设置/命令面板)、渲染进程(Webview 类插件界面)、子进程(集成终端、调试器、Remote-SSH 启动的 server)。--locale 参数仅影响主进程和部分渲染进程,无法强制子进程继承该 locale。
- 集成终端默认读取系统
LANG(Linux/macOS)或区域设置(Windows),不是--locale值 - Remote-SSH 连接时,远端启动的是独立的 VS Code Server,它不接收本地命令行参数
- 某些插件(如旧版 GitLens、Copilot Webview)自行加载语言资源,忽略主进程 locale
- 后台残留的 VS Code 进程(如
Code Helper、Electron)可能继续使用旧 locale,新窗口被“劫持”为英文
如何让 code --locale=zh-cn 真正生效?
关键不是输没输对命令,而是确保它被主进程真正加载。常见失败原因是命令没指向正确二进制,或旧进程干扰。
- 确认
code命令指向 VS Code 安装目录下的可执行文件:/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code(macOS)、C:\Users\XXX\AppData\Local\Programs\Microsoft VS Code\bin\code(Windows) - 启动前彻底杀掉所有 VS Code 相关进程:
killall -9 Electron Code Helper(macOS/Linux);任务管理器中结束所有Code.exe和Code Helper.exe - 避免双击图标或从 Dock/Launcher 启动——这些方式绕过命令行参数,仍走默认 locale
- 在 Linux 上若用
.desktop文件启动,需修改Exec=行为Exec=/path/to/code --locale=zh-cn %F,否则双击无效
哪些地方 --locale=zh-cn 根本不起作用?
这个参数对以下场景完全无效,必须换方案:
- Remote-SSH / WSL 连接后的远端界面:必须在远端用户目录下手动创建
~/.vscode-server/data/Machine/locale.json,内容为{"locale":"zh-cn"} - 离线环境:
--locale不会自动下载语言包,需提前安装vscode-language-pack-zh-hans.vsix并用code --install-extension xxx.vsix导入 - 某些硬编码英文的插件 UI(如部分主题、旧版 ESLint 插件弹窗):这类问题只能等插件作者适配,
--locale无解 - 终端内运行的命令输出(如
node --version、git status):这是 shell 和命令自身 locale 决定的,和 VS Code 无关
最易被忽略的一点:即使 code --locale=zh-cn 成功启动,只要后台还挂着一个英文界面的 VS Code 窗口(哪怕最小化),新窗口就可能被复用进程并沿用旧 locale——务必清空所有进程再试。











