Blog Single

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:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın