Çok dilli yapılandırılmış veri.
Çok dilli sitelerde yapılandırılmış veri her dil sürümünde ayrı üretilir ve içeriğin dili açıkça bildirilir.
Yapılandırılmış veri sayfanın anlamını makinelere bildiriyor; çok dilli bir sitede o anlamın hangi dilde ifade edildiğinin de bildirilmesi gerekiyor. Aksi hâlde makine, Almanca bir sayfadaki açıklamayı Türkçe sanabiliyor.
Bildirim basit: her düğüm içeriğinin dilini taşıyor. Ama uygulamada iki tuzak var ve ikisi de sık görülüyor.
Tuzak bir: tek dilde üretilmiş şema
En yaygın hata, şemayı bir kez üretip tüm dillerde aynen kullanmak. Sonuç: Almanca sayfa, Türkçe bir açıklama taşıyan bir şema bloğu sunuyor. Ekranda Almanca, makine katmanında Türkçe — iki okuyucu farklı şey duyuyor.
Doğru davranış, şemanın da içerikle birlikte çevrilmesi. Ad, açıklama, hizmet tanımı, soru-cevap blokları — hepsi o sayfanın dilinde olmalı. Bu, çeviri yükünü artırıyor ama başka türlü şema yanlış bilgi taşıyor.
Bu sitede şema üreticiden çıkıyor ve dizeler dil sözlüğünden okunuyor; yani Almanca sayfanın şeması Almanca dizeleri taşıyor. Ayrışma yapısal olarak imkânsız.
Tuzak iki: kimlikler dile göre bölünmeli mi
Kuruluş ve kişi düğümleri her dilde tekrar tanımlanıyor. Soru şu: bunlar aynı varlık mı, yoksa dil başına ayrı varlıklar mı?
Cevap: aynı varlık. Bir kuruluş üç dilde anlatıldığında üç kuruluş olmuyor. Bu yüzden kimlikler dile göre bölünmemeli — aynı sabit kimlik her dilde kullanılmalı ki makine üç sayfanın aynı varlıktan bahsettiğini anlasın.
Buna karşılık sayfa düğümleri dile göre ayrı: her dil sürümü kendi sayfa düğümünü taşıyor ve kendi adresini bildiriyor. Yani varlık tek, sayfalar çok.
- Kuruluş ve kişi — tek kimlik, tüm dillerde aynı. Dizeler çevrilir, kimlik değişmez.
- Sayfa düğümleri — dil başına ayrı; her biri kendi adresini ve dilini bildirir.
- İçerik düğümleri — makale, hizmet; dil başına ayrı ve dili bildirilmiş.
- Kırıntı yolu — dile göre ayrı; etiketler o dilin terimlerini taşır.
Bu ayrım grafiğin doğru okunmasını sağlıyor: üç dildeki üç sayfa, aynı kuruluşa bağlı üç ayrı sayfa olarak görünüyor — üç ayrı kuruluş olarak değil.
Sosyal kart etiketleri
Şemanın yanında bir de sosyal paylaşım katmanı var ve o da dil bildirimi taşıyor. Etiket, dil ve ülke kodunu birleştiren bir biçim istiyor — yalnız dil kodu geçersiz sayılıyor.
Ayrıca alternatif dil sürümleri de bildirilebiliyor: bir sayfa hangi başka dillerde mevcut olduğunu söyleyebiliyor. Bu sitede her sayfa kendi dilini ve diğer iki dili bildiriyor — ölçüldü, doğrulama süiti biçimi ayrıca denetliyor.
Şema ile ekran tutarlılığı
Tek dilli sitelerde geçerli olan altın kural çok dilli sitelerde iki kat önemli hâle geliyor: şemada yazan her şey ekranda da olmalı. Çünkü burada iki ayrışma riski birden var — bilgi ayrışması ve DİL ayrışması.
İkincisi daha sinsi: şemadaki açıklama doğru bilgiyi taşıyor olabiliyor ama yanlış dilde. Bu, bir doğrulama aracında hata vermiyor — araç dili kontrol etmiyor — ama modele yanlış sinyal gidiyor ve o sayfa yanlış dildeki sorgularla eşleşebiliyor.
- Şemadaki dizeler sayfanın dilinde mi — açıklama, ad, soru-cevap.
- Dil bildirimi her düğümde var mı — içeriğin dili açıkça yazılmalı.
- Kimlikler dile göre bölünmemiş mi — kuruluş üç dilde de aynı varlık.
- Sayfa düğümleri dile göre ayrı mı — her sürüm kendi adresini bildirmeli.
- Sosyal etiketler dil-ülke biçiminde mi — yalnız dil kodu geçersiz.
- Şemadaki her bilgi ekranda da var mı — istisnasız.
Üçüncü ve dördüncü maddeler birlikte okunmalı çünkü ayrımı kuruyorlar: varlık tek, sayfalar çok. Kuruluş düğümü üç dilde de aynı kimliği taşıyor — dizeleri çevrilmiş ama kimliği sabit. Sayfa düğümleri ise ayrı, çünkü gerçekten ayrı sayfalar.
Bu sitede şema üreticiden çıkıyor ve dizeler dil sözlüğünden okunuyor; ayrışma yapısal olarak imkânsız. Doğrulama süiti her rotada beklenen düğümlerin varlığını ve sosyal etiketlerin biçimini ayrıca ölçüyor.
Çeviri yükü ve otomasyon
Şemanın da çevrilmesi gerektiği anlaşıldığında ilk tepki genelde «bu çok iş» oluyor ve haklı bir tepki. Ama yük, şema elle yazıldığında gerçek — üreticiden çıktığında neredeyse sıfır.
Sebep şu: şemadaki dizeler zaten sayfada olan dizeler. Başlık, açıklama, hizmet adı, soru-cevap — hepsi ekranda da duruyor ve zaten çevrilmiş durumda. Şema onları yeniden yazmıyor, aynı kaynaktan okuyor.
Bu, şemanın neden içerikle aynı kaynaktan üretilmesi gerektiğinin de gerekçesi: iki ayrı yerde tutulan aynı metin er ya da geç ayrışıyor, ve ayrıştığında hangisinin doğru olduğu belirsizleşiyor.
Bu sitede şema üreticiden çıkıyor ve dizeler dil sözlüğünden okunuyor. Bir metin güncellendiğinde hem ekran hem şema aynı anda güncelleniyor — çünkü ikisi aynı kaynağa bakıyor. Çeviri yükü, içerik çevirisinin dışında sıfır.
Son bir çerçeve: çok dilli şema, tek dilli şemanın zorlaştırılmış hâli değil — aynı kurallar geçerli, yalnız bir boyut daha ekleniyor. Kurallar zaten biliniyorsa dil boyutu küçük bir ek yük; bilinmiyorsa dil boyutu sorunu görünür kılıyor ama üretmiyor.
Son bir kapsam notu: şemanın çevrilmesi gereken kısmı yalnız serbest metin alanları. Tip adları, alan adları ve kimlikler çevrilmiyor — onlar makine sözlüğünün parçası ve her dilde aynı kalıyor.
Bu ayrım bazen karıştırılıyor ve şema alan adları çevrilmeye çalışılıyor; sonuç geçersiz bir blok oluyor. Çevrilen değerdir, anahtar değil.
Kapanışta bir ilke: çok dilli şema, çeviri işinin bir uzantısı değil bir yan ürünü olmalı. Doğru kurulduğunda ek bir çeviri yükü üretmiyor — zaten çevrilmiş dizeleri makine diline aktarıyor. Ek yük üretiyorsa, şema yanlış yerden besleniyor demektir.