İçindekiler
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 | Örnek | Etki |
|---|---|---|
| Eksik placeholder | {name} çeviriden silindi | Runtime hatası veya bozuk UI |
| Yanlış placeholder | {username} {user_name} olarak değiştirildi | Değişken çözümlenmedi |
| Kısaltma | Sabit genişlikli bir düğmede uzun Almanca çeviri | UI öğesi kullanılamaz |
| Terminoloji | "Dashboard" üç farklı şekilde çevrildi | Kullanıcı karışıklığı |
| Format hatası | Çeviri dosyasında geçersiz JSON | Build hatası |
| Kodlama | Çeviride UTF-8 dışı karakterler | Bozuk 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 |
| Xbench | Terminoloji ve tutarlılık kontrolü |
| Grammarly/LanguageTool | Desteklenen 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.