Uygulamaya özgü dil tercihleri

Sistem ayarlarında uygulamaya özgü diller

Çok dilli kullanıcılar çoğu durumda sistem dillerini İngilizce gibi tek bir dile ayarlar, ancak belirli uygulamalarda Felemenkçe, Çince veya Hintçe gibi başka diller de seçmek isterler. Uygulamaların bu kullanıcılara daha iyi bir deneyim sunmasına yardımcı olmak için Android 13, birden fazla dili destekleyen uygulamalara yönelik aşağıdaki özellikleri sunar:

  • Sistem ayarları: Kullanıcıların her uygulama için tercih ettikleri dili seçebilecekleri merkezi bir konum.

    Uygulamanızı, uygulamaya özgü dil tercihlerini desteklemek ve sistem ayarlarında görünmek için gereken dosyaları otomatik olarak oluşturacak şekilde yapılandırabilirsiniz. Daha fazla bilgi edinmek için Uygulama başına otomatik dil desteğini etkinleştirme talimatlarına bakın.

  • Ek API'ler: LocaleManager içindeki setApplicationLocales ve getApplicationLocales yöntemleri gibi bu herkese açık API'ler, uygulamaların çalışma zamanında sistem dilinden farklı bir dil ayarlamasına olanak tanır.

    Bu API'ler sistem ayarlarıyla otomatik olarak senkronize olur. Bu nedenle, özel uygulama içi dil seçiciler oluşturmak için bu API'leri kullanan uygulamalar, kullanıcılarının dil tercihlerini nerede seçtiklerinden bağımsız olarak tutarlı bir kullanıcı deneyimi yaşamasını sağlar. Herkese açık API'ler, standart kod miktarını azaltmanıza, bölünmüş APK'ları desteklemenize ve uygulama düzeyindeki kullanıcı dili ayarlarını depolamak için Uygulamalar için Otomatik Yedekleme'yi desteklemenize de yardımcı olur.

    Önceki Android sürümleriyle geriye dönük uyumluluk için eşdeğer API'ler AndroidX'te de mevcuttur. Ancak geriye dönük uyumlu API'ler, Android 12 (API düzeyi 32) ve önceki sürümlerde uygulama bağlamıyla değil, AppCompatActivity bağlamıyla çalışır. Geriye dönük uyumlu API'lere Appcompat 1.6.0 veya sonraki sürümlerle erişin.

Bu özelliği uygulama hakkında genel bilgiler

Aşağıdaki tabloda, farklı kullanım alanlarına göre önerilen uygulamalar gösterilmektedir.

Kullanım alanı Önerilen uygulama
Uygulamanızda uygulama içi dil seçici yok
  1. Bir LocaleConfig dosyası oluşturmak ve uygulamanızın dillerini sistem ayarlarına eklemek için uygulama başına otomatik dil desteğini etkinleştirin.
  2. İsteğe bağlı olarak, uygulama içi dil seçici eklemek istiyorsanız: Compose'da bir dil seçici uygulayın veya AndroidX kitaplığını kullanıp autoStoreLocales aracılığıyla geriye dönük uyumluluğu desteklemek için API uygulamamızı etkinleştirin.
Uygulamanızda zaten uygulama içi dil seçici var
  1. Bir LocaleConfig dosyası oluşturmak ve uygulamanızın dillerini sistem ayarlarına eklemek için uygulama başına otomatik dil desteğini etkinleştirin.
  2. Kullanıcıların tutarlı bir deneyim görmesini sağlamak için uygulamanızın özel mantığını Compose veya Herkese açık API'ler'i kullanacak şekilde taşıyın.
  3. Aşağıdaki uç durumları ele alın:
    1. Uygulamanız, Android 13 çalıştıran bir cihazda ilk kez çalıştırıldığında AppCompatDelegate.setApplicationLocales çağrılır.
    2. Aşağıdaki durumlarda, önceden kullanıcı tarafından istenen yerel ayarları sisteme sağlamak için AppCompatDelegate.setApplicationLocales işlevini çağırın:

Kullanıcılar için sistem ayarları

