]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - check-translations.sh
also check for errors
[xonotic/xonotic-data.pk3dir.git] / check-translations.sh
index faee5c4952a3eefa133afb68261371b56479f2d9..4a1c46948f68f73bd090daf8692f7e598908b597 100755 (executable)
@@ -43,11 +43,14 @@ if [ x"$mode" = x"po" ]; then
                        fi
                fi
                msgmerge -F -U "$X" common.pot >&2
+               msgfmt -o /dev/null --check-format --check-header --use-fuzzy "$X" 2>&1 \
+                                             | grep . > "$X".errors       || rm -f "$X".errors
                msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated
                msgattrib --fuzzy "$X"        | grep . > "$X".fuzzy        || rm -f "$X".fuzzy
+               ne=$((`wc -l <     "$X".errors       2>/dev/null` + 0))
                nu=$((`grep -c ^#: "$X".untranslated 2>/dev/null` + 0))
                nf=$((`grep -c ^#: "$X".fuzzy        2>/dev/null` + 0))
-               n=$(($nu + $nf))
+               n=$(($ne + $nu + $nf))
                changed=false
                for Y in ~/check-translations/"$X".*; do
                        [ -f "$Y" ] || continue
@@ -66,18 +69,22 @@ EOF
                        mv "$X".new "$X"
                        changed=true
                done
+               ne0=$ne
                nu0=$nu
                nf0=$nf
                if $changed; then
-                       msgmerge -F -U "$X" common.pot >&2
+                       msgfmt -o /dev/null --check-format --check-header --use-fuzzy "$X" 2>&1 \
+                                                     | grep . > "$X".errors       || rm -f "$X".errors
                        msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated
                        msgattrib --fuzzy "$X"        | grep . > "$X".fuzzy        || rm -f "$X".fuzzy
+                       ne=$((`wc -l <     "$X".errors       2>/dev/null` + 0))
                        nu=$((`grep -c ^#: "$X".untranslated 2>/dev/null` + 0))
                        nf=$((`grep -c ^#: "$X".fuzzy        2>/dev/null` + 0))
-                       n=$(($nu + $nf))
+                       n=$(($ne + $nu + $nf))
                fi
                if [ $n -gt 0 ]; then
                        echo "TODO for translation $X:"
+                       echo "Errors:       $ne (was: $ne0)"
                        echo "Untranslated: $nu (was: $nu0)"
                        echo "Fuzzy:        $nf (was: $nf0)"
                        ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
@@ -110,6 +117,9 @@ EOF
                                        case "$yesno" in
                                                y)
                                                        attach=
+                                                       if [ $ne -gt 0 ]; then
+                                                               attach="$attach $X.errors"
+                                                       fi
                                                        if [ $nu -gt 0 ]; then
                                                                attach="$attach $X.untranslated"
                                                        fi