Páginas: Anterior 1 2 Siguiente

Como contabilizar las líneas sin traducir (archivos .po) de tu proyecto Launchpad

30 12 2009
Tower of babel

La internacionalización de un proyecto es algo importante y más cuando quieres difundir ampliamente tu programa y hace uso de muchos canales de televisión y radio de diferentes países y lenguas como es mi caso con Tivion.

Por tanto para ver el progreso de las traducciones se hace necesario fabricar algunas herramientas rápidas.

Supongamos que tenemos 10 o 15 archivos de traducción .po y queremos ver cuanto es el progreso en número de lineas sin traducir sobre el total disponible y sacar un porcentaje para tener una ligera idea del soporte de dicho idioma en nuestra aplicación.

Hasta ahora se podía ver eso en Launchpad, si tienes todos los lenguajes como tus “preferidos”. Podéis ver el ejemplo con Tivion en LaunchPad.

Y comprobareis que solo sale listado el idioma que tengáis puesto en la cuenta registrada con su porcentaje correspondiente. En mi caso para visualizar todos los idiomas, tuve que poner en mi perfil que hablaba todos. Esto es algo falso como se puede suponer, pero era la única manera hasta entonces que tenia para seguir los porcentajes de traducciones.

Así que he hecho un script rápido que me permite leer los archivos .po y mirar las cadenas traducidas y sin traducir y sacar una pequeña estadística para cada idioma. Con ello podre seguir mejor el proyecto y daros pistas de como van avanzando las traducciones.

El script por si a alguien le resulta útil es el siguiente (lo explico a continuación):

?Descargar po_percent.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
PATH_TO_PO = '../src/*.po'
 
import os
import glob
import re
 
print 'Translation file  %Ready  (Unfinished/Total)'
print '============================================'
for filename in glob.glob(PATH_TO_PO): 
    file = open(filename, 'r').read()
    unfinished = re.findall(r'msgstr ""\n\n', file, re.M)
    msg_lines  = re.findall(r'msgid', file, re.M)
    percent = (100 * len(unfinished))/len(msg_lines)
    finished = 100 - percent
    print "% 15s: % 4d%%    %d/%d" %(os.path.split(filename)[-1], finished, len(unfinished), len(msg_lines))

Podeis ejecutarlo con (suponiendo que llamáis al archivo po_percent.py):

?Descargar ejecutar.txt
1
$ python po_percent.py

Tendrá una salida como la siguiente:

?Descargar salida.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ python po_percent.py 
Translation file  %Ready  (Unfinished/Total)
============================================
         tlh.po:    2%    156/159
          ar.po:    3%    155/159
       en_AU.po:    2%    156/159
          el.po:    2%    156/159
          gl.po:   97%    5/159
          an.po:    3%    155/159
          es.po:  100%    0/162
          hr.po:   74%    42/159
          ru.po:   36%    105/162
          eu.po:    2%    156/159
          fr.po:   44%    92/162
          de.po:   43%    91/159
       zh_TW.po:    2%    156/159
       en_GB.po:    6%    152/161
          pt.po:   36%    105/162
          tr.po:   87%    22/162
          it.po:  100%    0/159
          sq.po:    2%    156/159
          bs.po:    2%    156/159
          ca.po:  100%    0/159
          af.po:    2%    156/159

Donde sale listado cada archivo .po el porcentaje traducido y el total de cadenas sin traducir sobre el total de cadenas.

El script es sencillo. En la línea 4 debes poner la ruta a los archivos .po. En mi caso esta en una carpeta script/ superior y debo ir a la carpeta /src de tivion, por eso tengo puesto ese path. El tuyo puede ser distinto.

Luego se importan las bibliotecas necesarias en la lineas 6, 7 y 8.
Se muestra un mensaje en las 10 y 11, y en la 12 hacemos un bucle para cada archivo .po que se encuentre en la ruta.

En la línea 13 leemos el fichero y utilizamos una expresiones regulares en las líneas 14 y 15 para obtener las líneas sin traducir y las totales.

Luego se calcula el porcentaje en la línea 15 y en la 18 se muestran los datos para cada archivo.

VN:F [1.8.3_1051]
Rating: 9.0/10 (1 vote cast)
VN:F [1.8.3_1051]
Rating: 0 (from 0 votes)
Comparte, descargalo en pdf, imprimelo o enviaselo a un amigo!
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • PDF
  • RSS
  • StumbleUpon
  • Technorati


Vergüenza ajena

23 12 2009
Bad windows

Es lo que se siente, cuando compañeros de facultad corren como chiquillos hambrientos por una copia y licencia gratuita de Windows 7 ofrecida por la propia universidad.

Me parece un gran error que desde la universidad se promueva el fomento de software privativo a través de este tipo de servicios.