Android 13'ten itibaren Android, uygulamaya özgü dil tercihlerini ayarlamak için sistem ayarlarında merkezi bir konum içerir. Uygulamanızın dillerinin Android 13 veya sonraki sürümleri çalıştıran cihazlardaki sistem ayarlarında yapılandırılabilir olmasını sağlamak için uygulama başına otomatik dil desteğini etkinleştirin (önerilir) veya desteği manuel olarak yapılandırın.

Uygulama bazında otomatik dil desteğini etkinleştirme

Bu yöntem, XML değişiklikleri gerektirmediği için uygulamalarınıza uygulama başına dil desteği eklemenin önerilen yoludur.

Android Studio Giraffe ve AGP 8.1'den itibaren uygulamanızı uygulamaya özgü dil tercihleri otomatik olarak destekleyecek şekilde yapılandırabilirsiniz. AGP, proje kaynaklarınıza göre LocaleConfig dosyasını oluşturur ve son manifest dosyasına bu dosyayla ilgili bir referans ekler. Böylece artık bunu manuel olarak yapmanız gerekmez. AGP, LocaleConfig dosyasına eklenecek yerel ayarları belirlemek için uygulama modüllerinizin res klasörlerindeki kaynakları ve kitaplık modülü bağımlılıklarını kullanır. Bu nedenle, uygulamanıza yeni bir dil için kaynak eklediğinizde LocaleConfig dosyasını güncellemeniz gerekmez.

Uygulama başına otomatik dil özelliğinin, Android 13 (API düzeyi 33) veya sonraki sürümleri çalıştıran uygulamaları desteklediğini unutmayın. Özelliği kullanmak için compileSdkVersion değerini 33 veya daha yüksek bir değere ayarlamanız gerekir. Android'in önceki sürümlerinde uygulamaya özgü dil tercihleri yapılandırmak için API'leri ve uygulama içi dil seçicileri kullanmaya devam etmeniz gerekir.

Uygulama başına otomatik dil desteğini etkinleştirmek için aşağıdaki adımları uygulayın:

  1. Özelliği etkinleştirmek için modül düzeyindeki build.gradle.kts dosyasının (Groovy kullanıyorsanız build.gradle dosyası) androidResources {} bloğundaki generateLocaleConfig ayarını kullanın. Bu özellik varsayılan olarak devre dışıdır.

Kotlin

    android {
      androidResources {
        generateLocaleConfig = true
      }
    }

Modern

  android {
    androidResources {
      generateLocaleConfig true
    }
  }
  1. Varsayılan bir yerel ayar belirtin:
    1. Uygulama modülünün res klasöründe resources.properties adlı yeni bir dosya oluşturun.
    2. resources.properties dosyasında, unqualifiedResLocale etiketiyle varsayılan yerel ayarı belirleyin. Yerel adları biçimlendirmek için Yerel adlar nasıl oluşturulur? başlıklı makaleyi inceleyin.

AGP, bu varsayılan yerel ayarı ve belirttiğiniz tüm alternatif yerel ayarları, res klasöründeki values-* dizinlerini kullanarak otomatik olarak oluşturulan LocaleConfig dosyasına ekler.

Yerel adları oluşturma

Yerel ayar adlarını oluşturmak için dil kodunu isteğe bağlı komut dosyası ve bölge kodlarıyla birleştirin. Her birini tireyle ayırın:

  • Dil: İki veya üç harfli ISO 639-2 kodunu kullanın.
  • Alfabe (isteğe bağlı): ISO 15924 kodunu kullanın.
  • Bölge (isteğe bağlı): İki harfli ISO 3166-1-alpha-2 kodu veya üç haneli UN_M.49 kodunu kullanın.

Örneğin, varsayılan yerel ayarınız Amerikan İngilizcesi ise:

unqualifiedResLocale=en-US

Sistem ayarlarına desteklenen dilleri eklemek için android:localeConfig simgesini kullanın.

