![](https://developer.android.com/static/images/about/versions/13/app-languages.png?authuser=6&hl=tr)
Çok dilli kullanıcılar çoğu durumda sistem dillerini İngilizce gibi tek bir dile ayarlar, ancak belirli uygulamalar için Felemenkçe, Çince veya Hintçe gibi başka diller de seçmek isterler. Android 13, uygulamaların bu kullanıcılara daha iyi bir deneyim sunmasına yardımcı olmak için birden fazla dili destekleyen uygulamalarda aşağıdaki özellikleri kullanıma sunuyor:
Sistem ayarları: Kullanıcıların her uygulama için tercih ettiği dili seçebileceği merkezi bir konumdur.
Uygulamanızı, uygulamaya özgü dil tercihlerini desteklemek için gereken dosyaları otomatik olarak oluşturacak ve sistem ayarlarında görünecek ş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
ürünündekisetApplicationLocales()
vegetApplicationLocales()
yöntemleri gibi herkese açık bu 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 edilir. Bu sayede, özel uygulama içi dil seçiciler oluşturmak için bu API'leri kullanan uygulamalar, dil tercihlerinin seçiminden bağımsız olarak kullanıcılarına tutarlı bir kullanıcı deneyimi sunar. Herkese açık API'ler, standart kod miktarını azaltmanıza yardımcı olur, bölünmüş APK'ları ve uygulama düzeyinde kullanıcı dili ayarlarını depolamak için Uygulamalar için Otomatik Yedekleme'yi destekler.
Önceki Android sürümleriyle geriye dönük uyumluluk için AndroidX'te de eşdeğer API'ler mevcuttur. Bununla birlikte, 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. Appcompat 1.6.0 veya sonraki sürümlerle geriye dönük uyumlu API'lere erişin.
Bu özelliğin uygulanmasına genel bakış
Aşağıdaki tabloda, farklı kullanım durumlarına göre önerilen uygulamalar gösterilmektedir.
Kullanım alanı | Önerilen uygulama |
---|---|
Uygulamanızda uygulama içi dil seçici yok |
|
Uygulamanızda zaten bir 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 cihazlarda 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 başına otomatik dil desteğini etkinleştir
Uygulamanızı, Android Studio Giraffe ve AGP 8.1'den başlayarak, uygulamaya özel dil tercihlerini otomatik olarak destekleyecek şekilde yapılandırabilirsiniz. AGP, proje kaynaklarınıza bağlı olarak LocaleConfig
dosyasını oluşturur ve nihai manifest dosyasına bir referans ekler. Böylece artık bunu manuel olarak yapmanız gerekmez. AGP, LocaleConfig
dosyasına dahil edilecek yerel ayarları belirlemek için uygulama modüllerinizin res
klasörlerindeki kaynakları ve tüm kitaplık modülü bağımlılıklarını kullanır. Yani, uygulamanıza yeni bir dil için kaynaklar eklerseniz LocaleConfig
dosyasını güncelleme konusunda endişelenmenize gerek kalmaz.
Uygulamaya özgü otomatik dil özelliğinin, Android 13 (API düzeyi 33) veya sonraki sürümleri çalıştıran uygulamaları desteklediğini unutmayın. Bu özelliği kullanmak için compileSdkVersion
değerini 33 veya daha yüksek bir değere ayarlamanız gerekir. Android'in önceki sürümlerine ilişkin uygulamaya özgü dil tercihlerini yapılandırmak için yine de API'leri ve uygulama içi dil seçicileri kullanmanız gerekir.
Uygulama başına otomatik dil desteğini etkinleştirmek için şu adımları izleyin:
- Bu özelliği etkinleştirmek için modül düzeyindeki
build.gradle.kts
dosyasınınandroidResources {}
bloğundakigenerateLocaleConfig
ayarını kullanın (Groovy kullanıyorsanızbuild.gradle
dosyası). 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
res
klasöründeresources.properties
adlı yeni bir dosya oluşturun. resources.properties
dosyasında, varsayılan yerel ayarıunqualifiedResLocale
etiketiyle belirleyin. Yerel adları biçimlendirmek için Yerel ayar adları nasıl oluşturulur? bölümüne göz atın.
- Uygulama modülünün
AGP, bu varsayılan yerel ayarı ve res
klasöründeki values-*
dizinlerini kullanarak belirttiğiniz tüm alternatif yerel ayarları otomatik oluşturulan LocaleConfig
dosyasına ekler.
Yerel adlar nasıl oluşturulur?
Yerel ayar adları oluşturmak için dil kodunu isteğe bağlı komut dosyası ve bölge kodlarıyla birleştirerek her birini kısa çizgiyle ayırın:
- Dil: İki veya üç harfli ISO 639-1 kodunu kullanın.
- Metin (isteğe bağlı): ISO 15924 kodunu kullanın.
- Bölge (isteğe bağlı): İki harfli ISO 3166-1-alpha-2 kodunu veya üç haneli UN_M.49 kodunu kullanın.
Örneğin, varsayılan yerel ayarınız Amerikan İngilizcesi ise:
unqualifiedResLocale=en-US
Desteklenen dilleri sistem ayarlarına eklemek için android:localeConfig
kodunu kullanın
Android 13 veya sonraki sürümleri çalıştıran cihazlardaki sistem ayarlarında dillerinin yapılandırılabilir olmasını sağlamak için uygulamanızı manuel olarak ayarlayabilirsiniz. Bunu yapmak için bir locales_config
XML dosyası oluşturun ve android:localeConfig
özelliğini kullanarak bu dosyayı uygulamanızın manifest dosyasına ekleyin. android:localeConfig
manifest girişinin atlanması, kullanıcıların sistem ayarlarındaki sistem dillerinden bağımsız olarak uygulamanızın dilini ayarlayabilmeleri gerektiğini belirtir.
Uygulamanızın desteklediği dilleri bir kullanıcının sistem ayarlarına manuel olarak eklemek için:
res/xml/locales_config.xml
adlı bir dosya oluşturun veres/values/strings.xml
içinde belirtilen yerel ayar olan son yedek yerel ayar da dahil olmak üzere uygulamanızın dillerini belirtin.Biçim şartları için Yerel ad oluşturma bölümüne bakın. En sık kullanılan yerel ayarların listesi için sample
locale_config.xml
file'a da bakın.Örneğin,
locales_config.xml
dosyasını aşağıdaki dilleri destekleyen bir uygulama için şu şekilde biçimlendirin:- Son yedek dil olarak İngilizce (ABD)
- İngilizce (BK)
- Fransızca
- Japonca
- Çince (Basitleştirilmiş, Makau)
- Çince (Geleneksel, Makau)
<?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>
Manifest'te, bu yeni dosyayı işaret eden bir satır ekleyin:
<manifest> ... <application ... android:localeConfig="@xml/locales_config"> </application> </manifest>
Android Ayarları'ndan, uygulamaya özgü dil listesinde görüntülenen dil grubunu özelleştirmek için uygulamanızın localeConfig
dilini LocaleManager.setOverrideLocaleConfig
ile dinamik olarak güncelleyebilirsiniz. Bu, aşağıdaki örnekte gösterildiği gibi, uygulamanız sunucu tarafı yerelleştirme aktarmaları kullanıyorsa bölge bazında dil listesini özelleştirmenize, A/B denemeleri çalıştırmanıza ve güncellenmiş yerel ayarlar sağlamanıza olanak tanır:
Kotlin
//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()
Java
//For setOverrideLocaleConfig mContext.getSystemService(LocaleManager.class).setOverrideLocaleConfig(new LocaleConfig(LocaleList.forLanguageTags("en-US,ja-JP,zh-Hans-SG"))); //For getOverrideLocaleConfig // The app calls the API to get the override LocaleConfig LocaleConfig overrideLocaleConfig = mContext.getSystemService(LocaleManager.class).getOverrideLocaleConfig(); // If the returned overrideLocaleConfig isn't equal to NULL, then the app calls the API to get the supported Locales LocaleList supportedLocales = overrideLocaleConfig.getSupportedLocales();
Ayrıca IME'ler, aşağıda gösterildiği gibi klavye dilini güncellemek amacıyla mevcut uygulamanın kullanıcı arayüzü dilini öğrenmek için artık LocaleManager.getApplicationLocales
'i kullanabilir:
Kotlin
val currentAppLocales: LocaleList = applicationContext.getSystemService(LocaleManager::class.java).getApplicationLocales(appPackageName)
Java
LocaleList currentAppLocales = mContext.getSystemService(LocaleManager.class).getApplicationLocales(appPackageName);
Gradle'da desteklenen dilleri belirtme
Henüz yoksa 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'daki dil kaynağını yalnızca belirtilen bu diller için dahil eder. Böylece uygulamanızın desteklemediği dilleri destekleyebilecek diğer kitaplıklardan çevrilen dizelerin dahil edilmesini engeller. Daha fazla bilgi için uygulamanızın desteklediği dilleri belirtme bölümüne bakın.
Kullanıcılar sistem ayarlarında uygulama dilini nasıl seçer?
Kullanıcılar, sistem ayarları üzerinden 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)
Uygulama ayarları üzerinden erişim
Ayarlar > Uygulamalar > (bir uygulama seçin) > Dil
Uygulama içi dil seçicileri işleme
Uygulama içi dil seçici bulunan veya kullanmak isteyen uygulamalarda, ayarları yapmak ve kullanıcıların tercih ettiği dili almak için özel uygulama mantığı yerine herkese açık API'leri kullanın. Uygulama içi dil seçicide herkese açık API'leri kullanırsanız cihazın sistem ayarları, kullanıcının uygulama içi deneyiminizde seçtiği dile uyacak şekilde otomatik olarak güncellenir.
Önceki Android sürümleriyle geriye dönük uyumluluk için, bir uygulama içi dil seçici uygularken AndroidX destek kitaplığının kullanılmasını önemle tavsiye ederiz. Ancak gerekirse çerçeve API'lerini doğrudan da uygulayabilirsiniz.
AndroidX destek kitaplığını kullanarak uygulama
Appcompat 1.6.0 veya sonraki sürümlerde setApplicationLocales()
ve getApplicationLocales()
yöntemlerini kullanın. Geriye dönük uyumlu API'lerin, Android 12 (API düzeyi 32) ve önceki sürümlerde uygulama bağlamıyla değil, AppCompatActivity içeriğiyle çalıştığını unutmayın.
Örneğin, kullanıcının tercih ettiği dili ayarlamak için kullanıcıdan dil seçicide bir yerel ayar seçmesini ve ardından bu değeri sistemde ayarlamasını istersiniz:
Kotlin
val appLocale: LocaleListCompat = LocaleListCompat.forLanguageTags("xx-YY") // Call this on the main thread as it may require Activity.restart() AppCompatDelegate.setApplicationLocales(appLocale)
Java
LocaleListCompat appLocale = LocaleListCompat.forLanguageTags("xx-YY"); // Call this on the main thread as it may require Activity.restart() AppCompatDelegate.setApplicationLocales(appLocale);
Uygulamanız yerel ayar değişikliklerini kendi başına işlemediği sürece setApplicationLocales()
çağrısının Activity
öğenizi yeniden oluşturduğunu unutmayın.
Kullanıcının tercih ettiği yerel ayarı almak için AppCompatDelegate.getApplicationLocales()
kodunu kullanın. Kullanıcı, sistem ayarlarından veya uygulama içi dil seçicinizden uygulama yerel ayarını seçmiş olabilir.
Android 12 ve önceki sürümleri destekler
Android 12 (API düzeyi 32) ve önceki sürümleri çalıştıran cihazları desteklemek için AndroidX'e aşağıdaki kod snippet'inde gösterildiği gibi uygulamanızın AppLocalesMetadataHolderService
hizmetiyle ilgili manifest girişinde autoStoreLocales
değerini true
ve android:enabled
olarak belirleyerek false
değerine ayarlayarak AndroidX'e yerel depolamayı işlemesini söyleyin:
<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ının, ana iş parçacığında engelleme okumasına neden olabileceğini ve iş parçacığı ihlallerini günlüğe kaydediyorsanız StrictMode
diskRead
ve diskWrite
ihlaline neden olabileceğini unutmayın. Daha fazla bilgi için AppCompatDelegate.setApplicationLocales()
sayfasını inceleyin.
Özel depolama alanı işleme
Manifest girişinin atlanması veya autoStoreLocales
değerinin false
olarak ayarlanması, kendi depolama alanınızı yönettiğinizi gösterir. Bu durumda, depolanan yerel ayarları etkinlik yaşam döngüsünde onCreate
tarihinden önce sağlamanız ve Android 12 (API düzeyi 32) veya önceki sürümlerde AppCompatDelegate.setApplicationLocales()
için kapı çağrıları sağlamanız gerekir.
Uygulamanız özel bir yerel ayar depolama konumuna sahipse özel yerel depolama çözümünüz ile autoStoreLocales
arasında tek seferlik bir aktarım yapmanızı öneririz. Böylece kullanıcılar, uygulamanızı tercih ettikleri dilde kullanmaya devam edebilirler. Bu, özellikle uygulamanızın, cihaz Android 13'e yükseltildikten sonra ilk kez çalıştırıldığı durumlarda geçerlidir. Bu durumda, özel depolama alanınızdaki yerel ayarları alarak ve yerel ayarları AppCompatDelegate.setApplicationLocales()
öğesine ileterek önceden var olan, 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 ederiz. Bununla birlikte, Android 13 çalıştıran cihazlar için Android çerçevesinde setApplicationLocales()
ve getApplicationLocales()
yöntemlerini de kullanabilirsiniz.
Örneğin, kullanıcının tercih ettiği dili ayarlamak için kullanıcıdan dil seçicide bir yerel ayar seçmesini ve ardından bu değeri sistemde ayarlamasını istersiniz:
// 1. Inside an activity, in-app language picker gets an input locale "xx-YY"
// 2. App calls the API to set its locale
mContext.getSystemService(LocaleManager.class
).setApplicationLocales(new LocaleList(Locale.forLanguageTag("xx-YY")));
// 3. The system updates the locale and restarts the app, including any configuration updates
// 4. The app is now displayed in "xx-YY" language
Kullanıcının dil seçicide görüntülemek üzere tercih ettiği mevcut dili almak için uygulamanız, değeri sistemden geri alabilir:
// 1. App calls the API to get the preferred locale
LocaleList currentAppLocales =
mContext.getSystemService(LocaleManager.class).getApplicationLocales();
// 2. App uses the returned LocaleList to display languages to the user
Diğer en iyi uygulamalar
Aşağıdaki en iyi uygulamaları göz önünde bulundurun.
Başka bir uygulamada bir intent çağırırken dili göz önünde bulundurun
Dil odaklı amaçlar, çağrılan uygulamanın olmasını istediğiniz dili belirtmenize olanak sağlayabilir. Buna örnek olarak Speech Recognizer API'deki EXTRA_LANGUAGE
özelliği verilebilir.
Chrome Özel sekmesi için Accept-Language üstbilgisini dikkate alma
Bir Chrome Özel sekmesini çağırırken web sayfasını uygulamanızın dilinde açmak için Browser.EXTRA_HEADERS
üzerinden Kabul-Dil Üstbilgisi eklemeyi düşünün.
Sistem ayarlarından uygulamaya özgü dil tercihlerini kaldırırsanız uygulamanızın yerel ayarını sistem yerel ayarına sıfırlayın
Uygulamanızın dil tercihlerini sistem ayarlarından kaldırırsanız (uygulamanızın AndroidManifest.xml
öğesinden android:localeConfig
öğesini kaldırarak) kullanıcılar uygulama dillerini kolayca sistem varsayılanına geri döndüremezler.
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üşünün:
Kotlin
// 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()
Java
// 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 mContext.getSystemService(LocaleManager.class) .setApplicationLocales(LocaleList.getEmptyLocaleList());
Ek kaynaklar
Ek bilgi için kod örneklerimize, blog makalelerimize ve videolarımıza bakın.
- Per-App Dil Tercihleri 1. Bölüm blog
- Per-App Dil Tercihleri 2. Bölüm blogu
- Örnek Uygulamalar
- Çok dilli bir dünya için uygulama geliştirme videosu
Örnek locale_config.xml dosyası
Android, en yaygın şekilde kullanılan standart bir grup yerel ayar için Android Açık Kaynak Projesi'ne (AOSP) varsayılan olarak sistem düzeyinde çeviriler ekler.
Bu bölümde yer alan ö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ı için bu örnek dosyaya bakı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>