VSCode中文界面需手动创建locale.json文件,路径为%APPDATA%CodeUserlocale.json(Windows)、~/Library/Application Support/Code/User/locale.json(macOS)或~/.config/Code/User/locale.json(Linux),内容仅允许{"locale":"zh-cn"},且必须UTF-8无BOM编码;该文件不存在则默认英文界面。

Windows 下 locale.json 的正确路径是 %APPDATA%CodeUserlocale.json
VSCode 不会自动创建这个文件,它只在你手动指定界面语言时才需要。路径中的 %APPDATA% 是系统环境变量,展开后通常是 C:Users\AppDataRoaming。注意:%USERPROFILE%.vscode 或 %LOCALAPPDATA% 下的同名文件完全无效,VSCode 根本不读。
常见错误包括:
- 把文件建在 VSCode 安装目录或扩展目录里
- 用记事本保存时默认加了 BOM(必须用 UTF-8 无 BOM 编码)
- 文件名写成 locale.json.txt(隐藏扩展名导致实际是文本文件)
macOS 和 Linux 的路径分别是 ~/Library/Application Support/Code/User/locale.json 和 ~/.config/Code/User/locale.json
macOS 的 ~/Library/Application Support/Code/User/ 是唯一有效位置,~/Library/Preferences/ 或 ~/.vscode/ 都不行。Linux 下路径依赖 XDG Base Directory 规范,~/.config/Code/User/ 是标准位置;如果用了自定义 XDG_CONFIG_HOME,则要按该变量指向的路径找。
关键点:
- ~ 必须真实解析为当前用户主目录(尤其在 WSL 或远程 SSH 中,~ 指向远程用户的 home)
- 目录权限不能太松(如 777),某些版本会因安全策略静默忽略配置
- 文件内容只能有一行、严格小写、连字符、无空格:{"locale":"zh-cn"}
WSL 和 Remote-SSH 的 locale.json 在远程侧,路径完全不同
本地改了没用,因为 WSL 和 Remote-SSH 启动的是独立的 VS Code Server 进程,它只读远程机器上的配置。WSL(1.85+)默认路径是 ~/.vscode-server/data/Machine/locale.json;旧版可能是 ~/.vscode-remote/data/Machine/locale.json。Remote-SSH 同理,必须登录目标服务器后,在其用户目录下操作。
容易被忽略的细节:
- WSL 如果挂载了非标准 home(比如 /mnt/d/home),~ 可能不指向预期位置,得用 pwd 确认
- VSCODE_LOCALE 环境变量若已设置,会强制覆盖 locale.json,可临时执行 unset VSCODE_LOCALE 测试
- 改完无需重启 WSL 或重连 SSH,下次打开远程窗口即生效
locale.json 不存在时 VSCode 怎么决定语言
VSCode 默认不读系统语言,而是 fallback 到英文(en)。也就是说:没有 locale.json = 英文界面,不是“跟随系统”。中文语言包(ms-ceintl.vscode-language-pack-zh-hans)只是资源载体,不激活 locale.json 就不会加载中文 UI。
所以:
- 想切回英文?直接删掉 locale.json,彻底退出 VSCode 再开
- 想确认是否生效?关掉所有进程(包括托盘图标、Code Helper 进程),再启动
- 工作区级 settings.json 里的 locale 字段已被弃用,VSCode 1.80+ 完全忽略


















