Some command line options are not GNU/POSIX compliant (4)
[geeqie.git] / po / gen_translations_stats.sh
1 #!/bin/bash
2
3 # This script prints translations statistics for .po files
4 # existing in the current directory
5 export LC_ALL=C
6
7 echo "Translations statistics"
8 echo "Date: "$(date -R)
9 echo
10
11 echo "Note: completion % in the chart below may not be quite correct"
12 echo "      when fuzzy translations exist but do not appear in the source."
13 echo "      For exact results, run make update-po with up to date POTFILES.in."
14 echo "      comp % = trans / (trans + fuzzy + untrans)"
15 echo
16
17 (echo "Language  Comp(%) Trans Fuzzy Untrans Total"; \
18 for i in *.po; do
19         msgfmt --statistics -o /dev/null $i 2>&1 \
20         | perl -ne '
21                 my ($tr_done, $tr_fuzz, $tr_un) = (0, 0, 0);
22                 $tr_done = $1 if /(\d+) translated messages?/;
23                 $tr_fuzz = $1 if /(\d+) fuzzy translations?/;
24                 $tr_un = $1 if /(\d+) untranslated messages?/;
25                 my $tr_tot = $tr_done + $tr_fuzz + $tr_un;
26                 printf "%8.0f|%s|%7.2f|%5d|%5d|%7d|%5d\n",
27                         10000*$tr_done/$tr_tot, "'"${i%%.po}"'",
28                         100*$tr_done/$tr_tot, $tr_done, $tr_fuzz, $tr_un,
29                         $tr_tot if $tr_tot;';
30 done | sort -t '|' -b -k1,1nr -k2,2 | sed 's/^ *[0-9]*//' | tr ' |' '| '
31 ) | column -t -c 80 | tr '|' ' '
32 echo
33