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:

  1. Bellek içi önbellek (TtlCache, 60s TTL)
  2. CDN fetch (zaman aşımı + yeniden deneme ile)
  3. Kalıcı depolama (yapılandırılmışsa — örn. mobilde AsyncStorage)
  4. Statik yedek veri (sağladığınız paketlenmiş çeviriler)
  5. 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 dizeler
  • auth — giriş/kayıt ile ilgili dizeler
  • dashboard — 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:

  1. Projenizin Yayın Geçmişi'ne gidin
  2. Önceki iyi yayını bulun
  3. 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:

  1. Dil yayınlanmamış — kontrol panelinde o dil için çevirilerin mevcut olup olmadığını ve yayınlandığını kontrol edin
  2. Dil normalizasyonu uyuşazlığı — CDN küçük harfli BCP 47 kullanır (pt-br), ancak uygulemanız pt-BR gönderebilir. @better-i18n/core'dan normalizeLocale() kullanın
  3. Middleware dili algılamıyor — middleware yapılandırmanızı kontrol edin ve Accept-Language başlık eşleşmesinin yapılandırıldığından emin olun
  4. 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