Fitur Multibahasa dengan Spring Internationalization

Spring Multibahasa

Suatu saat mungkin kita menghadapi requirement yang mengharuskan membangun sebuah aplikasi web atau website yang mendukung fitur multibahasa. Jangan berpikiran multibahasa akan sulit untuk diwujudkan karena pada kenyataannya fitur ini mudah untuk diimplementasikan. Spring mendukung fitur multibahasa yang disebut dengan [rad-hl]internationalization (l18n) and localization (l10n)[/rad-hl].

Tulisan kali ini akan membahas implementasi fitur multibahasa pada aplikasi web yang dibangun menggunakan Spring. Contoh aplikasi pada tutorial ini mengacu pada Spring MVC menggunakan Java Based Configuration

Struktur Project

Untuk lebih mudah memahami tutorial kali ini, berikut struktur project maven yang dibuat
struktur project

Internationlization

Agar aplikasi kita mendukung fitur multibahasa maka kita perlu membuat sebuah file properties untuk menampung kata kunci berikut nilainya dalam bahasa yang diinginkan. Kita akan menggunakan 3 bahasa yaitu inggris, indonesia dan jerman. Dan berikut adalah isi dari masing-masing ketiga file properties

file : src/main/resources/message_ind.properties

file : src/main/resources/message_en.properties

file : src/main/resources/message_de.properties

Perhatikan bahwa nama file properties memiliki pola [rad-hl]message_kodebahasa[/rad-hl]

Konfigurasi

Pada konfigurasi kita membutuhkan beberapa bean
1. [rad-hl]ResourceBundleMessageSource[/rad-hl], digunakan untuk me-load file-file properties yang mengandung terjemahan
2. [rad-hl]LocaleChangeInterceptor[/rad-hl], digunakan untuk mendeteksi perubahan bahasa
3. [rad-hl]SessionLocaleResolver[/rad-hl], digunakan untuk menyimpan perubahan bahasa dalam session
4. Untuk mendaftarkan LocaleChangeInterceptor kita perlu membuat kelas konfigurasi sebagai subkelas dari [rad-hl]WebMvcConfigurerAdapter[/rad-hl]

Dan berikut adalah kelas konfigurasi
file : src/main/java/com/agung/init/WebAppConfig.java

Untuk kelas initializer dan pom.xml sama dengan yang ada pada tulisan Spring MVC menggunakan Java Based Configuration.

Controller

Sangat sederhana, hanya bertugas untuk menampilkan index.jsp
file : src/main/java/com/agung/controller/HomeCOntroller.java

Halaman JSP

Halaman inilah yang akan menampilkan sebuah form yang mendukung 3 pilihan bahasa.
file : src/main/webapp/WEB-INF/jsp/index.jsp

Perhatikan bahwa kita menggunakan tag [rad-hl][/rad-hl] untuk menampilkan kata kunci yang telah kita buat pada 3 file properties tadi. Untuk menggunakan tag tersebut kita perlu mendeklarasikan sebuah taglib, perhatikan pada baris yang saya highlight.

Perhatikan pula bahwa untuk mengubah dari satu bahasa menjadi bahasa lainya kita menggunakan request parameter [rad-hl]lang[/rad-hl]. Perubahan nilai dari variabel ini akan dideteksi oleh [rad-hl]LocaleChangeInterceptor[/rad-hl]

Demo

Arahkan browser ke http://localhost:8080/SpringInternationalization, dan berikut ini adalah screenshot dari aplikasi

Bahasa Inggris
english

Bahasa Indonesia
indonesia

Bahasa Jerman
germany

note : mohon maaf kalau ada kesalahan pada bahasa jerman, modal google translate 😛

Source Code

Seperti biasa untuk source code bisa didownload pada repository Github saya disini

Happy programming 😀

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *