OSDN Git Service

Move the directories
[kita/kita.git] / po / extract-messages.sh
1 #! /bin/bash
2
3 podir=${podir:-$PWD/po}
4 files=`find . -name Messages.sh`
5 dirs=`for i in $files; do echo \`dirname $i\`; done | sort -u`
6 tmpname="$PWD/messages.log"
7 EXTRACTRC=${EXTRACTRC:-extractrc}
8 EXTRACTATTR=${EXTRACTATTR:-extractattr}
9 PREPARETIPS=${PREPARETIPS:-preparetips}
10 REPACKPOT=${REPACKPOT:-repack-pot.pl}
11 export EXTRACTRC EXTRACTATTR PREPARETIPS REPACKPOT
12 IGNORE=${IGNORE:-.svn}
13
14 for subdir in $dirs; do
15   # skip Messages.sh files of KDevelop's app templates
16   grep '{APPNAMELC}[^ ]*.pot' $subdir/Messages.sh 1>/dev/null && continue
17
18   test -z "$VERBOSE" || echo "Making messages in $subdir"
19   (cd $subdir
20    ls -1 *.rc *.ui *.ui3 *.ui4 *.kcfg 2> /dev/null | xargs --no-run-if-empty $EXTRACTRC > rc.cpp
21    if find . -name \*.c\* -o -name \*.h\* | fgrep -v "$IGNORE" | xargs fgrep -s -q KAboutData ; then
22         echo 'i18nc("NAME OF TRANSLATORS","Your names");' >> rc.cpp
23         echo 'i18nc("EMAIL OF TRANSLATORS","Your emails");' >> rc.cpp
24    fi
25
26    # using xgettext 0.15 or later
27    ### TODO what --flags param should be used?
28    XGETTEXT_FLAGS_QT="--from-code=UTF-8 -C --qt -ktr:1,1t -ktr:1,2c,2t -kQT_TRANSLATE_NOOP:1c,2,2t -kQT_TR_NOOP:1,1t -ktranslate:1c,2,2t -ktranslate:2,3c,3t"
29    XGETTEXT_FLAGS="--from-code=UTF-8 -C --kde -ci18n -ki18n:1 -ki18nc:1c,2 -ki18np:1,2 -ki18ncp:1c,2,3 -ktr2i18n:1 -kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 -kki18np:1,2 -kki18ncp:1c,2,3"
30    export XGETTEXT_FLAGS
31    export XGETTEXT_FLAGS_QT
32
33    if test -f Messages.sh; then
34        # Note: Messages.sh is supposed to get the translators' placeholder by rc.cpp
35        podir=$podir srcdir=. XGETTEXT_PROGRAM="${XGETTEXT:-xgettext}" XGETTEXT_QT="${XGETTEXT:-xgettext} $XGETTEXT_FLAGS_QT" XGETTEXT="${XGETTEXT:-xgettext} $XGETTEXT_FLAGS" bash Messages.sh
36    fi
37    exit_code=$?
38    if test "$exit_code" -ne 0; then
39        echo "Bash exit code: $exit_code"
40    else
41        rm -f rc.cpp
42    fi
43    ) >& $tmpname
44    test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
45 done
46
47 # # Repack extracted templates.
48 # for potfile in $podir/*.pot; do
49 #     $REPACKPOT $potfile
50 # done
51
52 rm -f $tmpname