Sunday, February 17, 2008

i18n de Trac

Empezamos poniendo pootle en mi máquina, y hasta pudimos lanzarlo después de arreglar algunos mocos del paquete de python2.4 de Ubuntu Gutsy (básicamente, Gutsy trae python2.5; yo instalé python2.4 antes de venir al pycamp, y me hizo lío con elementTree: me funciona en 2.4 pero no en 2.5. La verdad es que python-support debería avivarse un poco :) ).

Pootle no es algo precisamente intuitivo, pero lo pudimos configurar como para volverlo barely usable. No pudimos llegar a asignar cosas a usuarios y eso, pero lo dejaremos para la versión 2 de su uso :).

Después de comer pudimos importar el .pot que teníamos, y empezar a generar el po es ES-AR. Tradujimos, entre cramm y yo, con esporádicas intervenciones de otros, 2505 palabras (en 634 cadenas). Hicimos todo eso en unas pocas horas, aunque el trabajo no fue precisamente "liviano". Traducir, teniendo en cuenta no sólo los posibles significados sino también los contextos, no es trivial.

La internacionalización de Trac suckea, mal. Las cadenas del .pot están muy mal armadas, con inconsistencias por todos lados, cadenas cortadas a cualquier altura, texto de templates mezclados con layout (\n's, espacios, etc) y encima incompletas. De lo primero nos dimos cuenta en tiempo real, mientras hacíamos las traducciones. Lamentablemente, sólo nos dimos cuenta de que estaba incompleto cuando re felices pusimos el .po en la instancia de Trac que teníamos y vimos que muchas cosas aún estaban en inglés.

Pensando en que quizás teníamos un .pot desactualizado, así que tratamos de bajar uno más nuevo. No pudimos, porque la conexión a internet suckeaba bastante. Después comimos y nos relajamos un poco, y a la noche estuvimos tratando de bajar una versión más nueva de Babel y de seguir por ese lado. Ahora cramm me dice que quizás nos hayamos olvidado de compilar el .po para generar el .mo y por eso Trac no lo veía. Después trataré de reproducir los pasos cuando tenga internet segura y una conexión eléctrica donde mi compu no corra tanto peligro.

Cramm también encontró este bug reportado en el trac de Genshi, y parece que están trabajando sobre eso. Ahora tiene asignado al milestone 0.6, que todavía no tiene due date :(. Espero que lo puedan terminar rápido. Cuando eso esté listo, tiene sentido agarrar el código de Trac (y todos los templates que usa) y ponerse a emprolijar: internacionalizar *todos* los literales, separar estilo (que debiera estar en css) de la estructura (en los templates) y de los textos (los literales a traducir).

Después de eso, habría que hacer otro sprint de traducción, y después mucho, pero mucho testing con arreglos de errores. Si bien ayer tenía una copia del código como para intentar tener algo más de contexto al momento de traducir una palabra, hay algo cierto que es que en inglés una misma palabra a veces se usa como sustantivo y verbo, por ejemplo. Por lo tanto, en realidad hay que traducir, hacer que algún Trac lo use, y después ponerse a huevear around: agregar attachments, tickets, milestones, commits de svn, y etc, para poder testear en toda la funcionalidad a ver si las palabras están bien usadas.

Tengo muchas muchas ganas de que esto salga, y que salga bien :D.

Y después, se viene la charla de i18n y localización ;-)

No comments: