Çok Dilli Sitelerde Kullanılabilirlik: Dil Seçimi, hreflang ve Yerel Biçimler
Çok dilli bir siteyi “içeriği çevirtip yayınlamak” sanmak kolay. Kırılmalar genelde çevirinin dışında çıkıyor: kullanıcının dili nasıl seçtiği, arama motorunun hangi sürümü kime gösterdiği, dar bir butona sığmayan kelime. Bu üçü, çevirinin kendisinden daha sık sorun çıkarıyor.
Dili tarayıcı mı seçsin, kullanıcı mı
Accept-Language başlığına bakıp kullanıcıyı otomatik olarak bir dile yönlendirmek cazip görünüyor. Görünür bir dil seçicisini bu otomatik yönlendirmeden daha güvenilir bulurum, iki sebeple.
Birincisi, tarayıcı dili kullanıcının okumak istediği dil değil. İngilizce kurulu bir işletim sisteminde Türkçe okumak isteyen çok insan var, tersi de. İkincisi, aynı adresin farklı içerik dönmesi önbelleği bozuyor: doğru yapmak için Vary: Accept-Language göndermek gerekiyor ve bu başlığın değerleri (tr-TR,tr;q=0.9,en-US;q=0.8 gibi) kullanıcıdan kullanıcıya değiştiği için CDN'de neredeyse hiç isabet alamazsın. Tarayıcı dilini seçicide hangi dilin önerileceğine karar verirken kullan, yönlendirmede değil.
Seçicide dil adları kendi dilinde yazılır: Deutsch, Русский, 日本語. Seçiciye ihtiyaç duyan kişi, tam olarak o anki sayfanın dilini okuyamayan kişi; ona “Almanca” yazmanın faydası yok. Bayrak da dil değil: Almanca'yı hangi bayrakla göstereceğine karar vermeye çalış, İspanyolca'da yirmi aday çıkar.
Her dilin kendi adresi, karşılıklı hreflang
Dil sürümlerinin ayrı adresleri olması paylaşmayı, yer imine eklemeyi ve indekslenmeyi mümkün kılıyor. Bunun bedeli hreflang bakımı: n dilli bir kümede her sayfa, kendisi dahil n tane hreflang bildirimi taşır, yani küme toplamda n² bildirim demek. Sekiz dil, tek bir içerik için 64 satır. Bildirimler karşılıklı olmak zorunda; A, B'yi gösterip B, A'yı göstermiyorsa arama motoru kümenin tamamını yok sayıyor.
Bu yüzden hreflang'ı elle yazılan bir şablon parçası olarak bırakmak işe yaramıyor, çeviri tablosundan üretilmesi gerekiyor. Peki sayfanın yalnızca üç dilde karşılığı varsa? O zaman yalnızca o üç sürüm birbirini bildirir. Var olmayan çevirilere bildirim yazmak, kullanıcıyı boş ya da İngilizce'ye düşen bir sayfaya göndermekten başka iş yapmıyor.
Çeviri arayüzü kırdığında
Tasarımı en kısa dille yapıp en uzun dille yayına almak, çok dilli projelerin klasik hatası. Almanca birleşik kelimeler, Fince çekimler ve Rusça'nın uzun karşılıkları sabit genişlikli butonları, yan yana dizilmiş menüleri ve tablo başlıklarını taşırıyor. Arayüzü, metni en çok uzayan dille test et.
Sağdan sola yazılan diller yalnızca metin yönü değil: ilerleme çubuğu, ileri-geri okları ve kaydırıcılar da aynalanıyor. Çeviriler henüz gelmemişse sahte yerelleştirme (her dizeyi uzatıp aksanlı karakterle dolduran bir mod) bu kırılmaların çoğunu çeviri beklemeden gösteriyor.
Saat, tarih, sayı, kağıt
Etkinlik saatini yazarken zaman dilimi şart, birkaç şehir karşılığı eklemek daha iyi: “13:00 İstanbul (GMT+3), 12:00 Paris, 18:00 Pekin”. Tarihte 03/04 kimi okuyucuda 3 Nisan, kiminde 4 Mart; ayı yazıyla yazmak ya da ISO biçimini kullanmak bu belirsizliği bitiriyor. Ondalık ayırıcı bazı ülkede virgül, bazısında nokta, yani “1.250” iki farklı rakam anlamına gelebiliyor.
Yazdırılabilir sürüm sunuyorsan tek şablonla iki kağıdı birden kurtarabilirsin: A4, US Letter'dan yaklaşık 6 mm daha dar ve 18 mm daha uzun, dolayısıyla her kenarda 13 mm boşluk bırakılan bir yerleşim ikisinde de kesilmiyor.
Testi kiminle yapıyorsun
Uzaktan test bu işin ucuz tarafında: farklı kıtalardan katılımcıyla görüntülü görüşme kurup sayfayı onların ekranında gezdirmek, sesli düşünme yöntemiyle nerede durakladıklarını duymak çoğu zaman yeterli bilgi veriyor. Yerel ofisteki çalışanlar da işe yarıyor ama sınırı belli: ürünü zaten biliyorlar, bir çeviri hatasını fark ederler, gezinmedeki tıkanmayı fark etmezler.
Peki o pazarda henüz hiç kullanıcınız yoksa? Analitikte o ülkeden gelen trafiğin hangi sayfada düştüğüne bakmak, beş kişilik bir test ayarlamaktan önce gelebilir. Düşüşün yoğunlaştığı yer genelde ödeme, adres formu ya da telefon alanı oluyor; yani çevirinin değil, biçim varsayımlarının bulunduğu yer.