Android ile Çoklu Dil Desteği Sistemi

Merhabalar, sizlere bu makalemde Android ile Çoklu Dil Desteği Sisteminin yapısı ve Strings.xml dosyası yapısından bahsetmek istiyorum. Yararlı olması dileğiyle.

Öncelikle makaleye başlamadan önce, Web yazılım dillerinde bu sistemin nasıl yapılabileceği hakkında bilgi sahibi olmak istersiniz diye düşündüm, daha önce yazmış olduğum makaleye şuradan ulaşabilirsiniz;

Konuyu dağıtmadan, Android'e dönelim.

Neden Android ile çoklu dil desteği kullanılır ?

  • Bir uygulamaya ait kullanıcı sayısı arttığında ihtiyaçlar da artabilir. Bu ihtiyaçlardan birisi de dil desteği olabilir. Uygulamanızı sadece bir ülke yada bir dilde kullanım gibi bilgileri bir kenara bıraktığımızda, farklı dilde ve ülkelerdeki kullanıcılar da olabileceğini görebilirsiniz.
  • Uygulama dillerinin yetersiz olması veya farklı dili bilen kullanıcıların uygulamayı tam manasıyla kullanamaması.
  • Global content oluşturup, daha fazla dil desteğiyle daha fazla kullanıcı, buna bağlı olarak ise uygulama içi daha fazla reklam gösterimleri sağlama hedefiniz olabilir.
  • Uygulama destek ve kullanıcı arayüzünde kolaylık sağlamak.
  • Bu maddeler daha da arttırılabilir. Gerisi hayal gücünüz.

Android Çoklu dil desteği sisteminin;

  • Artıları;
    • Uygulamanıza ait, farklı dil desteği sayesinde, uygulama kullanıcıları kendi yerel dillerinde destek talepleri oluşturabilr yada sizinle kendi dillerinde iletişim kurabilirler.
    • Uygulama kullanıcılarınızın her biri, uygulama arayüzünü rahatlıkla, güçlük çekmeden kullanabilir duruma gelir.
    • Uygulama içi gelir kaynağı olarak reklam sistemi kullanıyorsanız, uygulama reklamları her ülkenin yerel dilinde gösterileceğinden, bu işi karlı bir hale dönüştürebilirsiniz.
  • Eksileri;
    • Uygulama yönetim ekibiniz yoksa, farklı dillerden gelen istekleri karşılamakta ve yönetimde bazı zamanlarda zorlanabilirsiniz.

Android ile Çoklu dil desteği sisteminde strings.xml dosyası ve çalışma mantığı;

Android İşletim Sistemi, temel olarak yapısı gereği her uygulamanın içerisinde resource dosyalarının tutulabilirliğine izin verir. Bu izinlerden birisi de Values klasörü içerisindeki strings.xml dosyasıdır.

  • XML tabanlı olan ve içerisinde String,integer gibi değerleri tag value'ları olarak tutabileceğiniz bir dosya olan strings.xml, Android uygulamanızın varsayılan dil dosyası olarak söylenebilir. strings.xml resource dosyası tag olarak, String ve integer değerler tutabilir.
    • Android uygulamanın tek dilde çalışması
      • Uygulamanızın amacı doğrultusunda tek bir dil ile çalışmak isteyebilirsiniz. Uygulama geliştirme aşamalarında problemler ile karşılaşmamak amacı ile Activity ve Class dosyalarınız içerisinde String, yerine göre ise integer değerleri tutmak geliştiriciler tarafından önerilmez.
      • Uygulamanız tek bir dilde hizmet verecekse, hangi ülke ve hangi dilden uygulamanız kullanılacak olunursa olunsun tek bir dil dosyası ile çalışırsınız. O dosyanız ise ülke dil kısaltmasının ilk 2 karakterli .xml dosyası olmaması gerekir. strings.xml dosyası kullanılması gerekir. Aksi takdirde farklı dillerde o değerler olmadığından hataya düşebilir yada karışık ifadeler görebilirsiniz.
    • Android uygulamanın çoklu dil desteği sağlaması
      • Android uygulamanızın sadece bir dilde faaliyet sunmasını istemeyebilirsiniz. Android, çoklu dil desteği sistemlerinin kullanımında kolaylık sağlanmasını yapısı bakımından olanak tanır.
      • Çoklu dil desteği kullanımında dikkat edilmesi gereken en önemli nokta, varsayılan dil dosyasıdır. Yani strings.xml dosyasından söz ediyoruz. Desteklediğiniz diller içinde, uygulama kullanıcınızın dili olmadığı takdirde gösterilecek dil manasını taşır.
      • Her Android uygulamasında çoklu dil eklerken, app > res > values klasörü içerisinde ;
        • Ekleyeceğiniz her dil, küçük harfler ile iki haneli karakter kodu olarak tanımlanması gerekmektedir.

Çoklu dil dosyası nasıl eklenir;

  • app > res > values sağ tıklayın, New > Values resource file
    • File name olarak ise, iki karakterli dil kodu yazınız küçük harfler ile,
    • Available qualifiers olarak ise; Locale seçin.

Android create language file

  • Uygulama dilini, Language kısmından seçiniz,
  • Specific Region Only ise, Bir dili kullanan bölgeler yada ülkeler gibi düşünebilirsiniz.
    • Örneğin; Türkçe, Türkiye haricinde Kıbrısda da kullanılmaktadır.

Çoklu dil dosyası değerlerine nasıl erişilir ?

Örneğin ben uygulamamın resource kısmında tr.xml oluşturup, string name="hello" tag'i oluşturdum. Değer olarak ise içerisinde, merhaba yazıyor. bir de en.xml oluşturdum aynı tagler aynı şekilde ekli. hello tag'i içerisindeki string değeri hello yazdım.

Activity yada class dosyasında bu değeri okumam gerektiği durumlarda;

  • String hello = getResources().getString(R.string.hs_1_hello);

şeklinde kullanabilir duruma geldim.

Cihaz dili;

  • İngilizce olanlar; hello olarak değeri görür.
  • Türkçe olanlar; merhaba olarak görür.
  • Türkçe yada İngilizce olmayanlar ise, strings.xml dosyasında ne yazıyorsa onu görür.

Elimden geldiğince anlatmaya çalıştım. Umarım faydalı olabilmişimdir.

Bu makaleyi paylaşın:

3 Comments

  1. Kasim kardeş2018-08-19 21:00:02

    Merhaba şerif hoca bi yardimci olurmusun ben bi cihaz aldim casper via f1 internette arastirdim acaba hangi ulkenin telefonu diye ve çin olduğunu ve aslinda gionee s9 olduğunu anladim ve gionee s9 cihazin stock yazilimuni yukledim bu sefer çift hatli oldu imei noyuda attim şimdi çift hatli olarak kulaniyorum fakat türkçe dil desteği yok çok araştirdim fakat beceremedim casper via f1 den aldiğim frameworku gione s9 un sistem frameworkunun üzerine kopyalayinca türkçe dil desteği geliyor yane dil seçiminde türkçe var daha doğrusu bi suru dil var ama çince ingilizce haricinde dil seçemiyorum yardimci olurmusun türkçeye nasil çeviririm android 6.0 kulaniyorum ve gionee nin orjinal yazilimi olan amigo os 3.5.3 kulaniyorum bi yardimci olurmusun bu yazilimi turkçeye çevirebilirmiyim saygilar

Bir yorum bırakın