Yazdığımız uygulamalar büyüdükçe ve biz dünyanın her yerinden insanların uygulamamızı kullanabilmesini istedikçe, uygulamamızı daha fazla dili destekler hale getirmemiz gerektiği kaçınılmaz. Neyse ki bu iş aslında o kadar da zor değil.
Daha önceki uygulamalarımızda, uygulama içinde geçecek metinleri strings.xml dosyasına yazmayı ve oradan kullanmayı neden önerdiğimi, bu yazıda daha iyi anlayacaksınız. :)
Uygulama olarak bir önceki yazımda yaptığım kayıt formu uygulamasını kullanacağım.
CokluDilOgreniyorum isminde yeni bir proje oluşturup, içindeki dosyaların hepsini bir önceki projedeki dosyalarla deeğiştirdikten sonra, aşağıda gördüğünüz açık olan EtkinlikBir.java, EtkinlikIki.java, Sabitler.java, strings.xml ve manifest dosyasının içinde bir önceki uygulamanın paket adından doğan hataları düzelterek işe başlıyoruz.
Gördüğünüz gibi bu uygulamanın paket adı
com.androidce.cokludilogreniyorum şeklinde.
Şimdi
strings.xml dosyamızı açalım.
Çoklu dil destekleyen uygulamalarda genellikle diğer dillere çevirileri, uygulamayı yazan insan yap(a)mayacaktır. Bu yüzden de çeviriyi yapacak diğer insanların işini kolaylaştırmak ve daha doğru çeviriler yapabilmelerine olanak sağlamak adına, kullandığımız anahtar kelimeleri aşağı yukarı herkesin anlayabileceği şekilde yazmakta fayda var. Ben burada anahtar kelimelerimi İngilizce'ye çevireceğim.
Daha kolay değişiklik yapabilmek için Eclipse'in
ara & değiştir (search & replace) özelliğinden faydalanalım.
Aşağıda gördüğünüz gibi değiştirilecek metni seçtikten sonra
Ctrl + H tuşlarına basıyoruz.
Bu sorgu ekranında aşağıdaki
Değiştir (Replace) tuşuna basıyoruz.
Yeni metni yazıp
OK'e tıkladığımızda Eclipse, tüm
metin_ eşleşmelerini
text_ ile değiştirecek. Gördüğünüz gibi 3 dosya içinde 26 yerde değişiklik yapılacağına dair bilgi veriliyor.
Aşağıda da gördüğünüz gibi değişiklikler yapıldı.
Şimdi etiketlerin kalan kısımlarını da değiştirelim. İşlemin bitmiş halini aşağıda görebilirsiniz.
Şu an hatalar almış olabilirsiniz, bu normal bir durumdur. Bu etiketlerin kullanıldığı
java dosyalarını da düzenlememiz gerekiyor.
Gördüğünüz gibi hala eski etiketler kullanılıyor. Bunun gibi hata vermiş noktaları da düzelttikten sonra bir sonraki adıma geçebiliriz.
Artık etiketleri de herkesin anlayabileceği halde olan bir uygulama var elimizde. Şimdi bu uygulamaya
İngilizce dil seçeneğini ekleyelim.
Bunun için
res dizini içindeki
values dizininden bir kopya oluşturacağız.
values dizini seçiliyken
Ctrl tuşuna basarak bu dizini
res dizini üzerine
taşıyoruz. Böylece aynı dizine
values dizininden bir kopya oluşturacağız.
Oluşacak yeni dizine
values-en ismini veriyoruz. Böylece eğer uygulamanın çalıştığı cihazın dili
İngilizce'yse,
values yerine values-en dizini içindeki
strings.xml kullanılacak. Aynı şekilde Türkçe dili için de
-tr ekleyebilirdik values kelimesinin sonuna. Ama bu durumda uygulamamızın varsayılan dili zaten Türkçe ve biz ek olarak İngilizce dilini ekliyoruz.
Şimdi artık çeviri zamanı.
values-en dizini içindeki
strings.xml dosyasını açıp metinleri çevirmeye başlayabiliriz.
Yukarıda bahsettiğim gibi, eğer siz bu metinleri çeviremeyecekseniz, bu
strings.xml dosyasını başka birisine gönderip ondan çevirmesini ve size geri göndermesini isteyebilirsiniz. Bu şekilde başkaları da sizin uygulamanıza katkı sağlayabilir. Ve her isteyene uygulamanızı kendi dilinde çalıştırma imkanı da sunmuş olursunuz.
Çeviri bittikten sonra aşağıdaki gibi bir hale gelmiş olmalı
strings.xml dosyanız.
Artık uygulamayı çalıştırıp denemelerimiz yapabiliriz ama şöyle bir durum var.
Android 2.2 sürümüyle uygulama geliştirdiğimiz için eğer elinizde bu sürüme ait bir sanal cihaz varsa içinde Türkçe desteği olmayacaktır. O nedenle uygulamayı Android 2.2 olan sanal bir cihazda çalıştırırsanız dil İngilizce olduğundan dolayı uygulamanız direk İngilizce başlayabilir.
Peki 2 dili birden nasıl deneyebiliriz? Basit. Emulatörde
Türkçe desteği Android 2.3.3 sürümünden itibaren var.
Bu yazıda anlattığım gibi Android 2.3.3 veya üstü bir sürüme sahip yeni bir sanal cihaz oluşturun. Daha sonra çalıştırmayı aşağıdaki gibi gibi yapın.
Eğer
Android Application altında bir seçenek yoksa
Android Application'a çift tıklayarak yeni bir ayar oluşturabilirsiniz. Daha sonra aşağıdaki ekranı görebilmeniz gerek.
Target kısmından cihazımızı seçeceğiz. Buradaki seçeneğin
Manual'de durmasında fayda var. Böylece uygulamanızı çalıştırırken hangi cihazda çalıştıracağınızı seçebilirsiniz.
Gördüğünüz gibi uygulama çalıştırılmadan önce hangi cihazla çalıştırmak istediğimizi bize soruyor. Ben
2.3.3 olan sürümü seçiyorum.
İşte uygulamamız çalıştı. Ben bu sanal cihazın dilini önceden Türkçe'ye ayarladığım için uygulamamız
Türkçe çalıştı.
Şimdi uygulamadan geri tuşuyla çıkıp dil ayarlarını değiştirelim.
Dili
İngilizce yaptıktan sonra uygulamayı tekrar başlattığınızda sonucu görebilirsiniz.
Gördüğünüz gibi artık uygulamamız birden fazla dili destekliyor.
Bu yazıda bir uygulamaya nasıl birden fazla dil desteği eklendiğini, bunu yaparken Eclipse'in bize sağladığı bazı kolaylıkları ve birden fazla sanal cihaz varken istediğiniz birisinde uygulamanızı nasıl çalıştırabileceğinizi anlatmaya çalıştım.
Bu yazıda oluşturduğum projeyi
buradan indirebilirsiniz.
İnşallah faydalı olmuştur.
Kolay gelsin, iyi çalışmalar. :)