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
[email protected]
EuroSakai 2010
VALENCIA
1-3 Marzo
2010
64