Gestionar la internacionalización (I18N) y/o la localización con Struts: El ResourceBundle
Artículo por Club Developers · 20 July 2006
3388 vistas
Struts soporta de forma nativa el mecanismo de internacionalización y de localización ofrecido por la plataforma Java: el ResourceBundle y la Locale.
Para obtener un ResourceBundle foo.bar.MyResourceBundle, basta con crear uno o vrios ficheros en el directorio /foo/bar/:
Ej.: si la aplicación por defecto está en inglés, tendremos en el fichero MyResourceBundle.properties una entrada del tipo:
Si queremos soportar también el español, tendremos que crear un fichero MyResourceBundle_es.properties con la misma entrada:
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):
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 :
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
default.welcome=hello
Si queremos soportar también el español, tendremos que crear un fichero MyResourceBundle_es.properties con la misma entrada:
java
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
<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
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> <html:html locale="true"> .. page content ... </html:html >