Latest web development tutorials

JSP Internasionalisasi

Sebelum Anda mulai, Anda perlu menjelaskan beberapa konsep penting:

  • Internasionalisasi (i18n): menunjukkan bahwa halaman berdasarkan bahasa pengunjung atau negara disajikan terjemahan yang berbeda.
  • Lokalisasi (l10n): menambahkan sumber daya ke situs, untuk menyesuaikan dengan berbagai daerah dan budaya. Sebagai contoh, versi bahasa India dari situs.
  • Area: Ini adalah wilayah tertentu atau budaya, secara umum dianggap sebagai bahasa isyarat dan simbol nasional dihubungkan dengan garis bawah. Seperti "en_US" untuk wilayah Inggris US.

Jika Anda ingin membuat website global, Anda perlu khawatir tentang sejumlah proyek. Bab ini akan menunjukkan secara detail bagaimana menangani isu-isu internasional, dan memberikan beberapa contoh untuk memperdalam pemahaman.

JSP container dapat meminta sesuai dengan atribut lokal untuk menyediakan versi yang benar dari halaman. Selanjutnya kita menunjukkan bagaimana untuk mendapatkan objek lokal dengan sintaks objek permintaan:

java.util.Locale request.getLocale() 

deteksi Lokal

Tabel berikut mencantumkan objek Lokal metode yang lebih penting untuk mendeteksi permintaan kawasan objek, bahasa, dan wilayah. Semua metode ini akan menampilkan nama negara dan nama bahasa di browser:

Tidak. Metode & deskripsi
1 String getCountry ()

Kembali Negara kode wilayah / daerah ibukota, atau 3166 Format 2 huruf ISO
2 String getDisplayCountry ()

Mengembalikan nama negara yang akan ditampilkan kepada pengguna
3 String getLanguage ()

Mengembalikan huruf kecil Inggris kode bahasa, atau regional ISO 639 format
4 String getDisplayLanguage ()

Kembali untuk memberikan pengguna untuk melihat nama bahasa
5 String getISO3Country ()

Mengembalikan nama singkatan tiga huruf negara
6 String getISO3Language ()

3 mengembalikan inisial nama bahasa

contoh Demo

Contoh ini menunjukkan bagaimana untuk menampilkan bahasa dan negara di JSP:

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%
   //获取客户端本地化信息
   Locale locale = request.getLocale();
   String language = locale.getLanguage();
   String country = locale.getCountry();
%>
<html>
<head>
<title>Detecting Locale</title>
</head>
<body>
<center>
<h1>Detecting Locale</h1>
</center>
<p align="center">
<% 
   out.println("Language : " + language  + "<br />");
   out.println("Country  : " + country   + "<br />");
%>
</p>
</body>
</html>

Pengaturan bahasa

JSP dapat digunakan untuk output halaman untuk bahasa-bahasa Eropa Barat, seperti Inggris, Spanyol, Jerman, Perancis, Italia dan sebagainya. Dengan demikian, mengatur informasi header Content-Language benar menampilkan semua karakter yang sangat penting.

Poin kedua adalah, kita perlu menggunakan entitas karakter HTML untuk menampilkan karakter khusus, seperti "& # 241;" mewakili "& # 161;" mewakili "?": "?"

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%
    // Set response content type
    response.setContentType("text/html");
    // Set spanish language code.
    response.setHeader("Content-Language", "es");
    String title = "En Espa?ol";

%>
<html>
<head>
<title><%  out.print(title); %></title>
</head>
<body>
<center>
<h1><%  out.print(title); %></h1>
</center>
<div align="center">
<p>En Espa?ol</p>
<p>?Hola Mundo!</p>
</div>
</body>
</html>

tanggal tertentu Regional

Anda dapat menggunakan kelas java.text.DateFormat dan metode statis getDateTimeInstance () ke format tanggal dan waktu. Contoh berikutnya menunjukkan bagaimana format sesuai dengan area tertentu dari tanggal dan waktu:

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%@ page import="java.text.DateFormat,java.util.Date" %>

<%
    String title = "Locale Specific Dates";
    //Get the client's Locale
    Locale locale = request.getLocale( );
    String date = DateFormat.getDateTimeInstance(
                                  DateFormat.FULL, 
                                  DateFormat.SHORT, 
                                  locale).format(new Date( ));
%>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>Local Date: <%  out.print(date); %></p>
</div>
</body>
</html>

mata uang khusus kawasan

Anda dapat menggunakan kelas java.text.NumberFormat dan metode statis getCurrencyInstance () ke nomor Format. Misalnya, di daerah tertentu dari jenis mata uang lama dan tipe double. Contoh berikut menunjukkan bagaimana format sesuai dengan daerah Mata ditentukan:

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%@ page import="java.text.NumberFormat,java.util.Date" %>

<%
    String title = "Locale Specific Currency";
    //Get the client's Locale
    Locale locale = request.getLocale( );
    NumberFormat nft = NumberFormat.getCurrencyInstance(locale);
    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>Formatted Currency: <%  out.print(formattedCurr); %></p>
</div>
</body>
</html>

Sebuah persentase tertentu dari daerah

Anda dapat menggunakan kelas java.text.NumberFormat dan metode statis getPercentInstance () ke format persentase. Contoh berikut menunjukkan bagaimana format sesuai dengan persentase tertentu dari daerah:

<%@ page import="java.io.*,java.util.Locale" %>
<%@ page import="javax.servlet.*,javax.servlet.http.* "%>
<%@ page import="java.text.NumberFormat,java.util.Date" %>

<%
    String title = "Locale Specific Percentage";
    //Get the client's Locale
    Locale locale = request.getLocale( );
    NumberFormat nft = NumberFormat.getPercentInstance(locale);
    String formattedPerc = nft.format(0.51);
%>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>Formatted Percentage: <%  out.print(formattedPerc); %></p>
</div>
</body>
</html>