Files
phpmyadmin/scripts/remove-incomplete-mo
2011-04-26 07:52:46 -04:00

62 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
#
# Removes mo files for incomplete translations
#
set -e
#
# How many percent needs to be translated
#
THRESHOLD=50
#
# Generated output file
#
OUTPUTFILE=libraries/language_stats.inc.php
if [ ! -z "$1" ] ; then
THRESHOLD=$1
fi
echo '<?php' > $OUTPUTFILE
echo '/* Automatically generated file, do not edit! */' >> $OUTPUTFILE
echo '/* Generated by scripts/remove-incomplete-mo */' >> $OUTPUTFILE
echo '' >> $OUTPUTFILE
echo '$GLOBALS["language_stats"] = array (' >> $OUTPUTFILE
check() {
OUTPUTFILE=$2
lang=`echo $1 | sed 's@po/\(.*\)\.po@\1@'`
STATS=`LC_ALL=C msgfmt --statistics -o /dev/null $1 2>&1`
if echo $STATS | grep -q ' translated ' ; then
TRANSLATED=`echo $STATS | sed 's/\(^\|.* \)\([0-9]*\) translated.*/\2/'`
else
TRANSLATED=0
fi
if echo $STATS | grep -q ' fuzzy ' ; then
FUZZY=`echo $STATS | sed 's/\(^\|.* \)\([0-9]*\) fuzzy.*/\2/'`
else
FUZZY=0
fi
if echo $STATS | grep -q ' untranslated ' ; then
UNTRANSLATED=`echo $STATS | sed 's/\(^\|.* \)\([0-9]*\) untranslated.*/\2/'`
else
UNTRANSLATED=0
fi
PERCENT=`expr 100 \* $TRANSLATED / \( $TRANSLATED + $FUZZY + $UNTRANSLATED \) || true`
echo " '$lang' => $PERCENT," >> $OUTPUTFILE
if [ $PERCENT -lt $THRESHOLD ] ; then
echo "Removing $lang, only $PERCENT%"
rm -f locale/$lang/LC_MESSAGES/phpmyadmin.mo
fi
}
for x in po/*.po ; do
check $x $OUTPUTFILE
done
echo ');' >> $OUTPUTFILE
echo '?>' >> $OUTPUTFILE