Index: trunk/src/org/openstreetmap/josm/actions/AboutAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 1801)
+++ trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 1802)
@@ -127,4 +127,5 @@
         JTextArea readme = loadFile(Main.class.getResource("/README"), false);
         JTextArea contribution = loadFile(Main.class.getResource("/CONTRIBUTION"), false);
+        JTextArea license = loadFile(Main.class.getResource("/LICENSE"), false);
 
         JPanel info = new JPanel(new GridBagLayout());
@@ -148,4 +149,5 @@
         about.addTab(tr("Revision"), createScrollPane(revision));
         about.addTab(tr("Contribution"), createScrollPane(contribution));
+        about.addTab(tr("License"), createScrollPane(license));
         about.addTab(tr("Plugins"), new JScrollPane(PluginHandler.getInfoPanel()));
 
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1801)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1802)
@@ -3,5 +3,4 @@
 package org.openstreetmap.josm.gui;
 
-import static org.openstreetmap.josm.tools.I18n.i18n;
 import static org.openstreetmap.josm.tools.I18n.tr;
 
@@ -15,7 +14,5 @@
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
-import java.util.MissingResourceException;
 
 import javax.swing.JFrame;
@@ -25,5 +22,5 @@
 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.xnap.commons.i18n.I18nFactory;
+import org.openstreetmap.josm.tools.I18n;
 
 /**
@@ -63,7 +60,5 @@
      */
     public static void main(final String[] argArray) {
-        /* try initial language settings, may be changed later again */
-        try { i18n = I18nFactory.getI18n(MainApplication.class); }
-        catch (MissingResourceException ex) { Locale.setDefault(Locale.ENGLISH);}
+        I18n.init();
 
         Thread.setDefaultUncaughtExceptionHandler(new BugReportExceptionHandler());
@@ -92,36 +87,9 @@
         Main.pref.init(args.containsKey("reset-preferences"));
 
-        String localeName = null; // The locale to use
-
         // Check if passed as parameter
         if (args.containsKey("language"))
-            localeName = (String)(args.get("language").toArray()[0]);
-
-        if (localeName == null)
-            localeName = Main.pref.get("language", null);
-
-        if (localeName != null) {
-            Locale l;
-            Locale d = Locale.getDefault();
-            if (localeName.equals("he")) localeName = "iw_IL";
-            int i = localeName.indexOf('_');
-            if (i > 0) {
-                l = new Locale(localeName.substring(0, i), localeName.substring(i + 1));
-            } else {
-                l = new Locale(localeName);
-            }
-            try {
-                Locale.setDefault(l);
-                i18n = I18nFactory.getI18n(MainApplication.class);
-            } catch (MissingResourceException ex) {
-                if (!l.getLanguage().equals("en")) {
-                    System.out.println(tr("Unable to find translation for the locale {0}. Reverting to {1}.",
-                    l.getDisplayName(), d.getDisplayName()));
-                    Locale.setDefault(d);
-                } else {
-                    i18n = null;
-                }
-            }
-        }
+            I18n.set((String)(args.get("language").toArray()[0]));
+        else
+            I18n.set(Main.pref.get("language", null));
 
         if (argList.contains("--help") || argList.contains("-?") || argList.contains("-h")) {
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 1801)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 1802)
@@ -7,5 +7,8 @@
 import java.util.Locale;
 import java.util.LinkedList;
+import java.util.MissingResourceException;
 import java.util.Vector;
+import org.openstreetmap.josm.gui.MainApplication;
+import org.xnap.commons.i18n.I18nFactory;
 
 /**
@@ -89,3 +92,37 @@
         return l;
     }
+
+    public static void init()
+    {
+        /* try initial language settings, may be changed later again */
+        try { i18n = I18nFactory.getI18n(MainApplication.class); }
+        catch (MissingResourceException ex) { Locale.setDefault(Locale.ENGLISH);}
+    }
+
+    public static void set(String localeName)
+    {
+        if (localeName != null) {
+            Locale l;
+            Locale d = Locale.getDefault();
+            if (localeName.equals("he")) localeName = "iw_IL";
+            int i = localeName.indexOf('_');
+            if (i > 0) {
+                l = new Locale(localeName.substring(0, i), localeName.substring(i + 1));
+            } else {
+                l = new Locale(localeName);
+            }
+            try {
+                Locale.setDefault(l);
+                i18n = I18nFactory.getI18n(MainApplication.class);
+            } catch (MissingResourceException ex) {
+                if (!l.getLanguage().equals("en")) {
+                    System.out.println(tr("Unable to find translation for the locale {0}. Reverting to {1}.",
+                    l.getDisplayName(), d.getDisplayName()));
+                    Locale.setDefault(d);
+                } else {
+                    i18n = null;
+                }
+            }
+        }
+    }
 }
