会,项目级 .vscode/locale.json 会覆盖用户级 locale.json,仅对该工作区窗口生效;优先级为工作区级 > 用户级 > 系统 fallback,文件须严格为 utf-8 无 bom 编码、小写连字符格式,且必须重启窗口才生效。

项目级 locale.json 会覆盖全局设置吗?
会,但仅限于该工作区启动的 VS Code 窗口。VS Code 的语言优先级是:工作区级 .vscode/locale.json > 用户级 locale.json > 系统 fallback。只要项目根目录下存在 .vscode/locale.json,它就会强制覆盖你用户目录下的语言设置,哪怕你全局设的是 zh-cn,这个项目也能单独切回 en。
注意:.vscode/locale.json 不是“可选增强”,而是明确的覆盖机制——VS Code 启动时会主动检查这个路径,且不校验内容是否合法(比如写错值也不会报错,只是静默 fallback 到英文)。
怎么创建有效的项目级 locale.json?
- 文件必须放在项目根目录的
.vscode/ 子目录下,完整路径是 .vscode/locale.json
- 内容只允许一行合法 JSON:
{"locale":"zh-cn"} 或 {"locale":"en"}
- 必须用 UTF-8 无 BOM 编码保存(用 VS Code 自己新建并保存最保险)
- 文件名大小写敏感:
Locale.json 或 locale.json.bak 都无效
- 不要和用户级
locale.json 混放,也别往 settings.json 里塞 "locale" 字段
.vscode/ 子目录下,完整路径是 .vscode/locale.json {"locale":"zh-cn"} 或 {"locale":"en"} Locale.json 或 locale.json.bak 都无效 locale.json 混放,也别往 settings.json 里塞 "locale" 字段 改完后,**必须关闭当前窗口并重新从该文件夹打开 VS Code**(例如终端执行 code .),否则旧窗口仍沿用上次加载的语言上下文。
为什么改了项目级 locale.json 还是没生效?
-
.vscode/locale.json 被误建在子目录(如 src/.vscode/locale.json)或远程连接的 WSL/SSH 工作区里(它们读的是远程机器上的 .vscode/locale.json,不是本地的)
- 当前 VS Code 窗口是从其他路径打开的,没绑定到该项目(右下角状态栏不显示「工作区」图标)
- 项目已启用 Remote-SSH / Dev Containers:此时 VS Code Server 读取的是远程端的
.vscode/locale.json,需登录远程机器手动编辑
- 文件里写了
"locale": "ZH-CN" 或 "locale": "zh_CN" —— 必须小写 + 连字符,VS Code 对格式极其严格
.vscode/locale.json 被误建在子目录(如 src/.vscode/locale.json)或远程连接的 WSL/SSH 工作区里(它们读的是远程机器上的 .vscode/locale.json,不是本地的) .vscode/locale.json,需登录远程机器手动编辑 "locale": "ZH-CN" 或 "locale": "zh_CN" —— 必须小写 + 连字符,VS Code 对格式极其严格 验证是否命中:打开设置页(Ctrl+,),看左上角是否显示「工作区」标签;再点右下角语言指示器,如果显示「工作区设置」,说明配置已被识别。
多人协作项目里怎么安全使用项目级 locale.json?
- 把
.vscode/locale.json 加进 .gitignore —— 它属于开发环境偏好,不该提交
- 如果团队约定统一中文界面,可在 README 里写明:“请在用户级配置
locale.json,勿在项目中覆盖”
- 若必须提交(如某插件调试强制要求英文 UI),应在文件开头加注释说明用途,避免被误删
.vscode/locale.json 加进 .gitignore —— 它属于开发环境偏好,不该提交 locale.json,勿在项目中覆盖” 真正容易被忽略的是:VS Code 不会提示你“正在使用工作区 locale”,也不会在设置页高亮它——一切静默发生,只靠右下角语言指示器和设置页顶部标签来判断当前生效层级。











