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:
- Follow-Ups:
- unsubscribe
- From: Antoine Patois <Antoine.Patois@iteam.org>