#!/bin/bash# Licencia: GPL 2 o posterior.# Autor: [[Meta:User:ManuelGR]]# Este script obtiene una lista de mensajes que faltan de traducir en el# archivo LanguageXX.php y luego obtiene el mensaje de Wikipedia (se supone# que en Wikipedia muchos de estos mensajes están ya traducidos). El resultado# es un fichero traducidos_w.txt con los mensajes tal cual se han de insertar# en el array $wgAllMessagesXX de LanguageXX.php# Nota: añadir el contenido de traducidos_w.txt en el array $wgAllMessagesXX,# Usa un editor UTF8 y sigue las instrucciones de:# http://meta.wikimedia.org/wiki/MediaWiki_localisation# El idioma se configura con estas variables:CODIGO=es
CODIGO_PHP=Es
functionsaca_de_language(){# Este grep presupone un formato homogeneo para los elementos de# $wgAllMessagesEn. Esto se cumple a dia de hoy, pero podria cambiar# y este grep dejaria de funcionar.#grep"^'.*'[ ]*=>"$1|nawk'{print $1}'|nawk-vFS=\''{print $2}'>$1.msg.tmp
grep"^\".*\"[ ]*=>"$1|nawk'{print $1}'|nawk-vFS=\"'{print $2}'>>$1.msg.tmp
sort-u$1.msg.tmp>$1.msg
rm$1.msg.tmp
}TRADUCIBLE=Messages${CODIGO_PHP}.php
ORIGINAL=MessagesEn.php
saca_de_language$TRADUCIBLE
saca_de_language$ORIGINAL# Con esto obtenemos en no_traducidos.txt la lista de mensajes que no existen# en el fichero de traduccion.
join-v1${ORIGINAL}.msg${TRADUCIBLE}.msg>no_traducidos.txt
echo>traducidos_w.txt
foriin`catno_traducidos.txt`do# Obtener el mensaje de Wikipedia y hacer unos reemplazos simples para# sustituir referencias a Wikipedia por sus correspondientes genéricos.TRADUCCION=$(wget"http://${CODIGO}.wikipedia.org/w/index.php?title=MediaWiki:$i&action=raw"--output-document=-|sed"s/[wW]ikipedia:/{{ns:project}}:/g; s/Wikipedia/{{SITENAME}}/g; s/'/\\\'/g")if[!-z"$TRADUCCION"];then# Generar el fichero con los mensajes tal cual se incluiran en MessagesXX.phpecho"'$i' => '$TRADUCCION',">>traducidos_w.txt
fi# No saturemos al servidorsleep1done