locale.json 仅汉化 vscode 核心 ui,右键菜单、终端标题、gitlens 按钮等由扩展或 electron 渲染,需对应插件或系统环境变量配置。

locale.json 配置正确 ≠ 全界面汉化完成——它只管 VSCode 核心 UI,右键、终端标题、扩展按钮等压根不读这个文件。
locale.json 文件必须存在且格式严格
VSCode 1.70+ 版本后,locale.json 是唯一被识别的语言配置入口,settings.json 里的 "locale" 字段在旧版无效(1.80+ 才支持,且优先级更高)。常见失效原因不是没装插件,而是文件根本没写对:
- 路径必须精准:
%APPDATA%\Code\User\locale.json(Windows)、~/Library/Application Support/Code/User/locale.json(macOS)、~/.config/Code/User/locale.json(Linux) - 内容只能是合法 JSON 单行:
{"locale":"zh-cn"}——注意:双引号、小写、连字符、无空格、无 BOM、无注释 - 手动生成时别用记事本默认编码(会加 BOM),推荐用 VS Code 自身保存为 UTF-8 无 BOM
- 文件存在但值为
"en"或空,VSCode 会静默 fallback 英文,右下角状态栏显示en就是铁证
Configure Display Language 命令执行后仍无效?绕过它直接改文件
命令面板里搜 Configure Display Language 后选 zh-cn,再点弹窗里的 Restart 按钮——这是标准流程。但若卡住、列表为空、或重启后仍是英文,说明底层写入失败,常见于:
- 权限问题:Windows 下曾用管理员运行过 VSCode,导致用户目录被锁;macOS/Linux 下
locale.json所有者错乱(如用sudo code创建过) - 缓存污染:UI 资源加载时卡在旧翻译表,
locale.json写对了也白搭 - 插件未真正安装:扩展列表里找不到
ms-ceintl.vscode-language-pack-zh-hans(发布者必须是 Microsoft)
此时最稳做法是:关闭所有 VSCode 进程 → 直接用 VS Code 打开对应路径的 locale.json → 清空内容 → 粘贴 {"locale":"zh-cn"} → 保存 → 完全退出再重开。
哪些地方注定不会被 locale.json 汉化?别白费劲
右键菜单、终端标签页文字(Terminal)、GitLens 的按钮、调试控制台顶部标题、WebView 面板里的文本……这些模块由 Electron 底层或扩展自身渲染,locale.json 对它们完全不可见。这不是配置错误,而是架构限制:
- 右键菜单补全靠
shengchen.vscode-chinese-menu插件,装完需重新打开右键才能刷新缓存 - GitLens 中文需在
settings.json单独加"gitlens.language": "zh-cn" - 集成终端标题栏和调试控制台语言取决于系统
LANG环境变量,VSCode 无法接管;想让node报错变中文,得设export LANG=zh_CN.UTF-8(Linux/macOS)或改系统区域格式(Windows)
更新后汉化又变英文?把 locale 锁进 settings.json 更可靠
VSCode 自动更新可能覆盖 locale.json,尤其后台静默升级时。虽然官方推荐用 locale.json,但 1.80+ 版本已支持在用户级 settings.json 里写 "locale": "zh-cn",且该字段优先级高于 locale.json,还不易被覆盖:
- 打开 VSCode 设置(
Ctrl+,),切换到 JSON 编辑模式(右上角图标) - 在大括号内添加一行:
"locale": "zh-cn",确保逗号分隔正确 - 保存后执行
Developer: Reload Window即可立即生效,无需完全重启 - 配合 Settings Sync 使用时,这个字段会被同步,而
locale.json默认不参与同步
真正难补的不是菜单漏字,而是那些嵌在 WebView、自定义 Editor 或 LSP 响应里的动态文本——它们走的是网页渲染或服务端协议,locale.json 和插件都管不到。











