Mühendislik//8 dk okuma

Translation QA Araçları: Yerelleştirilmiş Yazılım için Otomatik Kalite Kontrolleri

Eray Gündoğmuş
Paylaş

Translation QA Araçları: Yerelleştirilmiş Yazılım için Otomatik Kalite Kontrolleri

Temel Çıkarımlar

  • Otomatik translation QA, insanların sıklıkla gözden kaçırdığı mekanik hataları (eksik placeholder'lar, bozuk biçimlendirme, tutarsız terminoloji) yakalar
  • QA birden fazla aşamada çalıştırılmalıdır: çeviri sırasında, review öncesinde, merge öncesinde ve deployment öncesinde
  • Çoğu TMS platformu temel QA kontrolleri içerir, ancak özel QA araçları daha derin analiz sunar
  • Görsel regresyon testleri, çevrilmiş metinden kaynaklanan UI sorunlarını (kısaltma, taşma, düzen bozulmaları) yakalar
  • Katmanlı bir QA yaklaşımı — otomatik mekanik kontroller + insan dilbilimsel incelemesi — en iyi kalite/maliyet dengesini sağlar

Translation QA Neden Önemlidir

Bir çevirideki tek bir eksik placeholder uygulamanızı çökertebilir. Tutarsız bir terim kullanıcıları şaşırtabilir. Kısaltılmış bir etiket bir düğmeyi kullanılamaz hale getirebilir. Translation QA bu sorunların production ortamına ulaşmasını engeller.

Kategoriye göre yaygın çeviri hataları:

KategoriÖrnekEtki
Eksik placeholder{name} çeviriden silindiRuntime hatası veya bozuk UI
Yanlış placeholder{username} {user_name} olarak değiştirildiDeğişken çözümlenmedi
KısaltmaSabit genişlikli bir düğmede uzun Almanca çeviriUI öğesi kullanılamaz
Terminoloji"Dashboard" üç farklı şekilde çevrildiKullanıcı karışıklığı
Format hatasıÇeviri dosyasında geçersiz JSONBuild hatası
KodlamaÇeviride UTF-8 dışı karakterlerBozuk metin görüntüsü

Otomatik QA Kontrol Türleri

Placeholder Doğrulaması

En kritik otomatik kontrol. Kaynak string'deki tüm değişkenlerin, placeholder'ların ve interpolasyon token'larının çeviride mevcut olduğunu doğrular.

Kontrol edilecekler:

  • ICU değişkenleri: {name}, {count}
  • HTML etiketleri: <strong>, <a href="...">
  • Format belirleyiciler: %s, %d, %@
  • Özel token'lar: {{variable}}, $t(key)

Uygulama:

function validatePlaceholders(sourceStr, translatedStr) {
  const pattern = /\{[^}]+\}|<[^>]+>|%[sd@]|\$t\([^)]+\)/g;
  const sourceTokens = (sourceStr.match(pattern) || []).sort();
  const translatedTokens = (translatedStr.match(pattern) || []).sort();

  const missing = sourceTokens.filter(t => !translatedTokens.includes(t));
  const extra = translatedTokens.filter(t => !sourceTokens.includes(t));

  return { valid: missing.length === 0, missing, extra };
}

Terminoloji Uyumluluğu

Sözlük terimlerinin tutarlı biçimde çevrildiğini doğrular:

  • "Dashboard" kaynak terimi her zaman "Tableau de bord" (Fransızca) olarak çevrilmeli, hiçbir zaman "Panneau" olarak değil
  • Marka adları çevrilmeden kalmalıdır
  • Teknik terimler onaylı çeviriyi kullanmalıdır

String Uzunluğu Doğrulaması

Kaynak metinden önemli ölçüde daha uzun çevirileri işaretler:

  • Kaynak uzunluğunu yapılandırılabilir bir eşikten (örn. %150) daha fazla aşan string'ler
  • Karakter sınırından uzun string'ler (sabit genişlikli UI öğeleri için)
  • Boş çeviriler (kaynak dolu olduğunda string boş)

Format Doğrulaması

Çeviri dosyalarının sözdizimsel olarak geçerli olduğunu sağlar:

  • JSON: Geçerli JSON, sondaki virgül yok, doğru kodlama
  • XLIFF: İyi biçimlendirilmiş XML, doğru namespace
  • PO: Eşleşen msgid/msgstr çiftleri, geçerli çoğul formlar
  • Properties: Özel karakterler için doğru kaçış karakterleri

Tutarlılık Kontrolü

Aynı kaynak metnin birden fazla farklı çeviriye sahip olduğu veya benzer kaynak metinlerin tutarsız çevirilerinin bulunduğu durumları tespit eder.

Noktalama ve Boşluk

  • Çevirilerdeki çift boşluklar
  • Eksik son noktalama işareti (kaynakta nokta var, çeviride yok)
  • Hedef locale için yanlış tırnak işaretleri (Fransızca " " değil « » kullanır)
  • Baştaki/sondaki boşluklar

İş Akışınızda QA

Çeviri Sırasında (In-TMS)

Çoğu TMS platformu, çevirmenler çalışırken gerçek zamanlı QA çalıştırır:

  • Eksik placeholder'ları hemen vurgular
  • Sözlük ihlalleri hakkında uyarır
  • Kaynak/çeviri uzunluk karşılaştırmasını gösterir

