Index: /applications/editors/josm/i18n/build.xml
===================================================================
--- /applications/editors/josm/i18n/build.xml	(revision 14123)
+++ /applications/editors/josm/i18n/build.xml	(revision 14124)
@@ -40,4 +40,7 @@
     <exec executable="perl" output="${i18n.build.dir}/trans_surveyor.java">
       <arg line="convsurveyor.pl ${surveyor.srcfile}"/>
+    </exec>
+    <exec executable="perl" output="${i18n.build.dir}/trans_plugins.java">
+      <arg line="convplugins.pl ${plugin.dir}/*/build.xml"/>
     </exec>
     <copy file="specialmessages.java" todir="${i18n.build.dir}" />
Index: /applications/editors/josm/i18n/convplugins.pl
===================================================================
--- /applications/editors/josm/i18n/convplugins.pl	(revision 14124)
+++ /applications/editors/josm/i18n/convplugins.pl	(revision 14124)
@@ -0,0 +1,39 @@
+#! /usr/bin/perl -w
+
+# Written by Dirk Stöcker <openstreetmap@dstoecker.de>
+# Public domain, no rights reserved.
+
+use strict;
+
+# This is a simple conversion and in no way a complete XML parser
+# but it works with a default Perl installation
+
+# Print a header to write valid Java code.
+print "class trans_plugins { void tr(String s){} void f() {\n";
+
+foreach my $arg (@ARGV)
+{
+  foreach my $name (glob $arg)
+  {
+    my $printed = 0;
+    die "Can't open $name." if !(open FILE,"<",$name);
+    my $plugin = $name;
+    while(my $line = <FILE>)
+    {
+      chomp($line);
+      if($line =~ /name=\"Plugin-Description\" +value=\"(.*)\"/)
+      {
+        $printed = 1;
+        print "/* Plugin $plugin */\ntr(\"$1\");\n";
+      }
+      elsif($line =~ /project name=\"(.*?)\"/)
+      {
+        $plugin = $1;
+      }
+    }
+    close FILE;
+    print "/* File $name had no data */\n" if(!$printed);
+  }
+}
+
+print "}}\n";
