vs code 1.70+ 可通过命令面板执行 configure display language 直接打开正确的用户级 locale.json 文件,修改 "locale": "zh-cn" 并保存,但需完全退出后重启才生效;远程开发需单独配置对应端 locale.json。

用命令面板直接打开 locale.json(最稳路径)
VS Code 1.70+ 版本后,Configure Display Language 命令不只是选语言,它会自动定位并打开你该改的那个 locale.json 文件——也就是用户级、正确路径、UTF-8 无 BOM 编码的那一个。
操作步骤很简单:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)呼出命令面板 - 输入
Configure Display Language(注意拼写,不是Set Locale或Configure Language) - 回车后,VS Code 会直接在编辑器中打开
locale.json文件 - 把
"locale": "en"改成"locale": "zh-cn"(或"en"回退),保存即可
这个方法能避开手动找路径的麻烦,也天然规避了写错位置(比如误存到 .vscode/ 工作区目录下)或编码带 BOM 的问题。但前提是:必须彻底退出 VS Code 后再启动,否则修改不生效。
找不到 locale.json?检查是否被多路径干扰
VS Code 实际只认一个 locale.json:用户数据目录下的 User/locale.json。但你可能在多个地方留下过同名文件,导致它静默读错、或直接忽略。
常见冲突路径:
-
$HOME/.vscode/locale.json(macOS/Linux 旧版残留,优先级高于用户级,应删除) -
%APPDATA%\Code\locale.json(Windows 旧路径,不含User子目录,无效) -
~/.config/Code/locale.json(Linux 旧路径,同样不含User,删掉) -
项目根目录/.vscode/locale.json(工作区级,VS Code 不读这个)
建议统一清理:只保留且仅编辑以下路径中的文件:
Miller (mlr) 是一个命令行工具,用于查询、整形和重新格式化名称索引数据,如 CSV、TSV、JSON 和 JSON Lines。它将 awk、sed、cut、join 和 sort 的功能整合到一个专为结构化数据处理而构建的单一工具中。
- Windows:
%APPDATA%\Code\User\locale.json - macOS:
~/Library/Application Support/Code/User/locale.json - Linux:
~/.config/Code/User/locale.json
远程开发(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确认服务已启,再进~/.vscode-server/data/Machine/[哈希串]/User/locale.json - 远程端的语言包也要单独安装(通过远程端 Extensions 面板搜
Chinese (Simplified) Language Pack)
别指望本地配置自动同步过去——远程和本地是两套完全隔离的语言环境。
改完 locale.json 还是英文?重点查这三处
VS Code 对 locale.json 的解析极其严格,格式错一丁点就会静默失效,回退到英文。不是“没生效”,而是它压根没读进去。
务必核对:
- JSON 必须合法:
{"locale":"zh-cn"}是唯一可接受格式;不能有注释、不能多逗号、不能用中文引号、不能末尾空格 - 值必须小写且标准:
"zh-cn"可以,"ZH-CN"、"zh_CN"、"zh"、"zh-CN"(短横错误)都不行 - 启动方式是否覆盖了配置:比如终端里用了
code --locale=en启动,或快捷方式目标里硬编码了--locale=zh-cn,这些参数优先级高于locale.json
真正卡住人的,往往不是“怎么改”,而是改完以为成了,其实文件根本没被加载——重命名原文件为 locale.json.bak,再用 VS Code 新建一个,粘贴标准内容,能绕过绝大多数编码和格式陷阱。










