Index: /applications/editors/josm/i18n/convpreset.pl
===================================================================
--- /applications/editors/josm/i18n/convpreset.pl	(revision 32240)
+++ /applications/editors/josm/i18n/convpreset.pl	(revision 32241)
@@ -7,4 +7,5 @@
 
 my $item = "";
+my $chunk = "";
 my $group;
 my $combo_n;
@@ -31,4 +32,14 @@
 }
 
+sub infoblock
+{
+  my $r = "";
+  $r .= " item $item" if $item;
+  $r .= " chunk $chunk" if $chunk;
+  $r .= " group $group" if $group;
+  $r .= " $_[0]" if $_[0];
+  return $r ? "/* $r */ " : "";
+}
+
 my $linenr = 0;
 while(my $line = <>)
@@ -44,10 +55,14 @@
     if($line =~ /name_context=(".*?")/)
     {
-      print "/* item $item */ trc($1, $val);\n";
-    }
-    else
-    {
-      print "/* item $item */ tr($val);\n";
-    }
+      print infoblock() . "trc($1, $val);\n";
+    }
+    else
+    {
+      print infoblock() . "tr($val);\n";
+    }
+  }
+  if($line =~ /<chunk\s+id=(".*?")/)
+  {
+    $chunk = fix($1);
   }
   elsif($line =~ /<group.*\s+name=(".*?")/)
@@ -58,14 +73,14 @@
     if($line =~ /name_context=(".*?")/)
     {
-      print "/* group $group */ trc($1,$gr);\n";
-    }
-    else
-    {
-      print "/* group $group */ tr($gr);\n";
+      print infoblock() . "trc($1,$gr);\n";
+    }
+    else
+    {
+      print infoblock() . "tr($gr);\n";
     }
   }
   elsif($line =~ /<label.*\s+text=" "/)
   {
-    print "/* item $item empty label */\n";
+    print infoblock("empty label") . "\n";
   }
   elsif($line =~ /<label.*\s+text=(".*?")/)
@@ -74,9 +89,9 @@
     if($line =~ /text_context=(".*?")/)
     {
-      print "/* item $item label $text */ trc($1,$text);\n";
-    }
-    else
-    {
-      print "/* item $item label $text */ tr($text);\n";
+      print infoblock("label $text") ."trc($1,$text);\n";
+    }
+    else
+    {
+      print infoblock("label $text") . "tr($text);\n";
     }
   }
@@ -86,9 +101,9 @@
     if($line =~ /text_context=(".*?")/)
     {
-      print "/* item $item text $n */ trc($1,$n);\n";
-    }
-    else
-    {
-      print "/* item $item text $n */ tr($n);\n";
+      print infoblock("text $n") . "trc($1,$n);\n";
+    }
+    else
+    {
+      print infoblock("text $n") . "tr($n);\n";
     }
   }
@@ -98,9 +113,9 @@
     if($line =~ /text_context=(".*?")/)
     {
-      print "/* item $item check $n */ trc($1,$n);\n";
-    }
-    else
-    {
-      print "/* item $item check $n */ tr($n);\n";
+      print infoblock("check $n") . "trc($1,$n);\n";
+    }
+    else
+    {
+      print infoblock("check $n") . "tr($n);\n";
     }
   }
@@ -110,9 +125,9 @@
     if($line =~ /text_context=(".*?")/)
     {
-      print "/* item $item role $n */ trc($1,$n);\n";
-    }
-    else
-    {
-      print "/* item $item role $n */ tr($n);\n";
+      print infoblock("role $n") . "trc($1,$n);\n";
+    }
+    else
+    {
+      print infoblock("role $n") . "tr($n);\n";
     }
   }
@@ -122,9 +137,9 @@
     if($line =~ /text_context=(".*?")/)
     {
-      print "/* item $item optional $n */ trc($1,$n);\n";
-    }
-    else
-    {
-      print "/* item $item optional $n */ tr($n);\n";
+      print infoblock("optional $n") . "trc($1,$n);\n";
+    }
+    else
+    {
+      print infoblock("optional $n") . "tr($n);\n";
     }
   }
@@ -137,5 +152,5 @@
     # text
     my $tctx = ($line =~ /text_context=(".*?")/) ? $1 : undef;
-    print "/* item $item $type $n */" . ($tctx ? " trc($tctx, $n);" : " tr($n);");
+    print infoblock("$type $n") . ($tctx ? " trc($tctx, $n);" : " tr($n);");
     # display_values / values
     my $sp = ($line =~ /delimiter="(.*?)"/) ? $1 : ($type eq "combo" ? ",":";");
@@ -149,5 +164,5 @@
         next if $val =~ /^[0-9-]+$/; # search for non-numbers
         $val = fix($val);
-        print "/* item $item $type $n display value */" . ($vctx ? " trc($vctx, \"$val\");" : " tr(\"$val\");");
+        print infoblock("$type $n display value") . ($vctx ? " trc($vctx, \"$val\");" : " tr(\"$val\");");
       }
     }
@@ -161,15 +176,15 @@
     {
       my $val = fix($1);
-      print "/* item $item $combo_type $combo_n entry $value display value */" . ($vctxi ? " trc($vctxi, $val);" : " tr($val);");
+      print infoblock("$combo_type $combo_n entry $value display value") . ($vctxi ? " trc($vctxi, $val);" : " tr($val);");
     }
     else
     {
       my $val = fix($value);
-      print "/* item $item $combo_type $combo_n entry $value display value */" . ($vctxi ? " trc($vctxi, $val);" : " tr($val);");
+      print infoblock("$combo_type $combo_n entry $value display value") . ($vctxi ? " trc($vctxi, $val);" : " tr($val);");
     }
     if($line =~ /short_description=(".*?")/)
     {
       my $val = fix($1);
-      print "/* item $item $combo_type $combo_n entry $value short description */ tr($val);";
+      print infoblock("$combo_type $combo_n entry $value short description") . "tr($val);";
     }
     print "\n";
@@ -184,4 +199,8 @@
     $item = "";
     print "\n";
+  }
+  elsif($line =~ /<\/chunk>/)
+  {
+    $chunk = "";
   }
   elsif($line =~ /<\/(combo|multiselect)/)
