Add script to fix up the files we pull from Transifex

This commit is contained in:
cketti 2014-04-08 18:05:04 +02:00
parent 420e6a91be
commit 6267f1249b
2 changed files with 34 additions and 0 deletions

View File

@ -0,0 +1,11 @@
#!/bin/bash
SCRIPT=$(readlink -f $0)
SCRIPTPATH=`dirname $SCRIPT`
PROJECTROOT=`dirname $SCRIPTPATH`
cd $PROJECTROOT
find res/values-* -name "strings.xml" -type f -exec ./tools/fix_transifex_output.sh {} \;
cd -

23
tools/fix_transifex_output.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/bash
# What we get from Transifex is unusable and needs some fixing before we're able to use
# the translations.
FILE=$1
# Fix xliff tags
perl -i -pe 's/&lt;xliff:g id=\\?"(.*?)?\\?"&gt;/<xliff:g id="\1">/g' $FILE
perl -i -pe 's/&lt;\/xliff:g&gt;/<\/xliff:g>/g' $FILE
# Escape single and double quotes before and after xliff tags
perl -i -pe 's/([^\\])(["'\''])<xliff/\1\\\2<xliff/g' $FILE
perl -i -pe 's/xliff:g>(["'\''])/xliff:g>\\\1/g' $FILE
# Restore "&lt;" and "&gt;"
perl -i -pe 's/&amp;(lt|gt);/&\1;/g' $FILE
# <string ...></string> -> <string ... />
perl -i -pe 's/"><\/string>/"\/>/g' $FILE
# Escape single and double quotes (but not in comments or the xml tag)
perl -i -pe 's/([^\\])'\''/\1\\'\''/g unless /(<!--|xml)/' $FILE