X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=check-translations.sh;fp=check-translations.sh;h=faee5c4952a3eefa133afb68261371b56479f2d9;hp=94a94f8e787e9a7e58fb0e4ebd5a6c9ccb63e411;hb=af82a103d9e4671a8735eb69099b223020168f39;hpb=e28ee1f290d05640baacc24b4cf6e07467843e8b diff --git a/check-translations.sh b/check-translations.sh index 94a94f8e78..faee5c4952 100755 --- a/check-translations.sh +++ b/check-translations.sh @@ -24,117 +24,100 @@ case "$1" in ;; esac -for VM in menu csprogs; do - case "$VM" in - csprogs) - VMD=client - ;; - *) - VMD=$VM - ;; - esac +if [ x"$mode" = x"pot" ]; then + { + find qcsrc -type f -name \*.\* -not -name \*.po -not -name \*.txt + } | xgettext -LC -k_ -f- --from-code utf-8 -o common.pot >&2 +fi - 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" +if [ x"$mode" = x"po" ]; then + for X in common.*.po; do + [ -f "$X" ] || continue + if [ -n "$language" ]; then + if [ x"${X#*.dat.}" != x"$language.po" ]; then + continue 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 - else - if [ x"${X#*.dat.}" = x"en.po" ]; then - continue - fi + else + if [ x"${X#*.dat.}" = x"en.po" ]; then + continue fi - 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 2>/dev/null` + 0)) - nf=$((`grep -c ^#: "$X".fuzzy 2>/dev/null` + 0)) - n=$(($nu + $nf)) - changed=false - for Y in ~/check-translations/"$X".*; do - [ -f "$Y" ] || continue - echo "Merging $Y..." - vim -E "$Y" <&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 2>/dev/null` + 0)) + nf=$((`grep -c ^#: "$X".fuzzy 2>/dev/null` + 0)) + n=$(($nu + $nf)) + changed=false + for Y in ~/check-translations/"$X".*; do + [ -f "$Y" ] || continue + echo "Merging $Y..." + vim -E "$Y" </dev/null; then - echo "File $Y has syntax errors. Skipped." - continue - fi - msgcat -F --use-first "$Y" "$X" > "$X".new - mv "$X".new "$X" - changed=true - done - nu0=$nu - nf0=$nf - if $changed; then - 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 2>/dev/null` + 0)) - nf=$((`grep -c ^#: "$X".fuzzy 2>/dev/null` + 0)) - n=$(($nu + $nf)) + if ! msgcat "$Y" >/dev/null; then + echo "File $Y has syntax errors. Skipped." + continue fi - if [ $n -gt 0 ]; then - echo "TODO for translation $X:" - echo "Untranslated: $nu (was: $nu0)" - echo "Fuzzy: $nf (was: $nf0)" - 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 + msgcat -F --use-first "$Y" "$X" > "$X".new + mv "$X".new "$X" + changed=true + done + nu0=$nu + nf0=$nf + if $changed; then + msgmerge -F -U "$X" common.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 2>/dev/null` + 0)) + nf=$((`grep -c ^#: "$X".fuzzy 2>/dev/null` + 0)) + n=$(($nu + $nf)) + fi + if [ $n -gt 0 ]; then + echo "TODO for translation $X:" + echo "Untranslated: $nu (was: $nu0)" + echo "Fuzzy: $nf (was: $nf0)" + 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= - ;; - *) - 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 + fi + msgmerge -F -U "$X" common.pot >/dev/null 2>&1 + done +fi