Uygulamanızın dillerinin, Android 13 veya sonraki sürümleri çalıştıran cihazlardaki sistem ayarlarında yapılandırılabilir olmasını sağlamak için uygulamanızı manuel olarak ayarlayabilirsiniz. Bunu yapmak için bir locale_config XML dosyası oluşturun ve android:localeConfig özelliğini kullanarak uygulamanızın manifest dosyasına ekleyin. android:localeConfig manifest girişinin atlanması, kullanıcıların sistem ayarlarında uygulamanızın dilini sistem dillerinden bağımsız olarak ayarlayamaması gerektiğini gösterir.

Uygulamanızın desteklediği dilleri kullanıcının sistem ayarlarına manuel olarak eklemek için:

  1. res/xml/locale_config.xml adlı bir dosya oluşturun ve uygulamanızın res/values/strings.xml içinde belirtilen yerel ayar olan nihai yedek yerel ayarı da dahil olmak üzere uygulamanızın dillerini belirtin.

    Biçim koşulları için Yerel adlar nasıl oluşturulur? başlıklı makaleyi inceleyin. En çok tercih edilen yerel ayarların listesi için örnek locale_config.xml dosyasına da bakın.

    Örneğin, aşağıdaki dilleri destekleyen bir uygulama için locale_config.xml dosyasını şu şekilde biçimlendirin:

    • Nihai yedek yerel ayar olarak İngilizce (ABD)
    • İngilizce (BK)
    • Fransızca
    • Japonca
    • Çince (Basitleştirilmiş, Makao)
    • Çince (Geleneksel, Makao)
    <?xml version="1.0" encoding="utf-8"?>
    <locale-config xmlns:android="http://schemas.android.com/apk/res/android">
       <locale android:name="en-US"/>
       <locale android:name="en-GB"/>
       <locale android:name="fr"/>
       <locale android:name="ja"/>
       <locale android:name="zh-Hans-MO"/>
       <locale android:name="zh-Hant-MO"/>
    </locale-config>
    
  2. Manifeste bu yeni dosyayı işaret eden bir satır ekleyin:

    <manifest>
        ...
        <application
            ...
            android:localeConfig="@xml/locale_config">
        </application>
    </manifest>
    

Android Ayarları'ndaki uygulama başına dil listesinde gösterilen dil grubunu özelleştirmek için uygulamanızın localeConfig bölümünü LocaleManager.setOverrideLocaleConfig ile dinamik olarak güncelleyebilirsiniz. Bu sayede, bölgeye göre dil listesini özelleştirebilir, A/B denemeleri yapabilir ve uygulamanız aşağıdaki örnekte gösterildiği gibi sunucu tarafında yerelleştirme push'ları kullanıyorsa güncellenmiş yerel ayarlar sağlayabilirsiniz:

//For setOverrideLocaleConfig
val localeManager = applicationContext
    .getSystemService(LocaleManager::class.java)
localeManager.overrideLocaleConfig = LocaleConfig(
LocaleList.forLanguageTags("en-US,ja-JP,zh-Hans-SG")
)

//For getOverrideLocaleConfig
// The app calls the API to get the override LocaleConfig
val overrideLocaleConfig = localeManager.overrideLocaleConfig
// If the returned overrideLocaleConfig isn't equal to NULL, then the app calls the API to get the supported Locales
val supportedLocales = overrideLocaleConfig.supportedLocales()

Ayrıca, IME'ler artık klavye dilini aşağıdaki gibi güncellemek için mevcut uygulamanın kullanıcı arayüzü dilini öğrenmek üzere LocaleManager.getApplicationLocales kullanabilir:

val currentAppLocales: LocaleList = applicationContext.getSystemService(LocaleManager::class.java).getApplicationLocales(appPackageName)

Gradle'da desteklenen dilleri belirtme

Henüz mevcut değilse uygulamanızın modül düzeyindeki build.gradle dosyasında resourceConfigurations özelliğini kullanarak aynı dilleri belirtin:

android {
  ...
  defaultConfig {
    resourceConfigurations += ["en", "en-rGB", "fr", "ja", "b+zh+Hans+MO", "b+zh+Hant+MO"]
  }
}

