Mühendislik//9 dk okuma

Çeviri Otomasyon Araçları: Yerelleştirme için Webhooks, API ve CI/CD Entegrasyonu

Eray Gündoğmuş
Paylaş

Çeviri Otomasyon Araçları: Yerelleştirme için Webhooks, API ve CI/CD Entegrasyonu

Temel Çıkarımlar

  • Çeviri otomasyonu, geliştiriciler ile çevirmenler arasındaki manuel dosya aktarımını ve koordinasyonu ortadan kaldırır
  • Üç temel otomasyon yaklaşımı şunlardır: webhook tetiklemeli iş akışları, CLI tabanlı CI/CD entegrasyonu ve API güdümlü özel otomasyon
  • Modern TMS platformlarının büyük çoğunluğu REST API ve webhook desteği sunar; ancak CI/CD entegrasyon derinliği platformdan platforma önemli ölçüde farklılık gösterir
  • Etkili otomasyon, uç durumların yönetimini gerektirir: kısmi çeviriler, birleştirme çakışmaları, eş zamanlı branch'ler ve geri alma senaryoları
  • Hedef, geliştiricilerin çeviri dosyalarını hiçbir zaman manuel olarak yönetmediği bir iş akışıdır; her şey pipeline üzerinden akar

Çevrimiçi Çeviri Araçları ile Geliştirici Çeviri Araçları

"Çevirmen araçları" ifadesi, farklı kitleler için farklı şeyler ifade eder. Tüketiciye yönelik çevrimiçi çeviri araçları ile geliştirici odaklı çeviri otomasyon araçları arasındaki farkı anlamak, kullanım durumunuza uygun çözümü bulmanıza yardımcı olur.

Genel Kullanım için Çevrimiçi Çeviri Araçları

Çevrimiçi çeviri araçları — Google Translate, DeepL, Microsoft Translator ve benzeri hizmetler — başka bir dilde metin anlaması ya da üretmesi gereken bireyler için tasarlanmıştır. Metni bir web arayüzüne yapıştırır, hedef dili seçer ve anında çeviri alırsınız. Bu araçlar, kullanım kolaylığı ve geniş dil kapsamı için optimize edilmiştir. Yabancı dildeki bir makaleyi okumak, başka bir dilde e-posta taslağı oluşturmak veya bir belgenin özünü anlamak için oldukça işe yarar.

Çevrimiçi çeviri araçlarının yapmadığı şey, çeviriyi ölçekte yönetmektir. Bu araçların çeviri belleği kavramı yoktur (daha önce onaylanmış çevirilerin yeniden kullanılması), sözlük zorlaması yoktur (marka terimlerinizin tutarlı biçimde çevrilmesinin sağlanması), inceleme iş akışları yoktur (çevirilerin yayımlanmadan önce insan denetçilere yönlendirilmesi) ve kod tabanınız ya da CMS'inizle entegrasyonu yoktur.

Yazılım Ekipleri için Geliştirici Çeviri Araçları

Geliştirici çeviri araçları, temelden farklı bir iş akışı için tasarlanmıştır. Anlık metin çevirmek yerine, bir ürünün tüm yaşam döngüsü boyunca yapılandırılmış içeriğin — kullanıcı arayüzü dizelerinin, CMS girişlerinin, belgelerin — çevirisini yönetirler. Geliştirici araçlarını tüketici odaklı çevrimiçi çeviri araçlarından ayıran temel yetenekler:

  • Kod tabanı entegrasyonu: Geliştirici araçları, Git deponuza, CMS'inize veya CI/CD pipeline'ınıza bağlanır. Çeviriler, kopyala-yapıştır yöntemiyle değil, otomatik olarak kod tabanınıza girer ve çıkar.
  • Çeviri belleği: Her onaylı çeviri depolanır ve yeniden kullanılır. Aynı dize yeni bir bağlamda göründüğünde araç, onaylı çeviriyi anında önerir; bu hem maliyet tasarrufu sağlar hem de tutarlılığı garantiler.
  • Sözlük ve terminoloji yönetimi: Marka terimleri, ürün adları ve teknik jargon bir kez tanımlanır ve tüm çevirilerde ve tüm dillerde uygulanır.
  • İnceleme iş akışları: Çeviriler, üretime geçmeden önce yapılandırılabilir inceleme aşamalarından geçer. Pazarlama metinleri insan incelemesi gerektirebilirken, yüksek güven puanına sahip kullanıcı arayüzü dizeleri otomatik olarak onaylanabilir.
  • Dosya formatı desteği: Geliştirici araçları, kod tabanınızın kullandığı belirli formatları destekler — JSON, YAML, PO, XLIFF, iOS .strings, Android XML, Flutter ARB — yalnızca düz metin değil.
  • Otomasyon: Webhooks, CLI araçları ve API'ler, yeni dizelerin tespit edildiği, çevrildiği, incelendiği ve manuel müdahale olmaksızın birleştirildiği tam otomatik çeviri pipeline'larını mümkün kılar.

