Quoting Ask Hjorth Larsen (asklarsen@gmail.com):
> On Sat, Nov 13, 2010 at 5:03 PM, Christian PERRIER <bubulle@debian.org> wrote:
> >
> >> #: ../keyboard-configuration.templates:10001
> >> msgid "Keep default keyboard options (${XKBOPTIONS})?"
> >> msgstr "Behold standardtastaturindstillinger (${{XKBOPTIONS})?"
> >
> > I committed the file and fixed a little error above (double opening
> > curly brace in the variable name).
>
> Thank you - evidently msgfmt did not find this. Is there a way to
> validate such formatting strings?
Yep. I use the attached script. It needs to find the relevant POT file
in the current directory.
#!/bin/sh
#
# Sync a PO file with a POT file
# test its charset
# check its validity
#
# Copyright © 2006-2008 Christian Perrier <bubulle@debian.org>
# Copyright © 2006 Denis Barbier <barbier@debian.org>
temp=`tempfile`
trap "rm -f $temp $temp.new" 1 2 3 15
clean_and_die() {
rm -f $temp $temp.new
if [ "$1" = "2" ] ; then
echo Invalid encoding. Please check the file.
fi
exit $1
}
if [ -z $1 ]
then
echo Usage $0 fichier
clean_and_die 1
fi
if [ ! -f $1 ]
then
echo $1 not found.
clean_and_die 1
fi
if [ `ls -1 *\.pot 2>/dev/null | wc -l` != "1" ] ; then
echo No POT file \(or more than one\) in current directory
clean_and_die 1
fi
potfile=`ls -1 *\.pot`
msgmerge -U --previous $1 $potfile
if msgcat $1 >$temp; then
mv $temp $1
fi
enc=$(grep -E "^\"Content-Type" $1 | cut -f2 -d= | sed 's/\\n\"//g')
echo -n "Charset is $enc. Stats: "
if test -n "$enc" ; then
iconv -f $enc -t UTF-8 $1 >$temp >/dev/null 2>&1 || clean_and_die 2
if [ -x $HOME/bin/check_var.pl ] ; then
$HOME/bin/check_var.pl $1 || clean_and_die 3
else
echo $HOME/bin/check_var.pl not found
clean_and_die 1
fi
LC_ALL=C msgfmt -c -v -o /dev/null --statistics $1
chmod 644 $1
fi
clean_and_die 0
Attachment:
signature.asc
Description: Digital signature