annotate po/gen_translations_stats.sh @ 1534:163e3efc1c02

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".
author mow
date Fri, 10 Apr 2009 10:18:42 +0000
parents 48bfa03502d3
children 1310d504b548
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
294
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
1 #!/bin/bash
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
2
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
3 # This script prints translations statistics for .po files
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
4 # existing in the current directory
623
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
5 export LC_ALL=C
294
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
6
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
7 echo "Translations statistics"
623
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
8 echo "Date: "$(date -R)
294
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
9 echo
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
10
623
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
11 echo "Note: completion % in the chart below may not be quite correct"
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
12 echo " when fuzzy translations exist but do not appear in the source."
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
13 echo " For exact results, run make update-po with up to date POTFILES.in."
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
14 echo " comp % = trans / (trans + fuzzy + untrans)"
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
15 echo
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
16
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
17 (echo "Language Comp(%) Trans Fuzzy Untrans Total"; \
294
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
18 for i in *.po; do
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
19 msgfmt --statistics -o /dev/null $i 2>&1 \
1534
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
20 | perl -ne '
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
21 my ($tr_done, $tr_fuzz, $tr_un) = (0, 0, 0);
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
22 $tr_done = $1 if /(\d+) translated messages/;
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
23 $tr_fuzz = $1 if /(\d+) fuzzy translations/;
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
24 $tr_un = $1 if /(\d+) untranslated messages/;
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
25 my $tr_tot = $tr_done + $tr_fuzz + $tr_un;
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
26 printf "%8.0f|%s|%7.2f|%5d|%5d|%7d|%5d\n",
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
27 10000*$tr_done/$tr_tot, "'"${i%%.po}"'",
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
28 100*$tr_done/$tr_tot, $tr_done, $tr_fuzz, $tr_un,
163e3efc1c02 Fix the broken statistic generation
mow
parents: 623
diff changeset
29 $tr_tot if $tr_tot;';
623
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
30 done | sort -t '|' -b -k1,1nr -k2,2 | sed 's/^ *[0-9]*//' | tr ' |' '| '
48bfa03502d3 Change translations statistics formatting to match the style
zas_
parents: 294
diff changeset
31 ) | column -t -c 80 | tr '|' ' '
294
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
32 echo
9131ca4ad70b Simple helper script to display translation statistics.
zas_
parents:
diff changeset
33