Uçurumu Kapatmak

Bazı ekipler hızlı çeviriler için çevrimiçi çeviri araçlarıyla başlar ve daha sonra geliştirici araçlarının iş akışı, bellek ve entegrasyon özelliklerine ihtiyaç duyduklarını fark eder. Bu geçiş genellikle şu sorun noktalarından biri keskin hale geldiğinde yaşanır: aynı dizelerin tekrar tekrar çevrilmesi (çeviri belleği yok), sayfalar veya özellikler arasında tutarsız terminoloji (sözlük yok) ya da çeviri dosyalarını sistemler arasında manuel olarak taşımak için mühendislik zamanının harcanması (otomasyon yok).

Better i18n her iki dünyayı birbirine bağlar. AI çeviri motoru, çevrimiçi araçların anında çeviri hızını sağlarken; platform katmanı çeviri belleği, marka sözlük zorlaması (DeepL ile otomatik senkronize), inceleme iş akışları, Git senkronizasyonu, CLI araçları ve 200'den fazla endpoint içeren bir REST API ekler. Ekipler bunu hem hızlı anlık çeviriler için bir çevirmen aracı hem de sürekli yerelleştirme için tam otomasyon platformu olarak kullanır.


Çeviri İş Akışları Neden Otomatikleştirilmeli?

Manuel çeviri iş akışları her adımda sürtünme yaratır:

  1. Geliştirici yeni dizeleri çıkarır ve bir dosya dışa aktarır
  2. Geliştirici dosyayı TMS'e yükler veya çevirmenlere gönderir
  3. Çevirmen çevirir ve tamamlanan dosyayı dışa aktarır
  4. Geliştirici çevrilmiş dosyayı indirir ve entegre eder
  5. Geliştirici biçimlendirme sorunlarını, eksik anahtarları ve yer tutucu hatalarını kontrol eder

Her el değiştirme, gecikmeler, hatalar ve koordinasyon yüküne yol açar. Küreselleştirme ve Yerelleştirme Derneği'ne (GALA) göre, yerelleştirme iş akışlarını otomatikleştiren kuruluşlar daha hızlı sürüm döngüleri ve daha az yerelleştirme kaynaklı hata bildirmektedir.

Otomasyon Yaklaşımları

1. Webhook Tetiklemeli İş Akışları

Webhooks, olay güdümlü otomasyonu mümkün kılar — bir şey değiştiğinde, bir eylem otomatik olarak tetiklenir.

Yaygın webhook kalıpları:

Kaynak içerik değişti → TMS'e gönder:

Git push (yeni/değişen dizeler)
  → Webhook, TMS içe aktarımını tetikler
  → Çevirmenler yeni içerik hakkında bilgilendirilir
  → Çeviri hemen başlar

Çeviri tamamlandı → depoya çek:

TMS'de çeviri tamamlandı olarak işaretlendi
  → Webhook, CI işini tetikler
  → CI çevrilmiş dosyaları çeker
  → Güncellenmiş çevirilerle PR oluşturur
  → Otomatik kontroller çalışır (biçimlendirme, tamlık)

Avantajlar:

  • Gerçek zamanlı — olaylar gerçekleştiğinde eylemler hemen tetiklenir
  • Yoklama yükü yok — TMS sisteminizi bilgilendirir
  • Esnek — webhooks herhangi bir aşağı akış eylemini tetikleyebilir

Dikkat Edilmesi Gerekenler:

  • Webhook endpoint gerektirir (sunucusuz işlev veya CI webhook tetikleyicisi)
  • Yinelenen/yeniden deneme olaylarını idempotent olarak ele almalıdır
  • Ağ güvenilirliği teslimata etki eder

2. CLI Tabanlı CI/CD Entegrasyonu

CLI araçları, çeviri senkronizasyonunu doğrudan derleme ve dağıtım pipeline'ınıza entegre eder.

Main'e birleştirmede push:

# GitHub Actions örneği
on:
  push:
    branches: [main]
    paths: ['src/locales/en/**']

jobs:
  sync-translations:
    steps:
      - uses: actions/checkout@v4
      - name: Kaynak dizeleri gönder
        run: |
          npx better-i18n push --source en

Dağıtımdan önce çek:

# Derleme sırasında en güncel çevirileri çek
jobs:
  build:
    steps:
      - uses: actions/checkout@v4
      - name: Çevirileri çek
        run: npx better-i18n pull --all-locales
      - name: Uygulamayı derle
        run: npm run build

Zamanlanmış senkronizasyon:

# Günlük çeviri senkronizasyonu
on:
  schedule:
    - cron: '0 6 * * *'  # Her gün saat 06:00 UTC

jobs:
  sync:
    steps:
      - name: Çevirileri çek ve commit et
        run: |
          npx better-i18n pull --all-locales
          git add src/locales/
          git diff --staged --quiet || git commit -m "chore: sync translations"
          git push

Avantajlar:

  • Mevcut CI/CD altyapısında çalışır
  • Sürüm kontrollü — tüm değişiklikler Git'te izlenir
  • Test edilebilir — çeviri kontrolleri diğer CI kontrolleriyle birlikte çalışır
  • Öngörülebilir — tanımlı tetikleyiciler üzerinde çalışır

Dikkat Edilmesi Gerekenler:

  • CI/CD platformu gerektirir (GitHub Actions, GitLab CI vb.)
  • CLI aracının CI ortamına yüklenmesi gerekir
  • Kimlik doğrulama token'larının güvenli depolanması gerekir

3. API Güdümlü Özel Otomasyon

REST API'leri, belirli ihtiyaçlara göre uyarlanmış özel otomasyon iş akışlarını mümkün kılar.

Yaygın API otomasyon kalıpları:

  • Çeviri durumu panosu: Diller genelinde gerçek zamanlı tamamlanma durumunu sorgulamak için API
  • Sürüm öncesi kontroller: Dağıtımdan önce tüm çevirilerin tamamlandığını doğrulamak için API çağrısı
  • Otomatik anahtar oluşturma: Yeni özellik flag'leri otomatik olarak yer tutucu çeviriler oluşturur
  • Kalite izleme: API aracılığıyla çeviri kalitesi metriklerini periyodik olarak kontrol etme

Örnek: Dağıtım öncesi çeviri kontrolü:

async function checkTranslationsReady(locale: string): Promise<boolean> {
  const response = await fetch(`${TMS_API}/projects/${PROJECT}/languages/${locale}/status`, {
    headers: { 'Authorization': `Bearer ${API_TOKEN}` }
  });
  const status = await response.json();
  return status.completionPercentage >= 95;
}

Uç Durumların Yönetimi

Kısmi Çeviriler

Tüm dizeler aynı anda çevrilmeyecektir. Otomasyonunuz şunları ele almalıdır:

  • Geri dönüş stratejisi: Eksik çeviriler kaynak dile geri döner
  • Eşik tabanlı dağıtım: Bir dili yalnızca minimum tamamlanma yüzdesine ulaştığında dağıtın
  • Kademeli kullanıma sunma: Kısmen çevrilmiş dilleri önce bir kullanıcı alt kümesine dağıtın

Branch'e Duyarlı Çeviri

Özellik branch'leriyle çalışırken:

  • Branch izolasyonu: Bir özellik branch'inin çevirileri main'e sızmaz
  • Branch birleştirme: Özellik birleştiğinde, onun çevirileri de birleşir
  • Çakışma çözümü: Aynı anahtarın farklı branch'lerde değiştirildiği durumları ele alın

Geri Alma Senaryoları

Bir dağıtımın geri alınması gerektiğinde:

  • Çeviri dosyaları Git'te sürümlendirilmiştir: Standart git revert işe yarar
  • TMS durumu: TMS durumunun geri alınıp alınmaması gerektiğini göz önünde bulundurun (genellikle gerekmez — çeviriler toplamsal niteliktedir)
  • Önbellek geçersiz kılma: CDN önbellekli çeviriler kullanılıyorsa, geri almada önbelleğin geçersiz kılındığından emin olun

Platform Otomasyon Yeteneklerinin Karşılaştırılması