resourceConfigurations özelliği mevcut olduğunda derleme sistemi, APK'ya yalnızca belirtilen dillerdeki dil kaynaklarını dahil eder. Bu sayede, uygulamanızın desteklemediği dilleri destekleyebilecek diğer kitaplıklardan çevrilmiş dizelerin dahil edilmesi önlenir. Daha fazla bilgi için Uygulamanızın desteklediği dilleri belirtme başlıklı makaleyi inceleyin.

Kullanıcılar, sistem ayarlarında uygulama dilini nasıl seçer?

Kullanıcılar, sistem ayarlarından her uygulama için tercih ettikleri dili seçebilir. Bu ayarlara iki farklı şekilde erişebilirler:

  • Sistem ayarları üzerinden erişim

    Ayarlar > Sistem > Diller ve Giriş > Uygulama Dilleri > (bir uygulama seçin)

  • Uygulamalar ayarları üzerinden erişim

    Ayarlar > Uygulamalar > (bir uygulama seçin) > Dil

Uygulama içi dil seçicileri kullanma

Uygulama içi dil seçicisi olan veya kullanmak isteyen uygulamalar için, kullanıcının uygulamanızdaki tercih ettiği dili ayarlama ve alma işlemlerini gerçekleştirmek üzere özel uygulama mantığı yerine herkese açık API'leri kullanın. Uygulama içi dil seçicinizde herkese açık API'leri kullanırsanız cihazın sistem ayarları, kullanıcının uygulama içi deneyiminizde seçtiği dille eşleşecek şekilde otomatik olarak güncellenir.

Jetpack Compose kullanarak uygulama

Tamamen Jetpack Compose ile oluşturulan uygulamalarda, uygulamanın yerel ayarı değiştiğinde sistem kullanıcı arayüzü güncellemelerini otomatik olarak işler. Yeni bir dil ayarlamak için API'yi çağırma yapılandırma değişikliğini tetikler. Compose, kullanıcı arayüzünüzü yeniden oluşturarak ve yeni yerel ayarı kullanarak tüm stringResource çağrılarını otomatik olarak çözerek tepki verir.

Android 12 (API düzeyi 32) ve önceki sürümlerle geriye dönük uyumluluk için uygulama içi dil seçiciyi uygularken AndroidX destek kitaplığını (AppCompatDelegate) kullanmanızı önemle tavsiye ederiz. Bu yaklaşımı kullanırsanız Compose UI'nizi barındıran etkinlik AppCompatActivity'yı genişletmelidir. Ancak gerekirse çerçeve API'lerini doğrudan da uygulayabilirsiniz.

Aşağıdaki kod snippet'inde, mevcut uygulama yerel ayarının nasıl okunacağı ve composable işlev içinde yeni bir yerel ayarın nasıl ayarlanacağına dair bir örnek gösterilmektedir:

import androidx.appcompat.app.AppCompatDelegate
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.core.os.LocaleListCompat

@Composable
fun LanguageSelector() {
    // Retrieve the currently configured app locale.
    // If no app-specific locale is set, LocaleListCompat.get(0) returns null,
    // so we safely fall back to a default (e.g., "en").
    val appLocales = AppCompatDelegate.getApplicationLocales()
    val currentLocaleTag = appLocales.get(0)?.toLanguageTag() ?: "en"

    // Example UI: A button to toggle between English and Spanish
    Button(
        onClick = {
            val newLanguageTag = if (currentLocaleTag == "en") "es" else "en"
            val localeList = LocaleListCompat.forLanguageTags(newLanguageTag)

            // Setting the locale re-creates the Activity by default,
            // which automatically applies the new configuration to Compose.
            AppCompatDelegate.setApplicationLocales(localeList)
        }
    ) {
        Text(
            text = if (currentLocaleTag == "en") "Switch to Spanish" else "Switch to English"
        )
    }
}

Kullanıcının tercih ettiği dili ayarlamak için kullanıcıdan dil seçicide bir yerel ayar seçmesini isteyip bu değeri sistemde ayarlarsınız:

val appLocale: LocaleListCompat = LocaleListCompat.forLanguageTags("xx-YY")
// Call this on the main thread as it may require Activity.restart()
AppCompatDelegate.setApplicationLocales(appLocale)

