From: Klaus Ethgen Date: Fri, 10 Apr 2009 10:18:42 +0000 (+0000) Subject: Fix the broken statistic generation X-Git-Tag: v1.0.0~269 X-Git-Url: http://geeqie.org/cgi-bin/gitweb.cgi?p=geeqie.git;a=commitdiff_plain;h=0977d77b3e2bff165ba6e73f0a4fc032b2c34daf Fix the broken statistic generation The output of msgfmt has different format if no fuzzy translations (or even no translated) are available. I fixed that by parsing the output of msgfmt more intelligent. Drawback of the solution is that the parsing will not work if the output of msgfmt use not the strings "translated messages", "fuzzy translations" and "untranslated messages". --- diff --git a/po/gen_translations_stats.sh b/po/gen_translations_stats.sh index eab62bc0..36aeda93 100755 --- a/po/gen_translations_stats.sh +++ b/po/gen_translations_stats.sh @@ -17,12 +17,16 @@ echo (echo "Language Comp(%) Trans Fuzzy Untrans Total"; \ for i in *.po; do msgfmt --statistics -o /dev/null $i 2>&1 \ - | sed 's/^\([0-9]\+ \)[^0-9]*\([0-9]\+ \)\?[^0-9]*\([0-9]\+ \)\?[^0-9]*$/\1\2\3/g' \ - | awk '{ \ - tot = $1 + $2 + $3; \ - if (tot != 0) \ - printf "%8.0f|%s|%7.2f|%5d|%5d|%7d|%5d\n",\ - ($1*100/tot)*100, "'"${i%%.po}"'", $1*100/tot, tot-($2+$3), $2, $3, tot}' ; + | perl -ne ' + my ($tr_done, $tr_fuzz, $tr_un) = (0, 0, 0); + $tr_done = $1 if /(\d+) translated messages/; + $tr_fuzz = $1 if /(\d+) fuzzy translations/; + $tr_un = $1 if /(\d+) untranslated messages/; + my $tr_tot = $tr_done + $tr_fuzz + $tr_un; + printf "%8.0f|%s|%7.2f|%5d|%5d|%7d|%5d\n", + 10000*$tr_done/$tr_tot, "'"${i%%.po}"'", + 100*$tr_done/$tr_tot, $tr_done, $tr_fuzz, $tr_un, + $tr_tot if $tr_tot;'; done | sort -t '|' -b -k1,1nr -k2,2 | sed 's/^ *[0-9]*//' | tr ' |' '| ' ) | column -t -c 80 | tr '|' ' ' echo