]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - check-translations.sh
Transifex merge.
[xonotic/xonotic-data.pk3dir.git] / check-translations.sh
index 654dae4c256c8c8afd2a5061e840781d568e03dd..41653ca00e0d61e063f4ce1f68d56e67245caa93 100755 (executable)
@@ -5,6 +5,10 @@ case "$1" in
                mode=pot
                mail=false
                ;;
+       txt)
+               mode=txt
+               mail=false
+               ;;
        po)
                mode=po
                mail=true
@@ -30,15 +34,50 @@ if [ x"$mode" = x"pot" ]; then
        } | xgettext -LC -k_ -f- --from-code utf-8 -F -o common.pot >&2
 fi
 
+if [ x"$mode" = x"txt" ]; then
+       echo "en English \"English\""
+       for X in common.*.po; do
+               [ -f "$X" ] || continue
+               if [ -n "$language" ]; then
+                       if [ x"${X#common.}" != x"$language.po" ]; then
+                               continue
+                       fi
+               else
+                       if [ x"${X#common.}" = x"en.po" ]; then
+                               continue
+                       fi
+               fi
+               po=`msgmerge -N "$X" common.pot`
+               ne=`printf "%s\n" "$po" | msgfmt -o /dev/null --check-format --check-header --use-fuzzy - 2>&1 | grep . | wc -l`
+               nu=`printf "%s\n" "$po" | msgattrib --untranslated - | grep -c ^#:`
+               nf=`printf "%s\n" "$po" | msgattrib --fuzzy - | grep -c ^#:`
+               nt=`printf "%s\n" "$po" | grep -c ^#:`
+               n=$(($ne + $nu + $nf))
+               p=$(( (nt - n) * 100 / nt ))
+               echo >&2 "TODO for translation $X:"
+               echo >&2 "Errors:       $ne"
+               echo >&2 "Untranslated: $nu"
+               echo >&2 "Fuzzy:        $nf"
+               echo >&2 "Total:        $nt"
+               echo >&2 "Percent:      $p"
+               l=${X#common.}
+               l=${l%.po}
+               item=`grep "^$l " languages.txt || echo "$l $l \"$l (0%)\""`
+               if [ "$p" -gt 50 ]; then
+                       printf "%s\n" "$item" | sed -e "s/([0-9][0-9]*%)/($p%)/"
+               fi
+       done
+fi
+
 if [ x"$mode" = x"po" ]; then
        for X in common.*.po; do
                [ -f "$X" ] || continue
                if [ -n "$language" ]; then
-                       if [ x"${X#*.dat.}" != x"$language.po" ]; then
+                       if [ x"${X#common.}" != x"$language.po" ]; then
                                continue
                        fi
                else
-                       if [ x"${X#*.dat.}" = x"en.po" ]; then
+                       if [ x"${X#common.}" = x"en.po" ]; then
                                continue
                        fi
                fi
@@ -189,7 +228,7 @@ EOF
        for X in common.*.po.disabled; do
                [ -f "$X" ] || continue
                if [ -n "$language" ]; then
-                       if [ x"${X#*.dat.}" != x"$language.po" ]; then
+                       if [ x"${X#common.}" != x"$language.po" ]; then
                                continue
                        fi
                fi