estado de la internacionalización (i18n) en sakai raúl e. mengod lópez universidad politécnica...

Post on 16-Feb-2015

5 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related