- 1) Klasik model vs. sürekli yerelleştirme
- 2) Mimarinin bileşenleri
- 3) Repo → TMS → PR/MR akışı (adım adım)
- 4) Otomasyon örneği (CI job – satır satır)
- 5) Branch ve sürüm stratejileri
- 6) Otomatik LQA tetikleme ve paketleme
- 7) ICU ve doğrulama adımları
- 8) Geriye dönük TM bakımı
- 9) Ölçüm ve görünürlük
- 10) SSS (mini)
- 11) İlgili içerik ve sonraki adım
Ö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)
- Geliştirici yeni/ değişen metinleri push eder.
- CI, i18n çıkarım betiğini çalıştırır ve kaynak dosyasını oluşturur.
- Kaynak dosyası TMS’e yüklenir; uygun projede iş akışı başlar.
- TMS, TM/TermBase eşleşmesi ve çeviri/inceleme adımlarını yürütür.
- Onaylı çeviriler CI tarafından indirilir; hedef dil dosyaları güncellenir.
- ICU/lint ve temel UI kontrolleri çalışır; hatalar raporlanır.
- PR/MR açılır; kod inceleme ile birlikte dil dosyaları gözden geçirilir.
- 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ındaother
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
- Yazılım ve Uygulama Yerelleştirme Rehberi
- L10n QA Kontrol Listesi
- Sürekli Yerelleştirme (CI/CD) Nedir? – Blog
Projeniz için sürekli yerelleştirme hattını birlikte kuralım: Teklif Al > İletişim (Formu)