Uygulamanız yerel ayar yapılandırma değişikliklerini kendi başına işlemediği sürece setApplicationLocales çağrısının Activity öğenizi yeniden oluşturacağını unutmayın.

Kullanıcının tercih ettiği yerel ayarı almak için AppCompatDelegate.getApplicationLocales öğesini kullanın. Kullanıcı, uygulama yerel ayarını sistem ayarlarından veya uygulama içi dil seçicinizden belirlemiş olabilir.

Android 12 ve önceki sürümler desteklenir.

Android 12 (API düzeyi 32) ve önceki sürümleri çalıştıran cihazları desteklemek için uygulamanızın AppLocalesMetadataHolderService hizmetinin manifest girişinde autoStoreLocales değerini true, android:enabled değerini ise false olarak ayarlayarak AndroidX'in yerel depolamayı işlemesini sağlayın. Bu işlem, aşağıdaki kod snippet'inde gösterilmiştir:

<application
  ...
  <service
    android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
    android:enabled="false"
    android:exported="false">
    <meta-data
      android:name="autoStoreLocales"
      android:value="true" />
  </service>
  ...
</application>

autoStoreLocales değerinin true olarak ayarlanması, ana iş parçacığında engelleme okumasına neden olur ve iş parçacığı ihlallerini günlük kaydı yapıyorsanız StrictMode diskRead ve diskWrite ihlaline yol açabilir. Daha fazla bilgi için AppCompatDelegate.setApplicationLocales sayfasına bakın.

Özel depolama alanı işleme

Manifest girişinin atlanması veya autoStoreLocales değerinin false olarak ayarlanması, depolama alanınızı kendinizin yönettiğini gösterir. Bu durumda, etkinlik yaşam döngüsünde onCreate'dan önce depolanan yerel ayarları sağlamanız ve Android 12'de (API düzeyi 32) veya daha düşük sürümlerde AppCompatDelegate.setApplicationLocales'a yapılan çağrıları engellemeniz gerekir.

Uygulamanızın özel bir yerel depolama konumu varsa kullanıcıların uygulamanızı tercih ettikleri dilde kullanmaya devam edebilmesi için özel yerel depolama çözümünüz ile autoStoreLocales arasında tek seferlik bir aktarım yapmanızı öneririz. Bu durum, özellikle bir cihaz Android 13'e yükseltildikten sonra uygulamanızın ilk kez çalıştırıldığı durumlarda geçerlidir. Bu durumda, özel depolama alanınızdan yerel ayarları alıp AppCompatDelegate.setApplicationLocales içine aktararak önceden var olan ve kullanıcı tarafından istenen yerel ayarları sağlayabilirsiniz.

Android çerçeve API'lerini kullanarak uygulama

Uygulama içi dil seçicileri uygulamak için AndroidX destek kitaplığını kullanmanızı önemle tavsiye etsek de Android 13 çalıştıran cihazlarda Android çerçevesindeki setApplicationLocales ve getApplicationLocales yöntemlerini de kullanabilirsiniz.

Aşağıdaki kod snippet'inde, LocaleManager sisteme ait hizmetini kullanarak kullanıcının tercih ettiği dili ayarlama ve alma işlemi gösterilmektedir:

import android.app.LocaleManager
import android.content.Context
import android.os.Build
import android.os.LocaleList
import androidx.annotation.RequiresApi
import java.util.Locale

@RequiresApi(Build.VERSION_CODES.TIRAMISU)
fun setAppLanguage(context: Context, languageTag: String) {
    // 1. Retrieve the system service
    val localeManager = context.getSystemService(LocaleManager::class.java)

    // 2. Create a LocaleList from the language tag (e.g., "es-ES" or "ja")
    val localeList = LocaleList(Locale.forLanguageTag(languageTag))

    // 3. Set the locale. The system automatically updates the locale and
    // restarts the app, including any necessary configuration updates.
    localeManager.applicationLocales = localeList
}

