Latest web development tutorials

JSP Internazionalizzazione

Prima di iniziare, è necessario spiegare alcuni concetti importanti:

  • Internazionalizzazione (i18n): indica che una pagina basata su lingua o Paese del visitatore presentato diverse traduzioni.
  • La localizzazione (L10N): aggiungere risorse al sito, in modo da adattarlo alle diverse regioni e culture. Ad esempio, le versioni linguistiche indiani del sito.
  • Zona: Si tratta di una specifica regione o di cultura, generalmente considerato un linguaggio dei segni e dei simboli nazionali sono collegati da un carattere di sottolineatura. Come ad esempio "it" per le regioni degli Stati Uniti in inglese.

Se si desidera creare un sito web globale, è necessario essere preoccupati per una serie di progetti. In questo capitolo vi mostrerà in dettaglio come affrontare le questioni internazionali, e fornisce alcuni esempi per approfondire la comprensione.

container JSP può richiedere in base all'attributo locale per fornire la versione corretta della pagina. Successivo mostriamo come ottenere un oggetto Locale dalla sintassi oggetto di richiesta:

java.util.Locale request.getLocale() 

rilevamento Locale

La tabella seguente riporta un oggetto Locale metodo più importante per il rilevamento di richiesta oggetto regione, lingua e regione. Tutti questi metodi verrà visualizzato il nome del paese e il nome della lingua nel browser:

No. Metodo & descrizione
1 String getCountry ()

Back Country codice regione / zona della capitale, o ISO 3166 in formato 2-lettera
2 String getDisplayCountry ()

Restituisce il nome del paese che sarà visualizzato all'utente
3 String GetLanguage ()

Restituisce il codice della lingua inglese minuscolo, o regionali ISO 639 formati
4 String getDisplayLanguage ()

Torna per dare all'utente di vedere il nome della lingua
5 String getISO3Country ()

Restituisce il nome di abbreviazione di tre lettere del paese
6 String getISO3Language ()

3 riporta le iniziali dei nomi lingua

Esempi Demo

Questo esempio dimostra come visualizzare la lingua e il paese nel 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>

Impostazioni lingua

JSP può essere utilizzato per produrre una pagina per le lingue dell'Europa occidentale, come l'inglese, spagnolo, tedesco, francese, italiano e così via. Quindi, impostare le informazioni di intestazione Content-Language visualizza correttamente tutti i caratteri sono molto importanti.

Il secondo punto è, abbiamo bisogno di utilizzare le entità carattere HTML per visualizzare i caratteri speciali, come ad esempio "& # 241;" rappresenta "& # 161;" rappresenta il "?": "?"

<%@ 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>

date specifiche regionali

È possibile utilizzare la classe java.text.DateFormat e dei suoi metodi statici getDateTimeInstance () per formato data e ora. Il prossimo esempio mostra come formattare a seconda della zona specificata la data e l'ora:

<%@ 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>

valute regionali specifici

È possibile utilizzare la classe java.text.NumberFormat e dei suoi metodi statici getCurrencyInstance () per formattare i numeri. Ad esempio, in una particolare regione del tipo di valuta lungo e doppio tipo. L'esempio seguente mostra come formattare a seconda della zona di valuta specificato:

<%@ 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>

Una certa percentuale dell'area

È possibile utilizzare la classe java.text.NumberFormat e dei suoi metodi statici getPercentInstance () per le percentuali di formato. L'esempio seguente mostra come formattare in base alla percentuale specificata della zona:

<%@ 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>