Windows ve Windows Phone – Çoklu Dil Destekli Uygulama Yazmak

 

Flag-map_of_the_world

Herkese merhabalar,

Bugün Windows Phone ve Windows Store uygulamalarını nasıl birden fazla dile adapte edebileceğimizi anlatacağım. Sade Kahve uygulamama İngilizce dilini de eklemeye karar verdim ve bunun için 2 yöntem buldum. Bunları da sizlerle paylaşmak istedim. Bu arada hala Sade Kahve uygulamamı indirmediyseniz, aşağıdaki linklere tıklayarak indirebilirsiniz.

Sade Kahve

 

Windows Phone 8.1 için: Sade Kahve

Windows 8.1 için: Sade Kahve

Birinci yöntem Visual Studio üzerine eklenen “Multilingual App Toolkit”.  Multilingual App Toolkit’i nasıl kullanacağınızı ve nasıl kurulacağını detaylaryla içeren dokümana şu linkten ulaşabilirsiniz. How to Use Multilingual App Toolkit – MSDN.

Fakat blogumda anlatacağım yöntem ikinci yöntem. Ek bir bileşen kullanmadan Windows 8,8.1 ve Windows Phone 8,8.1 platformlarında uygulama geliştirirken kullanılabilir. “Resources File” ile ek olarak kütüphane veya eklenti kullanmadan, uygulamanın çoklu dil desteği sağlanabilir.

Yazıda kullanılan ekran görüntüleri, Universal App yani hem Windows 8.1 hem de Windows Phone 8.1‘e aynı anda uygulama geliştirmeyi sağlayan yapıdır. Fakat bu yöntemi “XAML” kullanan çoğu uygulamanıza burada gösterilen gibi kullanabilmeniz mümkündür. Bu örnek için 2 dil kullanacağız. “İngilizce” ve “Türkçe“.

Uygulamaya Resource File ve Dil Desteğini Eklemek

♦Proje oluşturma aşamasını atlıyorum. Resorce File‘ı var olan projenize ekleyip, var olan projenizi de çok dilli uygulamaya dönüştürebilirsiniz.

♦Çoklu dil desteğini kullanabilmeniz için her dil için kullanacağınız Resource File’ın Windows’un “BCP-47 Dil İsimlendirme Standardı” denilen formatta bir klasörün altında yer alması gerekir. Kısaca bahsetmek gerekirse Türkçe dilindeki Recource File’ın “tr-TR” klasörü, Amerikan İngilizcesi bir “Resource File”ın “en-US” kasörü altında yer alması gerekir. “BCP-47” formatında dil isimleri için şu linke tıklayabilirsiniz. BCP-47 language tag.

 

Solution Explorer’da bulunan projeye sağ tık yapıp “Add – NewFolder“a tıklayarak yeni bir klasör oluşturuyoruz. Klasörü “Strings” diye isimlendiriyoruz.

Visual Studio - Klasör Ekleme

 

Strings klasörümüzün içine “en-US” ve “tr-TR” isimlerinde iki klasör daha oluşturuyoruz.

 

en-US” ve “tr-TR” klasörlerine “Resource File” ekliyoruz. Klasörlerin üzerine sağ tık yapıp “AddNew Item” yolunu takip ediyoruz. Açılan pencereden “Resource File“ı seçiyoruz ve isimini değiştirmiyoruz. Bunun nedeni XAML’da buradan veri çekerken sadece “Name” değerini kullanmaktır. Eğer isimini değiştirirsek ve örneğin “Error” yaparsak, XAML’da erişirken “Error/Tag” diye erişebiliyoruz. Bundan dolayı ben değiştirmeden “Resources.resw” olarak bırakıyorum. Bu işlemi her iki klasör için de yapıyoruz.

Visual Studio - Resource File

 

Ardından her iki “Resource File”  dosyasına da değerlerimizi ekliyoruz. Aynı bileşende gözükecek değerlerimizin “Name” alanları aynı olmalıdır. Örneğin mesaj göstermek için butonumuz var ve metni “Mesaj Göster” olarak ayarlayacağız. İngilizcesi de “Show Message” olacaktır. Burada aynı butona set edileceği için namelerini ortak verip “buttonShowMessage.Content” diyoruz. Neden “.Text” eklediğimizi aşağıda anlatıyor olacağım. Yani Türkçe Recource File’da Name alanı “buttonShowMessage.Content” olan satırın karşılığı “Mesaj Göster”, İngilizce olanda ise Name alanı “buttonShowMessage” olan satırın karşılığı “Show Message” olacaktır. XAML ile bağlamak için de XAML’dan butona yeni aşağıdaki kodu ekliyoruz.

x:Uid=”buttonShowMessage”

olmalıdır.

Peki neden “.Text” olarak “Name” alanını doldurduk?

Bunun nedeni o “Uid“ye sahip nesnenin neyini set etmek istediğimiz alakalıdır. Örneğin Türkçe Resource File‘da “Name” alanına “buttonShowMessage.FontSize” girmiş olup “Value” kısmına da 25 girseydik, İngilizce Resource File‘da “Name” alanına “buttonShowMessage.FontSize” girmiş olup “Value” kısmına da 30 girseydik cihazın dil Türkçe olduğunda nesnenin yazı boyutu “25” olacakken, dil İngilizce olduğunda “30” olacaktı. Bunun gibi nesnenin desteklediği bütün özellikleri set edebilirsiniz. İngilizce iken metnin rengi “kırmızı” Türkçe iken “mavi” veya İngilizce iken nesne “30×45” boyutunda Türkçe iken “45×65” boyutunda olabilir.  Burada önemli olan nokta ise o girdinin neyi temsil edeceği.

Dil eklemede unutulmaması gereken bir nokta ise uygulamanın varsayılan dili. “Manifest”  dosyasında ayarlanan bu varsayılan dil, uygulamanın o dile ait “Resource File” olmaması durumunda hangi dili kullanacağını belirler. Örneğin varsayılan dil İngilizce, uygulamanız Türkçe ve İngilizce Resource File içeriyor ve uygulamanın açıldığı cihaz Fransızca ise uygulamanız varsayılan olarak “İngilizce” gözükecektir. Yani , global dilin İngilizce olduğu günümüzde, uygulamanın varsayılan dilini İngilizce ayarlamak daha akıllıca olacaktır eğer her ülke için ayrı bir “Resource File” oluşturmayacaksanız.

 

Peki  Her Şeyi Yaptık, Nasıl Dil Değişimini Test Edeceğiz?

Bunun için cihazın dilini değiştirmeniz gerekmektedir.

Windows 8 ve 8.1’de Dil Değiştirmek

Denetim Masası (Control Panel) –  Saat, Dil ve Bölge (Clock, Language and Region) – Dil (Language) menüsünde Dil Ekle (Add Language) ile dil ekleyebilir ve eklemiş olduğunuz dili seçerek yukarıda bulunan toolbardan Yukarı Taşı (Move Up)’a tıklayarak değiştirebilirsiniz. Dil değiştirdikten sonrayı uygulamanızı tekrar açarak gözlemleyebilirsiniz.

Windows 8 - 8.1 Dil Değiştirme

 

Windows Phone 8 ve 8.1’de Dil Değiştirmek

Bu işlemi Emulatör üzerinden yapıyorum fakat gerçek telefonda da aynı aşamalarla yapabilirsiniz.

Ayarlar (Settings) – Dil (Language) menüsünden Dil Ekle (Add Language) ile dil ekleyebilir ve dilin üzerine basılı tutarak açılan menüden Yukarı Taşı (Move Up)’ı seçerek dili değiştirebilirsiniz. Windows Phone’da dil değişimi yeniden başlatma gerektirmektedir.

5 6

 

Bir yazının daha sonuna geldik. Faydalı olacağını umuyorum. İletişim sayfamdaki kanallardan benimle iletişime geçmek veya soru sorabilirsiniz. Görüşmek üzere.

Reklamlar

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s