Download i18n - Sakai Confluence
Document related concepts
no text concepts found
Transcript
Estado de la Internacionalización (i18n) en Sakai Raúl E. Mengod López Universidad Politécnica de Valencia Pamplona, 18 Noviembre 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 I18n en 3akai 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 • P. Docente e Investigador • Departamentos 44 • P. Administración y Servicios • Titulaciones 1er Ciclo 31 • Institutos de Investigación • Titulaciones de 2º Ciclo 12 • Contratación I+D+I • Titulaciones 1er y 2º Ciclo 13 • Presupuesto anual • Alumnos de 1er y 2º Ciclo 36.525 • Programas Máster 40 • Programas de Doctorado 66 • Cursos de Especialización 66 • Alumnos de 3er Ciclo 1933 • Empresas colaboradoras PCE 2.497 1.471 40 35 M. € 218 M. € 2.718 5 Introducción a la UPV 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 i18n Avanzadilla de funcionalidades de la 2.6 Migración a 2.6 en Octubre 2009 Problemática de los parches Problemática de la adaptación Menos parches de i18n que en versiones anteriores 8 Sakai en la UPV 9 Un poco de Historia de Sakai Un poco de Historia de Sakai Sakai Universidad de Lleida empezó el trabajo Creación de los ficheros de properties Traducción a Catalán 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 Corriendo sólo en monolingue pero con el idioma por defecto Versión española no disponible Sakai 2.0 2.1.2 Primera versión en Castellano Había muchos problemas básicos por solucionar 11 Un poco de Historia de Sakai Sakai Se añadieron más Idiomas Sakai 2.6 Solucionadas 12 incidencias Sakai 2.5 Solucionadas 22 incidencias Tool migración de traducciones Sakai 2.4 Solucionadas 29 incidencias Tool revisar traducciones Sakai 2.3 2.7 Solucionadas 83 incidencias (muchas en 2.6.1) 12 WG: i18n 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 14 WG: i18n http://bugs.sakaiproject.org/confluence/display/I18N/Home 15 Configuración de la i18n 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 17 Traducción de Sakai Traducción de Sakai El primer paso para avanzar en la Internacionalización Traducciones disponibles actualmente: 19 Traducción de Sakai Cada idioma tiene un responsable Catalán : Lleida Castellano: Valencia Euskera: Navarra Gallego: ¿Santiago? Permisos de commit sobre los Ficheros en svn Es necesaria una revisión y actualización constante Cambios constantes en los programas La traducción se suele realizar fuera de contexto Falta un mecanismo para verificar la validez de una traduccíón 20 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/index.html Se actualiza diariamente contra el trunk OJO con los ficheros excluidos http://qa1-nl.sakaiproject.org/international/trunk/de.html#excludedfiles 21 Traducción de Sakai 22 Traducción de Sakai 23 Traducción de Sakai 24 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 OJO: Está a punto de congelarse el código v. 2.7 25 ¿Cómo construir Herramientas i18n? Estándares i18n Sakai http://bugs.sakaiproject.org/confluence/display/I18N/How+to+write+In ternationalized+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 27 Estándares i18n Sakai http://bugs.sakaiproject.org/confluence/display/I18N/How+to+w rite+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 28 Estándares i18n Sakai http://bugs.sakaiproject.org/confluence/display/I18N/How+to+w rite+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 29 I18n Best Practices 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 que dependen de la configuración. Separar los nombres de los códigos Ej: Caso codificacion de estados 31 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 guardarse 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 32 I18n Best Practices Literales sensibles a idioma almacenados en la BD Gradebook GB_GRADABLE_OBJECT_T.EXTERNAL_APP_NAME 33 I18n Best Practices Samigo: Datos de la Herramienta almacenados en la BD SAM_TYPE_T.KEYWORD 34 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; } 35 Estado Actual de la Internacionalización 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 tool Status: Currently supported 2) Ability for any tool interface to dynamically reflect a user's preferred international locale Status: Supported pending translation 3) Ability to create worksites whose page titles will statically reflect to a defined international locale Status: Supported pending translation 4) Ability to create worksites whose page titles will dynamically reflect a user's preferred international locale Status: Not supported yet (pending development) 5) Ability to create worksites whose page titles and tool interface will statically reflect a site's preferred international locale Status: Not supported yet (pending development) 6) Ability to support right-to-left languages Status: Supported pending customized skins or CSS (see Sakai-RTL-skin.jpg) 37 Problemas en el JIRA Problemas en el JIRA Problemas en el JIRA Problemas en el JIRA 86 incidencias reportadas en el JIRA Problemas i18n Problemas i18n Globales a Sakai 43 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. 44 Localization 45 Problemas i18n De Codificación 46 Problemas i18n Problemas con solución 47 Problemas i18n Textos incluidos en las imágenes • Solución: Usar una imágen anónima 48 Problemas i18n Reorganización 49 Problemas i18n Mejoras 50 Mejoras conseguidas en las últimas versiones Mejoras i18n Nombres de Páginas y Herramientas Basado en el fichero de los nombres de las tools Excepción con tools que se pueden repetir Si se personaliza el nombre se pierte la traducción 52 Mejoras i18n Primer día de la semana 53 Mejoras i18n Uso de Strings i18n en la lógica de la aplicación • El nombre de las carpetas se crea en inglés pero luego las búsquedas se hacían en el idioma de navegación 54 Herramienta Ayuda Herramienta Especial No usa Ficheros de Propiedades Difícil de mantener sincronizada con la original Traducido a castellano 55 Conclusiones Conclusiones Se ha trabajado mucho en la i18n Nuevos Idiomas Nuevas funcionalidades Nuevos Parches Aún queda mucho por hacer (entre todos) Siguen habiendo muchos Bugs No es un tema prioritario para la comunidad Sólo interesa a algunos europes Aún más interesadas las zonas bilingües 57 Conclusiones Falta una política clara de control de la i18n Similar a la que se ha hecho con QA Certificación de Idiomas Control de las traducciones en el QA Requisito para pasar una contrib a provisional Creación de un comité de seguimiento 58 I18n en 3akai I18n en 3akai Sakai 3 está en un estado temprano de desarrollo Buena oportunidad para solucionar los problemas de i18n Posibilidad de ‘hacer bien las cosas’ Las traducciones siguen estando en properties ¿Traducción en Sling? Falta documentación 60 Propuestas del grupo Spanish Sakai Propuestas Crear grupo conjuto revisar problemas Repartirse Hacer las incidencias más presión a Sakai 62 Gracias rmengod@upv.es EuroSakai 2010 VALENCIA 1-3 Marzo 2010 64