diff options
author | Aleksander Machniak <alec@alec.pl> | 2013-10-29 08:16:52 (GMT) |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2013-10-29 08:38:28 (GMT) |
commit | 7d64e796caaa9cd71fc7030181690bace34a8a6d (patch) | |
tree | d4f0875ebc72db7e2cb40d1ccafc5cc95339fa51 /bin/transifexpull.sh | |
parent | cee1d0f9c6ab960a1bee2d942279d3b76784829c (diff) | |
download | kolab-wap-7d64e796caaa9cd71fc7030181690bace34a8a6d.tar.gz |
Added script for pulling localization from Transifex
Diffstat (limited to 'bin/transifexpull.sh')
-rwxr-xr-x | bin/transifexpull.sh | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/bin/transifexpull.sh b/bin/transifexpull.sh new file mode 100755 index 0000000..454b1bc --- /dev/null +++ b/bin/transifexpull.sh @@ -0,0 +1,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 |