Liferay 6.1 para
desarrolladores
I18n en nuestros desarrollos
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Índice de contenidos
‣ Introducción.
‣ Añadir entradas d...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Introducción
‣ Como ya sabemos la internacionalización e...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Introducción
‣ También se utiliza en la gestión de categ...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Introducción
‣ Los procesos de internacionalización en L...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Introducción
‣ Los ficheros de propiedades definidos en la...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Añadir entradas dentro de los ficheros de properties
‣ Ex...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Añadir entradas dentro de los ficheros de properties
‣ Pl...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Añadir entradas dentro de los ficheros de properties
‣ Ho...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Añadir entradas dentro de los ficheros de properties
‣ Ho...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Añadir entradas dentro de los ficheros de properties
‣ Po...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Añadir entradas dentro de los ficheros de properties
‣ Po...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
Etiquetas jsp para i18n
‣ La etiqueta liferay-ui:message...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
La clase LanguageUtil
‣ Si necesitamos aplicar I18n en J...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
La clase LanguageUtil
‣ El método getLanguageId nos perm...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
La clase LanguageUtil
‣ El método get() nos permite la r...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
La clase LanguageUtil
‣ El método format() nos permite r...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
I18n en Velocity
‣ Velocity define variables que podemos ...
I18n en nuestros desarrollos
Preparado por Jesús Salinas Revelles
I18n en los temas de Liferay
‣ Estamos desarrollando las...
Upcoming SlideShare
Loading in...5
×

Liferay 6 1, Internacionalización en nuestros desarrollos

943

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
943
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Liferay 6 1, Internacionalización en nuestros desarrollos"

  1. 1. Liferay 6.1 para desarrolladores I18n en nuestros desarrollos
  2. 2. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Índice de contenidos ‣ Introducción. ‣ Añadir entradas dentro de los ficheros de properties. ‣ Etiquetas jsp para i18n. ‣ La clase LanguageUtil. ‣ I18n en Velocity. ‣ I18n en los temas de Liferay.
  3. 3. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Introducción ‣ Como ya sabemos la internacionalización en Liferay es muy importante y es manejada en muy diferentes ámbitos por defecto. Por ejemplo, la gestión de contenidos web:
  4. 4. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Introducción ‣ También se utiliza en la gestión de categorías y muchos otros entornos:
  5. 5. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Introducción ‣ Los procesos de internacionalización en Liferay Portal se manejan de forma simple e intuitiva. Trabaja con ficheros de propiedades para todos sus componentes. ‣ La infraestructura Liferay nos permite modificar los mensajes I18n que ya maneja el sistema o añadir nuevas entradas. ‣ El desarrollador está obligado a conocer cómo manejar la internacionalización programáticamente en sus desarrollos. ‣ Pasamos a comentarlo a continuación.
  6. 6. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Introducción ‣ Los ficheros de propiedades definidos en la plataforma, podemos encontrarlos en el fichero portal-impl.jar. Si se descomprime o se accede al código fuente, el usuario encontrará la siguiente estructura de directorios: portal-impl/content.
  7. 7. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Añadir entradas dentro de los ficheros de properties ‣ Existen diferentes estrategias para añadir nuevas entradas en los ficheros de propiedades de nuestra instalación de Liferay. ‣ Plugin Ext. ‣ Hooks. ‣ Portlets de usuario.
  8. 8. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Añadir entradas dentro de los ficheros de properties ‣ Plugin Ext: ‣ Dentro de la carpeta ext-impl/src debe crearse una carpeta content donde se almacenan los ficheros de propiedades siguiendo la siguiente notación.
  9. 9. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Añadir entradas dentro de los ficheros de properties ‣ Hooks: ‣ Los ficheros de propiedades deben darse de alta en el fichero liferay-hook.xml: <?xml version="1.0"?> <!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.0.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_0_0.dtd"> <hook> ! <language-properties> content/Language.properties</language-properties> ! <language-properties> content/Language_en.properties</language-properties> ! <language-properties> content/Language_es.properties</language-properties> </hook>
  10. 10. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Añadir entradas dentro de los ficheros de properties ‣ Hooks: ‣ La entrada xml language-properties permite definir las rutas donde se encuentran los ficheros i18n. ‣ Si se define la ruta content/Language.properties, el fichero debe encontrarse en la carpeta docroot/WEB-INF/src/content. Se muestra la estructura de un proyecto ejemplo:
  11. 11. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Añadir entradas dentro de los ficheros de properties ‣ Portlets de usuario: ‣ Si el desarrollador desea crear portlets internacionalizados tendrá que incluir una entrada resource-bundle dentro de la entrada xml portlet del portlet en cuestión. <?xml version="1.0"?> <portlet> ... <resource-bundle>content/Language</resource-bundle> </portlet>
  12. 12. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Añadir entradas dentro de los ficheros de properties ‣ Portlets de usuario: ‣ Esto implica la siguiente ruta: ‣ Nota: Eclipse en la versión Helios genera la configuración para I18n de forma incorrecta.
  13. 13. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles Etiquetas jsp para i18n ‣ La etiqueta liferay-ui:message muestra un mensaje internacionalizado asociado a una determinada clave. ‣ El atributo key identifica la clave i18n. Por ejemplo: <%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %> <liferay-ui:message key="my-friends"/ >
  14. 14. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles La clase LanguageUtil ‣ Si necesitamos aplicar I18n en Java tendremos que apoyarnos en la clase LanguageUtil que se encuentra en el paquete com.liferay.portal.kernel.language:
  15. 15. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles La clase LanguageUtil ‣ El método getLanguageId nos permite recuperar el lenguaje utilizado: ‣ Por ejemplo: public static String getLanguageId(HttpServletRequest request) public static String getLanguageId(PortletRequest portletRequest) public static String getLanguageId(Locale locale) String languageId = LanguageUtil.getLanguageId(request);
  16. 16. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles La clase LanguageUtil ‣ El método get() nos permite la recuperación de un mensaje i18n: ‣ Lo habitual será utilizarlo en una página JSP, siempre se encuentra disponible el contexto de la página, por ejemplo: public static String get(javax.servlet.jsp.PageContext pageContext,String key) <label class="aui-field-label"> <liferay-ui:message key="absence-type"></liferay-ui:message> </label> <span> <%=LanguageUtil.get(pageContext,event.getType()) %> </span>
  17. 17. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles La clase LanguageUtil ‣ El método format() nos permite recuperar un mensaje parametrizado: ‣ El fichero de propiedades: public static String format( javax.servlet.jsp.PageContext pageContext, String pattern, Object[] arguments) x-needs-to-approve-you-as-her-friend={0} necesita su aprobaci√≥n para convertirse en su amigo.
  18. 18. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles I18n en Velocity ‣ Velocity define variables que podemos utilizar en las plantillas. Incluir en la plantilla init.vm. #set ($language_id = $user.getLanguageId()) #language("KEY-NAME") $languageUtil.get($company_id, $locale, "add-application"))
  19. 19. I18n en nuestros desarrollos Preparado por Jesús Salinas Revelles I18n en los temas de Liferay ‣ Estamos desarrollando las plantillas de nuestros temas mediante la tecnología Velocity, ¿cómo podemos incluir i18n en nuestros temas? ‣ Para resolver este problema nos apoyamos en la variable predefinida de Velocity, languageUtil: ... <section> <div class="footer-title"> ! <h5>$languageUtil.format($locale, "about-us-title")</h5> </div> <p class="footer-text"> $languageUtil.format($locale, "about-us-description") </p> </section> ...
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×