OSDN Git Service

Add LogList To GitBlame
[tortoisegit/TortoiseGitJp.git] / contrib / drupal-modules / translation-status / get-gui-stats.sh
1 #!/bin/sh\r
2 #\r
3 # Calculate po translation statistics of all po files inside $CATALOGS_DIR\r
4 # and write the result to standard output\r
5 #\r
6 # Copyright (C) 2004-2008 the TortoiseSVN team\r
7 # This file is distributed under the same license as TortoiseSVN\r
8 #\r
9 # $Author: luebbe $\r
10 # $Date: 2008-06-23 17:52:54 +0800 (Mon, 23 Jun 2008) $\r
11 # $Rev: 13326 $\r
12 #\r
13 # Author: Lübbe Onken 2004-2008\r
14 #\r
15 \r
16 HOME_DIR=/var/svnwc/l10n\r
17 \r
18 MSGFMT=msgfmt\r
19 MSGMERGE=msgmerge\r
20 SVNVERSION=svnversion\r
21 CATALOGS_DIR="$HOME_DIR/$1/gui"\r
22 TEMP_DIR="$CATALOGS_DIR/tmp"\r
23 \r
24 WCREV=`$SVNVERSION $CATALOGS_DIR | sed -e 's/[MS]//g'`\r
25 UPDATE=`date`\r
26 \r
27 rm -rf $TEMP_DIR\r
28 mkdir $TEMP_DIR\r
29 \r
30 echo '<?php'\r
31 echo '$TortoiseGUI=array('\r
32 \r
33 TO=0\r
34 x=`$MSGFMT --verbose -o /dev/null ${CATALOGS_DIR}/Tortoise.pot 2>&1 | grep 'translated messages' | \\r
35    sed -e 's/[,\.]//g' \\r
36        -e 's/\([0-9]\+\) translated messages\?/TR=\1/' \\r
37        -e 's/\([0-9]\+\) untranslated messages\?/TO=\1/'`\r
38 eval $x\r
39 \r
40 APP=Tortoise\r
41 for i in ${CATALOGS_DIR}/*.po ; do\r
42    ER=0 AK=0 TR=0 FZ=0 UT=0\r
43         catname=`basename $i .po`\r
44         country=`basename $i .po | sed -e 's/Tortoise_//'`\r
45         tempfile="$TEMP_DIR/$catname.po"\r
46         filedate=`stat -c "%y" ${CATALOGS_DIR}/$catname.po`\r
47 \r
48         x=`cat ${CATALOGS_DIR}/$catname.po | grep 'PO-Revision-Date:' | \\r
49            sed -e 's/"PO-Revision-Date: //g' \\r
50                -e 's/[0-9]\{2\}:[0-9]\{2\}.*//g' \\r
51                -e 's/\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)/PRD=\1/'`\r
52         eval $x\r
53 \r
54         cp $i $tempfile \r
55         $MSGMERGE --no-wrap --quiet --no-fuzzy-matching -s $i  ${CATALOGS_DIR}/${APP}.pot -o $tempfile 2>/dev/null\r
56         \r
57         x=`$MSGFMT -c -o /dev/null $tempfile 2>&1 | grep 'fatal error' | \\r
58                 sed -e 's/[^0-9]//g' \\r
59                     -e 's/\([0-9]\+\)\?/ER=\1/'`\r
60         eval $x\r
61 \r
62         if test $ER -eq 0 ; then\r
63 \r
64                 x=`$MSGFMT --verbose -o /dev/null $tempfile 2>&1 | grep 'translated messages' | \\r
65                         sed -e 's/[,\.]//g' \\r
66                                 -e 's/\([0-9]\+\) translated messages\?/TR=\1/' \\r
67                                 -e 's/\([0-9]\+\) fuzzy translations\?/FZ=\1/' \\r
68                                 -e 's/\([0-9]\+\) untranslated messages\?/UT=\1/'`\r
69                 eval $x\r
70 \r
71                 x=`$MSGFMT --check-accelerators -o /dev/null $tempfile 2>&1 | grep 'fatal error' | \\r
72                         sed -e 's/[^0-9]//g' \\r
73                                -e 's/\([0-9]\+\)\?/AK=\1/'`\r
74                 eval $x\r
75         fi\r
76         if test $UT -eq 0 ; then\r
77                 UT=$((TO-TR-FZ))\r
78         fi\r
79    echo "\"$country\" => array($ER, $TO, $TR, $FZ, $UT, $AK, \"$catname\", \"$PRD\"),"\r
80 done\r
81 \r
82 # Separate line for the .pot file\r
83 filedate=`stat -c "%Y" ${CATALOGS_DIR}/${APP}.pot`\r
84 echo "\"zzz\" => array(-1, $TO, 0, 0, $TO, 0, \"${APP}.pot\",\"$filedate\")"\r
85 \r
86 echo ');'\r
87 echo '$tsvn_var = array('\r
88 echo "\"wcrev\" => \"$WCREV\","\r
89 echo "\"update\" => \"$UPDATE\","\r
90 echo ');'\r
91 echo '?>'\r
92 \r
93 rm -rf $TEMP_DIR\r
94 \r