} | 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
- todo=$(
- msgattrib --untranslated "$X" | grep -A 2147483647 "^#:"
- msgattrib --fuzzy "$X" | grep -A 2147483647 "^#:"
- )
- if [ -n "$todo" ]; then
+ 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 "$todo"
- echo
+ echo "Untranslated: $nu"
+ echo "Fuzzy: $nf"
+ ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
+ ltm=`grep '^"Language-Team: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
+ 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 <<EOF
+Hi,
+
+as you provided us with translations in the past, we kindly ask you
+to update the translation to match changes in the Xonotic source. Can
+you please work on them and provide updates to us?
+
+If you do not wish to be contacted for translation updates any more,
+please tell us in a reply to this message.
+
+EOF
+ if [ $nu -gt 0 ]; then
+ cat <<EOF
+Attached to this message is a file
+$X.untranslated
+with $nu yet to be translated messages. Please translate them and reply
+with the file containing the translations in the "msgstr" fields.
+
+EOF
+ fi
+ if [ $nf -gt 0 ]; then
+ cat <<EOF
+Attached to this message is a file
+$X.fuzzy
+with $nf automatically generated translations. Please verify and/or fix
+them and reply with the file having been verified by you.
+
+EOF
+ fi
+ cat <<EOF
+Thanks in advance,
+
+Team Xonotic
+EOF
+ } | mutt \
+ -e "set from=\"divVerent@xonotic.org\"" \
+ -e "set use_from=yes" \
+ -e "set use_envelope_from=yes" \
+ -s "Need update for translations: $X" \
+ -c "$cc" \
+ -b "divVerent@xonotic.org" \
+ -a $attach -- \
+ "$to"
+ break
+ ;;
+ n)
+ break
+ ;;
+ esac
+ done
+ fi
fi
done
for X in "$VM".dat.*.po.disabled; do