summaryrefslogtreecommitdiff
path: root/transifexpull.sh
diff options
context:
space:
mode:
authorAleksander Machniak <machniak@kolabsys.com>2013-10-11 13:07:07 (GMT)
committerAleksander Machniak <machniak@kolabsys.com>2013-10-11 13:07:07 (GMT)
commit5a1a2a89155dec932a0af438a8d9841dded19b53 (patch)
treebd3355c410b5a3ca9cd3d6845f7a95e2df11ac22 /transifexpull.sh
parent7f93ff46e0381fd86406505651b473312a14b9d9 (diff)
downloadroundcubemail-plugins-kolab-5a1a2a89155dec932a0af438a8d9841dded19b53.tar.gz
Added script to update localizations from Transifex, it also prints
percentage of translated texts per-file
Diffstat (limited to 'transifexpull.sh')
-rwxr-xr-xtransifexpull.sh55
1 files changed, 55 insertions, 0 deletions
diff --git a/transifexpull.sh b/transifexpull.sh
new file mode 100755
index 0000000..e11cfdd
--- /dev/null
+++ b/transifexpull.sh
@@ -0,0 +1,55 @@
+#!/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()
+{
+ LABELS=`grep -e '^\$labels' "$1" | wc -l`
+ MSGS=`grep -e '^\$messages' "$1" | wc -l`
+ CNT=$((LABELS+MSGS))
+
+ return $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/^\\\$labels\[[^]]+\]\s+=\s+['\"]{2};\n//" $1
+ perl -pi -e "s/^\\\$messages\[[^]]+\]\s+=\s+['\"]{2};\n//" $1
+ # remove variable initialization
+ perl -pi -e "s/^\\\$(labels|messages)\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
+for plugin in $PWD/plugins/*; do
+ if [ -s $plugin/localization/en_US.inc ]; then
+ do_count $plugin/localization/en_US.inc
+ EN_CNT=$?
+
+ for file in $plugin/localization/*.inc; do
+ do_clean $file
+ do_count $file
+ CNT=$?
+ PERCENT=$((CNT*100/$EN_CNT))
+ echo "$file [$PERCENT%]"
+
+ # git-add localizations with more than 0%
+ if [ "$PERCENT" != "0" ]; then
+ git add $file
+ fi
+ done
+ fi
+done