Index: trunk/src/org/openstreetmap/josm/gui/preferences/display/LanguagePreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/display/LanguagePreference.java	(revision 8206)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/display/LanguagePreference.java	(revision 8207)
@@ -3,4 +3,5 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trc;
 
 import java.awt.Component;
@@ -118,6 +119,10 @@
                 int index, boolean isSelected, boolean cellHasFocus) {
             return dispatch.getListCellRendererComponent(list,
-                    l == null ? tr("Default (Auto determined)") : l.getDisplayName(l),
-                            index, isSelected, cellHasFocus);
+                    l == null
+                            ? tr("Default (Auto determined)")
+                            : "ca__valencia".equals(l.toString())
+                            ? trc("language", "Valencian")
+                            : l.getDisplayName(l),
+                    index, isSelected, cellHasFocus);
         }
     }
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 8206)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 8207)
@@ -400,4 +400,5 @@
         languages.put("bg", PluralMode.MODE_NOTONE);
         languages.put("ca", PluralMode.MODE_NOTONE);
+        languages.put("ca@valencia", PluralMode.MODE_NOTONE);
         languages.put("cs", PluralMode.MODE_CS);
         languages.put("da", PluralMode.MODE_NOTONE);
Index: trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java	(revision 8206)
+++ trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java	(revision 8207)
@@ -91,4 +91,6 @@
         else if ("in".equals(full))
             return "id";
+        else if ("ca__valencia".equals(full))
+            return "ca@valencia";
         else if (I18n.hasCode(full)) // catch all non-single codes
             return full;
@@ -107,4 +109,7 @@
      */
     public static Locale getLocale(String localeName) {
+        if ("ca@valencia".equals(localeName) || "ca__valencia".equals(localeName)) {
+            return new Locale("ca", "", "valencia");
+        }
         if ("he".equals(localeName)) {
             localeName = "iw_IL";
