[Kde-l10n-es] Corrección automática de las traducciones de KDE (género de términos técnicos)

Javier Viñal fjvinal en gmail.com
Vie Mar 7 22:14:01 UTC 2014


Hola:

Adjunto un nuevo «shell script» de correcciones automáticas con pology. En
este caso se trata de normalizar el género de algunos términos técnicos:

- Caché, Interfaz, IRQ, Macro, Web: femenino
- BIOS, URL: masculino

El caso más polémico puede ser URL, con el que hay división de opiniones;
pero, puesto que son las siglas de «Localizador Uniforme de Recursos» debe
considerarse masculino.

La corrección se hace en varias partes. Primero se sustituyen los artículos
y demostrativos; luego las concordancias erróneas con las siguientes
palabras.

Espero que Eloy tenga un rato para aplicar estas conversiones y las del
anterior script que envié.

Como he aprendido un poco más de bash, hay algunas mejoras en la
programación.

Saludos, Javier

#!/bin/bash
#
# Corrección automática de errores en las traducciones.
# Lanza cuatro procesos en paralelo (dos ramas x dos tipos).
# Deja un registro del resultado en el subdirectorio «./Correcciones»
#
PROGRAMA=~/svnroot/pology/scripts/posieve.py
RAIZ=~/svnroot
IDIOMA=es
OPCION=find-messages
PARAMETROS="-s accel:& -s case"

