Index: trunk/build.xml
===================================================================
--- trunk/build.xml	(revision 1057)
+++ trunk/build.xml	(revision 1058)
@@ -19,4 +19,11 @@
 			<fileset refid="josm_required_libs" />
 		</unjar>
+    
+    <!-- translation -->
+    <unjar dest="build">
+      <fileset dir="lib">
+        <include name="josm-translation.jar" />
+      </fileset>
+    </unjar>
 
 		<!-- images -->
Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 1057)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 1058)
@@ -219,5 +219,5 @@
 	 * early plugins are loaded (before constructor).
 	 */
-	public static void loadPlugins(boolean early, String lang) {
+	public static void loadPlugins(boolean early) {
 		List<String> plugins = new LinkedList<String>();
 		if (Main.pref.hasKey("plugins"))
@@ -226,5 +226,5 @@
 			plugins.addAll(Arrays.asList(System.getProperty("josm.plugins").split(",")));
 
-		String [] oldplugins = new String[]{"mappaint", "unglueplugin"};
+		String [] oldplugins = new String[] {"mappaint", "unglueplugin", "lang-de","lang-en_GB","lang-fr","lang-it","lang-pl","lang-ro","lang-ru"};
 		for(String p : oldplugins)
 		{
@@ -235,20 +235,8 @@
 			}
 		}
-		if(lang != null)
-		{
-			for(String p : plugins)
-			{
-				if(p.startsWith("lang-"))
-				{
-					plugins.remove(p);
-					break;
-				}
-			}
-			if(!lang.equals("en"))
-				plugins.add("lang-"+lang);
-		}
 
 		if (plugins.isEmpty())
 			return;
+		
 		SortedMap<Integer, Collection<PluginInformation>> p = new TreeMap<Integer, Collection<PluginInformation>>();
 		for (String pluginName : plugins) {
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1057)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1058)
@@ -3,5 +3,8 @@
 package org.openstreetmap.josm.gui;
 
+import org.xnap.commons.i18n.I18nFactory;
+import static org.openstreetmap.josm.tools.I18n.i18n;
 import static org.openstreetmap.josm.tools.I18n.tr;
+
 
 import java.awt.EventQueue;
@@ -16,4 +19,5 @@
 import java.util.LinkedList;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 
@@ -25,4 +29,5 @@
 import org.openstreetmap.josm.tools.BugReportExceptionHandler;
 import org.openstreetmap.josm.tools.ImageProvider;
+
 /**
  * Main window class application.
@@ -159,9 +164,22 @@
 			Main.pref.save();
 		}
+		
+
+		String localeName = null; //The locale to use
+        
+		//Check if passed as parameter
+		if(args.containsKey("language")) 
+		    localeName = (String)(args.get("language").toArray()[0]);
+		
+		//TODO: Check preferences for language
+        
+		//If override then set new default locale - otherwise, override
+        if (localeName != null) {
+            Locale.setDefault(new Locale(localeName));
+        }
+        
+        i18n = I18nFactory.getI18n(MainApplication.class);
+		
 		SplashScreen splash = new SplashScreen(Main.pref.getBoolean("draw.splashscreen", true));
-
-		String language = null;
-		if(args.containsKey("language"))
-			language = (String)(args.get("language").toArray()[0]);
 
 		splash.setStatus(tr("Activating updated plugins"));
@@ -174,5 +192,5 @@
 		// load the early plugins
 		splash.setStatus(tr("Loading early plugins"));
-		Main.loadPlugins(true, language);
+		Main.loadPlugins(true);
 
 		splash.setStatus(tr("Setting defaults"));
@@ -183,5 +201,5 @@
 		final Main main = new MainApplication(mainFrame);
 		splash.setStatus(tr("Loading plugins"));
-		Main.loadPlugins(false, null);
+		Main.loadPlugins(false);
 		toolbar.refreshToolbarControl();
 
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 1057)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 1058)
@@ -35,5 +35,5 @@
 		if (i18n == null)
 			return n == 1 ? tr(text, objects) : tr(pluralText, objects);
-			return i18n.trn(text, pluralText, n, objects);
+		return i18n.trn(text, pluralText, n, objects);
 	}
 
@@ -41,5 +41,5 @@
 		if (i18n == null)
 			return n == 1 ? tr(text) : tr(pluralText);
-			return i18n.trn(text, pluralText, n);
+		return i18n.trn(text, pluralText, n);
 	}
 }