Bu, sorunları oluşturuldukları noktada yakalar; düzeltmesi en ucuz olduğu zamanda.

Review Öncesinde

Çeviriler review aşamasına girmeden önce kapsamlı QA çalıştırın:

  • Tüm string'lerde tam placeholder doğrulaması
  • Terminoloji uyumluluk kontrolü
  • Tutarlılık analizi
  • Uzunluk doğrulaması

Kritik kontrolleri geçemeyen çeviriler (eksik placeholder'lar) düzeltilene kadar review'dan engellenmelidir.

Merge Öncesinde (CI/CD)

CI/CD pipeline'ınıza QA kontrolleri ekleyin:

# GitHub Actions örneği
- name: Validate translations
  run: |
    npx translation-qa validate \
      --source src/locales/en.json \
      --translations "src/locales/*.json" \
      --checks placeholders,format,length \
      --max-length-ratio 1.5

Başarısız kontroller PR'ın merge edilmesini engellemelidir.

Deployment Öncesinde

Çeviriler production ortamına ulaşmadan önce son doğrulama:

  • Tüm locale'ler minimum tamlık eşiğini karşılar
  • Açık kritik QA sorunu kalmadı
  • Görsel regresyon testleri geçti

Görsel Regresyon Testi

Metin tabanlı QA veri sorunlarını yakalar, ancak görsel test UI sorunlarını yakalar:

Görsel Testin Yakaladıkları

  • Daha uzun çevirilerden kaynaklanan metin taşması
  • Sabit genişlikli container'larda kısaltılmış etiketler
  • Farklı metin uzunluklarından kaynaklanan hizalanmamış öğeler
  • RTL düzen sorunları
  • Özel karakterlerle font render sorunları

Playwright ile Uygulama

const locales = ['en', 'de', 'ja', 'ar'];
const pages = ['/dashboard', '/settings', '/profile'];

for (const locale of locales) {
  for (const page of pages) {
    await browser.goto(`/${locale}${page}`);
    await browser.screenshot({
      path: `visual-qa/${locale}${page.replace('/', '-')}.png`,
    });
  }
}

Düzen değişikliklerini tespit etmek için ekran görüntülerini temel görüntülerle karşılaştırın. Percy, Chromatic veya Playwright'ın yerleşik görsel karşılaştırması gibi araçlar bunu otomatik olarak halleder.

Özel QA Araçları

Dahili TMS kontrollerinden daha derin analiz gerektiren ekipler için:

AraçOdak
VerifikaÇeviri dosyaları için kapsamlı dilbilimsel ve teknik QA
QA DistillerÖzel kural tanımlarıyla desen tabanlı QA
XbenchTerminoloji ve tutarlılık kontrolü
Grammarly/LanguageToolDesteklenen diller için dilbilgisi ve yazım denetimi

Bu araçlar, yüksek kalite gereksinimleri ve büyük çeviri hacmiyle kurumsal iş akışları için en uygunudur.

QA Pipeline Oluşturma

Pratik, katmanlı bir yaklaşım:

Katman 1 — Otomatik (Her Çeviri):

  • Placeholder doğrulaması
  • Format doğrulaması
  • Uzunluk kontrolleri
  • Terminoloji uyumluluğu

Katman 2 — Review (Müşteriye Yönelik İçerik):

  • Doğruluk ve doğallık için insan dilbilimsel incelemesi
  • Staging ortamında bağlam içi review

Katman 3 — Görsel (Release Öncesi):

  • Temel sayfalar ve diller için ekran görüntüsü karşılaştırması
  • RTL düzen doğrulaması
  • Çevrilmiş içerikle duyarlı tasarım kontrolü

Katman 4 — İzleme (Deployment Sonrası):

  • Kullanıcı tarafından bildirilen çeviri sorunları
  • Çeviriyle ilgili runtime hataları için hata takibi
  • Locale'e özgü hemen çıkma oranları veya destek biletleri için analytics

SSS

Her ekibin sahip olması gereken minimum QA nedir?

En az: CI/CD pipeline'ınızda placeholder doğrulaması ve format doğrulaması. Bu iki kontrol en etkili sorunları önler — eksik değişkenlerden kaynaklanan runtime çökmeleri ve geçersiz çeviri dosyalarından kaynaklanan build hataları. Uygulanması kolaydır ve sorunları kullanıcılara ulaşmadan önce yakalar.

Konuşmadığım diller için QA'yı nasıl yönetirim?

Otomatik QA, dil bilgisinden bağımsız olarak mekanik kontrolleri halleder. Dilbilimsel kalite için anadili konuşanlar gereklidir — şirket içi gözden geçirenler, çevirmen pazar yerlerinde bulunan serbest çalışan gözden geçirenler veya TMS sağlayıcınız tarafından sunulan gözden geçirme hizmetleri. İnsan gözden geçirme bütçesini en öncelikli pazarlarınıza ve içerik katmanlarınıza odaklayın.

QA deployment'ı engellemeli mi?

Kritik kontroller (eksik placeholder'lar, geçersiz dosya formatı) deployment'ı engellemelidir — bunlar runtime hatalarına veya build hatalarına neden olur. Kritik olmayan kontroller (uzunluk uyarıları, terminoloji önerileri, tutarlılık notları) uyarı oluşturmalı ancak engellememelidir. Her kontrol türü için uygun önem düzeyleriyle CI/CD pipeline'ınızı yapılandırın.

Comments

Loading comments...