From aff05541b49fe416a41cca8137f05f5f1ef3e859 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Sun, 21 Aug 2011 13:58:55 +0200 Subject: [PATCH] update check script a bit --- check-translations.sh | 211 ++++++++++++++++++++++++------------------ 1 file changed, 120 insertions(+), 91 deletions(-) diff --git a/check-translations.sh b/check-translations.sh index 5555f2dea..3dc322283 100755 --- a/check-translations.sh +++ b/check-translations.sh @@ -1,15 +1,27 @@ #!/bin/sh -case `hostname` in - srv01|hagger|grawp) +case "$1" in + pot) + mode=pot + mail=true ;; - *) + po) + mode=po + mail=true + language= + ;; + '') echo "Sorry, you are not supposed to use this script." echo "This script is solely for use by the Xonotic Core Team." echo "Unauthorized use of it can cause HIGHLY annoying merge" echo "conflicts." exit 1 ;; + *) + mode=po + mail=false + language=$1 + ;; esac for VM in menu csprogs; do @@ -21,66 +33,76 @@ for VM in menu csprogs; do VMD=$VM ;; esac - { - find qcsrc/"$VMD" -type f -not -name \*.po -not -name \*.txt - find qcsrc/common -type f -not -name \*.po -not -name \*.txt - find qcsrc/server -type f -name w_\*.qc - } | xgettext -LC -k_ -f- --from-code utf-8 -o "$VM".dat.pot >&2 - for X in "$VM".dat.*.po; do - [ -f "$X" ] || continue - for Y in ~/check-translations/"$X".*; do - [ -f "$Y" ] || continue - msgcat -F --use-first "$Y" "$X" > "$X".new - mv "$X".new "$X" - done - msgmerge -F -U "$X" "$VM".dat.pot >&2 - msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated - msgattrib --fuzzy "$X" | grep . > "$X".fuzzy || rm -f "$X".fuzzy - nu=$((`grep -c ^#: "$X".untranslated` + 0)) - nf=$((`grep -c ^#: "$X".fuzzy` + 0)) - n=$(($nu + $nf)) - if [ $n -gt 0 ]; then - echo "TODO for translation $X:" - echo "Untranslated: $nu" - echo "Fuzzy: $nf" - ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '|'` - ltm=`grep '^"Language-Team: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '|'` - echo "Translators: $ltr, $ltm" - case "$ltr" in - '') - to=$ltm - cc= - ;; - *) - to=$ltr - if [ x"$ltr" = x"$ltm" ]; then - cc= - else - cc=$ltm - fi - ;; - esac - if [ -n "$to" ]; then - echo "To: $to" - fi - if [ -n "$cc" ]; then - echo "Cc: $cc" + + if [ x"$mode" = x"pot" ]; then + { + find qcsrc/"$VMD" -type f -not -name \*.po -not -name \*.txt + find qcsrc/common -type f -not -name \*.po -not -name \*.txt + find qcsrc/server -type f -name w_\*.qc + } | xgettext -LC -k_ -f- --from-code utf-8 -o "$VM".dat.pot >&2 + fi + + if [ x"$mode" = x"po" ]; then + for X in "$VM".dat.*.po; do + [ -f "$X" ] || continue + if [ -n "$language" ]; then + if [ x"${X#*.dat.}" != x"$language.po" ]; then + continue + fi fi - if [ -n "$to" ]; then - while :; do - echo "Send mail? [y/n]" - read -r yesno - case "$yesno" in - y) - attach= - if [ $nu -gt 0 ]; then - attach="$attach $X.untranslated" - fi - if [ $nf -gt 0 ]; then - attach="$attach $X.fuzzy" - fi - { - cat < "$X".new + mv "$X".new "$X" + done + msgmerge -F -U "$X" "$VM".dat.pot >&2 + msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated + msgattrib --fuzzy "$X" | grep . > "$X".fuzzy || rm -f "$X".fuzzy + nu=$((`grep -c ^#: "$X".untranslated` + 0)) + nf=$((`grep -c ^#: "$X".fuzzy` + 0)) + n=$(($nu + $nf)) + if [ $n -gt 0 ]; then + echo "TODO for translation $X:" + echo "Untranslated: $nu" + echo "Fuzzy: $nf" + ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '|'` + ltm=`grep '^"Language-Team: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '|'` + echo "Translators: $ltr, $ltm" + case "$ltr" in + '') + to=$ltm + cc= + ;; + *) + to=$ltr + if [ x"$ltr" = x"$ltm" ]; then + cc= + else + cc=$ltm + fi + ;; + esac + if [ -n "$to" ]; then + echo "To: $to" + fi + if [ -n "$cc" ]; then + echo "Cc: $cc" + fi + if [ -n "$to" ]; then + while $mail; do + echo "Send mail? [y/n]" + read -r yesno + case "$yesno" in + y) + attach= + if [ $nu -gt 0 ]; then + attach="$attach $X.untranslated" + fi + if [ $nf -gt 0 ]; then + attach="$attach $X.fuzzy" + fi + { + cat </dev/null 2>&1 - done + msgmerge -F -U "$X" "$VM".dat.pot >/dev/null 2>&1 + done + fi done -- 2.39.2