Sıkça Sorulan Sorular
Sık sorulan soruların cevaplarını bulun
Başlangıç
Çevirileri yayınladıktan sonra uygulamayı yeniden derlemem gerekiyor mu?
Hayır. Better i18n, çevirileri çalışma zamanında küresel bir CDN aracılığıyla sunar. Yayınladığınızda, çeviriler herhangi bir yeniden derleme veya yeniden dağıtım olmaksızın ~60 saniye içinde uygulamanızda kullanılabilir hale gelir. SDK, yeni çevirileri otomatik olarak getirir.
CDN çevrimdışı olursa ne olur?
CDN, her zaman HTTP 200 döndürecek şekilde tasarlanmıştır — hatalar sırasında bile uygulamanız bir başarısızlık yerine {} veya { "fallback": true } alır.
SDK'nın 5 katmanlı yedek zinciri vardır:
- Bellek içi önbellek (TtlCache, 60s TTL)
- CDN fetch (zaman aşımı + yeniden deneme ile)
- Kalıcı depolama (yapılandırılmışsa — örn. mobilde AsyncStorage)
- Statik yedek veri (sağladığınız paketlenmiş çeviriler)
- Hata (yalnızca tüm katmanlar başarısız olursa)
Uygulamada, önbelleğe alınmış veya statik veriler her zaman mevcut olduğundan kullanıcılar neredeyse hiç hatayla karşılaşmaz.
Ücretsiz bir plan var mı?
Evet! Better i18n, şunları içeren bir ücretsiz katman sunar:
- 1 proje
- Sınırsız çeviri anahtarı
- Yapay zeka çeviri kredileri
- CDN dağıtımı
- CLI erişimi
Ücretli planlar daha fazla proje, ekip üyesi, gelişmiş özellikler ve daha yüksek kullanım limitleri ekler. Güncel ayrıntılar için fiyatlandırma sayfasını ziyaret edin.
Better i18n, sağdan sola dilleri destekliyor mu?
Better i18n bir dize dağıtım platformudur — metin yönünden bağımsız olarak çeviri dizelerini depolar ve iletir. Arapça, İbranice ve Farsça gibi sağdan sola diller tam olarak desteklenen çeviri hedefleridir.
Bununla birlikte, RTL düzeni ve CSS (örn. direction: rtl, yansıtılmış arayüz) uygulamanızın sorumluluğundadır. SDK doğru çevrilmiş dizeleri iletir; görsel yönü CSS çerçeveniz yönetir.
Çevirileri Yönetme
Yapay zeka çevirisi ne kadar sürer?
Yapay zeka çeviri hızı hacme bağlıdır:
| Anahtar sayısı | Yaklaşık süre |
|---|---|
| 1–50 | Birkaç saniye |
| 50–500 | 1 dakikadan az |
| 500–1000 | 1–3 dakika |
| 1000+ | 3–5 dakika |
Çeviri paralel gruplar halinde çalışır, bu nedenle iyi ölçeklenir. Çeviri devam ederken kontrol panelinde çalışmaya devam edebilirsiniz.
Yapay zeka yerine insan çevirmen kullanabilir miyim?
Kesinlikle. Şunları yapabilirsiniz:
- Çevirmen davet etme — Translator rolüyle odaklanmış bir çeviri arayüzüne erişim sağlar
- İnceleme kuyruğunu kullanma — çevirmenler çevirileri inceleyebilir, düzenleyebilir ve onaylayabilir
- Yapay zeka + insan kombinasyonu — ilk geçiş için yapay zekayı kullanın, ardından insan çevirmenler inceleyip iyileştirsin
Translator rolü yalnızca çeviri düzenlemeye erişime sahiptir, proje ayarlarına veya anahtar yönetimine değil.
Namespace nedir?
Namespace, çeviri anahtarlarının mantıksal bir gruplandırmasıdır. Örneğin:
common— "Kaydet", "İptal", "Yükleniyor" gibi paylaşılan dizelerauth— giriş/kayıt ile ilgili dizelerdashboard— kontrol paneline özel dizeler
Namespace'ler lazy loading sağlar — uygulamanız yalnızca geçerli sayfada ihtiyaç duyduğu çevirileri getirir. Ayrıca büyük projelerde anahtarları düzenlemeye ve çakışmaları azaltmaya yardımcı olurlar.
Kodda namespace'lere şöyle başvurursunuz: t('common:save_button') veya useTranslations('common').
Çeviriler geri alınabilir mi?
Evet. Her yayın, çevirilerinizin bir anlık görüntüsünü oluşturur. Bir şeyler yanlış giderse:
- Projenizin Yayın Geçmişi'ne gidin
- Önceki iyi yayını bulun
- Geri Al'a tıklayın
Bu, CDN'yi seçilen anlık görüntüye geri yükler. Uygulamanız geri alınan çevirileri ~60 saniye içinde sunar.
Geliştirici Entegrasyonu
Tekil örnek mi yoksa birden fazla SDK örneği mi kullanmalıyım?
Her zaman tekil örnek kullanın — modül kapsamında bir SDK örneği oluşturun ve her yerde yeniden kullanın.
SDK'nın TtlCache'i, aynı işlemdeki tüm createI18nCore() örnekleri arasında paylaşılan bir modül düzeyinde global'dir. Birden fazla örnek oluşturmak verimsizdir ancak zararlı değildir — aynı önbelleği paylaşırlar.
// ✅ İyi — modül düzeyinde tekil örnek
export const i18n = createI18n({ project: 'acme/dashboard', ... });
// ❌ Kaçının — bir bileşen/handler içinde oluşturmak
function handler() {
const i18n = createI18n({ ... }); // Her istek için yeni örnek
}
org/project formatı nedir?
Proje tanımlayıcısı, acme/dashboard gibi org/project biçimini kullanır. Bu, doğrudan CDN URL'siyle eşleşir:
https://cdn.better-i18n.com/acme/dashboard/manifest.json
https://cdn.better-i18n.com/acme/dashboard/en/translations.json
- org — kuruluş slug'ınız (kayıt sırasında belirlenir)
- project — proje slug'ı (proje oluşturulurken belirlenir)
Bu format her yerde kullanılır: SDK yapılandırması, CLI yapılandırması, API çağrıları ve CDN URL'leri. Büyük/küçük harfe duyarlıdır.
SDK edge runtime'larda çalışıyor mu?
Evet. SDK yalnızca standart Fetch API'sini kullanır — herhangi bir Node.js yerleşik (fs, path, crypto vb.) gerekmez. Bu şu platformlarda çalışabildiği anlamına gelir:
- Cloudflare Workers
- Vercel Edge Functions
- Deno Deploy
- Bun
- Web Standartlarıyla uyumlu tüm runtime'lar
Tek gereksinim, global bir fetch fonksiyonudur. Gerekirse fetch yapılandırma seçeneği aracılığıyla özel bir fetch de geçirebilirsiniz.
CLI ile SDK arasındaki fark nedir?
Farklı amaçlara hizmet ederler:
CLI (@better-i18n/cli) |
SDK (@better-i18n/next, vb.) |
|
|---|---|---|
| Ne zaman | Geliştirme zamanı | Çalışma zamanı |
| Amaç | Kodu tara, anahtarları senkronize et, durumu kontrol et | Çevirileri getir ve göster |
| Çalıştığı yer | Makineniz / CI | Uygulamanız (tarayıcı, sunucu, mobil) |
| Kimlik doğrulama | Gizli anahtar (sk_...) |
Genel anahtar veya yok |
| Kurulum | Global veya devDependency | Dependency |
CLI çeviri anahtarlarınızı yönetir. SDK ise onları kullanıcılara sunar.
Sorun Giderme ve Sık Karşılaşılan Sorunlar
CDN'nin sağlıklı olup olmadığını nasıl kontrol edebilirim?
CDN sağlığını doğrulamak için çevirilerinizi doğrudan getirin:
# Manifesti kontrol et
curl -w '\nHTTP %{http_code} | Time: %{time_total}s\n' \
https://cdn.better-i18n.com/your-org/your-project/manifest.json
# Çevirileri kontrol et
curl -w '\nHTTP %{http_code} | Time: %{time_total}s\n' \
https://cdn.better-i18n.com/your-org/your-project/en/translations.json
CDN her zaman HTTP 200 döndürür. Yanıt gövdesini kontrol edin:
- Çevirilerinizle birlikte geçerli JSON → CDN sağlıklı
{}veya{ "fallback": true }→ çeviriler henüz yayınlanmamış- Yanıt süresi > 1s → olası ağ sorunu (tüm <100ms)
Uygulamanım neden kullanıcının dilini değil, yedek dili gösteriyor?
Dört yaygın neden:
- Dil yayınlanmamış — kontrol panelinde o dil için çevirilerin mevcut olup olmadığını ve yayınlandığını kontrol edin
- Dil normalizasyonu uyuşazlığı — CDN küçük harfli BCP 47 kullanır (
pt-br), ancak uygulemanızpt-BRgönderebilir.@better-i18n/core'dannormalizeLocale()kullanın - Middleware dili algılamıyor — middleware yapılandırmanızı kontrol edin ve
Accept-Languagebaşlık eşleşmesinin yapılandırıldığından emin olun - Dil manifest'te eksik — CDN manifesti mevcut dilleri listeler. Diliniz orada yoksa SDK varsayılan dile geri döner
Manifesti kontrol ederek doğrulama yapın:
curl https://cdn.better-i18n.com/your-org/your-project/manifest.json
Yanıt, yayınlanan tüm dilleri listeleyen bir diziye sahip olmalıdır.
Yapay Zekâ ve Otomasyon
Yapay zeka çevirisi prodüksiyon için yeterince doğru mu?
Çoğu içerik için evet. Yapay zeka çeviri kalitesi birkaç faktöre bağlıdır:
- Bağlam — bağlam açıklamalarına sahip anahtarlar çok daha iyi çevrilir
- Sözlük — tutarlı terminoloji uygulamak en yaygın hataları ortadan kaldırır
- İçerik türü — UI dizeleri, etiketler ve kısa açıklamalar çok iyi çevrilir. Pazarlama metinleri ve yaratıcı içerik insan incelemesi gerektirebilir
Önerilen yaklaşım: ilk geçiş için yapay zekayı kullanın, ardından kritik kullanıcıya yönelik içerikleri ana dili konuşan kişilere inceletin. İnceleme kuyruğu bu iş akışını kolaylaştırır.
Çeviri için hangi yapay zeka modelleri kullanılıyor?
Better i18n, çeviri kalitesi için optimize edilmiş bir dizi büyük dil modeli kombinasyonu kullanır. Platform, içerik türüne ve dil çiftine göre otomatik olarak en iyi modeli seçer.
Modelleri seçmeniz veya yapılandırmanız gerekmez — platform bunu sizin için halleder. Model seçimi, çeviri kalitesi ölçütlerine göre sürekli olarak iyileştirilir.
MCP sunucusuyla hangi yapay zeka kodlama ajanları çalışır?
MCP uyumlu herhangi bir ajan, Better i18n MCP sunucusuyla çalışır. Bunlar arasında:
- Claude Code (CLI) — tam destek
- Claude Desktop — tam destek
- Cursor — MCP ayarları aracılığıyla
- Windsurf — MCP ayarları aracılığıyla
- Continue — MCP yapılandırması aracılığıyla
- Özel ajanlar — MCP SDK ile oluşturulan her şey
MCP sunucusu, çeviri anahtarlarını, çevirileri, yayınlamayı ve içerik yönetimini yönetmek için araçlar sunar. Ajan bu araçları doğal dil komutları aracılığıyla çağırır.
İçerik Yönetimi
Çeviri anahtarları ile Content SDK arasındaki fark nedir?
Farklı kullanım durumlarına hizmet ederler:
| Çeviri anahtarları | Content SDK | |
|---|---|---|
| İçin | Kısa UI dizeleri | Yapılandırılmış zengin içerik |
| Örnekler | Düğme etiketleri, hata mesajları, sayfa başlıkları | Blog yazıları, değişiklik günlüleri, yardım makaleleri |
| Format | Anahtar-değer çiftleri | Yazılmış alanlarla içerik modelleri |
| Düzenleme | Pano çeviri editörü | Pano içerik editörü (Markdown) |
| Dağıtım | SDK aracılığıyla CDN | @better-i18n/sdk aracılığıyla Content API |
UI metni için çeviri anahtarlarını kullanın. Başlık, gövde, meta veri ve ilişkilere sahip yapılandırılmış içerik için Content SDK'yı kullanın.
Content SDK'da hız sınırları var mı?
Evet, hız sınırları plan katmanınıza bağlıdır. API standart hız sınırı başlıklarını döndürür:
X-RateLimit-Limit— pencere başına izin verilen istek sayısıX-RateLimit-Remaining— kalan istek sayısıX-RateLimit-Reset— pencerenin yenilendiği zaman (Unix zaman damgası)
Limiti aşarsanız API, HTTP 429 döndürür. SDK, hız sınırlarında otomatik yeniden deneme yapmaz — çok fazla istek yapan uygulamalarda bunu kendiniz yönetin.
Çoğu uygulama için hız sınırları yeterince cömerttir. Sunucu tarafı önbelleğimi (yardım merkezi uygulamasında kullanıldığı gibi) API çağrılarını daha da azaltır.
Takım ve Hesap
Kaç projem olabilir?
Proje sayısı plan katmanınıza bağlıdır:
- Ücretsiz — 1 proje
- Pro — birden fazla proje (geçerli limit için fiyatlandırma sayfasına bakın)
- Kurumsal — sınırsız proje
Her proje kendi anahtarları, dilleri, ekip üyeleri ve yayın geçmişiyle tamamen bağımsızdır. Güncel ayrıntılar için fiyatlandırma sayfasını ziyaret edin.
Çevirmenler organizasyonumdaki tüm projeleri görebilir mi?
Hayır. Ekip üyeleri proje bazında atanmaktadır. "Proje A"ya davet edilen bir çevirmen, açıkça eklenmediği sürece "Proje B"yi göremez.
Bu sayede:
- Dış çevirmenleri diğerlerini ifade etmeden belirli projelere davet edebilirsiniz
- Farklı projelere farklı çevirmenler atayabilirsiniz
- Organizasyonunuz genelinde erişimi ayrıntılı olarak yönetebilirsiniz