@RequiresApi(Build.VERSION_CODES.TIRAMISU)
fun getAppLanguage(context: Context): String {
    val localeManager = context.getSystemService(LocaleManager::class.java)
    val currentLocales = localeManager.applicationLocales

    // Return the primary app locale, or fall back to the system default
    return if (!currentLocales.isEmpty) {
        currentLocales.get(0).toLanguageTag()
    } else {
        Locale.getDefault().toLanguageTag()
    }
}

Diğer en iyi uygulamalar

Aşağıdaki en iyi uygulamaları göz önünde bulundurun.

Başka bir uygulamada amaç çağırırken dili göz önünde bulundurma

Dile odaklanan amaçlar, çağrılan uygulamanın hangi dilde olmasını istediğinizi belirtmenize olanak tanıyabilir. Bunun bir örneği, Konuşma Tanıma API'sindeki EXTRA_LANGUAGE özelliğidir.

Chrome özel sekmesi için Accept-Language başlığını göz önünde bulundurun

Bir Chrome özel sekmesi çağırırken uygulamanızın dilinde bir web sayfası açmak için Browser.EXTRA_HEADERS üzerinden Accept-Language Header'ı eklemeyi düşünebilirsiniz.

Sistem ayarlarında uygulamaya özgü dil tercihlerini kaldırırsanız uygulama yerel ayarınızı sistem yerel ayarına sıfırlayın.

Uygulamanızın dil tercihlerini sistem ayarlarından kaldırırsanız (android:localeConfig uygulamanızın AndroidManifest.xml bölümünden kaldırarak) kullanıcılar uygulama dillerini kolayca sistem varsayılanına sıfırlayamaz.

Bu nedenle, android:localeConfig öğesini kaldırırsanız aşağıdaki kod snippet'inde gösterildiği gibi LocaleListCompat.getEmptyLocaleList veya LocaleList.getEmptyLocaleList kullanarak uygulama yerel ayarını sistem yerel ayarına sıfırlamayı düşünebilirsiniz:

// Use the AndroidX APIs to reset to the system locale for backward and forward compatibility
AppCompatDelegate.setApplicationLocales(
  LocaleListCompat.getEmptyLocaleList()
)

// Or use the Framework APIs for Android 13 and above to reset to the system locale
val context = LocalContext.current
context.getSystemService(LocaleManager::class.java)
  .applicationLocales = LocaleList.getEmptyLocaleList()

Örnek locale_config.xml dosyası

Android, varsayılan olarak Android Açık Kaynak Projesi'nde (AOSP) en sık kullanılan yerel ayarların standart bir grubu için sistem düzeyinde çeviriler içerir. Bu bölüme dahil edilen örnek locale_config.xml dosyası, bu yerel ayarların her biri için önerilen biçimi gösterir. Uygulamanızın desteklediği dil grubu için kendi locale_config.xml dosyanızı oluşturmanıza yardımcı olması amacıyla bu örnek dosyayı referans olarak kullanın.

