Index: applications/editors/josm/i18n/build.xml
===================================================================
--- applications/editors/josm/i18n/build.xml	(revision 31084)
+++ applications/editors/josm/i18n/build.xml	(revision 31086)
@@ -97,5 +97,4 @@
     </target>
     <target name="buildcore" depends="po/josm.pot,init">
-        <gettext-merge keysFile="josm.pot" poDirectory="po"/>
         <antcall target="coretrans"/>
     </target>
Index: applications/editors/josm/i18n/i18n.pl
===================================================================
--- applications/editors/josm/i18n/i18n.pl	(revision 31084)
+++ applications/editors/josm/i18n/i18n.pl	(revision 31086)
@@ -8,4 +8,5 @@
 my $waswarn = 0;
 my $maxcount = 0;
+my $lang_pattern = '(.._..|...?|ca\@valencia)';
 
 main();
@@ -29,5 +30,5 @@
 
     my $cnt = -1; # don't count translators info
-    if($file =~ /\/(.._..)\.po$/ || $file =~ /\/(...?)\.po$/)
+    if($file =~ /\/$lang_pattern\.po$/)
     {
       my $l = $1;
@@ -261,6 +262,5 @@
     my $la;
     my $cnt = 0;
-    if($file =~ /[-_](.._..)\.lang$/ || $file =~ /^(?:.*\/)?(.._..)\.lang$/ ||
-    $file =~ /[-_](...?)\.lang$/ || $file =~ /^(?:.*\/)?(...?)\.lang$/)
+    if($file =~ /[-_]$lang_pattern\.lang$/ || $file =~ /^(?:.*\/)?$lang_pattern\.lang$/)
     {
       $la = $1;
Index: applications/editors/josm/i18n/launchpad.pl
===================================================================
--- applications/editors/josm/i18n/launchpad.pl	(revision 31084)
+++ applications/editors/josm/i18n/launchpad.pl	(revision 31086)
@@ -16,5 +16,5 @@
 # list of supported languages
 my %lang = map {$_ => 1} (
-"ast", "bg", "ca", "cs", "da", "de", "el", "en_AU", "en_GB",
+"ast", "bg", "ca", "ca\@valencia", "cs", "da", "de", "el", "en_AU", "en_GB",
 "es", "et", "fi", "fr", "gl", "hu", "id",
 "it", "ja", "km", "lt", "nl", "pl", "pt", "pt_BR", "ru", "sk",
@@ -157,8 +157,8 @@
     foreach my $name (split("\n", `find $path -name "*.po"`))
     {
-        $name =~ /([a-zA-Z_]+)\.po/;
+        $name =~ /([a-zA-Z_@]+)\.po/;
         if($lang{$1})
         {
-            system "cp -v $name po/$1.po";
+            system("cp", "-v", $name, "po/$1.po");
         }
         elsif($cleanall)
