Sebelum kita mulai, beberapa konsep penting perlu dijelaskan:
Internasionalisasi (i18n): Menunjukkan bahwa halaman akan ditampilkan dalam terjemahan berbeda berdasarkan bahasa atau negara pengunjung.
Lokalisasi (l10n): Menambahkan sumber daya ke situs web untuk menyesuaikannya dengan wilayah dan budaya berbeda. Seperti situs web versi India.
Wilayah: Ini adalah wilayah atau budaya tertentu, biasanya dianggap sebagai penanda linguistik dan penanda nasional yang dihubungkan dengan garis bawah. Misalnya, "en_US" mewakili wilayah berbahasa Inggris di Amerika Serikat.
Jika Anda ingin membangun situs web global, Anda perlu memperhatikan serangkaian hal. Bab ini akan memberi tahu Anda secara rinci bagaimana menangani isu-isu internasionalisasi dan memberikan beberapa contoh untuk memperdalam pemahaman Anda.
Kontainer JSP dapat memberikan versi halaman yang benar berdasarkan atribut lokal permintaan. Selanjutnya, sintaks cara mendapatkan objek Lokal melalui objek permintaan diberikan:
java.util.Permintaan lokal.getLocale()
Tabel berikut mencantumkan metode yang lebih penting dalam objek Lokal, yang digunakan untuk mendeteksi wilayah, bahasa, dan wilayah objek permintaan. Semua metode ini akan menampilkan nama negara dan nama bahasa di browser:
nomor seri | Metode & Deskripsi |
---|---|
1 | String getCountry() mengembalikan kode negara/wilayah dalam huruf besar bahasa Inggris, atau wilayah dalam format 2 huruf ISO 3166 |
2 | String getDisplayCountry() mengembalikan nama negara yang akan ditampilkan kepada pengguna |
3 | String getLanguage() mengembalikan kode bahasa versi huruf kecil bahasa Inggris, atau area dalam format ISO 639 |
4 | String getDisplayLanguage() mengembalikan nama bahasa yang akan ditampilkan kepada pengguna |
5 | String getISO3Country() mengembalikan singkatan 3 huruf dari nama negara |
6 | String getISO3Language() mengembalikan singkatan 3 huruf dari nama bahasa |
Contoh ini menunjukkan kepada kita bagaimana menampilkan bahasa dan negara di JSP:
<%@ page import="java.io.*,java.util.Locale" %><%@ page import="javax.servlet.*,javax.servlet.http.* "%><% //Dapatkan pelanggan Informasi pelokalan terminal Lokal lokal = request.getLocale(); String bahasa = locale.getLanguage(); String negara = locale.getCountry(); %><html><head><title>Mendeteksi Lokal</title></head><body><center><h1>Mendeteksi Lokal</h1></center><p align="center"><% out.println("Bahasa : " + bahasa + " <br />"); out.println("Negara : " + negara + "<br />");%></p></body></html>
JSP dapat menggunakan bahasa Eropa Barat untuk menampilkan halaman, seperti Inggris, Spanyol, Jerman, Prancis, Italia, dll. Terlihat bahwa penting untuk mengatur header Content-Language untuk menampilkan semua karakter dengan benar.
Poin kedua adalah Anda perlu menggunakan entitas karakter HTML untuk menampilkan karakter khusus. Misalnya, "ñ" mewakili "?" dan "¡" mewakili "?":
<%@ page import="java.io.*,java.util.Locale" %><%@ page import="javax.servlet.*,javax.servlet.http.* "%><% // Tetapkan respons tipe konten respon.setContentType("teks/html"); // Tetapkan kode bahasa Spanyol. respon.setHeader("Bahasa Konten", "es"); %><html><head><title><% out.print(judul); %></title></head><body><center><h1><% out.print(judul %>). </h1></center><div align="center"><p>Dalam Bahasa Spanyol?ol</p><p>?Halo Mundo!</p></div></body></html>
Anda dapat menggunakan kelas java.text.DateFormat dan metode statisnya getDateTimeInstance() untuk memformat tanggal dan waktu. Contoh berikut menunjukkan cara memformat tanggal dan waktu menurut rentang tertentu:
<%@ page import="java.io.*,java.util.Locale" %><%@ page import="javax.servlet.*,javax.servlet.http.* "%><%@ page import= "java.text.DateFormat,java.util.Date" %><% String title = "Tanggal Spesifik Lokal"; //Dapatkan Lokal Lokal klien = request.getLocale( ); DateFormat.getDateTimeInstance( DateFormat.FULL, DateFormat.SHORT, lokal).format(Tanggal baru( )); %><html><head><title><% out.print(judul); /head><body><center><h1><% out.print(title %></h1></center><div align="center"><p>Tanggal Lokal: <% keluar.cetak(tanggal); %></p></div></body></html>
Angka dapat diformat menggunakan kelas java.text.NumberFormat dan metode statisnya getCurrencyInstance(). Misalnya, long dan double dalam mata uang spesifik wilayah. Contoh berikut menunjukkan cara memformat mata uang menurut lokal tertentu:
<%@ page import="java.io.*,java.util.Locale" %><%@ page import="javax.servlet.*,javax.servlet.http.* "%><%@ page import= "java.text.NumberFormat,java.util.Date" %><% String title = "Mata Uang Lokal Tertentu"; //Dapatkan Lokal Lokal klien = request.getLocale( ); NumberFormat.getCurrencyInstance(lokal); String formattedCurr = nft.format(1000000); %><html><head><title><% out.print(title %></title></head><body> <center><h1><% out.print(title); %></h1></center><div align="center"><p>Mata Uang yang Diformat: <% keluar.print(formattedCurr); %></p></div></body></html>
Anda dapat memformat persentase menggunakan kelas java.text.NumberFormat dan metode statisnya getPercentInstance(). Contoh berikut menunjukkan kepada kita cara memformat persentase berdasarkan rentang tertentu:
<%@ page import="java.io.*,java.util.Locale" %><%@ page import="javax.servlet.*,javax.servlet.http.* "%><%@ page import= "java.text.NumberFormat,java.util.Date" %><% String title = "Persentase Spesifik Lokal"; //Dapatkan Lokal Lokal klien = request.getLocale( ); NumberFormat.getPercentInstance(lokal); String diformatPerc = nft.format(0,51); %><html><head><title><% out.print(title); <center><h1><% out.print(title); %></h1></center><div align="center"><p>Persentase yang Diformat: <% keluar.cetak(diformatPerc); %></p></div></body></html>