#!/bin/sh case `hostname` in srv01|hagger|grawp) ;; *) 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 ;; esac for VM in menu csprogs; do case "$VM" in csprogs) VMD=client ;; *) 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" 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 </dev/null 2>&1 done done