Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 1755)
@@ -472,22 +472,4 @@
     }
 
-    static public String getLanguageCodeU()
-    {
-        String languageCode = getLanguageCode();
-        if(languageCode.equals("en"))
-            return "";
-        return languageCode.substring(0,1).toUpperCase() + languageCode.substring(1) + ":";
-    }
-    static public String getLanguageCode()
-    {
-        String full = Locale.getDefault().toString();
-        if (full.equals("iw_IL"))
-            return "he";
-        /* list of non-single codes supported by josm */
-        else if (full.equals("en_GB"))
-            return full;
-        return Locale.getDefault().getLanguage();
-    }
-
     static public void saveGuiGeometry() {
         // save the current window geometry
Index: trunk/src/org/openstreetmap/josm/actions/AboutAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 1755)
@@ -31,4 +31,5 @@
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.LanguageInfo;
 import org.openstreetmap.josm.tools.UrlLabel;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -91,5 +92,5 @@
     static public void setUserAgent() {
         Properties sysProp = System.getProperties();
-        sysProp.put("http.agent", "JOSM/1.5 ("+(version.equals(tr("UNKNOWN"))?"UNKNOWN":version)+" "+Main.getLanguageCode()+")");
+        sysProp.put("http.agent", "JOSM/1.5 ("+(version.equals(tr("UNKNOWN"))?"UNKNOWN":version)+" "+LanguageInfo.getLanguageCode()+")");
         System.setProperties(sysProp);
     }
Index: trunk/src/org/openstreetmap/josm/actions/HelpAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/actions/HelpAction.java	(revision 1755)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.LanguageInfo;
 import org.openstreetmap.josm.tools.OpenBrowser;
 import org.openstreetmap.josm.tools.WikiReader;
@@ -46,5 +47,5 @@
     }
 
-    private String languageCode = Main.getLanguageCodeU();
+    private String languageCode = LanguageInfo.getLanguageCodeWiki();
     private JFrame helpBrowser = new JFrame(tr("JOSM Online Help"));
     private String baseurl = Main.pref.get("help.baseurl", "http://josm.openstreetmap.de");
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1755)
@@ -40,4 +40,5 @@
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.LanguageInfo;
 
 public class MapPaintVisitor extends SimplePaintVisitor {
@@ -1276,5 +1277,5 @@
         leftHandTraffic = Main.pref.getBoolean("mappaint.lefthandtraffic",false);
         orderFont = new Font(Main.pref.get("mappaint.font","Helvetica"), Font.PLAIN, Main.pref.getInteger("mappaint.fontsize", 8));
-        String[] names = {"name:"+Main.getLanguageCode(), "name", "int_name", "ref", "operator", "brand","addr:housenumber"};
+        String[] names = {"name:"+LanguageInfo.getLanguageCode(), "name", "int_name", "ref", "operator", "brand","addr:housenumber"};
         regionalNameOrder = Main.pref.getCollection("mappaint.nameOrder", Arrays.asList(names));
         minEN = nc.getEastNorth(0,nc.getHeight()-1);
Index: trunk/src/org/openstreetmap/josm/gui/GettingStarted.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 1755)
@@ -26,4 +26,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.io.CacheCustomContent;
+import org.openstreetmap.josm.tools.LanguageInfo;
 import org.openstreetmap.josm.tools.OpenBrowser;
 import org.openstreetmap.josm.tools.WikiReader;
@@ -61,5 +62,5 @@
 
         final private int myVersion = AboutAction.getVersionNumber();
-        final private String myLang = Main.getLanguageCodeU();
+        final private String myLang = LanguageInfo.getLanguageCodeWiki();
 
         /**
Index: trunk/src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/gui/download/SlippyMapChooser.java	(revision 1755)
@@ -259,5 +259,5 @@
 
     public void toggleMapSource(int mapSource) {
-        this.tileCache = new MemoryTileCache();
+        this.tileController.setTileCache(new MemoryTileCache());
         if (mapSource == SourceButton.MAPNIK) {
             this.setTileSource(sources[0]);
Index: trunk/src/org/openstreetmap/josm/gui/preferences/StyleSources.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/StyleSources.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/StyleSources.java	(revision 1755)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.io.MirroredInputStream;
 import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.LanguageInfo;
 
 public class StyleSources extends JPanel {
@@ -282,5 +283,5 @@
     {
         ((DefaultListModel)sourcesDefaults.getModel()).removeAllElements();
-        String lang = Main.getLanguageCode()+"_";
+        String lang = LanguageInfo.getLanguageCodeManifest();
         try
         {
Index: trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 1755)
@@ -21,4 +21,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.LanguageInfo;
 
 /**
@@ -90,5 +91,5 @@
     private void scanManifest(Manifest manifest)
     {
-        String lang = Main.getLanguageCode()+"_";
+        String lang = LanguageInfo.getLanguageCodeManifest();
         Attributes attr = manifest.getMainAttributes();
         className = attr.getValue("Plugin-Class");
Index: trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java	(revision 1755)
+++ trunk/src/org/openstreetmap/josm/tools/LanguageInfo.java	(revision 1755)
@@ -0,0 +1,34 @@
+// License: GPL. Copyright 2007 by Immanuel Scholz and others
+package org.openstreetmap.josm.tools;
+
+import java.util.Locale;
+
+public class LanguageInfo {
+    static public String getLanguageCodeWiki()
+    {
+        String languageCode = getLanguageCode();
+        if(languageCode.equals("en"))
+            return "";
+        else if(languageCode.equals("pt_BR"))
+            return "Pt:";
+        return languageCode.substring(0,1).toUpperCase() + languageCode.substring(1) + ":";
+    }
+    static public String getLanguageCode()
+    {
+        String full = Locale.getDefault().toString();
+        if (full.equals("iw_IL"))
+            return "he";
+        /* list of non-single codes supported by josm */
+        else if (full.equals("en_GB"))
+            return full;
+        return Locale.getDefault().getLanguage();
+    }
+    static public String getLanguageCodeXML()
+    {
+        return getLanguageCode()+".";
+    }
+    static public String getLanguageCodeManifest()
+    {
+        return getLanguageCode()+"_";
+    }
+}
Index: trunk/src/org/openstreetmap/josm/tools/WikiReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/WikiReader.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/tools/WikiReader.java	(revision 1755)
@@ -8,4 +8,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.LanguageInfo;
 
 /**
@@ -43,5 +44,5 @@
 
     public String readLang(String text) {
-        String languageCode = Main.getLanguageCodeU();
+        String languageCode = LanguageInfo.getLanguageCodeWiki();
         String url = baseurl + "/wiki/"+languageCode+text;
         String res = "";
Index: trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 1754)
+++ trunk/src/org/openstreetmap/josm/tools/XmlObjectParser.java	(revision 1755)
@@ -21,5 +21,5 @@
 import org.xml.sax.helpers.DefaultHandler;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.tools.LanguageInfo;
 
 /**
@@ -30,5 +30,5 @@
 public class XmlObjectParser implements Iterable<Object> {
 
-    public static final String lang = Main.getLanguageCode()+".";
+    public static final String lang = LanguageInfo.getLanguageCodeXML();
     public static class Uniform<T> implements Iterable<T>{
         private Iterator<Object> iterator;
