Bir web sitesini ilk günden çok dilli kurmak
İki dil ya da on bir: her dili ilk günden aynı düzende tutan yapı.
Birçok Türk şirketi web sitesini Türkçe yayınlar ve İngilizceyi "sonra eklemeyi" planlar. O "sonra" genellikle bir çeviri eklentisi, zamanla birbirinden uzaklaşan ikinci bir sayfa seti ve yanlış kişiye yanlış dili gösteren arama sonuçları olarak gelir. Üçüncü bir dil gerektiğinde aynı sorun yeniden yaşanır. Dilleri ilk günden yapının içine kurmak çok az ek maliyet getirir; yapı doğru kurulduğunda dil sayısı bir tasarım sorusu olmaktan çıkar. Bu yazıda buna nasıl yaklaştığımızı anlatıyoruz.
Önce dil modelini belirleyin
Tasarıma başlamadan önce her dilin ne için olduğuna karar verin. Bir site şunlardan biri olabilir:
- tamamen paralel: her sayfa her dilde aynı içerikle bulunur,
- kısmen paralel: temel sayfalar tüm dillerde, bazı içerikler tek dilde,
- ayrı: aynı markayı paylaşan, farklı tekliflerle farklı kitleler.
Çoğu kurumsal site kısmen paraleldir. Bizim sitemiz de öyle: her hizmet, proje ve oyun sayfası İngilizce ve Türkçe bulunur; KVKK aydınlatma metni ise Türk hukukuna ait bir belge olduğu için yalnızca Türkçedir. Bunu baştan yazmak, hangi sayfaların karşılığa ihtiyacı olduğunu, hangilerinin olmadığını ve eşdeğer sayfa yokken dil değiştiricinin ne yapacağını netleştirir.
İki dil ya da on bir: aynı yapı
Türkçe ve İngilizce en yaygın başlangıçtır; ama iyi kurulmuş bir sitede hiçbir şey dil sayısının tam iki olduğunu varsaymaz. Geliştirdiğimiz gezi rehberi Roavina, 110 şehri 11 dilde anlatır. Sayfaları tek tek yazılmak yerine yapılandırılmış veriden üretildiği için her dil aynı yapıyı izler. Aşağıdaki kurallar, site ister iki dille ister daha fazlasıyla başlasın, bunu mümkün kılan kurallardır.
Her dil için ayrı URL
Her dil sürümünün kendi adresi olmalıdır. Biz /en/services/seo ve /tr/hizmetler/seo gibi bir dil öneki kullanırız; böylece tüm site tek bir kurala uyar ve her sayfa kolayca paylaşılır. ?lang=en gibi parametreler ya da yalnızca çerezle seçilen dil, arama motorlarının sayfaları ayrı ayrı indekslemesini zorlaştırır.
Slug’ları da çevirin. Arama sonucunda /tr/hizmetler/web-yazilim adresini gören Türk ziyaretçi sayfayı tıklamadan anlar; /tr/services/web-development ise hiç bitirilmemiş bir sayfa gibi görünür.
Sayfaların ilişkisini arama motorlarına anlatın
Her sayfa, kendisi dahil tüm dil sürümlerini hreflang bağlantılarıyla listelemeli ve canonical adresini başka bir dile değil, kendi dil sürümüne yöneltmelidir. Sayfadaki dil değiştirici ana sayfaya değil, eşdeğer sayfaya gitmelidir. Bir sayfanın karşılığı yoksa değiştirici 404 yerine bölüm listesi gibi en mantıklı yakın sayfaya götürmelidir.
Site haritaları da her sürümü alternatifleriyle birlikte listelemelidir. Bu ayrıntılar ziyaretçiye görünmez; ama Türkçe bir aramanın Türkçe sayfanızı gösterip göstermeyeceğine bunlar karar verir.
İçerik kopya sayfa değil, yapılandırılmış veridir
En büyük hata, her yeni dili ilkinin bir kopyası olarak kurmaktır. Bunun yerine her içerik, dil başına alanları olan tek bir kayıt olmalıdır: başlığı, özeti ve gövdesi her dilde bulunan tek bir hizmet. Böylece yönetim paneli dilleri yan yana gösterir, editörler hangi çevirilerin eksik olduğunu hemen görür ve bir tasarım değişikliği tüm sürümlere birden uygulanır.
Bir çevirinin eksik olması halinde ne olacağına da karar veririz. Sitelerimizde bir sayfa, zorunlu alanları o dilde varsa o dilde yayınlanır; isteğe bağlı alanlar ise asla sessizce başka bir dile düşmez. Ortasında İngilizce bir paragraf olan Türkçe bir sayfa özensiz görünür ve arama motorlarının sayfanın dilini anlamasını zorlaştırır.
Çevirmeyin, yazın
Makine çevirisi faydalı bir taslaktır; ama iyi çok dilli metin her kitle için ayrı yazılır. İngilizce kurumsal metinler kısa ve doğrudan olma eğilimindedir. Türkçe metinler doğal duyulmak için çoğu zaman biraz daha bağlam ve farklı bir cümle düzeni ister. Küçük şeyler önemlidir: başlıklarda ve URL’lerde doğru işlenmiş özel karakterler, yerel biçimde tarihler ve sayılar, her okura anlamlı gelen örnekler.
Arayüz metinleri de aynı özeni ister. Düğmeler, form hataları, çerez bantları ve e-posta bildirimleri çeviri dosyalarına aittir; asla doğrudan şablonların içine yazılmaz. Böylece hiçbir şey yanlış dilde gözden kaçmaz ve yeni bir dil, kodun içinde arama yapmak yerine yeni bir dosya seti demek olur.
Ziyaretçinin dilini algılamak
Biri kök adresi açtığında onu tarayıcısının tercih ettiği dile yönlendirir, dil değiştirdiğinde de seçimini hatırlarız. Belirli bir dil adresini açmış bir ziyaretçiyi ise asla yönlendirmeyiz; çünkü o kişi ya da bir arama motoru o sayfayı bilerek seçmiştir. Yönlendirmenin kendisi önbelleğe alınmamalıdır; yoksa her ziyaretçi ilk gelenin dilini görür.
Ek maliyet küçüktür
Baştan planlandığında her dil çoğunlukla bir çeviri dosyası, bir slug seti, içerik türü başına kendi alanları ve bazı SEO etiketleri demektir. Tek dil için kurulmuş bir siteye sonradan eklendiğinde ise URL’leri yeniden düzenlemek, eski sayfaları yönlendirmek, veritabanını yeniden yapılandırmak ve kısa kelimelere göre kurulmuş sayfa düzenlerini yeniden tasarlamak anlamına gelebilir. Birden fazla dile ihtiyaç duyma ihtimaliniz makul ölçüdeyse, ilk günden buna göre kurun.
Kontrol listesi
- Dil modeli tasarım başlamadan yazılı.
- Her dilin önekli kendi URL’si ve çevrilmiş slug’ları var.
- Sayfalarda her sürüm için hreflang bağlantıları, kendini gösteren canonical ve çalışan bir dil değiştirici var.
- İçerik dil başına alanlarla tek kez saklanıyor.
- Eksik çeviri dilleri karıştırmak yerine sayfayı gizliyor.
- Tüm arayüz metinleri çeviri dosyalarında.
- Yeni bir dil eklemek yeni şablon gerektirmiyor.