<div dir="ltr">Hola:<div><br></div><div>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:</div><div><br></div><div>- Caché, Interfaz, IRQ, Macro, Web: femenino</div>
<div>- BIOS, URL: masculino</div><div><br></div><div>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.</div>
<div><br></div><div>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.</div><div><br></div><div>Espero que Eloy tenga un rato para aplicar estas conversiones y las del anterior script que envié.</div>
<div><br></div><div>Como he aprendido un poco más de bash, hay algunas mejoras en la programación.</div><div><br></div><div>Saludos, Javier</div><div><br></div><div><div>#!/bin/bash</div><div># </div><div># Corrección automática de errores en las traducciones.</div>
<div># Lanza cuatro procesos en paralelo (dos ramas x dos tipos).</div><div># Deja un registro del resultado en el subdirectorio «./Correcciones»</div><div>#</div><div>PROGRAMA=~/svnroot/pology/scripts/posieve.py</div><div>
RAIZ=~/svnroot</div><div>IDIOMA=es</div><div>OPCION=find-messages</div><div>PARAMETROS="-s accel:& -s case"</div><div><br></div><div># Cambia artículos con género cambiado en términos técnicos.</div><div>P[0]="\bel(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)"<span class="" style="white-space:pre">    </span>R[0]="la"</div>
<div>P+=("\bEl(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">     </span>R+=("La")</div><div>P+=("\bdel(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">        </span>R+=("de la")</div>
<div>P+=("\bDel(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">    </span>R+=("De la")</div><div>P+=("\bun(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">      </span>R+=("una")</div>
<div>P+=("\bUn(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">     </span>R+=("Una")</div><div>P+=("\beste(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">      </span>R+=("esta")</div>
<div>P+=("\bEste(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">   </span>R+=("Esta")</div><div>P+=("\bese(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">      </span>R+=("esa")</div>
<div>P+=("\bEse(?=\s([Cc]aché|[Ii]nterfaz|[Ii]rq|IRQ|[Mm]acro|[Ww]eb)\b)")<span class="" style="white-space:pre">    </span>R+=("Esa")</div><div><br></div><div>P+=("\blos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")<span class="" style="white-space:pre">      </span>R+=("las")</div>
<div>P+=("\bLos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")<span class="" style="white-space:pre">    </span>R+=("Las")</div><div>P+=("\bunos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")<span class="" style="white-space:pre">      </span>R+=("unas")</div>
<div>P+=("\bUnos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")<span class="" style="white-space:pre">   </span>R+=("Unas")</div><div>P+=("\bestos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")<span class="" style="white-space:pre">    </span>R+=("estas")</div>
<div>P+=("\bEstos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")<span class="" style="white-space:pre">  </span>R+=("Estas")</div><div>P+=("\besos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")<span class="" style="white-space:pre">    </span>R+=("esas")</div>
<div>P+=("\bEsos(?=\s([Cc]achés|[Ii]nterfaces|[Ii]rq|IRQs?|[Mm]acros|[Ww]ebs?)\b)")<span class="" style="white-space:pre">   </span>R+=("Esas")</div><div><br></div><div>P+=("\bla(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">       </span>R+=("el")</div>
<div>P+=("\bLa(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">      </span>R+=("El")</div><div>P+=("\buna(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre"> </span>R+=("un")</div>
<div>P+=("\bUna(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">     </span>R+=("Un")</div><div>P+=("\besta(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">        </span>R+=("este")</div>
<div>P+=("\bEsta(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">    </span>R+=("Este")</div><div>P+=("\besa(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">       </span>R+=("ese")</div>
<div>P+=("\bEsa(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">     </span>R+=("Ese")</div><div><br></div><div>P+=("\blas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)")<span class="" style="white-space:pre">             </span>R+=("los")</div>
<div>P+=("\bLas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)")<span class="" style="white-space:pre">           </span>R+=("Los")</div><div>P+=("\bunas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)")<span class="" style="white-space:pre">     </span>R+=("unos")</div>
<div>P+=("\bUnas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)")<span class="" style="white-space:pre">  </span>R+=("Unos")</div><div>P+=("\bestas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)")<span class="" style="white-space:pre">   </span>R+=("estos")</div>
<div>P+=("\bEstas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)")<span class="" style="white-space:pre"> </span>R+=("Estos")</div><div>P+=("\besas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)")<span class="" style="white-space:pre">   </span>R+=("esos")</div>
<div>P+=("\bEsas(?=\s([Bb]ios|BIOS|[Uu]rl|URLs?)\b)")<span class="" style="white-space:pre">  </span>R+=("Esos")</div><div><br></div><div># Corrección de algunas faltas de concordancia.</div><div>P+=("(?<=[Ii]nterfaz\s)gráfico\b")<span class="" style="white-space:pre">              </span>R+=("gráfica")</div>
<div>P+=("(?<=[Ii]nterfaz\s)cableado\b")<span class="" style="white-space:pre">            </span>R+=("cableada")</div><div>P+=("(?<=[Ii]nterfaz\s)activo\b")<span class="" style="white-space:pre">            </span>R+=("activa")</div>
<div>P+=("(?<=[Ii]nterfaces\s)gráficos\b")<span class="" style="white-space:pre">         </span>R+=("gráficas")</div><div>P+=("(?<=[Ii]nterfaces\s)cableados\b")<span class="" style="white-space:pre">              </span>R+=("cableadas")</div>
<div>P+=("(?<=[Ii]nterfaces\s)activos\b")<span class="" style="white-space:pre">           </span>R+=("activas")</div><div>P+=("(?<=([Uu]rl|URL)\s)seleccionada\b")<span class="" style="white-space:pre">      </span>R+=("seleccionado")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)completa\b")<span class="" style="white-space:pre">           </span>R+=("completo")</div><div>P+=("(?<=([Uu]rl|URL)\s)facilitada\b")<span class="" style="white-space:pre">               </span>R+=("facilitado")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)predeterminada\b")<span class="" style="white-space:pre">     </span>R+=("predeterminado")</div><div>P+=("(?<=([Uu]rl|URL)\s)válida\b")<span class="" style="white-space:pre">            </span>R+=("válido")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)introducida\b")<span class="" style="white-space:pre">                </span>R+=("introducido")</div><div>P+=("(?<=([Uu]rl|URL)\s)configurada\b")<span class="" style="white-space:pre">           </span>R+=("configurado")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)correcta\b")<span class="" style="white-space:pre">           </span>R+=("correcto")</div><div>P+=("(?<=([Uu]rl|URL)\s)específica\b")<span class="" style="white-space:pre">              </span>R+=("específico")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)remota\b")<span class="" style="white-space:pre">             </span>R+=("remoto")</div><div>P+=("(?<=([Uu]rl|URL)\s)mostrada\b")<span class="" style="white-space:pre">           </span>R+=("mostrado")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)estática\b")<span class="" style="white-space:pre">          </span>R+=("estático")</div><div>P+=("(?<=([Uu]rl|URL)\s)usada\b")<span class="" style="white-space:pre">           </span>R+=("usado")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)antigua\b")<span class="" style="white-space:pre">            </span>R+=("antiguo")</div><div>P+=("(?<=([Uu]rl|URL)\s)abreviada\b")<span class="" style="white-space:pre">         </span>R+=("abreviado")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)pasada\b")<span class="" style="white-space:pre">             </span>R+=("pasado")</div><div>P+=("(?<=([Uu]rl|URL)\s)seleccionadas\b")<span class="" style="white-space:pre">      </span>R+=("seleccionados")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)completas\b")<span class="" style="white-space:pre">          </span>R+=("completos")</div><div>P+=("(?<=([Uu]rl|URL)\s)facilitadas\b")<span class="" style="white-space:pre">             </span>R+=("facilitados")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)predeterminadas\b")<span class="" style="white-space:pre">    </span>R+=("predeterminados")</div><div>P+=("(?<=([Uu]rl|URL)\s)válidas\b")<span class="" style="white-space:pre">          </span>R+=("válidos")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)introducidas\b")<span class="" style="white-space:pre">       </span>R+=("introducidos")</div><div>P+=("(?<=([Uu]rl|URL)\s)configuradas\b")<span class="" style="white-space:pre"> </span>R+=("configurados")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)correctas\b")<span class="" style="white-space:pre">          </span>R+=("correctos")</div><div>P+=("(?<=([Uu]rl|URL)\s)específicas\b")<span class="" style="white-space:pre">            </span>R+=("específicos")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)remotas\b")<span class="" style="white-space:pre">            </span>R+=("remotos")</div><div>P+=("(?<=([Uu]rl|URL)\s)mostradas\b")<span class="" style="white-space:pre">         </span>R+=("mostrados")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)estáticas\b")<span class="" style="white-space:pre">         </span>R+=("estáticos")</div><div>P+=("(?<=([Uu]rl|URL)\s)usadas\b")<span class="" style="white-space:pre">         </span>R+=("usados")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)antiguas\b")<span class="" style="white-space:pre">           </span>R+=("antiguos")</div><div>P+=("(?<=([Uu]rl|URL)\s)abreviadas\b")<span class="" style="white-space:pre">               </span>R+=("abreviados")</div>
<div>P+=("(?<=([Uu]rl|URL)\s)pasadas\b")<span class="" style="white-space:pre">            </span>R+=("pasados")</div><div>P+=("(?<=URLs\s)seleccionadas\b")<span class="" style="white-space:pre">             </span>R+=("seleccionados")</div>
<div>P+=("(?<=URLs\s)completas\b")<span class="" style="white-space:pre">                  </span>R+=("completos")</div><div>P+=("(?<=URLs\s)facilitadas\b")<span class="" style="white-space:pre">                     </span>R+=("facilitados")</div>
<div>P+=("(?<=URLs\s)predeterminadas\b")<span class="" style="white-space:pre">            </span>R+=("predeterminados")</div><div>P+=("(?<=URLs\s)válidas\b")<span class="" style="white-space:pre">                  </span>R+=("válidos")</div>
<div>P+=("(?<=URLs\s)introducidas\b")<span class="" style="white-space:pre">               </span>R+=("introducidos")</div><div>P+=("(?<=URLs\s)configuradas\b")<span class="" style="white-space:pre">         </span>R+=("configurados")</div>
<div>P+=("(?<=URLs\s)correctas\b")<span class="" style="white-space:pre">                  </span>R+=("correctos")</div><div>P+=("(?<=URLs\s)específicas\b")<span class="" style="white-space:pre">                    </span>R+=("específicos")</div>
<div>P+=("(?<=URLs\s)remotas\b")<span class="" style="white-space:pre">                    </span>R+=("remotos")</div><div>P+=("(?<=URLs\s)mostradas\b")<span class="" style="white-space:pre">                 </span>R+=("mostrados")</div>
<div>P+=("(?<=URLs\s)estáticas\b")<span class="" style="white-space:pre">                 </span>R+=("estáticos")</div><div>P+=("(?<=URLs\s)usadas\b")<span class="" style="white-space:pre">                 </span>R+=("usados")</div>
<div>P+=("(?<=URLs\s)antiguas\b")<span class="" style="white-space:pre">                   </span>R+=("antiguos")</div><div>P+=("(?<=URLs\s)abreviadas\b")<span class="" style="white-space:pre">                       </span>R+=("abreviados")</div>
<div>P+=("(?<=URLs\s)pasadas\b")<span class="" style="white-space:pre">                    </span>R+=("pasados")</div><div>P+=("(?<=URL\sweb\s)válida\b")<span class="" style="white-space:pre">                       </span>R+=("válido")</div>
<div>P+=("(?<=URL\sno\s)válida\b")<span class="" style="white-space:pre">                 </span>R+=("válido")</div><div>P+=("(?<=URL\sno\ses\s)válida\b")<span class="" style="white-space:pre">            </span>R+=("válido")</div>
<div>P+=("(?<=URL\ssean\s)llamadas\b")<span class="" style="white-space:pre">              </span>R+=("llamados")</div><div>P+=("(?<=URL\santes\s)introducida\b")<span class="" style="white-space:pre">                </span>R+=("introducido")</div>
<div>P+=("(?<=URLs\ssean\s)llamadas\b")<span class="" style="white-space:pre">             </span>R+=("llamados")</div><div>P+=("(?<=URL\s)a\s\la\scual\b")<span class="" style="white-space:pre">                      </span>R+=("al cual")</div>
<div>P+=("(?<=URL\s)a\s\la\sque\b")<span class="" style="white-space:pre">                 </span>R+=("al que")</div><div>P+=("(?<=URL\s)de\sla\s\cual\b")<span class="" style="white-space:pre">               </span>R+=("del cual")</div>
<div>P+=("(?<=URL\s)de\sla\s\que\b")<span class="" style="white-space:pre">                        </span>R+=("del que")</div><div>P+=("(?<=URL\s)introducido\sno\ses\sválida\b")<span class="" style="white-space:pre">       </span>R+=("introducido no es válido")</div>
<div><br></div><div>P+=("\ba\sel(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">          </span>R+=("al")</div><div>P+=("\bA\sel(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">               </span>R+=("Al")</div>
<div>P+=("\bde\sel(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">  </span>R+=("del")</div><div>P+=("\bDe\sel(?=\s([Bb]ios|BIOS|[Uu]rl|URL)\b)")<span class="" style="white-space:pre">     </span>R+=("Del")</div>
<div><br></div><div>corregir() {</div><div>    echo "Iniciando...:" $1 $2</div><div>    ORIGEN=$RAIZ/$1/l10n-kde4/$IDIOMA/$2</div><div>    for PAQUETE in $ORIGEN/*; do</div><div><span class="" style="white-space:pre">     </span>if [ -d $PAQUETE ]; then</div>
<div><span class="" style="white-space:pre">    </span>    echo "Procesando...:" $PAQUETE</div><div><span class="" style="white-space:pre">     </span>    for ((I=0; I<${#P[@]}; I++)); do</div><div><span class="" style="white-space:pre">  </span>    # for ((I=34; I<88; I++)); do</div>
<div><span class="" style="white-space:pre">            </span>echo "Analizando...:" "${P[$I]}"</div><div><span class="" style="white-space:pre">               </span>$PROGRAMA '-bR' $OPCION $PARAMETROS -s msgstr:"${P[$I]}" -s replace:"${R[$I]}" $PAQUETE </div>
<div><span class="" style="white-space:pre">    </span>    done</div><div><span class="" style="white-space:pre"> </span>fi</div><div>    done</div><div>}</div><div><br></div><div>for RAMA in "branches\/stable" "trunk"; do</div>
<div>    for TIPO in "messages" "docmessages"; do</div><div><span class="" style="white-space:pre">   </span>mkdir -p "./Correcciones/$RAMA"</div><div><span class="" style="white-space:pre">  </span>corregir $RAMA $TIPO > "./Correcciones/$RAMA/$TIPO.log" &</div>
<div>    done</div><div>done</div></div><div><br></div></div>