Gestionar la internacionalización (I18N) y/o la localización con Struts: El ResourceBundle

3388 vistas

Struts soporta de forma nativa el mecanismo de internacionalización y de localización ofrecido por la plataforma Java: el Posted Image ResourceBundle y la Posted Image Locale.

Para obtener un ResourceBundle foo.bar.MyResourceBundle, basta con crear uno o vrios ficheros en el directorio /foo/bar/:

  • MyResourceBundle.properties: este fichero contiene los mensajes de la lengua por defecto de la aplicación.
  • MyResourceBundle_XX.properties: este fichero contiene los mismos mensajes en la lengua cuyo ISO es XX

Ej.: si la aplicación por defecto está en inglés, tendremos en el fichero MyResourceBundle.properties una entrada del tipo:



java
  1. default.welcome=hello



Si queremos soportar también el español, tendremos que crear un fichero MyResourceBundle_es.properties con la misma entrada:



java
  1. default.welcome=hola



Esto será para cualquier lengua que queramos tener y tendremos que tener tantos ficheros .properties como lenguas queramos soportar.

Ahora tendremos que declarar estos recursos en el descriptor de configuración de la aplicación (struts-config.xml):



xml
  1. <message-resources parameter="foo.bar.MyResourceBundle" />



Atención: no hace falta especificar la extensión del fichero (.properties) ni el código ISO.
Lo que sà hay que tener presente es que los ficheros tienen que estar accesibles en el CLASSPATH.

En las páginas JSP tendremos que declarar la internacionalozación con el atributo locale del tag :



xml
  1. <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
  2. <html:html locale="true">
  3. .. page content ...
  4. </html:html >