#!/bin/sh# $Id: check_lang.sh,v 2.2 2004/06/29 08:20:47 nijel Exp $### Shell script to check that all language files are syncronized# Catches duplicate/missing strings## Robin Johnson <robbat2@users.sourceforge.net># August 9, 2002##MASTER="english-iso-8859-1.inc.php"TMPDIR="tmp-check"FILEPAT="*.inc.php"STRINGMATCH='^[[:space:]]*\$[[:alnum:]_]+[[:blank:]]+='IGNOREMATCH='strEncto|strKanjiEncodConvert|strXkana|allow_recoding'if [ "`which diffstat`" = "" ] ; thenecho 'You need diffstat to use this!'exit 1firm -rf $TMPDIRmkdir -p $TMPDIR# Build the list of variables in each fileecho "Building data"for f in $FILEPAT;doawk "/$STRINGMATCH/ && ! /$IGNOREMATCH/ { print \$1 }" $f | sort > $TMPDIR/$fdone# Build the diff files used for checking# And if there are no differences, delete the empty filesecho "Comparing data"for f in $FILEPAT;doif [ ! $MASTER = $f ]; thenif diff -u $TMPDIR/$MASTER $TMPDIR/$f >$TMPDIR/$f.diff ; thenrm -f $TMPDIR/$f.diff $TMPDIR/$ffifidone# Cleanuprm -f $TMPDIR/$MASTER# Build the nice difference tableecho "Differences"diffstat -f 0 $TMPDIR/*.diff >$TMPDIR/diffstat 2>/dev/nullecho "Dupe Miss Filename"head -n -1 $TMPDIR/diffstat | \while read filename sep change add plus sub minus edits exclaim;doecho "$add $sub $filename";doneechoecho "Dupe = Duplicate Variables"echo "Miss = Missing Variables"echo "For exact problem listings, look in the $TMPDIR/ directory"echo "Please remember to remove '$TMPDIR/' once you are done"