Melokalkan aplikasi Anda (Penayangan)

Konsep dan penerapan Jetpack Compose

Android berjalan di banyak perangkat dan wilayah. Untuk menjangkau sebagian besar pengguna, pastikan aplikasi Anda dapat menangani teks, file audio, angka, mata uang, dan grafik sesuai dengan lokal tempat aplikasi Anda digunakan.

Halaman ini menjelaskan beberapa praktik terbaik untuk melokalkan aplikasi Android.

Anda harus memiliki pengetahuan kerja tentang bahasa pemrograman Kotlin atau Java dan memahami pemuatan resource Android, deklarasi elemen antarmuka pengguna dalam XML, pertimbangan pengembangan seperti siklus proses aktivitas, dan prinsip umum internasionalisasi dan pelokalan.

Sebaiknya gunakan framework resource Android untuk memisahkan aspek yang dilokalkan dari aplikasi Anda sebanyak mungkin dari fungsi aplikasi inti.

  • Masukkan sebagian besar atau semua konten antarmuka pengguna aplikasi Anda ke dalam file resource, seperti yang dijelaskan di halaman ini dan dalam Ringkasan resource aplikasi.
  • Di sisi lain, perilaku antarmuka pengguna didorong oleh kode berbasis Kotlin atau Java Anda. Misalnya, jika pengguna memasukkan data yang harus diformat atau diurutkan secara berbeda tergantung lokalitas, Anda harus menggunakan bahasa pemrograman Kotlin atau Java untuk menangani data tersebut secara terprogram. Halaman ini tidak membahas cara melokalkan kode berbasis Kotlin atau Java.

Untuk panduan singkat tentang melokalkan string dalam aplikasi Anda, lihat Mendukung berbagai bahasa dan budaya.

Menggunakan resource untuk pelokalan

Bagian ini membahas cara membuat resource default serta resource alternatif. Panduan ini juga menjelaskan cara menetapkan resource yang diprioritaskan dan cara merujuk ke resource dalam kode.

Membuat resource default

Tempatkan teks default aplikasi di res/values/strings.xml. Untuk string ini, gunakan bahasa default—bahasa yang Anda harapkan digunakan oleh sebagian besar pengguna aplikasi Anda.

Kumpulan resource default juga menyertakan semua drawable serta tata letak default dan dapat menyertakan jenis resource lain seperti animasi. Resource ini berada di direktori berikut:

  • res/drawable/: direktori wajib berisi setidaknya satu file grafis, untuk ikon aplikasi di Google Play
  • res/layout/: direktori wajib berisi file XML yang menentukan tata letak default
  • res/anim/: diperlukan jika Anda memiliki folder res/anim-<qualifiers>
  • res/xml/: diperlukan jika Anda memiliki folder res/xml-<qualifiers>
  • res/raw/: diperlukan jika Anda memiliki folder res/raw-<qualifiers>

Tips: Di kode Anda, periksa setiap referensi ke resource Android. Pastikan bahwa resource default sudah ditentukan untuk setiap referensi tersebut. Pastikan juga file string default-nya lengkap: file string terlokalkan dapat berisi subset string, tetapi file string default harus berisi semuanya.

Tips pelokalan

Ikuti tips ini saat Anda melokalkan aplikasi.

Merancang tata letak yang fleksibel

Jika harus menyusun ulang tata letak agar sesuai dengan bahasa tertentu, Anda dapat membuat tata letak alternatif untuk bahasa tersebut, seperti res/layout-de/main.xml untuk tata letak berbahasa Jerman. Namun, tindakan ini dapat membuat aplikasi Anda lebih sulit dikelola. Akan lebih baik jika Anda membuat satu tata letak yang lebih fleksibel.

Situasi umum lainnya adalah bahasa yang memerlukan sesuatu yang berbeda dalam tata letaknya. Misalnya, Anda mungkin memiliki formulir kontak yang menyertakan dua kolom nama saat aplikasi berjalan dalam bahasa Jepang, tetapi tiga kolom nama saat aplikasi berjalan dalam bahasa lain. Anda dapat menangani hal ini dengan salah satu dari dua cara berikut:

  • Buat satu tata letak dengan kolom yang dapat Anda aktifkan atau nonaktifkan secara terprogram, berdasarkan bahasa.
  • Setel agar tata letak utama berisi tata letak lain yang menyertakan kolom yang dapat diubah. Tata letak kedua dapat memiliki konfigurasi yang berbeda untuk bahasa yang berbeda.

Menggunakan objek Konteks Android untuk pencarian lokalitas secara manual

Anda dapat mencari lokalitas menggunakan objek Context yang disediakan oleh Android, seperti yang ditunjukkan dalam contoh berikut:

Kotlin

val primaryLocale: Locale = context.resources.configuration.locales[0]
val locale: String = primaryLocale.displayName

Java

Locale primaryLocale = context.getResources().getConfiguration().getLocales().get(0);
String locale = primaryLocale.getDisplayName();