Kullanıcı Deneyiminde Lokalizasyon: Çeviriden Sonra Gelen İş
Bir siteyi başka bir dile çevirmek onu o pazara hazır hale getirmez. Kullanıcının gördüğü tarih, girdiği telefon numarası, metnin aktığı yön ve butona sığan kelime de aynı işin parçası. Bu kalemlerin çoğu bozulduğunda hata vermez: sayfa çalışır görünür, kullanıcı yanlış bilgiyi doğru sanar.
Çeviri bittiğinde iş başlar
Metni çevirmek en ucuz kısım. Asıl iş, o metnin etrafındaki her şeyin aynı pazara göre davranmasını sağlamak: butona sığan alan, adres formunun sorduğu alanlar, tarihin yazılışı, hitap biçimi. Kullanıcının "siz" mi "sen" mi duyacağı bir ürün kararıdır ve pazardan pazara değişir. "Doğu resmidir, Batı samimidir" türü genellemelerle arayüz metni yazılmaz; o pazarda gerçekten kullanılan ürünlerin diline bakmak çok daha isabetli sonuç verir.
Dil seçimini IP'ye bırakma
IP'ye bakıp kullanıcıyı bir dile kilitlemem. Konum bir tahmindir, tercih değil; Almanya'daki Türk kullanıcıya Almanca dayatmak ilk saniyede yanlış başlangıç demek. Accept-Language başlığı çok daha iyi bir sinyal, çünkü kullanıcının kendi ayarladığı şey. Tahmini varsayılan olarak kullan, seçimi görünür bir yerde bırak, seçildiğinde kalıcı sakla.
İkinci nokta: ülke ile dil aynı şey değil. İsviçre'de dört, Kanada ve Belçika'da iki resmi dil var. Dil menüsünü bayrakla göstermek bu yüzden hatalı; her dili kendi adıyla ve kendi dilinde yaz (Deutsch, Français, 日本語).
Kodlama tek başlıkta biter: UTF-8
"Asya pazarları için UTF-16" tavsiyesine sık rastlanır, web tarafında bu yanlış. HTML standardı belgenin kodlama bildirimini UTF-8 olmaya zorlar, <meta charset="utf-16"> geçersiz sayılır. Belgeyi gerçekten UTF-16 ile kodlarsan BOM'a ya da HTTP başlığına kalırsın ve Çince, Japonca için kazandığın hiçbir şey olmaz. O tavsiye sayfa kodlamasından değil, bazı çalışma zamanlarının bellekteki string temsilinden geliyor.
Font tarafı daha çok dikkat ister. CJK fontları on binlerce glif taşır, tam dosyayı yüklemek sayfayı ezer. unicode-range ile parçala, alt küme çıkarırken o dilde fiilen kullanılan blokları düşürme. Testi lorem ipsum ile değil, hedef dilin kendi metniyle yap.
Sağdan sola yazmak metnin yönü değildir
Arapça veya İbranice eklerken düzenin tamamı aynalanır: kenar boşlukları, ikonların bakış yönü, ilerleme çubuğunun aktığı taraf, geri oku. dir="rtl" tek başına yetmez. CSS'te margin-left yerine margin-inline-start gibi mantıksal özelliklere geçersen düzen iki yönde de kendiliğinden doğru kurulur. Rakamlar ve latin harfli marka adları sağdan sola bir metnin içinde bile soldan sağa akar, onları zorla çevirme.
Genişleme payı da baştan bırakılır. Oransal olarak en çok şişen yer uzun paragraflar değil, tek kelimelik buton etiketleridir. Sabit genişlikte kurulan bir buton ilk çeviride ya kırpar ya taşar.
Tarih ve sayılar hata vermeden yanlışa döner
MM-DD-YYYY ile DD-MM-YYYY farkı çoğu yerde bir biçim tercihi gibi anlatılır. Asıl sorun şu: yanlış okuma çoğu zaman geçerli bir tarih üretir. Bir yılda hem günü hem ayı 12 veya daha küçük olan 144 gün var; bunların 12'si (01-01, 02-02 gibi) iki okumada da aynı sonucu verir. Geriye kalan 132 gün, yani yılın yaklaşık %36'sı, karşı biçimde okununca farklı ama tamamen geçerli başka bir tarihe dönüşür. 03-04 birine 3 Nisan, ötekine 4 Mart görünür ve hiçbir katmanda uyarı çıkmaz.
Veri katmanında tek biçim tutulur: ISO 8601, yani YYYY-MM-DD. Ekranda ayın adını yazdırmak belirsizliği tümden bitirir. Aynı dikkat sayılarda geçerli, 1,500 bir kullanıcı için bin beş yüz, diğeri için bir buçuk. Tutarları elle dizgi birleştirerek kurma, biçimlendirmeyi yerel ayara bırak (PHP'de NumberFormatter, tarayıcıda Intl.NumberFormat).
Katı form doğrulaması kullanıcıyı kapıda durdurur
Ad ve soyadı iki ayrı zorunlu alan olarak sormak, tek isimli ya da çok parçalı ad taşıyan kullanıcıyı bilerek yanlış veri girmeye zorlar; çoğu senaryoda tek bir ad alanı yeter. Posta kodu her ülkede yok, olan yerlerde de hepsi rakamdan ibaret değil; Kanada, Hollanda ve İngiltere harf karıştırır. Telefonda ülke kodunu ayrı alanda tut ve kalan kısma dar bir maske dayatma. Adres sırası bile sabit değil: bir yerde sokak adı önce gelir, başka yerde numara.
Asıl maliyet ilk çeviride değil
Lokalizasyon projeleri ilk sürümde değil, üçüncü ayda çöker. Türkçe tarafa yeni bir metin eklenir, diğer dillerde karşılığı olmadığı için ya boş görünür ya sessizce Türkçe kalır. Eksik anahtarları raporlayan bir kontrolü derleme sürecine bağla, eksik çeviri görünür olsun. SEO tarafında her dile ayrı ve kalıcı URL ver, hepsini hreflang ile birbirine bağla. Aynı adresin içeriğini ziyaretçiye göre değiştirmek arama motorunun hangi sürümü listeleyeceğini bilmesini engeller.