[QGIS Commit] r10633 - trunk/qgis/scripts
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Thu Apr 23 09:43:45 EDT 2009
Author: jef
Date: 2009-04-23 09:43:45 -0400 (Thu, 23 Apr 2009)
New Revision: 10633
Added:
trunk/qgis/scripts/ts2cpp.pl
Modified:
trunk/qgis/scripts/update_ts_files.sh
Log:
add translations strings for python plugins automatically.
Added: trunk/qgis/scripts/ts2cpp.pl
===================================================================
--- trunk/qgis/scripts/ts2cpp.pl (rev 0)
+++ trunk/qgis/scripts/ts2cpp.pl 2009-04-23 13:43:45 UTC (rev 10633)
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+
+use XML::Simple;
+use Data::Dumper;
+
+die "usage: $0 source.ts dest.cpp\n" unless @ARGV==2 && -f $ARGV[0];
+
+my $xml = XMLin($ARGV[0], ForceArray=>1);
+
+open F, ">$ARGV[1]";
+
+print F <<EOF;
+/*
+ This is NOT a proper c++ source code. This file is only designed to be caught
+ by qmake and included in lupdate. It contains all translateable strings collected
+ by pylupdate4.
+*/
+
+EOF
+
+die "context expected" unless exists $xml->{context};
+
+foreach my $context ( @{ $xml->{context} } ) {
+ print F "\n// context: $context->{name}->[0]\n\n";
+
+ foreach my $message ( @{ $context->{message} } ) {
+ $message->{source}->[0] =~ s/"/\\"/g;
+ $message->{source}->[0] =~ s/\n/\\n/g;
+
+ print F "translate( \"$context->{name}->[0]\", \"$message->{source}->[0]\");\n";
+ }
+}
+
+close F;
Modified: trunk/qgis/scripts/update_ts_files.sh
===================================================================
--- trunk/qgis/scripts/update_ts_files.sh 2009-04-23 10:02:48 UTC (rev 10632)
+++ trunk/qgis/scripts/update_ts_files.sh 2009-04-23 13:43:45 UTC (rev 10633)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/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
@@ -14,10 +14,21 @@
echo Creating qt_ts.tar
tar -cvf i18n/qt_ts.tar i18n/qt_*.ts
rm i18n/qt_*.ts
+echo Updating python plugin translations
+P=$PWD
+for i in python/plugins/*/.; do
+ cd $i
+ pylupdate4 $(find . -name "*.py") -ts i18n.ts
+ perl $P/scripts/ts2cpp.pl i18n.ts i18n.cpp
+ rm i18n.ts
+ cd ../../..
+done
echo Creating qmake project file
qmake -project -o qgis_ts.pro
echo Updating translation files
lupdate -verbose qgis_ts.pro
+echo Removing temporary python plugin translation files
+rm python/plugins/*/i18n.cpp
echo Removing qmake project file
rm qgis_ts.pro
echo Unpacking qt_ts.tar
More information about the QGIS-commit
mailing list