locale.json 不需常规备份,因其仅为固定值的语言开关文件,备份易致跨设备冲突;恢复应删文件、清缓存、彻底退出 vscode。

locale.json 不需要“备份”,只应在必要时创建或删除;误操作后恢复的关键是删文件、清缓存、彻底退出 VSCode。
为什么 locale.json 不能像 settings.json 那样常规备份
locale.json 是一个纯控制文件,内容固定且极简:只有 {"locale":"en"} 或 {"locale":"zh-CN"} 两种合法值。它不记录状态、不随版本演进、也不含用户行为数据。一旦你把它加进 Git 或压缩包长期存档,反而容易在跨设备恢复时引发冲突——比如 macOS 上删了它显示英文,Windows 上却因残留文件继续中文,或新版本因大小写(zh-cn vs zh-CN)直接忽略。
- 它不是配置“快照”,而是语言开关的硬开关
- VSCode 启动时优先读取它;不存在时自动 fallback 到系统语言(但默认行为是英文)
- 备份它等于备份一个可能过期的开关状态,而非可复用的配置资产
locale.json 恢复失败的三个高频原因
改完 locale.json 还是中文/英文不变,90% 是被更高优先级来源覆盖,而不是文件本身没生效:
- 启动参数带
--locale=zh-CN:检查快捷方式目标、shell alias(如alias code='code --locale=zh-CN')、或 Remote-SSH 的远程启动命令 - 工作区
.vscode/settings.json里写了"locale": "zh-CN":这个设置会压倒用户级locale.json,必须手动删或注释 - Remote-SSH 场景下只改本地,没改远程机器上的
~/Library/Application Support/Code/User/locale.json(macOS)或对应路径:远端服务进程独立加载自己的 locale 配置
真正该备份的是它的“依赖项”,不是它自己
locale.json 单独存在毫无意义。它要起效,得配合以下三项同时就位:
- 对应的语言包扩展已安装:
ms-ceintl.vscode-language-pack-zh-hans(中文)或ms-ceintl.vscode-language-pack-en-us(英文,通常自带) -
settings.json中无冲突项:尤其避免"locale"字段出现在用户或工作区设置里(它已被弃用,且与locale.json行为不一致) - VSCode 完全退出:macOS 要右键托盘图标选「Quit」,Windows 要任务栏右键选「Exit」,Linux 要 kill 所有
code进程;仅关窗口无效,文件仍被锁住
删 locale.json 比编辑它更安全
编辑 locale.json 容易因格式错误失效:一个中文引号、末尾空格、多逗号,VSCode 就静默跳过整份文件,继续用旧缓存(可能是上次的中文)。最稳做法是直接删掉它:
- Windows:
del %APPDATA%\Code\User\locale.json - macOS:
rm ~/Library/Application\ Support/Code/User/locale.json - Linux:
rm ~/.config/Code/User/locale.json
删完重启,界面立刻回退到 VSCode 默认英文——这才是最干净的起点。后续如需中文,再装语言包 + 新建合法 locale.json,比修一个半死不活的文件省心得多。











