summaryrefslogtreecommitdiffstats
path: root/examples/packages/generatetranslation.sh
blob: ec4c8784b73666d80e2e4848780c4667feb8150a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/bin/sh

if [ $# -lt 1 ]; then
    echo "Usage: $0 scriptfile [uifiles]*"  >/dev/stderr
    exit 1
fi

FILE="$TMPDIR/$(basename $0).$RANDOM.$$.tmp"
FILE2="$TMPDIR/$(basename $0).$RANDOM.$$.tmp"
FILE3="$TMPDIR/$(basename $0).$RANDOM.$$.tmp"

CONTEXT=`basename $1 | sed -e 's,\([^.]*\)\..*,\1,'`

# first work on the script file
sed -ne 's/qsTr *( *"\(\([^"\\]*\(\\.\)*\)*\)"/\
TRANSLATE\1TRANSLATE\
/pg' $1 | sed -ne 's,^TRANSLATE\(.*\)TRANSLATE$,\1,p' | 
sed -e 's/\\"/";/g' | 
sed -e 's/</\&lt;/g' > $FILE

# remove duplicates
sort -u $FILE > $FILE3
mv $FILE3 $FILE

echo "<?xml version=\"1.0\" encoding=\"utf8\"?>" > $FILE2
echo "<!DOCTYPE TS><TS version=\"1.1\">" >> $FILE2
echo "<context>" >> $FILE2
echo "    <name>$CONTEXT</name>" >> $FILE2

sed -e 's/\(.*\)/    <message>\
        <source>\1<\/source>\
        <translation type="unfinished"><\/translation>\
    <\/message>/' < $FILE >> $FILE2

echo "</context>" >> $FILE2


while [ $# -gt 1 ]; do
shift

CONTEXT=`sed -ne 's,.*<class>\([^<]*\)</class>.*,\1,p' $1`

echo "<context>" >> $FILE2
echo "    <name>$CONTEXT</name>" >> $FILE2

# then work on the ui files
sed -ne 's/<string>\([^<\\]*\)<\/string>/\
TRANSLATE\1TRANSLATE\
/pg' $1 | sed -ne 's,^TRANSLATE\(.*\)TRANSLATE$,\1,p' | 
sed -e 's/\\"/";/g' | 
sed -e 's/</\&lt;/g' > $FILE

# remove duplicates
sort -u $FILE > $FILE3
mv $FILE3 $FILE



sed -e 's/\(.*\)/    <message>\
        <source>\1<\/source>\
        <translation type="unfinished"><\/translation>\
    <\/message>/' < $FILE >> $FILE2


echo "</context>" >> $FILE2

done

echo "</TS>" >> $FILE2

cat $FILE2

rm $FILE
rm $FILE2

exit 0