Salah satu hal yang perlu diperhatikan saat mengembangkan aplikasi android adalah penggunaan bahasa di dalam nya. Sering saya dapati teman - teman ketika membuat aplikasi hanya menggunakan satu bahasa, sebenarnya tidak masalah kita menggunakan satu bahasa akan tetapi ketika memberikan support multi bahasa pada aplikasi kita ini akan membuat pengalaman pengguna aplikasi kita akan lebih baik karena mereka mengerti dengan bahasa yang ada pada aplikasi kita. Bagi teman - teman yang ingin menambahkan multi bahasa pada aplikasi yang sedang di kembangkan silahkan ikuti tutotial ini.

Let’s Code

Untuk membuat aplikasi multi bahasa ini cukup sangat mudah dan simple, kita hanya perlu mendefinisikan nilai string yang di pakai di aplikasi kita yang akan kita terjemahkan kan ke berbagai bahasa.

Set Current Language

Pertama kita perlu menambahkan perngaturan default dari bahasa yang akan kita gunakan di dalam aplikasi kita. Berikut ini contoh code nya.


        SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
        Configuration config = getBaseContext().getResources().getConfiguration();

        String lang = settings.getString("LANG", "");
        if (!"".equals(lang) && !config.locale.getLanguage().equals(lang)) {
            locale = new Locale(lang);
            Locale.setDefault(locale);
            config.locale = locale;
            getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
        }

Jika sudah selanjutnya kita perlu mendefinisikan macam - maca bahasa yang akan di gunakan dalam aplikasi kita pada contoh kali ini kita akan menggunakan 3 bahasa dalam aplikasi kita yaitu bahasa indonesia, bahasa inggris dan juga bahasa arab.

Untuk melakukan nya kita perlu menambahkan kan 3 file values

  • /values/strings.xml
  • /values-in/strings.xml
  • /values-ar/strings.xml

Disini secara default aplikasi kita berbahasa inggris.

## Change Language Sebenarnya secara otomatis ketika kita sudah menambahkan folder values-(language code) untuk string yang kita gunakan makan secara otomatis bahasa di aplikasi kita akan menyesuaikan dengan pengaturan default bahasa di smartphone.

Namun jika kita ingin mengubah bahasa yang di set pada aplikasi kita maka kita perlu menambahkan code berikut ini.


    void changeLang(int langpos){
        switch (langpos) {
            case 0: // Arabic
                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("LANG", "ar").commit();
                setLangRecreate("ar");
                return;
            case 1: // Indonesian
                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("LANG", "in").commit();
                setLangRecreate("in");
                return;
            default: //By default set to english
                PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("LANG", "en").commit();
                setLangRecreate("en");
                return;
        }
    }

    public void setLangRecreate(String langval) {
        Configuration config = getBaseContext().getResources().getConfiguration();
        locale = new Locale(langval);
        Locale.setDefault(locale);
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
        recreate();
    }

Nah cukup segitu saja, mudah bukan? Silahkan yang ingin mendapatkan contoh code dari aplikasi multi bahasa ini silahkan buka di github ini.

https://github.com/ar-android/MultiBahasa

Silahkan share artikel ini dan jika ada pertanyaan silahkan hubungi saya via email, dan sosial media saya yang lain di bawah ini. Dan sampai bertemu di tutorial berikutnya.