summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-10-29 08:16:52 (GMT)
committerAleksander Machniak <alec@alec.pl>2013-10-29 08:26:47 (GMT)
commitb00f1e5c670d483b29de54b1729454882958a2ea (patch)
treec292a1e5c42f94b186b4c405311b787332929203 /bin
parent3030c2f537a43b801d3b54739cbfb0359cddb47c (diff)
downloadkolab-wap-b00f1e5c670d483b29de54b1729454882958a2ea.tar.gz
Added script for pulling localization from Transifex
Diffstat (limited to 'bin')
-rwxr-xr-xbin/transifexpull.sh47
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