20 Temmuz 2009

Windows Mobile 6.5 - Widget' ların Lokalize Edilmesi

Genel olarak bakıldığında, WM 6.5 üzerinde geliştirdiğiniz widget' lar zaman içerisinde farklı bölgesel dil ayarlarına sahip cihazlar tarafından kullanılabilecektir. Bu tip durumlarda kullanıcıların ihtiyaçlarına daha doğru cevap verebilmek adına geliştirdiğiniz widget’ ın ilgili cihazın bölgesel dil ayarlarına göre lokalize olmasını isteyebilirsiniz. Bu yazımızda farklı bölgesel dil ayarlarına göre kendi kendini otomatik olarak lokalize eden Widget’ lar üzerinde çalışacağız.

Konumuza başlamadan önce lokalizasyon kavramına kısaca değinmek, temel mantığını kavramak mantıklı olacaktır. Lokalizasyon, kelime anlamı localization yani bölgeselliştirme kelimesinden gelmektedir. Bölgeselleştirme kelimesinin ise yazılım geliştirme ortamındaki kelime anlamına bakıldığında, geliştirilen uygulamanın farklı dil / bölgelere göre “eğer daha önceden hazırlanmış” ise ilgili değişiklikleri otomatik olarak gerçekleştirmesidir.

Bu noktada bölgesel ayarlara bakıldığında temel olarak iki farklı parametre görmekteyiz. Bu parametreler ;

dil – BÖLGE

olarak incelenebilmektedir. Örnek vermemiz gerekirse ; en-US lokalizasyon değeri Amerika’ da konuşulan ingilizce dilini temsil etmektedir. Bu noktada en-UK değerinin sisteme tanımlanması, ingiliz aksanına uygun bir bölgeselliştirme / lokalizasyon yapıldığı anlamına gelmektedir.

Bu mini bilgilendirmenin sonunda hızlı bir şekilde örneğimize başlayalım. Amacımız standart olarak tr-TR olarak ifade edilen Türkiye türkçesi ile çalışan, fakat eğer cihaz üzerindeki değer amerikan ingilizcesi olarak belirlenmiş ise bu değere uygun bir arayüz göstermek olacaktır.
Bu noktada işin en keyifli kısmı ise bu işlemi gerçekleştirmek için çok az bir efor sarfedecek olduğumuzdur. Örneğimize geçmeden önce WM 6.5 üzerinde Widget’ ımızın test edilebilmesi adına Bölgesel ayarların nereden değiştirilebildiğine bir göz atalım. WM 6.5 kurulu mobil cihazımızda sırasıyla ;

Start -> Settings -> System -> Regional Settings

seçenekleri üzerinden ilgili değeri değiştirebilirsiniz.



Bu değerin hangi noktadan değiştirilebildiğine değindikten sonra hızlı bir şekilde widget’ ımızı geliştirmeye başlayalım. Widget’ ın yapısı hakkında bir önce yazmış olduğum yazıdan faydalanabilirsiniz.
Widget’ ların lokalize edilmesi daha öncede belirttiğimiz üzere çok kolaydır. Bu noktada standart olarak çalıştırılacak dilde dosyaların hazırlanması, eğer varsa “uygun lokalize ayarlara” göre çalıştırılacak dilde dosyaları da ayrıca hazırlamamız gerekmektedir. Örneğimizde Widget’ ın içeriğini oluşturan HTML dosyası lokalize edilmiş, farklı dillere göre iki farklı dosya oluşturulmuştur.

Türkçe hazırladığımız HTML içerik dosyası.



Bu ise amerikan ingilizcesi (en-US) bölgesel dil ayarlarına sahip cihazlarda çalıştırılmasını istediğimiz içerik dosyasıdır.



Peki bu noktada işlemler nasıl devam etmektedir ?
Widget engine çalışma zamanında ilk olarak dil ayarlarınıza bakar. Daha sonra widget’ ın içeriğinde bu dil ayarlarına “birebir uygun olarak isimlendirilmiş” bir klasör arar ! Eğer bu klasörü bulabilirse içeriği tamamen klasör içerisinden, bulamaz ise root’ tan çalıştırır ! Hepsi bu kadar ! Bu noktada dikkat etmemiz gereken noktalar nelerdir ?

Dosyaların içeriğinin farklı olması ve onları farklı klasörlere koyacak olmamız isimlerini farklı verecek olduğumuz anlamına gelmemektedir. Çünkü widget’ ın konfigurasyon dosyası (config.xml) tek bir tane olup sadece root’ ta bulunmaktadır. Dolayısıyla lokalize ettiğimiz tüm içeriği (bu bir *.js dosyası da olabilir) aynı isimle isimlendirmemiz gerekmektedir. Ve bir sonraki aşamada root’ un içine uygun bölgesel dil ayarlarının ismine sahip bir klasör oluşturmalı, dosyayı bu klasörün içerisine yerleştirmeliyiz. Son görünüm aşağıdaki gibi olmalıdır.



Klasörün içerisine girdiğimizde ise ;



Tek bir dosya bulunmaktadır. Dikkat edecek olursanız lokalize etmek istediğimiz dosyaları aynı isimle uygun klasörün içerisine yerleştirdik. Peki konfigurasyon dosyası bu noktada nasıl hazırlanmalıdır ?


Dikkat edecek olursanız dosya içerisinde lokalizasyon ile ilgili en ufak bir ayarlamada bulunmadık. Sistem run-time’ da işlemi otomatik olarak gerçekleştirmekte ve uygun dosyayı bulup çalıştırmaktadır. Bu noktada sayfayı iki kez hazırlamak yerine javascript fonkyisonunu external bir *.js dosyası içerisine yerleştirip sadece bu *.js dosyasını lokalize de edebilirdik.
Sıra geldi uygulamamızı paketlemeye ! Her zaman olduğu gibi önce tüm dosyaları (klasör dahil) seçip *.zip haline, daha sonra *.wgt uzantılı haliyle kaydediyoruz.



İşte bu kadar ! Haydi widget’ ımızı makinemizin üzerine gönderelim.
Kurulum aşamasında default language olan Türkçe değerler görünmektedir. Örneğimizde makinemiz (emülatörümüz) ilk açıldığında dil ayarları türkçe olarak gelmekte, dolayısıyla uygulamayı ilk çalıştırdığımızda lokalizasyon türkçe olarak gerçekleşmektedir.



İşte türkçe widget’ ımız ! Dil ayarlarını en-US olarak değiştiriyoruz.



Ve makinemize Soft Reset atıyoruz. Widget’ ımızı tekrar çalıştırıp selamla tuşuna bastığımızda (Selamlar yazısını da bu noktada daha önceden lokalize edebilirdik) ;



İşte sonuç ! Çalışma zamanında lokalizasyon gerçekleştirilmiştir !
Bir başka yazımızda görüşmek dileğiyle. Keyifli günler.

Hiç yorum yok:

Yorum Gönder