murattunalı.

Çok dilli içerik yönetimi.

Çok dilli içerik yönetimi, bir sayfanın güncellendiğinde diğer dillerdeki karşılıklarının nasıl haber alacağını ve nasıl güncel tutulacağını düzenler.

Bir siteyi üç dile açmak bir proje; üç dilde güncel tutmak bir alışkanlık. İkincisi kurulmadan yapılan birincisi, birkaç ay içinde ayrışmaya başlıyor: Türkçe sayfa güncelleniyor, Almanca sayfa eski hâliyle kalıyor, ve kimse fark etmiyor.

Ayrışmanın maliyeti yalnız tutarsızlık değil. Bayat bir çeviri o pazarda yanlış bilgi yayıyor — eski bir fiyat, kaldırılmış bir hizmet, değişmiş bir süreç. Ve o pazardaki kullanıcı, sitenin geri kalanına da güvenmiyor.

Kaynak dil ve türev diller

İşleyen kurulumların ortak özelliği bir kaynak dil belirlemeleri: içerik önce o dilde yazılıyor, diğerleri ondan türüyor. Bu, hangi metnin asıl olduğunu netleştiriyor ve çeviri akışını tek yönlü tutuyor.

Alternatif — her dilin bağımsız yazılması — teoride daha iyi sonuç veriyor ama pratikte sürdürülemiyor: üç bağımsız içerik akışı, üç kat editoryal kapasite demek.

Bu sitede kaynak dil Türkçe ve türevler ondan çıkıyor. Dosyalarda hangi metnin türetildiği bir notla işaretli, ve çevrilenler işveren onayı bekliyor.

Eksik çeviri ne olacak

En kritik tasarım kararı bu: bir sayfa henüz çevrilmemişse o dilde ne gösterilecek? Üç yaklaşım var ve üçü çok farklı sonuç veriyor.

  1. Sayfa hiç üretilmez — o dil için sayfa yok, hreflang kümesine girmez. En dürüst.
  2. Kaynak dilde gösterilir — sayfa var ama içerik başka dilde. Kullanıcı için kafa karıştırıcı.
  3. Makine çevirisiyle doldurulur — sayfa var, kalite denetimsiz. Riskli.
  4. Yer tutucu gösterilir — «bu sayfa henüz çevrilmedi». Dürüst ama boş.
  5. Karma — bazı sayfalar çevrili, bazıları değil ve küme eksik dilleri hiç bildirmiyor.

Bu sitede birinci yaklaşım uygulanıyor ve kodla korunuyor: bir dilin içeriği yoksa o dil için sayfa üretilmiyor ve hreflang kümesine girmiyor. Eksik alan render edilmiyor — uydurma metin yerine yokluk tercih ediliyor.

Kural sert ama tutarlı bir sonuç veriyor: yayında olan her sayfa gerçekten o dilde ve gerçekten güncel. Yarım çeviri diye bir durum oluşamıyor.

Eksik alan render edilmez — uydurma metin yerine yokluk tercih edilir.

Bakım düzeni

Ayrışmayı önlemenin tek yolu, kaynak dil değiştiğinde diğerlerinin haber almasını sağlamak. Bunu kurmanın birkaç yolu var ve ortak noktaları otomatik olmaları.

  1. Sürüm damgası — her çeviri, hangi kaynak sürümünden türediğini kaydeder.
  2. Bayatlama uyarısı — kaynak değiştiğinde türevler «güncelleme bekliyor» olarak işaretlenir.
  3. Onay kapısı — çevrilmiş ama doğrulanmamış metin yayına girmez ya da işaretli girer.
  4. Denetim raporu — hangi sayfaların hangi dillerde eksik ya da bayat olduğu listelenebilmeli.
  5. Tek kaynak — dizeler tek bir yerde yaşamalı; şablona gömülü metin çeviri yükünü ikiye katlar.

Son madde en yapısal olanı: metin şablonun içine gömüldüğünde her dil için şablon çoğaltılıyor ve bir düzeltme üç yerde yapılmak zorunda kalıyor. Dizeler ayrı bir sözlükte yaşadığında şablon tek, metin çok oluyor.

Bu sitede tüm arayüz dizeleri ayrı sözlük dosyalarında ve şablonlar dilden bağımsız. Bir etiketin üç dildeki karşılığı yan yana duruyor — eksik olan hemen görünüyor.

Dizeler nerede yaşamalı

Çok dilli bir sitede metnin nerede tutulduğu, bakım maliyetini doğrudan belirliyor. Üç yaygın yaklaşım var ve aralarındaki fark zamanla katlanıyor.

  1. Şablona gömülü — her dil için şablon çoğaltılır. Bir düzeltme üç yerde yapılır. En kötü.
  2. Dil başına ayrı dosya — şablon tek, metin çok. Eksik anahtar görünmez.
  3. Tek dosyada dil başına alan — anahtar başına üç dil yan yana. Eksik olan HEMEN görünür.
  4. Harici çeviri sistemi — büyük ekipler için; küçük projelerde fazla yük.

Üçüncü yaklaşımın avantajı denetlenebilirlik: bir etiketin üç dildeki karşılığı yan yana durduğunda eksik olan bir bakışta görülüyor. Ayrı dosyalarda ise eksik anahtar ancak sayfa render edilirken fark ediliyor — ya da hiç fark edilmiyor.

Bu sitede üçüncü yaklaşım kullanılıyor: arayüz dizeleri tek dosyada, her anahtarın altında üç dil. Ve bir sözleşme var — bir anahtar bir dilde yoksa o alan RENDER EDİLMİYOR. Boş bir etiket ya da kaynak dilde bir metin görünmüyor; alan hiç çıkmıyor.

Kural ilk bakışta sert görünüyor ama sonucu tutarlı: yayında olan her metin gerçekten o dilde. Yarım çevrilmiş bir arayüz diye bir durum oluşamıyor.

Bir anahtar bir dilde yoksa alan render edilmez — yarım çeviri diye bir durum oluşamaz.

Kim çeviriyor

Teknik düzen kurulduktan sonra geriye operasyonel bir soru kalıyor ve genelde en çok ertelenen bu oluyor: çeviriyi kim yapacak, ne sıklıkla ve hangi bütçeyle?

  1. Profesyonel çevirmen — en yüksek kalite, en yüksek maliyet, en yavaş.
  2. Ana dil konuşuru ekip üyesi — iyi kalite, orta hız, kapasiteye bağlı.
  3. Makine + insan denetimi — makul kalite, düşük maliyet, hızlı. En yaygın denge.
  4. Denetimsiz makine — hızlı ve ucuz, ama itibar riski.
  5. Karma — dönüşüm sayfaları profesyonel, bilgi içeriği makine + denetim.

Beşinci madde çoğu proje için doğru cevap: her sayfa aynı yatırımı hak etmiyor. İletişim ve hizmet sayfaları profesyonel çeviriyi hak ediyor; bir arşiv yazısı makine çevirisi ve hafif bir denetimle geçebiliyor.

Karar verilirken sorulacak asıl soru şu: bu sayfa yanlış çevrilirse ne kaybederim? Cevap «bir müşteri» ise yatırım yapılıyor; «biraz itibar» ise denetimli makine yeterli olabiliyor.

Bu sitede çevrilmiş dizeler dosyada bir notla işaretli ve işveren onayı bekliyor. Yani hangi metnin insan tarafından doğrulandığı her zaman bilinebiliyor — ve doğrulanmamış olanlar bir liste hâlinde duruyor.

KAYNAKLAR