14 echo "Sorry, you are not supposed to use this script."
15 echo "This script is solely for use by the Xonotic Core Team."
16 echo "Unauthorized use of it can cause HIGHLY annoying merge"
27 for VM in menu csprogs; do
37 if [ x"$mode" = x"pot" ]; then
39 find qcsrc/"$VMD" -type f -not -name \*.po -not -name \*.txt
40 find qcsrc/common -type f -not -name \*.po -not -name \*.txt
41 if [ x"$VM" = x"csprogs" ]; then
42 find qcsrc/server -type f -name w_\*.qc
43 elif [ x"$VM" = x"menu" ]; then
44 find qcsrc/server -type f -name w_\*.qc | xargs grep ^REGISTER_WEAPON > weapons.qc.tmp
47 } | xgettext -LC -k_ -f- --from-code utf-8 -o "$VM".dat.pot >&2
50 if [ x"$mode" = x"po" ]; then
51 for X in "$VM".dat.*.po; do
52 [ -f "$X" ] || continue
53 if [ -n "$language" ]; then
54 if [ x"${X#*.dat.}" != x"$language.po" ]; then
58 msgmerge -F -U "$X" "$VM".dat.pot >&2
59 msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated
60 msgattrib --fuzzy "$X" | grep . > "$X".fuzzy || rm -f "$X".fuzzy
61 nu=$((`grep -c ^#: "$X".untranslated 2>/dev/null` + 0))
62 nf=$((`grep -c ^#: "$X".fuzzy 2>/dev/null` + 0))
65 for Y in ~/check-translations/"$X".*; do
66 [ -f "$Y" ] || continue
67 if ! msgcat "$Y" >/dev/null; then
68 echo "File $Y has syntax errors. Skipped."
72 set fileencoding=utf-8
77 msgcat -F --use-first "$Y" "$X" > "$X".new
84 msgmerge -F -U "$X" "$VM".dat.pot >&2
85 msgattrib --untranslated "$X" | grep . > "$X".untranslated || rm -f "$X".untranslated
86 msgattrib --fuzzy "$X" | grep . > "$X".fuzzy || rm -f "$X".fuzzy
87 nu=$((`grep -c ^#: "$X".untranslated 2>/dev/null` + 0))
88 nf=$((`grep -c ^#: "$X".fuzzy 2>/dev/null` + 0))
92 echo "TODO for translation $X:"
93 echo "Untranslated: $nu (was: $nu0)"
94 echo "Fuzzy: $nf (was: $nf0)"
95 ltr=`grep '^"Last-Translator: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
96 ltm=`grep '^"Language-Team: ' "$X" | cut -d ' ' -f 2- | cut -d '\\' -f 1 | egrep -v '<LL@li.org>|<EMAIL@ADDRESS>'`
97 echo "Translators: $ltr, $ltm"
105 if [ x"$ltr" = x"$ltm" ]; then
112 if [ -n "$to" ]; then
115 if [ -n "$cc" ]; then
118 if [ -n "$to" ]; then
120 echo "Send mail? [y/n]"
125 if [ $nu -gt 0 ]; then
126 attach="$attach $X.untranslated"
128 if [ $nf -gt 0 ]; then
129 attach="$attach $X.fuzzy"
135 as you provided us with translations in the past, we kindly ask you
136 to update the translation to match changes in the Xonotic source. Can
137 you please work on them and provide updates to us?
139 If you do not wish to be contacted for translation updates any more,
140 please tell us in a reply to this message.
143 if [ $nu -gt 0 ]; then
145 Attached to this message is a file
147 with $nu yet to be translated messages. Please translate them and reply
148 with the file containing the translations in the "msgstr" fields.
152 if [ $nf -gt 0 ]; then
154 Attached to this message is a file
156 with $nf automatically generated translations. Please verify and/or fix
157 them and reply with the file having been verified by you.
167 -e "set from=\"divVerent@xonotic.org\"" \
168 -e "set use_from=yes" \
169 -e "set use_envelope_from=yes" \
170 -s "Need update for translations: $X" \
172 -b "admin@xonotic.org" \
186 for X in "$VM".dat.*.po.disabled; do
187 [ -f "$X" ] || continue
188 if [ -n "$language" ]; then
189 if [ x"${X#*.dat.}" != x"$language.po" ]; then
193 msgmerge -F -U "$X" "$VM".dat.pot >/dev/null 2>&1