| Registrar a un usuario en un sitio Web con Struts 1 |
| Paso 9: Operativa |
Vista - El usuario elige el idioma de visualización de las páginas Web
En esta ocasión la internacionalización no nos la indica el navegador a través del campo Accept-Language de la cabecera del mensaje HTTP. Por el contrario va a ser el usuario quien escoja el idioma con el que quiere interactuar con la aplicación.
La primera vez que el usuario se conecta al servidor recibe la página principal (Home Page) del sitio Web. Antes de hacer clic sobre el vínculo Registro de usuario, si el usuario así lo desea puede hacer clic por ejemplo sobre el vínculo English y así de esta forma ver todos los literales del sitio Web en inglés.

Si hacemos clic sobre el vínculo English entonces el servidor nos responde con la página principal, pero en este caso traducida al inglés.

Primero de todo vamos a modificar la página principal index.jsp que nos ha creado el asistente de NetBeans en el momento que creamos el projecto Web
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"
import="org.apache.struts.Globals, java.util.Locale"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%
Locale locale = null;
String strIdioma = request.getParameter("idioma");
if (strIdioma != null) {
if (strIdioma.equals("en")) {
System.out.println("equals en");
locale = new Locale("en");
session.setAttribute(Globals.LOCALE_KEY, locale);
} else if (strIdioma.equals("es")) {
System.out.println("equals es");
locale = new Locale("es");
session.setAttribute(Globals.LOCALE_KEY, locale);
}
}
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Seleccionar idioma - Formulario Registro usuario Struts 1.2</title>
<link rel="stylesheet" href="/proregusuariostruts/css2/estilos.css" type="text/css">
</head>
<body>
<div style="left: 70px; top: 50px; position: absolute; font-size: 8px;">
<html:link href="/proregusuariostruts/index.jsp?idioma=es">
<bean:message key="literal.cambiarIdioma.español" />
</html:link>
|
<html:link href="/proregusuariostruts/index.jsp?idioma=en">
<bean:message key="literal.cambiarIdioma.ingles" />
</html:link>
</div>
<div style="left: 70px; top: 80px; position: absolute">
<html:link action="/registro">
<bean:message key="literal.registroUsuario" />
</html:link>
</div>
</body>
</html> |
En el fichero literales/ApplicationResource.properties añadimos las llaves
- literal.cambiarIdioma.español y literal.cambiarIdioma.ingles
literal.cambiarIdioma.español=Español
literal.cambiarIdioma.ingles=English
literal.registroUsurario=Registro de usuario
literal.camposRequeridos=Campos requeridos
literal.nombre=Nombre
literal.apellido=Apellido
literal.email=E-Mail
literal.codigoPostal=Código Postal
literal.login=Login
literal.password=Password
literal.confirmarPassword=Confirmar Password
literal.consulta.generoCine=¿Qué géneros de cine te gustan más?
literal.comedia=Comedia
literal.musical=Musical
literal.aventura=Aventura
literal.policiaco=Policiaco
literal.clasico=Clásico
literal.melodrama=Melodrama
literal.consulta.recibirDVD=¿Quieres recibir notificaciones vía e-mail sobre nuevos DVDs editados?
literal.si=Sí
literal.no=No
literal.enviar=Enviar
literal.restaurar=Restaurar
error.nombre.requerido=Nombre obligatorio
error.apellido.requerido=Apellido obligatorio
error.email.requerido=Email obligatorio
error.email.incorrecto=Email incorrecto
error.codigoPostal.requerido=Código postal obligatorio
error.codigoPostal.incorrecto=Código postal incorrecto
error.login.requerido=Login obligatorio
error.password.requerido=Password obligatorio
error.password.incorrecto=Longitud mínimo 8 carcateres
error.confirmarPassword.requerido=Confirmar password obligatorio
error.confirmarPassword.incorrecto=Los dos passwords no coinciden
errors.header=
errors.prefix=<span style="font-size: 10px; color: red" >
errors.suffix=</span>
errors.footer= |
También añadimos las mismas llaves al fichero literales/ApplicationResource_en.properties
literal.cambiarIdioma.español=Español
literal.cambiarIdioma.ingles=English
literal.registroUsuario=User registry
literal.camposRequeridos=Required fields
literal.nombre=Name
literal.apellido=Surname
literal.email=E-Mail
literal.codigoPostal=Postal code
literal.login=Login
literal.password=Password
literal.confirmarPassword=Confirm Password
literal.consulta.generoCine=Which genres of movies do you like most?
literal.comedia=Comedy
literal.musical=Musical
literal.aventura=Adventure
literal.policiaco=Crime
literal.clasico=Classic
literal.melodrama=Melodrama
literal.consulta.recibirDVD=Would you like to receive notification throug your e-amil about new edited DVDs?
literal.si=Yes
literal.no=No
literal.enviar=Send
literal.restaurar=Reset
error.nombre.requerido=Name needed
error.apellido.requerido=Surname needed
error.email.requerido=Email needed
error.email.incorrecto=Email incorrect
error.codigoPostal.requerido=Postal code needed
error.codigoPostal.incorrecto=Postal code incorrect
error.login.requerido=Login needed
error.password.requerido=Password needed
error.password.incorrecto=Minimum lenth 8 characters
error.confirmarPassword.requerido=Confirm password
error.confirmarPassword.incorrecto=Both passwords doesn't match
errors.header=
errors.prefix=<span style="font-size: 10px; color: red" >
errors.suffix=</span>
errors.footer= |