vscode中文界面必须通过用户级locale.json文件实现,路径为windows:%appdata%\code\user\locale.json、macos:~/library/application support/code/user/locale.json、linux:~/.config/code/user/locale.json;内容严格为{"locale":"zh-cn"},仅英文双引号、小写、短横线、无空格无注释无bom,且需彻底重启生效。

locale.json 文件路径和创建方式必须精准
VSCode 只读取用户级目录下的 locale.json,其他位置(如工作区 .vscode/locale.json、settings.json、系统级路径)均无效。路径如下:
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
~/Library/Application Support/Code/User/locale.json - Linux:
~/.config/Code/User/locale.json
文件不存在时可手动新建;存在但内容异常(如空文件、乱码、旧值),直接覆盖即可。别用记事本另存为“UTF-8 with BOM”——VSCode 会静默跳过带 BOM 的文件。推荐用 VS Code 自己新建并保存,天然规避编码问题。
locale.json 内容格式极其严格,错一个字符就失效
VSCode 对 JSON 格式零容忍,任何偏差都会导致整个文件被忽略,回退到上一优先级(比如工作区配置或系统语言)。必须满足全部条件:
- 只允许一个键值对:
{"locale":"en"}或{"locale":"zh-cn"} - 引号必须是英文双引号,不能用单引号:
{'locale':'en'}❌ - 值必须小写、带连字符,
"en"和"zh-cn"是唯一稳定组合;"EN"、"en-us"、"zh_CN"都不识别 - 末尾不能有多余空格:
{"locale":"en" }❌ - 不能有注释、不能换行、不能加逗号、不能有 BOM
写完立刻用在线 JSON 校验器(如 jsonlint.com)粘贴检查,比反复重启更省时间。
改完 locale.json 为什么界面没变?三个隐藏覆盖层常被忽略
VSCode 语言优先级是:启动参数 > 工作区 .vscode/locale.json > 用户级 locale.json。你改了用户级文件却没生效,大概率是被下面任一情况覆盖:
- 当前项目根目录下存在
.vscode/locale.json(内容可能是{"locale":"zh-cn"})→ 直接删掉它 - 你是通过终端 alias 启动的,比如
alias code='code --locale=zh-cn'→ 检查~/.zshrc或~/.bashrc - 用了 Remote-SSH / WSL → 本地改了没用,得登录远程主机,去远程端的对应路径(如
~/.vscode-server/data/Machine/xxx/User/locale.json)修改
改完必须彻底退出所有进程:Windows 杀光 Code.exe,macOS 执行 killall -u $USER 'Code Helper',Linux 用 pkill -f 'code'。托盘图标残留 = 白改。
locale.json 生效后如何验证是否真正起作用
不要只看菜单栏或设置页是否中文——部分区域(如扩展名、第三方插件 UI)可能仍英文,这正常。只盯三处核心区域:
- 右下角状态栏语言代码(点击它可快速查看当前生效值,如
zh-cn或en) - 命令面板(
Ctrl+Shift+P)弹出框的标题和提示文字 - 设置页面(
Ctrl+,)顶部搜索框 placeholder 文字(如 “搜索设置” 或 “Search settings”)
这三处统一变色了,才算真正切换成功。如果只有两处变了,说明仍有某层配置在干扰,回头再查工作区或启动参数。











