E-Ticarette Dil Seçici: Yerleşim, Etiket ve URL Kararları
Dil seçici arayüzün en küçük bileşenlerinden biri, ama yanlış kurulduğunda ziyaretçi kendi dilindeki sayfayı hiç görmeden çıkıyor. Üç karar belirleyici: nereye konduğu, ne yazdığı, seçimin adreste saklanıp saklanmadığı. Geri kalanı bu üçünün detayı.
Köşeye koy, menünün dibine gömme
Masaüstünde insanlar dil değiştirmek istediğinde sağ üst köşeye bakar. Orada olsun. Footer'a koymak teknik olarak "var" demektir, pratikte yok demektir: ziyaretçi sayfanın sonuna kadar kaydırıp bakmıyor.
Mobilde seçiciyi hamburger menüye almak sorun değil, ama menünün ilk seviyesinde dursun. "Ayarlar" içine açılan bir alt başlığın arkasına koyarsan iki dokunuş eklemiş olursun ve dil değiştirme oranı gözle görülür biçimde düşer.
Bayrak dili göstermez
Bayrak ülkeyi anlatır, dili anlatmaz. İngilizce'nin bayrağı hangisi? İspanyolca için İspanya bayrağı koyarsan Meksika'daki müşteri kendini listede bulamaz, Arapça için bir bayrak seçmek zorunda kalırsan yirmi ülkeden on dokuzunu dışarıda bırakırsın.
Çözüm basit: her dil kendi yazımıyla yazılsın. Türkçe, English, Español. Ziyaretçi anlamadığı bir dildeki "Turkish" ibaresini taramak zorunda kalmaz, kendi dilini kendi harfleriyle görür. Bayrak yalnızca gerçekten ülke seçtiriyorsan anlamlı; mağaza, kargo ve para birimi ülkeye bağlıysa orada yerinde durur.
Tek kutuda üç ayar olmaz
Kaynak metinlerde sık görülen bir çelişki var: bir yanda "bayrak + dil adı + para birimi" birleşik etiketi öneriliyor, öte yanda dil, ülke ve para biriminin bağımsız değiştirilebilmesi isteniyor. İkisi aynı anda olmaz. Birleşik etiket kombinasyonları çarpar: 8 dil ve 20 ülke desteklediğin anda tek bir açılır listede 160 satır belirir, para birimi de aynı kutuya girerse liste okunamaz hale gelir.
Bağımsızlık istiyorsan kontrolleri de ayır. Dil ayrı, teslimat ülkesi ayrı. Para birimi genelde ülkeden türeyebilir, çünkü ödeme ve vergi zaten oraya bağlı. Türkçe arayüzle euro ödemesi yapmak isteyen kullanıcı gerçekten var; bunu tek kutudan çözemezsin.
Seçim adreste dursun, oturumda değil
Dil tercihini yalnızca oturumda ya da çerezde tutan siteler iki yerden sızdırır. Kullanıcı linki paylaşır, karşı taraf sayfayı başka dilde açar. Arama motoru tek bir sürüm görür, diğer diller hiç dizine girmez.
Her dilin kendi adresi olsun: /tr/urun/..., /en/product/.... Üstüne hreflang etiketleri ve doğru <html lang> değeri gelsin; ikincisi erişilebilirlik tarafında doğrudan etkili, ekran okuyucu metni hangi dilin telaffuz kurallarıyla okuyacağına ona bakarak karar verir. Bunun için eklenti aramaya gerek yok: yönlendirme katmanında tek bir önek yakalayıp aktif dili oradan okursun, şablonlar da içerik de o önekten türer.
Otomatik tespit varsayılandır, hüküm değil
Tarayıcının Accept-Language başlığına bakıp ilk açılışta uygun dili göstermek iyi bir varsayılan. Ama bir ipucu olduğunu unutma: işletim sistemi İngilizce kurulmuş Türkiye'deki kullanıcı sayısı az değil, başlık o kişinin tercihini değil kurulum dilini söyler.
IP'ye göre zorunlu yönlendirme ise daha sorunlu. Geri dönüş yolu bırakmadan yönlendirirsen kullanıcı istediği dile ulaşamaz. Tarama tarafında da ters çalışır: Google büyük ölçüde ABD IP'lerinden gelir, herkesi IP'yle tek sürüme kilitleyen site diğer dillerinin dizine girmesini kendi eliyle engeller. Tespit et, uygula, ama seçiciyi her zaman görünür bırak ve kullanıcının açık seçimini kalıcı say.