论坛

主页 » Liferay Portal » Español » 3. Desarrollo

组合视图 统一视图 树状图
讨论主题 [ 上一个 | 下一个 ]
toggle
Oriol Canalias
LanguageUtil desde clase Java
2011年2月16日 上午1:05
答复

Oriol Canalias

等级: Regular Member

帖子: 139

加入日期: 2009年10月19日

最近的帖子

Buenos días,

Estoy desarrollando un portlet en java. He añadido la siguiente línea en el portlet.xml:
1<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:
1<liferay-ui:message key="clave-en-language"/>

La segunda:
1<%=LanguageUtil.get(pageContext, "clave-en-language") %>

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:
1LanguageUtil.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
RE: LanguageUtil desde clase Java
2011年2月17日 上午1:59
答复

Oriol Canalias

等级: Regular Member

帖子: 139

加入日期: 2009年10月19日

最近的帖子

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:
1private static ResourceBundle rb =  ResourceBundle.getBundle("content.Language");

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

Por último recuperamos las claves:
1/*Sin parametros*/
2rb.getString("clave-sin-parametros");
3/*Con parámetros*/
4MessageFormat.format(rb.getString("clave-con-parametros"),
5                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
RE: LanguageUtil desde clase Java
2012年11月19日 上午6:29
答复

Gabriel Palacios

等级: Junior Member

帖子: 31

加入日期: 2011年11月18日

最近的帖子

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