#!/bin/sh case "$1" in pot) mode=pot mail=false ;; 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 case "$VM" in csprogs) VMD=client ;; *) VMD=$VM ;; esac 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 if [ x"$VM" = x"csprogs" ]; then find qcsrc/server -type f -name w_\*.qc elif [ x"$VM" = x"menu" ]; then find qcsrc/server -type f -name w_\*.qc | xargs grep ^REGISTER_WEAPON > weapons.qc.tmp echo "weapons.qc.tmp" fi } | 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 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 $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 fi done