Yeni çeviriler yayınladınız ama uygulamanız hâlâ eskileri gösteriyor. Bu neredeyse her zaman bir önbellekleme sorunudur — işte nasıl teşhis edip çözeceğiniz.
Önbellek katmanlarını anlama
Yayınladığınızda, çeviriler kullanıcıya ulaşmadan önce birkaç önbellek katmanından geçer:
Siz yayınlarsınız
→ CDN origin güncellenir (anlık)
→ CDN edge cache temizlenir (anlık)
→ SDK bellek içi cache sona erer (60 saniyeye kadar)
→ Tarayıcı/framework cache sona erer (60 saniyeye kadar)
→ Kullanıcı yeni çevirileri görür
Çoğu kurulumda yayınlamadan kullanıcıya ulaşmaya kadar maksimum gecikme yaklaşık 60 saniyedir.
Hızlı çözümler
1. 60 saniye bekleyin ve sayfayı sıfırlayın
En basit çözüm: bir dakika bekleyin, ardından tarayıcı önbelleğini atlatmak için Cmd+Shift+R (Mac) veya Ctrl+Shift+R (Windows) tuşlarına basın.
2. CDN'nin güncel veriye sahip olduğunu doğrulayın
curl -I https://cdn.better-i18n.com/your-org/your-project/en/translations.json
Age başlığını kontrol edin — 0 veya çok düşükse CDN'nin güncel verisi vardır. x-cache-status başlığı HIT veya MISS gösterir.
3. SDK cache'ini temizleyin (geliştirme ortamı)
Geliştirme sırasında değişiklikleri hemen görmek istiyorsanız, SDK'nın TtlCache'ini geliştirme sunucunuzu yeniden başlatarak atlayabilirsiniz.
Framework'e özgü davranış
Next.js (ISR)
Next.js ISR kendi önbellek katmanını ekler. Varsayılan messagesRevalidateSeconds: 30 ile Next.js'in CDN'den yeniden fetch etmesi 30 saniyeye kadar sürebilir.
Geliştirmede anında yenileme için:
- Geliştirme sunucusunu yeniden başlatın, ya da
- ISR cache'ini atlatmak için
?_vercel_no_cache=1ekleyin
Prodüksiyonda: ISR, stale-while-revalidate temelinde çalışır. 30 saniye sonraki ilk istek arka planda yenilemeyi tetikler. Sonraki istek güncel veriyi alır.
React SPA / TanStack
SDK'nın TtlCache'i 60 saniyelik TTL'ye sahiptir. 60 saniye sonra bir sonraki render döngüsü güncel çevirileri fetch eder.
Expo / React Native
Mobil uygulamalar da 60 saniyelik TTL kullanır. Uygulamayı tamamen kapatıp yeniden açmak güncel bir fetch tetikler. Kalıcı depolama etkinleştirdiyseniz SDK, her başarılı CDN fetch'inde güncel veriyi depolamaya yazar.
Remix / Hydrogen
Loader tabanlı fetch, her sunucu isteğinin güncel veri alabilmesi anlamına gelir. SDK'nın TtlCache'i ana önbellek katmanıdır (60 saniye).
Temizleme doğrulaması
Yayınladığınızda platform otomatik olarak CDN cache'ini temizler. Temizlemenin çalışmadığından şüpheleniyorsanız (nadir):
- CDN'den çevirileri doğrudan fetch edin
- Yanıt gövdesinde yeni çeviri değerlerinizi kontrol edin
- Eski veriyse 60 saniye bekleyin (CDN
max-age: 60doğal olarak sona erecektir)
Not: CDN, hatalar sırasında bile her zaman HTTP 200 döndürmek üzere tasarlanmıştır.
{}veya{ "fallback": true }görüyorsanız, bu çevirilerin henüz yayınlanmadığı anlamına gelir (önbellek sorunu değil).
Ne zaman endişelenmelisiniz?
5 dakika sonra çeviriler hâlâ eskiyse:
- Dashboard'u kontrol edin — yayınlama gerçekten tamamlandı mı?
- CDN URL'sini
curlile doğrudan doğrulayın - Proje ID'nizin tam olarak eşleştiğini kontrol edin (büyük/küçük harf duyarlı)
- Tanı bilgisi için
better-i18n doctorçalıştırın