On Wed, Feb 23, 2005 at 07:24:21PM +0100, Frédéric Bothamy wrote: > * Christophe Masson <[EMAIL PROTECTED]> [2005-02-23 19:08] : > > On Wed, 23 Feb 2005 18:42:22 +0100 > > "Valery Perrin" <[EMAIL PROTECTED]> wrote: > > > > > Juste un petit soucis, comment à tu fais le diff ? impossible de > > > l'appliquer avec patch ou alors je n'ai pas trouvé la bonne option. > > > J'ai fait les modifs à la main comme ce n'était pas trop long... > > > > Le patch a été généré par : > > > > $ diff fr.po new.fr.po > diff.txt > > Il est de beaucoup préférable de générer les diff au format universel > (i.e. avec -u), cela facilite beaucoup la vérification des > modifications. Enfin, c'est le cas si le .po est formaté correctement à > 80 caractères pour éviter les lignes très longues, ce qui n'était pas le > cas ici (il faut utiliser "msgconv -w 80 fr.po > fr.po.dest").
Et si tu veux le faire en une seule étape, tu peux utiliser le script ci-joint à la place de diff. Il se charge de remettre le fichier po à plat komyfo et de passer les bonnes options à diff. En particulier, il ne vient pas polluer ton diff parce que tu as changé la date de derniere édition du fichier dans les entetes, ou parce que tu as refais un msgmerge qui change les commentaires de positions (les lignes commençant par #:). Bref, il ignore les trucs ignorables. $ msgdiff fr.po new.fr.po > diff.txt HTH, Mt. PS: la plupart des gens font diff -u, et ca se passe souvent bien. Ca, c'est un peu la royces des diffs. ;)
#! /bin/sh # Makes a clean diff of two po files, ignoring ignorable changes if [ "x$1" = "xhelp" -o "x$1" = "x--help" ] ; then echo "msgdiff: produce a clean diff of two po files, ignoring ignorable changes." echo "usage: msgdiff orig new" exit 0; fi if [ $# != 2 ] ; then echo "usage: msgdiff orig new" exit 1; fi tmp1=`mktemp /tmp/msgdiff.XXXXXXXXXXXX` msgcat $1 > $tmp1 tmp2=`mktemp /tmp/msgdiff.XXXXXXXXXXXX` msgcat $2 > $tmp2 diff -u -I '^#:' -I 'PO-Revision-Date' -I 'POT-Creation-Date' $tmp1 $tmp2 | \ sed -e "s|^--- $tmp1|--- $1|" \ -e "s|^\+\+\+ $tmp2|+++ $2|" rm -f $tmp1 $tmp2
signature.asc
Description: Digital signature