VS Code 1.70+ 仅识别用户级 locale.json 文件中严格为 {"locale":"zh-cn"} 的 UTF-8 无 BOM 格式内容,路径需按系统精确指定,远程环境需单独配置并重载窗口。

locale.json 文件内容必须严格为 {"locale":"zh-cn"}
这个文件不是“可配置项”,而是唯一生效的硬编码开关。VS Code 1.70+ 版本已完全弃用 settings.json 中的 "locale" 字段,只认 locale.json 里这一行合法 JSON。任何变体都会静默失败:
-
zh_CN、ZH-CN、zh-hans、Chinese—— 全无效 - 多一个空格:
{"locale": "zh-cn"}(引号后有空格)→ 不生效 - 多一个逗号:
{"locale":"zh-cn",}→ JSON 解析失败,回退英文 - 带注释:
{"locale":"zh-cn"} // 简体中文→ 非法 JSON,忽略
路径必须精准对应操作系统用户数据目录
写对路径比写对内容还容易出错。VS Code 只读取**用户级**(不是工作区、不是系统级)的 locale.json,且路径大小写敏感、不能拼错:
- Windows:
%APPDATA%\Code\User\locale.json(不是%USERPROFILE%\AppData\Roaming\Code\User\的别名路径,虽然等价,但部分工具会解析失败) - macOS:
~/Library/Application Support/Code/User/locale.json(注意Application Support是两个单词,空格不能省) - Linux:
~/.config/Code/User/locale.json(.config是隐藏目录,ls -a才能看见)
常见错误:把文件放到项目根目录下的 .vscode/locale.json,或误存为 locale.js、local.json、Locale.json —— 这些全不被识别。
编码必须是 UTF-8 无 BOM,保存方式决定成败
哪怕内容和路径都对,若文件带 BOM(字节顺序标记),VS Code 会拒绝解析并静默 fallback 到英文。记事本默认保存为 UTF-8 with BOM,这是 Windows 用户最常踩的坑:
- 用 VS Code 自己新建文件 → 直接输入
{"locale":"zh-cn"}→ Ctrl+S 保存时,右下角点击编码(如显示 UTF-8-BOM)→ 选「Save with Encoding」→ 选「UTF-8」 - 命令行生成更稳:
echo '{"locale":"zh-cn"}' > ~/.config/Code/User/locale.json(Linux/macOS) - 不要用 Notepad++ 或 Sublime Text 默认保存,除非手动确认编码为 UTF-8 无 BOM
Remote-SSH / WSL 下 locale.json 是独立实例配置
你在本地配好了 locale.json,连上远程机器后界面仍是英文?这不是配置错了,而是 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(路径含哈希后缀) - 远程端的语言包也得单独安装,本地插件不会同步过去
最常被忽略的一点:改完远程的 locale.json 后,必须在远程窗口中执行 Developer: Reload Window,而不是只 reload 本地窗口。


















