Le Monday 23 July 2012, à 14 heures 33, Félix Hauri écrivait :
> 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

Je ne suis pas sûr d'avoir tout compris, mais il doit y avoir plus
simple, non ?

(apt-get install libhtml-parser-perl)
perl -MHTML::Entities -Cio -pi.bak -e '$_=encode_entities($_, "\200-\377")' *.js


-- 
C é d r i c   B o u v i e r
_______________________________________________
gull mailing list
[email protected]
http://forum.linux-gull.ch/mailman/listinfo/gull

Répondre à