# Cambia artículos con género cambiado en términos técnicos.
P[0]="\bel(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)"
R[0]="la"
P+=("\bEl(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")
R+=("La")
P+=("\bdel(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)") R+=("de
la")
P+=("\bDel(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)") R+=("De
la")
P+=("\bun(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")
R+=("una")
P+=("\bUn(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")
R+=("Una")
P+=("\beste(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")
R+=("esta")
P+=("\bEste(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")
R+=("Esta")
P+=("\bese(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")
R+=("esa")
P+=("\bEse(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")
R+=("Esa")

P+=("\blos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")
R+=("las")
P+=("\bLos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")
R+=("Las")
P+=("\bunos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")
R+=("unas")
P+=("\bUnos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")
R+=("Unas")
P+=("\bestos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")
R+=("estas")
P+=("\bEstos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")
R+=("Estas")
P+=("\besos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")
R+=("esas")
P+=("\bEsos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")
R+=("Esas")

P+=("\bla(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("el")
P+=("\bLa(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("El")
P+=("\buna(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("un")
P+=("\bUna(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("Un")
P+=("\besta(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("este")
P+=("\bEsta(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("Este")
P+=("\besa(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("ese")
P+=("\bEsa(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("Ese")

P+=("\blas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)") R+=("los")
P+=("\bLas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)") R+=("Los")
P+=("\bunas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)") R+=("unos")
P+=("\bUnas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)") R+=("Unos")
P+=("\bestas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)") R+=("estos")
P+=("\bEstas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)") R+=("Estos")
P+=("\besas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)") R+=("esos")
P+=("\bEsas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)") R+=("Esos")

# Corrección de algunas faltas de concordancia.
P+=("(?<=[Ii]nterfaz\s)gráfico\b") R+=("gráfica")
P+=("(?<=[Ii]nterfaz\s)cableado\b") R+=("cableada")
P+=("(?<=[Ii]nterfaz\s)activo\b") R+=("activa")
P+=("(?<=[Ii]nterfaces\s)gráficos\b") R+=("gráficas")
P+=("(?<=[Ii]nterfaces\s)cableados\b") R+=("cableadas")
P+=("(?<=[Ii]nterfaces\s)activos\b") R+=("activas")
P+=("(?<=([Uu]rl|URL)\s)seleccionada\b") R+=("seleccionado")
P+=("(?<=([Uu]rl|URL)\s)completa\b") R+=("completo")
P+=("(?<=([Uu]rl|URL)\s)facilitada\b") R+=("facilitado")
P+=("(?<=([Uu]rl|URL)\s)predeterminada\b") R+=("predeterminado")
P+=("(?<=([Uu]rl|URL)\s)válida\b") R+=("válido")
P+=("(?<=([Uu]rl|URL)\s)introducida\b") R+=("introducido")
P+=("(?<=([Uu]rl|URL)\s)configurada\b") R+=("configurado")
P+=("(?<=([Uu]rl|URL)\s)correcta\b") R+=("correcto")
P+=("(?<=([Uu]rl|URL)\s)específica\b") R+=("específico")
P+=("(?<=([Uu]rl|URL)\s)remota\b") R+=("remoto")
P+=("(?<=([Uu]rl|URL)\s)mostrada\b") R+=("mostrado")
P+=("(?<=([Uu]rl|URL)\s)estática\b") R+=("estático")
P+=("(?<=([Uu]rl|URL)\s)usada\b") R+=("usado")
P+=("(?<=([Uu]rl|URL)\s)antigua\b") R+=("antiguo")
P+=("(?<=([Uu]rl|URL)\s)abreviada\b") R+=("abreviado")
P+=("(?<=([Uu]rl|URL)\s)pasada\b") R+=("pasado")
P+=("(?<=([Uu]rl|URL)\s)seleccionadas\b") R+=("seleccionados")
P+=("(?<=([Uu]rl|URL)\s)completas\b") R+=("completos")
P+=("(?<=([Uu]rl|URL)\s)facilitadas\b") R+=("facilitados")
P+=("(?<=([Uu]rl|URL)\s)predeterminadas\b") R+=("predeterminados")
P+=("(?<=([Uu]rl|URL)\s)válidas\b") R+=("válidos")
P+=("(?<=([Uu]rl|URL)\s)introducidas\b") R+=("introducidos")
P+=("(?<=([Uu]rl|URL)\s)configuradas\b") R+=("configurados")
P+=("(?<=([Uu]rl|URL)\s)correctas\b") R+=("correctos")
P+=("(?<=([Uu]rl|URL)\s)específicas\b") R+=("específicos")
P+=("(?<=([Uu]rl|URL)\s)remotas\b") R+=("remotos")
P+=("(?<=([Uu]rl|URL)\s)mostradas\b") R+=("mostrados")
P+=("(?<=([Uu]rl|URL)\s)estáticas\b") R+=("estáticos")
P+=("(?<=([Uu]rl|URL)\s)usadas\b") R+=("usados")
P+=("(?<=([Uu]rl|URL)\s)antiguas\b") R+=("antiguos")
P+=("(?<=([Uu]rl|URL)\s)abreviadas\b") R+=("abreviados")
P+=("(?<=([Uu]rl|URL)\s)pasadas\b") R+=("pasados")
P+=("(?<=URLs\s)seleccionadas\b") R+=("seleccionados")
P+=("(?<=URLs\s)completas\b") R+=("completos")
P+=("(?<=URLs\s)facilitadas\b") R+=("facilitados")
P+=("(?<=URLs\s)predeterminadas\b") R+=("predeterminados")
P+=("(?<=URLs\s)válidas\b") R+=("válidos")
P+=("(?<=URLs\s)introducidas\b") R+=("introducidos")
P+=("(?<=URLs\s)configuradas\b") R+=("configurados")
P+=("(?<=URLs\s)correctas\b") R+=("correctos")
P+=("(?<=URLs\s)específicas\b") R+=("específicos")
P+=("(?<=URLs\s)remotas\b") R+=("remotos")
P+=("(?<=URLs\s)mostradas\b") R+=("mostrados")
P+=("(?<=URLs\s)estáticas\b") R+=("estáticos")
P+=("(?<=URLs\s)usadas\b") R+=("usados")
P+=("(?<=URLs\s)antiguas\b") R+=("antiguos")
P+=("(?<=URLs\s)abreviadas\b") R+=("abreviados")
P+=("(?<=URLs\s)pasadas\b") R+=("pasados")
P+=("(?<=URL\sweb\s)válida\b") R+=("válido")
P+=("(?<=URL\sno\s)válida\b") R+=("válido")
P+=("(?<=URL\sno\ses\s)válida\b") R+=("válido")
P+=("(?<=URL\ssean\s)llamadas\b") R+=("llamados")
P+=("(?<=URL\santes\s)introducida\b") R+=("introducido")
P+=("(?<=URLs\ssean\s)llamadas\b") R+=("llamados")
P+=("(?<=URL\s)a\s\la\scual\b") R+=("al cual")
P+=("(?<=URL\s)a\s\la\sque\b") R+=("al que")
P+=("(?<=URL\s)de\sla\s\cual\b") R+=("del cual")
P+=("(?<=URL\s)de\sla\s\que\b") R+=("del que")
P+=("(?<=URL\s)introducido\sno\ses\sválida\b") R+=("introducido no es
válido")

P+=("\ba\sel(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("al")
P+=("\bA\sel(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("Al")
P+=("\bde\sel(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("del")
P+=("\bDe\sel(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)") R+=("Del")

corregir() {
    echo "Iniciando...:" $1 $2
    ORIGEN=$RAIZ/$1/l10n-kde4/$IDIOMA/$2
    for PAQUETE in $ORIGEN/*; do
if [ -d $PAQUETE ]; then
    echo "Procesando...:" $PAQUETE
    for ((I=0; I<${#P[@]}; I++)); do
    # for ((I=34; I<88; I++)); do
echo "Analizando...:" "${P[$I]}"
$PROGRAMA '-bR' $OPCION $PARAMETROS -s msgstr:"${P[$I]}" -s
replace:"${R[$I]}" $PAQUETE
    done
fi
    done
}

for RAMA in "branches\/stable" "trunk"; do
    for TIPO in "messages" "docmessages"; do
mkdir -p "./Correcciones/$RAMA"
corregir $RAMA $TIPO > "./Correcciones/$RAMA/$TIPO.log" &
    done
done
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.kde.org/pipermail/kde-l10n-es/attachments/20140307/b5d0c2d7/attachment-0001.html>


Más información sobre la lista de distribución Kde-l10n-es