VS Code 1.70+ 版本中 locale.json 是唯一生效路径,settings.json 的 "locale" 字段已被弃用;文件必须严格位于用户级目录、内容为 {"locale":"zh-cn"}(小写连字符、无空格无注释无BOM),且 Remote-SSH/WSL 需单独配置。

locale.json 是唯一生效路径,settings.json 里写 locale 没用
VS Code 从 1.70 版本起就废弃了 settings.json 中的 "locale" 字段。你在 settings.json 里加 "locale": "zh-cn" 或任何变体,VS Code 都不会读取,也不会报错——它直接忽略。界面语言只认独立的 locale.json 文件,且必须放在用户数据目录下的 User/ 子目录中。
常见误操作包括:把文件放到项目根目录的 .vscode/ 下、改名成 locale.txt 或 local.json、或者误存为 UTF-8 with BOM(Windows 记事本默认行为)。这些都会导致静默失败,界面照旧英文。
文件内容必须严格是 {"locale":"zh-cn"},大小写和连字符都不能错
zh-cn 是唯一被接受的值,其他所有写法都无效:
-
zh_CN、ZH-CN、zh-hans、Chinese、zh—— 全部不生效 - 多一个空格:
{"locale": "zh-cn"}(冒号后有空格)也不行 - 多一个逗号:
{"locale":"zh-cn",}会解析失败 - 带注释或换行:
{/* comment */"locale":"zh-cn"}直接被跳过
最稳妥的做法是:用 VS Code 自己新建该文件,只输入一行 {"locale":"zh-cn"},保存时确认编码为 UTF-8 无 BOM(VS Code 默认就是)。
路径必须精准,Remote-SSH / WSL 要单独配
本地配好了 locale.json,但 Remote-SSH 连上去还是英文?这不是配置错了,而是远程实例完全不读本地文件。每个环境都有自己的用户数据目录:
- 本地 Windows:
%APPDATA%\Code\User\locale.json - 本地 macOS:
$HOME/Library/Application Support/Code/User/locale.json - 本地 Linux:
$HOME/.config/Code/User/locale.json - Remote-SSH / WSL:
~/.vscode-server/data/Machine/[hash]/User/locale.json(需先连接再用Developer: Open User Data Folder定位)
远程端的语言包也得单独安装——本地装的插件不会同步过去。执行 code --list-extensions 确认 ms-ceintl.vscode-language-pack-zh-hans 已在远程列出。
重启不是 Reload Window,必须杀干净所有进程
点 “Reload Window” 只重载前端 UI,不重建语言上下文;界面语言切换必须彻底退出再启动。没关干净的后台进程会导致新配置不加载:
- Windows:打开任务管理器,结束所有
Code.exe和Code Helper.exe - macOS:Activity Monitor 中搜索
Electron和Code Helper,全部强制退出 - Linux:
pkill -f "code.*--no-sandbox"或手动查杀code相关进程
重启后右下角状态栏仍显示 en?说明还有残留进程在跑。这是中文不生效最常被忽略的一环。


