YetenekWebhookCLI/CIAPIYaygın Destek
Kaynak dosya pushGit push'ta otomatikCI adımıÖzel betikÇoğu platform
Çeviri çekmeTamamlanma olayındaZamanlanmış/tetiklenmişÖzel betikÇoğu platform
Branch farkındalığıPlatforma bağlıGit branch aracılığıylaÖzel mantıkSınırlı
Dağıtım öncesi kontrollerWebhook zinciri ileCI geçit adımıAPI sorgusuBazı platformlar
Koddan anahtar çıkarmaYokCLI tarama komutuYokBazı platformlar
Otomatik PR oluşturmaWebhook sonrası CI adımıCI adımıÖzel betikCI/CD aracılığıyla
Çeviri tamlığı geçidiOlay tabanlıCI kontrolüAPI sorgusuÇoğu platform

Tam Otomasyon Pipeline'ı Oluşturmak

Tam otomatik bir yerelleştirme pipeline'ı birden fazla yaklaşımı bir araya getirir:

Geliştirici çeviri anahtarlarıyla kod yazar
  ↓
CI yeni anahtarları çıkarır (CLI scan)
  ↓
CI kaynak dizeleri TMS'e gönderir (CLI push)
  ↓
TMS çevirmenleri bilgilendirir (otomatik)
  ↓
Çevirmenler TMS editöründe çalışır
  ↓
Çeviri tamamlandı → webhook ateşlenir
  ↓
CI çevirileri çeker, QA kontrolleri çalıştırır
  ↓
Güncellenmiş çeviri dosyalarıyla PR oluşturulur
  ↓
PR inceleme sonrası birleştirilir
  ↓
Dağıtım en güncel çevirileri içerir
  ↓
İzleme, çevirilerin doğru işlendiğini onaylar

Otomasyona Başlamak

Adım 1: Darboğazınızı Belirleyin

Otomatikleştirmeden önce, zamanın nerede boşa harcandığını belirleyin:

  • Manuel dosya yükleme/indirme? → CLI push/pull
  • Çevirilerin tamamlanmasını bekleme? → Webhook bildirimleri
  • Üretimde eksik çeviriler? → CI tamlık kontrolleri
  • Koordinasyon e-postaları? → API aracılığıyla otomatik durum raporları

Adım 2: Küçük Başlayın

En yüksek etkili otomasyonla başlayın:

  1. Birleştirmede CI push — kaynak dizelerin her zaman güncel olmasını sağlar
  2. Zamanlanmış çekme — günlük senkronizasyon çevirileri taze tutar
  3. Dağıtım öncesi kontrol — eksik çevirilerin yayınlanmasını önler

Adım 3: Kademeli Olarak Genişletin

İş akışınız olgunlaştıkça daha fazla otomasyon ekleyin:

  • Branch'e duyarlı çeviri iş akışları
  • Otomatik QA kontrolleri (yer tutucu doğrulama, uzunluk sınırları)
  • Çeviri durumu panoları
  • Otomatik inceleyici ataması

SSS

CI/CD entegrasyonum varsa webhook'lara ihtiyacım var mı?

Zorunlu değil. CI/CD tabanlı çekme (zamanlanmış veya birleştirmede tetiklenen) çoğu kullanım durumunu karşılar. Webhook'lar, TMS olaylarına gerçek zamanlı tepki vermeniz gerektiğinde değer katar (örneğin, çeviriler tamamlandığında anında dağıtım).

Koddan kaldırılan çeviri anahtarlarını nasıl ele alırım?

Çoğu CLI aracı, kaynak kodda artık mevcut olmayan anahtarları TMS'den kaldıran bir "purge" veya "cleanup" komutunu destekler. Çevirileri kodla senkronize tutmak için bunu periyodik olarak veya CI pipeline'ınızın bir parçası olarak çalıştırın.

Dağıtım devam ederken çeviriler güncellenirse ne olur?

"Anlık görüntü" yaklaşımını kullanın: çevirileri derleme sürecinin başında çekin ve bu anlık görüntüyü tüm dağıtım için kullanın. Yeni çeviriler bir sonraki dağıtım döngüsünde dahil edilecektir.

Hazırlık ortamlarında çevirileri nasıl test ederim?

Çevirileri hazırlık derleme sürecinizin bir parçası olarak çekin; bunu üretim için yaptığınız gibi yapın. Bazı platformlar branch'e duyarlı çevirileri destekler; bu da birleştirmeden önce hazırlık ortamında özelliğe özgü çevirileri test etmenizi sağlar.

Kılavuz, Mart 2026 itibarıyla modern TMS platformlarındaki yaygın kalıplara dayanmaktadır.

Comments

Loading comments...