Odt2xliff
Jump to navigation
Jump to search
Here is a rough-and-ready script to turn the text from an ODT file into an XLIFF using Apertium and translate toolkit. For .po just remove the final call to po2xliff.
#!/bin/sh
INPUT_FILE=""
OUTPUT_FILE=""
function translate_odt
{
INPUT_TMPDIR=/tmp/$$odtdir
export LC_CTYPE=$(locale -a|grep -i "utf[.]*8"|head -1);
if [[ LC_CTYPE == "" ]]
then echo "Error: Install an UTF-8 locale in your system";
exit 1;
fi
if [[ $(which zip) == "" ]]
then echo "Error: Install 'zip' command in your system";
exit 1;
fi
if [[ $(which unzip) == "" ]]
then echo "Error: Install 'unzip' command in your system";
exit 1;
fi
if [[ $FICHERO == "" ]]
then FICHERO=/tmp/$$odtorig
cat > $FICHERO
BORRAFICHERO="true"
fi
unzip -q -o -d $INPUT_TMPDIR $FICHERO
find $INPUT_TMPDIR | grep content\\.xml |\
awk '{printf "<file name=\"" $0 "\"/>"; PART = $0; while(getline < PART) printf(" %s", $0); printf("\n");}' |\
apertium-desodt
VUELVE=$(pwd)
cd $INPUT_TMPDIR
cd $VUELVE
rm -rf $INPUT_TMPDIR
}
INPUT_FILE=$1
FICHERO=$INPUT_FILE;
TEMPO=/tmp/tem.po
translate_odt |
sed 's/<\\\/text:p>/]\n\n\n\n[/g' |
python txtformat.py |
txt2po - > $TEMPO
po2xliff $TEMPO
rm $TEMPO