[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