summaryrefslogtreecommitdiff
path: root/bin/transifexpull.sh
blob: 454b1bc817a0dcf9960eb077a56b084c67ed7bdc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/sh

# In 'translator' mode files will contain empty translated texts
# where translation is not available, we'll remove these later

tx --debug pull -a --mode translator

PWD=`dirname "$0"`

do_count()
{
    CNT=`grep -e '^\$LANG' "$1" | wc -l | xargs`
    echo -n $CNT
}

do_clean()
{
    # do not cleanup en_US files
    echo "$1" | grep -v en_US > /dev/null || return

    # remove untranslated/empty texts
    perl -pi -e "s/^\\\$LANG\[[^]]+\]\s+=\s+['\"]{2};\n//" $1
    # remove variable initialization
    perl -pi -e "s/^\\\$LANG\s*=\s*array\(\);\n//" $1
    # remove (one-line) comments
    perl -pi -e "s/^\\/\\/.*//" $1
    # remove empty lines (but not in file header)
    perl -ne 'print if ($. < 2 || length($_) > 1)' $1 > $1.tmp
    mv $1.tmp $1
}

# clean up translation files
DIR="${PWD}/../lib/locale"

EN_CNT=`do_count $DIR/en_US.php`
for file in $DIR/*.php; do
    echo "$file" | grep -v api.php > /dev/null || continue
    do_clean $file
    CNT=`do_count $file`
    PERCENT=$((CNT*100/$EN_CNT))
    echo "$file    [$PERCENT%]"

    # git-add localizations with more than 0%
    if [ "$PERCENT" != "0" ]; then
        git add $file
    fi
done