locale.json是唯一控制vscode界面语言的配置文件,必须置于用户级目录且格式严格;settings.json中locale字段已弃用,语言包安装和完全重启为生效前提。

locale.json 是唯一控制界面语言的配置文件
VSCode 1.70+ 版本起,settings.json 中的 "locale": "zh-cn" 字段已被彻底弃用,写进去也不会被读取——它会被静默忽略,不报错、不警告、不生效。真正决定菜单、侧边栏、弹窗等 UI 文字是哪种语言的,只有 locale.json 这一个文件,且必须放在用户级配置目录下(不是工作区、也不是 .vscode/ 子目录)。
常见错误包括:
- 把
{"locale":"zh-cn"}写进项目根目录的.vscode/locale.json→ VSCode 完全不认 - 在
settings.json里加了"locale"字段 → 白写,重启后仍是英文 - 文件内容含注释、多余空格、中文引号或 BOM 头 → 整个文件被跳过,回退到系统语言
settings.json 和 locale.json 完全不共享字段或逻辑
两者职责毫无交集:settings.json 控制编辑器行为(字体、自动保存、格式化等),locale.json 只干一件事:告诉 VSCode “用哪套翻译资源渲染界面”。它们甚至不共用同一套加载机制——settings.json 支持多层覆盖(用户级 / 工作区级),而 locale.json 只认用户级路径下的那个单一文件。
这意味着:
- 你不能在
settings.json里用[zh-cn]块语法做语言相关设置 → 无效 -
locale.json里写任何其他字段(比如"editor.fontSize")→ 被忽略,不会影响编辑器 - 改完
locale.json后不重启 VSCode → 界面语言不会变(Reload Window 不够,必须彻底退出再启动)
Configure Display Language 命令现在只是“辅助生成 locale.json”
该命令在 1.80+ 版本中已移除,但旧版本(如 1.79)仍存在。它的作用本质是:检查语言包是否安装 → 自动写入正确格式的 locale.json → 提示你重启。但它不直接改 UI,也不绕过文件校验逻辑。
所以如果你手动编辑过 locale.json,又去点这个命令,它会覆盖你的修改;反之,如果命令执行后没反应,大概率是它往错误路径写了文件(比如写进了当前工作区的 .vscode/locale.json),而 VSCode 只读用户级路径。
验证是否写对位置的方法:
- Windows:检查
%APPDATA%\Code\User\locale.json - macOS:检查
~/Library/Application Support/Code/User/locale.json - Linux:检查
~/.config/Code/User/locale.json
语言包安装是 locale.json 生效的前提条件
locale.json 不是万能钥匙。它只指定语言 ID,而实际翻译内容来自扩展:必须已安装对应语言包(如 Chinese (Simplified) Language Pack for Visual Studio Code,作者必须是 Microsoft),否则即使 locale.json 内容完全正确,VSCode 也会 fallback 到英文。
容易忽略的细节:
- 扩展名必须输全,不能简写为 “Chinese Language Pack” → 那是第三方非官方包,不被认可
- 企业环境可能被组策略禁用语言包安装 → 需检查 Windows 注册表
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\PreferredUILanguages - 装完包后没重启 VSCode → 新语言不会加载,因为翻译资源是在启动时载入的











