X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=check-translations.sh;h=307c3c2c147822be83d04f39d3b707a0104c4a91;hp=faee5c4952a3eefa133afb68261371b56479f2d9;hb=45f35daf6a866ae8a086b97d94a60f812e080657;hpb=af82a103d9e4671a8735eb69099b223020168f39 diff --git a/check-translations.sh b/check-translations.sh index faee5c495..307c3c2c1 100755 --- a/check-translations.sh +++ b/check-translations.sh @@ -27,27 +27,30 @@ esac if [ x"$mode" = x"pot" ]; then { find qcsrc -type f -name \*.\* -not -name \*.po -not -name \*.txt - } | xgettext -LC -k_ -f- --from-code utf-8 -o common.pot >&2 + } | xgettext -LC -k_ -f- --from-code utf-8 -F -o common.pot >&2 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 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 '|'` @@ -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 @@ -179,7 +189,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