Soit une liste de fichier de languages en javascript:

$ ls lang.*.js
lang.de.js  lang.en.js  lang.fr.js  lang.it.js ...

qui contiennent une chaine par ligne encadrée par des guillemets et qui
sont parfoit en utf-8, parfois en html.

Le but est de les convertir toutes en html, mais pour chacun des fichiers.
(lancer recode directement sur les fichier .js n'est pas une bonne idée ;)

Je m'en suis tiré avec:
$ for file in lang.*.js ;do
    echo $file:
    cat $file |
        recode -f u8..flat |
        diff $file -
    done |
        env LANG=C sed -ne '
            /^lang.*js:$/{h};
            /^</{x;G;s/:\n< .*"\(.*\)".*$/\t\1/;p;s/\t.*$/:/;x;}
        ' |
    while read file string;do
        printf "sed -i '%s' -e 's/%s/%s/'\n" $file "$string" "$(
            echo $string|recode u8..html)"
        done |
    sed 's/\&/\\\&/g'

sed -i 'lang.de.js' -e 's/Hinzufügen/Hinzuf\&uuml;gen/'
sed -i 'lang.de.js' -e 's/Geändert/Ge\&auml;ndert/'
sed -i 'lang.fr.js' -e 's/Création/Cr\&eacute;ation/'

... Que je peux piper vers sh (`` | /bin/sh '') après vérification.


--
 Félix Hauri  -  <[email protected]>  -  http://www.f-hauri.ch
_______________________________________________
gull mailing list
[email protected]
http://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à