<?xml version="1.0" encoding="utf-8"?>
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
   <locale android:name="af"/> <!-- Afrikaans -->
   <locale android:name="am"/> <!-- Amharic -->
   <locale android:name="ar"/> <!-- Arabic -->
   <locale android:name="as"/> <!-- Assamese -->
   <locale android:name="az"/> <!-- Azerbaijani -->
   <locale android:name="be"/> <!-- Belarusian -->
   <locale android:name="bg"/> <!-- Bulgarian -->
   <locale android:name="bn"/> <!-- Bengali -->
   <locale android:name="bs"/> <!-- Bosnian -->
   <locale android:name="ca"/> <!-- Catalan -->
   <locale android:name="cs"/> <!-- Czech -->
   <locale android:name="da"/> <!-- Danish -->
   <locale android:name="de"/> <!-- German -->
   <locale android:name="el"/> <!-- Greek -->
   <locale android:name="en-AU"/> <!-- English (Australia) -->
   <locale android:name="en-CA"/> <!-- English (Canada) -->
   <locale android:name="en-GB"/> <!-- English (United Kingdom) -->
   <locale android:name="en-IN"/> <!-- English (India) -->
   <locale android:name="en-US"/> <!-- English (United States) -->
   <locale android:name="es"/> <!-- Spanish (Spain) -->
   <locale android:name="es-US"/> <!-- Spanish (United States) -->
   <locale android:name="et"/> <!-- Estonian -->
   <locale android:name="eu"/> <!-- Basque -->
   <locale android:name="fa"/> <!-- Farsi -->
   <locale android:name="fi"/> <!-- Finnish -->
   <locale android:name="fil"/> <!-- Filipino -->
   <locale android:name="fr"/> <!-- French (France) -->
   <locale android:name="fr-CA"/> <!-- French (Canada) -->
   <locale android:name="gl"/> <!-- Galician -->
   <locale android:name="gu"/> <!-- Gujarati -->
   <locale android:name="hi"/> <!-- Hindi -->
   <locale android:name="hr"/> <!-- Croatian -->
   <locale android:name="hu"/> <!-- Hungarian -->
   <locale android:name="hy"/> <!-- Armenian -->
   <locale android:name="in"/> <!-- Indonesian -->
   <locale android:name="is"/> <!-- Icelandic -->
   <locale android:name="it"/> <!-- Italian -->
   <locale android:name="iw"/> <!-- Hebrew -->
   <locale android:name="ja"/> <!-- Japanese -->
   <locale android:name="ka"/> <!-- Georgian -->
   <locale android:name="kk"/> <!-- Kazakh -->
   <locale android:name="km"/> <!-- Khmer -->
   <locale android:name="kn"/> <!-- Kannada -->
   <locale android:name="ko"/> <!-- Korean -->
   <locale android:name="ky"/> <!-- Kyrgyz -->
   <locale android:name="lo"/> <!-- Lao -->
   <locale android:name="lt"/> <!-- Lithuanian -->
   <locale android:name="lv"/> <!-- Latvian -->
   <locale android:name="mk"/> <!-- Macedonian -->
   <locale android:name="ml"/> <!-- Malayalam -->
   <locale android:name="mn"/> <!-- Mongolian -->
   <locale android:name="mr"/> <!-- Marathi -->
   <locale android:name="ms"/> <!-- Malay -->
   <locale android:name="my"/> <!-- Burmese -->
   <locale android:name="nb"/> <!-- Norwegian -->
   <locale android:name="ne"/> <!-- Nepali -->
   <locale android:name="nl"/> <!-- Dutch -->
   <locale android:name="or"/> <!-- Odia -->
   <locale android:name="pa"/> <!-- Punjabi -->
   <locale android:name="pl"/> <!-- Polish -->
   <locale android:name="pt-BR"/> <!-- Portuguese (Brazil) -->
   <locale android:name="pt-PT"/> <!-- Portuguese (Portugal) -->
   <locale android:name="ro"/> <!-- Romanian -->
   <locale android:name="ru"/> <!-- Russian -->
   <locale android:name="si"/> <!-- Sinhala -->
   <locale android:name="sk"/> <!-- Slovak -->
   <locale android:name="sl"/> <!-- Slovenian -->
   <locale android:name="sq"/> <!-- Albanian -->
   <locale android:name="sr"/> <!-- Serbian (Cyrillic) -->
   <locale android:name="sr-Latn"/> <!-- Serbian (Latin) -->
   <locale android:name="sv"/> <!-- Swedish -->
   <locale android:name="sw"/> <!-- Swahili -->
   <locale android:name="ta"/> <!-- Tamil -->
   <locale android:name="te"/> <!-- Telugu -->
   <locale android:name="th"/> <!-- Thai -->
   <locale android:name="tr"/> <!-- Turkish -->
   <locale android:name="uk"/> <!-- Ukrainian -->
   <locale android:name="ur"/> <!-- Urdu -->
   <locale android:name="uz"/> <!-- Uzbek -->
   <locale android:name="vi"/> <!-- Vietnamese -->
   <locale android:name="zh-Hans"/> <!-- Chinese (Simplified) -->
   <locale android:name="zh-Hant"/> <!-- Chinese (Traditional) -->
   <locale android:name="zu"/> <!-- Zulu -->
</locale-config>

Ek kaynaklar

Daha fazla bilgi için kod örneklerimize, blog makalelerimize ve videolarımıza göz atın.