#!/bin/sh
#

tmpfile="stringids.tmp"

# rather use English as the authoritative source for string IDs?
reference_file="*.xml"

idfilter='/^.*id="\([^"]*\)".*$/{
  s//\1/
  p
  }'

checkfiles="*.xml"

if [ $# -ge 1 -a -n "$1" ] ; then
	checkfiles="$1"
fi

# basic sanity check
if [ ! -f eng.xml ] ; then
	echo "Could not find eng.xml - please go to the directory containing the"
	echo "translation files before executing this script."
	exit 1
fi

sed -n -e "$idfilter" $reference_file | sort | uniq > $tmpfile

echo "lines starting with \"-\" mark missing strings, lines with \"+\" are superfluous"

for i in $checkfiles ; do
	if [ ! -f "$i" ] ; then
		echo "$i not found. Skipping"
		continue
        fi

	echo "report of $i (- = missing, + = probably superfluous)"
	sed -n -e "$idfilter" $i | sort | diff -U 0 $tmpfile - | sed -n -e '/^[-+][^-+]/p'
done

