summaryrefslogtreecommitdiff
path: root/po/update-po.sh
blob: 218bb63be8abf3ff65b158f11a8a7da8eddac9ae (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
#!/bin/sh

PACKAGE=phone
SRCROOT=..
POTFILES=POTFILES.in

#ALL_LINGUAS= am az be ca cs da de el en_CA en_GB es et fi fr hr hu it ja ko lv mk ml ms nb ne nl pa pl pt pt_BR ru rw sk sl sr sr@Latn sv ta tr uk vi zh_CN zh_TW
ALL_LINGUAS="ar bg ca cs da de_DE el_GR en en_US es_ES fi fr_FR hi he hr hu id it_IT ja_JP ko_KR lt lv ms nl_NL no pl pt_PT ro ru_RU sk sl sr sv th tr_TR uk vi zh_CN zh_HK zh_TW"

XGETTEXT=/usr/bin/xgettext
MSGMERGE=/usr/bin/msgmerge

echo -n "Make ${PACKAGE}.pot  "
if [ ! -e $POTFILES ] ; then
   echo "$POTFILES not found"
   exit 1
fi

$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \
      --keyword=_ --keyword=N_ --files-from=$POTFILES
if [ $? -ne 0 ]; then
   echo "xgettext error"
   exit 1
fi

if [ ! -f ${PACKAGE}.po ]; then
   echo "No such file: ${PACKAGE}.po"
   exit 1
fi

rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot
echo "done"

for LANG in $ALL_LINGUAS; do
   echo "$LANG : "

   if [ ! -e $LANG.po ] ; then
      sed 's/CHARSET/UTF-8/g' ${PACKAGE}.pot > ${LANG}.po
      echo "${LANG}.po created"
   else
      if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then
         if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then
            rm -f ${LANG}.new.po
         else
            if mv -f ${LANG}.new.po ${LANG}.po; then
               echo ""
            else
               echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2
               rm -f ${LANG}.new.po
               exit 1
            fi
         fi
      else
         echo "msgmerge for $LANG failed!"
         rm -f ${LANG}.new.po
      fi
   fi
   echo ""
done