Ola,
teño un problema co uso de sed e as expresións regulares. Unha vez ben postas
ditas expresións (co que quero dicir que funcionan executándoas manualmente
con sed), a segunda non funciona meténdoa nun pequeno programa en intérprete
de comandos. As ordes,que funcionan ben, son:
sed -i 's/foo/bar/g' ficheiro.po
sed -e 's/\(^msgstr.*\) \(.*\)\(${replace[$a]}\)\(.*\)/\1
\2${replace[$a+1]}\4/' ficheiro.po
A primeira substitúe a secas ao "foo" que atope por "bar" tanto nos msgid como
nos msgstr (como son palabras en galego, non vai nunca actuar sobre os
msgid).
A segunda serve para substituir lexemas, morfemas ou só partes das palabras
dentro dos msgstr dun ficheiro po.
Logo de comprobar que ambas funcionan correctamente, as meto nun ficheiro
shell deste xeito (ao ficheiro chámoo "remprazar") :
#!/bin/sh
counter=0;for f in `cat directas.rules`;do
replace[counter]=$f;counter=$counter+1;done;counter2=0;
for ((a=0; a <= $counter-1; a=a+2)); do
`sed -i "s/${replace[$a]}/${replace[$a+1]}/g" *.po` ;done;
counter=0;for f in `cat complexas.rules`;do
replace[counter]=$f;counter=$counter+1;done;counter2=0;
for ((a=0; a <= $counter-1; a=a+2)); do `sed -e 's/\(^msgstr.*\)
\(.*\)\(${replace[$a]}\)\(.*\)/\1 \2${replace[$a+1]}\4/' *.po` ;done;
Collen de dous ficheiros auxilaries en formato de lista (directas.rules e
complexas.rules) con cousas así:
palabra1 substitución1
palabra2 substitución2
e fan as substitucións, sobre os *.po, que neles se indiquen. A primeira orde
segue funcionando, pero a segunda dáme problemas coa sintaxe, pois creo que
tantas comas acaban liando a cousa. Dáme o erro
remprazar: line 5: msgstr: command not found
Algún informático experto pode dar algunha axudiña para colocar ben a cousa no
ficheiro? Agradécese, porque logo publico os directas.rules e complexas.rules
para que cada quen faga uso deles ou os modifique a gusto cos seus erros de
tradución máis comúns. Xa teño metida a nova normativa oficial (do 2003) en
100 instruccións aproximadamente (para llela pasar ás traducións anteriores).
Logo tamén se podería facer un ficheiro para pasar dunha normativa a outra.
A ver se alguén se anima a facer un castelanismo.rules, anglicismos.rules ou
cousas así para meter xunto co ficheiro directas.rules ;).
_______________________________________________
Trasno mailing list
[email protected]
http://ceu.fi.udc.es/cgi-bin/mailman/listinfo/trasno