From: Rudolf Polzer Date: Sun, 21 Aug 2011 11:58:55 +0000 (+0200) Subject: update check script a bit X-Git-Tag: xonotic-v0.5.0~103 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=aff05541b49fe416a41cca8137f05f5f1ef3e859;p=xonotic%2Fxonotic-data.pk3dir.git update check script a bit --- 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