Latest web development tutorials

JSP Internacionalización

Antes de empezar, es necesario explicar algunos conceptos importantes:

  • Internacionalización (i18n): indica que una página basada en la lengua o país del visitante presenta diferentes traducciones.
  • Localización (l10n): añadir recursos al sitio, con el fin de adaptarlo a las diferentes regiones y culturas. Por ejemplo, las versiones lingüísticas indias del sitio.
  • Área: Se trata de una región o cultura específica, generalmente se considera que un lenguaje de signos y símbolos nacionales están conectados por un guión bajo. Tales como "en_US" para las regiones de los Estados Unidos en inglés.

Si desea crear un sitio web mundial, tiene que estar preocupado por una serie de proyectos. Este capítulo le mostrará en detalle cómo hacer frente a los problemas internacionales, y da algunos ejemplos para profundizar en la comprensión.

contenedor JSP puede solicitar de acuerdo con el atributo de configuración regional para proporcionar la versión correcta de la página. A continuación mostramos cómo obtener un objeto Locale por la sintaxis objeto de solicitud:

java.util.Locale request.getLocale() 

Detección Local

La siguiente tabla muestra un objeto Locale método más importante para detectar petición zona del objeto, el lenguaje, y la región. Todos estos métodos mostrará el nombre del país y el nombre del idioma en el navegador:

No. Método y Descripción
1 Cadena getCountry ()

Volver País código de región / zona de la capital, o 3166 formato ISO 2-letter
2 Cadena getDisplayCountry ()

Devuelve el nombre del país que se mostrará al usuario
3 Cadena getLanguage ()

Devuelve el código de idioma Inglés en minúsculas, o ISO 639 formatos regionales
4 Cadena getDisplayLanguage ()

Volver a dar al usuario para ver el nombre de la lengua
5 Cadena getISO3Country ()

Devuelve el nombre de la abreviatura de tres letras del país
6 Cadena getISO3Language ()

3 devuelve las iniciales del nombre de idiomas

Los ejemplos de demostración

Este ejemplo muestra cómo mostrar el idioma y el país en la 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>

Configuración de idioma

JSP se puede utilizar para generar una página para los idiomas de Europa occidental, tales como Inglés, español, alemán, francés, italiano y así sucesivamente. Por lo tanto, establece la información de cabecera Content-Language muestra correctamente todos los caracteres son muy importantes.

El segundo punto es, tenemos que usar entidades de caracteres HTML para mostrar caracteres especiales, como "& # 241;" representa "& # 161;" representa el "?": "?"

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

fechas específicas regionales

Puede utilizar la clase java.text.DateFormat y sus métodos estáticos getDateTimeInstance (a) la fecha y hora de formato. El siguiente ejemplo muestra cómo dar formato de acuerdo con el área especificada de la fecha y hora:

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

monedas específicas de la región

Puede utilizar la clase java.text.NumberFormat y sus métodos estáticos getCurrencyInstance () para formatear números. Por ejemplo, en una región particular del tipo de moneda de largo y tipo doble. El siguiente ejemplo muestra cómo dar formato según la moneda área especificada:

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

Un cierto porcentaje de la zona

Puede utilizar la clase java.text.NumberFormat y sus métodos estáticos getPercentInstance (a) los porcentajes de formato. El siguiente ejemplo muestra cómo dar formato según el porcentaje especificado de la 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>