View
6
Download
2
Category
Preview:
Citation preview
Estado de la Internacionalización (i18n) en SakaiRaúl E. Mengod López
Universidad Politécnica de Valencia
Pamplona, 18 Noviembre de 2009
Índice
Introducción a la UPVUn poco de Historia de SakaiWG: i18nTraducción de Sakai¿Cómo construir herramientas i18n?Best PracticesEstado actual de la i18n en SakaiProblemas de i18nMejoras conseguidas en las últimas versionesI18n 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
• 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
La Universidad Politécnica de Valencia en cifras:
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
8
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
9
Sakai en la UPV
Un poco de Historia de Sakai
11
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 Había muchos problemas básicos por solucionar
12
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 12 incidencias
Sakai 2.7 Solucionadas 83 incidencias (muchas en 2.6.1)
WG: i18n
14
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
15
WG: i18n
http://bugs.sakaiproject.org/confluence/display/I18N/Home
Configuración de la i18n
17
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
19
Traducción de Sakai
El primer paso para avanzar en la Internacionalización
Traducciones disponibles actualmente:
20
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
21
Traducción de Sakai
Herramientas ayuda traducción Editores de Ficheros de Recursos
ResourceProperties Editorhttp://sourceforge.net/projects/i18nedit
XLIFF Translation Editorhttps://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
22
Traducción de Sakai
23
Traducción de Sakai
24
Traducción de Sakai
25
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
¿Cómo construir Herramientas i18n?
27
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
28
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
29
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 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
33
I18n Best Practices
Literales sensibles a idioma almacenados en la BD Gradebook
GB_GRADABLE_OBJECT_T.EXTERNAL_APP_NAME
34
I18n Best Practices
Samigo: Datos de la Herramienta almacenados en la BD
SAM_TYPE_T.KEYWORD
35
I18n Best Practices
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; }
msgcntr\messageforums-app\src\java\org\sakaiproject\tool\messageforums\DiscussionForumTool.java
• Separar valores y nombres en las Opciones
Estado Actual de la Internacionalización
37
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 supported2) Ability for any tool interface to dynamically reflect a user's preferred international localeStatus: Supported pending translation3) Ability to create worksites whose page titles will statically reflect to a defined international localeStatus: Supported pending translation4) 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 en el JIRA
Problemas en el JIRA
Problemas en el JIRA
Problemas en el JIRA
86 incidencias reportadas en el JIRA
Problemas i18n
43
Problemas i18n
Globales a Sakai
44
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.
45
Localization
46
Problemas i18n
De Codificación
47
Problemas i18n
Problemas con solución
48
Problemas i18n
Textos incluidos en las imágenes
• Solución: Usar una imágen anónima
49
Problemas i18n
Reorganización
50
Problemas i18n
Mejoras
Mejoras conseguidas en las últimas versiones
52
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
53
Mejoras i18n
Primer día de la semana
54
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
55
Herramienta Ayuda
Herramienta Especial No usa Ficheros de
Propiedades Difícil de mantener
sincronizada con la original Traducido a castellano
Conclusiones
57
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
58
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
I18n en 3akai
60
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
Propuestas del grupo Spanish Sakai
62
Propuestas
Crear grupo conjuto revisar problemas
Repartirse las incidencias
Hacer más presión a Sakai
Gracias
rmengod@upv.es
64
EuroSakai 2010
VALENCIA1-3 Marzo
2010
Recommended