Çok dilli kullanıcılar çoğu durumda sistem dillerini tek bir dile ayarlar. ancak belirli uygulamalar için Felemenkçe, Çince veya Hintçe. Uygulamaların bu kullanıcılar için daha iyi bir deneyim sunmasına yardımcı olmak Android 13'te şu özellikleri destekleyen uygulamalar: birden çok dil:
Sistem ayarları: Kullanıcıların istediklerini seçebileceği merkezi bir konum her uygulama için tercih edilen dili seçin.
Uygulamanızı, şu işlemleri gerçekleştirmek için gereken dosyaları otomatik olarak oluşturacak şekilde yapılandırabilirsiniz: uygulamaya özgü dil tercihlerini destekler ve sistem ayarlarında görünür. Alıcı: daha fazla bilgi edinmek için uygulama başına otomatik dil desteğini etkinleştirerek
Ek API'ler:
setApplicationLocales()
vegetApplicationLocales()
LocaleManager
için yöntemleri kullanıyorsanız, çalışma zamanında sistem dilinden farklı bir dil ayarlayın.Bu API'ler sistem ayarlarıyla otomatik olarak senkronize edilir; Bu nedenle, özel uygulama içi dil seçiciler oluşturmaya yarayan bu API'lerin, nerede seçtiklerinden bağımsız olarak tutarlı bir kullanıcı deneyimi dil tercihlerine dokunun. Herkese açık API'ler de standart kod içerir, bölünmüş APK'ları destekler ve Uygulama düzeyindeki kullanıcı dilini depolamak için uygulamalar Ayarlar'da devre dışı bırakabilirsiniz.
Ö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 için uygulama bağlamıyla değil, AppCompatActivity bağlamıyla (API düzeyi 32) ve önceki sürümler. Geriye dönük uyumlu API'lere Appcompat 1.6.0 veya daha yüksek olabilir.
Bu özelliğin uygulanmasına genel bakış
Aşağıdaki tabloda farklı kullanıma dayalı olarak önerilen uygulamalar gösterilmektedir durumlarda işe yarar.
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, Android 13'ten itibaren sistemde merkezi bir konum bilgisi sunar. Uygulamaya özgü dil tercihlerini belirlemek için ayarlar. Uygulamanızın diller, Android 13 veya sonraki bir sürümü çalıştıran cihazların sistem ayarlarından yapılandırılabilir daha yüksek, uygulama başına otomatik dil desteğini etkinleştirin (önerilen) veya yapılandırın manuel olarak destekleyebilir.
Uygulama başına otomatik dil desteğini etkinleştir
Android Studio Giraffe ve AGP 8.1 sürümünden itibaren uygulamanızı yapılandırarak
uygulamaya özgü dili destekle
tercihler
otomatik olarak oluşturur. AGP, proje kaynaklarınıza göre LocaleConfig
oluşturur
bir referans ekler ve son manifest dosyasına bir referans ekler. Böylece,
manuel olarak yapmanız gerekir. AGP, uygulamanızın res
klasörlerindeki kaynakları kullanır
modülleri ve kitaplık modülü bağımlılıklarını
LocaleConfig
dosyasında. Yani, yeni bir web sitesi için kaynak eklerseniz
uygulamanıza eklerseniz LocaleConfig
öğesini güncelleme konusunda endişelenmenize gerek yoktur
dosyası olarak kaydedebilirsiniz.
Uygulama başına otomatik dil özelliğinin, Android çalıştıran uygulamaları desteklediğini unutmayın.
13 (API düzeyi 33) veya sonraki sürümler. Bu özelliği kullanmak için şunları ayarlamanız gerekir:
compileSdkVersion
- 33 yaş veya üzeri. Uygulamaya özgü dil tercihlerini yapılandırmak için
Android'in önceki sürümlerinde de
API'leri ve uygulama içi dil seçicileri kullanın.
Uygulama başına otomatik dil desteğini etkinleştirmek için aşağıdaki adımları uygulayın:
- Bu özelliği etkinleştirmek için
generateLocaleConfig
işlevini kullanın. ayar seviyesindenandroidResources {}
bloğundakibuild.gradle.kts
dosya (kullanıyorsanız dosya:build.gradle
Groovy kullanarak). Bu özellik, varsayılan olarak devre dışıdır.Kotlin
android { androidResources { generateLocaleConfig = true } }
Eski
android { androidResources { generateLocaleConfig true } }
- Varsayılan bir yerel ayar belirtin:
- Uygulama modülünün
res
klasöründe,resources.properties
. resources.properties
dosyasında varsayılan değeri ayarlayınunqualifiedResLocale
etiketli yerel ayar. yerel ayar adları için Yerel ayar adları nasıl oluşturulur? konusuna bakın.
- Uygulama modülünün
AGP, bu varsayılan yerel ayarı ve
alternatif yerel ayarlar
res
klasöründeki values-*
dizinlerini kullanarak belirttiğiniz
LocaleConfig
dosyası otomatik olarak oluşturuldu.
Yerel ayar adları nasıl oluşturulur?
Yerel ayar adları oluşturmak için, dil kodunu isteğe bağlı alfabeyle birleştirin ve bölge kodlarını kısa çizgiyle ayırın:
- Dil: İki veya üç harf kullanın ISO 639-1 girin.
- Komut dosyası (isteğe bağlı): ISO 15924 kodunu gönderin.
- Bölge (isteğe bağlı): İki harfli ISO 3166-1-alpha-2 kod veya üç haneli UN_M.49 girin.
Örneğin, varsayılan yerel ayarınız Amerikan İngilizcesi ise:
unqualifiedResLocale=en-US
Desteklenen dilleri sistem ayarlarına eklemek için android:localeConfig
kullanın
Uygulamanızı manuel olarak ayarlayarak dillerinin yapılandırılabilir olması için
Android 13 veya sonraki sürümleri çalıştıran cihazlardaki sistem ayarlarına gidin. Bunu yapmak için bir
locales_config
XML dosyanızı seçin ve şunu kullanarak uygulamanızın manifest dosyasına ekleyin:
android:localeConfig
özelliği için de geçerlidir. android:localeConfig
manifesti atlanır
kullanıcıların uygulamanızın dilini ayarlayamaması gerektiğini belirten giriş sinyalleri
kendi sistem ayarlarından bağımsız olarak
kullanabilirler.
Uygulamanızın desteklediği dilleri kullanıcının sistem ayarlarına manuel olarak eklemek için:
res/xml/locales_config.xml
adında bir dosya oluşturun ve uygulamanızın uygulamanızın dili de dahil olmak üzere en iyi yedek yerel ayar, Bu,res/values/strings.xml
içinde belirtilen yerel ayardır.Biçim şartları için Yerel ayar adları nasıl oluşturulur? konusuna bakın. Ayrıca, aşağıdakilerin listesi için örnek
locale_config.xml
dosyaya da bakın: en sık kullanılan yerel ayarları gösteriyor.Örneğin,
locales_config.xml
dosyasını şu şekilde biçimlendirin: şu dilleri destekler:- En büyük yedek yerel ayar 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 dosyasına bu yeni dosyayı işaret eden bir satır ekleyin:
<manifest> ... <application ... android:localeConfig="@xml/locales_config"> </application> </manifest>
Uygulamanızın localeConfig
değerini
Dil grubunu özelleştirmek için LocaleManager.setOverrideLocaleConfig
Android Ayarları'ndaki uygulamaya özgü dil listesinde gösterilir. Bu şekilde şunları yapabilirsiniz:
dil listesini bölgeye göre özelleştirebilir, A/B denemeleri çalıştırabilir ve
yerel ayarlar
şu örneği inceleyin:
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();
Buna ek olarak IME'ler artık
LocaleManager.getApplicationLocales
için geçerli uygulamanın kullanıcı arayüzü dilini seçin.
gösteriliyor:
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 şunu kullanarak aynı dilleri belirtmek için:
resourceConfigurations
özelliğinin değeri:build.gradle
android {
...
defaultConfig {
resourceConfigurations += ["en", "en-rGB", "fr", "ja", "b+zh+Hans+MO", "b+zh+Hant+MO"]
}
}
resourceConfigurations
özelliği mevcutsa derleme sistemi yalnızca şunları içerir:
APK'daki dil kaynağı tarafından engellenerek
destekleyici olabilecek diğer kitaplıklardan çevrilmiş dizelerin
desteklenmeyen diller olabilir. Daha fazla bilgi için bkz.
Uygulamanızın desteklediği dilleri belirtin.
Kullanıcılar sistem ayarlarında bir uygulama dilini nasıl seçer?
Kullanıcılar, her uygulama için tercih ettikleri dili sistem üzerinden seçebilir. Ayarlar'da devre dışı bırakabilirsiniz. Bu ayarlara iki farklı şekilde erişebilirler:
Sistem ayarları üzerinden erişim
Ayarlar > Sistem > Diller ve Giriş > Uygulama Dilleri > (uygulama seçin)
Uygulama ayarları üzerinden erişim
Ayarlar > Uygulamalar > (bir uygulama seçin) > Dil
Uygulama içi dil seçicileri yönetme
Uygulama içi dil seçici bulunan veya kullanmak isteyen uygulamalar için ayarları yönetmek ve bir kullanıcının verilerini almak için özel uygulama mantığı yerine genel API'ler tercih ettiğiniz dili seçin. Uygulama içi uygulamanız için herkese açık API'leri kullanıyorsanız cihazın sistem ayarları otomatik olarak kullanıcının uygulama içi deneyiminizde seçtiği dille aynı olmalıdır.
Önceki Android sürümleriyle geriye dönük uyumluluk için şunları kesinlikle öneririz: uygulama içi dil seçici uygularken AndroidX destek kitaplığını kullanın. Ancak çerçeve API'lerini doğrudan da uygulayabilirsiniz yardım alabilirsiniz.
AndroidX destek kitaplığını kullanarak uygulama
setApplicationLocales()
ve getApplicationLocales()
kullanın
Appcompat 1.6.0'daki yöntemler
veya daha yüksek olabilir. Geriye dönük uyumlu API'lerin, AppCompatActivity bağlamıyla birlikte çalıştığını unutmayın.
Android 12 (API düzeyi 32) ve önceki sürümlerde uygulama bağlamıyla ilgili değildir.
Örneğin, bir kullanıcının tercih ettiği dili ayarlamak için kullanıcıdan Dil seçicide bir yerel ayar seçin, ardından bu değeri sistemde ayarlayın:
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);
setApplicationLocales()
çağrısı yapıldığında, aşağıdaki durumlar dışında Activity
öğenizi yeniden oluşturur:
uygulamanız yerel ayar yapılandırmasını kullanır
kendisini uyarması gerekir.
Kullanıcının tercih ettiği yerel ayarı almak için AppCompatDelegate.getApplicationLocales()
öğesini kullanın. Kullanıcı, uygulamasının yerel ayarını sistem ayarlarından veya uygulama içi dil seçicinizden 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 şunları söyleyin:
AndroidX, şuna bir autoStoreLocales
değeri ayarlayarak yerel depolamayı işleyecek:
Uygulamanızın manifest girişinde true
ve android:enabled
değerlerinden false
değerine
AppLocalesMetadataHolderService
hizmeti, aşağıdaki kodda gösterildiği gibi
snippet:
<application
...
<service
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
android:enabled="false"
android:exported="false">
<meta-data
android:name="autoStoreLocales"
android:value="true" />
</service>
...
</application>
Bir autoStoreLocales
değerinin true
olarak ayarlanmasının, okumayı engelleyen bir işleme neden olduğunu unutmayın
ana ileti dizisinde bulunur ve
StrictMode
diskRead
ve
İleti dizisi ihlallerini günlüğe kaydediyorsanız diskWrite
ihlali. Görüntüleyin
AppCompatDelegate.setApplicationLocales()
konulu videomuzu izleyin.
Özel depolama alanı işleme
Manifest girişini atlama veya autoStoreLocales
öğesini false
sinyallerine ayarlama
depolama alanınızı yönetin. Bu durumda,
yerel ayarların, etkinlik yaşam döngüsünde onCreate
öncesinden önce depolanıp
Android 12'de (API düzeyi 32) veya AppCompatDelegate.setApplicationLocales()
daha düşük.
Uygulamanızın özel bir yerel depolama konumu varsa tek seferlik bir depolama alanı
Bu sayede, özel yerel depolama çözümünüz ile autoStoreLocales
arasında geçiş yapabilirsiniz.
kullanıcılar uygulamanızı tercih ettikleri dilde kullanmaya devam edebilir. Bu, özellikle
bir cihaz yeni sürüme geçirildikten sonra uygulamanızın ilk kez çalıştırıldığı durumlarda geçerlidir.
Android 13. Bu durumda, önceden oluşturulmuş, kullanıcı tarafından istenen yerel ayarları sağlayabilirsiniz.
yerel ayarları özel depolama alanınızdan alıp yerel ayarları
AppCompatDelegate.setApplicationLocales()
Android çerçevesi API'lerini kullanarak uygulama
Şu işlemler için AndroidX destek kitaplığını kullanmanızı kesinlikle öneririz:
uygulama içi dil seçicileri uygulamakla birlikte,
setApplicationLocales()
ve getApplicationLocales()
yöntemlerine göz atacağız.
Örneğin, bir kullanıcının tercih ettiği dili ayarlamak için kullanıcıdan Dil seçicide bir yerel ayar seçin, ardından bu değeri sistemde ayarlayın:
// 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 tercih ettiği mevcut dilin dil seçicide görüntülenmesini sağlamak için: uygulamanız da bu 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 uygulamalara dikkat edin.
Başka bir uygulamada intent çağırırken dili göz önünde bulundurun
Dil odaklı amaçlar, kullanıcılara gösterilecek dili
çağrılır. Bir örnek olarak
EXTRA_LANGUAGE
özelliğini kullanıma sunduk.
Chrome Özel sekmesinin Accept-Language üstbilgisini göz önünde bulundurun
Accept-Language Üstbilgisi ekleme seçeneğini değerlendirin.
Browser.EXTRA_HEADERS
üzerinden
Chrome Özel sekmesini çağırırken uygulamanızın dilinde bir web sayfası açı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
etiketindeki android:localeConfig
) kullanıcılar şunları yapamaz:
uygulama dilini kolayca sistem varsayılanına sıfırlayabilir.
Bu nedenle, android:localeConfig
adlı veri kümesini kaldırırsanız
uygulamanın yerel ayarını
LocaleListCompat.getEmptyLocaleList()
veya
LocaleList.getEmptyLocaleList()
aşağıdaki kod snippet'inde gösterildiği gibidir:
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.
- Uygulama Başına Dil Tercihleri 1. Bölüm blogu
- Uygulama Başına 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ı
Varsayılan olarak Android, Android Open'da sistem düzeyinde çevirileri içerir.
En yaygın olarak kullanılan standart bir dizi yerel ayar için Kaynak Projesi (AOSP).
Bu bölümde yer alan örnek locale_config.xml
dosyası,
biçimi önerilir. Yardıma ihtiyacınız varsa bu örnek dosyayı inceleyin
oluşturduğunuz dil grubu için kendi locale_config.xml
dosyanızı
ve uygulamanızın desteklediğini gösterir.
<?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>