Android Uygulamaları Dünya Dillerinde Kullanıma Sunmak

Mobil uygulama yazdık ve yayınladık. Evet buraya kadar her şey çok güzel. Peki ne kadar kullanıcıya erişebildik? Geri dönüşleri topladık mı? (Feedback) Şimdi biraz global düşünelim ve tüm dünyaya hitap ettiğimizi düşünelim. O zaman uygulamamız farklı dillerde de çalışabilmeli, öyle değil mi?

Hemen başlayalım.
Uygulamamız, kurulu olduğu cihazda sistem dili ne ise ona göre otomatik açılması için uygulamamızın ilk claas dosyamıza (örneğin; MainActivity.class) en başa bu kodları ekleyelim.

@SuppressWarnings("deprecation")
private void setLocale(Locale locale){
    Resources resources = getResources();
    Configuration configuration = resources.getConfiguration();
    DisplayMetrics displayMetrics = resources.getDisplayMetrics();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1){
        configuration.setLocale(locale);
    } else{
        configuration.locale=locale;
    }
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){
        getApplicationContext().createConfigurationContext(configuration);
    } else {
        resources.updateConfiguration(configuration,displayMetrics);
    }
}

Varsayılan dili İngilizce olsun.
Eğer cihaz dili Türkçe ise uygulama Türkçe açılsın, cihaz dili Türkçe dışında bir dil ise İngilizce açılsın istiyoruz. Sayıda sınır yok. Tüm dillere tek tek çeviri yapılabilir. Biz 2 tane ile başlayalım.  Uygulama kaynaklarından resource dizini altında “values” klasörü bulunmaktadır. Bu klasör varsayılan dile ait oldu. Şimdi Türkçe için bu klasörü kopyaladık ve “values-tr” olarak adlandırdık.  (Diğer dillerin uzantıları için tıklayınız.)

Son adım olarak values klasörleri içindeki “string.xml” dosyalarını -aynı değişkenlerin tüm dillerde bulunması koşulu ile- güncelliyoruz ve uygulamamız hazır 🙂

Bir cevap yazın

E-Posta adresiniz yayınlanmayacaktır.