VS Code 1.70+ 已彻底移除对 settings.json 中 "locale" 字段的支持,该字段被静默忽略;必须通过 Configure Display Language 命令生成或手动创建严格符合路径、名称、内容({"locale":"zh-cn"})、编码(UTF-8 无 BOM)的用户级 locale.json 文件,并彻底退出进程后重启才生效。

必须手动创建或编辑 locale.json 文件,内容为 {"locale":"zh-cn"},并彻底退出 VS Code 进程后重启,否则不生效。
为什么改 settings.json 里的 "locale" 没用
VS Code 1.70+ 版本已完全移除对 settings.json 中 "locale" 字段的支持。它不会报错,也不会读取——写进去等于没写。这个字段现在只被忽略,不是“暂时不生效”,是根本不存在于配置解析逻辑中。
- 所有在
settings.json里加"locale": "zh-cn"的尝试,都会静默失败 - 命令面板中的
Configure Display Language命令(如果可用)也只操作locale.json,不碰settings.json - 工作区级的
.vscode/settings.json更无效:界面语言根本不读工作区配置
locale.json 的路径和格式必须严格匹配
文件位置、名称、内容、编码,四者错一不可。VS Code 静默跳过任何不合规的 locale.json,直接回退英文。
- Windows 路径:
%APPDATA%\Code\User\locale.json(注意不是%USERPROFILE%\AppData\Roaming\Code\User的别名路径,%APPDATA%是等效且更可靠写法) - macOS 路径:
~/Library/Application Support/Code/User/locale.json - Linux 路径:
~/.config/Code/User/locale.json - 文件名必须是
locale.json(大小写敏感,不能是Locale.json或locale.txt) - 内容只能是严格的一行 JSON:
{"locale":"zh-cn"}(双引号、小写、短横线、无空格、无逗号、无注释) - 编码必须是 UTF-8 无 BOM;用 VS Code 自己新建并保存该文件,能天然避免 BOM 问题
改完不生效?先确认进程是否真正退出
VS Code 只在**进程启动时读取一次 locale.json**。后台进程残留会导致新配置完全不加载,连右下角语言状态栏都不会变。
- Windows:打开任务管理器,结束所有
Code.exe进程(包括后台服务类进程) - macOS:活动监视器中搜索并强制退出
Electron和Code Helper - Linux:运行
pkill -f "Code Helper\|Electron"或killall code - 重启后,右下角状态栏会显示当前语言代码(如
zh-cn),点击它可快速验证或切换
Remote-SSH / WSL 下中文不生效怎么办
本地配好了,远程连接后仍是英文?这不是同步失败,而是 Remote-SSH 和 WSL 启动的是另一个独立的 VS Code Server 实例,它读取的是远程机器上的配置。
- Remote-SSH 连接后,按
Ctrl+Shift+P运行Developer: Open User Data Folder,进User/目录编辑locale.json - WSL 中,先执行
code --list-extensions确认 Server 已启动,再进入类似~/.vscode-server/data/Machine/xxxxxx/User/locale.json的路径(哈希后缀会变) - 远程端的语言包也必须单独安装:在远程窗口的扩展面板中搜
Chinese (Simplified) Language Pack并安装
真正容易被忽略的是:终端、调试控制台、Git 输出、部分插件界面默认不随 locale.json 变——它们走各自的语言环境逻辑,不是汉化失败。盯住顶部菜单栏、左侧活动栏 hover 文字、设置里搜 locale 看值是否为 zh-cn,这三处对了,就是真生效。


















