Internacionalizacion con Struts

carlos
27 de Septiembre del 2005
Que tal.. tengo una duda, estoy trabajando con Struts 1.0 y utilizo 2 archivos .PROPERTIES para guardar los mensajes, errores, etc de las paginas jsp en 2 idiomas, cargo uno de ellos en el web.xml asi:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>application</param-name>
<param-value>RP_uk</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
...
RP_uk es el archivo de propiedades pero tengo otro que es RP_es el cual contiene los mensajes en castellano.. pero cómo puedo hacer para que segun la seleccion del usuario se pueda cargar uno u otro archivo, es decir si quiere ver el site en uno u otro idioma???, es posible modificar ese <init-param> desde dentro de la aplicacion???.. espero q me puedan ayudar. Salu2 a todos.
Gracias

Alberto
27 de Septiembre del 2005
Entiendo que deberás generar la llamada dinámicamente:

String nombreProperty = "RP_"+idioma

De tal forma que idioma dependa de lo seleccionado por el usuario

jaguilar
27 de Septiembre del 2005
Hola.
No tienes que mapear todos los ficheros de idiomas que tengas. En realidad sólo tienes que poner en el fichero de configuración :
<param-name>application</param-name>
<param-value>RP</param-value>
que estará vinculado al fichero RP.properties. Después debes tener tantos RP_idioma.properties como idiomas soporte el sitio pero los nombres de esos ficheros no hace falta mapearlos.
Struts dinámicamente cuando carga la página mira en la configuración del navegador el LOCALE (es,en,fr,..) que usa y comprueba si tu tienes un fichero de recursos para ese LOCALE, si lo tienes lo usa si no usa el que existe por defecto, en tu caso RD.properties.

Si quieres que el usuario puede cambiar de idioma directamente, sin necesidad de tocar la configuración del navegador, debes crear una clase Action que instancie el LOCALE actual y lo modifique con el idioma deseado.

Saludos.

carlos
27 de Septiembre del 2005
Hola y gracias por tu ayuda. A ver si entendi solo necesito tener solo un archivo de propiedades RP.properties donde almaceno todos los recursos, esa parte no me queda claro, o si este archivo principal, el que se coloca en <init-param>RP</init-param> debe estar vacio, y luego segun la configuracion del navegador se llamara a los archivos .properties respectivos??, es decir si se quiere que el site este en dos idiomas debo tener 3 archivos de propiedadesuno q es RP (el q carga struts) otros RP_es y RP_en los cuales se cargaran automaticamente segun la Localidad?? y esas extensiones _es , _fr son estandares??.. bueno agradecere nuevamente tu ayuda. Salu2