Failed to load locale zh-cn 是缓存未刷新导致资源加载中断,需彻底退出VSCode并删除CachedData等四类缓存目录,而非仅清空内容或重装语言包。

Failed to load locale zh-cn 是缓存没刷干净
这个错误不是语言包坏了,而是 VSCode 旧缓存还拿着过期路径找中文资源,加载中断后静默回退到英文。它不报红框,但控制台刷满日志,界面也不生效。
- 必须关掉所有 VSCode 实例(Windows 看任务管理器有没有残留
Code.exe,macOS 查活动监视器里的Electron进程) - 删整个
CachedData文件夹,不是里面的内容:Windows 是%APPDATA%\Code\CachedData,macOS 是~/Library/Application Support/Code/CachedData,Linux 是~/.config/Code/CachedData - 重启后 VSCode 会自动重建缓存并重试加载——别手动复制文件、别改权限、别只删子目录,删整夹最稳
启动卡在空白页或闪退,先看 workspaceStorage 和 globalStorage
这两个目录存的是工作区快照和扩展持久化数据,一旦损坏,VSCode 加载时容易卡死或报 EBUSY: resource busy or locked,尤其在公司装了定制杀软的机器上高频出现。
- 它们和
settings.json在同一级:User/workspaceStorage和User/globalStorage - 直接重命名成
workspaceStorage.bak和globalStorage.bak,重启即可,VSCode 下次会新建干净目录 - 别碰
User里其他东西——settings.json、登录 token、快捷键全在里面,误删等于重配全部偏好
code --disable-extensions 能过,但清完缓存还是卡?查 Cache 和 GPUCache
很多人只清 CachedData,漏掉另外三个关键缓存点,导致问题反复。HTTP 请求缓存、语法元数据、GPU 渲染缓存、主程序二进制缓存,四者缺一不可。
- Windows 全路径:
%APPDATA%\Code\Cache(HTTP)、%APPDATA%\Code\CachedData(语法)、%APPDATA%\Code\GPUCache(渲染)、%LOCALAPPDATA%\Programs\Microsoft VS Code\Cache(主程序) - macOS/Linux 类似,只是路径前缀不同;
Cache和GPUCache不在User目录下,容易被忽略 - 删完不用重启系统,但必须彻底退出 VSCode 再开——托盘进程不关,缓存可能被锁住
LANG=C 导致中文包不加载,不是缓存问题但常被误判
在 WSL、远程 SSH 或某些 Linux 桌面环境里,终端启动 VSCode(比如执行 code .)时若继承了 LANG=C,VSCode 会直接走 C locale 回退逻辑,无视 displayLanguage 设置,界面乱码、插件崩溃都可能发生。
- 终端运行
env | grep -i "lang\|lc_",确认是否输出LANG=C或LC_ALL=C - 临时修复:
export LANG=zh_CN.UTF-8 && code .(Linux)或export LANG=zh-Hans-CN && code .(macOS) - 永久修复加到
~/.bashrc或~/.zshrc,但别覆盖PATH,也别影响其他 CLI 工具
缓存冲突的复杂点在于:它不像语法错误那样有明确提示,而是在多个目录间隐性耦合。删错一个、漏掉一个、没关干净进程,都会让问题“看起来修好了,其实还在”。真正干净的清理,是四个缓存点同步动作 + 进程彻底退出 + 不依赖任何环境变量干扰。











