vscode的locale.json仅支持单一bcp 47语言值(如"zh-cn"),非多语言配置文件;安装多个语言包仅提供资源,切换需手动修改该文件并彻底重启。

locale.json只支持一个语言值,不是“支持更多语言”的配置文件
VSCode 的 locale.json 本质是单语言开关,不是多语言资源注册表。它只接受一个合法 BCP 47 语言标签(如 zh-cn、ja、fr),写多个值、数组或对象都会被忽略甚至导致加载失败。
所谓“支持更多语言”,实际是指:你装了哪些语言包 → 就能切换到哪些语言 → 但每次只能选其一。装再多包,不改 locale.json 里的 "locale" 值,界面不会变。
-
locale.json内容必须是严格 JSON 格式:{"locale":"zh-cn"},不能多逗号、不能用单引号、不能有注释 - 值必须小写、带连字符(
zh-cn✅,zh_CN❌,zh❌,Chinese❌) - 不区分大小写的写法(如
EN)可能 fallback 成功,但不稳定,官方明确推荐en
怎么让 VSCode “能切”日语、韩语、法语等非中文语言
关键不是改 locale.json 的语法,而是确保对应语言包已安装 + 路径正确 + 值合法。
命令行安装最稳,避免扩展市场误点第三方包:
- 日语:
code --install-extension ms-ceintl.vscode-language-pack-ja - 韩语:
code --install-extension ms-ceintl.vscode-language-pack-ko - 法语:
code --install-extension ms-ceintl.vscode-language-pack-fr - 德语:
code --install-extension ms-ceintl.vscode-language-pack-de
装完后,直接编辑 locale.json,把值换成对应语言码(如 "ja"),然后彻底退出 VSCode(杀后台进程),再重开。
为什么改了 locale.json 还是英文/中文没变
三个高频拦截点,90% 的“没生效”卡在这儿:
- 工作区级覆盖:项目根目录下存在
.vscode/locale.json,它的优先级高于用户级,删掉它再试 - 环境变量干扰:
VSCODE_LANG被系统或企业策略硬编码(如echo $VSCODE_LANG查看),它会强制覆盖locale.json - 没真正重启:点了
Developer: Reload Window不起作用,必须关所有窗口 + 杀 Code.exe / Electron 进程
插件开发中读取用户语言,别依赖 settings.json
如果你在写 VSCode 插件,想根据界面语言做本地化,不要去读 settings.json 或自己解析 locale.json —— 直接用 vscode.env.language。
这个 API 返回的就是当前生效的界面语言(如 zh-cn、ja),且已自动截掉区域变体(zh-Hans → zh-cn),可直接拼路径加载 i18n/${vscode.env.language}.json。
注意 fallback:当用户语言无对应翻译文件时,务必回退到 en.json,否则文案会变成 undefined。











