Web sitesi yapan ve ya bu işle yakından uzaktan ilişkisi
olan herkesin karşılaştığı durumlardan bir tanesi web sitesinin çoklu dil
destekli geliştirilmesidir.
Statik web sitelerinin olduğu dönemlerde web siteleri için çoklu dil desteği demek aynı html içerik içindeki verileri tekrardan başka bir html sayfada tutarak içerik dilini değiştirmekti. Örneğin bir web sitesinde 100 tane sayfanız varsa bunu 5 dile çevirdiğinizde 500 sayfa yapmanız gerekiyordu.
Zamanla gelişen web teknolojisi bu yöntemin maliyetli, içeriğin ve web sayfa sayısının gereğinden fazla artmasına neden olduğunu ortaya çıkardı. Bu sorunu çözmek için zamanla birçok teknoloji geliştirildi. Belirli dönemlerde çok dil desteği sadece servis tabanlı geliştirilse de bunun da optimal çözüm olmadığı anlaşıldı. Buna rağmen halen birçok web sitesi bu yöntemi kullanmaya devam ediyor. Bunlara facebook’u, twitter’ı da örnek verebiliriz. Sunucularının yüksek düzeyde işlemleri karşılayabiliyor olması bu gibi siteleri etkileyemiyor olsa da, bizim yer aldığımız projelerde sadece çeviri işlemleri için web sunucuları bu işlemler için yormak mantıklı bir çözüm olmasa gerek. Zira bu sistemi kullanan projelere de bakarsanız çoğunun sunucu tabanlı dillerle(php, asp, asp.net) geliştirildiği görülür. Teknolojilerin gelişmesiyle, kullanıcılar tarafında kullanılan bilgisayarlar, mobil cihazlar, tabletler yüksek işlem gücünü desteklemesi sunucu tarafında yapılan işlemlerin bazılarını, neden client tarafına aktarmıyoruz sorusunu ortaya çıkarır. Ki buradan yola çıkarak son zamanlardaki web teknolojilerinin gelişme sürecinde sadece sunucu tabanlı işlemleri destekleyen web programlama dillerinin de, giderek popülerliğini kaybettiğini görüyoruz. Bunun yerine ise daha çok client bazlı işlemler yapan frameworkler’e rağbet her geçen gün artıyor. Bu teknolojik gelişmeler ışığında web sitelerinin çoklu dil desteği için client side çözümler üretilmiştir ve üretilmeye de devam ediliyor. Eğer AngularJS’e aşinaysanız en tercih edilen yöntemlerden bir tanesinin Angular-translate olduğunu söyleyeceğim. Aşina değilseniz bile web sitesi yapımında başka bir mvc veya mvvm modeli kullanıyorsanız Angular Translete mantığını kendi yapınıza uyarlayabilirsiniz.
Statik web sitelerinin olduğu dönemlerde web siteleri için çoklu dil desteği demek aynı html içerik içindeki verileri tekrardan başka bir html sayfada tutarak içerik dilini değiştirmekti. Örneğin bir web sitesinde 100 tane sayfanız varsa bunu 5 dile çevirdiğinizde 500 sayfa yapmanız gerekiyordu.
Zamanla gelişen web teknolojisi bu yöntemin maliyetli, içeriğin ve web sayfa sayısının gereğinden fazla artmasına neden olduğunu ortaya çıkardı. Bu sorunu çözmek için zamanla birçok teknoloji geliştirildi. Belirli dönemlerde çok dil desteği sadece servis tabanlı geliştirilse de bunun da optimal çözüm olmadığı anlaşıldı. Buna rağmen halen birçok web sitesi bu yöntemi kullanmaya devam ediyor. Bunlara facebook’u, twitter’ı da örnek verebiliriz. Sunucularının yüksek düzeyde işlemleri karşılayabiliyor olması bu gibi siteleri etkileyemiyor olsa da, bizim yer aldığımız projelerde sadece çeviri işlemleri için web sunucuları bu işlemler için yormak mantıklı bir çözüm olmasa gerek. Zira bu sistemi kullanan projelere de bakarsanız çoğunun sunucu tabanlı dillerle(php, asp, asp.net) geliştirildiği görülür. Teknolojilerin gelişmesiyle, kullanıcılar tarafında kullanılan bilgisayarlar, mobil cihazlar, tabletler yüksek işlem gücünü desteklemesi sunucu tarafında yapılan işlemlerin bazılarını, neden client tarafına aktarmıyoruz sorusunu ortaya çıkarır. Ki buradan yola çıkarak son zamanlardaki web teknolojilerinin gelişme sürecinde sadece sunucu tabanlı işlemleri destekleyen web programlama dillerinin de, giderek popülerliğini kaybettiğini görüyoruz. Bunun yerine ise daha çok client bazlı işlemler yapan frameworkler’e rağbet her geçen gün artıyor. Bu teknolojik gelişmeler ışığında web sitelerinin çoklu dil desteği için client side çözümler üretilmiştir ve üretilmeye de devam ediliyor. Eğer AngularJS’e aşinaysanız en tercih edilen yöntemlerden bir tanesinin Angular-translate olduğunu söyleyeceğim. Aşina değilseniz bile web sitesi yapımında başka bir mvc veya mvvm modeli kullanıyorsanız Angular Translete mantığını kendi yapınıza uyarlayabilirsiniz.
Peki Doğru Tercüme Mantığı Nedir?
Temel olarak çeviri için, tercüme edilecek verileri bir
değişkenle eşleştirip bu değişene karşılık gelen sonucu değişkenler tablosundan
dile uygun olarak çekmektir. Bu verileri bir tablo halinde, json dosyasında,
javascript değişkenlerinde, hatta metin dosyalarında bile tutabilirsiniz.
Bundan sonra yapacağınız tek şey verdiğiniz değişkenle eşleşen ve seçtiğiniz
dile uygun verinin çağırmak olacaktır. Buradan sonra yapılacak tek işlem
dillerin değişmesiyle, web sitesine tekrar yüklemeden sadece içindeki
değişkenlere karşılık gelen dil verilerini değiştirmek olmalıdır. Angular-translatebu yapıyı desteklediği için kullanmanızı tavsiye ederim. Kullanmak
istemiyorsanız da two-way -binding yöntemini destekleyen bir framework
kullanmanızı tavsiye edeceğim.
Anlattığım yöntemleri
kullanırsanız sonucunda bu durumla karşılaşacaksınız. Web sitenizde dil
butonlarına tıkladığınızda anlık olarak web sitenizin, seçtiğiniz dile
çevrildiğini göreceksiniz, üstelik sayfayı tekrar yüklemeden sadece içindeki verileri değiştireceksiniz. Bu da web sitenizi kullananlarda pozitif izlenim bırakacak ve yaptığınız işte büyük bir adım attığınız ve web
dünyasında ilerlediğinizi görebileceksiniz.
Yorumlar
Yorum Gönder