View Categories

Sürekli Yerelleştirme (CI/CD Entegrasyonu) – Uygulama

Tahmini Okuma Süresi: 4 dak

Özet: Sürekli yerelleştirme, ürün geliştirme döngüsüne entegre edilen ve yeni/ değişen metinlerin otomatik olarak çıkarılıp çevrilerek düzenli aralıklarla yayıma hazırlandığı bir yaklaşımdır. Bu kılavuz; klasik modele kıyasla farkları, repo → TMS → PR/MR akışını, CI job örneklerini (satır satır), branch/sürüm stratejilerini, otomatik LQA tetikleme ve paketlemeyi ve geriye dönük TM bakımını adım adım açıklar.
Bağlam: Yerelleştirme Hizmetleri

1) Klasik model vs. sürekli yerelleştirme

1.1) Klasik model

  • Döngü: metinlerin toplanması → çeviri → revizyon → tek seferlik teslim.
  • Avantaj: Proje bazlı kontrol; tek seferlik yayınlarda pratik.
  • Risk: Sık güncellenen ürünlerde bekleme/kümülatif birikim, piyasa çıkış süresinin uzaması.

1.2) Sürekli model

  • Döngü: her commit/merge sonrasında otomatik çıkarım → TMS’e yükleme → onaylı çeviriyi geri çekme → build/test/paket.
  • Avantaj: Daha kısa pazara çıkış süresi; küçük partilerle düşük hata riski.
  • Gereksinim: CI/CD boru hattı, TMS entegrasyonu, ICU/lint ve LQA adımları.

2) Mimarinin bileşenleri

  • Repo: Kaynak kod ve kaynak metinler; i18n çıkarım betikleri.
  • TMS: Segment eşleştirme, TM/TermBase, iş akışı ve onay durumları.
  • CI runner: Çıkarım, upload/download, lint, build ve test işlerini koşturur.
  • Ortamlar: Test/ön üretim/üretim; dil seçici ve sürüm takibi.
  • Güvenlik: TMS token/anahtarları için gizli değişkenler.

3) Repo → TMS → PR/MR akışı (adım adım)

  1. Geliştirici yeni/ değişen metinleri push eder.
  2. CI, i18n çıkarım betiğini çalıştırır ve kaynak dosyasını oluşturur.
  3. Kaynak dosyası TMS’e yüklenir; uygun projede iş akışı başlar.
  4. TMS, TM/TermBase eşleşmesi ve çeviri/inceleme adımlarını yürütür.
  5. Onaylı çeviriler CI tarafından indirilir; hedef dil dosyaları güncellenir.
  6. ICU/lint ve temel UI kontrolleri çalışır; hatalar raporlanır.
  7. PR/MR açılır; kod inceleme ile birlikte dil dosyaları gözden geçirilir.
  8. Merge sonrasında build/test çalışır; paket ilgili ortama dağıtılır.

Ayrıntılı dilsel ve kozmetik kontroller için bkz. L10n QA Kontrol Listesi.

4) Otomasyon örneği (CI job – satır satır)

4.1) GitHub Actions (örnek satırlar)

  • name: i18n-pipeline
  • on: [push, pull_request]
  • jobs:
  • i18n:
  • runs-on: ubuntu-latest
  • steps:
  • - uses: actions/checkout@v4
  • - name: Extract strings
  • run: npm run i18n:extract
  • - name: Upload to TMS
  • run: npx tms-cli upload --src locale/source.pot --project $TMS_PROJECT --token $TMS_TOKEN
  • - name: Download approved
  • run: npx tms-cli download --out locale/ --status approved
  • - name: ICU lint
  • run: npx icu-lint "locale/**/*.json"
  • - name: Build
  • run: npm run build

