Ç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:
LocaleManageriçindekisetApplicationLocalesvegetApplicationLocalesyö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 |
|
| Uygulamanızda zaten uygulama içi dil seçici var |
|
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:
- Özelliği etkinleştirmek için modül düzeyindeki
build.gradle.ktsdosyasının (Groovy kullanıyorsanızbuild.gradledosyası)androidResources {}bloğundakigenerateLocaleConfigayarını kullanın. Bu özellik varsayılan olarak devre dışıdır.
Kotlin
android {
androidResources {
generateLocaleConfig = true
}
}
Modern
android {
androidResources {
generateLocaleConfig true
}
}
- Varsayılan bir yerel ayar belirtin:
- Uygulama modülünün
resklasöründeresources.propertiesadlı yeni bir dosya oluşturun. resources.propertiesdosyasında,unqualifiedResLocaleetiketiyle varsayılan yerel ayarı belirleyin. Yerel adları biçimlendirmek için Yerel adlar nasıl oluşturulur? başlıklı makaleyi inceleyin.
- Uygulama modülünün
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:
res/xml/locale_config.xmladlı bir dosya oluşturun ve uygulamanızınres/values/strings.xmliç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.xmldosyasına da bakın.Örneğin, aşağıdaki dilleri destekleyen bir uygulama için
locale_config.xmldosyası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>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.
- Uygulamaya Özgü Dil Tercihleri 1. Bölüm blog yayını
- Uygulamaya Özgü Dil Tercihleri 2. Bölüm başlıklı blog
- Building for a multilingual world (Çok dilli bir dünya için geliştirme) videosu
- Compose'daki kaynaklar