You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
2.8 KiB
83 lines
2.8 KiB
15 years ago
|
#!/bin/sh
|
||
|
|
||
|
# little helper script for regenerating translation files. Mostly taken from cvs.sh from kde-autotool environment
|
||
|
# adapted to a cmake build environment and removed a lot not really needed stuff
|
||
|
#EXTRACTRC=@EXTRACTRC@
|
||
|
#PREPARETIPS=@PREPARETIPS@
|
||
|
MESSAGES_DIR=@MESSAGES_DIR@
|
||
|
SOURCE_DIR=@CMAKE_SOURCE_DIR@
|
||
|
MAKE=make
|
||
|
POFILES="@POFILES@"
|
||
|
podir="${SOURCE_DIR}/po"
|
||
|
|
||
|
cd ${SOURCE_DIR}
|
||
|
rm -rf po.backup
|
||
|
mkdir po.backup
|
||
|
|
||
|
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
|
||
|
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
|
||
|
cp po/$i po.backup/backup_$i
|
||
|
touch -r po/$i po.backup/backup_$i
|
||
|
rm po/$i
|
||
|
done
|
||
|
|
||
|
podir=${podir:-$PWD/po}
|
||
|
#files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
|
||
|
#dirs=`for i in $files; do echo \`dirname $i\`; done`
|
||
|
dirs=${MESSAGES_DIR}
|
||
|
tmpname="$PWD/messages.log"
|
||
|
if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
|
||
|
if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
|
||
|
export EXTRACTRC PREPARETIPS
|
||
|
|
||
|
for subdir in $dirs; do
|
||
|
test -z "$VERBOSE" || echo "Making messages in $subdir"
|
||
|
(cd $subdir
|
||
|
echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
|
||
|
$EXTRACTRC `find . -name \*.ui -o -name \*.rc` > rc.cpp
|
||
|
XGETTEXT="${XGETTEXT:-xgettext} -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale --add-comments="TRANSLATORS:" -x ${includedir:-${KDEDIR:-@CMAKE_INSTALL_PREFIX@}/include/kde}/kde.pot"
|
||
|
find . -name '*.cpp' | xargs ${XGETTEXT} _translatorinfo.cpp -o ${podir}/@PROJECT_NAME@.pot
|
||
|
) 2>&1 | grep -v '^make\[1\]' > $tmpname
|
||
|
test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
|
||
|
test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
|
||
|
rm -f $subdir/_translatorinfo.cpp
|
||
|
done
|
||
|
rm -f $tmpname
|
||
|
for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
|
||
|
test -f po/$i || echo "disappeared: $i"
|
||
|
done
|
||
|
for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
|
||
|
msgmerge -q -o po/$i po/$i po/$i
|
||
|
egrep -v '^#([^:]|$)' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
|
||
|
if test -f po.backup/$i && test -n "`diff temp.pot po.backup/$i`"; then
|
||
|
echo "will update $i"
|
||
|
msgmerge -q po.backup/backup_$i po/$i > temp.pot
|
||
|
mv temp.pot po/$i
|
||
|
else
|
||
|
if test -f po.backup/backup_$i; then
|
||
|
test -z "$VERBOSE" || echo "I'm restoring $i"
|
||
|
mv po.backup/backup_$i po/$i
|
||
|
rm po.backup/$i
|
||
|
else
|
||
|
echo "will add $i"
|
||
|
fi
|
||
|
fi
|
||
|
done
|
||
|
rm -f temp.pot
|
||
|
rm -rf po.backup
|
||
|
|
||
|
echo Merging messages
|
||
|
for cat in $POFILES; do
|
||
|
msgmerge -o $cat.new $cat @CMAKE_SOURCE_DIR@/po/@PROJECT_NAME@.pot
|
||
|
if test -s $cat.new; then
|
||
|
grep -v "\"POT-Creation" $cat.new > $cat.new.2
|
||
|
grep -v "\"POT-Creation" $cat >> $cat.new.1
|
||
|
if diff $cat.new.1 $cat.new.2; then
|
||
|
rm $cat.new
|
||
|
else
|
||
|
mv $cat.new $cat
|
||
|
fi
|
||
|
rm -f $cat.new.1 $cat.new.2
|
||
|
fi
|
||
|
done
|