VS Code 只信任自己生成的 locale.json,手动创建或编辑该文件大概率被忽略;必须通过 Configure Display Language 命令触发生成,并确认文件存在、内容为{"locale":"zh-cn"}、修改时间匹配且权限正常。

检查 locale.json 是否由 VS Code 自己写入
VS Code 只信任自己生成的 locale.json,手动创建或编辑该文件大概率被忽略。即使内容看起来正确({"locale":"zh-cn"}),若文件权限异常、路径错误或非 VS Code 进程写入,重启后仍 fallback 到英文。
验证方法:
- 打开命令面板(
Ctrl+Shift+P),运行Configure Display Language→ 选zh-cn→ 点 Restart - 重启后立刻检查文件:
$HOME/.config/Code/User/locale.json(Linux)、$HOME/Library/Application Support/Code/User/locale.json(macOS)、%APPDATA%\Code\User\locale.json(Windows) - 确认该文件存在、内容为
{"locale":"zh-cn"}、且修改时间与你点击 Restart 的时间接近 - 终端执行
ls -l locale.json(Linux/macOS)或属性查看(Windows),确保当前用户有读写权限
排查工作区或远程配置覆盖 locale
工作区级 .vscode/settings.json 或远程开发容器中的 locale 字段会强制覆盖全局设置,导致本地生效但一进项目就变英文。
快速定位:
- 关闭当前文件夹(
File > Close Folder),再运行Configure Display Language并重启——如果此时界面变中文,说明是工作区配置干扰 - 打开
Preferences: Open Workspace Settings (JSON),搜索"locale",删除或注释掉相关行 - 使用 SSH 或 Dev Container 时,远程端也有独立的
locale.json,需在远程环境中单独执行一次Configure Display Language - 启动时加参数验证:
code --log trace,在输出面板的Log (Window)中搜索--locale=,看最终生效的是哪个值
确认插件启用状态与右下角语言提示
插件未启用、加载失败或被其他语言包冲突时,VS Code 不会静默失败,而是在右下角显示语言提示条(如 “Language: English”),点击它可跳转到语言切换入口。
操作要点:
- 打开扩展视图(
Ctrl+Shift+X),搜索Chinese (Simplified),确认状态为 已启用(不是灰色“已禁用”,也不是带警告三角) - 插件 ID 必须是
MS-CEINTL.vscode-language-pack-zh-hans,第三方汉化包不兼容新版本 - 右下角提示条若显示 “Language: English”,说明 locale 配置未生效或插件资源未加载;若显示 “Language: Chinese (Simplified)”,但界面仍是英文,基本可判定是缓存或字体链问题
- 禁用所有非必要插件后重启,排除扩展冲突(尤其某些 AI 工具插件会注入自定义 UI 层并绕过 locale 控制)
中文字体渲染是否真正生效
界面变成中文 ≠ 中文显示正常。常见现象:菜单字重不一、注释右侧被裁切、光标停在字中间、标点符号模糊——这说明字体链失效,VS Code 没用上支持中文的字体。
验证与修复:
- 写一行中文注释,比如
// 测试中文,观察每个字宽度是否一致、边缘是否清晰 - 右键选中任意中文 → “检查元素”(DevTools),在 Styles 面板中找到
font-family值,对照你settings.json里设置的字体链(如"editor.fontFamily": "'Microsoft YaHei', 'PingFang SC', 'sans-serif'")逐项比对 - 若最终生效的是
monospace或某个无中文支持的字体,说明链中前几项系统未安装或名称拼写错误(注意引号、空格、中英文括号) - Linux 用户特别注意:部分发行版默认不带
fonts-wqy-zenhei或noto-cjk,需手动安装
最易被忽略的一点:locale.json 生效后,VS Code 会缓存 UI 资源;即使配置全对,旧窗口也可能残留英文菜单。务必关掉所有 VS Code 进程(包括后台服务),再全新启动,而不是仅关闭窗口后双击图标重开。


















