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):
#!/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):
$ python po_percent.py
Tendrá una salida como la siguiente:
$ 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.
Pingback: Tivion 0.0.4 “Lepiron” | Shakaran
¡Hola! Si estan interesados en localizar web software, PC software, móvil software o cualqier otro tipo de software, reccomendo con calor este rápido y intuitivo instrumento de localización: http://poeditor.com/.