76 lines
1.7 KiB
Bash
Executable File
76 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Removes mo files for incomplete translations
|
|
#
|
|
|
|
# Do not run as CGI
|
|
if [ -n "$GATEWAY_INTERFACE" ] ; then
|
|
echo 'Can not invoke as CGI!'
|
|
exit 1
|
|
fi
|
|
|
|
set -e
|
|
|
|
#
|
|
# How many percent needs to be translated
|
|
#
|
|
THRESHOLD=40
|
|
|
|
#
|
|
# Generated output file
|
|
#
|
|
TMPOUTPUTFILE=app/language_stats.inc.php.tmp
|
|
OUTPUTFILE=app/language_stats.inc.php
|
|
|
|
if [ -n "$1" ] ; then
|
|
THRESHOLD=$1
|
|
fi
|
|
|
|
{
|
|
echo '<?php'
|
|
echo '/**'
|
|
echo ' * Automatically generated file, do not edit!'
|
|
echo ' * Generated by bin/remove-incomplete-mo'
|
|
echo ' */'
|
|
echo ''
|
|
echo "return ["
|
|
} > $TMPOUTPUTFILE
|
|
|
|
check() {
|
|
TMPOUTPUTFILE=$2
|
|
lang=$(echo "$1" | sed 's@resources/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=$((100 * TRANSLATED / ( TRANSLATED + FUZZY + UNTRANSLATED )))
|
|
echo " '$lang' => $PERCENT," >> "$TMPOUTPUTFILE"
|
|
|
|
if [ "$PERCENT" -lt "$THRESHOLD" ] ; then
|
|
echo "Removing $lang, only $PERCENT%"
|
|
rm -f resources/locale/"$lang"/LC_MESSAGES/phpmyadmin.mo
|
|
rmdir resources/locale/"$lang"/LC_MESSAGES
|
|
rmdir resources/locale/"$lang"
|
|
fi
|
|
}
|
|
|
|
for x in resources/po/*.po ; do
|
|
check "$x" "$TMPOUTPUTFILE"
|
|
done
|
|
|
|
echo '];' >> "$TMPOUTPUTFILE"
|
|
|
|
mv "$TMPOUTPUTFILE" $OUTPUTFILE
|