610 likes | 741 Views
Estado de la Internacionalización en Sakai 2.6 Raúl E. Mengod López Universidad Politécnica de Valencia. Santiago de Compostela, 20 Febrero de 2009. Índice. Introducción a la UPV Un poco de Historia de Sakai WG: i18n Traducción de Sakai ¿Cómo construir herramientas i18n? Best Practices
E N D
Estado de la Internacionalización en Sakai 2.6 Raúl E. Mengod López Universidad Politécnica de Valencia Santiago de Compostela, 20 Febrero de 2009
Índice • Introducción a la UPV • Un poco de Historia de Sakai • WG: i18n • Traducción de Sakai • ¿Cómo construir herramientas i18n? • Best Practices • Estado actual de la i18n en Sakai • Problemas de i18n • Mejoras conseguidas en las últimas versiones • Spanish Sakai
Introducción a la UPV Introducción a la UPV
Introducción a la UPV • Universidad Politécnica Valencia (UPV) • Universidad pública creada en 1971 • Estudios principalmente técnicos • Misión y visión • La UPV es una universidad innovadora al servicio de la sociedad y de su progreso. Excelente en la formación de profesionales y en la investigación. 4
Introducción a la UPV • La Universidad Politécnica de Valencia en cifras: • Centros Docentes 15 • Departamentos 44 • Titulaciones 1er Ciclo 31 • Titulaciones de 2º Ciclo 12 • Titulaciones 1er y 2º Ciclo 13 • Alumnos de 1er y 2º Ciclo 36.525 • Programas de Doctorado 66 • Alumnos de 3er Ciclo 1933 • P. Docente e Investigador 2.497 • P. Administración y Servicios 1.471 • Institutos de Investigación 40 • Contratación I+D+I 35 M. € • Presupuesto anual 218 M. € • Programas Máster 40 • Cursos de Especialización 66 • Empresas colaboradoras PCE 2.718 5
Sakai en la UPV • Piloto durante 2006 • Sistema con funcionalidad completa • Sólo usuarios seleccionados • Sistema en Producción en 2006/2007 • 4 servidores • Base de Datos Oracle • Integrado con nuestro propio SSO • Integrado con Matrícula • 4.000 sites • 40.000 alumnos • Basado en la versión 2.1.2 • Traducida a Castellano • Una personalización muy alta • Con parches de i18n 7
Sakai en la UPV • Migración a 2.4.x en 2007/2008 • Re-personalización de los cambios de la 2.1.2 • Más parches de i18m • Avanzadilla de funcionalidades de la 2.6 • Migración a 2.6 en Julio 2009 • Problemática de los parches • Problemática de la adaptación
Un poco de Historia de Sakai • Sakai 2.0 • Universidad de Lleida empezó el trabajo • Creación de los ficheros de properties • Traducción a Catalán • Sakai 2.1 • Corriendo sólo en monolingue pero con el idioma por defecto • Versión española no disponible • Sakai 2.1.1 • Versión multilingüe introducida por la Nagoya University • Clase especifica para tratar los bundle. Resourcebundle.java • Almacenamiento del idioma en las preferencias personales • Sakai 2.1.2 • Primera versión en Castellano • Faltaban muchas problemas
Un poco de Historia de Sakai • Sakai 2.3 • Se añadieron más Idiomas • Sakai 2.4 • Solucionadas 29 incidencias • Tool revisar traducciones • Sakai 2.5 • Solucionadas 22 incidencias • Tool migración de traducciones • Sakai 2.6 • Solucionadas 11 incidencias
WG: i18n • Espacio de i18n en sakai • Working Group de Sakai • http://bugs.sakaiproject.org/confluence/display/I18N/Home • Controlado por Beth Kirshner • ¿Que encontramos en el Confluence? • Configuración i18n de sakai • Guia traducción de sakai • Guia para el desarrollo • Herramientas traducción • Herramieta control de las traducciones
WG: i18n http://bugs.sakaiproject.org/confluence/display/I18N/Home
Configuración de Sakai • Windows: • set JAVA_OPTS=%JAVA_OPTS% -Duser.language=es -Duser.region=ES • Linux or Unix • JAVA_OPTS="$JAVA_OPTS -Duser.language=es -Duser.region=ES
Traducción de Sakai • El primer paso para avanzar en la Internacionalización • Cada idioma tiene un responsable • Catalán : Lleida • Castellano: Valencia • Gallego: • Euskera: Navarra • Permisos de commit sobre los Ficheros en svn • Es necesaria una revisión y actualización constante
Traducción de Sakai • Herramientas ayuda traducción • Editores de Ficheros de Recursos • ResourceProperties Editor http://sourceforge.net/projects/i18nedit • XLIFF Translation Editor https://open-language-tools.dev.java.net/ • Utilidad de Transferencia de Traducciones • Por la Universiad de Smolny (San Petersburgo) • Estado de las Traducciones • Utilidad en Universidad de Amsterdam http://qa1-nl.sakaiproject.org/international • Se actualiza diariamente contra el trunk • OJO con los ficheros excluidos • http://qa1-nl.sakaiproject.org/international/trunk/de.html#excludedfiles
Traducción de Sakai • Proceso de Revisión de un Idioma • Traducción en local y actualización en el trunk • Cada Responsible sube sus ficheros • Última revisión después de congelar el código de una versión • No se permiten cambios una vez generadas las Betas • Se suele generar ya la rama de mantenimiento • No siempre se mergean cambios posteriores
Estándares i18n Sakai http://bugs.sakaiproject.org/confluence/display/I18N/How+to+write+Internationalized+Tools+in+Sakai • Por Beth Kirschner • Se basa todo en el uso de la clase ResourceLoader • Es una clase envolvente de la clase Loadbundle • Obtiene el idioma de la preferencia del usuario • Mira también el idioma del Browser • Si no busca el idioma por defecto del Servidor
Estándares i18n Sakai http://bugs.sakaiproject.org/confluence/display/I18N/How+to+write+Internationalized+Tools+in+Sakai • Herramientas construidas con JSF • Crear un backing bean para mensajes messages en el fichero faces-config file o en la página JSP • Actualizar el Bean con el fichero de properties adecuado • Usarlo de la misma forma que se usa la clase LoadBundle • Herramientas construidas con Velocity • Crear una instancia de la clase ResourceLoader • Poner esta instancia en el contexto • Referenciarla como cualquier otra variable
Estándares i18n Sakai http://bugs.sakaiproject.org/confluence/display/I18N/How+to+write+Internationalized+Tools+in+Sakai • Herramientas construidas con RSF • Definir el mensaje en la plantilla • <span rsf:id="msg=page.user.message.key">This is an internationalized message.</span> • Usar la clase UIMessage • <span rsf:id="my-rsf-id">This will be an internationalized message.</span> • UIMessage.make(tofill, "my-rsf-id", "page.user.message.key"); • Dejar el fichero de propiedades en el lugar por defecto • tool/src/webapp/WEB-INF/messages • Más Información en: • http://www2.caret.cam.ac.uk/rsfwiki/Wiki.jsp?page=I18N
I18n Best Practices • Nunca Olvides el Estándar • Definir todas las herramientas de la misma forma • Los ficheros de Propiedades son nuestros amigos • La implementación es independiente del lenguaje • Seperar los ficheros de propiedades que dependen del idioma de los de configuración. • Separar los nombres de los códigos • Ej: Caso codificacion de estados
I18n Best Practices • No debe existir texto literal en los ficheros .java o .jsp • Es más duro de desarrollar pero es necesario • El código es más difícil de entender • Sólo los datos introducidos por el usuario deberían guardare en la BD. • Evitar el almacenamiento de información necesaria para la lógica de la aplicación, estados, dispatchers. • Sólo el usurio debe insertar datos en la Bd y no la aplicación • No usar String internacionalizados en la lógica de la aplicación • Realizar pruebas en más de un idioma
I18n Best Practices • Literales sensibles a idioma almacenados en la BD • Gradebook GB_GRADABLE_OBJECT_T.EXTERNAL_APP_NAME
I18n Best Practices • Samigo: Datos de la Herramienta almacenados en la BD SAM_TYPE_T.KEYWORD
I18n Best Practices • Separar valores y nombres en las Opciones msgcntr\messageforums-app\src\java\org\sakaiproject\tool\messageforums\DiscussionForumTool.java public List getPostingOptions() { List postingOptions = new ArrayList(); postingOptions.add(new SelectItem(PermissionBean.NONE,PermissionBean.NONE)); postingOptions.add(new SelectItem(PermissionBean.OWN,PermissionBean.OWN)); postingOptions.add(new SelectItem(PermissionBean.ALL,PermissionBean.ALL)); return postingOptions; }
Estado de la Internacionalización Internationalization Status At the time of this writing, the following languages/locales are supported: English (US & UK), Japanese, Korean, Dutch, Simplified Chinese, Spanish, French (France & Canada), Catalan, Swedish, Arabic, Russian, Portuguese (Portugal & Brazil). Additionally, there are several aspects of internationalizing Sakai: 1) Ability to type international (unicode) characters into any Sakai toolStatus: Currently supported 2) Ability for any tool interface to dynamically reflect a user's preferred international localeStatus: Supported pending translation 3) Ability to create worksites whose page titles will statically reflect to a defined international localeStatus: Supported pending translation 4) Ability to create worksites whose page titles will dynamically reflect a user's preferred international localeStatus: Not supported yet (pending development) 5) Ability to create worksites whose page titles and tool interface will statically reflect a site's preferred international localeStatus: Not supported yet (pending development) 6) Ability to support right-to-left languagesStatus: Supported pending customized skins or CSS (see Sakai-RTL-skin.jpg)
Problemas i18n • Nombres de Páginas y Herramientas • Se insertan en la BD en el idioma de creación SAKAI_SITE_PAGE.TITLE SAKAI_SITE_TOOL.TITLE
Problemas i18n • Solución UPV desde ver 2.1.2 • Cada herramienta tiene un nombre de registro (sakai.site.info) • Creación de un nuevo fichero de propiedades con estas claves. • Almacenar la clave en el campo nombre de la BD • Obtención del texto localizado a partir de la clave • Si no se encuentra texto, mostrar el contenido en la BD • Inconvenientes • No se permite la personalización del nombre • No se puede usar una misma herramienta varias veces (sakai.iframe) • Otra Solución (SAK-5296) • Tool registration files need to support xml:lang • Tool class would support retrieving the locale-specific text • How to handle tools that may be used one than more time?
Problemas i18n • Globales a Sakai
Localization • El problema de las Fechas • Diferentes formatos según Zona. • Poca uniformidad en sakai. • No se usa siempre el mismo código para solicitar fecha y para mostrar fecha.
Problemas i18n • De Codificación
Problemas i18n • Problemas con solución
Problemas i18n • Textos incluidos en las imágenes • Solución: Usar una imágen anónima
Herramienta Ayuda • Herramienta Especial • Sólo en Inglés • No usa Ficheros de Propiedades