--locale=zh-cn是VSCode唯一官方支持的运行时语言覆盖方式,优先级高于locale.json和settings.json,但不持久;真正生效的配置文件是用户目录下的locale.json,内容必须为{"locale":"zh-cn"}。

VSCode 启动时用 --locale=zh-cn 参数强制指定语言
这不是“配置环境变量”,而是直接在启动命令里加参数。VSCode 本身不读取系统级环境变量(如 LANG 或 VSCODE_LOCALE)来控制界面语言,--locale=zh-cn 是唯一被官方支持的运行时覆盖方式,适用于 Snap 版、企业策略锁定 locale、或命令面板失效等特殊场景。
常见使用方式:
- 终端中直接运行:
code --locale=zh-cn /path/to/project - Windows 快捷方式目标栏末尾追加:
"C:\Users\X\AppData\Local\Programs\Microsoft VS Code\Code.exe" --locale=zh-cn - macOS 可通过
open -n -a "Visual Studio Code" --args --locale=zh-cn启动新实例 - Linux 桌面快捷方式(
.desktop文件)中修改Exec=行,末尾加--locale=zh-cn
注意:--locale 参数优先级高于 locale.json 和 settings.json 中的 locale 字段,但不会写入任何配置文件,每次启动都得带上——它只是临时覆盖,不是持久化设置。
locale.json 是实际生效的配置文件,不是环境变量
很多人误以为要设系统环境变量,其实 VSCode 的语言配置只认一个固定路径下的 locale.json 文件,且内容极其简单。它不是靠环境变量驱动,而是由 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 - 文件内容必须严格为:
{"locale":"zh-cn"}(无 BOM、无注释、无多余逗号)
如果手动创建或编辑该文件,保存后必须彻底退出所有 VS Code 进程(包括后台的 Code Helper),再全新启动,否则旧进程会复用缓存配置。
为什么改 settings.json 里的 locale 没用?
settings.json 中写 "locale": "zh-cn" 是无效的——这个字段根本不在 VSCode 的用户设置 schema 里,JSON 校验器不会报错,但它会被完全忽略。VSCode 1.118 及之后版本明确只从 locale.json 或 --locale 启动参数读取语言配置。
容易混淆的点:
-
settings.json里搜locale出来的结果,基本是插件(如 GitLens、Prettier)自己的语言选项,和界面语言无关 - 某些老教程提到的
argv.json已被弃用,VSCode 1.110+ 不再支持通过它设locale - 系统环境变量如
LC_ALL=zh_CN.UTF-8对 VSCode 界面语言零影响,只可能影响终端里运行的子进程(比如git命令的输出)
真正需要环境变量的场景:只有终端子进程
如果你希望 VSCode 内置终端(Terminal)里运行的命令(如 git status、node --version)显示中文提示,那才需要系统级环境变量。但这和 VSCode 界面语言完全无关。
例如在 macOS/Linux 的 shell 配置文件中添加:
export LANG=zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8
然后重启终端或执行 source ~/.zshrc。Windows 用户则需在系统设置 → 高级系统设置 → 环境变量中添加 LANG,但效果有限,因多数 Windows CLI 工具不遵循 POSIX locale 规范。
别把终端语言和界面语言混为一谈——前者靠系统环境变量,后者只认 locale.json 或 --locale 参数。


















