mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
161 lines
4.1 KiB
Bash
Executable File
161 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
###########################################################################
|
|
# update_ts_files.sh
|
|
# ---------------------
|
|
# Date : July 2007
|
|
# Copyright : (C) 2007 by Tim Sutton
|
|
# Email : tim dot linfiniti at com
|
|
###########################################################################
|
|
# #
|
|
# This program is free software; you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License as published by #
|
|
# the Free Software Foundation; either version 2 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
###########################################################################
|
|
|
|
# Update the translation files with strings used in QGIS
|
|
# 1. create a clean Qt .pro file for the project
|
|
# 2. run lupdate using the .pro file from step 1
|
|
# 3. remove the .pro
|
|
# Note the .pro file must NOT be named qgis.pro as this
|
|
# name is reserved for the Windows qmake project file
|
|
|
|
set -e
|
|
|
|
cleanup() {
|
|
if [ -f i18n/python_ts.tar ]; then
|
|
tar -xf i18n/python_ts.tar
|
|
fi
|
|
if [ -f i18n/qgis_ts.tar ]; then
|
|
echo Restoring excluded translations
|
|
tar -xf i18n/qgis_ts.tar
|
|
fi
|
|
|
|
echo Removing temporary files
|
|
perl -i.bak -ne 'print unless /^\s+<location.*python-i18n\.cpp.*$/;' i18n/qgis_*.ts
|
|
for i in \
|
|
python/python-i18n.{ts,cpp} \
|
|
python/plugins/*/python-i18n.{ts,cpp} \
|
|
i18n/qgis_*.ts.bak \
|
|
src/plugins/grass/grasslabels-i18n.cpp \
|
|
i18n/qgis_ts.tar \
|
|
i18n/python_ts.tar \
|
|
qgis_ts.pro
|
|
do
|
|
[ -f "$i" ] && rm "$i"
|
|
done
|
|
|
|
for i in \
|
|
src/plugins/plugin_template/plugingui.cpp \
|
|
src/plugins/plugin_template/plugin.cpp
|
|
do
|
|
[ -f "$i.save" ] && mv "$i.save" "$i"
|
|
done
|
|
|
|
trap "" EXIT
|
|
}
|
|
|
|
PATH=$QTDIR/bin:$PATH
|
|
|
|
if type qmake-qt4 >/dev/null 2>&1; then
|
|
QMAKE=qmake-qt4
|
|
else
|
|
QMAKE=qmake
|
|
fi
|
|
|
|
if ! type pylupdate4 >/dev/null 2>&1; then
|
|
echo "pylupdate4 not found"
|
|
exit 1
|
|
fi
|
|
|
|
if type lupdate-qt4 >/dev/null 2>&1; then
|
|
LUPDATE=lupdate-qt4
|
|
else
|
|
LUPDATE=lupdate
|
|
fi
|
|
|
|
exclude="--exclude i18n/qgis_en.ts"
|
|
opts=
|
|
fast=
|
|
while (( $# > 0 )); do
|
|
arg=$1
|
|
shift
|
|
|
|
if [ "$arg" = "-a" ]; then
|
|
arg=$1
|
|
shift
|
|
if [ -f "i18n/qgis_$arg.ts" ]; then
|
|
echo "cannot add existing translation $arg"
|
|
exit 1
|
|
else
|
|
add="$add $arg"
|
|
fi
|
|
elif [ "$arg" = "-f" ]; then
|
|
fast=--remove-files
|
|
elif [ -f "i18n/qgis_$arg.ts" ]; then
|
|
exclude="$exclude --exclude i18n/qgis_$arg.ts"
|
|
else
|
|
opts="$opts $arg"
|
|
fi
|
|
done
|
|
|
|
trap cleanup EXIT
|
|
|
|
tar --remove-file -cf i18n/python_ts.tar $(find python -name "*.ts")
|
|
if [ "$exclude" != "--exclude i18n/qgis_en.ts" -o -n "$add" ]; then
|
|
echo Saving excluded translations
|
|
tar $fast -cf i18n/qgis_ts.tar i18n/qgis_*.ts $exclude
|
|
fi
|
|
|
|
echo Updating python translations
|
|
cd python
|
|
pylupdate4 utils.py {console,pyplugin_installer}/*.{py,ui} -ts python-i18n.ts
|
|
perl ../scripts/ts2cpp.pl python-i18n.ts python-i18n.cpp
|
|
rm python-i18n.ts
|
|
cd ..
|
|
for i in python/plugins/*/CMakeLists.txt; do
|
|
cd ${i%/*}
|
|
pylupdate4 $(find . -name "*.py" -o -name "*.ui") -ts python-i18n.ts
|
|
perl ../../../scripts/ts2cpp.pl python-i18n.ts python-i18n.cpp
|
|
rm python-i18n.ts
|
|
cd ../../..
|
|
done
|
|
echo Updating GRASS module translations
|
|
perl scripts/qgm2cpp.pl >src/plugins/grass/grasslabels-i18n.cpp
|
|
mv src/plugins/plugin_template/plugingui.cpp src/plugins/plugin_template/plugingui.cpp.save
|
|
echo Creating qmake project file
|
|
for i in \
|
|
src/plugins/plugin_template/plugingui.cpp \
|
|
src/plugins/plugin_template/plugin.cpp
|
|
do
|
|
[ -f "$i" ] && mv "$i" "$i.save"
|
|
done
|
|
$QMAKE -project -o qgis_ts.pro -nopwd src python i18n
|
|
if [ -n "$add" ]; then
|
|
for i in $add; do
|
|
echo "Adding translation for $i"
|
|
echo "TRANSLATIONS += i18n/qgis_$i.ts" >> qgis_ts.pro
|
|
done
|
|
fi
|
|
echo Updating translations
|
|
$LUPDATE$opts -verbose qgis_ts.pro
|
|
|
|
if [ -z "$fast" ]; then
|
|
echo Updating TRANSLATORS File
|
|
./scripts/tsstat.pl >doc/TRANSLATORS
|
|
fi
|
|
|
|
cleanup
|
|
|
|
if [ -n "$add" ]; then
|
|
for i in $add; do
|
|
if [ -f i18n/qgis_$i.ts ]; then
|
|
git add i18n/qgis_$i.ts
|
|
else
|
|
echo "Translation for $i was not added"
|
|
exit 1
|
|
fi
|
|
done
|
|
fi
|