La manera en la que actúa Microsoft ofreciendo estas licencias gratuitas, tiene una doble moral y es totalmente fraudulenta a largo plazo. Estos compañeros movidos por la gratuicidad no se dan cuenta que en un futuro, estarán ligados a usar productos y software de Windows, porque será en lo que hayan aprendido y desarrollado y eso puede estar bien cuando eres universitario, pero cuando trabajes en una empresa, la empresa tendrá muchísimos gastos en licencias porque sus desarrolladores únicamente conocen Windows porque fue lo que les inculcaron en la universidad.

¿Y porque me molesta esto? Porque es una pescadilla que se muerde la cola. Las administraciones no usan software libre porque no hay empresas de terceros que lo usen, y estas empresas no usan software libre porque no les llegan licenciados con conocimientos de software libre, pero la propia universidad no enseña software libre porque sus profesores no lo usan y Microsoft encima les regala licencias.

Podría hacerme el indiferente como muchos hacen y dicen “mientras no me obliguen a mí a usar Windows me parece bien“, pues no, yo no puedo tomar dicha postura, porque me afecta indirectamente aunque no quiera en la vida diaria.

Así que esa es mi vergüenza ajena.

VN:F [1.8.3_1051]
Rating: 9.4/10 (20 votes cast)
VN:F [1.8.3_1051]
Rating: 0 (from 0 votes)
Comparte, descargalo en pdf, imprimelo o enviaselo a un amigo!
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • PDF
  • RSS
  • StumbleUpon
  • Technorati


Integrar Evince en Firefox para visualizar PDFs

19 12 2009
PDF embedded

Normalmente al navegar, suele ser necesario visualizar algún documento que esta embebido en PDF dentro de una página web. En mi caso concreto, muchos de los temas y ejercicios de mi universidad son publicados en PDF y embebidos en Moodle. El problema es, que estos documentos embebidos no se muestran o bien buferizan el archivo para su descarga al menos en Ubuntu, cuando realmente lo que se necesita es verlo dentro de la página.

Hasta hace pocos días, me conformaba con poder descargar el pdf y seguir trabajando. Pero se puede solucionar de una manera bastante sencilla.

Primero necesitamos instalar el plugin mozplugger de Firefox:

1
$ sudo apt-get install mozplugger

Después abrimos el archivo /etc/mozpluggerrc para edición:

1
$ sudo gedit /etc/mozpluggerrc

Busca las líneas:

1
2
3
4
application/pdf: pdf: PDF file
application/x-pdf: pdf: PDF file
text/pdf: pdf: PDF file
text/x-pdf: pdf: PDF file

Y añade justo debajo de cada una:

1
repeat noisy swallow(evince) fill: evince "$file"

Debe quedarte algo así:

1
2
3
4
5
6
7
8
application/pdf:pdf:PDF file
    repeat noisy swallow(evince) fill: evince "$file"
application/x-pdf:pdf:PDF file
    repeat noisy swallow(evince) fill: evince "$file"
text/pdf:pdf:PDF file
    repeat noisy swallow(evince) fill: evince "$file"
text/x-pdf:pdf:PDF file
    repeat noisy swallow(evince) fill: evince "$file"

Si tenías abierto Firefox, reinicialo y listo, ya puedes visualizar tus pdf embebidos en webs.

VN:F [1.8.3_1051]
Rating: 10.0/10 (1 vote cast)
VN:F [1.8.3_1051]
Rating: 0 (from 0 votes)
Comparte, descargalo en pdf, imprimelo o enviaselo a un amigo!
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • PDF
  • RSS
  • StumbleUpon
  • Technorati


Tivion 0.0.3 “Opiron” liberado

12 12 2009
Tivion 0.0.3-opiron

Tivion 0.0.3-opiron

Tivion 0.0.3 con nombre en clave “Opiron” es una versión con muchas novedades que han sido bastante esperadas:

  • Añadida lista despegable para filtrar los canales por tipo (TV, Radio, Sopcast y Todos). Sopcast aún no implementado.
Filtrado por tipo de canal

