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. :)

0 yorum:

Yorum Gönder

 
Top