4.2) GitLab CI (örnek satırlar)

  • stages: [extract, translate, test, build]
  • extract:
  • stage: extract
  • script:
  • - npm ci
  • - npm run i18n:extract
  • - npx tms-cli upload --src locale/source.pot --project $TMS_PROJECT --token $TMS_TOKEN
  • translate:
  • stage: translate
  • script:
  • - npx tms-cli download --out locale/ --status approved
  • test-i18n:
  • stage: test
  • script:
  • - npx icu-lint "locale/**/*.json"
  • build:
  • stage: build
  • script:
  • - npm run build

Not: Gerçek TMS/CLI komutları kullandığınız araca göre değişebilir. Örnek satırlar akışı göstermek içindir.

5) Branch ve sürüm stratejileri

  • Main/Release dalları: Üretim için kararlı sürümler; dil dosyaları burada self-canonical ve imzalı yayın süreçlerine uyar.
  • Feature dalları: Geliştirilen özelliklerle birlikte dil anahtarları; i18n çıkarımı her push’ta tetiklenir.
  • String freeze: Yayın öncesi kısa dondurma penceresi; yalnızca çeviri/QA kabul edilir.
  • Hotfix: Kritik metin hataları için küçük yama dalları; TM’e geri yazmayı unutmayın.

6) Otomatik LQA tetikleme ve paketleme

  • Ekran görüntüsü toplama: CI, temel akışlarda otomatik gezintiyle ekran görüntüleri üretir.
  • Pseudo-localization modu: Belirli job’larda i18n pseudo etkinleştirilir; taşma ve yön hataları görünür.
  • Artifact: LQA ekran seti ve bulgu şablonu tek paket olarak saklanır/iletilir.
  • Onay kapısı: Dilsel/kapsam hataları sıfır-kritik seviyesine inmeden deploy job’u çalışmaz.

LQA maddeleri için ayrıntılar: L10n QA Kontrol Listesi.

7) ICU ve doğrulama adımları

  • ICU lint: plural/select kalıplarında other ve değişken adları doğrulanır.
  • JSON şema: Dil dosyası şemasıyla anahtar ve tip kontrolü.
  • Gerçekleme testleri: Kritik ekranlarda yerleştirme hatası, sayısal/tarih biçimleri ve boş/placeholder metinler.
  • Kaynak hijyeni: Geliştiriciler için ICU kısa kılavuzu: ICU MessageFormat & Placeholder Kılavuzu.

8) Geriye dönük TM bakımı

  • Tekilleştirme: Yinelenen segmentlerin TM’de birleştirilmesi; çakışan çevirilerin uyumlandırılması.
  • Alanlara ayırma: Ürün modülü/özellik bazlı TM segment kümeleri.
  • Kalite işaretleri: Onaylı/incelemede/retli segment etiketleri; yayın sonrası geri bildirimle güncelleme.
  • Paylaşım: Kurumla periyodik TMX paylaşımı; NDA ve veri koruma ilkelerine uygun şekilde.

9) Ölçüm ve görünürlük

  • Çevrim süresi: Kaynak değişikliği → onaylı çeviri → üretime geçiş süresi.
  • TM yararlanma oranı: Yüksek tekrar/benzerlikten gelen kazanımlar.
  • Hata kaçağı: Yayın sonrası dilsel/kozmetik bulguların trendi.
  • Kapsam: Hedef dillerin kapsama yüzdesi; eksik anahtarların takibi.

10) SSS (mini)

CI/CD olmadan sürekli yerelleştirme mümkün mü?

Kısmen. Manuel yükleme/indirme ile yapılabilir; ancak süreklilik, kalite ve hız için CI job’ları kritik önemdedir.

Hangi adımı önce eklemeliyim?

Öncelik: i18n çıkarımı → TMS upload/download → ICU/lint → LQA ekran seti → deploy kapısı.

Hangi dilleri önce dahil etmeliyim?

En yüksek trafiğe veya gelir potansiyeline sahip 1–3 dil ile başlayıp boru hattı oturduktan sonra genişletin.

11) İlgili içerik ve sonraki adım

Projeniz için sürekli yerelleştirme hattını birlikte kuralım: Teklif Al > İletişim (Formu)

Go to Top