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
• 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 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

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
Faltaban muchas problemas
11
Un poco de Historia de Sakai
 Sakai

Se añadieron más Idiomas
 Sakai



2.5
Solucionadas 22 incidencias
Tool migración de traducciones
 Sakai

2.4
Solucionadas 29 incidencias
Tool revisar traducciones
 Sakai

2.3
2.6
Solucionadas 11 incidencias
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
 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
19
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
20
Traducción de Sakai
21
Traducción de Sakai
22
Traducción de Sakai
23
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
24
¿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
26
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
27
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
28
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 de configuración.

 Separar

los nombres de los códigos
Ej: Caso codificacion de estados
30
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
31
I18n Best Practices
 Literales

sensibles a idioma almacenados en la BD
Gradebook
GB_GRADABLE_OBJECT_T.EXTERNAL_APP_NAME
32
I18n Best Practices
 Samigo:
Datos de la Herramienta almacenados en la BD
SAM_TYPE_T.KEYWORD
33
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;
}
34
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)
36
Problemas en el JIRA
Problemas en el JIRA
Problemas en el JIRA
Problemas en el JIRA
Problemas i18n
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
42
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?
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
Herramienta Ayuda
 Herramienta
Especial
 Sólo en Inglés
 No usa Ficheros de
Propiedades
50
Problemas i18n
 Reorganización
51
Problemas i18n
 Mejoras
52
Mejoras conseguidas en las
últimas versiones
Localization
Primer día de la semana
54
Problemas 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
Conclusiones
Conclusiones
 Se
ha trabajado mucho en la i18n
Nuevos Idiomas
 Nuevas funcionalidades
 Nuevos Parchers

 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
Spanish Sakai
Spanish Sakai

Espacio de la comunidad sakai en España


La i18n de sakai nos interesa a todos



http://
Comunidades Bilingües
Alumnos de Intercambio
Pasos a Seguir



Trabajar para solucionar problemas
Tener más presencia en los foros internacionales
Colaboración en las herramientas
60
Gracias
[email protected]
Descargar

Grupo de Trabajo e