VS Code 的 locale.json 必须放在用户数据目录下且内容为{"locale":"zh-cn"},编码 UTF-8 无 BOM;settings.json 中的 locale 字段被忽略;必须完全退出并重启才能生效;Remote-SSH/WSL 需单独配置远程端 locale.json。

locale.json 文件必须放在用户级目录,不是 settings.json
VS Code 只读 locale.json 里的 locale 字段,settings.json 中写 "locale": "zh-cn" 完全无效——这个字段在那里被忽略。很多人反复重试失败,根源就是改错了文件。
正确路径只认用户数据目录下的 locale.json,和系统、工作区、远程环境都无关:
- Windows:
%APPDATA%\Code\User\locale.json(即C:\Users\用户名\AppData\Roaming\Code\User\locale.json) - macOS:
$HOME/Library/Application Support/Code/User/locale.json - Linux:
$HOME/.config/Code/User/locale.json
注意:有些旧资料提到 ~/.vscode/locale.json 或 ~/.vscode/locales/locale.json,这些路径在当前 VS Code(v1.90+)中不生效,属于过时写法。
文件内容必须严格为 {"locale":"zh-cn"},且编码为 UTF-8 无 BOM
文件不能有多余空格、逗号、换行或注释;不能是 {"locale": "zh-cn",},也不能是 {"locale":"zh_CN"} —— 任何偏差都会导致静默失败,界面照常英文。
常见错误值包括:zh_CN、ZH-CN、zh-hans、Chinese、zh,全部无效。唯一被识别的是小写 + 连字符的 zh-cn。
推荐用 VS Code 自己新建并保存该文件,避免记事本等工具悄悄加 BOM。操作步骤:
- 彻底退出 VS Code(检查任务管理器 / 活动监视器确认无
Code.exe或Electron进程) - 用 VS Code 打开上述路径中的
locale.json(若不存在就新建) - 输入且仅输入:
{"locale":"zh-cn"} - 按
Ctrl+S保存,确保右下角状态栏显示 “UTF-8” 而非 “UTF-8 with BOM”
改完必须彻底重启,Reload Window 不起作用
点击右下角弹出的「重新加载窗口」提示,或执行 Developer: Reload Window,都不会重读 locale.json。这是设计行为,不是 bug。
真正生效的只有「完全退出 + 全新启动」:
- Windows:任务管理器中结束所有
Code.exe进程(包括后台服务进程) - macOS:活动监视器中结束
Code Helper和Electron - Linux:运行
pkill -f "code.*--no-sandbox"或手动查杀code进程
启动后看右下角状态栏是否显示 zh-cn —— 这是最直接的验证信号。如果还是 en,说明有残留进程没杀干净。
Remote-SSH / WSL 需要单独配远程端的 locale.json
本地设好了 zh-cn,但连上 Remote-SSH 或 WSL 后界面仍是英文?因为远程实例运行的是独立的 VS Code Server,它读取的是远程机器上的 locale.json,和本地配置完全隔离。
操作位置在远程环境内:
- 先通过终端登录目标机器(如 WSL 或 SSH 主机)
- 进入 VS Code Server 的用户数据目录:
$HOME/.vscode-server/data/Machine/(后面可能带哈希子目录,找最新修改时间的那个) - 在该目录下创建或编辑
locale.json,内容仍为:{"locale":"zh-cn"} - 回到 VS Code 远程窗口,执行
Developer: Reload Window(这次 reload 是有效的,因它针对远程实例)
容易被忽略的是:远程端的 locale.json 路径和本地不同,且没有图形化命令面板可调用 Configure Display Language,必须手动编辑。


















