-
-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
111 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
#!/bin/bash | ||
# 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 | ||
# $Id$ | ||
|
||
set -e | ||
|
||
cleanup() { | ||
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 \ | ||
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 cleanup EXIT | ||
|
||
PATH=$QTDIR/bin:$PATH | ||
|
||
exclude= | ||
opts= | ||
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 [ -f "i18n/qgis_$arg.ts" ]; then | ||
exclude="$exclude --exclude i18n/qgis_$arg.ts" | ||
else | ||
opts="$opts $arg" | ||
fi | ||
done | ||
|
||
if [ -n "$exclude" -o -n "$add" ]; then | ||
echo Saving excluded translations | ||
tar --remove-files -cf i18n/qgis_ts.tar i18n/qgis_*.ts$exclude | ||
fi | ||
echo Updating python translations | ||
cd python | ||
pylupdate4 console.py utils.py -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-qt4 -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-qt4$opts -verbose qgis_ts.pro | ||
|
||
if [ -n "$add" ]; then | ||
for i in $add; do | ||
if [ -f i18n/qgis_$i.ts ]; then | ||
git add i18n/qgis_$i.ts | ||
else | ||
echo "Translaiton for $i was not added" | ||
exit 1 | ||
fi | ||
done | ||
fi |