Filtrado por tipo de canal

  • Añadida opción -c o -channel-list para volcar un listado con todos los canales disponibles, ordenados por país en orden decreciente.
  • Soporte para cambiar el directorio por defecto donde se guardan las capturas a través de Archivo>Configuración>Directorio de capturas (por defecto se guardan en /home/usuario/.tivion/capturas/
Configuración Tivion

Configuración Tivion

  • Soporte para cambio de traduccioneson the fly” (al vuelo) de la interfaz, a través de Archivo>Configuración>Idioma. Esta opción no esta aún completa, ya que no se guarda el idioma cambiado para otra sesión y tampoco se auto-traduce la parte del listado del canales. En próximas versiones estará implementado.
Apply changes

Apply changes

  • Añadida opción de pinchar sobre el nombre del pais y expandir la lista de canales (antes solo sobre el icono de flecha)
  • Soporte experimental para Ubuntu Jaunty 9.04 permitiendo ejecuciones con PyGTK 2.14 (la interfaz arrancará y funcionara pero algunas imágenes de botones seguramente no se mostrarán bien) en próxímas versiones se intentará mejorar este aspecto.
  • Añadidas las traducciones (hasta las cadenas de la versión 0.0.2) de los idiomas: Inglés (completo), Inglés (Reino unido) (completo), Francés (completo), Español (completo), Italiano (completo), Portugués (completo), Ruso (completo), Turco (casi completo), Catalán (parcial).

Para traductores interesados que quieran completar la traducción de las cadenas para la 0.0.3 u otros idiomas visitad: https://translations.launchpad.net/tivion/trunk/+pots/tivion

Las descargas de Ubuntu 9.10 son totalmente compatibles con la alpha 1 de Ubuntu 10.04 Lucid Lynx. La versión para Windows aún esta en desarrollo, así que aun tendréis que esperar un poco.

Descargas

Paquete deb

Actualización

Nuevo soporte para Arch Linux. Añadido un PKGBUILD del Archlinux User Repository (alguien se anima con el RPM?)

http://aur.archlinux.org/packages.php?ID=32889

Ubuntu Jaunty 9.04

i386: tivion_0.0.3-0ubuntu1~jaunty_i386.deb (846)

i386 changes: tivion_0.0.3-0ubuntu1~jaunty_i386.changes (128)

amd64: tivion_0.0.3-0ubuntu1~jaunty_amd64.deb (197)

amd64 changes: tivion_0.0.3-0ubuntu1~jaunty_amd64.changes (60)

source: tivion_0.0.3-0ubuntu1~jaunty.tar.gz (117)

dsc: tivion_0.0.3-0ubuntu1~jaunty.dsc (54)

Ubuntu Karmic 9.10

i386: tivion_0.0.3-0ubuntu1~karmic_i386.deb (1194)

i386 changes: tivion_0.0.3-0ubuntu1~karmic_i386.changes (144)

amd64: tivion_0.0.3-0ubuntu1~karmic_amd64.deb (479)

amd64 changes: tivion_0.0.3-0ubuntu1~karmic_amd64.changes (109)

source: tivion_0.0.3-0ubuntu1~karmic.tar.gz (108)

dsc: tivion_0.0.3-0ubuntu1~karmic.dsc (54)

Ubuntu Lucid 10.04

i386: tivion_0.0.3-0ubuntu1~lucid_i386.deb (176)

i386 changes: tivion_0.0.3-0ubuntu1~lucid_i386.changes (55)

amd64: tivion_0.0.3-0ubuntu1~lucid_amd64.deb (133)

amd64 changes: tivion_0.0.3-0ubuntu1~lucid_amd64.changes (53)

source: tivion_0.0.3-0ubuntu1~lucid.tar.gz (61)

dsc: tivion_0.0.3-0ubuntu1~lucid.dsc (50)

Las descargas también estan disponibles mediante el PPA de launchpad:

https://launchpad.net/~shakaran/+archive/ppa/+packages

Y desde la forja de RedIris:

http://forja.rediris.es/frs/?group_id=685

Agradecimientos

Por cierto, gracias a aquellos que en algún momento hicieron eco de la noticia de Tivion 0.0.1 y 0.0.2 y que sin duda han contribuido a las muchas descargas que se han realizado: TuxNoticias, LaConsola, el Blog de Rigo, Desperiencias Ubuntunteras, Slice of Linux, Linux Cáceres, Yakiboo, Dotexe, Isla Remota, PascasioSomGNU, Ubuntizando El planeta, TuxWire, WepUpd8, etc

VN:F [1.8.3_1051]
Rating: 10.0/10 (4 votes cast)
VN:F [1.8.3_1051]
Rating: 0 (from 0 votes)
Comparte, descargalo en pdf, imprimelo o enviaselo a un amigo!
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • PDF
  • RSS
  • StumbleUpon
  • Technorati


Un granito de libertad cada 15 segundos

4 12 2009

Cada 15 segundos, una nueva línea es escrita en el kernel Linux.

Y no lo digo yo, sino el  desarrollador/mantenedor del Kernel Greg Kroah-Hartman:

We add 11,000 lines, remove 5500 lines, and modify 2200 lines every single day.

Haciendo las matemáticas, es una simple regla de tres. Si se escriben 11 mil, pero 5500 son borradas y las modificadas no son nuevas. Nos quedan 5500 y como cada día tiene 24 horas * 60 min * 60 seg = 84600 segundos, pues nos quedan 84600/5500 = 15.38 segundos para escribir una línea. Truncando 15 segundos.

Vía: Entrevista a Greg Kroah-Hartman realizada por How Software is Built

VN:F [1.8.3_1051]
Rating: 4.5/10 (2 votes cast)
VN:F [1.8.3_1051]
Rating: 0 (from 0 votes)
Comparte, descargalo en pdf, imprimelo o enviaselo a un amigo!
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • BarraPunto
  • Bitacoras.com
  • Meneame
  • PDF
  • RSS
  • StumbleUpon
  • Technorati


Páginas: Anterior 1 2 Siguiente