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