Foros de discusión

LanguageUtil desde clase Java

Oriol Canalias, modificado hace 13 años.

LanguageUtil desde clase Java

Regular Member Mensajes: 139 Fecha de incorporación: 19/10/09 Mensajes recientes
Buenos días,

Estoy desarrollando un portlet en java. He añadido la siguiente línea en el portlet.xml:
<resource-bundle>content.Language</resource-bundle>

Me he creado un fichero Language.properties dentro del código en la carpeta content. Para mostrar un mensaje en una jsp, lo puedo hacer de dos formas distintas. La primera:
<liferay-ui:message key="clave-en-language" />

La segunda:
&lt;%=LanguageUtil.get(pageContext, "clave-en-language") %&gt;

En los dos casos funciona. Ahora viene mi problema. Cuando intento acceder a una clave y traducirla desde una clase java (desde un action por ejemplo) hago lo siguiente:
LanguageUtil.get(actionRequest.getLocale(), "clave-en-language")

En este último caso no funciona. ¿Alguien sabe porqué? ¿Puedo acceder al pageContext desde el ActionRequest?

Saludos,

Oriol
Oriol Canalias, modificado hace 13 años.

RE: LanguageUtil desde clase Java

Regular Member Mensajes: 139 Fecha de incorporación: 19/10/09 Mensajes recientes
He aplicado una solución aunque no me termina de gustarme.
La solución seria la siguiente.

Primero declaramos un objecto tipo ResourceBundle en nuestra clase:
private static ResourceBundle rb =  ResourceBundle.getBundle("content.Language");

A continuación, cuando haya una petición (action, render) se hace lo siguiente:
rb = ResourceBundle.getBundle("content.Language", request.getLocale());

Por último recuperamos las claves:
/*Sin parametros*/
rb.getString("clave-sin-parametros");
/*Con parámetros*/
MessageFormat.format(rb.getString("clave-con-parametros"),
				param1,...,paramN);

Lo que no entiendo es porque en una jsp me funciona correctamente LanguageUtil.get(...) cogiendo claves de mi fichero pero en una clase solo me recupera los del fichero de properties de liferay...

Saludos,

Oriol
Gabriel Palacios, modificado hace 11 años.

RE: LanguageUtil desde clase Java

Junior Member Mensajes: 31 Fecha de incorporación: 18/11/11 Mensajes recientes
Aunque el post ya tenga un tiempo, espero que a alguien le sirva.
En el enlace que adjunto, hay una solución para recuperar mensajes del fichero de internacionalización:

http://www.liferay.com/community/forums/-/message_boards/message/13481626