[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

msgdiff (fut: [DDR] po-debconf://ddetect/fr.po)



On Fri, Nov 15, 2002 at 04:09:59PM +0100, Philippe Batailler wrote:
>  Yannick Roehlly <yannick.roehlly@free.fr> écrivait :
>   «  
>   « Ci-joint le fichier diff, attention que je travaille avec Emacs et que
>   « celui-ci se  prend beaucoup de  libertés avec son po-mode  (il modifie
>   « notamment la date de mise à jour...).
> 
> Pour l'instant, ce n'est pas pratique d'utiliser le mode po d'emacs
> avec po-debconf.
> Il faut « normaliser » le po relu avant de pouvoir faire un diff.
> (Sinon le diff est gonflé inutilement, comme celui que j'ai envoyé.)

Bon, encore un probleme avec les fichiers po : faire des diffs. Alors je
retente un coup sur le theme "Comment relire des fichiers po". 

Je suppose que tout le monde a gettext 0.11, car tenir compte de l'exception
devient lourd à rediger. Si c'est pas le cas, faites moi signe en me disant
pour quelle version de Debian il faut que je rende un paquet de gettext 0.11
dispo.

1) Normaliser l'origine (au cas ou le traducteur l'aurait pas fait)
   et faire une copie pour le diff apres coup.

  $ msgcat fichier.po > fichier.po.orig
  
2) Relire 

  editer le fichier.po
  
3) Re-normaliser son travail

  $ msgcat fichier.po > fichier.po.new
  
4) Faire un diff qui ne soit pas inutilement chargé (en ignorant les lignes
   inutiles)

  $ diff -u -I '^#:' -I 'PO-Revision-Date' fichier.po.orig fichier.po.new
    

Je crois que ca suffit pour donner de bons résultats. Et comme je suis
d'humeur joueuse, en attachement, je colle un ptit script nomé msgdiff. Son
objectif est de faire des jolis diff entre deux fichiers po, en ignorant les
choses qu'on peut ignorer. Si on l'utilise, on a pas besoin de ce qu'il y a
au dessus, il suffit de faire:

  $ msgdiff fichier.po.orig fichier.po.new
  
Les deux sont normalisés (dans /tmp) avant d'etre diff'és.


Bye, Mt.

-- 
Les rebelles disaient que les débutants avaient le droit d'utiliser un
"éditeur", qui ressemblait à MSWord comme sa mère à Pamela Anderson.
"Vihaille" comme les rebelles l'appellaient, était sans doute un bizutage
          -- L'histoire des pingouins
#! /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

Reply to: