Index: /applications/editors/josm/annotation_presets/mapfeatures.xml
===================================================================
--- /applications/editors/josm/annotation_presets/mapfeatures.xml	(revision 2549)
+++ /applications/editors/josm/annotation_presets/mapfeatures.xml	(revision 2549)
@@ -0,0 +1,148 @@
+<annotations>
+  <item name="Highway" type="way">
+    <label text="Inserting a highway" />
+    <text key="name" text="Highway (e.g. M3)" />
+    <combo key="highway" text="Highway type" values="unclassified,residential,primary,secondary,motorway,motorway_link,trunk,trunk_link,primary,primary_link,secondary,unclassified,track,residential,service,bridleway,cyclway,footway,steps" />
+  </item>
+
+  <item name="Junction">
+    <label text="Inserting a junction" />
+    <text key="name" text="Junction name" />
+    <combo key="junction" text="Junction type" values="roundabout" />
+  </item>
+
+  <item name="Highway nodes" type="node">
+    <label text="Highway node types" />
+    <text key="name" text="Node name" />
+    <combo key="highway" text="Highway node type" values="mini_roundabout,stop,traffic_signals,crossing,gate,stile,cattle_grid,toll_booth,incline,incline_steep,bridge,viaduct,motorway_junction,services,ford,bus_stop " />
+  </item>
+
+  <item name="Cycleway" type="way">
+    <label text="Inserting a cycleway" />
+    <text key="name" text="Cycleway name" />
+    <combo key="cycleway" text="Cycleway type" values="lane,track,opposite_lane,opposite_track,opposite" />
+  </item>
+
+  <item name="Waterway" type="way">
+    <label text="Inserting a waterway" />
+    <text key="name" text="Waterway name" />
+    <combo key="waterway" text="Waterway type" values="river,canal,drain" />
+  </item>
+
+  <item name="Waterway nodes" type="node">
+    <label text="Inserting a waterway node" />
+    <text key="name" text="Waterway node name" />
+    <combo key="waterway" text="Waterway node type" values="lock_gate,water_point,turning_point,aqueduct,boatyard,waste_disposal,mooring,weir" />
+  </item>
+
+  <item name="Railway" type="way">
+    <label text="Inserting a railway" />
+    <text key="name" text="Railway name" />
+    <combo key="railway" text="Railway type" values="rail,tram,light_rail,subway,preserved,disused,abandoned,narrow_gauge" />
+  </item>
+
+  <item name="Railway nodes" type="node">
+    <label text="Inserting a railway node" />
+    <text key="name" text="Railway node name" />
+    <combo key="railway" text="Railway node type" values="station,halt,viaduct,crossing" />
+  </item>
+
+  <item name="Aeroway" type="way">
+    <label text="Inserting an aeroway" />
+    <text key="name" text="Aeroway name" />
+    <combo key="aeroway" text="Aeroway type" values="runway,taxiway" />
+  </item>
+
+  <item name="Aeroway nodes" type="node">
+    <label text="Inserting an aeroway node" />
+    <text key="name" text="Aeroway node name" />
+    <combo key="aeroway" text="Aeroway node type" values="aerodrome,terminal" />
+  </item>
+
+  <item name="Aerialway" type="way">
+    <label text="Inserting an aerialway" />
+    <text key="name" text="Aerialway name" />
+    <combo key="aerialway" text="Aerialway type" values="cable_car,chair_lift,drag_lift,overhead_lines" />
+  </item>
+
+  <item name="Man made" type="node">
+    <label text="Inserting a man made node" />
+    <text key="name" text="Man made node name" />
+    <combo key="man_made" text="Man made type" values="works,beacon,survey_point,power_wind,power_hydro,power_fossil,power_nuclear,tower,water_tower,gasometer,reservoir_covered,lighthouse" />
+  </item>
+
+  <item name="Man made area" type="way">
+    <label text="Inserting a man made area" />
+    <text key="name" text="Man made area name" />
+    <combo key="man_made" text="Man made area type" values="reservoir_covered" />
+  </item>
+
+  <item name="Leisure">
+    <label text="Inserting a leisure node/area" />
+    <text key="name" text="Leisure node/area name" />
+    <combo key="leisure" text="Leisure node/area type" values="sports_centre,golf_course,stadium,marina,track,pitch,water_park,slipway,fishing,nature_reserve,park,garden,common" />
+  </item>
+
+  <item name="Amenity">
+    <label text="Inserting an amenity" />
+    <text key="name" text="Amenity name" />
+    <combo key="amenity" text="Amenity type" values="pub,parking,fuel,telephone,toilets,public_building,place_of_worship,grave_yard,post_office,post_box,school,supermarket,hospital,library,police,fire_station,biergarten,restaurant,fast_food,bus_station" />
+  </item>
+
+  <item name="Tourism">
+    <label text="Inserting a tourism node/area" />
+    <text key="name" text="Tourism node/area name" />
+    <combo key="tourism" text="Tourism node/area type" values="information,camp_site,caravan_site,picnic_site,viewpoint,theme_park,hotel,motel,guest_house,hostel,attraction" />
+  </item>
+
+  <item name="Historic">
+    <label text="Inserting an historic node/area" />
+    <text key="name" text="Historic node/area name" />
+    <combo key="historic" text="Historic node/area type" values="castle,monument,museum,archaeological_site,icon,ruins" />
+  </item>
+
+  <item name="Land use">
+    <label text="Inserting a land use node/area" />
+    <text key="name" text="Land use node/area name" />
+    <combo key="landuse" text="Land use node/area type" values="farm,quarry,landfill,basin,reservoir,forest,allotments,residential,retail,commercial,industrial,brownfield,greenfield,cemetery" />
+  </item>
+
+  <item name="Military">
+    <label text="Inserting a military node/area" />
+    <text key="name" text="Military node/area name" />
+    <combo key="military" text="Military node/area type" values="danger_area,range,airfield,bunker,barracks" />
+  </item>
+
+  <item name="Natural">
+    <label text="Inserting a natural node/segment/area" />
+    <text key="name" text="Natural node/segment/area name" />
+    <combo key="natural" text="Natural node/segment/area type" values="spring,peak,cliff,scree,scrub,fell,heath,wood,marsh,water,coastline,mud,beach,bay" />
+  </item>
+
+  <item name="Route" type="way">
+    <label text="Inserting a route linear" />
+    <text key="name" text="Route linear name" />
+    <combo key="route" text="Route linear type" values="bus,ferry,flight,ncn,subsea,ski,tour,pub_crawl" />
+  </item>
+
+  <item name="Boundary" type="way">
+    <label text="Inserting a boundary linear" />
+    <text key="name" text="Boundary linear name" />
+    <combo key="boundary" text="Boundary linear type" values="national,administrative,civil,political,national_park" />
+  </item>
+
+  <item name="Sport">
+    <label text="Inserting a sport node/area" />
+    <text key="name" text="Sport node/area name" />
+    <combo key="sport" text="Sport node/area type" values="multi,10pin,athletics,baseball,basketball,bowls,climbing,cricket,cricket_nets,croquet,cycling,dog_racing,football,golf,gymnastics,hockey,horse_racing,motor,racquet,rugby,skating,skateboard,soccer,swimming,skiing,table_tennis,tennis" />
+  </item>
+
+  <item name="Abutters" type="way">
+    <label text="Inserting an abutter linear" />
+    <text key="name" text="Abutter linear name" />
+    <combo key="abutter" text=" type" values="residential,retail,industrial,commercial,mixed" />
+  </item>
+
+
+</annotations>
+
Index: /applications/editors/josm/annotation_presets/presets.pre
===================================================================
--- /applications/editors/josm/annotation_presets/presets.pre	(revision 2549)
+++ /applications/editors/josm/annotation_presets/presets.pre	(revision 2549)
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<annotations>
+<item name="Highway">
+	<label text="highway"/>
+	<combo key="highway" text="Type" values="unclassified,residential,service,unsurfaced,secondary,secondary_link,primary,primary_link,trunk,trunk_link,motorway,motorway_link"/>
+	<check key="oneway" text="Oneway?" values="1,-1"/>
+</item>
+<item name="Road Number">
+	<label text="Road Number"/>
+	<text key="ref" text="Number"/>
+	<combo key="source:ref" text="Source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:ref" text="Source url"/>
+</item>
+<item name="Road Name">
+	<label text="Road Name"/>
+	<text key="name" text="Name"/>
+	<combo key="source:name" text="Source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:name" text="Source url"/>
+</item>
+<item name="Roundabout">
+	<label text="Roundabout"/>
+	<key key="junction" value="roundabout"/>
+	<combo key="highway" text="Type" values="secondary,primary,trunk,motorway_link,residential,unclassified,service"/>
+</item>
+<item name="Footway">
+	<label text="Footway"/>
+	<combo key="highway" text="Type" values="footway,steps,cycleway,bridleway,byway"/>
+</item>
+<item name="Place">
+	<label text="Place"/>
+	<combo key="place" text="Type" values="hamlet,village,town,city,county,state"/>
+	<text key="name" text="Name"/>
+	<combo key="source:name" text="Name source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:name" text="Name source url"/>
+</item>
+<item name="Gate">
+	<label text="Gate"/>
+	<key key="highway" value="gate"/>
+</item>
+<item name="Parking">
+	<label text="Parking"/>
+	<key key="amenity" value="parking"/>
+</item>
+<item name="Telephone">
+	<label text="Telephone"/>
+	<key key="amenity" value="telephone"/>
+	<text key="post_code" text="Post code"/>
+</item>
+<item name="Post Box">
+	<label text="Post Box"/>
+	<key key="amenity" value="post_box"/>
+	<text key="ref" text="Letter box number"/>
+</item>
+<item name="Church">
+	<label text="Church"/>
+	<key key="amenity" value="place_of_worship"/>
+	<combo key="denomination" text="Type" values="church_of_england,catholic,muslim,hindu,buddist,sikh,jewish,&lt;other - please specify&gt;"/>
+	<text key="name" text="Name"/>
+	<combo key="source:name" text="Name source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:name" text="Name source url"/>
+</item>
+<item name="Waterway">
+	<label text="Waterway"/>
+	<combo key="waterway" text="Type" values="river,canal,drain,"/>
+	<text key="name" text="Name"/>
+	<combo key="source:name" text="Name source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:name" text="Name source url"/>
+</item>
+<item name="Railway">
+	<label text="Railway"/>
+	<combo key="railway" text="Type" values="rail,tram,light_rail,subway,preserved,disused,abandoned,narrow_gauge"/>
+	<text key="name" text="Name"/>
+	<combo key="source:name" text="Name source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:name" text="Name source url"/>
+</item>
+<item name="Railway Feature">
+	<label text="Railway Stations, halts, etc"/>
+	<combo key="railway" text="Type" values="station,halt,viaduct,crossing"/>
+	<text key="name" text="Name"/>
+	<combo key="source:name" text="Name source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:name" text="Name source url"/>
+</item>
+<item name="Data Source">
+	<label text="Way/Segment/Node Data Source, if not GPS trackpoints"/>
+	<combo key="source" text="Name source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref" text="Source url"/>
+</item>
+<item name="Street Name Source">
+	<label text="Street Name Source."/>
+	<combo key="source:name" text="Name source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:name" text="Name source url"/>
+</item>
+<item name="Road Number Source">
+	<label text="Road Number Source."/>
+	<combo key="source:ref" text="Number source" values="landsat,photograph,local knowledge,common knowledge,dictaphone"/>
+	<text key="source_ref:ref" text="Number source url"/>
+</item>
+<item name="Power Line">
+	<label text="Power Line"/>
+	<key key="power" value="line"/>
+	<text key="voltage" text="Voltage"/>
+</item>
+<item name="Pylon">
+	<label text="Power Line Pylon"/>
+	<key key="power" value="tower"/>
+	<text key="ref" text="Tower Id"/>
+</item>
+<item name="Layer">
+	<label text="Layer indicates whether a feature is above or below another feature"/>
+	<combo key="layer" text="Layer" values="-5,-4,-3,-2,-1,0,1,2,3,4,5"/>
+</item>
+</annotations>
Index: /applications/editors/josm/plugins/annotation-tester/.classpath
===================================================================
--- /applications/editors/josm/plugins/annotation-tester/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/annotation-tester/.classpath	(revision 2549)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry including="images/" kind="src" path=""/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/annotation-tester/.project
===================================================================
--- /applications/editors/josm/plugins/annotation-tester/.project	(revision 2549)
+++ /applications/editors/josm/plugins/annotation-tester/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>annotation-tester</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/annotation-tester/build.xml
===================================================================
--- /applications/editors/josm/plugins/annotation-tester/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/annotation-tester/build.xml	(revision 2549)
@@ -0,0 +1,14 @@
+<project name="annotation-tester" default="build" basedir=".">
+
+	<target name="build">
+		<jar destfile="${user.home}/.josm/plugins/annotation-tester.jar" basedir="bin">
+			<fileset dir="."><include name="images/*"/></fileset>
+			<manifest>
+				<attribute name="Main-Class" value="annotationtester.AnnotationTester" />
+				<attribute name="Plugin-Class" value="annotationtester.AnnotationTesterAction" />
+				<attribute name="Plugin-Description" value="Make the Annotation Preset Tester tool available in the help menu." />
+			</manifest>
+		</jar>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/annotation-tester/src/annotationtester/AnnotationTester.java
===================================================================
--- /applications/editors/josm/plugins/annotation-tester/src/annotationtester/AnnotationTester.java	(revision 2549)
+++ /applications/editors/josm/plugins/annotation-tester/src/annotationtester/AnnotationTester.java	(revision 2549)
@@ -0,0 +1,115 @@
+package annotationtester;
+
+import java.awt.BorderLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.Vector;
+
+import javax.swing.BorderFactory;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.gui.annotation.AnnotationCellRenderer;
+import org.openstreetmap.josm.gui.annotation.AnnotationPreset;
+import org.xml.sax.SAXException;
+
+public class AnnotationTester extends JFrame {
+
+	private JComboBox annotationPresets;
+	private final String[] args;
+	private JPanel annotationPanel = new JPanel(new BorderLayout());
+	private JPanel panel = new JPanel(new BorderLayout());
+
+	public void reload() {
+		Vector<AnnotationPreset> allPresets = new Vector<AnnotationPreset>();
+		for (String source : args) {
+			InputStream in = null;
+			try {
+				if (source.startsWith("http") || source.startsWith("ftp") || source.startsWith("file"))
+					in = new URL(source).openStream();
+				else if (source.startsWith("resource://"))
+					in = AnnotationTester.class.getResourceAsStream(source.substring("resource:/".length()));
+				else
+					in = new FileInputStream(source);
+				allPresets.addAll(AnnotationPreset.readAll(in));
+			} catch (IOException e) {
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(null, "Could not read annotation preset source: "+source);
+			} catch (SAXException e) {
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(null, "Error parsing "+source+": "+e.getMessage());
+			}
+
+			try {
+				if (in != null)
+					in.close();
+			} catch (IOException e) {
+			}
+		}
+		annotationPresets.setModel(new DefaultComboBoxModel(allPresets));
+	}
+
+	public void reselect() {
+		annotationPanel.removeAll();
+		AnnotationPreset preset = (AnnotationPreset)annotationPresets.getSelectedItem();
+		if (preset == null)
+			return;
+		JPanel p = preset.createPanel();
+		p.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+		if (p != null)
+			annotationPanel.add(p, BorderLayout.NORTH);
+		panel.validate();
+		panel.repaint();
+	}
+
+	public AnnotationTester(String[] args) {
+		super("Annotation Preset Tester");
+		this.args = args;
+		annotationPresets = new JComboBox();
+		annotationPresets.setRenderer(new AnnotationCellRenderer());
+		reload();
+
+		panel.add(annotationPresets, BorderLayout.NORTH);
+		panel.add(annotationPanel, BorderLayout.CENTER);
+		annotationPresets.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				reselect();
+			}
+		});
+		reselect();
+
+		JButton b = new JButton("Reload");
+		b.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				int i = annotationPresets.getSelectedIndex();
+				reload();
+				annotationPresets.setSelectedIndex(i);
+			}
+		});
+		panel.add(b, BorderLayout.SOUTH);
+
+		setContentPane(panel);
+		setSize(300,500);
+		setVisible(true);
+	}
+
+	public static void main(String[] args) {
+		if (args.length == 0) {
+			JFileChooser c = new JFileChooser();
+			if (c.showOpenDialog(null) != JFileChooser.APPROVE_OPTION)
+				return;
+			args = new String[]{c.getSelectedFile().getPath()};
+		}
+		JFrame f = new AnnotationTester(args);
+		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+	}
+}
Index: /applications/editors/josm/plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java
===================================================================
--- /applications/editors/josm/plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java	(revision 2549)
@@ -0,0 +1,34 @@
+package annotationtester;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+
+/**
+ * Fires up the annotation tester
+ * @author Immanuel.Scholz
+ */
+public class AnnotationTesterAction extends JosmAction {
+
+	public AnnotationTesterAction() {
+		super(tr("Annotation Preset Tester"), "annotation-tester", tr("Open the annotation preset test tool for previewing annotation preset dialogs."), KeyEvent.VK_A, KeyEvent.CTRL_DOWN_MASK | KeyEvent.ALT_DOWN_MASK, true);
+		Main.main.menu.helpMenu.addSeparator();
+		Main.main.menu.helpMenu.add(this);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		String annotationSources = Main.pref.get("annotation.sources");
+		if (annotationSources.equals("")) {
+			JOptionPane.showMessageDialog(Main.parent, tr("You have to specify annotation sources in the preferences first."));
+			return;
+		}
+		String[] args = annotationSources.split(";");
+		new AnnotationTester(args);
+	}
+}
Index: /applications/editors/josm/plugins/grid/build.xml
===================================================================
--- /applications/editors/josm/plugins/grid/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/grid/build.xml	(revision 2549)
@@ -0,0 +1,40 @@
+<project name="grid" default="build" basedir=".">
+
+	<!-- point to your JOSM directory -->
+	<property name="josm" location="../../../../editors/josm/dist/josm-custom.jar" />
+
+
+
+	<target name="init">
+		<mkdir dir="build"></mkdir>
+		<mkdir dir="dist"></mkdir>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="${josm}" debug="true" destdir="build">
+			<include name="**/*.java" />
+		</javac>
+	</target>
+
+	<target name="build" depends="compile">
+		<copy todir="build/images" >
+			<fileset dir="images" />
+		</copy>
+		<jar destfile="dist/grid.jar" basedir="build">
+			<manifest>
+				<attribute name="Plugin-Class" value="grid.GridPlugin" />
+				<attribute name="Plugin-Description" value="Provide a background layer that displays a map grid" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+		<delete dir="dist" />
+	</target>
+
+	<target name="install" depends="build">
+		<copy file="dist/grid.jar" todir="${user.home}/.josm/plugins"/>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/grid/src/grid/GridLayer.java
===================================================================
--- /applications/editors/josm/plugins/grid/src/grid/GridLayer.java	(revision 2549)
+++ /applications/editors/josm/plugins/grid/src/grid/GridLayer.java	(revision 2549)
@@ -0,0 +1,384 @@
+package grid;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.GridBagLayout;
+import java.awt.Color;
+import java.awt.Point;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Toolkit;
+import java.io.IOException;
+import java.text.NumberFormat;
+
+import java.awt.event.ActionEvent;
+import javax.swing.AbstractAction;
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JMenuItem;
+import javax.swing.JSeparator;
+import javax.swing.JColorChooser;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * This is a layer that draws a grid
+ */
+public class GridLayer extends Layer {
+	
+	private static Icon icon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(GridPlugin.class.getResource("/images/grid.png")));
+	private LatLon origin, pole;
+	private float gridunits;
+	private boolean drawLabels;
+	private Helmert gridtoworld; //worldtogrid;
+	private Color majcol = Color.RED;
+	public double a, b, c;
+    	public GridLayer(String url) {
+		super(url.indexOf('/') != -1 ? url.substring(url.indexOf('/')+1) : url);
+		origin = new LatLon(0.0,0.0);
+		pole = new LatLon(0.0,90.0);
+		drawLabels = true;
+		gridtoworld = new Helmert(0.0, 0.0, 0);
+		//worldtogrid = new Helmert(0.0, 0.0, 0);
+	}
+	
+    //	private void setGrid(LatLon origin, LatLon pole){
+    //	this.origin = origin;
+    //	this.pole = pole;
+		//need to check pole is perpendicular from origin;
+    //	}
+	private void setGrid(double a, double b, double c){
+		System.out.println("Setting grid to :" + a + ", " + b + ", " + c);
+		this.origin = origin;
+		this.pole = pole;
+		//need to chech pole is perpendicular from origin;
+		this.a=a;
+		this.b=b;
+		this.c=c;
+		gridtoworld = new Helmert(a, b, c);
+		System.out.println(new LatLon(10,10) + "->" + 
+				   gridtoworld.transform(new LatLon(10,10)) + "->" + 
+				   gridtoworld.inverseTransform(gridtoworld.transform(new LatLon(10,10))));
+		//worldtogrid = new Helmert(-a, -b, -c);
+	}
+
+	private void setUnits(float units){
+		gridunits = units;
+	}
+
+	private void setUnitsToLatLon(){
+		gridunits = 0;
+	}
+	
+
+	private void toggleLabels(){
+		drawLabels=!drawLabels;
+	}
+
+	private class toggleLabelsAction extends AbstractAction {
+		GridLayer layer;
+		public toggleLabelsAction(GridLayer layer) {
+			super("show labels");
+			this.layer = layer;
+		}
+		public void actionPerformed(ActionEvent e) {
+			layer.toggleLabels();
+			Main.map.repaint();
+		}
+	}
+
+	private class setWorldAction extends AbstractAction {
+		GridLayer layer;
+		public setWorldAction(GridLayer layer) {
+			super("set to world");
+			this.layer = layer;
+		}
+		public void actionPerformed(ActionEvent e) {
+			layer.setGrid(0,0,0);
+			Main.map.repaint();
+		}
+	}
+	private class incAAction extends AbstractAction {
+		GridLayer layer;
+		public incAAction(GridLayer layer) {
+			super("increase a");
+			this.layer = layer;
+		}
+		public void actionPerformed(ActionEvent e) {
+			layer.setGrid(layer.a+10,layer.b,layer.c);
+			Main.map.repaint();
+		}
+	}
+	private class incBAction extends AbstractAction {
+		GridLayer layer;
+		public incBAction(GridLayer layer) {
+			super("increase b");
+			this.layer = layer;
+		}
+		public void actionPerformed(ActionEvent e) {
+			layer.setGrid(layer.a,layer.b+10,layer.c);
+			Main.map.repaint();
+		}
+	}
+	private class incCAction extends AbstractAction {
+		GridLayer layer;
+		public incCAction(GridLayer layer) {
+			super("increase c");
+			this.layer = layer;
+		}
+		public void actionPerformed(ActionEvent e) {
+			layer.setGrid(layer.a,layer.b,layer.c+10);
+			Main.map.repaint();
+		}
+	}
+	private class setColorAction extends AbstractAction {
+		GridLayer layer;
+		public setColorAction(GridLayer layer) {
+			super("Customize Color", ImageProvider.get("colorchooser"));
+			this.layer = layer;
+		}
+		public void actionPerformed(ActionEvent e) {
+			String col=ColorHelper.color2html(layer.majcol);
+			JColorChooser c = new JColorChooser(ColorHelper.html2color(col));
+			Object[] options = new Object[]{tr("OK"), tr("Cancel"), tr("Default")};
+			int answer = JOptionPane.showOptionDialog(Main.parent, c, tr("Choose a color"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
+			switch (answer) {
+			case 0:
+//				Main.pref.put("color.layer "+name, ColorHelper.color2html(c.getColor()));
+				majcol = c.getColor();
+				break;
+			case 1:
+				return;
+			case 2:
+//				Main.pref.put("color.layer "+name, null);
+				majcol = Color.RED;
+				break;
+			}
+			Main.map.repaint();
+		}
+	}
+
+	private class setGridLayoutAction extends AbstractAction {
+		GridLayer layer;
+		public setGridLayoutAction(GridLayer layer) {
+			super("Set grid origin");
+			this.layer = layer;
+		}
+		public void actionPerformed(ActionEvent e) {
+			NumberFormat nf = NumberFormat.getInstance();
+			JPanel p = new JPanel(new GridBagLayout());
+			JTextField latText = new JTextField(nf.format(layer.a));
+			JTextField lonText = new JTextField(nf.format(layer.b));
+			JTextField devText = new JTextField(nf.format(layer.c));
+			p.add(new JLabel(tr("Grid origin location")), GBC.eol());
+			p.add(new JLabel(tr("Latitude")));
+			p.add(latText, GBC.eol());
+			p.add(new JLabel(tr("Longitude")));
+			p.add(lonText, GBC.eol());
+			p.add(new JLabel(tr("Grid rotation")));
+			p.add(devText, GBC.eol());
+			Object[] options = new Object[]{tr("OK"), tr("Cancel"), tr("World")};	
+			int answer = JOptionPane.showOptionDialog(Main.parent, p,tr("Grid layout"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
+			switch (answer) {
+			case 0:
+				layer.setGrid(
+					-Double.parseDouble(latText.getText()),
+					-Double.parseDouble(lonText.getText()),
+					Double.parseDouble(devText.getText()));
+
+			case 1:
+				return;
+			case 2:
+				layer.setGrid(0,0,0);
+			}
+			Main.map.repaint();
+		}
+	}
+
+	@Override public Icon getIcon() {
+		return icon;
+	}
+	
+	@Override public String getToolTipText() {
+		return tr("Grid layer:" + a + "," + b + "," + c);
+	}
+
+	@Override public boolean isMergable(Layer other) {
+		return false;
+	}
+
+	@Override public void mergeFrom(Layer from) {
+	}
+
+	@Override public void paint(Graphics g, final MapView mv) {
+	    //establish viewport size
+	    int w = mv.getWidth();
+	    int h = mv.getHeight();
+
+	    //establish viewport world coordinates
+            LatLon tl = mv.getLatLon(0,0);
+            LatLon br = mv.getLatLon(w,h);
+
+            //establish max visible world coordinates 
+            double wminlat = Math.max(Math.min(tl.lat(),br.lat()),-Main.proj.MAX_LAT);
+            double wmaxlat = Math.min(Math.max(tl.lat(),br.lat()), Main.proj.MAX_LAT);
+            double wminlon = Math.max(Math.min(tl.lon(),br.lon()),-Main.proj.MAX_LON);
+            double wmaxlon = Math.min(Math.max(tl.lon(),br.lon()), Main.proj.MAX_LON);
+	    
+	    //establish viewport grid coordinates
+	    //because grid is arbitrarily orientated and may be curved check several points on border
+	    double minlat = 180, maxlat=-180, minlon=90, maxlon=-90;
+	    
+	    for(double x=0;x<=1;x+=0.2){
+		    LatLon[] p = new LatLon[] {
+			    gridtoworld.inverseTransform(new LatLon(wminlat, x*wminlon+(1-x)*wmaxlon)),
+			    gridtoworld.inverseTransform(new LatLon(wmaxlat, x*wminlon+(1-x)*wmaxlon)),
+			    gridtoworld.inverseTransform(new LatLon(x*wminlat+(1-x)*wmaxlat, wminlon)),
+			    gridtoworld.inverseTransform(new LatLon(x*wminlat+(1-x)*wmaxlat, wmaxlon))};
+		    for(int i=0;i<4;i++){
+			    maxlat=Math.max(p[i].lat(),maxlat);
+			    minlat=Math.min(p[i].lat(),minlat);
+			    maxlon=Math.max(p[i].lon(),maxlon);
+			    minlon=Math.min(p[i].lon(),minlon);
+		    }
+	    }
+	   
+	    //also check if the singularities are visible
+	    LatLon northpole = gridtoworld.transform(new LatLon(90,0));
+	    LatLon southpole = gridtoworld.transform(new LatLon(-90,0));
+	    if((northpole.lat()>=wminlat) && (northpole.lat()<=wmaxlat) && (northpole.lon()>=wminlon) && (northpole.lon()<=wmaxlon)){
+		    maxlat=90;
+		    minlon=-180; 
+		    maxlon=180;
+	    }
+	    if((southpole.lat()>=wminlat) && (southpole.lat()<=wmaxlat) && (southpole.lon()>=wminlon) && (southpole.lon()<=wmaxlon)){
+		    minlat=-90;
+		    minlon=-180; 
+		    maxlon=180;
+	    }
+
+	    //span is maximum lat/lon span across visible grid normalised to 1600pixels
+	    double latspan = (maxlat-minlat) * 1600.0/Math.max(h,w);
+	    double lonspan = (maxlon-minlon) * 1600.0/Math.max(h,w);
+
+	    //grid spacing is power of ten to use for grid interval.
+	    double latspacing = Math.pow(10,Math.floor(Math.log(latspan)/Math.log(10.0))-1.0);
+	    double lonspacing = Math.pow(10,Math.floor(Math.log(lonspan)/Math.log(10.0))-1.0);
+	    if (Math.max(latspan,lonspan)/Math.min(latspan,lonspan)<4){
+		    lonspacing = latspacing = Math.max(latspacing,lonspacing);
+	    }
+	    double latmaj = (latspacing>=10)?3:10;
+	    double lonmaj = (lonspacing>=10)?3:10;
+
+	    //set up stuff need to draw grid
+	    NumberFormat nf = NumberFormat.getInstance();
+	    Color mincol = (majcol.darker()).darker();
+
+	    g.setFont (new Font("Helvetica", Font.PLAIN, 8));
+	    FontMetrics fm = g.getFontMetrics();
+//	    g.setWidth(0);
+	    for(double lat=latspacing*Math.floor(minlat/latspacing);lat<maxlat;lat+=latspacing){
+		for(double lon=lonspacing*Math.floor(minlon/lonspacing);lon<maxlon;lon+=lonspacing){
+		    LatLon ll0, lli, llj; 
+		    ll0 = gridtoworld.transform(new LatLon(lat,lon));
+		    lli = gridtoworld.transform(new LatLon(lat+latspacing,lon));
+		    llj = gridtoworld.transform(new LatLon(lat,lon+lonspacing));
+		    Point p0=mv.getPoint(Main.proj.latlon2eastNorth(ll0));
+		    Point pi=mv.getPoint(Main.proj.latlon2eastNorth(lli));
+		    Point pj=mv.getPoint(Main.proj.latlon2eastNorth(llj));
+
+		    if(Math.round(lon/lonspacing)%lonmaj==0)
+			g.setColor(majcol);
+		    else
+			g.setColor(mincol);
+
+		    drawGridLine(g, mv, ll0, lli);
+
+
+		    if(Math.round(lat/latspacing)%latmaj==0)
+			g.setColor(majcol);
+		    else
+			g.setColor(mincol);
+
+		    drawGridLine(g, mv, ll0, llj);
+
+		    if((Math.round(lon/lonspacing))%lonmaj==0 && (Math.round(lat/latspacing))%latmaj==0 && drawLabels){
+			String label = nf.format(lat);
+			int tw = fm.stringWidth(label); 
+			g.drawString(label,p0.x-tw,p0.y-8);
+			label = nf.format(lon);
+			g.drawString(label,p0.x+2,p0.y+8);
+		    }
+		}		
+	    }
+
+	}
+
+	private void drawGridLine(Graphics g, final MapView mv, LatLon ll0, LatLon ll1){
+		Point p0=mv.getPoint(Main.proj.latlon2eastNorth(ll0));
+		Point p1=mv.getPoint(Main.proj.latlon2eastNorth(ll1));
+
+		if(Math.abs(ll0.lon()-ll1.lon())<180){
+			g.drawLine(p0.x,p0.y,p1.x,p1.y);
+		} else {
+			double lat0, lat1, lon0, lon1, latm;
+			lon0 = ll0.lon();
+			lon1 = ll1.lon();
+			if(lon0<0) lon0+=360;
+			if(lon1<0) lon1+=360;
+			latm = ll0.lat() + (180-lon0)*(ll1.lat()-ll0.lat())/(lon1-lon0);
+			Point pm1 = mv.getPoint(Main.proj.latlon2eastNorth(new LatLon(latm,180)));
+			Point pm2 = mv.getPoint(Main.proj.latlon2eastNorth(new LatLon(latm,-180)));
+			if(lon0<=180){
+				g.drawLine(p0.x,p0.y,pm1.x,pm1.y);
+				g.drawLine(p1.x,p1.y,pm2.x,pm2.y);
+			} else {
+				g.drawLine(p0.x,p0.y,pm2.x,pm2.y);
+				g.drawLine(p1.x,p1.y,pm1.x,pm1.y);
+			}
+		}
+	}
+
+	@Override public void visitBoundingBox(BoundingXYVisitor v) {
+		// doesn't have a bounding box
+	}
+
+	@Override public Object getInfoComponent() {
+		return getToolTipText();
+	}
+
+	@Override public Component[] getMenuEntries() {
+		return new Component[]{
+				new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+				new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+				new JMenuItem(new toggleLabelsAction(this)),
+				new JSeparator(),
+				new JMenuItem(new setGridLayoutAction(this)),
+				new JMenuItem(new setWorldAction(this)),
+				new JMenuItem(new incAAction(this)),
+				new JMenuItem(new incBAction(this)),
+				new JMenuItem(new incCAction(this)),
+				new JMenuItem(new setColorAction(this)),
+				new JSeparator(),
+				new JMenuItem(new LayerListPopup.InfoAction(this))};
+	}
+}
Index: /applications/editors/josm/plugins/grid/src/grid/GridPlugin.java
===================================================================
--- /applications/editors/josm/plugins/grid/src/grid/GridPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/grid/src/grid/GridPlugin.java	(revision 2549)
@@ -0,0 +1,71 @@
+package grid;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import javax.swing.AbstractAction;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.AddVisitor;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.io.OsmWriter;
+import org.openstreetmap.josm.plugins.Plugin;
+
+public class GridPlugin extends Plugin {
+
+    private class Action extends AbstractAction {
+	public Action() {
+	    super("add grid");
+	}
+	public void actionPerformed(ActionEvent e) {
+	    GridLayer gridLayer = new GridLayer("");
+	    if (gridLayer != null)
+			Main.main.addLayer(gridLayer);
+	}
+    }
+    private JMenu edit;
+    private JMenuItem addGridMenu = new JMenuItem(new Action());
+    
+    public GridPlugin() {
+	JMenuBar menu = Main.main.menu;
+	edit = null;
+	for (int i = 0; i < menu.getMenuCount(); ++i) {
+	    if (menu.getMenu(i) != null && tr("Edit").equals(menu.getMenu(i).getName())) {
+		edit = menu.getMenu(i);
+		break;
+	    }
+	}
+	if (edit == null) {
+	    edit = new JMenu(tr("Edit"));
+	    menu.add(edit, 2);
+	    edit.setVisible(false);
+	}
+	edit.add(addGridMenu);
+	addGridMenu.setVisible(false);
+    }
+	@Override
+	public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
+		if (oldFrame != null && newFrame == null) {
+			// disable
+			addGridMenu.setVisible(false);
+			if (edit.getMenuComponentCount() == 1)
+				edit.setVisible(false);
+		} else if (oldFrame == null && newFrame != null) {
+			// enable
+			addGridMenu.setVisible(true);
+			if (edit.getMenuComponentCount() == 1)
+				edit.setVisible(true);
+		}
+	}
+
+}
Index: /applications/editors/josm/plugins/landsat/.classpath
===================================================================
--- /applications/editors/josm/plugins/landsat/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/.classpath	(revision 2549)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/landsat/.project
===================================================================
--- /applications/editors/josm/plugins/landsat/.project	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>landsat</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/landsat/SUPERSEDED-BY-WMSPLUGIN
===================================================================
--- /applications/editors/josm/plugins/landsat/SUPERSEDED-BY-WMSPLUGIN	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/SUPERSEDED-BY-WMSPLUGIN	(revision 2549)
@@ -0,0 +1,7 @@
+The landsat plugin is not developed any further. It has been superseded by
+the WMSplugin which can access landsat and other WMS sources.
+
+The WMSplugin is slightly different in usage; it does not show an extra
+download checkbox in the download dialog, but instead has a new menu ("WMS")
+from which you can select a download source. The download is always done 
+for the currently visible bounding box.
Index: /applications/editors/josm/plugins/landsat/build.xml
===================================================================
--- /applications/editors/josm/plugins/landsat/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/build.xml	(revision 2549)
@@ -0,0 +1,41 @@
+<project name="landsat" default="build" basedir=".">
+
+	<!-- point to your JOSM directory -->
+	<property name="josm" location="../../../../editors/josm/dist/josm-custom.jar" 
+/>
+
+
+
+	<target name="init">
+		<mkdir dir="build"></mkdir>
+		<mkdir dir="dist"></mkdir>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="${josm}" debug="true" destdir="build">
+			<include name="**/*.java" />
+		</javac>
+	</target>
+
+	<target name="build" depends="compile">
+		<copy todir="build/images" >
+			<fileset dir="images" />
+		</copy>
+		<jar destfile="dist/landsat.jar" basedir="build">
+			<manifest>
+				<attribute name="Plugin-Class" value="landsat.LandsatPlugin" />
+				<attribute name="Plugin-Description" value="Provide a background layer that displays bitmaps downloaded from&lt;br&gt;a WMS Server, e.g. the Landsat pictures. Beware, that these&lt;br&gt;bitmaps can be off by up to 150 metres" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+		<delete dir="dist" />
+	</target>
+
+	<target name="install" depends="build">
+		<copy file="dist/landsat.jar" todir="${user.home}/.josm/plugins"/>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/landsat/src/landsat/DownloadWMSTask.java
===================================================================
--- /applications/editors/josm/plugins/landsat/src/landsat/DownloadWMSTask.java	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/src/landsat/DownloadWMSTask.java	(revision 2549)
@@ -0,0 +1,67 @@
+package landsat;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+
+import javax.swing.JCheckBox;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.DownloadAction;
+import org.openstreetmap.josm.actions.DownloadAction.DownloadTask;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+
+public class DownloadWMSTask extends PleaseWaitRunnable 
+		implements DownloadTask {
+
+	private WMSLayer wmsLayer;
+	private double minlat, minlon, maxlat, maxlon;
+	private JCheckBox checkBox;
+	String name;
+
+	public DownloadWMSTask(WMSLayer wmsLayer, String briefName,
+									String detailedName) {
+		super(tr("Downloading data"));
+   		checkBox = new JCheckBox(tr(detailedName));
+		this.wmsLayer = wmsLayer;
+		this.name=briefName;
+	}
+
+	@Override public void realRun() throws IOException {
+		wmsLayer.grab(minlat,minlon,maxlat,maxlon);
+	}
+
+	@Override protected void finish() {
+		if (wmsLayer != null)
+			Main.main.addLayer(wmsLayer);
+	}
+
+	@Override protected void cancel() {
+	}
+
+
+	public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
+		this.minlat=minlat;
+		this.minlon=minlon;
+		this.maxlat=maxlat;
+		this.maxlon=maxlon;
+		Main.worker.execute(this);
+	}
+
+	public JCheckBox getCheckBox() {
+		return checkBox;
+	}
+
+	public void setEnabled(boolean b) {
+		checkBox.setEnabled(b); 
+	}
+
+	public void setCheckBoxSelected(boolean b) {
+		checkBox.setSelected(b);
+	}
+
+	public String getPreferencesSuffix() {
+		return name; 
+	}
+
+}
Index: /applications/editors/josm/plugins/landsat/src/landsat/LandsatPlugin.java
===================================================================
--- /applications/editors/josm/plugins/landsat/src/landsat/LandsatPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/src/landsat/LandsatPlugin.java	(revision 2549)
@@ -0,0 +1,62 @@
+package landsat;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.IconToggleButton;
+
+// NW 151006 only add the landsat task when the map frame is initialised with
+// data.
+
+public class LandsatPlugin extends Plugin {
+
+	DownloadWMSTask task, npeTask;
+	WMSLayer landsatLayer;
+	OSGBLayer npeLayer;
+
+	public LandsatPlugin() {
+		landsatLayer = new WMSLayer
+		("http://onearth.jpl.nasa.gov/wms.cgi?request=GetMap&"+
+				"layers=global_mosaic&styles=&srs=EPSG:4326&"+
+		"format=image/jpeg");
+		npeLayer = new OSGBLayer
+			("http://nick.dev.openstreetmap.org/openpaths/"+
+			 "freemap.php?layers=npe&");
+		task = new DownloadWMSTask(landsatLayer, "landsat",
+											"Landsat images");
+		npeTask = new DownloadWMSTask(npeLayer, "npe", 
+			"New Popular Edition maps - " +
+			"see npemap.org.uk for conditions of use");
+
+		/* can now do these always
+		task.setEnabled(false);
+		npeTask.setEnabled(false);
+		*/
+		Main.main.menu.download.downloadTasks.add(task);
+		Main.main.menu.download.downloadTasks.add(npeTask);
+	}
+
+	public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
+		/* don't do anything now
+		if(oldFrame==null && newFrame!=null) { 
+			task.setEnabled(true);
+			npeTask.setEnabled(true);
+
+			/* re. bug report (Andy Robinson) 08/11/06...
+			 * Neither of these seem to work
+			task.setCheckBoxSelected(false);
+			Main.pref.put("download.landsat",false);
+			*/
+
+			Main.map.toolBarActions.addSeparator();
+			IconToggleButton button = new IconToggleButton
+						(new WMSAdjustAction(Main.map));
+			Main.map.toolBarActions.add(button);
+			Main.map.toolGroup.add(button);
+		} else if (oldFrame!=null && newFrame==null ) {
+			task.setEnabled(false);
+			npeTask.setEnabled(false);
+		}
+		*/
+	}
+}
Index: /applications/editors/josm/plugins/landsat/src/landsat/OSGBImage.java
===================================================================
--- /applications/editors/josm/plugins/landsat/src/landsat/OSGBImage.java	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/src/landsat/OSGBImage.java	(revision 2549)
@@ -0,0 +1,153 @@
+package landsat;
+
+import uk.me.jstott.jcoord.OSRef;
+import uk.me.jstott.jcoord.LatLng;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+
+import java.awt.Graphics2D;
+import java.awt.BasicStroke;
+import java.awt.Point;
+import java.awt.Graphics;
+import java.awt.Color;
+
+public class OSGBImage extends WMSImage
+{
+	public OSGBImage(String constURL)
+	{
+		super(constURL);
+	}
+
+	public void grab(NavigatableComponent nc,double minlat,double minlon,
+			double maxlat,double maxlon) throws IOException
+	{
+		// To deal with the fact that grid refs and lat/lon don't align
+		LatLng ll1 = new LatLng(minlat,minlon),
+				ll2 = new LatLng(maxlat,maxlon),
+				ll3 = new LatLng(maxlat,minlon),
+				ll4 = new LatLng(minlat,maxlon);
+
+		ll1.toOSGB36();
+		ll2.toOSGB36();
+		ll3.toOSGB36();
+		ll4.toOSGB36();
+
+		OSRef bottomLeftGR = ll1.toOSRef(),
+			  topRightGR = ll2.toOSRef(),
+		 	topLeftGR =  ll3.toOSRef(),
+			  bottomRightGR =  ll4.toOSRef();
+
+		double w = Math.min(bottomLeftGR.getEasting(),
+								topLeftGR.getEasting()),
+			   s = Math.min(bottomLeftGR.getNorthing(),
+							   bottomRightGR.getNorthing()),
+			   e = Math.max(bottomRightGR.getEasting(),
+							   topRightGR.getEasting()),
+			   n = Math.max(topLeftGR.getNorthing(),
+							   topRightGR.getNorthing());
+
+		// Adjust topLeft and bottomRight due to messing around with
+		// projections
+		LatLng tl2 = new OSRef(w,n).toLatLng();
+		LatLng br2 = new OSRef(e,s).toLatLng();
+		tl2.toWGS84();
+		br2.toWGS84();
+
+		topLeft = Main.proj.latlon2eastNorth
+					(new LatLon(tl2.getLat(),tl2.getLng() ));
+		bottomRight = Main.proj.latlon2eastNorth
+					(new LatLon(br2.getLat(),br2.getLng() ));
+
+		grabbedScale = nc.getScale(); // enPerPixel
+
+		int widthPx = (int)((bottomRight.east()-topLeft.east())/grabbedScale),
+			heightPx = (int)
+				((topLeft.north()-bottomRight.north()) / grabbedScale);
+
+		try
+		{
+			URL url =  doGetURL(w,s,e,n,widthPx,heightPx);
+			doGrab(url);
+		}
+		catch(MalformedURLException ex)
+		{
+			System.out.println("Illegal url. Error="+ex);
+		}
+	}
+
+	public void paint(Graphics g,NavigatableComponent nc) 
+	{
+		if(theImage!=null)
+		{
+			super.paint(g,nc);
+			Graphics2D g2d = (Graphics2D)g;
+			g2d.setStroke(new BasicStroke(2));
+
+			// Display markers at the OSGB intersections.
+			// The code is very convoluted - projections really are fun
+			// things to deal with :-)
+			// Oh well, at least I can let someone else do the maths :-)
+
+			double zoomInFactor = grabbedScale / nc.getScale();
+
+			EastNorth topLeftDisplaced  = 
+				new EastNorth(topLeft.east()+dEast, topLeft.north()+dNorth);
+			EastNorth bottomRightDisplaced  = 
+				new EastNorth(bottomRight.east()+dEast,
+								bottomRight.north()+dNorth);
+
+			LatLon ll5 = Main.proj.eastNorth2latlon(topLeftDisplaced),
+				ll6 = Main.proj.eastNorth2latlon(bottomRightDisplaced);
+
+			LatLng ll7 = new LatLng(ll5.lat(),ll5.lon());
+			LatLng ll8 = new LatLng(ll6.lat(),ll6.lon());
+			ll7.toOSGB36();
+			ll8.toOSGB36();
+
+			LatLng curLatLng; 
+			EastNorth curEN;
+
+			
+			OSRef osgb1 = ll7.toOSRef(),
+				 osgb2 = ll8.toOSRef();
+
+			for(int easting=(int)(osgb1.getEasting()/1000) + 1; 
+					easting<=(int)(osgb2.getEasting()/1000);
+					easting++)
+			{
+				for (int northing=(int)(osgb1.getNorthing()/1000) ;
+					 northing>(int)(osgb2.getNorthing()/1000);
+					 northing--)
+				{
+					// Now we have to convert the OSGB eastings and northings
+					// *back* to EastNorth units so we can draw the 
+					// intersections....
+					// Not to mention converting between JOSM LatLon and
+					// JCoord LatLng....
+				
+
+					curLatLng = new OSRef(easting*1000,northing*1000).
+											toLatLng();
+					curLatLng.toWGS84();
+					curEN = Main.proj.latlon2eastNorth
+								(new LatLon(curLatLng.getLat(),
+											curLatLng.getLng() ) );
+
+					// draw a cross at the intersection 
+					Point p = Main.map.mapView.getPoint(curEN);
+					g.setColor(Color.BLUE);
+					g.drawLine(p.x-5,p.y,p.x+5,p.y);
+					g.drawLine(p.x,p.y-5,p.x,p.y+5);
+				}
+			}
+			g2d.setStroke(new BasicStroke(1));
+		}
+	}
+}
Index: /applications/editors/josm/plugins/landsat/src/landsat/OSGBLayer.java
===================================================================
--- /applications/editors/josm/plugins/landsat/src/landsat/OSGBLayer.java	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/src/landsat/OSGBLayer.java	(revision 2549)
@@ -0,0 +1,22 @@
+package landsat;
+
+import java.io.IOException;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapView;
+
+public class OSGBLayer extends WMSLayer {
+
+	public OSGBLayer(String constURL) {
+		super(constURL);
+	}
+
+	public void grab(double minlat,double minlon,double maxlat,double maxlon)
+	throws IOException {
+		MapView mv = Main.map.mapView;
+		initMapView(mv);
+		OSGBImage npeImage = new OSGBImage(url);
+		npeImage.grab(mv,minlat,minlon,maxlat,maxlon);
+		wmsImages.add(npeImage);
+	}
+}
Index: /applications/editors/josm/plugins/landsat/src/landsat/WMSAdjustAction.java
===================================================================
--- /applications/editors/josm/plugins/landsat/src/landsat/WMSAdjustAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/src/landsat/WMSAdjustAction.java	(revision 2549)
@@ -0,0 +1,92 @@
+package landsat; 
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Cursor;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.actions.mapmode.MapMode;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.IconToggleButton;
+
+public class WMSAdjustAction extends MapMode implements
+		MouseListener, MouseMotionListener{
+
+	WMSImage selectedImage; 
+	boolean mouseDown;
+	EastNorth prevEastNorth;
+
+	public WMSAdjustAction(MapFrame mapFrame) {
+		super("landsatAdjust", "movelandsat", 
+						"Adjust the position of the WMS layer", mapFrame, 
+						ImageProvider.getCursor("normal", "move"));
+	}
+
+	@Override public void enterMode() {
+		super.enterMode();
+		Main.map.mapView.addMouseListener(this);
+		Main.map.mapView.addMouseMotionListener(this);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		Main.map.mapView.removeMouseListener(this);
+		Main.map.mapView.removeMouseMotionListener(this);
+	}
+
+	@Override public void mousePressed(MouseEvent e) {
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+
+		 for(Layer layer:Main.map.mapView.getAllLayers()) {
+			if (layer instanceof WMSLayer) {
+				prevEastNorth=Main.map.mapView.getEastNorth(e.getX(),e.getY());
+				selectedImage = ((WMSLayer)layer).findImage(prevEastNorth);
+				if(selectedImage!=null){
+					Main.map.mapView.setCursor
+						(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
+				}
+			}
+		}
+	}
+
+	@Override public void mouseDragged(MouseEvent e) {
+			/*
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+			*/
+
+		if(selectedImage!=null) {
+			EastNorth eastNorth=
+					Main.map.mapView.getEastNorth(e.getX(),e.getY());
+			if(selectedImage.contains(eastNorth)) {
+				selectedImage.displace(eastNorth.east()-prevEastNorth.east(), 
+									eastNorth.north()-prevEastNorth.north());
+				prevEastNorth = eastNorth;
+			}
+			Main.map.mapView.repaint();
+		}
+	}
+
+	@Override public void mouseReleased(MouseEvent e) {
+		Main.map.mapView.repaint();
+		Main.map.mapView.setCursor(Cursor.getDefaultCursor());
+		selectedImage = null;	
+	}
+
+	public void mouseEntered(MouseEvent e) {
+	}
+	public void mouseExited(MouseEvent e) {
+	}
+	public void mouseMoved(MouseEvent e) {
+	}
+
+	@Override public void mouseClicked(MouseEvent e) {
+	}
+}
Index: /applications/editors/josm/plugins/landsat/src/landsat/WMSImage.java
===================================================================
--- /applications/editors/josm/plugins/landsat/src/landsat/WMSImage.java	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/src/landsat/WMSImage.java	(revision 2549)
@@ -0,0 +1,145 @@
+package landsat;
+
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Point;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.imageio.ImageIO;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+
+public class WMSImage
+{
+	String constURL;
+	protected Image theImage;
+	protected double grabbedScale;
+	protected EastNorth topLeft, bottomRight;
+	double dEast, dNorth;	
+
+	public WMSImage(String constURL)
+	{
+		this.constURL = constURL;
+	}
+
+	public void grab(NavigatableComponent nc) throws IOException
+	{
+
+		EastNorth topLeft  = nc.getEastNorth(0,0);
+		grabbedScale =  nc.getScale();  // scale is enPerPixel
+
+		this.topLeft = topLeft;
+
+		try
+		{
+			URL url = getURL(nc);
+			doGrab(url);
+		}
+		catch(MalformedURLException e)
+		{
+			System.out.println("Illegal url. Error="+e);
+		}
+	}
+
+	public void grab(NavigatableComponent nc,double minlat,double minlon,
+			double maxlat,double maxlon) throws IOException
+	{
+		LatLon p = new LatLon(minlat,minlon),
+				p2 = new LatLon(maxlat,maxlon);
+
+		grabbedScale = nc.getScale(); // enPerPixel
+
+		topLeft = Main.proj.latlon2eastNorth(new LatLon(maxlat,minlon));
+		bottomRight = Main.proj.latlon2eastNorth(new LatLon(minlat,maxlon));
+
+		int widthPx = (int)((bottomRight.east()-topLeft.east())/grabbedScale),
+		heightPx = (int)
+		((topLeft.north()-bottomRight.north()) / grabbedScale);
+
+		try
+		{
+			URL url =  doGetURL(p.lon(),p.lat(),
+									p2.lon(),p2.lat(),widthPx,heightPx);
+			doGrab(url);
+		}
+		catch(MalformedURLException e)
+		{
+			System.out.println("Illegal url. Error="+e);
+		}
+	}
+
+	private URL getURL(NavigatableComponent nc) throws MalformedURLException
+	{
+		double widthEN = nc.getWidth()*grabbedScale,
+		heightEN = nc.getHeight()*grabbedScale;
+		LatLon p = Main.proj.eastNorth2latlon(new EastNorth
+				(topLeft.east(), topLeft.north()-heightEN));
+		LatLon p2 = Main.proj.eastNorth2latlon(new EastNorth
+				(topLeft.east()+widthEN, topLeft.north()));
+		return doGetURL(p.lon(),p.lat(),p2.lon(),p2.lat(),
+						(int)(widthEN/grabbedScale),
+						(int)(heightEN/grabbedScale) );
+	}
+
+	protected URL doGetURL(double w,double s,double e,double n, int wi, 
+					int ht) throws MalformedURLException
+	{
+		String str = constURL + "&bbox=" + w +"," + s + ","+
+				e+","+n + "&width=" + wi + "&height=" + ht;
+		return new URL(str);
+	}
+
+	protected void doGrab (URL url) throws IOException
+	{
+		InputStream is = url.openStream();
+		theImage = ImageIO.read(is) ;
+		is.close();
+		Main.map.repaint();
+	}
+
+	public void displace (double dEast, double dNorth)
+	{
+	 	this.dEast += dEast;	
+	 	this.dNorth += dNorth;	
+	}
+
+	public boolean contains(EastNorth eastNorth)
+	{
+		double e1 = topLeft.east()+dEast, 
+			   e2 = bottomRight.east()+dEast,
+			   n1 = bottomRight.north()+dNorth,
+			   n2 = topLeft.north()+dNorth;
+
+		boolean b =  eastNorth.east()>=e1 && eastNorth.east()<=e2 &&
+				eastNorth.north()>=n1 && eastNorth.north()<=n2;
+		return b;
+	}
+
+	public void paint(Graphics g,NavigatableComponent nc) 
+	{
+		if(theImage!=null)
+		{
+			double zoomInFactor = grabbedScale / nc.getScale();
+
+			// Find the image x and y of the supplied bottom left
+			// This will be the difference in EastNorth units, divided by the
+			// grabbed scale in EastNorth/pixel.
+
+			int w = theImage.getWidth(null), h=theImage.getHeight(null);
+			EastNorth topLeftDisplaced  = 
+				new EastNorth(topLeft.east()+dEast, topLeft.north()+dNorth);
+			Point displacement = Main.map.mapView.getPoint(topLeftDisplaced);
+			g.drawImage(theImage,displacement.x,displacement.y,
+					(int)(displacement.x+w*zoomInFactor),
+					(int)(displacement.y+h*zoomInFactor),
+					0,0,w,h,null);
+		}
+	}
+
+}
Index: /applications/editors/josm/plugins/landsat/src/landsat/WMSLayer.java
===================================================================
--- /applications/editors/josm/plugins/landsat/src/landsat/WMSLayer.java	(revision 2549)
+++ /applications/editors/josm/plugins/landsat/src/landsat/WMSLayer.java	(revision 2549)
@@ -0,0 +1,168 @@
+package landsat;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Toolkit;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JMenuItem;
+import javax.swing.JSeparator;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.data.coor.EastNorth;
+
+/**
+ * This is a layer that grabs the current screen from an WMS server. The data
+ * fetched this way is tiled and managerd to the disc to reduce server load.
+ */
+public class WMSLayer extends Layer {
+
+	protected static Icon icon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(LandsatPlugin.class.getResource("/images/wms.png")));
+
+	protected final ArrayList<WMSImage> wmsImages;
+
+	protected final String url;
+
+
+	public WMSLayer(String url) {
+		super(url.indexOf('/') != -1 ? url.substring(url.indexOf('/')+1) : url);
+
+		// to calculate the world dimension, we assume that the projection does
+		// not have problems with translating longitude to a correct scale.
+		// Next to that, the projection must be linear dependend on the lat/lon
+		// unprojected scale.
+		if (Projection.MAX_LON != 180)
+			throw new IllegalArgumentException(tr
+					("Wrong longitude transformation for tile manager. "+
+							"Can't operate on {0}",Main.proj));
+
+		this.url = url;
+		//wmsImage = new WMSImage(url);
+		wmsImages = new ArrayList<WMSImage>();
+	}
+
+	public void grab() throws IOException
+	{
+		MapView mv = Main.map.mapView;
+		WMSImage wmsImage = new WMSImage(url);
+		wmsImage.grab(mv);
+		wmsImages.add(wmsImage);
+	}
+
+	public void grab(double minlat,double minlon,double maxlat,double maxlon)
+	throws IOException
+	{
+		MapView mv = Main.map.mapView;
+		initMapView(mv);
+		WMSImage wmsImage = new WMSImage(url);
+		wmsImage.grab(mv,minlat,minlon,maxlat,maxlon);
+		wmsImages.add(wmsImage);
+	}
+
+	protected void initMapView(MapView mv)
+	{
+		// If there is no data we need to initialise the centre and scale
+		// of the map view, so that we can display the Landsat/OSGB image.
+		// To do this, we centre the map in the centre point of the requested
+		// data, and set the scale so that the requested data is just
+		// completely within the visible area, even if it's a non-square area.
+
+		if(mv.getCenter()==null)
+		{
+			EastNorth centre = Main.proj.latlon2eastNorth
+			 			(new LatLon(minlat+(maxlat-minlat)/2 , 
+						minlon+(maxlon-minlon)/2)),
+				oldBottomLeft = Main.proj.latlon2eastNorth
+						(new LatLon(minlat,minlon)),
+				oldTopRight = Main.proj.latlon2eastNorth
+						(new LatLon(maxlat,maxlon)),
+				bottomLeft,
+				topRight;
+
+			if(oldTopRight.north-oldBottomLeft.north < 
+					oldTopRight.east-oldBottomLeft.east)
+			{	
+				bottomLeft = new EastNorth 
+					( oldBottomLeft.east(), centre.north() - 
+							(oldTopRight.east()-oldBottomLeft.east()/2);
+				topRight = new EastNorth 
+					( oldTopRight.east(), centre.north() + 
+							(oldTopRight.east()-oldBottomLeft.east()/2);
+			}
+			else
+			{
+				bottomLeft = new EastNorth 
+					( centre.east() - 
+							(oldTopRight.north()-oldBottomLeft.north()/2),
+						oldBottomLeft.north() );
+				topRight = new EastNorth 
+					( centre.east() + 
+							(oldTopRight.north()-oldBottomLeft.north()/2),
+						oldTopRight.north() );
+			}
+
+			// scale is enPerPixel
+			double scale = (topRight.east()-bottomLeft.east())/
+									mapView.getWidth();
+			mv.zoomTo(centre,scale);
+		}
+	}
+
+	@Override public Icon getIcon() {
+		return icon;
+	}
+
+	@Override public String getToolTipText() {
+		return tr("WMS layer: {0}", url);
+	}
+
+	@Override public boolean isMergable(Layer other) {
+		return false;
+	}
+
+	@Override public void mergeFrom(Layer from) {
+	}
+
+	@Override public void paint(Graphics g, final MapView mv) {
+		for(WMSImage wmsImage : wmsImages) {
+			wmsImage.paint(g,mv);
+		}
+	}
+
+	@Override public void visitBoundingBox(BoundingXYVisitor v) {
+		// doesn't have a bounding box
+	}
+
+	@Override public Object getInfoComponent() {
+		return getToolTipText();
+	}
+
+	@Override public Component[] getMenuEntries() {
+		return new Component[]{
+				new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+				new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+				new JSeparator(),
+				new JMenuItem(new LayerListPopup.InfoAction(this))};
+	}
+
+	public WMSImage findImage(EastNorth eastNorth)
+	{
+		for(WMSImage wmsImage : wmsImages) {
+			if (wmsImage.contains(eastNorth))  {
+				return wmsImage;
+			}
+		}
+		return null;
+	}
+}
Index: /applications/editors/josm/plugins/lang/build.xml
===================================================================
--- /applications/editors/josm/plugins/lang/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/lang/build.xml	(revision 2549)
@@ -0,0 +1,51 @@
+<project name="lang" default="install-all" basedir=".">
+
+	<property name="josm" value="../../../../editors/josm" />
+	<property name="plugins" value="../.."/>
+
+	<target name="install-all" depends="josm-build,keys.pot">
+		<ant target="install"><property name="language" value="de"/></ant>
+		<ant target="install"><property name="language" value="fr"/></ant>
+		<ant target="install"><property name="language" value="ro"/></ant>
+		<ant target="install"><property name="language" value="en_GB"/></ant>
+	</target>
+
+	<target name="install">
+		<mkdir dir="${language}/bin"/>
+		<javac srcdir="${language}/src" classpath="${josm}/dist/josm-custom.jar" destdir="${language}/bin" />
+
+		<exec executable="msgmerge">
+			<arg line="-U ${language}/${language}.po keys.pot"/>
+		</exec>
+
+		<exec executable="msgfmt">
+			<arg line="--java2 -d${language}/bin -rorg.openstreetmap.josm.Translation -l${language} ${language}/${language}.po"/>
+		</exec>
+
+		<copy file="i18n.properties" todir="${language}/bin/org/openstreetmap/josm" />
+
+		<jar destfile="${user.home}/.josm/plugins/lang-${language}.jar" basedir="${language}/bin">
+			<manifest>
+				<attribute name="Plugin-Class" value="org.openstreetmap.josm.TranslationLoader_${language}" />
+				<attribute name="Plugin-Description" value="Translation to locale ${language}" />
+				<attribute name="Plugin-Early" value="true" />
+			</manifest>
+		</jar>
+	</target>
+
+
+
+	<target name="josm-build">
+		<ant dir="${josm}" />
+	</target>
+	
+	<target name="keys.pot">
+		<exec executable="find" output="alljava.txt">
+			<arg line="${josm}/src ${plugins} -name '*.java'"/>
+		</exec>
+
+		<exec executable="xgettext">
+			<arg line="-ktr -ktrn:1,2 -ktrc -kmarktr -Ljava -okeys.pot -falljava.txt"/>
+		</exec>
+	</target>
+</project>
Index: /applications/editors/josm/plugins/lang/de/.classpath
===================================================================
--- /applications/editors/josm/plugins/lang/de/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/lang/de/.classpath	(revision 2549)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="lib" path="/josm/lib/gettext-commons-0.9.jar" sourcepath="C:/Download/gettext-commons-0.9-src.zip"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/lang/de/.project
===================================================================
--- /applications/editors/josm/plugins/lang/de/.project	(revision 2549)
+++ /applications/editors/josm/plugins/lang/de/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>lang-de</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/lang/de/build.xml
===================================================================
--- /applications/editors/josm/plugins/lang/de/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/lang/de/build.xml	(revision 2549)
@@ -0,0 +1,52 @@
+<project name="lang-de" default="install" basedir=".">
+
+	<property name="language" value="de" />
+
+	<target name="init">
+	    <mkdir dir="bin" />
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="../../../../editors/josm/dist/josm-custom.jar" destdir="bin" />
+	</target>
+	
+	<!-- install entry point for eclipse user -->
+	<target name="jar">
+		<jar destfile="${user.home}/.josm/plugins/lang-${language}.jar" basedir="bin">
+			<manifest>
+				<attribute name="Plugin-Class" value="org.openstreetmap.josm.TranslationLoader_${language}" />
+				<attribute name="Plugin-Description" value="German translation / Deutsche Übersetzung." />
+				<attribute name="Plugin-Early" value="true" />
+			</manifest>
+		</jar>
+	</target>
+	
+	<target name="install" depends="compile,gettext,jar" />
+
+
+
+	<target name="find">
+		<exec executable="find" output="alljava.txt">
+			<arg line="../../../../editors/josm/src ../ -name '*.java'"/>
+		</exec>
+	</target>
+	
+	<target name="xgettext">
+		<exec executable="xgettext">
+			<arg line="-ktr -ktrn:1,2 -ktrc -kmarktr -Ljava -okeys.pot -falljava.txt"/>
+		</exec>
+	</target>
+
+	<target name="msgmerge">
+		<exec executable="msgmerge">
+			<arg line="-U ${language}.po keys.pot"/>
+		</exec>
+	</target>
+
+	<target name="gettext" depends="find,xgettext,msgmerge">
+		<exec executable="msgfmt">
+			<arg line="--java2 -dbin -rorg.openstreetmap.josm.Translation -l${language} ${language}.po"/>
+		</exec>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/lang/de/de.po
===================================================================
--- /applications/editors/josm/plugins/lang/de/de.po	(revision 2549)
+++ /applications/editors/josm/plugins/lang/de/de.po	(revision 2549)
@@ -0,0 +1,2114 @@
+# translation of de.po to 
+# translation of de.po to
+# Sven Anders <s.anders@digitec.de>, 2006.
+# Sven Anders <sven@anders-hamburg.de>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: de\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-10-22 21:32+0200\n"
+"PO-Revision-Date: 2006-10-14 20:38+0200\n"
+"Last-Translator: Sven Anders <sven@anders-hamburg.de>\n"
+"Language-Team:  <de@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:52
+msgid "Add segment"
+msgstr "Abschnitt hinzufügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:54
+msgid "Add a segment between two nodes."
+msgstr "Abschnitt zwischen zwei Knotenpunkten hinzufügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:56
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:59
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:370
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:46
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:58
+msgid "Delete"
+msgstr "Löschen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:58
+msgid "Delete nodes, streets or segments."
+msgstr "Lösche Knotenpunkte, Straßen oder Abschnitte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:152
+msgid "Cannot delete node."
+msgstr "Kann den Knotenpunkt nicht löschen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:156
+msgid "This object is in use."
+msgstr "Das Objekt wird benutzt."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:173
+msgid "Used by more than two segments."
+msgstr "Wird bei mehr als zwei Abschnitten benutzt."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:178
+msgid "Used by only one segment."
+msgstr "Wird bei einen Abschnitt benutzt."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:187
+msgid "Wrong direction of segments."
+msgstr "Falsche Richtung der Abschnitte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:190
+msgid "Conflicting keys"
+msgstr "Schlüsselkonflikt"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:196
+msgid "Segments are part of different ways."
+msgstr "Abschnitte gehören zu verschiedenen Wegen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:214
+msgid "Delete Node"
+msgstr "Knotenpunkt löschen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom in by dragging. (Ctrl+up,left,down,right,+,-)"
+msgstr "Zoomen durch anklicken  (Strg-Hoch,Links,Runter,Rechts,+,-)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Selection"
+msgstr "Auswahl"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Select objects by dragging or clicking."
+msgstr "Wähle Objekte durch ziehen oder klicken."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Straight line"
+msgstr "Verbundene Linie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Select objects in a straight line."
+msgstr "Wähle Objekte in einer Reihe."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:52
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "Move"
+msgstr "Verschieben"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:54
+msgid "Move around objects that are under the mouse or selected."
+msgstr ""
+"Objekte die sich unter der Maus befinden oder ausgewählt sind verschieben"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:102
+msgid "Cannot move objects outside of the world."
+msgstr "Kann Objekte nicht nach außerhalb der Welt verschieben."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add Way"
+msgstr "Weg hinzufügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add a new way to the data."
+msgstr "Füge einen neuen Weg hinzu."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:95
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:143
+msgid ""
+"Warning: This way is incomplete. Try to download it, before adding segments."
+msgstr ""
+"Achtung: Dieser Weg ist nicht vollständig. Er sollte vom Server geladen "
+"werden, bevor Abschnitte hinzugefügt werden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+#, java-format
+msgid ""
+"{0} way has been selected.\n"
+"Do you wish to select all segments belonging to the way instead?"
+msgid_plural ""
+"{0} ways have been selected.\n"
+"Do you wish to select all segments belonging to the ways instead?"
+msgstr[0] ""
+"Der Weg \"{0}\"wurde ausgewählt.\n"
+"Sollen alle Abschnitte zu dem Weg hinzugefügt werden?{0} Wege wurde "
+"ausgewählt.\n"
+"Sollen alle Abschnitte zu dem Wegen hinzugefügt werden?"
+msgstr[1] ""
+"{0} Wege wurden ausgewählt.\n"
+"Sollen alle Abschnitte zu dem Wegen hinzugefügt werden?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+msgid "Add segments from ways"
+msgstr "Abschnitte eines Weges hinzufügen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Do you want to add all other selected segments to the one selected way?"
+msgstr ""
+"Sollen die gewählten Abschnitte zu dem ausgewählten Weg hinzugefügt werden?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Add segments to way?"
+msgstr "Abschnitte zum Weg hinzufügen?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder all line segments?"
+msgstr "Alle Abschnitte neu anordnen?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder?"
+msgstr "Neu Anordnen?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+#, java-format
+msgid "Create a new way out of {0} segment?"
+msgid_plural "Create a new way out of {0} segments?"
+msgstr[0] "Soll ein neuer Weg aus {0} Abschnitt erstellt werden."
+msgstr[1] "Soll ein neuer Weg aus {0} Abschnitten erstellt weden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+msgid "Create new way"
+msgstr "Neuen Weg erstellen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add node"
+msgstr "Knotenpunkt hinzufügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add a new node to the map"
+msgstr "Fügt einen neuen Knotenpunkt zur Karte hinzu"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add node into segment"
+msgstr "Knotenpunkt in einen Abschnitt einfügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add a node into an existing segment"
+msgstr "Fügt einen Knotenpunkt in einen bestehenden Abschnitt ein"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:85
+msgid "Can not add a node outside of the world."
+msgstr "Kann keinen Knoten außerhalb der Welt erstellen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:134
+msgid "Add Node into Segment"
+msgstr "Einen Knotenpunkt in einen Abschnitt einfügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:23
+msgid "Raw GPS data"
+msgstr "Roh GPS-Daten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:26
+msgid "Downloading GPS data"
+msgstr "Hole GPS-Daten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:25
+msgid "OpenStreetMap data"
+msgstr "OpenStreetMap Daten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:28
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:21
+msgid "Downloading data"
+msgstr "Lade Daten aus dem Internet"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:39
+msgid "No data imported."
+msgstr "Keine Daten importiert."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:40
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:76
+msgid "Data Layer"
+msgstr "Daten-Ebene"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:53
+msgid "Reverse Segments"
+msgstr "Richtung ändern"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+msgid "Revert the direction of all selected Segments."
+msgstr "Richtung der ausgewählten Abschnitte umdrehen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:39
+msgid "Please select at least one segment."
+msgstr "Bitte wählen Sie mindestens einen Abschnitt aus."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:209
+msgid "Preferences"
+msgstr "Einstellungen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+msgid "Open a preferences page for global settings."
+msgstr "öffnete eine Globale Einstellungs-Seite."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open"
+msgstr "Öffnen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open a file."
+msgstr "Datei öffnen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:73
+msgid "CSV Data import for non-GPS data is not implemented yet."
+msgstr "CSV Datenimport für nicht GPS-Daten ist noch nicht programmiert."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:76
+#, java-format
+msgid "Unknown file extension: {0}"
+msgstr "Dateiendung unbekannt: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:83
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:59
+#, java-format
+msgid "Error while parsing {0}"
+msgstr "Fehler beim Parsen. {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:86
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:63
+#, java-format
+msgid "Could not read \"{0}\""
+msgstr "Kann \"{0}\" nicht lesen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:71
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:287
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:302
+#, java-format
+msgid "Executing {0}"
+msgstr "Erledige {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:146
+msgid "The Tool requires some data to be loaded."
+msgstr "Für das Werkzeug ist es nötig das Daten geladen sind."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:306
+#, java-format
+msgid "Could not execute command: {0}"
+msgstr "Kann \"{0}\" nicht ausführen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:317
+msgid "Tools"
+msgstr "Werkzeuge"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:352
+msgid "Could not read external tool configuration."
+msgstr "Kann die externen Werkzeugeinstellungen nicht lesen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:69
+msgid "Align Nodes in Circle"
+msgstr "Knotenpunkte im Kreis anordnen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+msgid "Move the selected nodes into a circle."
+msgstr "Gewählte Punkte auf eine Kreisform bringen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:39
+msgid "Please select at least four nodes."
+msgstr "Bitte wählen Sie mindestens vier Punkte aus."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:56
+msgid "Rename layer"
+msgstr "Ebene umbenennen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:44
+msgid "Also rename the file"
+msgstr "Auch die Datei umbenennen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:80
+#, java-format
+msgid "Could not rename the file \"{0}\"."
+msgstr "Kann die Datei \"{0}\" nicht umbenennen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo"
+msgstr "Rückgängig"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo the last action."
+msgstr "Letzte Aktion zurücknehmen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download from OSM"
+msgstr "Von OSM laden"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download map data from the OSM server."
+msgstr "Kartendaten vom OSM Server laden"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:102
+msgid ""
+"Move and zoom the image like the main map. Select an area to download by "
+"dragging."
+msgstr ""
+"Sie können verschieben und Zoomen wie auf der Hauptkarte. Wählen Sie den zu "
+"ladenden Bereich durch einfügen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:105
+msgid "Bounding box"
+msgstr "Zeichen-Box"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:106
+msgid "min lat"
+msgstr "min Breite"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:108
+msgid "min lon"
+msgstr "min Länge"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:110
+msgid "max lat"
+msgstr "max Breite"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:112
+msgid "max lon"
+msgstr "max Länge"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:122
+msgid "Download the following data:"
+msgstr "Lade die folgenden Daten aus dem Internet:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:129
+msgid "URL from www.openstreetmap.org"
+msgstr "URL von www.openstreetmap.org"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:182
+msgid "Bookmarks"
+msgstr "Lesezeichen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:198
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:344
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/AddCommand.java:52
+msgid "Add"
+msgstr "Hinzufügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:203
+msgid "Please enter the desired coordinates first."
+msgstr "Bitte wählen Sie zuerst die Koordinaten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:206
+msgid "Please enter a name for the location."
+msgstr "Bitte geben Sie einen Namen für den Ort an."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:214
+msgid "Remove"
+msgstr "Entfernen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:219
+msgid "Select a bookmark first."
+msgstr "Bitte wählen Sie ein Lesezeichen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:238
+msgid "Choose an area"
+msgstr "Bereich auswählen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:261
+msgid "Please enter the desired coordinates or click on a bookmark."
+msgstr ""
+"Bitte geben Sie die Koordinaten an oder wählen Sie eine Lesezeichen aus."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:263
+msgid "Please select at least one download data type."
+msgstr "Bitte wählen Sie mindestens einen Quelle zum laden aus."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit"
+msgstr "Beenden"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit the application."
+msgstr "Beende das Programm."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "About"
+msgstr "Über"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "Display the about screen."
+msgstr "Über dieses Programm"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:67
+#, java-format
+msgid "Java OpenStreetMap Editor Version {0}"
+msgstr "Java OpenStreetMap Editor Version {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:68
+#, java-format
+msgid "last change at {0}"
+msgstr "Letzte Änderung am {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:69
+#, java-format
+msgid "Java Version {0}"
+msgstr "Java  Version {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:70
+msgid "Homepage"
+msgstr "Webseite"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:72
+msgid "Bug Reports"
+msgstr "Fehler melden:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:74
+msgid "News about JOSM"
+msgstr "Neues über JOSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:78
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java:25
+msgid "Info"
+msgstr "Info"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:79
+msgid "Readme"
+msgstr "Bitte lesen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:80
+msgid "Revision"
+msgstr "Version"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:81
+msgid "Contribution"
+msgstr "Mitwirkung"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:85
+msgid "About JOSM..."
+msgstr "Über JOSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:95
+msgid "File could not be found."
+msgstr "Datei wurde nicht gefunden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:25
+msgid "No document open so nothing to save."
+msgstr "Kein Dokument geöffnet, deshalb nichts zu speichern."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "The document contains no data. Save anyway?"
+msgstr "Das Dokument enthält keine Daten. Trotzdem speichern?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "Empty document"
+msgstr "Leeres Dokument"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid ""
+"There are unresolved conflicts. Conflicts will not be saved and handled as "
+"if you rejected all. Continue?"
+msgstr ""
+"Es gibt ungelöste Konflikte. Konflikte können nicht gespeichert werden. "
+"Sollen alle Konflikte abgewiesen werden?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid "Conflicts"
+msgstr "Konflikte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "File exists. Overwrite?"
+msgstr "Datei existiert. Überschreiben?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "Overwrite"
+msgstr "Überschreiben"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:29
+msgid "data"
+msgstr "Daten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:30
+msgid "selection"
+msgstr "Auswahl"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:31
+msgid "layer"
+msgstr "Ebene"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:32
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:141
+msgid "conflict"
+msgstr "Konflikt"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:40
+#, java-format
+msgid "Auto Scale: {0}"
+msgstr "Automatisch skalieren: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:43
+#, java-format
+msgid "Auto zoom the view (to {0}. Disabled if the view is moved)"
+msgstr ""
+"Den Bereich automatisch zoomen (nach {0}. Ausgeschaltet wenn der Bereich "
+"bewegt wird)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save as"
+msgstr "Speichern als"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save the current data to a new file."
+msgstr "Speichere die aktuellen Daten als neue Datei."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:25
+msgid "OSM Server Files (.osm .xml)"
+msgstr "OSM Server Dateien (.osm .xml)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:26
+msgid "GPX Files (.gpx)"
+msgstr "GPX Dateien (.gpx)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:27
+msgid "CSV Files (.csv .txt)"
+msgstr "CSV Dateien (.csv .txt)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload to OSM"
+msgstr "Zum OSM speichern"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload all changes to the OSM server."
+msgstr "Kartendaten zum OSM Server speichern"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:41
+msgid "Nothing to upload. Get some data first."
+msgstr "Nichts geändert. Kann nichts hoch-laden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:46
+msgid "There are unresolved conflicts. You have to resolve these first."
+msgstr "Es gibt ungelöste Konflikte, die zuerst bearbeitet werden müssen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:75
+msgid "Uploading data"
+msgstr "Sende Daten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:97
+msgid "No changes to upload."
+msgstr "Kann keine Änderungen speichern."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:106
+msgid "Objects to add:"
+msgstr "Neue Objekte:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:114
+msgid "Objects to modify:"
+msgstr "Geänderte Objekte:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:122
+msgid "Objects to delete:"
+msgstr "Zu löschende Objekte:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:129
+msgid "Upload this changes?"
+msgstr "Diese Änderungen vornehmen?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:54
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:55
+msgid "Help"
+msgstr "Hilfe"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:106
+msgid "Can only edit help pages from JOSM Online Help"
+msgstr "Kann nur Hilfeseite von JOSM Online Hilfe bearbeiten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:39
+#, java-format
+msgid "Downloading {0} segment"
+msgid_plural "Downloading {0} segments"
+msgstr[0] "Hole {0} Abschnitt"
+msgstr[1] "Hole {0} Abschnitte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download incomplete objects"
+msgstr "Unvollständige Objekte nachladen?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download all (selected) incomplete ways from the OSM server."
+msgstr "Alle (ausgewählten) unvollständigen Wege vom OSM Server laden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:66
+msgid "Please select an incomplete way."
+msgstr "Bitte einen unvollständigen Weg auswählen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+#, java-format
+msgid "Download {0} incomplete ways?"
+msgstr "{0} unvollständige Wege nachladen?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+msgid "Download?"
+msgstr "Daten laden?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo"
+msgstr "Wiederherstellen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo the last undone action."
+msgstr "Wiederhole die letzte zurückgenommene Aktion."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:40
+msgid ""
+"Note: GPL is not compatible to the OSM license. Do not upload GPL licensed "
+"tracks."
+msgstr ""
+"Achtung: Die GPL ist nicht konform zur OSM-Lizenz. Keine Tracks die unter "
+"GPL  stehen hoch-spielen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export to GPX"
+msgstr "In GPX exportieren"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export the data to GPX file."
+msgstr "Die Daten ins GPX-Format exportieren."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:51
+msgid "Nothing to export. Get some data first."
+msgstr "Nichts zu exportieren. Erzeugen Sie zuerst ein paar Daten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:75
+msgid "gps track description"
+msgstr "GPS Track-Beschreibung"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:81
+msgid "Add author information"
+msgstr "Information zum Autor hinzufügen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:84
+msgid "Real name"
+msgstr "Voller Name"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:88
+msgid "Email"
+msgstr "E-Mail"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:92
+msgid "Copyright (URL)"
+msgstr "Copyright (URL)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:96
+msgid "Predefined"
+msgstr "Vordefiniert"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:98
+msgid "Copyright year"
+msgstr "Jahr des Copyrights"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:106
+msgid "Keywords"
+msgstr "Schlüsselwörter"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:110
+msgid "Export options"
+msgstr "Export-Einstellungen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+#, java-format
+msgid "Error while exporting {0}"
+msgstr "Fehler beim exportieren von. {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+msgid "Error"
+msgstr "Fehler"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:185
+msgid "Choose a predefined license"
+msgstr "Wähle eine vordefinierte Lizenz"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save"
+msgstr "Speichern"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save the current data."
+msgstr "Speichere die aktuellen Daten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:58
+msgid "CSV output not supported yet."
+msgstr "CSV Ausgabe ist noch nicht möglich."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:61
+msgid "Unknown file extension."
+msgstr "Dateiendung unbekannt."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:67
+msgid "An error occoured while saving."
+msgstr "Beim Speichern ist ein Fehler aufgetreten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:44
+#, java-format
+msgid ""
+"The plugin {0} throwed an exception: {1}\n"
+"It may be outdated. Please contact the plugin's autor.\n"
+"This message will not shown again until JOSM is restarted."
+msgstr ""
+"Das Plugin {0} ist auf die Ausnahmebedingung (Exception) gestoßen: {1}\n"
+"Vielleicht ist es veraltet? Bitte nehmen Sie Kontakt mit dem Plugin Autor "
+"auf.\n"
+"Diese Meldung erscheint erst wieder mit dem nächsten Neustart des Programmes."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Do nothing"
+msgstr "Nichts tun"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Report Bug"
+msgstr "Fehler melden"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:51
+msgid ""
+"An unexpected exception occoured.\n"
+"\n"
+"This is always a coding error. If you are running the latest\n"
+"version of JOSM, please consider be kind and file a bug report."
+msgstr ""
+"Ein unvorhergesehener Fehler trat auf.\n"
+"\n"
+"Dies ist immer ein Programmierfehler. Wenn Sie die neueste\n"
+"Version von JOSM einsetzen, seine Sie bitte so gut und melden \n"
+"uns den Fehler als \"Bug Report\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:54
+msgid "Unexpected Exception"
+msgstr "Unerwarteter Fehler"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:62
+msgid ""
+"Please send this to josm@eigenheimstrasse.de\n"
+"\n"
+msgstr ""
+"Bitte senden Sie diesen an josm@eigenheimstrasse.de\n"
+"\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:83
+msgid ""
+"Please send an email with the following information to josm@eigenheimstrasse."
+"de"
+msgstr ""
+"Bitte schicken Sie eine E-Mail mit den folgenden Text an "
+"josm@eigenheimstrasse.de"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:12
+msgid "Ctrl-"
+msgstr "Strg-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:14
+msgid "Alt-"
+msgstr "Alt-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:16
+msgid "AltGr-"
+msgstr "AltGr-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:18
+msgid "Shift-"
+msgstr "Shift-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/plugins/PluginException.java:17
+#, java-format
+msgid "An error occoured in plugin {0}"
+msgstr "Ein Fehler ist im Plugin {0} aufgetreten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:63
+msgid "Load Selection"
+msgstr "Lade Auswahl"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:70
+#, java-format
+msgid "Contact {0}..."
+msgstr "Verbinde zu {0} ..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:75
+msgid "Downloading..."
+msgstr "Lade Daten ..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:87
+#, java-format
+msgid "Could not read from url: \"{0}\""
+msgstr "Kann die URL \"{0}\" nicht lesen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:90
+#, java-format
+msgid "Parsing error in url: \"{0}\""
+msgstr "Kann die URL \"{0}\" nicht parsen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Current Selection"
+msgstr "Aktuelle Auswahl"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Open a selection list window."
+msgstr "Öffne ein Fenster mit der aktuellen Auswahl."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:143
+msgid "Please enter a search string."
+msgstr "Bitte geben Sie einen Suchbegriff ein."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:145
+msgid ""
+"<html>Fulltext search.<ul><li><code>Baker Street</code>  - 'Baker' and "
+"'Street' in any key or name.</li><li><code>\"Baker Street\"</code>  - 'Baker "
+"Street' in any key or name.</li><li><code>name:Bak</code>  - 'Bak' anywhere "
+"in the name.</li><li><code>-name:Bak</code>  - not 'Bak' in the name.</"
+"li><li><code>foot:</code>  - key=foot set to any value.</ul></html>"
+msgstr ""
+"<html>Volltext suche. <ul> <li><code>Hausbrucher Straße</code>  - "
+"'Hausbrucher' and 'Straße' in jedem Schlüssel oder Wert.</li> <li><code>"
+"\"Hausbrucher Straße\"</code> - 'Hausbrucher Straße'  in jedem Schlüssel "
+"oder Wert.</li> <li><code>name:Haus</code>  'Haus' irgendwo im Namen</li> "
+"<li><code>-name:Haus</code>  kein 'Haus' in dem Namen.</li> <li><code>Bla:</"
+"code> - ein Objekt mit Schlüssel  'Bla' und irgend einen Wert</li></ul></"
+"html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:153
+msgid "replace selection"
+msgstr "Auswahl ersetzen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:154
+msgid "add to selection"
+msgstr "zur Auswahl hinzufügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:155
+msgid "remove from selection"
+msgstr "aus der Auswahl entfernen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:172
+msgid "Search"
+msgstr "Suche"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Conflict"
+msgstr "Konflikt"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Merging conflicts."
+msgstr "Konflikte lösen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:63
+msgid "Resolve"
+msgstr "Lösen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:64
+msgid "Open a merge dialog of all selected items in the list above."
+msgstr ""
+"Öffnet eine Dialog-Fenster mit dem gewählten Objekten aus der obigen Liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:73
+msgid "Select"
+msgstr "Wähle aus"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:74
+msgid ""
+"Set the selected elements on the map to the selected items in the list above."
+msgstr ""
+"Setze die gewählten Elemente auf der Karte auf die obige Liste der "
+"ausgewählten Objekte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:108
+msgid "Please select something from the conflict list."
+msgstr "Bitte wählen Sie Einträge aus der Konflikte-Liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:117
+msgid "Resolve Conflicts"
+msgstr "Konflikte entfernen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:82
+msgid "Click Reload to refresh list"
+msgstr "\"Neu Laden\" anklicken um die Liste zu aktualisieren."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:83
+msgid "Reload"
+msgstr "Neu Laden"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:84
+msgid "Revert"
+msgstr "Zücknehmen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "History"
+msgstr "Geschichte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "Display the history of all selected items."
+msgstr "Die Geschichte aller ausgewählten Elemente ansehen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:225
+msgid "Object"
+msgstr "Objekt"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+msgid "Date"
+msgstr "Datum"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:131
+msgid "Reload all currently selected objects and refresh the list."
+msgstr "Alle gewählten Objekte neu laden und die Liste neu aufbauen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:180
+msgid "Not implemented yet."
+msgstr "Noch nicht fertig."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:138
+msgid ""
+"Revert the state of all currently selected objects to the version selected "
+"in the history list."
+msgstr ""
+"Die ausgewählten Objekte in die gewählten Version in der Versionsliste "
+"zurückführen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Command Stack"
+msgstr "Befehlsliste"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Open a list of all commands (undo buffer)."
+msgstr "Zeige alle bislang ausgeführten (und rückänderbaren) Befehle an."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:99
+msgid "Please select the objects you want to change properties for."
+msgstr ""
+"Bitte wählen Sie die Objekte an denen die Eigenschaften geändert werden "
+"sollen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+#, java-format
+msgid "This will change {0} object."
+msgid_plural "This will change {0} objects."
+msgstr[0] "Dies wird ein {0} Objekt ändern"
+msgstr[1] "Dies wird {0} Objekte ändern."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#, java-format
+msgid ""
+"Please select a new value for \"{0}\".<br>(Empty string deletes the key.)"
+msgstr ""
+"Bitte geben Sie einen neuen Wert für \"{0}\" an.<br>(Leereingabe löscht den "
+"Eintrag.)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:114
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:178
+msgid "Change values?"
+msgstr "Wert ändern?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:132
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:284
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:369
+msgid "<different>"
+msgstr "<verschieden>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:151
+msgid "Please select objects for which you want to change properties."
+msgstr ""
+"Bitte die Objekte auswählen an denen Eigenschaften geändert werden sollen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+msgid "Please select a key"
+msgstr "Bitte wählen Sie einen Schlüssel"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:169
+msgid "Please select a value"
+msgstr "Bitte wählen Sie einen Wert"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Properties"
+msgstr "Einstellungen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Property for selected objects."
+msgstr "Einstellungen der Ausgewählten Objekte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:241
+#, java-format
+msgid "Could not read annotation preset source: {0}"
+msgstr "Kann die voreingestellte Quelle nicht laden: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:244
+#, java-format
+msgid "Error parsing {0}: "
+msgstr "Fehler beim Parsen. {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:263
+#, java-format
+msgid "Change {0} object"
+msgid_plural "Change {0} objects"
+msgstr[0] "Ändere {0} Objekt"
+msgstr[1] "Ändere {0} Objekte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Key"
+msgstr "Schlüssel"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Value"
+msgstr "Wert"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:309
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:359
+msgid "Please select the row to edit."
+msgstr "Bitte wählen sie eine Zeile zum bearbeiten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:314
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:374
+msgid "Please select the row to delete."
+msgstr "Bitte wählen Sie die löschende Zeile."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+msgid "Add a new key/value pair to all objects"
+msgstr "Füge ein neues Paar aus Schlüssel und Wert zu allen Objekten hinzu."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:355
+#: ../../plugins/grid/src/grid/GridPlugin.java:43
+#: ../../plugins/grid/src/grid/GridPlugin.java:49
+msgid "Edit"
+msgstr "Bearbeiten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+msgid "Edit the value of the selected key for all objects"
+msgstr "Den Wert des Schlüssels für alle Objekte ändern"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+msgid "Delete the selected key in all objects"
+msgstr "Den Schlüssel aus allen Objekten löschen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:60
+msgid "Delete the selected layer."
+msgstr "Ausgewählte Ebene löschen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:82
+msgid "Show/Hide"
+msgstr "Zeigen/Verstecken"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:83
+msgid "Toggle visible state of the selected layer."
+msgstr "Schaltet die Ebene zwischen sichtbar und unsichtbar um."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Layers"
+msgstr "Ebenen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Open a list of all loaded layers."
+msgstr "Öffnet eine Liste alle geladenen Ebenen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:196
+msgid "Move the selected layer one row up."
+msgstr "Gewählte Ebene eine Reihe höher schieben"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:202
+msgid "Move the selected layer one row down."
+msgstr "Gewählte Ebene eine Reihe tiefer schieben."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:216
+msgid "Merge the selected layer into the layer directly below."
+msgstr "Gewählte Ebene in die Ebene direkt darunter integrieren."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:160
+#, java-format
+msgid "Unknown type at line {0}"
+msgstr "Unbekannter Typ in Zeile {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:178
+#, java-format
+msgid "Cannot have a writable combobox with default values (line {0})"
+msgstr "Kann keine schreibbare Combobox mit Defaultwerten haben (Zeile {0})"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:183
+#, java-format
+msgid ""
+"display_values ({0}) and values ({1}) must be of same number of elements."
+msgstr ""
+"display_values ({0}) und values ({1}) müssen die selbe Anzahl an Elementen "
+"haben."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:184
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:185
+msgid "element"
+msgid_plural "elements"
+msgstr[0] "Element"
+msgstr[1] "Elemente"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:190
+#, java-format
+msgid "Unknown annotation object {0} at line {1} column {2}"
+msgstr "Unbekannt Vermerktes Objekt {0} an Zeile {1} Spalte {2}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:258
+msgid "Change Properties"
+msgstr "Einstellungen ändern"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:161
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:66
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "node"
+msgid_plural "nodes"
+msgstr[0] "Knotenpunkt"
+msgstr[1] "Knotenpunkte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:162
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:136
+msgid "segment"
+msgid_plural "segments"
+msgstr[0] "Abschnitt"
+msgstr[1] "Abschnitte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:163
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:92
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:137
+msgid "way"
+msgid_plural "ways"
+msgstr[0] "Weg"
+msgstr[1] "Wege"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:178
+msgid "There were conflicts during import."
+msgstr "Es gab Konflikte beim Importieren.w"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:317
+#, java-format
+msgid "{0} consists of:"
+msgstr "{0} besteht aus:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:321
+#, java-format
+msgid " ({0} deleted.)"
+msgstr "({0} gelöscht)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:57
+msgid "Convert to data layer"
+msgstr "Zur Daten-Ebene konvertieren"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:159
+msgid "track"
+msgid_plural "tracks"
+msgstr[0] "Track"
+msgstr[1] "Tracks"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:160
+msgid "point"
+msgid_plural "points"
+msgstr[0] "Punkt"
+msgstr[1] "Punkte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:185
+#, java-format
+msgid "a track with {0} point"
+msgid_plural "a track with {0} points"
+msgstr[0] "Ein Track mit einem Punkt"
+msgstr[1] "Ein Track mit {0} Punkten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} consists of {1} track"
+msgid_plural "{0} consists of {1} tracks"
+msgstr[0] "{0} besteht aus {1} Track"
+msgstr[1] "{0} besteht aus {1} Tracks"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} point"
+msgid_plural "{0} points"
+msgstr[0] "{0} Punkt"
+msgstr[1] "{0} Punkte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:193
+msgid "Customize line drawing"
+msgstr "Linen aussehen anpassen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:197
+msgid "Use global settings."
+msgstr "Globale Einstellungen benutzen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:198
+msgid "Draw lines between points for this layer."
+msgstr "Zeichne Linien zwischen Punkten dieser Ebene."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:199
+msgid "Do not draw lines between points for this layer."
+msgstr "Keine Linien zwischen Punkten dieser Ebene zeichnen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:211
+msgid "Select line drawing options"
+msgstr "Wähle die Zeichen-Einstellungen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:222
+msgid "Customize Color"
+msgstr "Farben anpassen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "OK"
+msgstr "Okay"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:24
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "Default"
+msgstr "Voreinstellung"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:228
+msgid "Choose a color"
+msgstr "Farbe auswählen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:243
+msgid "Import images"
+msgstr "Bilder importieren"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:255
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:349
+msgid "JPEG images (*.jpg)"
+msgstr "JPEG Bilder (*.jpg)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:90
+#, java-format
+msgid "Images for {0}"
+msgstr "Bilder für {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:95
+msgid "Read GPS..."
+msgstr "Lese GPS..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:102
+#, java-format
+msgid "No time for point {0} x {1}"
+msgstr "Kein Zeit für Punkt {0} x {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:107
+#, java-format
+msgid "Cannot read time \"{0}\" from point {1} x {2}"
+msgstr "Kann die Zeit \"{0}\" vom Punkt {1} x {2} nicht lesen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:114
+msgid "No images with readable timestamps found."
+msgstr "Keine Bilder mit lesbaren Zeitstempel gefunden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:125
+#, java-format
+msgid "Reading {0}..."
+msgstr "Lese {0} ...."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:191
+msgid "Geotagged Images"
+msgstr "Bilder mit Ortsbezug"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:269
+#, java-format
+msgid "GPS start: {0}"
+msgstr "GPS Start: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:270
+#, java-format
+msgid "GPS end: {0}"
+msgstr "GPS Ende: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:272
+#, java-format
+msgid "current delta: {0}s"
+msgstr "Momentaner Unterschied {0}s"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:273
+msgid "timezone difference: "
+msgstr "Zeitzonen Unterschied: "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+msgid "image"
+msgid_plural "images"
+msgstr[0] "Bild"
+msgstr[1] "Bilder"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+#, java-format
+msgid "{0} within the track."
+msgstr "{0} innerhalb des Tracks."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:338
+msgid "Sync clock"
+msgstr "Uhrzeit Synchronisieren"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:395
+#, java-format
+msgid "The date in file \"{0}\" could not be parsed."
+msgstr "Die Datei {0} kann nicht verarbeitet werden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:399
+#, java-format
+msgid "There is no EXIF time within the file \"{0}\"."
+msgstr "Es gibt keine EXIF Zeitinformationen in der Datei {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:403
+msgid "Image"
+msgstr "Bild"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:405
+msgid "Enter shown date (mm/dd/yyyy HH:MM:SS)"
+msgstr "Datum eingeben (mm/tt/jjjj HH:MM:SS)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:408
+msgid "GPS unit timezome (difference to photo)"
+msgstr "Zeitzone des GPS Geräts (Unterschied zum Foto)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:416
+msgid "Syncronize Time with GPS Unit"
+msgstr "Zeit mit GPS Gerät synchronisieren"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:432
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:434
+msgid "Time entered could not be parsed."
+msgstr "Die eingegebene Zeit ist nicht maschinenlesbar."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:74
+msgid "Could not read bookmarks."
+msgstr "Kann Lesezeichen nicht lesen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:98
+msgid "Could not write bookmark."
+msgstr "Kann Lesezeichen nicht schreiben."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:123
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:171
+msgid "Java Open Street Map - Editor"
+msgstr "Java OpenStreetMap - Editor "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:163
+msgid "layer not in list."
+msgstr "Ebene nicht in der Liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:55
+msgid "Hint: Some changes came from uploading new data to the server."
+msgstr ""
+"Hinweis: Einige Änderungen sind durch das Übertragen zum Server entstanden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:57
+msgid "There are unsaved changes. Really quit?"
+msgstr "Es gibt ungesicherte Daten. Wirklich beenden?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:58
+msgid "Unsaved Changes"
+msgstr "Daten nicht gespeichert"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:144
+msgid "Java OpenStreetMap Editor"
+msgstr "Java OpenStreetMap - Editor "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:145
+msgid "usage"
+msgstr "Benutzung"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:147
+msgid "options"
+msgstr "Optionen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:148
+msgid "Show this help"
+msgstr "Zeige diese Hilfe"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:149
+msgid "Standard unix geometry argument"
+msgstr "Standard Unix Geometrie Argument"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:150
+msgid "Download the bounding box"
+msgstr "Lade den Zeichen-Kasten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:151
+msgid "Download the location at the url (with lat=x&lon=y&zoom=z)"
+msgstr "Lade den Ort an der URL (mit lat=x&lon=y&zomm=z)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:152
+msgid "Open file (as raw gps, if .gpx or .csv)"
+msgstr "Datei öffnen (als roh GPS, wenn .gpx oder .csv)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:153
+msgid "Download the bounding box as raw gps"
+msgstr "Lade den Zeichen-Kasten als Roh-GPS"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:154
+msgid "Select with the given search"
+msgstr "Auswählen mit der angegebenen Suche"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:155
+msgid "Don't launch in fullscreen mode"
+msgstr "Nicht im Vollbildmodus starten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:156
+msgid "Reset the preferences to default"
+msgstr "Die Einstellungen auf Defaultwerte zurückstellen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:157
+msgid "Set the language. Example: "
+msgstr "Die Sprache Einstellen. Beispiel:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:158
+msgid "examples"
+msgstr "Beispiele"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:164
+msgid ""
+"Parameters are read in the order they are specified, so make sure you load\n"
+"some data before --selection"
+msgstr ""
+"Parameter werden in der Reihenfolge ausgewertet, wie sie angegeben werden. "
+"Stellen Sie also sicher, das Daten existieren, bevor der Parameter --"
+"selection verwendet wird."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:166
+msgid "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+msgstr "Anstatt --download<bbox> ist auch osm://<bbox> möglich\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:52
+msgid "Layer"
+msgstr "Ebene"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:56
+msgid "Files"
+msgstr "Dateien"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:57
+msgid "Connection"
+msgstr "Verbindung"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:22
+msgid "Contacting the OSM server..."
+msgstr "Versuche OSM Server zu erreichen...."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:223
+msgid "Lat/Lon"
+msgstr "Breite/Länge"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:232
+#, java-format
+msgid "{0} object has conflicts:"
+msgid_plural "{0} objects have conflicts:"
+msgstr[0] "{0} Objekt hat Konflikte:"
+msgstr[1] "{0} Objekte haben Konflikte:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:235
+msgid "my version:"
+msgstr "meine Version:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:241
+msgid "their version:"
+msgstr "deren Version:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:247
+msgid "resolved version:"
+msgstr "neue Version:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:77
+msgid "Error while parsing"
+msgstr "Fehler beim Parsen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:80
+msgid "File Not found"
+msgstr "Datei wurde nicht gefunden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "string"
+msgstr "Zeichenkette"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+msgid "Name of the user."
+msgstr "Name des Benutzers."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+msgid "OSM Password."
+msgstr "OSM Passwort."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "Size the applet to the given geometry (format: WIDTHxHEIGHT)"
+msgstr "Ändere die Größe auf den angegeben Wert (Format: Breitex Höhe)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid "string;string;..."
+msgstr "Zeichenkette;Zeichenkette;..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+msgid ""
+"Download each. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a "
+"filename"
+msgstr ""
+"Lade Daten. Kann x1,y1,x2,y2; eine URL mit lat=y&lon=x&zomm=z oder ein "
+"Dateiname sein."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+msgid ""
+"Download each as raw gps. Can be x1,y1,x2,y2 an url containing "
+"lat=y&lon=x&zoom=z or a filename"
+msgstr ""
+"Alles als Roh GPS Daten speichern. Kann x1,y1,x2,y2, eine URL mit "
+"lat=y&llon=x&zoom=z oder ein Dateiname sein."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid ""
+"Add each to the initial selection. Can be a google-like search string or an "
+"url which returns osm-xml"
+msgstr ""
+"Alle zu der Initialen Selektion hinzufügen. Kann eine Google ähnliche "
+"Suchanfrage oder eine URL  auf ein osm-xml Dokument sein."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "any"
+msgstr "jeder"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "If specified, reset the configuration instead of reading it."
+msgstr ""
+"Wenn angegeben, wird die Konfiguration zurückgesetzt anstatt sie zu lesen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:65
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:68
+msgid "Username"
+msgstr "Benutzername"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:68
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:71
+msgid "Password"
+msgstr "Passwort"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:123
+msgid "You have to restart JOSM for some settings to take effect."
+msgstr ""
+"Sie müssen das Programm neu starten damit die Einstellungen sichtbar werden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:185
+msgid "Draw lines between raw gps points."
+msgstr "Zeichne Linien zwischen Roh GPS Punkten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:189
+msgid "Force lines if no segments imported."
+msgstr "Erzwingt Linien, wenn keine Abschnitte importiert werden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:190
+msgid "Draw large GPS points."
+msgstr "Zeichne große GPS Punkte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:191
+msgid "Draw Direction Arrows"
+msgstr "Zeichne Richtungspfeile"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:250
+msgid ""
+"Force drawing of lines if the imported data contain no line information."
+msgstr ""
+"Das Zeichnen von Linien erzwingen, wenn die importierten Daten keine Linien-"
+"Informationen enthalten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:254
+msgid "Draw larger dots for the GPS points."
+msgstr "Zeichnet größere Punkte für GPS-Punkte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:255
+msgid "Draw direction hints for all segments."
+msgstr "Zeichne Pfeilrichtung für alle Abschnitte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:306
+msgid "Color"
+msgstr "Farbe"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:307
+msgid "Name"
+msgstr "Name"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:328
+msgid "Choose"
+msgstr "Wähle"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:332
+msgid "Please select a color."
+msgstr "Bitte eine Farbe wählen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:337
+#, java-format
+msgid "Choose a color for {0}"
+msgstr "Eine Farbe für {0} auswählen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:347
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:361
+msgid "Annotation preset source"
+msgstr "Voreinstellungsquelle"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:386
+msgid "The base URL to the OSM server (REST API)"
+msgstr "Die Basis URL des OSM Servers (REST API)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:387
+msgid "Login name (email) to the OSM account."
+msgstr "Benutzername (E-Mail) für den OSM Server."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:388
+msgid ""
+"Login password to the OSM account. Leave blank to not store any password."
+msgstr ""
+"Passwort für den OSM Server. Leer lassen, wenn kein Passwort gespeichert "
+"werden soll."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:389
+msgid "The base URL to the server retrieving WMS background pictures from."
+msgstr "Die Basis URL für WMS Hintergrund-Bilder."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:390
+msgid ""
+"<html>Import string specification. lat/lon and time are imported.<br><b>lat</"
+"b>: The latitude coordinate<br><b>lon</b>: The longitude "
+"coordinate<br><b>time</b>: The measured time as string<br><b>ignore</b>: "
+"Skip this field<br>An example: \"ignore ignore lat lon\" will use ' ' as "
+"delimiter, skip the first two values and read then lat/lon.<br>Other "
+"example: \"lat,lon\" will just read lat/lon values comma seperated.</html>"
+msgstr ""
+"<html>Import Spezifikation. Länge/Breite und Zeit wird importiert<br><b>lat</"
+"b>:Die Längen Koordinatenangabe<br><b>lon</b>: Die Breiten "
+"Koordinatenangabe<br><b>time</b>: Die gemessene Zeit als "
+"Zeichenkette<br><b>ignore</b>: Lasse dieses Feld aus<br> Ein Beispiel: "
+"\"ignore ignore lat lon\" wird ' ' als Trennzeichen, läßt die ersten zwei "
+"Werte aus und ließt dann Länge und Breite.<br>Anderes Beispiel: \"lat,lon\" "
+"ließt einfach die Länge und Breite durch Komma getrennt.</html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:397
+msgid ""
+"If your gps device draw to few lines, select this to draw lines along your "
+"way."
+msgstr ""
+"Wenn Ihr GPS Gerät zu wenig Linien zeichnet, sollten diese Option gewählt "
+"werden um die Linien entlang des Weges zu vervollständigen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:398
+msgid "Colors used by different objects in JOSM."
+msgstr "Farben die durch verschieden Objekte in JOSM benutzt werden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:399
+msgid ""
+"The sources (url or filename) of annotation preset definition files. See "
+"http://josm.eigenheimstrasse.de/wiki/AnnotationPresets for help."
+msgstr ""
+"Die Quellen (URL oder Dateiname) für Voreinstellungsdateien. Siehe http://"
+"josm.eigenheimstrasse.de/wiki/AnnotationPresets für Hilfe."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:400
+msgid "Add a new annotation preset source to the list."
+msgstr "Eine neue Voreinstellungsdatei zu der Liste hinzufügen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:401
+msgid "Delete the selected source from the list."
+msgstr "Ausgewählte Quelle löschen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid "Display Settings"
+msgstr "Anzeige-Einstellungen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid ""
+"Various settings that influence the visual representation of the whole "
+"program."
+msgstr ""
+"Diverse Optionen die die Visuell Repräsentation des Programms beeinflussen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:407
+msgid "Look and Feel"
+msgstr "Verhalten und Aussehen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:414
+msgid "Colors"
+msgstr "Farben"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings"
+msgstr "Verbindungseinstellungen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings to the OSM server."
+msgstr "Verbinungseinstellungen des OSM Servers."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:422
+msgid "Base Server URL"
+msgstr "Basis Rechner URL"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:424
+msgid "OSM username (email)"
+msgstr "OSM-Benutzername (E-Mail)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:426
+msgid "OSM password"
+msgstr "OSM Passwort"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:428
+msgid ""
+"<html>WARNING: The password is stored in plain text in the preferences file."
+"<br>The password is transfered in plain text to the server, encoded in the "
+"url.<br><b>Do not use a valuable Password.</b></html>"
+msgstr ""
+"<html>WARNUNG: Das Passwort wird im Klartext in der Einstellungsdatei "
+"gespeichert.<br>Das Passwort wird im Klartext (in der URL) zum Server "
+"übertragen.<br><b>Benutzen Sie kein wertvolles Passwort.</b></html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:437
+msgid "CSV import specification (empty: read from first line in data)"
+msgstr "CSV Import Definition (leer: lese aus der ersten Zeile der Daten)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Map Settings"
+msgstr "Karten-Einstellungen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Settings for the map projection and data interpretation."
+msgstr "Einstellungen der Karten-Projektion und Daten-Interpretation."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:443
+msgid "Projection method"
+msgstr "Projektionsmethode"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:446
+msgid "Annotation preset sources"
+msgstr "Voreinstellungs-Quellen:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Plugins"
+msgstr "Plugins"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Configure available Plugins."
+msgstr "Verfügbare Plugins konfigurieren."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:465
+msgid "Get more plugins"
+msgstr "Mehr Plugins holen"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:45
+#, java-format
+msgid "Downloading points {0} to {1}..."
+msgstr "Lade Punkte {0} bis {1}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:89
+msgid "Downloading OSM data..."
+msgstr "Hole OSM-Daten...."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:101
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:103
+msgid "Unknown version"
+msgstr "Version unbekannt."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:119
+msgid "Found <seg> tag on non-way."
+msgstr "<seg>-Tag auf einen Nicht-Weg gefunden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:122
+msgid "Incomplete segment with id=0"
+msgstr "Unvollständiger Abschnitt mit id=0"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:131
+msgid "NullPointerException. Possible some missing tags."
+msgstr "NullPointerException. Vielleicht fehlende Tags."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:146
+msgid "Illegal object with id=0"
+msgstr "Illegales Objekt mit id=0"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:154
+#, java-format
+msgid "Couldn''t read time format \"{0}\"."
+msgstr "Kann das Zeit-Format \"{0}\" nicht lesen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:169
+#, java-format
+msgid "Missing required attirbute \"{0}\"."
+msgstr "Erforderliches Attribut \"{0}\" nicht gefunden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:239
+msgid "Preparing data..."
+msgstr "Breite Daten vor ...."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:249
+msgid "Illformed Node id"
+msgstr "Kranken Knotenpunkt Id"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:71
+#, java-format
+msgid "Upload {0} {1} ({2})..."
+msgstr "Überspiele {0} {1} ({2})..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:185
+msgid "Unknown host"
+msgstr "Rechner unbekannt."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:43
+#: ../../plugins/waypoints/src/WaypointReader.java:55
+#, java-format
+msgid "Data error: lat value \"{0}\" is out of bound."
+msgstr "Daten Fehler: lat Wert \"{0}\" hat eine Grenze überschritten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:45
+#: ../../plugins/waypoints/src/WaypointReader.java:59
+#, java-format
+msgid "Data error: lon value \"{0}\" is out of bound."
+msgstr "Daten Fehler: lon Wert \"{0}\" hat eine Grenze überschritten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:39
+msgid "Could not detect data format string."
+msgstr "Kann das Format nicht ermitteln."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:62
+msgid ""
+"Format string in data is incomplete or not found. Try setting an manual "
+"format string in Preferences."
+msgstr ""
+"Die Format Zeile in dem Daten ist unvollständig oder nicht vorhanden. "
+"Versuchen sie das Format in den Einstellungen einzustellen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:63
+msgid ""
+"Format string is incomplete. Need at least 'lat' and 'lon' specification"
+msgstr ""
+"Die Format -Zeile ist unvollständig. Brauche mindestens 'lat' und 'lon' "
+"Spalten."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+#, java-format
+msgid "Unknown data type: \"{0}\"."
+msgstr "Unbekannter Datentyp \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+msgid "Maybe add an format string in preferences."
+msgstr "Vielleicht sollte das Format in den Einstellungen festgelegt werden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:88
+#, java-format
+msgid "Parsing error in line {0}"
+msgstr "Fehler beim parsen der Zeile {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:67
+msgid "Incorrect password or username."
+msgstr "Passwort oder Benutzername falsch."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:74
+msgid "Warning: The password is transferred unencrypted."
+msgstr "Achtung: Das Passwort wird unverschlüsselt übertragen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:78
+msgid "Save user and password (unencrypted)"
+msgstr "Benutzername und Passwort (unverschlüsselt) speichern."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:81
+msgid "Enter Password"
+msgstr "Passwort eingeben"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:116
+msgid "Aborting..."
+msgstr "Abbruch..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:80
+#, java-format
+msgid "Data error: Segment {0} is deleted but part of Way {1}"
+msgstr "Daten-Fehler: Abschnit {0} ist gelöscht aber teil des Wegs {1}."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:115
+#, java-format
+msgid "Data error: Node {0} is deleted but part of Segment {1}"
+msgstr ""
+"Daten-Fehler: Knotenpunkt {0} ist gelöscht, aber Teil des Abschnittes {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmIdReader.java:34
+msgid "Error during parse."
+msgstr "Fehler beim parsen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/PositionConflict.java:19
+msgid "position"
+msgstr "Position"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ConflictItem.java:33
+msgid "different"
+msgstr "verschieden"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:14
+msgid "deleted"
+msgstr "gelöscht"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "true"
+msgstr "wahr"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "false"
+msgstr "falsch"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:21
+msgid "none"
+msgstr "nichts"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:25
+msgid "segments"
+msgstr "Abschnitte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ToConflict.java:19
+msgid "to"
+msgstr "bis"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/FromConflict.java:19
+msgid "from"
+msgstr "von"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "new"
+msgstr "neu"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "unknown"
+msgstr "unbekannt"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:87
+#, java-format
+msgid "{0} node"
+msgid_plural "{0} nodes"
+msgstr[0] "{0} Knotenpunkt"
+msgstr[1] "{0} Knotenpunkte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:89
+msgid "incomplete"
+msgstr "unvollständig"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:134
+msgid "background"
+msgstr "Hintergrund"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:138
+msgid "incomplete way"
+msgstr "unvollständiger Weg"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:139
+msgid "selected"
+msgstr "gewählt"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:140
+msgid "gps point"
+msgstr "GPS Punkt"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:142
+msgid "scale"
+msgstr "Skala"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ConflictResolveCommand.java:77
+#, java-format
+msgid "Resolve {0} conflicts in {1} objects"
+msgstr "Löse {0} Konflikte in {1} Objekten"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangeCommand.java:37
+msgid "Change"
+msgstr "Ändere"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/SequenceCommand.java:51
+msgid "Sequence"
+msgstr "Abfolge"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Remove \"{0}\" for"
+msgstr "Entferne \"{0}\" für"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Set {0}={1} for"
+msgstr "Setze {0}={1} für"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:72
+msgid "object"
+msgid_plural "objects"
+msgstr[0] "Objekt"
+msgstr[1] "Objekte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:201
+#, java-format
+msgid "Plugin not found: {0}."
+msgstr "Plugin nicht gefunden: {0}."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:204
+#, java-format
+msgid "Could not load plugin {0}."
+msgstr "Kann das Plugin {0}nicht laden."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:228
+msgid "unnamed"
+msgstr "unbenannt"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:271
+msgid "The projection could not be read from preferences. Using EPSG:4263."
+msgstr ""
+"Die Projektion kann nicht aus den Einstellungen ermittelt werden. Benutze "
+"RPSG:4263."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:329
+#, java-format
+msgid "Ignoring malformed url: \"{0}\""
+msgstr "Ignoriere die ungültige URL: \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:341
+#, java-format
+msgid "Ignoring malformed file url: \"{0}\""
+msgstr "Ignoriere die Ungültige Datei URL: \"{0}\""
+
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:102
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:108
+msgid "View"
+msgstr "Bild"
+
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:18
+msgid "Landsat background images"
+msgstr "Landsat Hintergundbilder."
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:45
+msgid "Wrong longitude transformation for tile manager. Can't operate on {0}"
+msgstr ""
+"Falsche Breitentransformation für den Teilen-Cache. Kann nicht auf {0} "
+"operieren."
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:70
+#, java-format
+msgid "WMS layer: {0}"
+msgstr "WMS-Ebene: {0}"
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid "Annotation Preset Tester"
+msgstr "Voreinstellungsquellen Tester"
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid ""
+"Open the annotation preset test tool for previewing annotation preset "
+"dialogs."
+msgstr ""
+"Statret den Voreinstellungsquellen Test Werkzeug um diese aus zu probieren."
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:28
+msgid "You have to specify annotation sources in the preferences first."
+msgstr ""
+"Es müssen zuerst Voreinstellungsquellen in den Einstellungen definiert "
+"werden."
+
+#: ../../plugins/grid/src/grid/GridLayer.java:74
+#, fuzzy
+msgid "Grid layer:"
+msgstr "Ebene"
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+#, fuzzy
+msgid "Open waypoints file"
+msgstr "Datei öffnen."
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+#, fuzzy
+msgid "Open a waypoints file."
+msgstr "Datei öffnen."
Index: /applications/editors/josm/plugins/lang/de/src/org/openstreetmap/josm/TranslationLoader_de.java
===================================================================
--- /applications/editors/josm/plugins/lang/de/src/org/openstreetmap/josm/TranslationLoader_de.java	(revision 2549)
+++ /applications/editors/josm/plugins/lang/de/src/org/openstreetmap/josm/TranslationLoader_de.java	(revision 2549)
@@ -0,0 +1,15 @@
+package org.openstreetmap.josm;
+
+import java.util.Locale;
+
+import org.openstreetmap.josm.tools.I18n;
+import org.xnap.commons.i18n.I18nFactory;
+
+public class TranslationLoader_de {
+
+	public TranslationLoader_de() throws Exception {
+		Class<?> c = Class.forName("org.openstreetmap.josm.Translation_de");
+		Locale.setDefault(Locale.GERMAN);
+		I18n.i18n = I18nFactory.getI18n(c);
+	}
+}
Index: /applications/editors/josm/plugins/lang/en_GB/.classpath
===================================================================
--- /applications/editors/josm/plugins/lang/en_GB/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/lang/en_GB/.classpath	(revision 2549)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="lib" path="/josm/lib/gettext-commons-0.9.jar" sourcepath="C:/Download/gettext-commons-0.9-src.zip"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/lang/en_GB/.project
===================================================================
--- /applications/editors/josm/plugins/lang/en_GB/.project	(revision 2549)
+++ /applications/editors/josm/plugins/lang/en_GB/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>lang-en_GB</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/lang/en_GB/build.xml
===================================================================
--- /applications/editors/josm/plugins/lang/en_GB/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/lang/en_GB/build.xml	(revision 2549)
@@ -0,0 +1,52 @@
+<project name="lang-en_GB" default="install" basedir=".">
+
+	<property name="language" value="en_GB" />
+
+	<target name="init">
+	    <mkdir dir="bin" />
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="../../../../editors/josm/dist/josm-custom.jar" destdir="bin" />
+	</target>
+	
+	<!-- install entry point for eclipse user -->
+	<target name="jar">
+		<jar destfile="${user.home}/.josm/plugins/lang-${language}.jar" basedir="bin">
+			<manifest>
+				<attribute name="Plugin-Class" value="org.openstreetmap.josm.TranslationLoader_${language}" />
+				<attribute name="Plugin-Description" value="UK english translation." />
+				<attribute name="Plugin-Early" value="true" />
+			</manifest>
+		</jar>
+	</target>
+	
+	<target name="install" depends="compile,gettext,jar" />
+
+
+
+	<target name="find">
+		<exec executable="find" output="alljava.txt">
+			<arg line="../../../../editors/josm/src ../ -name '*.java'"/>
+		</exec>
+	</target>
+	
+	<target name="xgettext">
+		<exec executable="xgettext">
+			<arg line="-ktr -ktrn:1,2 -ktrc -kmarktr -Ljava -okeys.pot -falljava.txt"/>
+		</exec>
+	</target>
+
+	<target name="msgmerge">
+		<exec executable="msgmerge">
+			<arg line="-U ${language}.po keys.pot"/>
+		</exec>
+	</target>
+
+	<target name="gettext" depends="find,xgettext,msgmerge">
+		<exec executable="msgfmt">
+			<arg line="--java2 -dbin -rorg.openstreetmap.josm.Translation -l${language} ${language}.po"/>
+		</exec>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/lang/en_GB/en_GB.po
===================================================================
--- /applications/editors/josm/plugins/lang/en_GB/en_GB.po	(revision 2549)
+++ /applications/editors/josm/plugins/lang/en_GB/en_GB.po	(revision 2549)
@@ -0,0 +1,2210 @@
+# English (British) translation of JOSM.
+# Copyright (C) 2006 Immanuel Scholz
+# This file is distributed under the same license as the JOSM package.
+# Bruce Cowan <bruce.cowan@dsl.pipex.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: JOSM SVN\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-10-22 21:32+0200\n"
+"PO-Revision-Date: 14/10/2006 18:36+0100\n"
+"Last-Translator: Bruce Cowan <bruce.cowan@dsl.pipex.com>\n"
+"Language-Team: English/GB <josm-en_gb@eigenheimstrasse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:52
+msgid "Add segment"
+msgstr "Add segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:54
+msgid "Add a segment between two nodes."
+msgstr "Add a segment between two nodes."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:56
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:59
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:370
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:46
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:58
+msgid "Delete"
+msgstr "Delete"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:58
+msgid "Delete nodes, streets or segments."
+msgstr "Delete nodes, streets or segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:152
+msgid "Cannot delete node."
+msgstr "Cannot delete node."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:156
+msgid "This object is in use."
+msgstr "This object is in use."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:173
+msgid "Used by more than two segments."
+msgstr "Used by more than two segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:178
+msgid "Used by only one segment."
+msgstr "Used by only one segment."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:187
+msgid "Wrong direction of segments."
+msgstr "Wrong direction of segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:190
+msgid "Conflicting keys"
+msgstr "Conflicting keys"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:196
+msgid "Segments are part of different ways."
+msgstr "Segments are part of different ways."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:214
+msgid "Delete Node"
+msgstr "Delete Node"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom in by dragging. (Ctrl+up,left,down,right,+,-)"
+msgstr "Zoom in by dragging. (Ctrl+up,left,down,right,+,-)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Selection"
+msgstr "Selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Select objects by dragging or clicking."
+msgstr "Select objects by dragging or clicking."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Straight line"
+msgstr "Straight line"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Select objects in a straight line."
+msgstr "Select objects in a straight line."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:52
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "Move"
+msgstr "Move"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:54
+msgid "Move around objects that are under the mouse or selected."
+msgstr "Move around objects that are under the mouse or selected."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:102
+msgid "Cannot move objects outside of the world."
+msgstr "Cannot move objects outside of the world."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add Way"
+msgstr "Add Way"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add a new way to the data."
+msgstr "Add a new way to the data."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:95
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:143
+msgid ""
+"Warning: This way is incomplete. Try to download it, before adding segments."
+msgstr ""
+"Warning: This way is incomplete. Try to download it before adding segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+#, fuzzy, java-format
+msgid ""
+"{0} way has been selected.\n"
+"Do you wish to select all segments belonging to the way instead?"
+msgid_plural ""
+"{0} ways have been selected.\n"
+"Do you wish to select all segments belonging to the ways instead?"
+msgstr[0] ""
+"{0} way has been selected.\n"
+"Do you wish to select all segments belonging to the way instead?{0} ways "
+"have been selected.\n"
+"Do you wish to select all segments belonging to the ways instead?"
+msgstr[1] ""
+"{0} way has been selected.\n"
+"Do you wish to select all segments belonging to the way instead?{0} ways "
+"have been selected.\n"
+"Do you wish to select all segments belonging to the ways instead?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+msgid "Add segments from ways"
+msgstr "Add segments from ways"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Do you want to add all other selected segments to the one selected way?"
+msgstr ""
+"Do you want to add all other selected segments to the one selected way?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Add segments to way?"
+msgstr "Add segments to way?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder all line segments?"
+msgstr "Reorder all line segments?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder?"
+msgstr "Reorder?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+#, java-format
+msgid "Create a new way out of {0} segment?"
+msgid_plural "Create a new way out of {0} segments?"
+msgstr[0] "Create a new way out of {0} segment?"
+msgstr[1] "Create a new way out of {0} segments?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+msgid "Create new way"
+msgstr "Create new way"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add node"
+msgstr "Add node"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add a new node to the map"
+msgstr "Add a new node to the map"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add node into segment"
+msgstr "Add node into segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add a node into an existing segment"
+msgstr "Add a node into an existing segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:85
+msgid "Can not add a node outside of the world."
+msgstr "Can not add a node outside of the world."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:134
+msgid "Add Node into Segment"
+msgstr "Add Node into Segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:23
+msgid "Raw GPS data"
+msgstr "Raw GPS data"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:26
+msgid "Downloading GPS data"
+msgstr "Downloading GPS data"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:25
+msgid "OpenStreetMap data"
+msgstr "OpenStreetMap data"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:28
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:21
+msgid "Downloading data"
+msgstr "Downloading data"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:39
+msgid "No data imported."
+msgstr "No data imported."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:40
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:76
+msgid "Data Layer"
+msgstr "Data Layer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:53
+msgid "Reverse Segments"
+msgstr "Reverse Segments"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+msgid "Revert the direction of all selected Segments."
+msgstr "Revert the direction of all selected Segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:39
+msgid "Please select at least one segment."
+msgstr "Please select at least one segment."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:209
+msgid "Preferences"
+msgstr "Preferences"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+msgid "Open a preferences page for global settings."
+msgstr "Open a preferences page for global settings."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open"
+msgstr "Open"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open a file."
+msgstr "Open a file."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:73
+msgid "CSV Data import for non-GPS data is not implemented yet."
+msgstr "CSV Data import for non-GPS data is not implemented yet."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:76
+#, java-format
+msgid "Unknown file extension: {0}"
+msgstr "Unknown file extension: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:83
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:59
+#, java-format
+msgid "Error while parsing {0}"
+msgstr "Error while parsing {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:86
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:63
+#, java-format
+msgid "Could not read \"{0}\""
+msgstr "Could not read \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:71
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:287
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:302
+#, java-format
+msgid "Executing {0}"
+msgstr "Executing {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:146
+msgid "The Tool requires some data to be loaded."
+msgstr "The Tool requires some data to be loaded."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:306
+#, java-format
+msgid "Could not execute command: {0}"
+msgstr "Could not execute command: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:317
+msgid "Tools"
+msgstr "Tools"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:352
+msgid "Could not read external tool configuration."
+msgstr "Could not read external tool configuration."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:69
+msgid "Align Nodes in Circle"
+msgstr "Align Nodes in Circle"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+msgid "Move the selected nodes into a circle."
+msgstr "Move the selected nodes into a circle."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:39
+msgid "Please select at least four nodes."
+msgstr "Please select at least four nodes."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:56
+msgid "Rename layer"
+msgstr "Rename layer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:44
+msgid "Also rename the file"
+msgstr "Also rename the file"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:80
+#, java-format
+msgid "Could not rename the file \"{0}\"."
+msgstr "Could not rename the file \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo"
+msgstr "Undo"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo the last action."
+msgstr "Undo the last action."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download from OSM"
+msgstr "Download from OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download map data from the OSM server."
+msgstr "Download map data from the OSM server."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:102
+msgid ""
+"Move and zoom the image like the main map. Select an area to download by "
+"dragging."
+msgstr ""
+"Move and zoom the image like the main map. Select an area to download by "
+"dragging."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:105
+msgid "Bounding box"
+msgstr "Bounding box"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:106
+msgid "min lat"
+msgstr "min lat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:108
+msgid "min lon"
+msgstr "min lon"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:110
+msgid "max lat"
+msgstr "max lat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:112
+msgid "max lon"
+msgstr "max lon"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:122
+msgid "Download the following data:"
+msgstr "Download the following data:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:129
+msgid "URL from www.openstreetmap.org"
+msgstr "URL from www.openstreetmap.org"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:182
+msgid "Bookmarks"
+msgstr "Bookmarks"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:198
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:344
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/AddCommand.java:52
+msgid "Add"
+msgstr "Add"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:203
+msgid "Please enter the desired coordinates first."
+msgstr "Please enter the desired coordinates first."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:206
+msgid "Please enter a name for the location."
+msgstr "Please enter a name for the location."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:214
+msgid "Remove"
+msgstr "Remove"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:219
+msgid "Select a bookmark first."
+msgstr "Select a bookmark first."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:238
+msgid "Choose an area"
+msgstr "Choose an area"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:261
+msgid "Please enter the desired coordinates or click on a bookmark."
+msgstr "Please enter the desired coordinates or click on a bookmark."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:263
+msgid "Please select at least one download data type."
+msgstr "Please select at least one download data type."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit"
+msgstr "Exit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit the application."
+msgstr "Exit the application."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "About"
+msgstr "About"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "Display the about screen."
+msgstr "Display the about screen."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:67
+#, java-format
+msgid "Java OpenStreetMap Editor Version {0}"
+msgstr "Java OpenStreetMap Editor Version {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:68
+#, java-format
+msgid "last change at {0}"
+msgstr "last change at {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:69
+#, java-format
+msgid "Java Version {0}"
+msgstr "Java Version {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:70
+msgid "Homepage"
+msgstr "Homepage"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:72
+msgid "Bug Reports"
+msgstr "Bug Reports"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:74
+msgid "News about JOSM"
+msgstr "News about JOSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:78
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java:25
+msgid "Info"
+msgstr "Info"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:79
+msgid "Readme"
+msgstr "Readme"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:80
+msgid "Revision"
+msgstr "Revision"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:81
+msgid "Contribution"
+msgstr "Contribution"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:85
+msgid "About JOSM..."
+msgstr "About JOSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:95
+msgid "File could not be found."
+msgstr "File could not be found."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:25
+msgid "No document open so nothing to save."
+msgstr "No document open so nothing to save."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "The document contains no data. Save anyway?"
+msgstr "The document contains no data. Save anyway?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "Empty document"
+msgstr "Empty document"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid ""
+"There are unresolved conflicts. Conflicts will not be saved and handled as "
+"if you rejected all. Continue?"
+msgstr ""
+"There are unresolved conflicts. Conflicts will not be saved and handled as "
+"if you rejected all. Continue?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid "Conflicts"
+msgstr "Conflicts"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "File exists. Overwrite?"
+msgstr "File exists. Overwrite?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "Overwrite"
+msgstr "Overwrite"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:29
+msgid "data"
+msgstr "data"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:30
+msgid "selection"
+msgstr "selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:31
+msgid "layer"
+msgstr "layer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:32
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:141
+msgid "conflict"
+msgstr "conflict"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:40
+#, java-format
+msgid "Auto Scale: {0}"
+msgstr "Auto Scale: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:43
+#, java-format
+msgid "Auto zoom the view (to {0}. Disabled if the view is moved)"
+msgstr "Auto zoom the view (to {0}. Disabled if the view is moved)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save as"
+msgstr "Save as"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save the current data to a new file."
+msgstr "Save the current data to a new file."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:25
+msgid "OSM Server Files (.osm .xml)"
+msgstr "OSM Server Files (.osm .xml)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:26
+msgid "GPX Files (.gpx)"
+msgstr "GPX Files (.gpx)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:27
+msgid "CSV Files (.csv .txt)"
+msgstr "CSV Files (.csv .txt)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload to OSM"
+msgstr "Upload to OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload all changes to the OSM server."
+msgstr "Upload all changes to the OSM server."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:41
+msgid "Nothing to upload. Get some data first."
+msgstr "Nothing to upload. Get some data first."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:46
+msgid "There are unresolved conflicts. You have to resolve these first."
+msgstr "There are unresolved conflicts. You have to resolve these first."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:75
+msgid "Uploading data"
+msgstr "Uploading data"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:97
+msgid "No changes to upload."
+msgstr "No changes to upload."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:106
+msgid "Objects to add:"
+msgstr "Objects to add:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:114
+msgid "Objects to modify:"
+msgstr "Objects to modify:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:122
+msgid "Objects to delete:"
+msgstr "Objects to delete:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:129
+msgid "Upload this changes?"
+msgstr "Upload these changes?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:54
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:55
+msgid "Help"
+msgstr "Help"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:106
+msgid "Can only edit help pages from JOSM Online Help"
+msgstr "Can only edit help pages from JOSM Online Help"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:39
+#, java-format
+msgid "Downloading {0} segment"
+msgid_plural "Downloading {0} segments"
+msgstr[0] "Downloading {0} segment"
+msgstr[1] "Downloading {0} segments"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download incomplete objects"
+msgstr "Download incomplete objects"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download all (selected) incomplete ways from the OSM server."
+msgstr "Download all (selected) incomplete ways from the OSM server."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:66
+msgid "Please select an incomplete way."
+msgstr "Please select an incomplete way."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+#, java-format
+msgid "Download {0} incomplete ways?"
+msgstr "Download {0} incomplete ways?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+msgid "Download?"
+msgstr "Download?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo"
+msgstr "Redo"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo the last undone action."
+msgstr "Redo the last undone action."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:40
+msgid ""
+"Note: GPL is not compatible to the OSM license. Do not upload GPL licensed "
+"tracks."
+msgstr ""
+"Note: The GPL is not compatible with the OSM licence. Do not upload GPL "
+"licensed tracks."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export to GPX"
+msgstr "Export to GPX"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export the data to GPX file."
+msgstr "Export the data to GPX file."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:51
+msgid "Nothing to export. Get some data first."
+msgstr "Nothing to export. Get some data first."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:75
+msgid "gps track description"
+msgstr "gps track description"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:81
+msgid "Add author information"
+msgstr "Add author information"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:84
+msgid "Real name"
+msgstr "Real name"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:88
+msgid "Email"
+msgstr "Email"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:92
+msgid "Copyright (URL)"
+msgstr "Copyright (URL)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:96
+msgid "Predefined"
+msgstr "Predefined"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:98
+msgid "Copyright year"
+msgstr "Copyright year"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:106
+msgid "Keywords"
+msgstr "Keywords"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:110
+msgid "Export options"
+msgstr "Export options"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+#, java-format
+msgid "Error while exporting {0}"
+msgstr "Error while exporting {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+msgid "Error"
+msgstr "Error"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:185
+msgid "Choose a predefined license"
+msgstr "Choose a predefined license"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save"
+msgstr "Save"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save the current data."
+msgstr "Save the current data."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:58
+msgid "CSV output not supported yet."
+msgstr "CSV output not supported yet."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:61
+msgid "Unknown file extension."
+msgstr "Unknown file extension."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:67
+msgid "An error occoured while saving."
+msgstr "An error occoured while saving."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:44
+#, java-format
+msgid ""
+"The plugin {0} throwed an exception: {1}\n"
+"It may be outdated. Please contact the plugin's autor.\n"
+"This message will not shown again until JOSM is restarted."
+msgstr ""
+"The plugin {0} throwed an exception: {1}\n"
+"It may be outdated. Please contact the plugin's author.\n"
+"This message will not shown again until JOSM is restarted."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Do nothing"
+msgstr "Do nothing"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Report Bug"
+msgstr "Report Bug"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:51
+msgid ""
+"An unexpected exception occoured.\n"
+"\n"
+"This is always a coding error. If you are running the latest\n"
+"version of JOSM, please consider be kind and file a bug report."
+msgstr ""
+"An unexpected exception occured.\n"
+"\n"
+"This is always a coding error. If you are running the latest\n"
+"version of JOSM, please consider being kind and file a bug report."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:54
+msgid "Unexpected Exception"
+msgstr "Unexpected Exception"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:62
+msgid ""
+"Please send this to josm@eigenheimstrasse.de\n"
+"\n"
+msgstr ""
+"Please send this to josm@eigenheimstrasse.de\n"
+"\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:83
+msgid ""
+"Please send an email with the following information to josm@eigenheimstrasse."
+"de"
+msgstr ""
+"Please send an email with the following information to josm@eigenheimstrasse."
+"de"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:12
+msgid "Ctrl-"
+msgstr "Ctrl-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:14
+msgid "Alt-"
+msgstr "Alt-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:16
+msgid "AltGr-"
+msgstr "AltGr-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:18
+msgid "Shift-"
+msgstr "Shift-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/plugins/PluginException.java:17
+#, java-format
+msgid "An error occoured in plugin {0}"
+msgstr "An error occoured in plugin {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:63
+msgid "Load Selection"
+msgstr "Load Selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:70
+#, java-format
+msgid "Contact {0}..."
+msgstr "Contact {0}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:75
+msgid "Downloading..."
+msgstr "Downloading..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:87
+#, java-format
+msgid "Could not read from url: \"{0}\""
+msgstr "Could not read from url: \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:90
+#, java-format
+msgid "Parsing error in url: \"{0}\""
+msgstr "Parsing error in url: \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Current Selection"
+msgstr "Current Selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Open a selection list window."
+msgstr "Open a selection list window."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:143
+msgid "Please enter a search string."
+msgstr "Please enter a search string."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:145
+msgid ""
+"<html>Fulltext search.<ul><li><code>Baker Street</code>  - 'Baker' and "
+"'Street' in any key or name.</li><li><code>\"Baker Street\"</code>  - 'Baker "
+"Street' in any key or name.</li><li><code>name:Bak</code>  - 'Bak' anywhere "
+"in the name.</li><li><code>-name:Bak</code>  - not 'Bak' in the name.</"
+"li><li><code>foot:</code>  - key=foot set to any value.</ul></html>"
+msgstr ""
+"<html>Fulltext search.<ul><li><code>Baker Street</code>  - 'Baker' and "
+"'Street' in any key or name.</li><li><code>\"Baker Street\"</code>  - 'Baker "
+"Street' in any key or name.</li><li><code>name:Bak</code>  - 'Bak' anywhere "
+"in the name.</li><li><code>-name:Bak</code>  - not 'Bak' in the name.</"
+"li><li><code>foot:</code>  - key=foot set to any value.</ul></html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:153
+msgid "replace selection"
+msgstr "replace selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:154
+msgid "add to selection"
+msgstr "add to selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:155
+msgid "remove from selection"
+msgstr "remove from selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:172
+msgid "Search"
+msgstr "Search"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Conflict"
+msgstr "Conflict"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Merging conflicts."
+msgstr "Merging conflicts."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:63
+msgid "Resolve"
+msgstr "Resolve"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:64
+msgid "Open a merge dialog of all selected items in the list above."
+msgstr "Open a merge dialog of all selected items in the list above."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:73
+msgid "Select"
+msgstr "Select"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:74
+msgid ""
+"Set the selected elements on the map to the selected items in the list above."
+msgstr ""
+"Set the selected elements on the map to the selected items in the list above."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:108
+msgid "Please select something from the conflict list."
+msgstr "Please select something from the conflict list."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:117
+msgid "Resolve Conflicts"
+msgstr "Resolve Conflicts"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:82
+msgid "Click Reload to refresh list"
+msgstr "Click Reload to refresh list"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:83
+msgid "Reload"
+msgstr "Reload"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:84
+msgid "Revert"
+msgstr "Revert"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "History"
+msgstr "History"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "Display the history of all selected items."
+msgstr "Display the history of all selected items."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:225
+msgid "Object"
+msgstr "Object"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+msgid "Date"
+msgstr "Date"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:131
+msgid "Reload all currently selected objects and refresh the list."
+msgstr "Reload all currently selected objects and refresh the list."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:180
+msgid "Not implemented yet."
+msgstr "Not implemented yet."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:138
+msgid ""
+"Revert the state of all currently selected objects to the version selected "
+"in the history list."
+msgstr ""
+"Revert the state of all currently selected objects to the version selected "
+"in the history list."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Command Stack"
+msgstr "Command Stack"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Open a list of all commands (undo buffer)."
+msgstr "Open a list of all commands (undo buffer)."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:99
+msgid "Please select the objects you want to change properties for."
+msgstr "Please select the objects you want to change properties for."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+#, java-format
+msgid "This will change {0} object."
+msgid_plural "This will change {0} objects."
+msgstr[0] "This will change {0} object."
+msgstr[1] "This will change {0} objects."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#, java-format
+msgid ""
+"Please select a new value for \"{0}\".<br>(Empty string deletes the key.)"
+msgstr ""
+"Please select a new value for \"{0}\".<br>(Empty string deletes the key.)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:114
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:178
+msgid "Change values?"
+msgstr "Change values?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:132
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:284
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:369
+msgid "<different>"
+msgstr "<different>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:151
+msgid "Please select objects for which you want to change properties."
+msgstr "Please select objects for which you want to change properties."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+msgid "Please select a key"
+msgstr "Please select a key"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:169
+msgid "Please select a value"
+msgstr "Please select a value"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Properties"
+msgstr "Properties"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Property for selected objects."
+msgstr "Properties for selected objects."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:241
+#, java-format
+msgid "Could not read annotation preset source: {0}"
+msgstr "Could not read annotation preset source: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:244
+#, java-format
+msgid "Error parsing {0}: "
+msgstr "Error parsing {0}: "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:263
+#, java-format
+msgid "Change {0} object"
+msgid_plural "Change {0} objects"
+msgstr[0] "Change {0} object."
+msgstr[1] "Change {0} objects."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Key"
+msgstr "Key"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Value"
+msgstr "Value"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:309
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:359
+msgid "Please select the row to edit."
+msgstr "Please select the row to edit."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:314
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:374
+msgid "Please select the row to delete."
+msgstr "Please select the row to delete."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+msgid "Add a new key/value pair to all objects"
+msgstr "Add a new key/value pair to all objects"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:355
+#: ../../plugins/grid/src/grid/GridPlugin.java:43
+#: ../../plugins/grid/src/grid/GridPlugin.java:49
+msgid "Edit"
+msgstr "Edit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+msgid "Edit the value of the selected key for all objects"
+msgstr "Edit the value of the selected key for all objects"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+msgid "Delete the selected key in all objects"
+msgstr "Delete the selected key in all objects"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:60
+msgid "Delete the selected layer."
+msgstr "Delete the selected layer."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:82
+msgid "Show/Hide"
+msgstr "Show/Hide"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:83
+msgid "Toggle visible state of the selected layer."
+msgstr "Toggle visible state of the selected layer."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Layers"
+msgstr "Layers"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Open a list of all loaded layers."
+msgstr "Open a list of all loaded layers."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:196
+msgid "Move the selected layer one row up."
+msgstr "Move the selected layer one row up."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:202
+msgid "Move the selected layer one row down."
+msgstr "Move the selected layer one row down."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:216
+msgid "Merge the selected layer into the layer directly below."
+msgstr "Merge the selected layer into the layer directly below."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:160
+#, java-format
+msgid "Unknown type at line {0}"
+msgstr "Unknown type at line {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:178
+#, java-format
+msgid "Cannot have a writable combobox with default values (line {0})"
+msgstr "Cannot have a writable combobox with default values (line {0})"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:183
+#, java-format
+msgid ""
+"display_values ({0}) and values ({1}) must be of same number of elements."
+msgstr ""
+"display_values ({0}) and values ({1}) must be of same number of elements."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:184
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:185
+msgid "element"
+msgid_plural "elements"
+msgstr[0] "element"
+msgstr[1] "elements"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:190
+#, java-format
+msgid "Unknown annotation object {0} at line {1} column {2}"
+msgstr "Unknown annotation object {0} at line {1} column {2}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:258
+msgid "Change Properties"
+msgstr "Change Properties"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:161
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:66
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "node"
+msgid_plural "nodes"
+msgstr[0] "node"
+msgstr[1] "nodes"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:162
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:136
+msgid "segment"
+msgid_plural "segments"
+msgstr[0] "segment"
+msgstr[1] "segments"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:163
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:92
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:137
+msgid "way"
+msgid_plural "ways"
+msgstr[0] "way"
+msgstr[1] "ways"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:178
+msgid "There were conflicts during import."
+msgstr "There were conflicts during import."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:317
+#, java-format
+msgid "{0} consists of:"
+msgstr "{0} consists of:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:321
+#, java-format
+msgid " ({0} deleted.)"
+msgstr " ({0} deleted.)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:57
+msgid "Convert to data layer"
+msgstr "Convert to data layer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:159
+msgid "track"
+msgid_plural "tracks"
+msgstr[0] "track"
+msgstr[1] "tracks"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:160
+msgid "point"
+msgid_plural "points"
+msgstr[0] "point"
+msgstr[1] "points"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:185
+#, java-format
+msgid "a track with {0} point"
+msgid_plural "a track with {0} points"
+msgstr[0] "a track with {0} point"
+msgstr[1] "a track with {0} points"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} consists of {1} track"
+msgid_plural "{0} consists of {1} tracks"
+msgstr[0] "{0} consists of {1} track"
+msgstr[1] "{0} consists of {1} tracks"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} point"
+msgid_plural "{0} points"
+msgstr[0] "{0} point"
+msgstr[1] "{0} points"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:193
+msgid "Customize line drawing"
+msgstr "Customise line drawing"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:197
+msgid "Use global settings."
+msgstr "Use global settings."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:198
+msgid "Draw lines between points for this layer."
+msgstr "Draw lines between points for this layer."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:199
+msgid "Do not draw lines between points for this layer."
+msgstr "Do not draw lines between points for this layer."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:211
+msgid "Select line drawing options"
+msgstr "Select line drawing options"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:222
+msgid "Customize Color"
+msgstr "Customise Colour"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "OK"
+msgstr "OK"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:24
+msgid "Cancel"
+msgstr "Cancel"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "Default"
+msgstr "Default"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:228
+msgid "Choose a color"
+msgstr "Choose a colour"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:243
+msgid "Import images"
+msgstr "Import images"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:255
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:349
+msgid "JPEG images (*.jpg)"
+msgstr "JPEG images (*.jpg)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:90
+#, java-format
+msgid "Images for {0}"
+msgstr "Images for {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:95
+msgid "Read GPS..."
+msgstr "Read GPS..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:102
+#, java-format
+msgid "No time for point {0} x {1}"
+msgstr "No time for point {0} x {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:107
+#, java-format
+msgid "Cannot read time \"{0}\" from point {1} x {2}"
+msgstr "Cannot read time \"{0}\" from point {1} x {2}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:114
+msgid "No images with readable timestamps found."
+msgstr "No images with readable timestamps found."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:125
+#, java-format
+msgid "Reading {0}..."
+msgstr "Reading {0}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:191
+msgid "Geotagged Images"
+msgstr "Geotagged Images"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:269
+#, java-format
+msgid "GPS start: {0}"
+msgstr "GPS start: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:270
+#, java-format
+msgid "GPS end: {0}"
+msgstr "GPS end: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:272
+#, java-format
+msgid "current delta: {0}s"
+msgstr "current delta: {0}s"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:273
+msgid "timezone difference: "
+msgstr "timezone difference: "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+msgid "image"
+msgid_plural "images"
+msgstr[0] "image"
+msgstr[1] "images"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+#, java-format
+msgid "{0} within the track."
+msgstr "{0} within the track."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:338
+msgid "Sync clock"
+msgstr "Sync clock"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:395
+#, java-format
+msgid "The date in file \"{0}\" could not be parsed."
+msgstr "The date in file \"{0}\" could not be parsed."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:399
+#, java-format
+msgid "There is no EXIF time within the file \"{0}\"."
+msgstr "There is no EXIF time within the file \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:403
+msgid "Image"
+msgstr "Image"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:405
+msgid "Enter shown date (mm/dd/yyyy HH:MM:SS)"
+msgstr "Enter shown date (mm/dd/yyyy HH:MM:SS)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:408
+msgid "GPS unit timezome (difference to photo)"
+msgstr "GPS unit timezome (difference to photo)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:416
+msgid "Syncronize Time with GPS Unit"
+msgstr "Synchronise Time with GPS Unit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:432
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:434
+msgid "Time entered could not be parsed."
+msgstr "Time entered could not be parsed."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:74
+msgid "Could not read bookmarks."
+msgstr "Could not read bookmarks."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:98
+msgid "Could not write bookmark."
+msgstr "Could not write bookmark."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:123
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:171
+msgid "Java Open Street Map - Editor"
+msgstr "Java Open Street Map - Editor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:163
+msgid "layer not in list."
+msgstr "layer not in list."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:55
+msgid "Hint: Some changes came from uploading new data to the server."
+msgstr "Hint: Some changes came from uploading new data to the server."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:57
+msgid "There are unsaved changes. Really quit?"
+msgstr "There are unsaved changes. Really quit?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:58
+msgid "Unsaved Changes"
+msgstr "Unsaved Changes"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:144
+msgid "Java OpenStreetMap Editor"
+msgstr "Java OpenStreetMap Editor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:145
+msgid "usage"
+msgstr "usage"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:147
+msgid "options"
+msgstr "options"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:148
+msgid "Show this help"
+msgstr "Show this help"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:149
+msgid "Standard unix geometry argument"
+msgstr "Standard unix geometry argument"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:150
+msgid "Download the bounding box"
+msgstr "Download the bounding box"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:151
+msgid "Download the location at the url (with lat=x&lon=y&zoom=z)"
+msgstr "Download the location at the url (with lat=x&lon=y&zoom=z)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:152
+msgid "Open file (as raw gps, if .gpx or .csv)"
+msgstr "Open file (as raw gps, if .gpx or .csv)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:153
+msgid "Download the bounding box as raw gps"
+msgstr "Download the bounding box as raw gps"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:154
+msgid "Select with the given search"
+msgstr "Select with the given search"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:155
+msgid "Don't launch in fullscreen mode"
+msgstr "Don't launch in fullscreen mode"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:156
+msgid "Reset the preferences to default"
+msgstr "Reset the preferences to default"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:157
+msgid "Set the language. Example: "
+msgstr "Set the language. Example: "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:158
+msgid "examples"
+msgstr "examples"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:164
+msgid ""
+"Parameters are read in the order they are specified, so make sure you load\n"
+"some data before --selection"
+msgstr ""
+"Parameters are read in the order they are specified, so make sure you load\n"
+"some data before --selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:166
+msgid "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+msgstr "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:52
+msgid "Layer"
+msgstr "Layer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:56
+msgid "Files"
+msgstr "Files"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:57
+msgid "Connection"
+msgstr "Connection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:22
+msgid "Contacting the OSM server..."
+msgstr "Contacting the OSM server..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:223
+msgid "Lat/Lon"
+msgstr "Lat/Lon"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:232
+#, java-format
+msgid "{0} object has conflicts:"
+msgid_plural "{0} objects have conflicts:"
+msgstr[0] "{0} object has conflicts:"
+msgstr[1] "{0} objects have conflicts:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:235
+msgid "my version:"
+msgstr "my version:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:241
+msgid "their version:"
+msgstr "their version:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:247
+msgid "resolved version:"
+msgstr "resolved version:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:77
+msgid "Error while parsing"
+msgstr "Error while parsing"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:80
+msgid "File Not found"
+msgstr "File Not found"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "string"
+msgstr "string"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+msgid "Name of the user."
+msgstr "Name of the user."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+msgid "OSM Password."
+msgstr "OSM Password."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "Size the applet to the given geometry (format: WIDTHxHEIGHT)"
+msgstr "Size the applet to the given geometry (format: WIDTHxHEIGHT)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid "string;string;..."
+msgstr "string;string;..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+msgid ""
+"Download each. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a "
+"filename"
+msgstr ""
+"Download each. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a "
+"filename"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+msgid ""
+"Download each as raw gps. Can be x1,y1,x2,y2 an url containing "
+"lat=y&lon=x&zoom=z or a filename"
+msgstr ""
+"Download each as raw gps. Can be x1,y1,x2,y2 an url containing "
+"lat=y&lon=x&zoom=z or a filename"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid ""
+"Add each to the initial selection. Can be a google-like search string or an "
+"url which returns osm-xml"
+msgstr ""
+"Add each to the initial selection. Can be a google-like search string or an "
+"url which returns osm-xml"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "any"
+msgstr "any"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "If specified, reset the configuration instead of reading it."
+msgstr "If specified, reset the configuration instead of reading it."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:65
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:68
+msgid "Username"
+msgstr "Username"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:68
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:71
+msgid "Password"
+msgstr "Password"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:123
+msgid "You have to restart JOSM for some settings to take effect."
+msgstr "You have to restart JOSM for some settings to take effect."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:185
+msgid "Draw lines between raw gps points."
+msgstr "Draw lines between raw gps points."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:189
+msgid "Force lines if no segments imported."
+msgstr "Force lines if no segments imported."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:190
+msgid "Draw large GPS points."
+msgstr "Draw large GPS points."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:191
+msgid "Draw Direction Arrows"
+msgstr "Draw Direction Arrows"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:250
+msgid ""
+"Force drawing of lines if the imported data contain no line information."
+msgstr ""
+"Force drawing of lines if the imported data contain no line information."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:254
+msgid "Draw larger dots for the GPS points."
+msgstr "Draw larger dots for the GPS points."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:255
+msgid "Draw direction hints for all segments."
+msgstr "Draw direction hints for all segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:306
+msgid "Color"
+msgstr "Colour"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:307
+msgid "Name"
+msgstr "Name"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:328
+msgid "Choose"
+msgstr "Choose"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:332
+msgid "Please select a color."
+msgstr "Please select a colour."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:337
+#, java-format
+msgid "Choose a color for {0}"
+msgstr "Choose a colour for {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:347
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:361
+msgid "Annotation preset source"
+msgstr "Annotation preset source"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:386
+msgid "The base URL to the OSM server (REST API)"
+msgstr "The base URL to the OSM server (REST API)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:387
+msgid "Login name (email) to the OSM account."
+msgstr "Login name (email) to the OSM account."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:388
+msgid ""
+"Login password to the OSM account. Leave blank to not store any password."
+msgstr ""
+"Login password to the OSM account. Leave blank to not store any password."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:389
+msgid "The base URL to the server retrieving WMS background pictures from."
+msgstr "The base URL to the server retrieving WMS background pictures from."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:390
+msgid ""
+"<html>Import string specification. lat/lon and time are imported.<br><b>lat</"
+"b>: The latitude coordinate<br><b>lon</b>: The longitude "
+"coordinate<br><b>time</b>: The measured time as string<br><b>ignore</b>: "
+"Skip this field<br>An example: \"ignore ignore lat lon\" will use ' ' as "
+"delimiter, skip the first two values and read then lat/lon.<br>Other "
+"example: \"lat,lon\" will just read lat/lon values comma seperated.</html>"
+msgstr ""
+"<html>Import string specification. lat/lon and time are imported.<br><b>lat</"
+"b>: The latitude coordinate<br><b>lon</b>: The longitude "
+"coordinate<br><b>time</b>: The measured time as string<br><b>ignore</b>: "
+"Skip this field<br>An example: \"ignore ignore lat lon\" will use ' ' as "
+"delimiter, skip the first two values and read then lat/lon.<br>Other "
+"example: \"lat,lon\" will just read lat/lon values comma seperated.</html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:397
+msgid ""
+"If your gps device draw to few lines, select this to draw lines along your "
+"way."
+msgstr ""
+"If your gps device draw to few lines, select this to draw lines along your "
+"way."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:398
+msgid "Colors used by different objects in JOSM."
+msgstr "Colours used by different objects in JOSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:399
+msgid ""
+"The sources (url or filename) of annotation preset definition files. See "
+"http://josm.eigenheimstrasse.de/wiki/AnnotationPresets for help."
+msgstr ""
+"The sources (url or filename) of annotation preset definition files. See "
+"http://josm.eigenheimstrasse.de/wiki/AnnotationPresets for help."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:400
+msgid "Add a new annotation preset source to the list."
+msgstr "Add a new annotation preset source to the list."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:401
+msgid "Delete the selected source from the list."
+msgstr "Delete the selected source from the list."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid "Display Settings"
+msgstr "Display Settings"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid ""
+"Various settings that influence the visual representation of the whole "
+"program."
+msgstr ""
+"Various settings that influence the visual representation of the whole "
+"program."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:407
+msgid "Look and Feel"
+msgstr "Look and Feel"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:414
+msgid "Colors"
+msgstr "Colours"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings"
+msgstr "Connection Settings"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings to the OSM server."
+msgstr "Connection Settings to the OSM server."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:422
+msgid "Base Server URL"
+msgstr "Base Server URL"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:424
+msgid "OSM username (email)"
+msgstr "OSM username (email)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:426
+msgid "OSM password"
+msgstr "OSM password"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:428
+msgid ""
+"<html>WARNING: The password is stored in plain text in the preferences file."
+"<br>The password is transfered in plain text to the server, encoded in the "
+"url.<br><b>Do not use a valuable Password.</b></html>"
+msgstr ""
+"<html>WARNING: The password is stored in plain text in the preferences file."
+"<br>The password is transfered in plain text to the server, encoded in the "
+"url.<br><b>Do not use a valuable Password.</b></html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:437
+msgid "CSV import specification (empty: read from first line in data)"
+msgstr "CSV import specification (empty: read from first line in data)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Map Settings"
+msgstr "Map Settings"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Settings for the map projection and data interpretation."
+msgstr "Settings for the map projection and data interpretation."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:443
+msgid "Projection method"
+msgstr "Projection method"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:446
+msgid "Annotation preset sources"
+msgstr "Annotation preset sources"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Plugins"
+msgstr "Plugins"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Configure available Plugins."
+msgstr "Configure available Plugins."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:465
+msgid "Get more plugins"
+msgstr "Get more plugins"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:45
+#, java-format
+msgid "Downloading points {0} to {1}..."
+msgstr "Downloading points {0} to {1}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:89
+msgid "Downloading OSM data..."
+msgstr "Downloading OSM data..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:101
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:103
+msgid "Unknown version"
+msgstr "Unknown version"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:119
+msgid "Found <seg> tag on non-way."
+msgstr "Found <seg> tag on non-way."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:122
+msgid "Incomplete segment with id=0"
+msgstr "Incomplete segment with id=0"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:131
+msgid "NullPointerException. Possible some missing tags."
+msgstr "NullPointerException. Possible some missing tags."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:146
+msgid "Illegal object with id=0"
+msgstr "Illegal object with id=0"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:154
+#, java-format
+msgid "Couldn''t read time format \"{0}\"."
+msgstr "Couldn't read time format \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:169
+#, java-format
+msgid "Missing required attirbute \"{0}\"."
+msgstr "Missing required attribute \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:239
+msgid "Preparing data..."
+msgstr "Preparing data..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:249
+msgid "Illformed Node id"
+msgstr "Ill-formed Node id"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:71
+#, java-format
+msgid "Upload {0} {1} ({2})..."
+msgstr "Upload {0} {1} ({2})..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:185
+msgid "Unknown host"
+msgstr "Unknown host"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:43
+#: ../../plugins/waypoints/src/WaypointReader.java:55
+#, java-format
+msgid "Data error: lat value \"{0}\" is out of bound."
+msgstr "Data error: lat value \"{0}\" is out of bound."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:45
+#: ../../plugins/waypoints/src/WaypointReader.java:59
+#, java-format
+msgid "Data error: lon value \"{0}\" is out of bound."
+msgstr "Data error: lon value \"{0}\" is out of bound."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:39
+msgid "Could not detect data format string."
+msgstr "Could not detect data format string."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:62
+msgid ""
+"Format string in data is incomplete or not found. Try setting an manual "
+"format string in Preferences."
+msgstr ""
+"Format string in data is incomplete or not found. Try setting an manual "
+"format string in Preferences."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:63
+msgid ""
+"Format string is incomplete. Need at least 'lat' and 'lon' specification"
+msgstr ""
+"Format string is incomplete. Need at least 'lat' and 'lon' specification"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+#, java-format
+msgid "Unknown data type: \"{0}\"."
+msgstr "Unknown data type: \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+msgid "Maybe add an format string in preferences."
+msgstr "Maybe add an format string in preferences."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:88
+#, java-format
+msgid "Parsing error in line {0}"
+msgstr "Parsing error in line {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:67
+msgid "Incorrect password or username."
+msgstr "Incorrect password or username."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:74
+msgid "Warning: The password is transferred unencrypted."
+msgstr "Warning: The password is transferred unencrypted."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:78
+msgid "Save user and password (unencrypted)"
+msgstr "Save user and password (unencrypted)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:81
+msgid "Enter Password"
+msgstr "Enter Password"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:116
+msgid "Aborting..."
+msgstr "Aborting..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:80
+#, java-format
+msgid "Data error: Segment {0} is deleted but part of Way {1}"
+msgstr "Data error: Segment {0} is deleted but part of Way {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:115
+#, java-format
+msgid "Data error: Node {0} is deleted but part of Segment {1}"
+msgstr "Data error: Node {0} is deleted but part of Segment {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmIdReader.java:34
+msgid "Error during parse."
+msgstr "Error during parse."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/PositionConflict.java:19
+msgid "position"
+msgstr "position"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ConflictItem.java:33
+msgid "different"
+msgstr "different"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:14
+msgid "deleted"
+msgstr "deleted"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "true"
+msgstr "true"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "false"
+msgstr "false"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:21
+msgid "none"
+msgstr "none"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:25
+msgid "segments"
+msgstr "segments"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ToConflict.java:19
+msgid "to"
+msgstr "to"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/FromConflict.java:19
+msgid "from"
+msgstr "from"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "new"
+msgstr "new"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "unknown"
+msgstr "unknown"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:87
+#, java-format
+msgid "{0} node"
+msgid_plural "{0} nodes"
+msgstr[0] "{0} node"
+msgstr[1] "{0} nodes"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:89
+msgid "incomplete"
+msgstr "incomplete"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:134
+msgid "background"
+msgstr "background"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:138
+msgid "incomplete way"
+msgstr "incomplete way"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:139
+msgid "selected"
+msgstr "selected"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:140
+msgid "gps point"
+msgstr "gps point"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:142
+msgid "scale"
+msgstr "scale"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ConflictResolveCommand.java:77
+#, java-format
+msgid "Resolve {0} conflicts in {1} objects"
+msgstr "Resolve {0} conflicts in {1} objects"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangeCommand.java:37
+msgid "Change"
+msgstr "Change"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/SequenceCommand.java:51
+msgid "Sequence"
+msgstr "Sequence"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Remove \"{0}\" for"
+msgstr "Remove \"{0}\" for"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Set {0}={1} for"
+msgstr "Set {0}={1} for"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:72
+msgid "object"
+msgid_plural "objects"
+msgstr[0] "object"
+msgstr[1] "objects"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:201
+#, java-format
+msgid "Plugin not found: {0}."
+msgstr "Plugin not found: {0}."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:204
+#, java-format
+msgid "Could not load plugin {0}."
+msgstr "Could not load plugin {0}."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:228
+msgid "unnamed"
+msgstr "unnamed"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:271
+msgid "The projection could not be read from preferences. Using EPSG:4263."
+msgstr "The projection could not be read from preferences. Using EPSG:4263."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:329
+#, java-format
+msgid "Ignoring malformed url: \"{0}\""
+msgstr "Ignoring malformed url: \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:341
+#, java-format
+msgid "Ignoring malformed file url: \"{0}\""
+msgstr "Ignoring malformed file url: \"{0}\""
+
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:102
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:108
+msgid "View"
+msgstr "View"
+
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:18
+msgid "Landsat background images"
+msgstr "Landsat background images"
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:45
+msgid "Wrong longitude transformation for tile manager. Can't operate on {0}"
+msgstr "Wrong longitude transformation for tile manager. Can't operate on {0}"
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:70
+#, java-format
+msgid "WMS layer: {0}"
+msgstr "WMS layer: {0}"
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid "Annotation Preset Tester"
+msgstr "Annotation Preset Tester"
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid ""
+"Open the annotation preset test tool for previewing annotation preset "
+"dialogs."
+msgstr ""
+"Open the annotation preset test tool for previewing annotation preset "
+"dialogs."
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:28
+msgid "You have to specify annotation sources in the preferences first."
+msgstr "You have to specify annotation sources in the preferences first."
+
+#: ../../plugins/grid/src/grid/GridLayer.java:74
+#, fuzzy
+msgid "Grid layer:"
+msgstr "layer"
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+#, fuzzy
+msgid "Open waypoints file"
+msgstr "Open a file."
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+#, fuzzy
+msgid "Open a waypoints file."
+msgstr "Open a file."
+
+#~ msgid "Download {0} ways containing a total of {1} segments?"
+#~ msgstr "Download {0} ways containing a total of {1} segments?"
+
+#~ msgid "Refresh the selection list."
+#~ msgstr "Refresh the selection list."
+
+#~ msgid "Search for objects."
+#~ msgstr "Search for objects."
+
+#~ msgid "Conflicts in disjunct objects"
+#~ msgstr "Conflicts in disjunct objects"
+
+#~ msgid "Downloading {0} {1}"
+#~ msgstr "Downloading {0} {1}"
+
+#~ msgid "Got more than one object when expecting only one."
+#~ msgstr "Got more than one object when expecting only one."
+
+#~ msgid "Used in a way."
+#~ msgstr "Used in a way."
+
+#~ msgid "Move selected objects around."
+#~ msgstr "Move selected objects around."
+
+#~ msgid "Open as raw gps data"
+#~ msgstr "Open as raw gps data"
+
+#~ msgid "Show background"
+#~ msgstr "Show background"
+
+#~ msgid "Images"
+#~ msgstr "Images"
+
+#~ msgid "Time loop in gps data."
+#~ msgstr "Time loop in gps data."
+
+#~ msgid "OptionPane.okButtonText"
+#~ msgstr "OptionPane.okButtonText"
+
+#~ msgid "OptionPane.cancelButtonText"
+#~ msgstr "OptionPane.cancelButtonText"
+
+#~ msgid ""
+#~ "Java OpenStreetMap Editor\n"
+#~ "\n"
+#~ "usage:\n"
+#~ "\tjava -jar josm.jar <option> <option> <option>...\n"
+#~ "\n"
+#~ "options:\n"
+#~ "\t--help|-?|-h                              Show this help\n"
+#~ "\t--geometry=widthxheight(+|-)x(+|-)y       Standard unix geometry "
+#~ "argument\n"
+#~ "\t[--download=]minlat,minlon,maxlat,maxlon  Download the bounding box\n"
+#~ "\t[--download=]<url>                        Download the location at the "
+#~ "url (with lat=x&lon=y&zoom=z)\n"
+#~ "\t[--download=]<filename>                   Open file (as raw gps, if ."
+#~ "gpx or .csv)\n"
+#~ "\t--downloadgps=minlat,minlon,maxlat,maxlon Download the bounding box as "
+#~ "raw gps\n"
+#~ "\t--selection=<searchstring>                Select with the given search\n"
+#~ "\t--no-fullscreen                           Don't launch in fullscreen "
+#~ "mode\n"
+#~ "\t--reset-preferences                       Reset the preferences to "
+#~ "default\n"
+#~ "\n"
+#~ "examples:\n"
+#~ "\tjava -jar josm.jar track1.gpx track2.gpx london.osm\n"
+#~ "\tjava -jar josm.jar http://www.openstreetmap.org/index.html?"
+#~ "lat=43.2&lon=11.1&zoom=13\n"
+#~ "\tjava -jar josm.jar london.osm --selection=http://www.ostertag.name/osm/"
+#~ "OSM_errors_node-duplicate.xml\n"
+#~ "\tjava -jar josm.jar 43.2,11.1,43.4,11.4\n"
+#~ "\n"
+#~ "Parameters are read in the order they are specified, so make sure you "
+#~ "load\n"
+#~ "some data before --selection\n"
+#~ "\n"
+#~ "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+#~ msgstr ""
+#~ "Java OpenStreetMap Editor\n"
+#~ "\n"
+#~ "usage:\n"
+#~ "\tjava -jar josm.jar <option> <option> <option>...\n"
+#~ "\n"
+#~ "options:\n"
+#~ "\t--help|-?|-h                              Show this help\n"
+#~ "\t--geometry=widthxheight(+|-)x(+|-)y       Standard unix geometry "
+#~ "argument\n"
+#~ "\t[--download=]minlat,minlon,maxlat,maxlon  Download the bounding box\n"
+#~ "\t[--download=]<url>                        Download the location at the "
+#~ "url (with lat=x&lon=y&zoom=z)\n"
+#~ "\t[--download=]<filename>                   Open file (as raw gps, if ."
+#~ "gpx or .csv)\n"
+#~ "\t--downloadgps=minlat,minlon,maxlat,maxlon Download the bounding box as "
+#~ "raw gps\n"
+#~ "\t--selection=<searchstring>                Select with the given search\n"
+#~ "\t--no-fullscreen                           Don't launch in fullscreen "
+#~ "mode\n"
+#~ "\t--reset-preferences                       Reset the preferences to "
+#~ "default\n"
+#~ "\n"
+#~ "examples:\n"
+#~ "\tjava -jar josm.jar track1.gpx track2.gpx london.osm\n"
+#~ "\tjava -jar josm.jar http://www.openstreetmap.org/index.html?"
+#~ "lat=43.2&lon=11.1&zoom=13\n"
+#~ "\tjava -jar josm.jar london.osm --selection=http://www.ostertag.name/osm/"
+#~ "OSM_errors_node-duplicate.xml\n"
+#~ "\tjava -jar josm.jar 43.2,11.1,43.4,11.4\n"
+#~ "\n"
+#~ "Parameters are read in the order they are specified, so make sure you "
+#~ "load\n"
+#~ "some data before --selection\n"
+#~ "\n"
+#~ "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+
+#~ msgid "Cannot open preferences directory: {0}"
+#~ msgstr "Cannot open preferences directory: {0}"
+
+#~ msgid ""
+#~ "Preferences could not be loaded. Write default preference file to \"{0}\"."
+#~ msgstr ""
+#~ "Preferences could not be loaded. Write default preference file to \"{0}\"."
Index: /applications/editors/josm/plugins/lang/en_GB/src/org/openstreetmap/josm/TranslationLoader_en_GB.java
===================================================================
--- /applications/editors/josm/plugins/lang/en_GB/src/org/openstreetmap/josm/TranslationLoader_en_GB.java	(revision 2549)
+++ /applications/editors/josm/plugins/lang/en_GB/src/org/openstreetmap/josm/TranslationLoader_en_GB.java	(revision 2549)
@@ -0,0 +1,15 @@
+package org.openstreetmap.josm;
+
+import java.util.Locale;
+
+import org.openstreetmap.josm.tools.I18n;
+import org.xnap.commons.i18n.I18nFactory;
+
+public class TranslationLoader_en_GB {
+
+	public TranslationLoader_en_GB() throws Exception {
+		Class<?> c = Class.forName("org.openstreetmap.josm.Translation_en_GB");
+		Locale.setDefault(Locale.UK);
+		I18n.i18n = I18nFactory.getI18n(c);
+	}
+}
Index: /applications/editors/josm/plugins/lang/fr/.classpath
===================================================================
--- /applications/editors/josm/plugins/lang/fr/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/lang/fr/.classpath	(revision 2549)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="/josm/lib/gettext-commons-0.9.jar" sourcepath="C:/Download/gettext-commons-0.9-src.zip"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/lang/fr/.project
===================================================================
--- /applications/editors/josm/plugins/lang/fr/.project	(revision 2549)
+++ /applications/editors/josm/plugins/lang/fr/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>lang-fr</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/lang/fr/build.xml
===================================================================
--- /applications/editors/josm/plugins/lang/fr/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/lang/fr/build.xml	(revision 2549)
@@ -0,0 +1,52 @@
+<project name="lang-fr" default="install" basedir=".">
+
+	<property name="language" value="fr" />
+
+	<target name="init">
+	    <mkdir dir="bin" />
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="../../../../editors/josm/dist/josm-custom.jar" destdir="bin" />
+	</target>
+	
+	<!-- install entry point for eclipse user -->
+	<target name="jar">
+		<jar destfile="${user.home}/.josm/plugins/lang-${language}.jar" basedir="bin">
+			<manifest>
+				<attribute name="Plugin-Class" value="org.openstreetmap.josm.TranslationLoader_${language}" />
+				<attribute name="Plugin-Description" value="French translation." />
+				<attribute name="Plugin-Early" value="true" />
+			</manifest>
+		</jar>
+	</target>
+	
+	<target name="install" depends="compile,gettext,jar" />
+
+
+
+	<target name="find">
+		<exec executable="find" output="alljava.txt">
+			<arg line="../../../../editors/josm/src ../ -name '*.java'"/>
+		</exec>
+	</target>
+	
+	<target name="xgettext">
+		<exec executable="xgettext">
+			<arg line="-ktr -ktrn:1,2 -ktrc -kmarktr -Ljava -okeys.pot -falljava.txt"/>
+		</exec>
+	</target>
+
+	<target name="msgmerge">
+		<exec executable="msgmerge">
+			<arg line="-U ${language}.po keys.pot"/>
+		</exec>
+	</target>
+
+	<target name="gettext" depends="find,xgettext,msgmerge">
+		<exec executable="msgfmt">
+			<arg line="--java2 -dbin -rorg.openstreetmap.josm.Translation -l${language} ${language}.po"/>
+		</exec>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/lang/fr/fr.po
===================================================================
--- /applications/editors/josm/plugins/lang/fr/fr.po	(revision 2549)
+++ /applications/editors/josm/plugins/lang/fr/fr.po	(revision 2549)
@@ -0,0 +1,2308 @@
+# translation of fr.po to
+# Frederic Bonifas <fredericbonifas@gmail.com>, 2006. <>, 2006.
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: fr\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-10-22 21:32+0200\n"
+"PO-Revision-Date: 2006-10-14 12:17+0200\n"
+"Last-Translator: Frederic Bonifas <fredericbonifas@gmail.com>\n"
+"Language-Team: French <josm-fr@eigenheimstrasse.de>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:52
+msgid "Add segment"
+msgstr "Ajouter un segment."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:54
+msgid "Add a segment between two nodes."
+msgstr "Ajouter un segment entre deux noeuds."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:56
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:59
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:370
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:46
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:58
+msgid "Delete"
+msgstr "Supprimer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:58
+msgid "Delete nodes, streets or segments."
+msgstr "Supprimer des noeuds, des rues ou des segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:152
+msgid "Cannot delete node."
+msgstr "Impossible de supprimer le noeud."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:156
+msgid "This object is in use."
+msgstr "Cet objet est en utilisation."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:173
+msgid "Used by more than two segments."
+msgstr "Utilisé par plus de deux segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:178
+msgid "Used by only one segment."
+msgstr "Utilisé par un seul segment."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:187
+msgid "Wrong direction of segments."
+msgstr "Segments dans la mauvaise direction."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:190
+msgid "Conflicting keys"
+msgstr "Clés conflictuelles"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:196
+msgid "Segments are part of different ways."
+msgstr "Les segments appartiennent à différents chemins."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:214
+msgid "Delete Node"
+msgstr "Supprimer un noeud"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom"
+msgstr "Zoom"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom in by dragging. (Ctrl+up,left,down,right,+,-)"
+msgstr ""
+"Zoomer en sélectionnant une zone à la souris. (Ctrl+haut, gauche, bas, "
+"droite, +, -)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Selection"
+msgstr "Sélection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Select objects by dragging or clicking."
+msgstr ""
+"Sélectionner des objets en cliquant ou en définissant une zone à la souris."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Straight line"
+msgstr "Ligne droite"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Select objects in a straight line."
+msgstr "Sélectionner des objets sur une ligne droite."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:52
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "Move"
+msgstr "Déplacer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:54
+msgid "Move around objects that are under the mouse or selected."
+msgstr "Déplacer les objets sous la souris ou sélectionnés."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:102
+msgid "Cannot move objects outside of the world."
+msgstr "Impossible de déplacer des objets en dehors de la Terre."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add Way"
+msgstr "Ajouter un chemin"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add a new way to the data."
+msgstr "Ajouter un nouveau chemin aux données;"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:95
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:143
+msgid ""
+"Warning: This way is incomplete. Try to download it, before adding segments."
+msgstr ""
+"Attention : ce chemin est incomplet.Essayez de le télécharger en entier "
+"avant d'ajouter des segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+#, fuzzy, java-format
+msgid ""
+"{0} way has been selected.\n"
+"Do you wish to select all segments belonging to the way instead?"
+msgid_plural ""
+"{0} ways have been selected.\n"
+"Do you wish to select all segments belonging to the ways instead?"
+msgstr[0] ""
+"{0} chemin a été sélectionné.\n"
+"Préférez-vous sélectionner tous les segments appartenant à ce chemin ?{0} "
+"chemins·ont été sélectionnés.\n"
+"Préférez-vous sélectionner tous les segments appartenant à ces chemins ?"
+msgstr[1] ""
+"{0} chemin a été sélectionné.\n"
+"Préférez-vous sélectionner tous les segments appartenant à ce chemin ?{0} "
+"chemins·ont été sélectionnés.\n"
+"Préférez-vous sélectionner tous les segments appartenant à ces chemins ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+msgid "Add segments from ways"
+msgstr "Ajouter des segments aux chemins"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Do you want to add all other selected segments to the one selected way?"
+msgstr ""
+"Souhaitez-vous ajouter tous les autres segments sélectionnés au chemin "
+"sélectionné ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Add segments to way?"
+msgstr "Ajouter des segments au chemin ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder all line segments?"
+msgstr "Réorganiser tous les segments de la ligne ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder?"
+msgstr "Réorganiser ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+#, java-format
+msgid "Create a new way out of {0} segment?"
+msgid_plural "Create a new way out of {0} segments?"
+msgstr[0] "Créer un nouveau chemin constitué de {0} segment ?"
+msgstr[1] "Créer un nouveau chemin constitué de {0} segments ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+msgid "Create new way"
+msgstr "Créer un nouveau chemin"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add node"
+msgstr "Ajouter un noeud"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add a new node to the map"
+msgstr "Ajouter un nouveau noeud à la carte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add node into segment"
+msgstr "Ajouter un noeud dans un segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add a node into an existing segment"
+msgstr "Ajouter un noeud dans un segment existant"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:85
+msgid "Can not add a node outside of the world."
+msgstr "Impossible d'ajouter un noeud en dehors de la Terre."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:134
+msgid "Add Node into Segment"
+msgstr "Ajouter un noeud dans un segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:23
+msgid "Raw GPS data"
+msgstr "Données GPS brutes"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:26
+msgid "Downloading GPS data"
+msgstr "Téléchargement des données GPS"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:25
+msgid "OpenStreetMap data"
+msgstr "Données OpenStreetMap"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:28
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:21
+msgid "Downloading data"
+msgstr "Téléchargement des données"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:39
+msgid "No data imported."
+msgstr "Aucune donnée importée"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:40
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:76
+msgid "Data Layer"
+msgstr "Calque de données"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:53
+msgid "Reverse Segments"
+msgstr "Retourne les segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+msgid "Revert the direction of all selected Segments."
+msgstr "Retourne les segments sélectionnés."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:39
+msgid "Please select at least one segment."
+msgstr "Sélectionner au moins un segment."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:209
+msgid "Preferences"
+msgstr "Préférences"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+msgid "Open a preferences page for global settings."
+msgstr "Ouvrir la page des préférences pour les réglages généraux."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open"
+msgstr "Ouvrir"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open a file."
+msgstr "Ouvrir un fichier"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:73
+msgid "CSV Data import for non-GPS data is not implemented yet."
+msgstr ""
+"L'import des données CSV pour les données non GPS n'est pas encore "
+"implémenté."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:76
+#, java-format
+msgid "Unknown file extension: {0}"
+msgstr "Extension de fichier inconnue : {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:83
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:59
+#, java-format
+msgid "Error while parsing {0}"
+msgstr "Erreur pendant le traitement {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:86
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:63
+#, java-format
+msgid "Could not read \"{0}\""
+msgstr "Impossible de lire \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:71
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:287
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:302
+#, java-format
+msgid "Executing {0}"
+msgstr "Exécute {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:146
+msgid "The Tool requires some data to be loaded."
+msgstr "Cette fonctionnalité nécessite que des données soient chargées."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:306
+#, java-format
+msgid "Could not execute command: {0}"
+msgstr "Impossible d'exécuter la commande {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:317
+msgid "Tools"
+msgstr "Outils"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:352
+msgid "Could not read external tool configuration."
+msgstr "Impossible de lire le fichier externe de configuration."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:69
+msgid "Align Nodes in Circle"
+msgstr "Placer les noeuds en cercle"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+msgid "Move the selected nodes into a circle."
+msgstr "Déplacer les noeuds sélectionnés en un cercle."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:39
+msgid "Please select at least four nodes."
+msgstr "Sélectionner au moins quatre noeuds."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:56
+msgid "Rename layer"
+msgstr "Renommer le calque"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:44
+msgid "Also rename the file"
+msgstr "Renommer également le fichier."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:80
+#, java-format
+msgid "Could not rename the file \"{0}\"."
+msgstr "Impossible de renommer le fichier \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo"
+msgstr "Annuler"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo the last action."
+msgstr "Annuler la dernière action."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download from OSM"
+msgstr "Télécharger depuis OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download map data from the OSM server."
+msgstr "Télécharger les données de la carte depuis le serveur OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:102
+msgid ""
+"Move and zoom the image like the main map. Select an area to download by "
+"dragging."
+msgstr ""
+"Déplacer ou zoomer sur l'image comme pour la carte principale. Sélectionner "
+"une zone à télécharger en faisant glisser la souris bouton principal enfoncé."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:105
+msgid "Bounding box"
+msgstr "Zone sélectionnée"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:106
+msgid "min lat"
+msgstr "lat min"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:108
+msgid "min lon"
+msgstr "lon min"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:110
+msgid "max lat"
+msgstr "lat max"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:112
+msgid "max lon"
+msgstr "lon max"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:122
+msgid "Download the following data:"
+msgstr "Téléchargement des données :"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:129
+msgid "URL from www.openstreetmap.org"
+msgstr "URL à partir de www.openstreetmap.org"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:182
+msgid "Bookmarks"
+msgstr "Marque-pages"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:198
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:344
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/AddCommand.java:52
+msgid "Add"
+msgstr "Ajouter"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:203
+msgid "Please enter the desired coordinates first."
+msgstr "Entrer les coordonnées désirées en premier."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:206
+msgid "Please enter a name for the location."
+msgstr "Entrer un nom pour cet emplacement."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:214
+msgid "Remove"
+msgstr "Supprimer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:219
+msgid "Select a bookmark first."
+msgstr "Sélectionner un marque-page en premier."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:238
+msgid "Choose an area"
+msgstr "Choisir une zone"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:261
+msgid "Please enter the desired coordinates or click on a bookmark."
+msgstr "Entrer les coordonnées désirées ou cliquer sur un marque-page."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:263
+msgid "Please select at least one download data type."
+msgstr "Sélectionner au moins un type de données à télécharger."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit"
+msgstr "Quitter"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit the application."
+msgstr "Quitter l'application."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "About"
+msgstr "À propos"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "Display the about screen."
+msgstr "Montrer l'à propos."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:67
+#, java-format
+msgid "Java OpenStreetMap Editor Version {0}"
+msgstr "Java OpenStreetMap Editor Version {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:68
+#, java-format
+msgid "last change at {0}"
+msgstr "dernier changement le {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:69
+#, java-format
+msgid "Java Version {0}"
+msgstr "Java Version {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:70
+msgid "Homepage"
+msgstr "Page d'accueil"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:72
+msgid "Bug Reports"
+msgstr "Rapports de bug"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:74
+msgid "News about JOSM"
+msgstr "Nouveutés sur JOSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:78
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java:25
+msgid "Info"
+msgstr "Info"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:79
+msgid "Readme"
+msgstr "Lisez-moi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:80
+msgid "Revision"
+msgstr "Révision"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:81
+msgid "Contribution"
+msgstr "Contribution"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:85
+msgid "About JOSM..."
+msgstr "À propos de JOSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:95
+msgid "File could not be found."
+msgstr "Impossible de trouver le fichier."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:25
+msgid "No document open so nothing to save."
+msgstr "Aucun document ouvert donc rien à sauvegarder."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "The document contains no data. Save anyway?"
+msgstr "Le document ne contient aucune donnée. Sauvegarder quand même ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "Empty document"
+msgstr "Document vide"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid ""
+"There are unresolved conflicts. Conflicts will not be saved and handled as "
+"if you rejected all. Continue?"
+msgstr ""
+"Certains conflits ne sont pas résolus. Les conflits ne seront pas "
+"sauvegardés si vous ne les traitez pas. Continuer ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid "Conflicts"
+msgstr "Conflits"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "File exists. Overwrite?"
+msgstr "Le fichier existe déjà. Écrire dessus ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "Overwrite"
+msgstr "Écrire dessus"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:29
+msgid "data"
+msgstr "données"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:30
+msgid "selection"
+msgstr "sélection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:31
+msgid "layer"
+msgstr "calque"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:32
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:141
+msgid "conflict"
+msgstr "conflit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:40
+#, java-format
+msgid "Auto Scale: {0}"
+msgstr "Zoom auto : {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:43
+#, java-format
+msgid "Auto zoom the view (to {0}. Disabled if the view is moved)"
+msgstr ""
+"Zoomer automatiquement sur la vue ({0}) (Annulé si la vue est déplacée)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save as"
+msgstr "Sauvegarder sous"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save the current data to a new file."
+msgstr "Sauvegarder les données actuelles dans un nouveau fichier."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:25
+msgid "OSM Server Files (.osm .xml)"
+msgstr "Fichiers d'un serveur OSM (.osm .xml)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:26
+msgid "GPX Files (.gpx)"
+msgstr "Fichiers GPX (.gpx)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:27
+msgid "CSV Files (.csv .txt)"
+msgstr "Fichiers CSV (.csv .txt)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload to OSM"
+msgstr "Charger sur OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload all changes to the OSM server."
+msgstr "Charger tous les changements sur le serveur OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:41
+msgid "Nothing to upload. Get some data first."
+msgstr "Rien à charger. Obtenez d'abord des données."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:46
+msgid "There are unresolved conflicts. You have to resolve these first."
+msgstr ""
+"Certains conflits ne sont pas résolus. Vous devez d'abord les résoudre."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:75
+msgid "Uploading data"
+msgstr "Chargement des données"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:97
+msgid "No changes to upload."
+msgstr "Aucun changement à charger."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:106
+msgid "Objects to add:"
+msgstr "Objets à ajouter : "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:114
+msgid "Objects to modify:"
+msgstr "Objets à modifier : "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:122
+msgid "Objects to delete:"
+msgstr "Objets à supprimer : "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:129
+msgid "Upload this changes?"
+msgstr "Charger ces changements ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:54
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:55
+msgid "Help"
+msgstr "Aide"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:106
+msgid "Can only edit help pages from JOSM Online Help"
+msgstr ""
+"Les pages d'aide ne peuvent être éditées que depuis l'aide en ligne de JOSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:39
+#, java-format
+msgid "Downloading {0} segment"
+msgid_plural "Downloading {0} segments"
+msgstr[0] "Téléchargement de {0} segment"
+msgstr[1] "Téléchargement de {0} segments"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download incomplete objects"
+msgstr "Télécharger les objets incomplets"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download all (selected) incomplete ways from the OSM server."
+msgstr ""
+"Télécharger tous les chemins sélectionnés incomplets depuis le serveur OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:66
+msgid "Please select an incomplete way."
+msgstr "Sélectionner un chemin incomplet"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+#, java-format
+msgid "Download {0} incomplete ways?"
+msgstr "Télécharger {0} chemins incomplets ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+msgid "Download?"
+msgstr "Télécharger ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo"
+msgstr "Refaire"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo the last undone action."
+msgstr "Refaire la dernière action annulée"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:40
+msgid ""
+"Note: GPL is not compatible to the OSM license. Do not upload GPL licensed "
+"tracks."
+msgstr ""
+"Note : La GPL n'est pas compatible avec la licence d'OSM. Ne pas importer "
+"des traces sous licence GPL."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export to GPX"
+msgstr "Exporter en GPX"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export the data to GPX file."
+msgstr "Exporter les données en un fichier GPX."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:51
+msgid "Nothing to export. Get some data first."
+msgstr "Rien à exporter.Obtenez d'abord des données."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:75
+msgid "gps track description"
+msgstr "description de la trace GPS"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:81
+msgid "Add author information"
+msgstr "Ajouter des informations sur l'auteur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:84
+msgid "Real name"
+msgstr "Nom réel"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:88
+msgid "Email"
+msgstr "E-mail"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:92
+msgid "Copyright (URL)"
+msgstr "Copyright (URL)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:96
+msgid "Predefined"
+msgstr "Prédéfini"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:98
+msgid "Copyright year"
+msgstr "Année du copyright"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:106
+msgid "Keywords"
+msgstr "Mots-clés"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:110
+msgid "Export options"
+msgstr "Options d'export"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+#, java-format
+msgid "Error while exporting {0}"
+msgstr "Erreur à l'export {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+msgid "Error"
+msgstr "Erreur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:185
+msgid "Choose a predefined license"
+msgstr "Choisir une licence prédéfinie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save"
+msgstr "Sauvegarder"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save the current data."
+msgstr "Sauvegarder les données actuelles"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:58
+msgid "CSV output not supported yet."
+msgstr "Sortie en CSV pas encore supportée."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:61
+msgid "Unknown file extension."
+msgstr "Extension de fichier inconnue."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:67
+msgid "An error occoured while saving."
+msgstr "Une erreur s'est produite pendant la sauvegarde."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:44
+#, java-format
+msgid ""
+"The plugin {0} throwed an exception: {1}\n"
+"It may be outdated. Please contact the plugin's autor.\n"
+"This message will not shown again until JOSM is restarted."
+msgstr ""
+"Le greffon {0} signale une exception : {1}\n"
+"Il est possible qu'il ne soit pas à jour. Merci de contacter l'auteur du "
+"greffon.\n"
+"Ce message ne réapparaitra pas jusqu'au prochain démarrage de JOSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Do nothing"
+msgstr "Ne rien faire"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Report Bug"
+msgstr "Rapporter un bug"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:51
+msgid ""
+"An unexpected exception occoured.\n"
+"\n"
+"This is always a coding error. If you are running the latest\n"
+"version of JOSM, please consider be kind and file a bug report."
+msgstr ""
+"Une exception inattendue est apparue.\n"
+"\n"
+"Cela est toujours du à une erreur de code. Si vous utilisez la dernière "
+"version de JOSM, il serait aimable de produire un rapport de bug."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:54
+msgid "Unexpected Exception"
+msgstr "Exception inattendue"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:62
+msgid ""
+"Please send this to josm@eigenheimstrasse.de\n"
+"\n"
+msgstr ""
+"Merci d'envoyer cela à josm@eigenheimstrasse.de\n"
+"\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:83
+msgid ""
+"Please send an email with the following information to josm@eigenheimstrasse."
+"de"
+msgstr ""
+"Merci d'envoyer un e-mail avec les informations suivantes à "
+"josm@eigenheimstrasse.de"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:12
+msgid "Ctrl-"
+msgstr "Ctrl-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:14
+msgid "Alt-"
+msgstr "Alt-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:16
+msgid "AltGr-"
+msgstr "AltGr-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:18
+msgid "Shift-"
+msgstr "Shift-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/plugins/PluginException.java:17
+#, java-format
+msgid "An error occoured in plugin {0}"
+msgstr "Une erreur s'est produite avec le greffon {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:63
+msgid "Load Selection"
+msgstr "Charger la sélection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:70
+#, java-format
+msgid "Contact {0}..."
+msgstr "Contact de {0}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:75
+msgid "Downloading..."
+msgstr "Téléchargement..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:87
+#, java-format
+msgid "Could not read from url: \"{0}\""
+msgstr "Impossible de lire quelque chose depuis l'URL : \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:90
+#, java-format
+msgid "Parsing error in url: \"{0}\""
+msgstr "Erreur d'analyse dans l'URL : \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Current Selection"
+msgstr "Sélection actuelle"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Open a selection list window."
+msgstr "Afficher une liste de la sélection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:143
+msgid "Please enter a search string."
+msgstr "Entrer le texte à rechercher."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:145
+msgid ""
+"<html>Fulltext search.<ul><li><code>Baker Street</code>  - 'Baker' and "
+"'Street' in any key or name.</li><li><code>\"Baker Street\"</code>  - 'Baker "
+"Street' in any key or name.</li><li><code>name:Bak</code>  - 'Bak' anywhere "
+"in the name.</li><li><code>-name:Bak</code>  - not 'Bak' in the name.</"
+"li><li><code>foot:</code>  - key=foot set to any value.</ul></html>"
+msgstr ""
+"<html>Recherche du texte entier<ul><li><code>Baker·Street</code>··-"
+"·'Baker'·et·'Street'·dans les clés et les noms.</li><li><code>\"Baker·Street"
+"\"</code>··-·'Baker·Street'·dans les clés et les noms.</li><li><code>name:"
+"Bak</code>··-·'Bak'·n'importe où dans le nom.</li><li><code>-name:Bak</"
+"code>··-·pas de·'Bak'·dans le nom.</li><li><code>foot:</code>··-"
+"·key=foot·associé à n'importe quelle valeur.</ul></html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:153
+msgid "replace selection"
+msgstr "remplacer la sélection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:154
+msgid "add to selection"
+msgstr "ajouter à la sélection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:155
+msgid "remove from selection"
+msgstr "supprimer de la sélection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:172
+msgid "Search"
+msgstr "Chercher"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Conflict"
+msgstr "Conflit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Merging conflicts."
+msgstr "Gérer les conflits"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:63
+msgid "Resolve"
+msgstr "Résoudre"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:64
+msgid "Open a merge dialog of all selected items in the list above."
+msgstr ""
+"Ouvrir une une fenêtre de fusion des éléments sélectionnés dans cette liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:73
+msgid "Select"
+msgstr "Sélectionner"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:74
+msgid ""
+"Set the selected elements on the map to the selected items in the list above."
+msgstr ""
+"Remplacer les éléments de la carte par les éléments sélectionnés de cette "
+"liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:108
+msgid "Please select something from the conflict list."
+msgstr "Sélectionnez un élément de la liste des conflits."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:117
+msgid "Resolve Conflicts"
+msgstr "Résoudre les conflits"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:82
+msgid "Click Reload to refresh list"
+msgstr "Cliquer sur Recharger pour rafraichir la liste"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:83
+msgid "Reload"
+msgstr "Recharger"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:84
+msgid "Revert"
+msgstr "Retourner"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "History"
+msgstr "Historique"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "Display the history of all selected items."
+msgstr "Afficher l'historique des objets sélectionnés."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:225
+msgid "Object"
+msgstr "Objet"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+msgid "Date"
+msgstr "Date"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:131
+msgid "Reload all currently selected objects and refresh the list."
+msgstr "Recharger les objets sélectionnés et rafraichir la liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:180
+msgid "Not implemented yet."
+msgstr "Pas encore implémenté."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:138
+msgid ""
+"Revert the state of all currently selected objects to the version selected "
+"in the history list."
+msgstr ""
+"Rétablir l'état des objets sélectionnés à la version sélectionnée dans "
+"l'historique."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Command Stack"
+msgstr "Pile de commandes"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Open a list of all commands (undo buffer)."
+msgstr "Ouvrir une liste de toutes les commandes (annuler le buffer)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:99
+msgid "Please select the objects you want to change properties for."
+msgstr "Sélectionner les objets dont vous voulez changer les propriétés."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+#, java-format
+msgid "This will change {0} object."
+msgid_plural "This will change {0} objects."
+msgstr[0] "Cela changera {0} objet."
+msgstr[1] "Cela changera {0} objets."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#, java-format
+msgid ""
+"Please select a new value for \"{0}\".<br>(Empty string deletes the key.)"
+msgstr ""
+"Merci de sélectionner une valeur pour \"{0}\". <br>(une chaîne de caractères "
+"vide supprime la clé)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:114
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:178
+msgid "Change values?"
+msgstr "Changer les valeurs ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:132
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:284
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:369
+msgid "<different>"
+msgstr "<différent>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:151
+msgid "Please select objects for which you want to change properties."
+msgstr "Sélectionnez les objets dont vous voulez changer les propriétés."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+msgid "Please select a key"
+msgstr "Sélectionner une clé"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:169
+msgid "Please select a value"
+msgstr "Sélectionner une valeur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Properties"
+msgstr "Propriétés"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Property for selected objects."
+msgstr "Propriétés des objets sélectionnés."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:241
+#, java-format
+msgid "Could not read annotation preset source: {0}"
+msgstr "Impossible de lire le fichier d'annotations : {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:244
+#, java-format
+msgid "Error parsing {0}: "
+msgstr "Erreur de traitement {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:263
+#, java-format
+msgid "Change {0} object"
+msgid_plural "Change {0} objects"
+msgstr[0] "Cela changera {0} objet."
+msgstr[1] "Change {0} objets."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Key"
+msgstr "Clé"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Value"
+msgstr "Valeur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:309
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:359
+msgid "Please select the row to edit."
+msgstr "Sélectionnez l'étage à éditer."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:314
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:374
+msgid "Please select the row to delete."
+msgstr "Sélectionner l'étage à supprimer."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+msgid "Add a new key/value pair to all objects"
+msgstr "Ajouter un nouveau couple clé/valeur à tous les objets"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:355
+#: ../../plugins/grid/src/grid/GridPlugin.java:43
+#: ../../plugins/grid/src/grid/GridPlugin.java:49
+msgid "Edit"
+msgstr "Éditer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+msgid "Edit the value of the selected key for all objects"
+msgstr "Éditer la valeur de la clé selectionnée pour tous les objets"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+msgid "Delete the selected key in all objects"
+msgstr "Supprimer la clé sélectionnée de tous les objets"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:60
+msgid "Delete the selected layer."
+msgstr "Supprimer le calque sélectionné."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:82
+msgid "Show/Hide"
+msgstr "Montrer/Cacher"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:83
+msgid "Toggle visible state of the selected layer."
+msgstr "Change la visibilité du calque sélectionné."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Layers"
+msgstr "Calque"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Open a list of all loaded layers."
+msgstr "Ouvrir une liste de tous les calques chargés."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:196
+msgid "Move the selected layer one row up."
+msgstr "Déplacer le calque sélectionné un étage au-dessus."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:202
+msgid "Move the selected layer one row down."
+msgstr "Déplacer le calque sélectionné un étage en-dessous."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:216
+msgid "Merge the selected layer into the layer directly below."
+msgstr ""
+"Fusionner les calques sélectionnés dans le calque directement en dessous."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:160
+#, java-format
+msgid "Unknown type at line {0}"
+msgstr "Type inconnu à la ligne : {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:178
+#, java-format
+msgid "Cannot have a writable combobox with default values (line {0})"
+msgstr ""
+"Impossible d'avoir une combobox avec des valeurs par défaut (ligne {0})"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:183
+#, java-format
+msgid ""
+"display_values ({0}) and values ({1}) must be of same number of elements."
+msgstr ""
+"display_values·({0})·et·values·({1})·doivent contenir le même nombre "
+"d'éléments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:184
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:185
+msgid "element"
+msgid_plural "elements"
+msgstr[0] "élément"
+msgstr[1] "éléments"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:190
+#, java-format
+msgid "Unknown annotation object {0} at line {1} column {2}"
+msgstr "Objet d'annotation inconnu : {0} à la ligne {1} colonne {2}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:258
+msgid "Change Properties"
+msgstr "Changer les propriétés"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:161
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:66
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "node"
+msgid_plural "nodes"
+msgstr[0] "noeud"
+msgstr[1] "noeuds"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:162
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:136
+msgid "segment"
+msgid_plural "segments"
+msgstr[0] "segment"
+msgstr[1] "segments"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:163
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:92
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:137
+msgid "way"
+msgid_plural "ways"
+msgstr[0] "chemin"
+msgstr[1] "chemins"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:178
+msgid "There were conflicts during import."
+msgstr "Il y a eu des conflits pendant l'import."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:317
+#, java-format
+msgid "{0} consists of:"
+msgstr "{0} consiste en :"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:321
+#, java-format
+msgid " ({0} deleted.)"
+msgstr " ({0} supprimés)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:57
+msgid "Convert to data layer"
+msgstr "Convertir en un calque de données"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:159
+msgid "track"
+msgid_plural "tracks"
+msgstr[0] "trace"
+msgstr[1] "traces"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:160
+msgid "point"
+msgid_plural "points"
+msgstr[0] "point"
+msgstr[1] "points"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:185
+#, java-format
+msgid "a track with {0} point"
+msgid_plural "a track with {0} points"
+msgstr[0] "une trace avec {0} point"
+msgstr[1] "une trace avec {0} points"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} consists of {1} track"
+msgid_plural "{0} consists of {1} tracks"
+msgstr[0] "{0} consiste en {1} trace"
+msgstr[1] "{0} consiste en {1} traces"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} point"
+msgid_plural "{0} points"
+msgstr[0] "{0} point"
+msgstr[1] "{0} points"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:193
+msgid "Customize line drawing"
+msgstr "Personnaliser le dessin des lignes"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:197
+msgid "Use global settings."
+msgstr "Utiliser les réglages généraux."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:198
+msgid "Draw lines between points for this layer."
+msgstr "Dessiner des lignes entre les points pour ce calque."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:199
+msgid "Do not draw lines between points for this layer."
+msgstr "Ne pas dessiner de ligne entre les points pour ce calque."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:211
+msgid "Select line drawing options"
+msgstr "Options de dessin des lignes"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:222
+msgid "Customize Color"
+msgstr "Personnaliser la couleur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "OK"
+msgstr "OK"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:24
+msgid "Cancel"
+msgstr "Annuler"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "Default"
+msgstr "Par défaut"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:228
+msgid "Choose a color"
+msgstr "Choisir une couleur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:243
+msgid "Import images"
+msgstr "Import des images"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:255
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:349
+msgid "JPEG images (*.jpg)"
+msgstr "images JPEG (*.jpg)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:90
+#, java-format
+msgid "Images for {0}"
+msgstr "Images pour {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:95
+msgid "Read GPS..."
+msgstr "Lecture du GPS..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:102
+#, java-format
+msgid "No time for point {0} x {1}"
+msgstr "Aucune heure pour le point {0}·x·{1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:107
+#, java-format
+msgid "Cannot read time \"{0}\" from point {1} x {2}"
+msgstr "Impossible de lire l'heure \"{0}\" du point {1} x {2}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:114
+msgid "No images with readable timestamps found."
+msgstr "Aucune image avec des informations horaires lisibles trouvée."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:125
+#, java-format
+msgid "Reading {0}..."
+msgstr "Lecture de {0}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:191
+msgid "Geotagged Images"
+msgstr "Images géomarquées"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:269
+#, java-format
+msgid "GPS start: {0}"
+msgstr "Allumage du GPS : {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:270
+#, java-format
+msgid "GPS end: {0}"
+msgstr "Extinction du GPS : {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:272
+#, java-format
+msgid "current delta: {0}s"
+msgstr "variation actuelle : {0}s"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:273
+msgid "timezone difference: "
+msgstr "différence de fuseau horaire : "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+msgid "image"
+msgid_plural "images"
+msgstr[0] "image"
+msgstr[1] "images"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+#, java-format
+msgid "{0} within the track."
+msgstr "{0} dans la trace."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:338
+msgid "Sync clock"
+msgstr "Synchroniser l'horloge"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:395
+#, java-format
+msgid "The date in file \"{0}\" could not be parsed."
+msgstr "La date du fichier \"{0}\" ne peut être analysée."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:399
+#, java-format
+msgid "There is no EXIF time within the file \"{0}\"."
+msgstr "Il n'y a aucune heure EXIF associée au fichier \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:403
+msgid "Image"
+msgstr "Image"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:405
+msgid "Enter shown date (mm/dd/yyyy HH:MM:SS)"
+msgstr "Entrez la date et l'heure montrées (mm/jj/aaaa HH:MM:SS)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:408
+msgid "GPS unit timezome (difference to photo)"
+msgstr "Zone horaire de l'unité GPS (différence avec la photo)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:416
+msgid "Syncronize Time with GPS Unit"
+msgstr "Synchroniser l'heure avec l'unité GPS"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:432
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:434
+msgid "Time entered could not be parsed."
+msgstr "L'heure indiquée ne peut être analysée."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:74
+msgid "Could not read bookmarks."
+msgstr "Impossible de lire les marque-pages."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:98
+msgid "Could not write bookmark."
+msgstr "Impossible d'écrire un marque-page."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:123
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:171
+msgid "Java Open Street Map - Editor"
+msgstr "Java Open Street Map - Editor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:163
+msgid "layer not in list."
+msgstr "le calque n'est pas dans la liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:55
+msgid "Hint: Some changes came from uploading new data to the server."
+msgstr ""
+"Indication : Certains changements viennent du chargment de nouvelles données "
+"sur le serveur."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:57
+msgid "There are unsaved changes. Really quit?"
+msgstr "Certains changements ne sont pas sauvegardés. Quitter quand même ?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:58
+msgid "Unsaved Changes"
+msgstr "Changements non sauvegardés"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:144
+msgid "Java OpenStreetMap Editor"
+msgstr "Java OpenStreetMap Editor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:145
+msgid "usage"
+msgstr "usage"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:147
+msgid "options"
+msgstr "Options"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:148
+msgid "Show this help"
+msgstr "Montrer cette aide"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:149
+msgid "Standard unix geometry argument"
+msgstr "Argument de géométrie standard UNIX"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:150
+msgid "Download the bounding box"
+msgstr "Télécharge la zone sélectionnée"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:151
+msgid "Download the location at the url (with lat=x&lon=y&zoom=z)"
+msgstr "Télécharge l'emplacement donné par l'URL (avec lat=x&lon=y&zoom=z)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:152
+msgid "Open file (as raw gps, if .gpx or .csv)"
+msgstr "Ouvrir un fichier (en GPS brut si .gpx ou .csv)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:153
+msgid "Download the bounding box as raw gps"
+msgstr "Télécharger la zone sélectionnée en GPS brut."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:154
+msgid "Select with the given search"
+msgstr "Sélectionner les résultats de la recherche."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:155
+msgid "Don't launch in fullscreen mode"
+msgstr "Ne pas lancer en plein écran"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:156
+msgid "Reset the preferences to default"
+msgstr "Rétablir les préférences par défaut"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:157
+msgid "Set the language. Example: "
+msgstr "Choisir la langue. Exemple : "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:158
+msgid "examples"
+msgstr "exemples"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:164
+msgid ""
+"Parameters are read in the order they are specified, so make sure you load\n"
+"some data before --selection"
+msgstr ""
+"Les paramètres sont lus dans l'ordre dans lequel ils sont spécifiés, soyez "
+"donc\n"
+"sur d'avoir chargé des données avant --selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:166
+msgid "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+msgstr "Au lieu de --download=<bbox> vous devriez indiquer osm://<bbox>\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:52
+msgid "Layer"
+msgstr "Calque"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:56
+msgid "Files"
+msgstr "Fichiers"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:57
+msgid "Connection"
+msgstr "Connexion"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:22
+msgid "Contacting the OSM server..."
+msgstr "Contact du serveur OSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:223
+msgid "Lat/Lon"
+msgstr "Lat/Lon"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:232
+#, java-format
+msgid "{0} object has conflicts:"
+msgid_plural "{0} objects have conflicts:"
+msgstr[0] "{0} objet est conflictuel : "
+msgstr[1] "{0} objets sont conflictuels :"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:235
+msgid "my version:"
+msgstr "ma version :"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:241
+msgid "their version:"
+msgstr "version du serveur : "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:247
+msgid "resolved version:"
+msgstr "version choisie : "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:77
+msgid "Error while parsing"
+msgstr "Erreur d'analyse"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:80
+msgid "File Not found"
+msgstr "Fichier non trouvé"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "string"
+msgstr "texte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+msgid "Name of the user."
+msgstr "Nom de l'utilisateur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+msgid "OSM Password."
+msgstr "Mot de passe OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "Size the applet to the given geometry (format: WIDTHxHEIGHT)"
+msgstr ""
+"Redimensionner l'applet aux proportions donnnées (format LARGEURxHAUTEUR)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid "string;string;..."
+msgstr "texte;texte;..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+msgid ""
+"Download each. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a "
+"filename"
+msgstr ""
+"Les télécharge tous. Peut être sous la forme \"x1,y1,x2,z2\" ou un URL "
+"contenant lat=y&lon=x&zoom=z ou encore un nom de fichier."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+msgid ""
+"Download each as raw gps. Can be x1,y1,x2,y2 an url containing "
+"lat=y&lon=x&zoom=z or a filename"
+msgstr ""
+"Télécharger comme données GPS brutes. Peut être sous la forme x1,y1,x2,"
+"y2·un·URL·contenant·lat=y&lon=x&zoom=z ou un nom de fichier."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid ""
+"Add each to the initial selection. Can be a google-like search string or an "
+"url which returns osm-xml"
+msgstr ""
+"Les ajoute tous à la sélection initale. Cela peut être un texte de recherche "
+"comme pour Google ou un URL retournant du osm-xml"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "any"
+msgstr "n'importe"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "If specified, reset the configuration instead of reading it."
+msgstr ""
+"Si spécifié, rétablir la configuration par défaut au lieu de lire ceci."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:65
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:68
+msgid "Username"
+msgstr "Nom d'utilisateur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:68
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:71
+msgid "Password"
+msgstr "Mot de passe"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:123
+msgid "You have to restart JOSM for some settings to take effect."
+msgstr "Vous devez redémarrer JOSM pour que certains réglages prennent effet."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:185
+msgid "Draw lines between raw gps points."
+msgstr "Dessiner des lignes entre les points GPS bruts."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:189
+msgid "Force lines if no segments imported."
+msgstr "Forcer les lignes si aucun segment importé"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:190
+msgid "Draw large GPS points."
+msgstr "Dessiner de gros points GPS."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:191
+msgid "Draw Direction Arrows"
+msgstr "Dessiner les flèches de direction"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:250
+msgid ""
+"Force drawing of lines if the imported data contain no line information."
+msgstr ""
+"Force le dessin de lignes si les données importées ne contiennent pas "
+"d'informationsur les lignes."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:254
+msgid "Draw larger dots for the GPS points."
+msgstr "Dessine de plus gros points GPS."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:255
+msgid "Draw direction hints for all segments."
+msgstr "Dessine les flèches de direction pour tous les segments."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:306
+msgid "Color"
+msgstr "Couleur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:307
+msgid "Name"
+msgstr "Nom"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:328
+msgid "Choose"
+msgstr "Choisir"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:332
+msgid "Please select a color."
+msgstr "Sélectionner une couleur"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:337
+#, java-format
+msgid "Choose a color for {0}"
+msgstr "Choisir une couleur pour {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:347
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:361
+msgid "Annotation preset source"
+msgstr "Source du fichier d'annotations"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:386
+msgid "The base URL to the OSM server (REST API)"
+msgstr "L'URL de base du serveur OSM (API)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:387
+msgid "Login name (email) to the OSM account."
+msgstr "Nom d'utilisateur (e-mail) de votre compte OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:388
+msgid ""
+"Login password to the OSM account. Leave blank to not store any password."
+msgstr ""
+"Mot de passe d'identification au compte OSM. Laisser blanc pour ne stocker "
+"aucun mot de passe."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:389
+msgid "The base URL to the server retrieving WMS background pictures from."
+msgstr "L'URL du serveur récupérant les images de l'arrière-plan WMS."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:390
+msgid ""
+"<html>Import string specification. lat/lon and time are imported.<br><b>lat</"
+"b>: The latitude coordinate<br><b>lon</b>: The longitude "
+"coordinate<br><b>time</b>: The measured time as string<br><b>ignore</b>: "
+"Skip this field<br>An example: \"ignore ignore lat lon\" will use ' ' as "
+"delimiter, skip the first two values and read then lat/lon.<br>Other "
+"example: \"lat,lon\" will just read lat/lon values comma seperated.</html>"
+msgstr ""
+"<html>Import des spécifications. lat/lon et time sont importés.<br><b>lat</"
+"b> : la latitude<br><b>lon</b> :la longitude<br><b>time</b> :l'heure "
+"mesurée<br><b>ignore</b>:·sauter ce champ<br>Un exemple : "
+"\"ignore·ignore·lat·lon\"·utilisera·'·'·comme délimiteur, sautera les deux "
+"premières valeurs, et lira ensuite la latitude et la longitude<br>Un autre "
+"exemple : \"lat,lon\"·lira simplement la latitude et la longitude séparées "
+"par une virgule.</html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:397
+msgid ""
+"If your gps device draw to few lines, select this to draw lines along your "
+"way."
+msgstr ""
+"Si votre unité GPS dessine trop peu de lignes, sélectionnez ceci pour "
+"dessiner des lignes le long de votre chemin."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:398
+msgid "Colors used by different objects in JOSM."
+msgstr "Couleurs utilisées par les différents objets de JOSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:399
+msgid ""
+"The sources (url or filename) of annotation preset definition files. See "
+"http://josm.eigenheimstrasse.de/wiki/AnnotationPresets for help."
+msgstr ""
+"Sources (URL ou fichier) des fichiers d'annotations prédéfinies. Voir http://"
+"josm.eigenheimstrasse.de/wiki/AnnotationPresets pour de l'aide (en anglais)."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:400
+msgid "Add a new annotation preset source to the list."
+msgstr "Ajouter un nouveau fichier d'annotations à la liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:401
+msgid "Delete the selected source from the list."
+msgstr "Supprimer la source sélectionné de la liste."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid "Display Settings"
+msgstr "Réglages d'affichage"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid ""
+"Various settings that influence the visual representation of the whole "
+"program."
+msgstr "Divers réglages de l'apparence de tout le programme."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:407
+msgid "Look and Feel"
+msgstr "Apparence et comportement"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:414
+msgid "Colors"
+msgstr "Couleurs"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings"
+msgstr "Réglages de connexion"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings to the OSM server."
+msgstr "Réglages de connexion au serveur OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:422
+msgid "Base Server URL"
+msgstr "URL du serveur de base"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:424
+msgid "OSM username (email)"
+msgstr "Nom d'utilisateur OSM (e-mail)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:426
+msgid "OSM password"
+msgstr "Mot de passe OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:428
+msgid ""
+"<html>WARNING: The password is stored in plain text in the preferences file."
+"<br>The password is transfered in plain text to the server, encoded in the "
+"url.<br><b>Do not use a valuable Password.</b></html>"
+msgstr ""
+"<html>ATTENTION : Le mot de passe est stocké en texte brut dans le fichier "
+"de préférences.<br>Le mot de passe est transféré en texte brut au serveur, "
+"encodé dans l'URL.<br><b>N'utilisez pas un mot de passe de valeur.</b></html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:437
+msgid "CSV import specification (empty: read from first line in data)"
+msgstr ""
+"Spécifications de l'import CSV (vide : lire depuis la première ligne de "
+"données)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Map Settings"
+msgstr "Réglages de la carte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Settings for the map projection and data interpretation."
+msgstr ""
+"Réglages pour la projection de la carte et l'interprétation des données."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:443
+msgid "Projection method"
+msgstr "Méthode de projection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:446
+msgid "Annotation preset sources"
+msgstr "Sources des annotations prédéfinies"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Plugins"
+msgstr "Greffons"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Configure available Plugins."
+msgstr "Configurer les greffons disponibles."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:465
+msgid "Get more plugins"
+msgstr "Obtenir plus de greffons"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:45
+#, java-format
+msgid "Downloading points {0} to {1}..."
+msgstr "Téléchargement des points {0} {1}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:89
+msgid "Downloading OSM data..."
+msgstr "Téléchargement des données OSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:101
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:103
+msgid "Unknown version"
+msgstr "Version inconnue"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:119
+msgid "Found <seg> tag on non-way."
+msgstr "Tag <seg> trouvé en dehors d'un chemin."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:122
+msgid "Incomplete segment with id=0"
+msgstr "Le segment avec l'id=0 est incomplet"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:131
+msgid "NullPointerException. Possible some missing tags."
+msgstr "NullPointerException.·Certains tags peuvent manquer."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:146
+msgid "Illegal object with id=0"
+msgstr "L'objet avec l'id=0 est illégal"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:154
+#, java-format
+msgid "Couldn''t read time format \"{0}\"."
+msgstr "Impossible de lire le format horaire \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:169
+#, java-format
+msgid "Missing required attirbute \"{0}\"."
+msgstr "Attribut requis \"{0}\" manquant."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:239
+msgid "Preparing data..."
+msgstr "Préparation des données..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:249
+msgid "Illformed Node id"
+msgstr "id du noeud malformé"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:71
+#, java-format
+msgid "Upload {0} {1} ({2})..."
+msgstr "Charge {0} {1} ({2})..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:185
+msgid "Unknown host"
+msgstr "Hôte inconnu"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:43
+#: ../../plugins/waypoints/src/WaypointReader.java:55
+#, java-format
+msgid "Data error: lat value \"{0}\" is out of bound."
+msgstr "Erreur de données : La valeur de latitude \"{0}\" est hors limite."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:45
+#: ../../plugins/waypoints/src/WaypointReader.java:59
+#, java-format
+msgid "Data error: lon value \"{0}\" is out of bound."
+msgstr "Erreur de données : La valeur de longitude \"{0}\" est hors limite."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:39
+msgid "Could not detect data format string."
+msgstr "Impossible de détecter le texte de format des données."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:62
+msgid ""
+"Format string in data is incomplete or not found. Try setting an manual "
+"format string in Preferences."
+msgstr ""
+"Le format des données est incomplet ou non trouvé. Essayez de régler le "
+"format manuellement dans les préférences."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:63
+msgid ""
+"Format string is incomplete. Need at least 'lat' and 'lon' specification"
+msgstr ""
+"Le texte de format est incomplet. Les spécifications 'lat' et 'long' au "
+"minimum sont requises."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+#, java-format
+msgid "Unknown data type: \"{0}\"."
+msgstr "Type de données inconnu : \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+msgid "Maybe add an format string in preferences."
+msgstr "Définissez peut-être le format dans les préférences."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:88
+#, java-format
+msgid "Parsing error in line {0}"
+msgstr "Analyse de l'erreur ligne {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:67
+msgid "Incorrect password or username."
+msgstr "Mot de passe ou nom d'utilisateur incorrect."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:74
+msgid "Warning: The password is transferred unencrypted."
+msgstr "Attention : Le mot de passe est transféré non-crypté."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:78
+msgid "Save user and password (unencrypted)"
+msgstr "Sauvegarder l'utilisateur et le mot de passe (non crypté)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:81
+msgid "Enter Password"
+msgstr "Entrer un mot de passe"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:116
+msgid "Aborting..."
+msgstr "Échec..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:80
+#, java-format
+msgid "Data error: Segment {0} is deleted but part of Way {1}"
+msgstr ""
+"Erreur de données : le segment {0} est supprimé mais appartient au chemin {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:115
+#, java-format
+msgid "Data error: Node {0} is deleted but part of Segment {1}"
+msgstr ""
+"Erreur de données : le noeud {0} est supprimé mais appartient au segment {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmIdReader.java:34
+msgid "Error during parse."
+msgstr "Erreur pendant l'analyse."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/PositionConflict.java:19
+msgid "position"
+msgstr "position"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ConflictItem.java:33
+msgid "different"
+msgstr "différent"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:14
+msgid "deleted"
+msgstr "supprimé"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "true"
+msgstr "vrai"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "false"
+msgstr "faux"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:21
+msgid "none"
+msgstr "rien"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:25
+msgid "segments"
+msgstr "segments"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ToConflict.java:19
+msgid "to"
+msgstr "depuis"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/FromConflict.java:19
+msgid "from"
+msgstr "à"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "new"
+msgstr "nouveau"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "unknown"
+msgstr "inconnu"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:87
+#, java-format
+msgid "{0} node"
+msgid_plural "{0} nodes"
+msgstr[0] "{0} noeud"
+msgstr[1] "{0} noeuds"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:89
+msgid "incomplete"
+msgstr "incomplet"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:134
+msgid "background"
+msgstr "arrière plan"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:138
+msgid "incomplete way"
+msgstr "chemin incomplet"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:139
+msgid "selected"
+msgstr "sélectionné"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:140
+msgid "gps point"
+msgstr "point GPS"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:142
+msgid "scale"
+msgstr "mesure"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ConflictResolveCommand.java:77
+#, java-format
+msgid "Resolve {0} conflicts in {1} objects"
+msgstr "Résoudre {0} conflits dans {1} objets"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangeCommand.java:37
+msgid "Change"
+msgstr "Changer"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/SequenceCommand.java:51
+msgid "Sequence"
+msgstr "Séquence"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Remove \"{0}\" for"
+msgstr "Supprime \"{0}\" pour"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Set {0}={1} for"
+msgstr "Affecte {0}={1} pour"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:72
+msgid "object"
+msgid_plural "objects"
+msgstr[0] "objet"
+msgstr[1] "objets"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:201
+#, java-format
+msgid "Plugin not found: {0}."
+msgstr "Greffon non trouvé : {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:204
+#, java-format
+msgid "Could not load plugin {0}."
+msgstr "Impossible de charger le greffon \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:228
+msgid "unnamed"
+msgstr "sans-nom"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:271
+msgid "The projection could not be read from preferences. Using EPSG:4263."
+msgstr ""
+"La projection ne peut être lue depuis les préférences. EPSG:4263 sera "
+"utilisé."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:329
+#, java-format
+msgid "Ignoring malformed url: \"{0}\""
+msgstr "Ignore l'URL malformé : \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:341
+#, java-format
+msgid "Ignoring malformed file url: \"{0}\""
+msgstr "Ignore le fichier malformé d'URL : \"{0}\""
+
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:102
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:108
+msgid "View"
+msgstr "Voir"
+
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:18
+msgid "Landsat background images"
+msgstr "Images satellites landsat"
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:45
+msgid "Wrong longitude transformation for tile manager. Can't operate on {0}"
+msgstr ""
+"Mauvaise transformation de longitude pour le cache. Ne peut pas opérer sur "
+"{0}"
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:70
+#, java-format
+msgid "WMS layer: {0}"
+msgstr "calque WMS :{0}"
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid "Annotation Preset Tester"
+msgstr "Testeur d'annotations prédéfinies"
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid ""
+"Open the annotation preset test tool for previewing annotation preset "
+"dialogs."
+msgstr ""
+"Ouvrir le testeur d'annotations prédéfinies pour en prévisualiser le "
+"fonctionnement."
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:28
+msgid "You have to specify annotation sources in the preferences first."
+msgstr ""
+"Vous devez d'abord spécifier la source des annotations dans les préférences."
+
+#: ../../plugins/grid/src/grid/GridLayer.java:74
+#, fuzzy
+msgid "Grid layer:"
+msgstr "calque"
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+#, fuzzy
+msgid "Open waypoints file"
+msgstr "Ouvrir un fichier"
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+#, fuzzy
+msgid "Open a waypoints file."
+msgstr "Ouvrir un fichier"
+
+#~ msgid "Download {0} ways containing a total of {1} segments?"
+#~ msgstr ""
+#~ "TÃÂÃÂ©lÃÂÃÂ©charger {0} chemins contenant un total de {1} segments ?"
+
+#~ msgid "Refresh the selection list."
+#~ msgstr "Actualiser la liste de sÃÂÃÂ©lection"
+
+#~ msgid "Search for objects."
+#~ msgstr "Rechercher des objets"
+
+#~ msgid "Language"
+#~ msgstr "Langue"
+
+#~ msgid "Conflicts in disjunct objects"
+#~ msgstr "Conflits dans des objets disjoints"
+
+#~ msgid "Downloading {0} {1}"
+#~ msgstr "TÃÂÃÂ©lÃÂÃÂ©chargement {0} {1}"
+
+#~ msgid "Got more than one object when expecting only one."
+#~ msgstr "Plus de deux objets acquis alors qu'un seul ÃÂÃÂ©tait attendu."
+
+#~ msgid "Used in a way."
+#~ msgstr "UtilisÃÂÃÂ© par un chemin."
+
+#~ msgid "Move selected objects around."
+#~ msgstr "DÃÂÃÂ©placer les objets sÃÂÃÂ©lectionnÃÂÃÂ©s."
+
+#~ msgid "Open as raw gps data"
+#~ msgstr "Ouvrir avec les donnÃÂÃÂ©es GPS brutes"
+
+#~ msgid "Show background"
+#~ msgstr "Montrer l'arriÃÂÃÂ¨re-plan"
+
+#~ msgid "Images"
+#~ msgstr "Images"
+
+#~ msgid "Time loop in gps data."
+#~ msgstr "Boucle horaire dans les donnÃÂÃÂ©es GPS."
+
+#~ msgid "OptionPane.okButtonText"
+#~ msgstr "OptionPane.okButtonText"
+
+#~ msgid "OptionPane.cancelButtonText"
+#~ msgstr "OptionPane.cancelButtonText"
+
+#~ msgid "Cannot open preferences directory: {0}"
+#~ msgstr ""
+#~ "Impossible d'ouvrir le rÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©pertoire des "
+#~ "prÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©fÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©rences : {0}"
+
+#~ msgid ""
+#~ "Preferences could not be loaded. Write default preference file to \"{0}\"."
+#~ msgstr ""
+#~ "Les prÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©fÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©rences pourraient ne pas "
+#~ "ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂªtre chargÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©es. ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂcrivez les "
+#~ "prÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©fÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©rences par dÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©faut "
+#~ "dans \"{0}\"."
+
+#~ msgid ""
+#~ "Java OpenStreetMap Editor\n"
+#~ "\n"
+#~ "usage:\n"
+#~ "\tjava -jar josm.jar <option> <option> <option>...\n"
+#~ "\n"
+#~ "options:\n"
+#~ "\t--help|-?|-h                              Show this help\n"
+#~ "\t--geometry=widthxheight(+|-)x(+|-)y       Standard unix geometry "
+#~ "argument\n"
+#~ "\t[--download=]minlat,minlon,maxlat,maxlon  Download the bounding box\n"
+#~ "\t[--download=]<url>                        Download the location at the "
+#~ "url (with lat=x&lon=y&zoom=z)\n"
+#~ "\t[--download=]<filename>                   Open file (as raw gps, if ."
+#~ "gpx or .csv)\n"
+#~ "\t--downloadgps=minlat,minlon,maxlat,maxlon Download the bounding box as "
+#~ "raw gps\n"
+#~ "\t--selection=<searchstring>                Select with the given search\n"
+#~ "\t--no-fullscreen                           Don't launch in fullscreen "
+#~ "mode\n"
+#~ "\t--reset-preferences                       Reset the preferences to "
+#~ "default\n"
+#~ "\n"
+#~ "examples:\n"
+#~ "\tjava -jar josm.jar track1.gpx track2.gpx london.osm\n"
+#~ "\tjava -jar josm.jar http://www.openstreetmap.org/index.html?"
+#~ "lat=43.2&lon=11.1&zoom=13\n"
+#~ "\tjava -jar josm.jar london.osm --selection=http://www.ostertag.name/osm/"
+#~ "OSM_errors_node-duplicate.xml\n"
+#~ "\tjava -jar josm.jar 43.2,11.1,43.4,11.4\n"
+#~ "\n"
+#~ "Parameters are read in the order they are specified, so make sure you "
+#~ "load\n"
+#~ "some data before --selection\n"
+#~ "\n"
+#~ "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+#~ msgstr ""
+#~ "JavaÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·OpenStreetMapÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·Editor\n"
+#~ "\n"
+#~ "usage:\n"
+#~ "\tjavaÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·-"
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·josm."
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·<option>ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·<option>ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·<option>...\n"
+#~ "\n"
+#~ "options:\n"
+#~ "\t--help|-?|-"
+#~ "hÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·Montre "
+#~ "cette aide\n"
+#~ "\t--geometry=widthxheight(+|-)x(+|-)"
+#~ "yÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·Argument "
+#~ "de "
+#~ "gÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©omÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©trie "
+#~ "standard d'UNIX\n"
+#~ "\t[--download=]minlat,minlon,maxlat,"
+#~ "maxlonÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·TÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©lÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©charge "
+#~ "la "
+#~ "boÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ®te "
+#~ "de "
+#~ "coordonnÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©es\n"
+#~ "\t[--download=]"
+#~ "<url>ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·TÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©lÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©charge "
+#~ "ce qui ce situe "
+#~ "ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ  "
+#~ "l'URLÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·"
+#~ "(avecÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·lat=x&lon=y&zoom=z)\n"
+#~ "\t[--download=]"
+#~ "<nomdufichier>ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ouvrir "
+#~ "un "
+#~ "fichierÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·"
+#~ "(en GPS brut "
+#~ "siÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·."
+#~ "gpxÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ouÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·."
+#~ "csv)\n"
+#~ "\t--downloadgps=minlat,minlon,maxlat,"
+#~ "maxlonÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·TÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©lÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©charge "
+#~ "la "
+#~ "boÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ®te "
+#~ "de "
+#~ "coordonnÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©es "
+#~ "en GPS brut.\n"
+#~ "\t--"
+#~ "selection=<texte>ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·SÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©lectionne "
+#~ "en fonction de l'objet de recherche\n"
+#~ "\t--no-"
+#~ "fullscreenÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·Ne "
+#~ "pas lancer en mode plein "
+#~ "ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©cran\n"
+#~ "\t--reset-"
+#~ "preferencesÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ· "
+#~ "PrÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©fÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©rences "
+#~ "par "
+#~ "dÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©faut\n"
+#~ "\n"
+#~ "examples:\n"
+#~ "\tjavaÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·-"
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·josm."
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·track1."
+#~ "gpxÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·track2."
+#~ "gpxÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·london."
+#~ "osm\n"
+#~ "\tjavaÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·-"
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·josm."
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·http://"
+#~ "www.openstreetmap.org/index.html?lat=43.2&lon=11.1&zoom=13\n"
+#~ "\tjavaÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·-"
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·josm."
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·london."
+#~ "osmÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·--"
+#~ "selection=http://www.ostertag.name/osm/OSM_errors_node-duplicate.xml\n"
+#~ "\tjavaÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·-"
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·josm."
+#~ "jarÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·43.2,11.1,43.4,11.4\n"
+#~ "\n"
+#~ "Les "
+#~ "paramÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ¨tres "
+#~ "sont lus dans l'ordre dans lequel ils sont "
+#~ "spÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©cifiÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©s, "
+#~ "soyez donc sur d'avoir des "
+#~ "donnÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©es "
+#~ "avant --selection\n"
+#~ "\n"
+#~ "Au lieu de --"
+#~ "download=<bbox>ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·vous "
+#~ "pouvez "
+#~ "spÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ©cifierÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂ·osm://"
+#~ "<bbox>\n"
Index: /applications/editors/josm/plugins/lang/fr/src/org/openstreetmap/josm/TranslationLoader_fr.java
===================================================================
--- /applications/editors/josm/plugins/lang/fr/src/org/openstreetmap/josm/TranslationLoader_fr.java	(revision 2549)
+++ /applications/editors/josm/plugins/lang/fr/src/org/openstreetmap/josm/TranslationLoader_fr.java	(revision 2549)
@@ -0,0 +1,15 @@
+package org.openstreetmap.josm;
+
+import java.util.Locale;
+
+import org.openstreetmap.josm.tools.I18n;
+import org.xnap.commons.i18n.I18nFactory;
+
+public class TranslationLoader_fr {
+
+	public TranslationLoader_fr() throws Exception {
+		Class<?> c = Class.forName("org.openstreetmap.josm.Translation_fr");
+		Locale.setDefault(Locale.FRENCH);
+		I18n.i18n = I18nFactory.getI18n(c);
+	}
+}
Index: /applications/editors/josm/plugins/lang/i18n.properties
===================================================================
--- /applications/editors/josm/plugins/lang/i18n.properties	(revision 2549)
+++ /applications/editors/josm/plugins/lang/i18n.properties	(revision 2549)
@@ -0,0 +1,1 @@
+basename=org.openstreetmap.josm.Translation
Index: /applications/editors/josm/plugins/lang/keys.pot
===================================================================
--- /applications/editors/josm/plugins/lang/keys.pot	(revision 2549)
+++ /applications/editors/josm/plugins/lang/keys.pot	(revision 2549)
@@ -0,0 +1,2018 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-10-22 21:34+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:52
+msgid "Add segment"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:54
+msgid "Add a segment between two nodes."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:56
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:59
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:370
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:46
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:58
+msgid "Delete"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:58
+msgid "Delete nodes, streets or segments."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:152
+msgid "Cannot delete node."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:156
+msgid "This object is in use."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:173
+msgid "Used by more than two segments."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:178
+msgid "Used by only one segment."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:187
+msgid "Wrong direction of segments."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:190
+msgid "Conflicting keys"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:196
+msgid "Segments are part of different ways."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:214
+msgid "Delete Node"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom in by dragging. (Ctrl+up,left,down,right,+,-)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Selection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Select objects by dragging or clicking."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Straight line"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Select objects in a straight line."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:52
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "Move"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:54
+msgid "Move around objects that are under the mouse or selected."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:102
+msgid "Cannot move objects outside of the world."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add Way"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add a new way to the data."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:95
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:143
+msgid ""
+"Warning: This way is incomplete. Try to download it, before adding segments."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+#, java-format
+msgid ""
+"{0} way has been selected.\n"
+"Do you wish to select all segments belonging to the way instead?"
+msgid_plural ""
+"{0} ways have been selected.\n"
+"Do you wish to select all segments belonging to the ways instead?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+msgid "Add segments from ways"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Do you want to add all other selected segments to the one selected way?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Add segments to way?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder all line segments?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+#, java-format
+msgid "Create a new way out of {0} segment?"
+msgid_plural "Create a new way out of {0} segments?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+msgid "Create new way"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add node"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add a new node to the map"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add node into segment"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add a node into an existing segment"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:85
+msgid "Can not add a node outside of the world."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:134
+msgid "Add Node into Segment"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:23
+msgid "Raw GPS data"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:26
+msgid "Downloading GPS data"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:25
+msgid "OpenStreetMap data"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:28
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:21
+msgid "Downloading data"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:39
+msgid "No data imported."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:40
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:76
+msgid "Data Layer"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:53
+msgid "Reverse Segments"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+msgid "Revert the direction of all selected Segments."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:39
+msgid "Please select at least one segment."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:209
+msgid "Preferences"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+msgid "Open a preferences page for global settings."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open a file."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:73
+msgid "CSV Data import for non-GPS data is not implemented yet."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:76
+#, java-format
+msgid "Unknown file extension: {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:83
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:59
+#, java-format
+msgid "Error while parsing {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:86
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:63
+#, java-format
+msgid "Could not read \"{0}\""
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:71
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:287
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:302
+#, java-format
+msgid "Executing {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:146
+msgid "The Tool requires some data to be loaded."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:306
+#, java-format
+msgid "Could not execute command: {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:317
+msgid "Tools"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:352
+msgid "Could not read external tool configuration."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:69
+msgid "Align Nodes in Circle"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+msgid "Move the selected nodes into a circle."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:39
+msgid "Please select at least four nodes."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:56
+msgid "Rename layer"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:44
+msgid "Also rename the file"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:80
+#, java-format
+msgid "Could not rename the file \"{0}\"."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo the last action."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download from OSM"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download map data from the OSM server."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:102
+msgid ""
+"Move and zoom the image like the main map. Select an area to download by "
+"dragging."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:105
+msgid "Bounding box"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:106
+msgid "min lat"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:108
+msgid "min lon"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:110
+msgid "max lat"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:112
+msgid "max lon"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:122
+msgid "Download the following data:"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:129
+msgid "URL from www.openstreetmap.org"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:182
+msgid "Bookmarks"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:198
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:344
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/AddCommand.java:52
+msgid "Add"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:203
+msgid "Please enter the desired coordinates first."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:206
+msgid "Please enter a name for the location."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:214
+msgid "Remove"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:219
+msgid "Select a bookmark first."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:238
+msgid "Choose an area"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:261
+msgid "Please enter the desired coordinates or click on a bookmark."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:263
+msgid "Please select at least one download data type."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit the application."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "About"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "Display the about screen."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:67
+#, java-format
+msgid "Java OpenStreetMap Editor Version {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:68
+#, java-format
+msgid "last change at {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:69
+#, java-format
+msgid "Java Version {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:70
+msgid "Homepage"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:72
+msgid "Bug Reports"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:74
+msgid "News about JOSM"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:78
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java:25
+msgid "Info"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:79
+msgid "Readme"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:80
+msgid "Revision"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:81
+msgid "Contribution"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:85
+msgid "About JOSM..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:95
+msgid "File could not be found."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:25
+msgid "No document open so nothing to save."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "The document contains no data. Save anyway?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "Empty document"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid ""
+"There are unresolved conflicts. Conflicts will not be saved and handled as "
+"if you rejected all. Continue?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid "Conflicts"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "File exists. Overwrite?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "Overwrite"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:29
+msgid "data"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:30
+msgid "selection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:31
+msgid "layer"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:32
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:141
+msgid "conflict"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:40
+#, java-format
+msgid "Auto Scale: {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:43
+#, java-format
+msgid "Auto zoom the view (to {0}. Disabled if the view is moved)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save as"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save the current data to a new file."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:25
+msgid "OSM Server Files (.osm .xml)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:26
+msgid "GPX Files (.gpx)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:27
+msgid "CSV Files (.csv .txt)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload to OSM"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload all changes to the OSM server."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:41
+msgid "Nothing to upload. Get some data first."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:46
+msgid "There are unresolved conflicts. You have to resolve these first."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:75
+msgid "Uploading data"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:97
+msgid "No changes to upload."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:106
+msgid "Objects to add:"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:114
+msgid "Objects to modify:"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:122
+msgid "Objects to delete:"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:129
+msgid "Upload this changes?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:54
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:55
+msgid "Help"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:106
+msgid "Can only edit help pages from JOSM Online Help"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:39
+#, java-format
+msgid "Downloading {0} segment"
+msgid_plural "Downloading {0} segments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download incomplete objects"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download all (selected) incomplete ways from the OSM server."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:66
+msgid "Please select an incomplete way."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+#, java-format
+msgid "Download {0} incomplete ways?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+msgid "Download?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo the last undone action."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:40
+msgid ""
+"Note: GPL is not compatible to the OSM license. Do not upload GPL licensed "
+"tracks."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export to GPX"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export the data to GPX file."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:51
+msgid "Nothing to export. Get some data first."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:75
+msgid "gps track description"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:81
+msgid "Add author information"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:84
+msgid "Real name"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:88
+msgid "Email"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:92
+msgid "Copyright (URL)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:96
+msgid "Predefined"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:98
+msgid "Copyright year"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:106
+msgid "Keywords"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:110
+msgid "Export options"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+#, java-format
+msgid "Error while exporting {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+msgid "Error"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:185
+msgid "Choose a predefined license"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save the current data."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:58
+msgid "CSV output not supported yet."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:61
+msgid "Unknown file extension."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:67
+msgid "An error occoured while saving."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:44
+#, java-format
+msgid ""
+"The plugin {0} throwed an exception: {1}\n"
+"It may be outdated. Please contact the plugin's autor.\n"
+"This message will not shown again until JOSM is restarted."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Do nothing"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Report Bug"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:51
+msgid ""
+"An unexpected exception occoured.\n"
+"\n"
+"This is always a coding error. If you are running the latest\n"
+"version of JOSM, please consider be kind and file a bug report."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:54
+msgid "Unexpected Exception"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:62
+msgid ""
+"Please send this to josm@eigenheimstrasse.de\n"
+"\n"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:83
+msgid ""
+"Please send an email with the following information to josm@eigenheimstrasse."
+"de"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:12
+msgid "Ctrl-"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:14
+msgid "Alt-"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:16
+msgid "AltGr-"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:18
+msgid "Shift-"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/plugins/PluginException.java:17
+#, java-format
+msgid "An error occoured in plugin {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:63
+msgid "Load Selection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:70
+#, java-format
+msgid "Contact {0}..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:75
+msgid "Downloading..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:87
+#, java-format
+msgid "Could not read from url: \"{0}\""
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:90
+#, java-format
+msgid "Parsing error in url: \"{0}\""
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Current Selection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Open a selection list window."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:143
+msgid "Please enter a search string."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:145
+msgid ""
+"<html>Fulltext search.<ul><li><code>Baker Street</code>  - 'Baker' and "
+"'Street' in any key or name.</li><li><code>\"Baker Street\"</code>  - 'Baker "
+"Street' in any key or name.</li><li><code>name:Bak</code>  - 'Bak' anywhere "
+"in the name.</li><li><code>-name:Bak</code>  - not 'Bak' in the name.</"
+"li><li><code>foot:</code>  - key=foot set to any value.</ul></html>"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:153
+msgid "replace selection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:154
+msgid "add to selection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:155
+msgid "remove from selection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:172
+msgid "Search"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Conflict"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Merging conflicts."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:63
+msgid "Resolve"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:64
+msgid "Open a merge dialog of all selected items in the list above."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:73
+msgid "Select"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:74
+msgid ""
+"Set the selected elements on the map to the selected items in the list above."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:108
+msgid "Please select something from the conflict list."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:117
+msgid "Resolve Conflicts"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:82
+msgid "Click Reload to refresh list"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:83
+msgid "Reload"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:84
+msgid "Revert"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "History"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "Display the history of all selected items."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:225
+msgid "Object"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+msgid "Date"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:131
+msgid "Reload all currently selected objects and refresh the list."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:180
+msgid "Not implemented yet."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:138
+msgid ""
+"Revert the state of all currently selected objects to the version selected "
+"in the history list."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Command Stack"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Open a list of all commands (undo buffer)."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:99
+msgid "Please select the objects you want to change properties for."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+#, java-format
+msgid "This will change {0} object."
+msgid_plural "This will change {0} objects."
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#, java-format
+msgid ""
+"Please select a new value for \"{0}\".<br>(Empty string deletes the key.)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:114
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:178
+msgid "Change values?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:132
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:284
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:369
+msgid "<different>"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:151
+msgid "Please select objects for which you want to change properties."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+msgid "Please select a key"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:169
+msgid "Please select a value"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Properties"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Property for selected objects."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:241
+#, java-format
+msgid "Could not read annotation preset source: {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:244
+#, java-format
+msgid "Error parsing {0}: "
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:263
+#, java-format
+msgid "Change {0} object"
+msgid_plural "Change {0} objects"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Key"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Value"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:309
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:359
+msgid "Please select the row to edit."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:314
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:374
+msgid "Please select the row to delete."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+msgid "Add a new key/value pair to all objects"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:355
+#: ../../plugins/grid/src/grid/GridPlugin.java:43
+#: ../../plugins/grid/src/grid/GridPlugin.java:49
+msgid "Edit"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+msgid "Edit the value of the selected key for all objects"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+msgid "Delete the selected key in all objects"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:60
+msgid "Delete the selected layer."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:82
+msgid "Show/Hide"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:83
+msgid "Toggle visible state of the selected layer."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Layers"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Open a list of all loaded layers."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:196
+msgid "Move the selected layer one row up."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:202
+msgid "Move the selected layer one row down."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:216
+msgid "Merge the selected layer into the layer directly below."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:160
+#, java-format
+msgid "Unknown type at line {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:178
+#, java-format
+msgid "Cannot have a writable combobox with default values (line {0})"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:183
+#, java-format
+msgid ""
+"display_values ({0}) and values ({1}) must be of same number of elements."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:184
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:185
+msgid "element"
+msgid_plural "elements"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:190
+#, java-format
+msgid "Unknown annotation object {0} at line {1} column {2}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:258
+msgid "Change Properties"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:161
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:66
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "node"
+msgid_plural "nodes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:162
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:136
+msgid "segment"
+msgid_plural "segments"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:163
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:92
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:137
+msgid "way"
+msgid_plural "ways"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:178
+msgid "There were conflicts during import."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:317
+#, java-format
+msgid "{0} consists of:"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:321
+#, java-format
+msgid " ({0} deleted.)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:57
+msgid "Convert to data layer"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:159
+msgid "track"
+msgid_plural "tracks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:160
+msgid "point"
+msgid_plural "points"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:185
+#, java-format
+msgid "a track with {0} point"
+msgid_plural "a track with {0} points"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} consists of {1} track"
+msgid_plural "{0} consists of {1} tracks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} point"
+msgid_plural "{0} points"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:193
+msgid "Customize line drawing"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:197
+msgid "Use global settings."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:198
+msgid "Draw lines between points for this layer."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:199
+msgid "Do not draw lines between points for this layer."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:211
+msgid "Select line drawing options"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:222
+msgid "Customize Color"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "OK"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:24
+msgid "Cancel"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "Default"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:228
+msgid "Choose a color"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:243
+msgid "Import images"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:255
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:349
+msgid "JPEG images (*.jpg)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:90
+#, java-format
+msgid "Images for {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:95
+msgid "Read GPS..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:102
+#, java-format
+msgid "No time for point {0} x {1}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:107
+#, java-format
+msgid "Cannot read time \"{0}\" from point {1} x {2}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:114
+msgid "No images with readable timestamps found."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:125
+#, java-format
+msgid "Reading {0}..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:191
+msgid "Geotagged Images"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:269
+#, java-format
+msgid "GPS start: {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:270
+#, java-format
+msgid "GPS end: {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:272
+#, java-format
+msgid "current delta: {0}s"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:273
+msgid "timezone difference: "
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+msgid "image"
+msgid_plural "images"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+#, java-format
+msgid "{0} within the track."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:338
+msgid "Sync clock"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:395
+#, java-format
+msgid "The date in file \"{0}\" could not be parsed."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:399
+#, java-format
+msgid "There is no EXIF time within the file \"{0}\"."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:403
+msgid "Image"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:405
+msgid "Enter shown date (mm/dd/yyyy HH:MM:SS)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:408
+msgid "GPS unit timezome (difference to photo)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:416
+msgid "Syncronize Time with GPS Unit"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:432
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:434
+msgid "Time entered could not be parsed."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:74
+msgid "Could not read bookmarks."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:98
+msgid "Could not write bookmark."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:123
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:171
+msgid "Java Open Street Map - Editor"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:163
+msgid "layer not in list."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:55
+msgid "Hint: Some changes came from uploading new data to the server."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:57
+msgid "There are unsaved changes. Really quit?"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:58
+msgid "Unsaved Changes"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:144
+msgid "Java OpenStreetMap Editor"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:145
+msgid "usage"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:147
+msgid "options"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:148
+msgid "Show this help"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:149
+msgid "Standard unix geometry argument"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:150
+msgid "Download the bounding box"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:151
+msgid "Download the location at the url (with lat=x&lon=y&zoom=z)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:152
+msgid "Open file (as raw gps, if .gpx or .csv)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:153
+msgid "Download the bounding box as raw gps"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:154
+msgid "Select with the given search"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:155
+msgid "Don't launch in fullscreen mode"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:156
+msgid "Reset the preferences to default"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:157
+msgid "Set the language. Example: "
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:158
+msgid "examples"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:164
+msgid ""
+"Parameters are read in the order they are specified, so make sure you load\n"
+"some data before --selection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:166
+msgid "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:52
+msgid "Layer"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:56
+msgid "Files"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:57
+msgid "Connection"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:22
+msgid "Contacting the OSM server..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:223
+msgid "Lat/Lon"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:232
+#, java-format
+msgid "{0} object has conflicts:"
+msgid_plural "{0} objects have conflicts:"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:235
+msgid "my version:"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:241
+msgid "their version:"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:247
+msgid "resolved version:"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:77
+msgid "Error while parsing"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:80
+msgid "File Not found"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "string"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+msgid "Name of the user."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+msgid "OSM Password."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "Size the applet to the given geometry (format: WIDTHxHEIGHT)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid "string;string;..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+msgid ""
+"Download each. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a "
+"filename"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+msgid ""
+"Download each as raw gps. Can be x1,y1,x2,y2 an url containing "
+"lat=y&lon=x&zoom=z or a filename"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid ""
+"Add each to the initial selection. Can be a google-like search string or an "
+"url which returns osm-xml"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "any"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "If specified, reset the configuration instead of reading it."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:65
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:68
+msgid "Username"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:68
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:71
+msgid "Password"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:123
+msgid "You have to restart JOSM for some settings to take effect."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:185
+msgid "Draw lines between raw gps points."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:189
+msgid "Force lines if no segments imported."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:190
+msgid "Draw large GPS points."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:191
+msgid "Draw Direction Arrows"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:250
+msgid ""
+"Force drawing of lines if the imported data contain no line information."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:254
+msgid "Draw larger dots for the GPS points."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:255
+msgid "Draw direction hints for all segments."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:306
+msgid "Color"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:307
+msgid "Name"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:328
+msgid "Choose"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:332
+msgid "Please select a color."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:337
+#, java-format
+msgid "Choose a color for {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:347
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:361
+msgid "Annotation preset source"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:386
+msgid "The base URL to the OSM server (REST API)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:387
+msgid "Login name (email) to the OSM account."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:388
+msgid ""
+"Login password to the OSM account. Leave blank to not store any password."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:389
+msgid "The base URL to the server retrieving WMS background pictures from."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:390
+msgid ""
+"<html>Import string specification. lat/lon and time are imported.<br><b>lat</"
+"b>: The latitude coordinate<br><b>lon</b>: The longitude "
+"coordinate<br><b>time</b>: The measured time as string<br><b>ignore</b>: "
+"Skip this field<br>An example: \"ignore ignore lat lon\" will use ' ' as "
+"delimiter, skip the first two values and read then lat/lon.<br>Other "
+"example: \"lat,lon\" will just read lat/lon values comma seperated.</html>"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:397
+msgid ""
+"If your gps device draw to few lines, select this to draw lines along your "
+"way."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:398
+msgid "Colors used by different objects in JOSM."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:399
+msgid ""
+"The sources (url or filename) of annotation preset definition files. See "
+"http://josm.eigenheimstrasse.de/wiki/AnnotationPresets for help."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:400
+msgid "Add a new annotation preset source to the list."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:401
+msgid "Delete the selected source from the list."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid "Display Settings"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid ""
+"Various settings that influence the visual representation of the whole "
+"program."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:407
+msgid "Look and Feel"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:414
+msgid "Colors"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings to the OSM server."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:422
+msgid "Base Server URL"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:424
+msgid "OSM username (email)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:426
+msgid "OSM password"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:428
+msgid ""
+"<html>WARNING: The password is stored in plain text in the preferences file."
+"<br>The password is transfered in plain text to the server, encoded in the "
+"url.<br><b>Do not use a valuable Password.</b></html>"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:437
+msgid "CSV import specification (empty: read from first line in data)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Map Settings"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Settings for the map projection and data interpretation."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:443
+msgid "Projection method"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:446
+msgid "Annotation preset sources"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Plugins"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Configure available Plugins."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:465
+msgid "Get more plugins"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:45
+#, java-format
+msgid "Downloading points {0} to {1}..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:89
+msgid "Downloading OSM data..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:101
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:103
+msgid "Unknown version"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:119
+msgid "Found <seg> tag on non-way."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:122
+msgid "Incomplete segment with id=0"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:131
+msgid "NullPointerException. Possible some missing tags."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:146
+msgid "Illegal object with id=0"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:154
+#, java-format
+msgid "Couldn''t read time format \"{0}\"."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:169
+#, java-format
+msgid "Missing required attirbute \"{0}\"."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:239
+msgid "Preparing data..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:249
+msgid "Illformed Node id"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:71
+#, java-format
+msgid "Upload {0} {1} ({2})..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:185
+msgid "Unknown host"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:43
+#: ../../plugins/waypoints/src/WaypointReader.java:55
+#, java-format
+msgid "Data error: lat value \"{0}\" is out of bound."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:45
+#: ../../plugins/waypoints/src/WaypointReader.java:59
+#, java-format
+msgid "Data error: lon value \"{0}\" is out of bound."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:39
+msgid "Could not detect data format string."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:62
+msgid ""
+"Format string in data is incomplete or not found. Try setting an manual "
+"format string in Preferences."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:63
+msgid ""
+"Format string is incomplete. Need at least 'lat' and 'lon' specification"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+#, java-format
+msgid "Unknown data type: \"{0}\"."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+msgid "Maybe add an format string in preferences."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:88
+#, java-format
+msgid "Parsing error in line {0}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:67
+msgid "Incorrect password or username."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:74
+msgid "Warning: The password is transferred unencrypted."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:78
+msgid "Save user and password (unencrypted)"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:81
+msgid "Enter Password"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:116
+msgid "Aborting..."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:80
+#, java-format
+msgid "Data error: Segment {0} is deleted but part of Way {1}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:115
+#, java-format
+msgid "Data error: Node {0} is deleted but part of Segment {1}"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmIdReader.java:34
+msgid "Error during parse."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/PositionConflict.java:19
+msgid "position"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ConflictItem.java:33
+msgid "different"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:14
+msgid "deleted"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "true"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "false"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:21
+msgid "none"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:25
+msgid "segments"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ToConflict.java:19
+msgid "to"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/FromConflict.java:19
+msgid "from"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "new"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "unknown"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:87
+#, java-format
+msgid "{0} node"
+msgid_plural "{0} nodes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:89
+msgid "incomplete"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:134
+msgid "background"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:138
+msgid "incomplete way"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:139
+msgid "selected"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:140
+msgid "gps point"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:142
+msgid "scale"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ConflictResolveCommand.java:77
+#, java-format
+msgid "Resolve {0} conflicts in {1} objects"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangeCommand.java:37
+msgid "Change"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/SequenceCommand.java:51
+msgid "Sequence"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Remove \"{0}\" for"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Set {0}={1} for"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:72
+msgid "object"
+msgid_plural "objects"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:201
+#, java-format
+msgid "Plugin not found: {0}."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:204
+#, java-format
+msgid "Could not load plugin {0}."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:228
+msgid "unnamed"
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:271
+msgid "The projection could not be read from preferences. Using EPSG:4263."
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:329
+#, java-format
+msgid "Ignoring malformed url: \"{0}\""
+msgstr ""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:341
+#, java-format
+msgid "Ignoring malformed file url: \"{0}\""
+msgstr ""
+
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:102
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:108
+msgid "View"
+msgstr ""
+
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:18
+msgid "Landsat background images"
+msgstr ""
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:45
+msgid "Wrong longitude transformation for tile manager. Can't operate on {0}"
+msgstr ""
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:70
+#, java-format
+msgid "WMS layer: {0}"
+msgstr ""
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid "Annotation Preset Tester"
+msgstr ""
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid ""
+"Open the annotation preset test tool for previewing annotation preset "
+"dialogs."
+msgstr ""
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:28
+msgid "You have to specify annotation sources in the preferences first."
+msgstr ""
+
+#: ../../plugins/grid/src/grid/GridLayer.java:74
+msgid "Grid layer:"
+msgstr ""
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+msgid "Open waypoints file"
+msgstr ""
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+msgid "Open a waypoints file."
+msgstr ""
Index: /applications/editors/josm/plugins/lang/ro/.classpath
===================================================================
--- /applications/editors/josm/plugins/lang/ro/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/lang/ro/.classpath	(revision 2549)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="lib" path="/josm/lib/gettext-commons-0.9.jar" sourcepath="C:/Download/gettext-commons-0.9-src.zip"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/lang/ro/.project
===================================================================
--- /applications/editors/josm/plugins/lang/ro/.project	(revision 2549)
+++ /applications/editors/josm/plugins/lang/ro/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>lang-ro</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/lang/ro/build.xml
===================================================================
--- /applications/editors/josm/plugins/lang/ro/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/lang/ro/build.xml	(revision 2549)
@@ -0,0 +1,52 @@
+<project name="lang-ro" default="install" basedir=".">
+
+	<property name="language" value="ro" />
+
+	<target name="init">
+	    <mkdir dir="bin" />
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="../../../../editors/josm/dist/josm-custom.jar" destdir="bin" />
+	</target>
+	
+	<!-- install entry point for eclipse user -->
+	<target name="jar">
+		<jar destfile="${user.home}/.josm/plugins/lang-${language}.jar" basedir="bin">
+			<manifest>
+				<attribute name="Plugin-Class" value="org.openstreetmap.josm.TranslationLoader_${language}" />
+				<attribute name="Plugin-Description" value="Romanian translation." />
+				<attribute name="Plugin-Early" value="true" />
+			</manifest>
+		</jar>
+	</target>
+	
+	<target name="install" depends="compile,gettext,jar" />
+
+
+
+	<target name="find">
+		<exec executable="find" output="alljava.txt">
+			<arg line="../../../../editors/josm/src ../ -name '*.java'"/>
+		</exec>
+	</target>
+	
+	<target name="xgettext">
+		<exec executable="xgettext">
+			<arg line="-ktr -ktrn:1,2 -ktrc -kmarktr -Ljava -okeys.pot -falljava.txt"/>
+		</exec>
+	</target>
+
+	<target name="msgmerge">
+		<exec executable="msgmerge">
+			<arg line="-U ${language}.po keys.pot"/>
+		</exec>
+	</target>
+
+	<target name="gettext" depends="find,xgettext,msgmerge">
+		<exec executable="msgfmt">
+			<arg line="--java2 -dbin -rorg.openstreetmap.josm.Translation -l${language} ${language}.po"/>
+		</exec>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/lang/ro/ro.po
===================================================================
--- /applications/editors/josm/plugins/lang/ro/ro.po	(revision 2549)
+++ /applications/editors/josm/plugins/lang/ro/ro.po	(revision 2549)
@@ -0,0 +1,2170 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: JOSM\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-10-22 21:32+0200\n"
+"PO-Revision-Date: 2006-10-14 10:09+0200\n"
+"Last-Translator: Ovidiu Constantin <ovidiu@mybox.ro>\n"
+"Language-Team: Romanian <gnomero-list@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3;plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?"
+"2:1))\n"
+"X-Poedit-Language: Romanian\n"
+"X-Poedit-Country: ROMANIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:52
+msgid "Add segment"
+msgstr "Adaugă segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddSegmentAction.java:54
+msgid "Add a segment between two nodes."
+msgstr "Adaugă un segment între două noduri."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:56
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:59
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:370
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:46
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/DeleteCommand.java:58
+msgid "Delete"
+msgstr "Şterge"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:58
+msgid "Delete nodes, streets or segments."
+msgstr "Şterge noduri, străzi sau segmente."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:152
+msgid "Cannot delete node."
+msgstr "Nu pot şterge nodul."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:156
+msgid "This object is in use."
+msgstr "Acest obiect este în uz."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:173
+msgid "Used by more than two segments."
+msgstr "Folosit de mai mult de două segmente."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:178
+msgid "Used by only one segment."
+msgstr "Folosit de un singur segment."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:187
+msgid "Wrong direction of segments."
+msgstr "Direcţie greşită a segmentelor."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:190
+msgid "Conflicting keys"
+msgstr "Chei în conflict"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:196
+msgid "Segments are part of different ways."
+msgstr "Segmentele sunt părţi din căi diferite."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java:214
+msgid "Delete Node"
+msgstr "Şterge nod"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom"
+msgstr "Apropie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/ZoomAction.java:46
+msgid "Zoom in by dragging. (Ctrl+up,left,down,right,+,-)"
+msgstr "Apropie prin tragere. (Ctrl-sus,stânda,jos,dreapta,+,-)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Selection"
+msgstr "Selecţie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:73
+msgid "Select objects by dragging or clicking."
+msgstr "Selectează obiecte prin tragere sau clic."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Straight line"
+msgstr "Linie dreaptă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/SelectionAction.java:74
+msgid "Select objects in a straight line."
+msgstr "Selectează obiectele din o linie dreaptă."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:52
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "Move"
+msgstr "Mută"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:54
+msgid "Move around objects that are under the mouse or selected."
+msgstr "Mută obiectele care sunt sub mouse sau selectate."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/MoveAction.java:102
+msgid "Cannot move objects outside of the world."
+msgstr "Nu pot muta obiecte în afara lumii."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add Way"
+msgstr "Adaugă cale"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:61
+msgid "Add a new way to the data."
+msgstr "Adaugă o nouă cale datelor."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:95
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:143
+msgid ""
+"Warning: This way is incomplete. Try to download it, before adding segments."
+msgstr ""
+"Atentie: Această cale este incompletă. Încercaţi să o descărcaţi înainte de "
+"a adăuga segmente."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+#, java-format
+msgid ""
+"{0} way has been selected.\n"
+"Do you wish to select all segments belonging to the way instead?"
+msgid_plural ""
+"{0} ways have been selected.\n"
+"Do you wish to select all segments belonging to the ways instead?"
+msgstr[0] ""
+"{0} cale a fost selectată.\n"
+"Doriţi în schimb să selectaţi toate segmentele aparţinând căii?"
+msgstr[1] ""
+"{0} căi au fost selectate.\n"
+"Doriţi în schimb să selectaţi toate segmentele aparţinând căilor?"
+msgstr[2] ""
+"{0} de căi au fost selectate.\n"
+"Doriţi în schimb să selectaţi toate segmentele aparţinând căilor?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:162
+msgid "Add segments from ways"
+msgstr "Adaugă segmente din căi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Do you want to add all other selected segments to the one selected way?"
+msgstr "Doriţi să adăugaţi toate celelalte segmente selectate căii selectate?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:168
+msgid "Add segments to way?"
+msgstr "Adaug segmente căii?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder all line segments?"
+msgstr "Reordonez toate segmentele de dreaptă?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:173
+msgid "Reorder?"
+msgstr "Reordonez?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+#, java-format
+msgid "Create a new way out of {0} segment?"
+msgid_plural "Create a new way out of {0} segments?"
+msgstr[0] "Crează o cale nouă din {0} segment?"
+msgstr[1] "Crează o cale nouă din {0} segmente?"
+msgstr[2] "Crează o cale nouă din {0} de segmente?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddWayAction.java:232
+msgid "Create new way"
+msgstr "Crează o nouă cale"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add node"
+msgstr "Adaugă nod"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:47
+msgid "Add a new node to the map"
+msgstr "Adaugă un nod pe hartă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add node into segment"
+msgstr "Adaugă un nod la segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:48
+msgid "Add a node into an existing segment"
+msgstr "Adaugă un nod la un segment existent"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:85
+msgid "Can not add a node outside of the world."
+msgstr "Nu pot adăuga un nod în afara lumii."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/mapmode/AddNodeAction.java:134
+msgid "Add Node into Segment"
+msgstr "Adaugă nod în segment"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:23
+msgid "Raw GPS data"
+msgstr "Date GPS neprelucrate"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java:26
+msgid "Downloading GPS data"
+msgstr "Descarc date GPS"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:25
+msgid "OpenStreetMap data"
+msgstr "Date OpenStreetMap"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:28
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:21
+msgid "Downloading data"
+msgstr "Descarc date"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:39
+msgid "No data imported."
+msgstr "Nu au fost importate date."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java:40
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:76
+msgid "Data Layer"
+msgstr "Strat de date"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:53
+msgid "Reverse Segments"
+msgstr "Inversează segmentele"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:26
+msgid "Revert the direction of all selected Segments."
+msgstr "Inversează direcţia tuturor segmentelor selectate."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ReverseSegmentAction.java:39
+msgid "Please select at least one segment."
+msgstr "Vă rog selectaţi cel puţin un segment."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:209
+msgid "Preferences"
+msgstr "Preferinţe"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/PreferencesAction.java:21
+msgid "Open a preferences page for global settings."
+msgstr "Deschide o pagină de preferinţe pentru opţiunile globale"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open"
+msgstr "Deschide"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:40
+msgid "Open a file."
+msgstr "Deschide un fişier."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:73
+msgid "CSV Data import for non-GPS data is not implemented yet."
+msgstr "Importul CSV Data pentru date non-GPS nu este încă implementat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:76
+#, java-format
+msgid "Unknown file extension: {0}"
+msgstr "Extensie fişier necunoscută : {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:83
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:59
+#, java-format
+msgid "Error while parsing {0}"
+msgstr "Eroare la prelucrarea {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/OpenAction.java:86
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:63
+#, java-format
+msgid "Could not read \"{0}\""
+msgstr "Nu am putut citi \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:71
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:287
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:302
+#, java-format
+msgid "Executing {0}"
+msgstr "Execut {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:146
+msgid "The Tool requires some data to be loaded."
+msgstr "Această unealtă necesită să fie încărcate nişte date."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:306
+#, java-format
+msgid "Could not execute command: {0}"
+msgstr "Nu am putut executa comanda: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:317
+msgid "Tools"
+msgstr "Unelte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExternalToolsAction.java:352
+msgid "Could not read external tool configuration."
+msgstr "Nu am putut citi configuraţia uneltei externe."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:69
+msgid "Align Nodes in Circle"
+msgstr "Aliniază noduri în cerc"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:29
+msgid "Move the selected nodes into a circle."
+msgstr "Mută nodurile selectate într-un cerc."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AlignInCircleAction.java:39
+msgid "Please select at least four nodes."
+msgstr "Vă rog selectaţi cel puţin petru noduri."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:56
+msgid "Rename layer"
+msgstr "Redenumire strat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:44
+msgid "Also rename the file"
+msgstr "Şi redenumeşte şi fişierul"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RenameLayerAction.java:80
+#, java-format
+msgid "Could not rename the file \"{0}\"."
+msgstr "Nu am putut redenumi fişierul \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo"
+msgstr "Anulează"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UndoAction.java:23
+msgid "Undo the last action."
+msgstr "Anulează ultima acţiune."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download from OSM"
+msgstr "Descarcă de la OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:87
+msgid "Download map data from the OSM server."
+msgstr "Descarcă hărţi de la serverul OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:102
+msgid ""
+"Move and zoom the image like the main map. Select an area to download by "
+"dragging."
+msgstr ""
+"Mută şi măreşte imaginea ca şi harta principală. Selectaţi prin tragere zona "
+"ce va fi descărcată."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:105
+msgid "Bounding box"
+msgstr "Perimetru selectat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:106
+msgid "min lat"
+msgstr "min lat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:108
+msgid "min lon"
+msgstr "min lon"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:110
+msgid "max lat"
+msgstr "max lat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:112
+msgid "max lon"
+msgstr "max lon"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:122
+msgid "Download the following data:"
+msgstr "Descarc următoarele date:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:129
+msgid "URL from www.openstreetmap.org"
+msgstr "Adresa de la www.openstreetmap.org"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:182
+msgid "Bookmarks"
+msgstr "Semne de carte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:198
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:344
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/AddCommand.java:52
+msgid "Add"
+msgstr "Adaugă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:203
+msgid "Please enter the desired coordinates first."
+msgstr "Vă rog întâi introduceţi coordonatele dorite."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:206
+msgid "Please enter a name for the location."
+msgstr "Vă rog introduceţi un nume pentru locaţie."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:214
+msgid "Remove"
+msgstr "Elimină"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:219
+msgid "Select a bookmark first."
+msgstr "Selectaţi întâi un semn de carte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:238
+msgid "Choose an area"
+msgstr "Alegeţi o zonă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:261
+msgid "Please enter the desired coordinates or click on a bookmark."
+msgstr ""
+"Vă rog introduceţi coordonetele dorite sau faceţi clic pe un semn de carte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadAction.java:263
+msgid "Please select at least one download data type."
+msgstr "Vă rog selectaţi cel puţin un tip de date de descărcat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit"
+msgstr "Ieşire"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExitAction.java:18
+msgid "Exit the application."
+msgstr "Părăsiţi aplicaţia."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "About"
+msgstr "Despre"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:57
+msgid "Display the about screen."
+msgstr "Afişează ecranul cu informaţii despre program."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:67
+#, java-format
+msgid "Java OpenStreetMap Editor Version {0}"
+msgstr "Java OpenStreetMap Editor Versiunea {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:68
+#, java-format
+msgid "last change at {0}"
+msgstr "ultima modificare la {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:69
+#, java-format
+msgid "Java Version {0}"
+msgstr "Java Versiunea {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:70
+msgid "Homepage"
+msgstr "Pagina pricipală"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:72
+msgid "Bug Reports"
+msgstr "Rapoarte erori"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:74
+msgid "News about JOSM"
+msgstr "Ştiri despre JOSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:78
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListPopup.java:25
+msgid "Info"
+msgstr "Informaţii"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:79
+msgid "Readme"
+msgstr "Citeşte-mă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:80
+msgid "Revision"
+msgstr "Revizia"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:81
+msgid "Contribution"
+msgstr "Contribuţii"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:85
+msgid "About JOSM..."
+msgstr "Despre JOSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AboutAction.java:95
+msgid "File could not be found."
+msgstr "Fişierul nu a putut fi găsit."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:25
+msgid "No document open so nothing to save."
+msgstr "Nu este nici un document deschis, nu este nimic de salvat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "The document contains no data. Save anyway?"
+msgstr "Acest document nu conţine date. Salvez oricum?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:28
+msgid "Empty document"
+msgstr "Document gol"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid ""
+"There are unresolved conflicts. Conflicts will not be saved and handled as "
+"if you rejected all. Continue?"
+msgstr ""
+"Există conflicte nerezolvate. Conflictele nu vor fi salvate şi se vor trata "
+"ca şi cum aţi refuzat totul. Continui?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:32
+msgid "Conflicts"
+msgstr "Conflicte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "File exists. Overwrite?"
+msgstr "Fişierul există. Îl suprascriu?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DiskAccessAction.java:79
+msgid "Overwrite"
+msgstr "Suprascrie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:29
+msgid "data"
+msgstr "date"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:30
+msgid "selection"
+msgstr "selecţie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:31
+msgid "layer"
+msgstr "strat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:32
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:141
+msgid "conflict"
+msgstr "conflict"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:40
+#, java-format
+msgid "Auto Scale: {0}"
+msgstr "Scalare automată: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/AutoScaleAction.java:43
+#, java-format
+msgid "Auto zoom the view (to {0}. Disabled if the view is moved)"
+msgstr ""
+"Mărire automată pentru a vizualiza (la {0}. Dezactivat dacă vizualizarea "
+"este mutată)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save as"
+msgstr "Salvează ca"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAsAction.java:28
+msgid "Save the current data to a new file."
+msgstr "Salvează datele curente într-un fişier nou."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:25
+msgid "OSM Server Files (.osm .xml)"
+msgstr "Fişiere server OSM (.osm .xml)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:26
+msgid "GPX Files (.gpx)"
+msgstr "Fişiere GPX (.gpx)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java:27
+msgid "CSV Files (.csv .txt)"
+msgstr "Fişiere CSV (.csv .txt)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload to OSM"
+msgstr "Transmite la OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:36
+msgid "Upload all changes to the OSM server."
+msgstr "Trimite toate schimbările la serverul OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:41
+msgid "Nothing to upload. Get some data first."
+msgstr "Nimic de transmis. Mai întâi obţineţi nişte date."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:46
+msgid "There are unresolved conflicts. You have to resolve these first."
+msgstr "Există conflicte nerezolvate. Mai întâi trebuie să le rezolvaţi."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:75
+msgid "Uploading data"
+msgstr "Transmit datele"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:97
+msgid "No changes to upload."
+msgstr "Nu sunt schimbări de transmis."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:106
+msgid "Objects to add:"
+msgstr "Obiecte de adăugat:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:114
+msgid "Objects to modify:"
+msgstr "Obiecte de modificat:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:122
+msgid "Objects to delete:"
+msgstr "Obiecte de şters:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/UploadAction.java:129
+msgid "Upload this changes?"
+msgstr "Transmit aceste schimbări?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:54
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:55
+msgid "Help"
+msgstr "Ajutor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/HelpAction.java:106
+msgid "Can only edit help pages from JOSM Online Help"
+msgstr "Se pot edita doar paginile din ajutorul JOSM online"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:39
+#, java-format
+msgid "Downloading {0} segment"
+msgid_plural "Downloading {0} segments"
+msgstr[0] "Descarc {0} segment"
+msgstr[1] "Descarc {0} segmente"
+msgstr[2] "Descarc {0} de segmente"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download incomplete objects"
+msgstr "Descarcă obiecte incomplete"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:57
+msgid "Download all (selected) incomplete ways from the OSM server."
+msgstr "Descarcă toate căile incomplete (selectate) de pe serverul OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:66
+msgid "Please select an incomplete way."
+msgstr "Vă rog selectaţi o cale incompletă."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+#, java-format
+msgid "Download {0} incomplete ways?"
+msgstr "Descarc {0} căi incomplete?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/DownloadIncompleteAction.java:69
+msgid "Download?"
+msgstr "Descarc?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo"
+msgstr "Refă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/RedoAction.java:23
+msgid "Redo the last undone action."
+msgstr "Refă ultima acţiune anulată."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:40
+msgid ""
+"Note: GPL is not compatible to the OSM license. Do not upload GPL licensed "
+"tracks."
+msgstr ""
+"Notă: GPL nu este compatibilă cu licenţa OSM. Nu transmiteţi piste "
+"licenţiate GPL"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export to GPX"
+msgstr "Exportă GPX"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:45
+msgid "Export the data to GPX file."
+msgstr "Exportă datele într-un fişier GPX."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:51
+msgid "Nothing to export. Get some data first."
+msgstr "Nimic de exportat. Obţineţi mai întâi nişte date."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:75
+msgid "gps track description"
+msgstr "descrierea pistei gps"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:81
+msgid "Add author information"
+msgstr "Adaugă informaţii despre autor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:84
+msgid "Real name"
+msgstr "Nume real"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:88
+msgid "Email"
+msgstr "Email"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:92
+msgid "Copyright (URL)"
+msgstr "Drepturi de autor (adresă)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:96
+msgid "Predefined"
+msgstr "Predefinit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:98
+msgid "Copyright year"
+msgstr "An drepturi de autor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:106
+msgid "Keywords"
+msgstr "Cuvinte cheie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:110
+msgid "Export options"
+msgstr "Opţiuni exportare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+#, java-format
+msgid "Error while exporting {0}"
+msgstr "Eroare la exportarea {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:131
+msgid "Error"
+msgstr "Eroare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/GpxExportAction.java:185
+msgid "Choose a predefined license"
+msgstr "Alegeţi o licenţă predefinită"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save"
+msgstr "Salvează"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:31
+msgid "Save the current data."
+msgstr "Salvează datele curente."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:58
+msgid "CSV output not supported yet."
+msgstr "Formatul CSV nu este încă suportat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:61
+msgid "Unknown file extension."
+msgstr "Extensie fişier necunoscută."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/actions/SaveAction.java:67
+msgid "An error occoured while saving."
+msgstr "A intervenit o eroare în timpul salvării."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:44
+#, java-format
+msgid ""
+"The plugin {0} throwed an exception: {1}\n"
+"It may be outdated. Please contact the plugin's autor.\n"
+"This message will not shown again until JOSM is restarted."
+msgstr ""
+"Modulul {0} a generat o excepţie: {1}\n"
+"Ar putea să fie învechit. Vă rog contactaţi autorul modulului.\n"
+"Acest mesaj nu va fi arătat din nou până nu se reporneşte JOSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Do nothing"
+msgstr "Nu fă nimic"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:50
+msgid "Report Bug"
+msgstr "Raportează eroarea"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:51
+msgid ""
+"An unexpected exception occoured.\n"
+"\n"
+"This is always a coding error. If you are running the latest\n"
+"version of JOSM, please consider be kind and file a bug report."
+msgstr ""
+"A avut loc o excepţie netratată.\n"
+"\n"
+"Aceasta este întotdeauna o eroare de programare. Dacă rulaţi ultima\n"
+"versiune de JOSM, vă rog fiţi amabil şi trimiteţi un raport de eroare."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:54
+msgid "Unexpected Exception"
+msgstr "Excepţie netratată"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:62
+msgid ""
+"Please send this to josm@eigenheimstrasse.de\n"
+"\n"
+msgstr ""
+"Vă rog trimiteţi asta la josm@eigenhaimstrasse.de\n"
+"\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java:83
+msgid ""
+"Please send an email with the following information to josm@eigenheimstrasse."
+"de"
+msgstr ""
+"Vă rog trimiteţi un email cu următoarele informaţii la josm@eigenheimstrasse."
+"de"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:12
+msgid "Ctrl-"
+msgstr "Ctrl-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:14
+msgid "Alt-"
+msgstr "Alt-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:16
+msgid "AltGr-"
+msgstr "AltGr-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/tools/ShortCutLabel.java:18
+msgid "Shift-"
+msgstr "Shift-"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/plugins/PluginException.java:17
+#, java-format
+msgid "An error occoured in plugin {0}"
+msgstr "A intervenit o eroare în modulul {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:63
+msgid "Load Selection"
+msgstr "Încarcă selecţia"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:70
+#, java-format
+msgid "Contact {0}..."
+msgstr "Contactez {0}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:75
+msgid "Downloading..."
+msgstr "Descarc..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:87
+#, java-format
+msgid "Could not read from url: \"{0}\""
+msgstr "Nu am putut citi de la adresa: \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:90
+#, java-format
+msgid "Parsing error in url: \"{0}\""
+msgstr "Eroare de prelucrare la adresa: \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Current Selection"
+msgstr "Selecţia curentă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:113
+msgid "Open a selection list window."
+msgstr "Deschide o fereastra cu o listă de selecţie."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:143
+msgid "Please enter a search string."
+msgstr "Vă rog introduceţi un şir de căutat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:145
+msgid ""
+"<html>Fulltext search.<ul><li><code>Baker Street</code>  - 'Baker' and "
+"'Street' in any key or name.</li><li><code>\"Baker Street\"</code>  - 'Baker "
+"Street' in any key or name.</li><li><code>name:Bak</code>  - 'Bak' anywhere "
+"in the name.</li><li><code>-name:Bak</code>  - not 'Bak' in the name.</"
+"li><li><code>foot:</code>  - key=foot set to any value.</ul></html>"
+msgstr ""
+"<html>Căutare în întreg textul.<ul><li><code>Bulevardul Unirii</code>  - "
+"'Bulevardul' şi 'Unirii' în orice cheie sau nume.</li><li><code>\"Bulevardul "
+"Unirii\"</code>  - 'Bulevardul Unirii' în orice cheie sau nume.</"
+"li><li><code>name:Uni</code>  - 'Uni' oriunde în nume.</li><li><code>-name:"
+"Uni</code>  - nu există 'Uni' în nume.</li><li><code>foot:</code>  - cheia "
+"foot are orice valoare.</ul></html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:153
+msgid "replace selection"
+msgstr "Înlocuieşte selecţia"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:154
+msgid "add to selection"
+msgstr "adaugă la selecţie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:155
+msgid "remove from selection"
+msgstr "elimină din selecţie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java:172
+msgid "Search"
+msgstr "Căutare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Conflict"
+msgstr "Conflict"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:51
+msgid "Merging conflicts."
+msgstr "Îmbin conflictele."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:63
+msgid "Resolve"
+msgstr "Rezolvă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:64
+msgid "Open a merge dialog of all selected items in the list above."
+msgstr ""
+"Deschide un dialog de îmbinare a tuturor elementelor selectate din lista de "
+"mai sus."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:73
+msgid "Select"
+msgstr "Selectaţi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:74
+msgid ""
+"Set the selected elements on the map to the selected items in the list above."
+msgstr ""
+"Setaţi elementele selectate de pe hartă ca elemente selectate din lista de "
+"mai sus."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:108
+msgid "Please select something from the conflict list."
+msgstr "Vă rog selectaţi ceva din lista de conflicte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java:117
+msgid "Resolve Conflicts"
+msgstr "Rezolvare conflicte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:82
+msgid "Click Reload to refresh list"
+msgstr "Apăsaţi Reîncarcă pentru a reîmprospăta lista"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:83
+msgid "Reload"
+msgstr "Reîncarcă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:84
+msgid "Revert"
+msgstr "Anulează"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "History"
+msgstr "Istoric"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:87
+msgid "Display the history of all selected items."
+msgstr "Afişează istoricul tuturor elementelor selectate."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:225
+msgid "Object"
+msgstr "Obiect"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:96
+msgid "Date"
+msgstr "Dată"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:131
+msgid "Reload all currently selected objects and refresh the list."
+msgstr "Reîncarcă toate obiectele selectate curent şi împrospătează lista."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:180
+msgid "Not implemented yet."
+msgstr "Nu a fost încă implementat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/HistoryDialog.java:138
+msgid ""
+"Revert the state of all currently selected objects to the version selected "
+"in the history list."
+msgstr ""
+"Readu toate obiectele selectate curent la starea din versiunea selectată în "
+"lista de istoric."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Command Stack"
+msgstr "Stivă comenzi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/CommandStackDialog.java:31
+msgid "Open a list of all commands (undo buffer)."
+msgstr "Deschide o listă cu toate comenzile (zonă tampon pentru anulare)."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:99
+msgid "Please select the objects you want to change properties for."
+msgstr ""
+"Vă rog selectaţi obiectele pentru care doriţi să schimbaţi proprietăţile."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+#, java-format
+msgid "This will change {0} object."
+msgid_plural "This will change {0} objects."
+msgstr[0] "Se va modifica {0} obiect."
+msgstr[1] "Se vor modifica {0} obiecte."
+msgstr[2] "Se vor modifica {0} de obiecte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:102
+#, java-format
+msgid ""
+"Please select a new value for \"{0}\".<br>(Empty string deletes the key.)"
+msgstr ""
+"Vă rog selectaţi o valoare nouă pentru \"{0}\".<br>(Un şir gol va şterge "
+"cheia.)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:114
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:178
+msgid "Change values?"
+msgstr "Schimb valorile?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:132
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:284
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:369
+msgid "<different>"
+msgstr "<diferit>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:151
+msgid "Please select objects for which you want to change properties."
+msgstr ""
+"Vă rog selectaţi obiectele pentru care doriţi să schimbaţi proprietăţile."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:156
+msgid "Please select a key"
+msgstr "Vă rog selectaţi o cheie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:169
+msgid "Please select a value"
+msgstr "Vă rog selectaţi o valoare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Properties"
+msgstr "Proprietăţi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:222
+msgid "Property for selected objects."
+msgstr "Proprietăţi ale obiectelor selectate."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:241
+#, java-format
+msgid "Could not read annotation preset source: {0}"
+msgstr "Nu am putut citi sursa prestabilită de adnotări: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:244
+#, java-format
+msgid "Error parsing {0}: "
+msgstr "Eroare la prelucrarea {0}: "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:263
+#, java-format
+msgid "Change {0} object"
+msgid_plural "Change {0} objects"
+msgstr[0] "Schimb {0} obiect"
+msgstr[1] "Schimb {0} obiecte"
+msgstr[2] "Schimb {0} de obiecte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Key"
+msgstr "Cheie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:276
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:81
+msgid "Value"
+msgstr "Valoare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:309
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:359
+msgid "Please select the row to edit."
+msgstr "Vă rog selectaţi rândul care va fi editat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:314
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:374
+msgid "Please select the row to delete."
+msgstr "Vă rog selectaţi rândul care va fi şters."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:320
+msgid "Add a new key/value pair to all objects"
+msgstr "Adaugă o nouă pereche cheie/valoare tuturor obiectelor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:355
+#: ../../plugins/grid/src/grid/GridPlugin.java:43
+#: ../../plugins/grid/src/grid/GridPlugin.java:49
+msgid "Edit"
+msgstr "Editare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:321
+msgid "Edit the value of the selected key for all objects"
+msgstr "Editează valoarea cheii selectata pentru toate obiectele"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java:322
+msgid "Delete the selected key in all objects"
+msgstr "Şterge cheia selectată din toate obiectele"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:60
+msgid "Delete the selected layer."
+msgstr "Şterge stratul selectat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:82
+msgid "Show/Hide"
+msgstr "Arată/Ascunde"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:83
+msgid "Toggle visible state of the selected layer."
+msgstr "Comută starea vizibilă a stratului selectat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Layers"
+msgstr "Straturi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:122
+msgid "Open a list of all loaded layers."
+msgstr "Deschide o listă cu toate straturile încărcate."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:196
+msgid "Move the selected layer one row up."
+msgstr "Mută stratul selectat un rând în sus."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:202
+msgid "Move the selected layer one row down."
+msgstr "Mută stratul selectat un rând în jos."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java:216
+msgid "Merge the selected layer into the layer directly below."
+msgstr "Uneşte stratul selectat cu stratul imediat inferior."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:160
+#, java-format
+msgid "Unknown type at line {0}"
+msgstr "Tip necunoscut la linia {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:178
+#, java-format
+msgid "Cannot have a writable combobox with default values (line {0})"
+msgstr ""
+"Nu pot avea o listă de selecţie modificabilă cu valori implicite (linia {0})"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:183
+#, java-format
+msgid ""
+"display_values ({0}) and values ({1}) must be of same number of elements."
+msgstr ""
+"display_values ({0}) şi values ({1}) trebuie să aibă acelaşi număr de "
+"elemente."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:184
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:185
+msgid "element"
+msgid_plural "elements"
+msgstr[0] "element"
+msgstr[1] "elemente"
+msgstr[2] "de elemente"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:190
+#, java-format
+msgid "Unknown annotation object {0} at line {1} column {2}"
+msgstr "Obiect adnotare {0} necunoscut la linia {1} coloana {2}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/annotation/AnnotationPreset.java:258
+msgid "Change Properties"
+msgstr "Modificare proprietăţi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:161
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:66
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:135
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/MoveCommand.java:122
+msgid "node"
+msgid_plural "nodes"
+msgstr[0] "nod"
+msgstr[1] "noduri"
+msgstr[2] "de noduri"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:162
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:53
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:136
+msgid "segment"
+msgid_plural "segments"
+msgstr[0] "segment"
+msgstr[1] "segmente"
+msgstr[2] "de segmente"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:163
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:92
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:137
+msgid "way"
+msgid_plural "ways"
+msgstr[0] "cale"
+msgstr[1] "căi"
+msgstr[2] "de căi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:178
+msgid "There were conflicts during import."
+msgstr "Au existat conflicte în timpul importului."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:317
+#, java-format
+msgid "{0} consists of:"
+msgstr "{0} constă în:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java:321
+#, java-format
+msgid " ({0} deleted.)"
+msgstr " ({0} şters.)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:57
+msgid "Convert to data layer"
+msgstr "Converteşte la strat de date"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:159
+msgid "track"
+msgid_plural "tracks"
+msgstr[0] "urmă"
+msgstr[1] "urme"
+msgstr[2] "de urme"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:160
+msgid "point"
+msgid_plural "points"
+msgstr[0] "punct"
+msgstr[1] "puncte"
+msgstr[2] "de puncte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:185
+#, java-format
+msgid "a track with {0} point"
+msgid_plural "a track with {0} points"
+msgstr[0] "o urmă cu {0} punct"
+msgstr[1] "o urmă cu {0} puncte"
+msgstr[2] "o urmă cu {0} de puncte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} consists of {1} track"
+msgid_plural "{0} consists of {1} tracks"
+msgstr[0] "{0} este format din {1} urmă"
+msgstr[1] "{0} este format din {1} urme"
+msgstr[2] "{0} este format din {1} de urme"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:189
+#, java-format
+msgid "{0} point"
+msgid_plural "{0} points"
+msgstr[0] "{0} punct"
+msgstr[1] "{0} puncte"
+msgstr[2] "{0} de puncte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:193
+msgid "Customize line drawing"
+msgstr "Personalizează trasarea liniilor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:197
+msgid "Use global settings."
+msgstr "Utilizează opţiunile globale."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:198
+msgid "Draw lines between points for this layer."
+msgstr "Trasează linii între puncte pentru acest strat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:199
+msgid "Do not draw lines between points for this layer."
+msgstr "Nu trasa linii între puncte pentru acest strat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:211
+msgid "Select line drawing options"
+msgstr "Selectaţi opţiunile pentru trasarea liniilor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:222
+msgid "Customize Color"
+msgstr "Personalizează culoarea"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "OK"
+msgstr "OK"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:24
+msgid "Cancel"
+msgstr "Renunţă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:227
+msgid "Default"
+msgstr "Implicit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:228
+msgid "Choose a color"
+msgstr "Alegeţi o culoare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:243
+msgid "Import images"
+msgstr "Importă imagini"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/RawGpsLayer.java:255
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:349
+msgid "JPEG images (*.jpg)"
+msgstr "Imagine JPEG (*.jpg)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:90
+#, java-format
+msgid "Images for {0}"
+msgstr "Imagini pentru {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:95
+msgid "Read GPS..."
+msgstr "Citire GPS..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:102
+#, java-format
+msgid "No time for point {0} x {1}"
+msgstr "Nu există timp pentru punctul {0} x {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:107
+#, java-format
+msgid "Cannot read time \"{0}\" from point {1} x {2}"
+msgstr "Nu pot citi timpul \"{0}\" din punctul {1} x {2}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:114
+msgid "No images with readable timestamps found."
+msgstr "Nu am găsit imagini cu mărci de timp citibile."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:125
+#, java-format
+msgid "Reading {0}..."
+msgstr "Citesc {0}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:191
+msgid "Geotagged Images"
+msgstr "Imagini geoetichetate"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:269
+#, java-format
+msgid "GPS start: {0}"
+msgstr "Start GPS: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:270
+#, java-format
+msgid "GPS end: {0}"
+msgstr "Sfârşit GPS: {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:272
+#, java-format
+msgid "current delta: {0}s"
+msgstr "diferentă curentă: {0}s"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:273
+msgid "timezone difference: "
+msgstr "diferenţă zonă de timp: "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+msgid "image"
+msgid_plural "images"
+msgstr[0] "imagine"
+msgstr[1] "imagini"
+msgstr[2] "de imagini"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:297
+#, java-format
+msgid "{0} within the track."
+msgstr "{0} în urmă."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:338
+msgid "Sync clock"
+msgstr "Sincronizare ceas"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:395
+#, java-format
+msgid "The date in file \"{0}\" could not be parsed."
+msgstr "Datele din fişierul \"{0}\" nu au putut fi interpretate."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:399
+#, java-format
+msgid "There is no EXIF time within the file \"{0}\"."
+msgstr "Nu există timp EXIF în fişierul \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:403
+msgid "Image"
+msgstr "Imagine"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:405
+msgid "Enter shown date (mm/dd/yyyy HH:MM:SS)"
+msgstr "Introduceţi data afişată (ll/zz/aaaa HH:MM:SS)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:408
+msgid "GPS unit timezome (difference to photo)"
+msgstr "Zona de timp a unităţii GPS (diferenţă faţă de fotografie)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:416
+msgid "Syncronize Time with GPS Unit"
+msgstr "Sincronizare timp cu unitatea GPS"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:432
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java:434
+msgid "Time entered could not be parsed."
+msgstr "Timpul introdus nu a putut fi interpretat."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:74
+msgid "Could not read bookmarks."
+msgstr "Nu am putut citi semnele de carte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/BookmarkList.java:98
+msgid "Could not write bookmark."
+msgstr "Nu am putut scrie semnele de carte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:123
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:171
+msgid "Java Open Street Map - Editor"
+msgstr "Java Open Street Map - Editor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapView.java:163
+msgid "layer not in list."
+msgstr "stratul nu este în listă."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:55
+msgid "Hint: Some changes came from uploading new data to the server."
+msgstr ""
+"Indiciu: Anumite modificări au apărut în urma transmiterii de date noi la "
+"server."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:57
+msgid "There are unsaved changes. Really quit?"
+msgstr "Există modificăre nesalvate. Într-adevăr ieşiţi?"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:58
+msgid "Unsaved Changes"
+msgstr "Modificări nesalvate"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:144
+msgid "Java OpenStreetMap Editor"
+msgstr "Java OpenStreetMap Editor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:145
+msgid "usage"
+msgstr "utilizare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:147
+msgid "options"
+msgstr "opţiuni"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:148
+msgid "Show this help"
+msgstr "Arată acest ajutor"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:149
+msgid "Standard unix geometry argument"
+msgstr "Argument geometrie unix standard"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:150
+msgid "Download the bounding box"
+msgstr "Descarcă perimetrul selectat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:151
+msgid "Download the location at the url (with lat=x&lon=y&zoom=z)"
+msgstr "Descarcă locaţia de la adresă (cu lat=x&lon=y&zoom=z)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:152
+msgid "Open file (as raw gps, if .gpx or .csv)"
+msgstr "Deschide fişierul (ca gps brut, dacă .gpx sau .csv)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:153
+msgid "Download the bounding box as raw gps"
+msgstr "Descarcă perimetrul selectat ca date gps neprelucrate"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:154
+msgid "Select with the given search"
+msgstr "Selectează cu căutarea dată"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:155
+msgid "Don't launch in fullscreen mode"
+msgstr "Nu porni pe întreg ecranul"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:156
+msgid "Reset the preferences to default"
+msgstr "Restabileşte preferinţele implicite"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:157
+msgid "Set the language. Example: "
+msgstr "Precizează limba. Exemplu: "
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:158
+msgid "examples"
+msgstr "exemple"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:164
+msgid ""
+"Parameters are read in the order they are specified, so make sure you load\n"
+"some data before --selection"
+msgstr ""
+"Parametrii sunt citiţi în ordinea în care sunt specificaţi, deci asiguraţi-"
+"vă\n"
+"că aţi încărcat date înainte de --selection"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplication.java:166
+msgid "Instead of --download=<bbox> you may specify osm://<bbox>\n"
+msgstr "În loc de --download=<bbox> puteţi specifica osm://<bbox>\n"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:52
+msgid "Layer"
+msgstr "Strat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:56
+msgid "Files"
+msgstr "Fişiere"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainMenu.java:57
+msgid "Connection"
+msgstr "Conexiune"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java:22
+msgid "Contacting the OSM server..."
+msgstr "Contactez serverul OSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MapStatus.java:223
+msgid "Lat/Lon"
+msgstr "Lat/Lon"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:232
+#, java-format
+msgid "{0} object has conflicts:"
+msgid_plural "{0} objects have conflicts:"
+msgstr[0] "{0} obiect are conflicte:"
+msgstr[1] "{0} obiecte au conflicte:"
+msgstr[2] "{0} de obiecte au conflicte:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:235
+msgid "my version:"
+msgstr "versiunea mea:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:241
+msgid "their version:"
+msgstr "versiunea lor:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/ConflictResolver.java:247
+msgid "resolved version:"
+msgstr "rezolvat în versiunea:"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:77
+msgid "Error while parsing"
+msgstr "Eroare la prelucrare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java:80
+msgid "File Not found"
+msgstr "Fişierul nu a fost găsit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "string"
+msgstr "şir"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:34
+msgid "Name of the user."
+msgstr "Numele utilizatorului."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:35
+msgid "OSM Password."
+msgstr "Parola OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:36
+msgid "Size the applet to the given geometry (format: WIDTHxHEIGHT)"
+msgstr ""
+"Dimensionează aplicaţia la geometria precizată (format: LĂŢIMExÎNĂLŢIME)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid "string;string;..."
+msgstr "şir;şir;..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:37
+msgid ""
+"Download each. Can be x1,y1,x2,y2 an url containing lat=y&lon=x&zoom=z or a "
+"filename"
+msgstr ""
+"Descarcă pe fiecare. Poate fi x1,y1,x2,y2 o adresă conţinând "
+"lat=y&lon=x&zoom=z sau un nume de fişier"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:38
+msgid ""
+"Download each as raw gps. Can be x1,y1,x2,y2 an url containing "
+"lat=y&lon=x&zoom=z or a filename"
+msgstr ""
+"Descarcă pe fiecare ca gps neprelucrat. Poate fi x1,y1,x2,y2 sau o adresă "
+"conţinând lat=x&lon=y&zoom=z sau un nume de fişier"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:39
+msgid ""
+"Add each to the initial selection. Can be a google-like search string or an "
+"url which returns osm-xml"
+msgstr ""
+"Adaugă pe fiecare la selecţia iniţială. Poate fi un şir de căutare tip "
+"google sau o adresă care întoarce osm-xml"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "any"
+msgstr "oricare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:40
+msgid "If specified, reset the configuration instead of reading it."
+msgstr "Dacă este specificat, resetează configuraţia în loc de a o citi."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:65
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:68
+msgid "Username"
+msgstr "Nume utilizator"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/MainApplet.java:68
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:71
+msgid "Password"
+msgstr "Parolă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:123
+msgid "You have to restart JOSM for some settings to take effect."
+msgstr "Trebui să reponiţi JOSM pentru ca anumite opţiuni să aibă efect."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:185
+msgid "Draw lines between raw gps points."
+msgstr "Trasează linii între puncte gps neprelucrate"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:189
+msgid "Force lines if no segments imported."
+msgstr "Forţează linii dacă nu a fost importat nici un segment."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:190
+msgid "Draw large GPS points."
+msgstr "Desenează puncte GPS mari."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:191
+msgid "Draw Direction Arrows"
+msgstr "Desenează săgeţi direcţionale"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:250
+msgid ""
+"Force drawing of lines if the imported data contain no line information."
+msgstr ""
+"Forţează desenarea liniilor dacă datele importate nu conţin informatii "
+"despre linii."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:254
+msgid "Draw larger dots for the GPS points."
+msgstr "Desenează puncte mai pari pentru punctele GPS."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:255
+msgid "Draw direction hints for all segments."
+msgstr "Desenează indicii despre direcţie pentru toate segmentele."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:306
+msgid "Color"
+msgstr "Culoare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:307
+msgid "Name"
+msgstr "Nume"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:328
+msgid "Choose"
+msgstr "Alegeţi"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:332
+msgid "Please select a color."
+msgstr "Vă rog selectaţi o culoare."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:337
+#, java-format
+msgid "Choose a color for {0}"
+msgstr "Alegeţi o culoare pentru {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:347
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:361
+msgid "Annotation preset source"
+msgstr "Sursă predefinită de adnotări"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:386
+msgid "The base URL to the OSM server (REST API)"
+msgstr "Adresa de bază pentru serverul OSM (API REST)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:387
+msgid "Login name (email) to the OSM account."
+msgstr "Nume autentificare (email) pentru contul OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:388
+msgid ""
+"Login password to the OSM account. Leave blank to not store any password."
+msgstr ""
+"Parolă de autentificare pentru contul OSM. Lăsaţi gol pentru a nu păstra "
+"nici o parolă."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:389
+msgid "The base URL to the server retrieving WMS background pictures from."
+msgstr "Adresa de bază a serverului pentru obţinerea imaginilor WMS de fundal."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:390
+msgid ""
+"<html>Import string specification. lat/lon and time are imported.<br><b>lat</"
+"b>: The latitude coordinate<br><b>lon</b>: The longitude "
+"coordinate<br><b>time</b>: The measured time as string<br><b>ignore</b>: "
+"Skip this field<br>An example: \"ignore ignore lat lon\" will use ' ' as "
+"delimiter, skip the first two values and read then lat/lon.<br>Other "
+"example: \"lat,lon\" will just read lat/lon values comma seperated.</html>"
+msgstr ""
+"<html>Specificaţii pentru formatul şirului de import. lat/lon şi timp sunt "
+"importate.<br><b>lat</b>: Coordonata latitudine<br><b>lon</b>: Coordonata "
+"longitudine<br><b>time</b>: Timpul măsurat, ca şir<br><b>ignore</b>: Sări "
+"peste acest câmp<br>Un exemplu: \"ignore ignore lat lon\" va folosi ' ' ca "
+"delimitare, va sări peste primele două valori şi apoi va citi lat/lon."
+"<br>Alt examplu: \"lat,lon\" va citi doar valorile lat/lon separate prin "
+"virgulă.</html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:397
+msgid ""
+"If your gps device draw to few lines, select this to draw lines along your "
+"way."
+msgstr ""
+"Dacă dispozitivul gps a desenat prea puţine linii, selectaţi această opţiune "
+"pentru a desena linii pe cale."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:398
+msgid "Colors used by different objects in JOSM."
+msgstr "Culori utilizate de diferite obiecte în JOSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:399
+msgid ""
+"The sources (url or filename) of annotation preset definition files. See "
+"http://josm.eigenheimstrasse.de/wiki/AnnotationPresets for help."
+msgstr ""
+"Sursele (adresă sau nume de fişier) ale fişierelor cu adnotări predefinite. "
+"Vedeţi http://josm.eigenheimstrasse.de/wiki/AnnotationPresets pentru ajutor."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:400
+msgid "Add a new annotation preset source to the list."
+msgstr "Adaugă o nouă sursă de adnotări predefinite la listă."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:401
+msgid "Delete the selected source from the list."
+msgstr "Şterge sursele selectate din listă."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid "Display Settings"
+msgstr "Configurări afişare"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:406
+msgid ""
+"Various settings that influence the visual representation of the whole "
+"program."
+msgstr ""
+"Diferite opţiuni care influenţează reprezentarea vizuală a întregului "
+"program."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:407
+msgid "Look and Feel"
+msgstr "Aspect"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:414
+msgid "Colors"
+msgstr "Culori"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings"
+msgstr "Configurări conexiune"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:421
+msgid "Connection Settings to the OSM server."
+msgstr "Configurări conexiune la serverul OSM."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:422
+msgid "Base Server URL"
+msgstr "Adresă server principal"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:424
+msgid "OSM username (email)"
+msgstr "Nume utilizator OSM (email)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:426
+msgid "OSM password"
+msgstr "Parola OSM"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:428
+msgid ""
+"<html>WARNING: The password is stored in plain text in the preferences file."
+"<br>The password is transfered in plain text to the server, encoded in the "
+"url.<br><b>Do not use a valuable Password.</b></html>"
+msgstr ""
+"<html>ATENŢIE: Parola este păstrată în format text clar în fişierul de "
+"preferinţe.<br>Parola este transferată în text clar către server, codată în "
+"adresă.<br><b>Nu folosiţi o parolă importantă.</b></html>"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:437
+msgid "CSV import specification (empty: read from first line in data)"
+msgstr ""
+"Specificaţie pentru import CSV (gol: citeşte din prima linie a datelor)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Map Settings"
+msgstr "Opţiuni hartă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:442
+msgid "Settings for the map projection and data interpretation."
+msgstr "Opţiuni pentru proiecţia hărţii şi interpretarea datelor."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:443
+msgid "Projection method"
+msgstr "Metodă de proiecţie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:446
+msgid "Annotation preset sources"
+msgstr "Surse de adnotări predefinite"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Plugins"
+msgstr "Module"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:462
+msgid "Configure available Plugins."
+msgstr "Configurează modulele disponibile."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/gui/PreferenceDialog.java:465
+msgid "Get more plugins"
+msgstr "Preia mai multe module."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:45
+#, java-format
+msgid "Downloading points {0} to {1}..."
+msgstr "Descarc punctele {0} până la {1}..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java:89
+msgid "Downloading OSM data..."
+msgstr "Descarc datele OSM..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:101
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:103
+msgid "Unknown version"
+msgstr "Versiune necunoscută"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:119
+msgid "Found <seg> tag on non-way."
+msgstr "Am găsit eticheta <seg> pe o non-cale."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:122
+msgid "Incomplete segment with id=0"
+msgstr "Segment incomplet cu id=0"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:131
+msgid "NullPointerException. Possible some missing tags."
+msgstr "Excepţie pointer nul. Posibil lipsesc nişte etichete."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:146
+msgid "Illegal object with id=0"
+msgstr "Obiect ilegal cu id=0"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:154
+#, java-format
+msgid "Couldn''t read time format \"{0}\"."
+msgstr "Nu am putut citi formatul de timp \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:169
+#, java-format
+msgid "Missing required attirbute \"{0}\"."
+msgstr "Lipseşte atributul necesar \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:239
+msgid "Preparing data..."
+msgstr "Pregătesc datele..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmReader.java:249
+msgid "Illformed Node id"
+msgstr "Note id malformat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:71
+#, java-format
+msgid "Upload {0} {1} ({2})..."
+msgstr "Transmit {0} {1} ({2})..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmServerWriter.java:185
+msgid "Unknown host"
+msgstr "Gazdă necunoscută"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:43
+#: ../../plugins/waypoints/src/WaypointReader.java:55
+#, java-format
+msgid "Data error: lat value \"{0}\" is out of bound."
+msgstr "Eroare date: valoarea lat \"{0}\" este în afara limitelor."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawGpsReader.java:45
+#: ../../plugins/waypoints/src/WaypointReader.java:59
+#, java-format
+msgid "Data error: lon value \"{0}\" is out of bound."
+msgstr "Eroare date: valoarea lon \"{0}\" este în afara limitelor."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:39
+msgid "Could not detect data format string."
+msgstr "Nu am putut detecta şirul de format al datelor."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:62
+msgid ""
+"Format string in data is incomplete or not found. Try setting an manual "
+"format string in Preferences."
+msgstr ""
+"Şirul de format al datelor este incomplet sau nu a putut fi găsit. Încercaţi "
+"să precizaţi manual un şir de format în Preferinţe."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:63
+msgid ""
+"Format string is incomplete. Need at least 'lat' and 'lon' specification"
+msgstr ""
+"Şirul de format este incomplet. E necesar să fie specificate cel puţin 'lat' "
+"şi 'lon'"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+#, java-format
+msgid "Unknown data type: \"{0}\"."
+msgstr "Tip de date necunoscut: \"{0}\"."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:83
+msgid "Maybe add an format string in preferences."
+msgstr "Puteţi să adăugaţi un şir de format în preferinţe."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/RawCsvReader.java:88
+#, java-format
+msgid "Parsing error in line {0}"
+msgstr "Eroare de prelucrare la linia {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:67
+msgid "Incorrect password or username."
+msgstr "Parolă sau nume utilizator incorecte."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:74
+msgid "Warning: The password is transferred unencrypted."
+msgstr "Atenţie: Parola este transferată necriptată."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:78
+msgid "Save user and password (unencrypted)"
+msgstr "Salvează nume utilizator şi parolă (necriptate)"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:81
+msgid "Enter Password"
+msgstr "Introduceţi parola"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmConnection.java:116
+msgid "Aborting..."
+msgstr "Anulez..."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:80
+#, java-format
+msgid "Data error: Segment {0} is deleted but part of Way {1}"
+msgstr "Eroare de date: Segmentul {0} a fost sterş dar este parte a căii {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/IncompleteDownloader.java:115
+#, java-format
+msgid "Data error: Node {0} is deleted but part of Segment {1}"
+msgstr ""
+"Eroare de date: Nodul {0} a fost şters dar este parte a segmentului {1}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/io/OsmIdReader.java:34
+msgid "Error during parse."
+msgstr "Eroare la prelucrare."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/PositionConflict.java:19
+msgid "position"
+msgstr "poziţie"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ConflictItem.java:33
+msgid "different"
+msgstr "diferit"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:14
+msgid "deleted"
+msgstr "şters"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "true"
+msgstr "adevărat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/DeleteConflict.java:18
+msgid "false"
+msgstr "fals"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:21
+msgid "none"
+msgstr "nici unul"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/SegmentConflict.java:25
+msgid "segments"
+msgstr "segmente"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/ToConflict.java:19
+msgid "to"
+msgstr "la"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/conflict/FromConflict.java:19
+msgid "from"
+msgstr "de la"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "new"
+msgstr "nou"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:48
+msgid "unknown"
+msgstr "necunoscut"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:87
+#, java-format
+msgid "{0} node"
+msgid_plural "{0} nodes"
+msgstr[0] "{0} nod"
+msgstr[1] "{0} noduri"
+msgstr[2] "{0} de noduri"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/osm/visitor/NameVisitor.java:89
+msgid "incomplete"
+msgstr "incomplet"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:134
+msgid "background"
+msgstr "fundal"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:138
+msgid "incomplete way"
+msgstr "cale incompletă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:139
+msgid "selected"
+msgstr "selectat"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:140
+msgid "gps point"
+msgstr "punct gps"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/data/Preferences.java:142
+msgid "scale"
+msgstr "scală"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ConflictResolveCommand.java:77
+#, java-format
+msgid "Resolve {0} conflicts in {1} objects"
+msgstr "Rezolvă {0} conflicte în {1} obiecte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangeCommand.java:37
+msgid "Change"
+msgstr "Schimbă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/SequenceCommand.java:51
+msgid "Sequence"
+msgstr "Secvenţă"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Remove \"{0}\" for"
+msgstr "Elimină \"{0}\" pentru"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:66
+#, java-format
+msgid "Set {0}={1} for"
+msgstr "Stabileşte {0}={1} pentru"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/command/ChangePropertyCommand.java:72
+msgid "object"
+msgid_plural "objects"
+msgstr[0] "obiect"
+msgstr[1] "obiecte"
+msgstr[2] "de obiecte"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:201
+#, java-format
+msgid "Plugin not found: {0}."
+msgstr "Modulul nu a fost găsit: {0}."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:204
+#, java-format
+msgid "Could not load plugin {0}."
+msgstr "Nu am putut încărca modulul {0}"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:228
+msgid "unnamed"
+msgstr "fără nume"
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:271
+msgid "The projection could not be read from preferences. Using EPSG:4263."
+msgstr "Proiecţia nu a putut fi citită din preferinte. Folosesc EPSG:4263."
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:329
+#, java-format
+msgid "Ignoring malformed url: \"{0}\""
+msgstr "Ignor adresa malformată: \"{0}\""
+
+#: ../../../../editors/josm/src/org/openstreetmap/josm/Main.java:341
+#, java-format
+msgid "Ignoring malformed file url: \"{0}\""
+msgstr "Ignor adresa malformată către fişier: \"{0}\""
+
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:102
+#: ../../plugins/osmarender/src/OsmarenderPlugin.java:108
+msgid "View"
+msgstr "Vizualizare"
+
+#: ../../plugins/landsat/src/landsat/DownloadLandsatTask.java:18
+msgid "Landsat background images"
+msgstr "Imagini de fundal Landsat"
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:45
+msgid "Wrong longitude transformation for tile manager. Can't operate on {0}"
+msgstr ""
+"Eroare la transformarea longitudinii pentru administratorul de imagini. Nu "
+"pot opera pe {0}"
+
+#: ../../plugins/landsat/src/landsat/LandsatLayer.java:70
+#, java-format
+msgid "WMS layer: {0}"
+msgstr "Stratul WMS: {0}"
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid "Annotation Preset Tester"
+msgstr "Tester de adnotări predefinite"
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:20
+msgid ""
+"Open the annotation preset test tool for previewing annotation preset "
+"dialogs."
+msgstr ""
+"Deschide unealta de test a adnotărilor pentru a previzualiza mesajele cu "
+"adnotări predefinite."
+
+#: ../../plugins/annotation-tester/src/annotationtester/AnnotationTesterAction.java:28
+msgid "You have to specify annotation sources in the preferences first."
+msgstr "Mai întâi trebuie să specificaţi surse de adnotări în preferinţe."
+
+#: ../../plugins/grid/src/grid/GridLayer.java:74
+#, fuzzy
+msgid "Grid layer:"
+msgstr "strat"
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+#, fuzzy
+msgid "Open waypoints file"
+msgstr "Deschide un fişier."
+
+#: ../../plugins/waypoints/src/WaypointOpenAction.java:33
+#, fuzzy
+msgid "Open a waypoints file."
+msgstr "Deschide un fişier."
+
+#~ msgid "Download {0} ways containing a total of {1} segments?"
+#~ msgstr "Descarc {0} căi conţinând în total {1} segmente?"
+
+#~ msgid "Refresh the selection list."
+#~ msgstr "Reîncarcă lista de selecţii"
+
+#~ msgid "Search for objects."
+#~ msgstr "Caută obiecte"
+
+#~ msgid "Language"
+#~ msgstr "Limbă"
+
+#~ msgid "Conflicts in disjunct objects"
+#~ msgstr "Conflicte în obiecte disjuncte"
+
+#~ msgid "Downloading {0} {1}"
+#~ msgstr "Descarc {0} {1}"
+
+#~ msgid "Got more than one object when expecting only one."
+#~ msgstr "Am primit mai mult de un obiect când mă aşteptam doar la unul."
+
+#~ msgid "Used in a way."
+#~ msgstr "Folosit într-o cale."
+
+#~ msgid "Move selected objects around."
+#~ msgstr "Mută obiectele selectate."
+
+#~ msgid "Open as raw gps data"
+#~ msgstr "Deschide ca date gps neprelucrate"
+
+#~ msgid "Show background"
+#~ msgstr "Arată fundalul"
+
+#~ msgid "Images"
+#~ msgstr "Imagini"
+
+#~ msgid "Time loop in gps data."
+#~ msgstr "Buclă de timp în datele gps."
Index: /applications/editors/josm/plugins/lang/ro/src/org/openstreetmap/josm/TranslationLoader_ro.java
===================================================================
--- /applications/editors/josm/plugins/lang/ro/src/org/openstreetmap/josm/TranslationLoader_ro.java	(revision 2549)
+++ /applications/editors/josm/plugins/lang/ro/src/org/openstreetmap/josm/TranslationLoader_ro.java	(revision 2549)
@@ -0,0 +1,15 @@
+package org.openstreetmap.josm;
+
+import java.util.Locale;
+
+import org.openstreetmap.josm.tools.I18n;
+import org.xnap.commons.i18n.I18nFactory;
+
+public class TranslationLoader_ro {
+
+	public TranslationLoader_ro() throws Exception {
+		Class<?> c = Class.forName("org.openstreetmap.josm.Translation_ro");
+		Locale.setDefault(new Locale("ro"));
+		I18n.i18n = I18nFactory.getI18n(c);
+	}
+}
Index: /applications/editors/josm/plugins/livegps/README
===================================================================
--- /applications/editors/josm/plugins/livegps/README	(revision 2549)
+++ /applications/editors/josm/plugins/livegps/README	(revision 2549)
@@ -0,0 +1,14 @@
+liveGPS plugin for josm
+-----------------------
+
+Author: Frederik Ramm <frederik@remote.org>
+
+* Install like any other plugin
+* start the unix program "gpsd" on the local machine
+  (http://gpsd.berlios.de/)
+* run josm
+* activate track acquisition in "LiveGPS" menu
+
+Current version has "localhost:2947" hardcoded as the gpsd address.
+Some problems exist! 
+
Index: /applications/editors/josm/plugins/livegps/build.xml
===================================================================
--- /applications/editors/josm/plugins/livegps/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/livegps/build.xml	(revision 2549)
@@ -0,0 +1,30 @@
+<project name="livegps" default="dist" basedir=".">
+
+	<target name="dist" depends="compile">
+		<!-- images -->
+		<copy todir="build/images">
+			<fileset dir="images" />
+		</copy>
+
+		<!-- create josm-custom.jar -->
+		<jar destfile="livegps.jar" basedir="build">
+			<manifest>
+                <attribute name="Plugin-Class" value="livegps.LiveGpsPlugin" />
+                <attribute name="Plugin-Description" value="Allow live GPS feed from a gpsd server" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="livegps" classpath="../../josm/bin/" destdir="build" />
+	</target>
+
+	<target name="init">
+		<mkdir dir="build" />
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/livegps/livegps/LiveGpsAcquirer.java
===================================================================
--- /applications/editors/josm/plugins/livegps/livegps/LiveGpsAcquirer.java	(revision 2549)
+++ /applications/editors/josm/plugins/livegps/livegps/LiveGpsAcquirer.java	(revision 2549)
@@ -0,0 +1,129 @@
+package livegps;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PipedReader;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.util.StringTokenizer;
+
+public class LiveGpsAcquirer implements Runnable {
+	LiveGpsLayer view;
+	Socket gpsdSocket;
+	BufferedReader gpsdReader;
+	boolean connected = false;
+	String gpsdHost = "localhost";
+	int gpsdPort = 2947;
+	boolean shutdownFlag = false;
+	
+	public LiveGpsAcquirer() {
+		
+	}
+	
+	public void run() {	
+		while(!shutdownFlag) {
+			double lat = 0;
+			double lon = 0;
+			boolean haveFix = false;
+
+			try
+			{
+				if (!connected)
+				{
+					view.setStatus("connecting...");
+					InetAddress[] addrs = InetAddress.getAllByName(gpsdHost);
+					for (int i=0; i < addrs.length; i++) {
+						try {
+							gpsdSocket = new Socket(addrs[i], gpsdPort);
+							break;
+						} catch (Exception e) {
+							gpsdSocket = null;
+						}
+					}
+					
+					if (gpsdSocket != null)
+					{
+						gpsdReader = new BufferedReader(new InputStreamReader(gpsdSocket.getInputStream()));
+						gpsdSocket.getOutputStream().write(new byte[] { 'w', 13, 10 });
+					}
+					view.setStatus("connected");
+					connected = true;
+				}
+
+
+				String line = gpsdReader.readLine();
+				if (line == null) break;
+				String words[] = line.split(",");
+
+				if ((words.length == 0) || (!words[0].equals("GPSD"))) {
+					// unexpected response.
+					continue;
+				}
+
+				for (int i = 1; i < words.length; i++) {
+					
+					if ((words[i].length() < 2) || (words[i].charAt(1) != '=')) {
+						// unexpected response.
+						continue;
+					}
+					
+					char what = words[i].charAt(0);
+					String value = words[i].substring(2);
+
+					switch(what) {
+					case 'O':
+						// full report, tab delimited.
+						String[] status = value.split("\\s+");
+						if (status.length >= 5) {
+							lat = Double.parseDouble(status[3]);
+							lon = Double.parseDouble(status[4]);
+							try {
+								view.setSpeed(Float.parseFloat(status[9]));
+								view.setCourse(Float.parseFloat(status[8]));
+							} catch (NumberFormatException nex) {}
+							haveFix = true;
+						}
+						break;
+					case 'P':	
+						// position report, tab delimited.
+						String[] pos = value.split("\\s+");
+						if (pos.length >= 2) {
+							lat = Double.parseDouble(pos[0]);
+							lon = Double.parseDouble(pos[1]);
+							haveFix = true;
+						}
+					default:
+						// not interested
+					}
+
+				}
+
+				if (haveFix) {
+					view.setCurrentPosition(lat, lon);
+				}
+				
+			} catch(IOException iox) {
+				connected = false;
+				view.setStatus("connection failed");
+				try { Thread.sleep(1000); } catch (Exception x) {};
+				// send warning to layer
+
+			}
+
+		}
+		view.setStatus("disconnected");
+		if (gpsdSocket != null) try { gpsdSocket.close(); } catch (Exception ex) {};
+	}
+	
+	public void shutdown()
+	{
+		shutdownFlag = true;
+	}
+	
+	public void setOutputLayer(LiveGpsLayer o)
+	{
+		view = o;
+	}
+}
Index: /applications/editors/josm/plugins/livegps/livegps/LiveGpsLayer.java
===================================================================
--- /applications/editors/josm/plugins/livegps/livegps/LiveGpsLayer.java	(revision 2549)
+++ /applications/editors/josm/plugins/livegps/livegps/LiveGpsLayer.java	(revision 2549)
@@ -0,0 +1,111 @@
+package livegps;
+
+import java.awt.Color;
+import java.awt.Graphics;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+
+import javax.swing.JLabel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+
+public class LiveGpsLayer extends RawGpsLayer {
+
+	LatLon lastPos;
+	GpsPoint lastPoint;
+	Collection<GpsPoint> trackBeingWritten;
+	float speed;
+	float course;
+	String status;
+	JLabel lbl;
+	boolean autocenter;
+	
+	public LiveGpsLayer(Collection<Collection<GpsPoint>> data)
+	{
+		super (data, "LiveGPS layer", null);
+		if (data.isEmpty())
+		{
+			data.add(new ArrayList<GpsPoint>());
+		}
+		for (Collection<GpsPoint> track : data) trackBeingWritten = track;
+		lbl = new JLabel();
+	}
+	
+	void setCurrentPosition(double lat, double lon)
+	{
+		LatLon thisPos = new LatLon(lat, lon);
+		if ((lastPos != null) && (thisPos.equalsEpsilon(lastPos))) {
+			// no change in position
+			// maybe show a "paused" cursor or some such
+			return;
+		}
+			
+		lastPos = thisPos;
+		lastPoint = new GpsPoint (thisPos, new Date().toString());
+		trackBeingWritten.add(lastPoint);
+		if (autocenter) center();
+		
+		Main.map.repaint();
+	}
+
+	public void center()
+	{
+		if (lastPoint != null) 
+			Main.map.mapView.zoomTo(lastPoint.eastNorth, Main.map.mapView.getScale());
+	}
+	
+	void setStatus(String status)
+	{
+		this.status = status;
+		Main.map.repaint();
+	}
+	
+	void setSpeed(float metresPerSecond)
+	{
+		speed = metresPerSecond;
+		Main.map.repaint();
+	}
+
+	void setCourse(float degrees)
+	{
+		course = degrees;
+		Main.map.repaint();
+	}
+	
+	void setAutoCenter(boolean ac)
+	{
+		autocenter = ac;
+	}
+
+	@Override public void paint(Graphics g, MapView mv)
+	{
+		super.paint(g, mv);
+		int statusHeight = 50;
+		Rectangle mvs = mv.getBounds();
+		mvs.y = mvs.y + mvs.height - statusHeight;
+		mvs.height = statusHeight;
+		g.setColor(new Color(1.0f, 1.0f, 1.0f, 0.8f)); 
+		g.fillRect(mvs.x, mvs.y, mvs.width, mvs.height);
+		
+		if (lastPoint != null)
+		{
+			Point screen = mv.getPoint(lastPoint.eastNorth);
+			g.setColor(Color.RED);
+			g.drawOval(screen.x-10, screen.y-10,20,20);
+			g.drawOval(screen.x-9, screen.y-9,18,18);
+		}
+		lbl.setText("gpsd: "+status+" Speed: " + speed + " Course: "+course);
+		lbl.setBounds(0, 0, mvs.width-10, mvs.height-10);
+		Graphics sub = g.create(mvs.x+5, mvs.y+5, mvs.width-10, mvs.height-10);
+		lbl.paint(sub);
+	}
+}
Index: /applications/editors/josm/plugins/livegps/livegps/LiveGpsPlugin.java
===================================================================
--- /applications/editors/josm/plugins/livegps/livegps/LiveGpsPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/livegps/livegps/LiveGpsPlugin.java	(revision 2549)
@@ -0,0 +1,86 @@
+package livegps;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.layer.MarkerLayer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.openstreetmap.josm.plugins.Plugin;
+
+public class LiveGpsPlugin extends Plugin 
+{
+	private LiveGpsAcquirer acquirer = null;
+	private Thread acquirerThread = null;
+    private JMenu lgpsmenu;
+    private JCheckBoxMenuItem lgpscapture;
+    private JMenuItem lgpscenter;
+    private JCheckBoxMenuItem lgpsautocenter;
+    
+	private Collection<Collection<GpsPoint>> data = new ArrayList<Collection<GpsPoint>>();
+    private LiveGpsLayer lgpslayer;
+    
+    public LiveGpsPlugin() 
+    {
+        JMenuBar menu = Main.main.menu;
+        lgpsmenu = new JMenu("LiveGPS");
+        menu.add(lgpsmenu, 2);
+        lgpscapture = new JCheckBoxMenuItem("Capture GPS Track");
+        lgpscapture.setSelected(false);
+        lgpscapture.addChangeListener(new ChangeListener() {
+        	public void stateChanged(ChangeEvent ev) {
+        		if ((acquirer != null) && (!lgpscapture.isSelected()))
+        		{
+        			acquirer.shutdown();
+        			acquirer = null;
+        			acquirerThread = null;
+        		}
+        		else if ((acquirer == null) && (lgpscapture.isSelected()))
+        		{
+        			acquirer = new LiveGpsAcquirer();
+        			if (lgpslayer == null)
+        			{
+        		    	lgpslayer = new LiveGpsLayer(data);
+        				Main.main.addLayer(lgpslayer);
+        			}
+        			acquirer.setOutputLayer(lgpslayer);
+        			acquirerThread = new Thread(acquirer);
+        			acquirerThread.start();
+        		}
+        	}
+        });
+        lgpsmenu.add(lgpscapture);
+
+        lgpscenter = new JMenuItem("Center Once", KeyEvent.VK_C);
+        lgpscenter.addActionListener(new ActionListener() {
+        	public void actionPerformed(ActionEvent ev) {
+        		lgpslayer.center();
+        	}
+        });
+        lgpsmenu.add(lgpscenter);
+        
+        
+        lgpsautocenter = new JCheckBoxMenuItem("Auto-Center on current position");
+        lgpsautocenter.setSelected(false);
+        lgpsautocenter.addChangeListener(new ChangeListener() {
+        	public void stateChanged(ChangeEvent ev) {
+        		lgpslayer.setAutoCenter(lgpsautocenter.isSelected());
+        		if (lgpsautocenter.isSelected()) lgpslayer.center();
+        	}
+        });
+        lgpsmenu.add(lgpsautocenter);
+        
+    }
+}
Index: /applications/editors/josm/plugins/mappaint/.classpath
===================================================================
--- /applications/editors/josm/plugins/mappaint/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/.classpath	(revision 2549)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/mappaint/.project
===================================================================
--- /applications/editors/josm/plugins/mappaint/.project	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>mappaint</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/mappaint/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- /applications/editors/josm/plugins/mappaint/.settings/org.eclipse.jdt.core.prefs	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/.settings/org.eclipse.jdt.core.prefs	(revision 2549)
@@ -0,0 +1,52 @@
+#Thu Oct 05 20:50:49 CEST 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=ignore
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
Index: /applications/editors/josm/plugins/mappaint/build.xml
===================================================================
--- /applications/editors/josm/plugins/mappaint/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/build.xml	(revision 2549)
@@ -0,0 +1,40 @@
+<project name="mappaint" default="build" basedir=".">
+
+	<!-- point to your JOSM directory -->
+	<property name="josm" location="../../../../editors/josm/dist/josm-custom.jar" />
+
+
+
+	<target name="init">
+		<mkdir dir="build"></mkdir>
+		<mkdir dir="dist"></mkdir>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="${josm}" destdir="build" debug="true">
+			<include name="**/*.java" />
+		</javac>
+	</target>
+
+	<target name="build" depends="compile">
+		<copy todir="build/images">
+			<fileset dir="images"></fileset>
+		</copy>
+		<jar destfile="dist/mappaint.jar" basedir="build">
+			<manifest>
+				<attribute name="Plugin-Class" value="mappaint.MapPaintPlugin" />
+				<attribute name="Plugin-Description" value="An alternative render for the map with colouring, line thickness and icons.&lt;br&gt;You need an elemstyles.xml saved into ~/.josm/plugins/mappaint/" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+		<delete dir="dist" />
+	</target>
+
+	<target name="install" depends="build">
+		<copy file="dist/mappaint.jar" todir="${user.home}/.josm/plugins"/>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/AreaElemStyle.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/AreaElemStyle.java	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/AreaElemStyle.java	(revision 2549)
@@ -0,0 +1,23 @@
+package mappaint;
+import java.awt.Color;
+
+public class AreaElemStyle extends ElemStyle
+{
+	Color colour;
+
+	public AreaElemStyle (Color colour, int minZoom)
+	{
+		this.colour = colour;
+		this.minZoom = minZoom;
+	}
+
+	public Color getColour()
+	{
+		return colour;
+	}
+
+	@Override public String toString()
+	{
+		return "AreaElemStyle:   colour=" + colour;
+	}
+}
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyle.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyle.java	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyle.java	(revision 2549)
@@ -0,0 +1,15 @@
+package mappaint;
+
+abstract public class ElemStyle
+{
+	// zoom range to display the feature
+	protected int minZoom;
+
+	public int getMinZoom()
+	{
+		return minZoom;
+	}
+}
+
+
+
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyleHandler.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyleHandler.java	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyleHandler.java	(revision 2549)
@@ -0,0 +1,153 @@
+package mappaint;
+
+import java.awt.Color;
+import java.awt.Toolkit;
+import java.net.URL;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.tools.ColorHelper;
+import org.xml.sax.Attributes;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class ElemStyleHandler extends DefaultHandler
+{
+    boolean inDoc, inRule, inCondition, inElemStyle, inLine, inIcon, inArea;
+    ElemStyle curStyle;
+    ElemStyles styles;
+    String curWidth, curKey, curValue;
+	int curMinZoom;
+    ImageIcon curIcon;
+    Color curColour;
+    boolean curAnnotate;
+
+    public ElemStyleHandler(  )
+    {
+        inDoc=inRule=inCondition=inElemStyle=inLine=inIcon=inArea=false;
+        styles = new ElemStyles();
+    }
+
+    public void setElemStyles(ElemStyles styles)
+    {
+        this.styles = styles;
+    }
+
+    /*
+    ElemStyles getElemStyles()
+    {
+        return styles;
+    }
+    */
+
+    @Override public void startDocument()
+    {
+        inDoc = true;
+    }
+
+    @Override public void endDocument()
+    {
+        inDoc = false;
+    }
+
+    @Override public void startElement(String uri,String name, String qName, 
+                                    Attributes atts)    
+    {
+        if(inDoc==true)
+        {
+            if(qName.equals("rule"))
+            {
+                inRule=true;
+            }
+            else if (qName.equals("condition") && inRule)
+            {
+                inCondition=true;
+                for(int count=0; count<atts.getLength(); count++)
+                {
+                    if(atts.getQName(count).equals("k"))
+                        curKey = atts.getValue(count);        
+                    else if(atts.getQName(count).equals("v"))
+                        curValue = atts.getValue(count);        
+                }
+            }
+            else if (qName.equals("line"))
+            {
+                inLine = true;
+                for(int count=0; count<atts.getLength(); count++)
+                {
+                    if(atts.getQName(count).equals("width"))
+                        curWidth = atts.getValue(count);
+                    else if (atts.getQName(count).equals("colour"))
+                        curColour=ColorHelper.html2color(atts.getValue(count));
+                }
+            }
+			else if (qName.equals("zoom"))
+			{
+				curMinZoom = 0;
+                for(int count=0; count<atts.getLength(); count++)
+                {
+                    if(atts.getQName(count).equals("min"))
+                        curMinZoom = Integer.parseInt(atts.getValue(count));
+                }
+			}	
+            else if (qName.equals("icon"))
+            {
+                inIcon = true;
+                for(int count=0; count<atts.getLength(); count++)
+                {
+                    if(atts.getQName(count).equals("src")) {
+                        URL path = getClass().getResource("/images/nodes/"+atts.getValue(count));
+                        curIcon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(path));
+                    } else if (atts.getQName(count).equals("annotate"))
+                        curAnnotate = Boolean.parseBoolean
+                                        (atts.getValue(count));
+                }
+            }
+            else if (qName.equals("area"))
+            {
+                inArea = true;
+                for(int count=0; count<atts.getLength(); count++)
+                {
+                    if (atts.getQName(count).equals("colour"))
+                        curColour=ColorHelper.html2color(atts.getValue(count));
+                }
+            }
+        }
+    }
+
+
+    @Override public void endElement(String uri,String name, String qName)
+    {
+        if(inRule && qName.equals("rule"))
+        {
+            inRule = false;
+            styles.add (curKey, curValue, curStyle);
+        }
+        else if (inCondition && qName.equals("condition"))
+            inCondition = false;
+        else if (inLine && qName.equals("line"))
+        {
+            inLine = false;
+            curStyle = new LineElemStyle(Integer.parseInt(curWidth), curColour,
+										curMinZoom);
+        }
+        else if (inIcon && qName.equals("icon"))
+        {
+            inIcon = false;
+            curStyle = new IconElemStyle(curIcon,curAnnotate,curMinZoom);
+        }
+        else if (inArea && qName.equals("area"))
+        {
+            inArea = false;
+            curStyle = new AreaElemStyle (curColour,curMinZoom);
+        }
+
+    }
+
+    @Override public void characters(char ch[], int start, int length)
+    {
+    }
+}
+////////////////////////////////////////////////////////////////////////////////
+
+
+
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyles.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyles.java	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/ElemStyles.java	(revision 2549)
@@ -0,0 +1,44 @@
+package mappaint;
+
+import java.util.HashMap;
+import java.util.Iterator;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+public class ElemStyles
+{
+	HashMap<String, ElemStyle> styles;
+
+	public ElemStyles()
+	{
+		styles = new HashMap<String, ElemStyle>();
+	}
+
+	public void add (String k, String v, ElemStyle style)
+	{
+		String key = k + "=" + v;
+		styles.put(key, style);
+	}
+
+	public ElemStyle getStyle (OsmPrimitive p)
+	{
+		if(p.keys!=null)
+		{
+			Iterator<String> iterator = p.keys.keySet().iterator();
+			while(iterator.hasNext())	
+			{
+				String key = iterator.next();
+				String kv = key + "=" + p.keys.get(key);
+				if(styles.containsKey(kv))
+				{
+					return styles.get(kv);
+				}
+			}
+		}
+		return null;
+	}
+
+	public boolean isArea(OsmPrimitive p)
+	{
+		return getStyle(p) instanceof AreaElemStyle;
+	}
+}
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/IconElemStyle.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/IconElemStyle.java	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/IconElemStyle.java	(revision 2549)
@@ -0,0 +1,30 @@
+package mappaint;
+import javax.swing.ImageIcon;
+
+public class IconElemStyle extends ElemStyle
+{
+	ImageIcon icon;
+	boolean annotate;
+
+	public IconElemStyle (ImageIcon icon, boolean annotate, int minZoom)
+	{
+		this.icon=icon;
+		this.annotate=annotate;
+		this.minZoom = minZoom;
+	}	
+	
+	public ImageIcon getIcon()
+	{
+		return icon;
+	}
+
+	public boolean doAnnotate()
+	{
+		return annotate;
+	}
+
+	@Override public String toString()
+	{
+		return "LineElemStyle:  icon= " + icon +  " annotate=" + annotate;
+	}
+}
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/LineElemStyle.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/LineElemStyle.java	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/LineElemStyle.java	(revision 2549)
@@ -0,0 +1,30 @@
+package mappaint;
+import java.awt.Color;
+
+public class LineElemStyle extends ElemStyle
+{
+	int width;
+	Color colour;
+
+	public LineElemStyle (int width, Color colour, int minZoom)
+	{
+		this.width = width;
+		this.colour = colour;
+		this.minZoom = minZoom;
+	}
+
+	public int getWidth()
+	{
+		return width;
+	}
+
+	public Color getColour()
+	{
+		return colour;
+	}
+
+	@Override public String toString()
+	{
+		return "LineElemStyle:  width= " + width +  " colour=" + colour;
+	}
+}
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintPlugin.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintPlugin.java	(revision 2549)
@@ -0,0 +1,56 @@
+package mappaint;
+
+import java.io.File;
+import java.io.FileReader;
+
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+public class MapPaintPlugin extends Plugin implements LayerChangeListener {
+
+	public static ElemStyles elemStyles = new ElemStyles();
+
+	public MapPaintPlugin() {
+		String elemStylesFile = getPluginDir()+"elemstyles.xml";
+		File f = new File(elemStylesFile);
+		if (f.exists())
+		{
+			try
+			{
+				XMLReader xmlReader = XMLReaderFactory.createXMLReader();
+				ElemStyleHandler handler = new ElemStyleHandler();
+				xmlReader.setContentHandler(handler);
+				xmlReader.setErrorHandler(handler);
+				handler.setElemStyles(elemStyles);
+				// temporary only!
+				xmlReader.parse(new InputSource(new FileReader(f)));
+			}
+			catch (Exception e)
+			{
+				throw new RuntimeException(e);
+			}
+		}
+	}
+
+	public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
+		if (newFrame != null)
+			newFrame.mapView.addLayerChangeListener(this);
+		else
+			oldFrame.mapView.removeLayerChangeListener(this);
+	}
+
+	public void activeLayerChange(Layer oldLayer, Layer newLayer) {}
+
+	public void layerAdded(Layer newLayer) {
+		if (newLayer instanceof OsmDataLayer)
+			((OsmDataLayer)newLayer).setMapPainter(new MapPaintVisitor());
+    }
+
+	public void layerRemoved(Layer oldLayer) {}
+}
Index: /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintVisitor.java
===================================================================
--- /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintVisitor.java	(revision 2549)
+++ /applications/editors/josm/plugins/mappaint/src/mappaint/MapPaintVisitor.java	(revision 2549)
@@ -0,0 +1,218 @@
+package mappaint;
+
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics2D;
+import java.awt.Point;
+import java.awt.Polygon;
+
+import javax.swing.ImageIcon;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor;
+
+/**
+ * A visitor that paints the OSM components in a map-like style.
+ */
+
+public class MapPaintVisitor extends SimplePaintVisitor {
+
+	/**
+	 * Draw a small rectangle.
+	 * White if selected (as always) or red otherwise.
+	 *
+	 * @param n The node to draw.
+	 */
+	// Altered from SimplePaintVisitor
+	@Override public void visit(Node n) {
+		ElemStyle nodeStyle = MapPaintPlugin.elemStyles.getStyle(n);
+		if(nodeStyle!=null && Main.map.mapView.zoom()>=nodeStyle.getMinZoom()){
+			if(nodeStyle instanceof IconElemStyle) {
+				drawNode(n, ((IconElemStyle)nodeStyle).getIcon());
+			} else {
+				// throw some sort of exception
+			}
+		} else {
+			drawNode(n, n.selected ? getPreferencesColor("selected",
+									Color.YELLOW)
+				: getPreferencesColor("node", Color.RED));
+		}
+	}
+
+	/**
+	 * Draw just a line between the points.
+	 * White if selected (as always) or grey otherwise.
+	 * Want to make un-wayed segments stand out less than ways.
+	 */
+	@Override public void visit(Segment ls) {
+		drawSegment(ls, getPreferencesColor("untagged",Color.GRAY));
+	}
+
+	/**
+	 * Draw a line for all segments, according to tags.
+	 * @param w The way to draw.
+	 */
+	// Altered from SimplePaintVisitor
+	@Override public void visit(Way w) {
+		Color colour = getPreferencesColor("untagged",Color.GRAY);
+		int width=2;
+		boolean area=false;
+		ElemStyle wayStyle = MapPaintPlugin.elemStyles.getStyle(w);
+		if(wayStyle!=null)
+		{
+			if(wayStyle instanceof LineElemStyle)
+			{
+				colour = ((LineElemStyle)wayStyle).getColour();
+				width = ((LineElemStyle)wayStyle).getWidth();
+			}
+			else if (wayStyle instanceof AreaElemStyle)
+			{
+				colour = ((AreaElemStyle)wayStyle).getColour();
+				area = true;
+			}
+		}
+
+		if(area)
+		{
+			drawWayAsArea(w,colour);
+		}
+		else
+		{
+			for (Segment ls : w.segments)
+			{
+				if (!ls.selected) // selected already in good color
+					drawSegment(ls, w.selected ?
+						getPreferencesColor("selected", Color.YELLOW) : colour,
+						width);
+			}
+		}
+	}
+
+	// This assumes that all segments are aligned in the same direction!
+	protected void drawWayAsArea(Way w, Color colour)
+	{
+		Polygon polygon = new Polygon();
+		Point p;
+		boolean first=true;
+		for (Segment ls : w.segments)
+		{
+		    if (ls.incomplete) continue;
+			if(first)
+			{
+				p = nc.getPoint(ls.from.eastNorth);
+				polygon.addPoint(p.x,p.y);
+				first=false;
+			}
+			p = nc.getPoint(ls.to.eastNorth);
+			polygon.addPoint(p.x,p.y);
+		}
+
+		g.setColor( w.selected ?
+						getPreferencesColor("selected", Color.YELLOW) : colour);
+
+		if(Main.pref.getBoolean("mappaint.fillareas", true))
+			g.fillPolygon(polygon);
+		else
+		{
+			Graphics2D g2d = (Graphics2D)g;
+			g2d.setStroke(new BasicStroke(2));
+			g.drawPolygon(polygon);
+			g2d.setStroke(new BasicStroke(1));
+		}
+	}
+
+	// NEW
+	protected void drawNode(Node n, ImageIcon icon) {
+		Point p = nc.getPoint(n.eastNorth);
+		int w = icon.getIconWidth(), h=icon.getIconHeight();
+		icon.paintIcon ( Main.map.mapView, g, p.x-w/2, p.y-h/2 );
+		String name = (n.keys==null) ? null : n.keys.get("name");
+		if (name!=null)
+		{
+			g.setColor( getPreferencesColor ("text", Color.WHITE));
+			g.setFont (new Font("Helvetica", Font.PLAIN, 8));
+			g.drawString (name, p.x+w/2+2, p.y+h/2+2);
+		}
+		if (n.selected)
+		{
+			g.setColor (  getPreferencesColor("selected", Color.YELLOW) );
+			g.drawRect (p.x-w/2-2,p.y-w/2-2, w+4, h+4);
+		}
+	}
+
+	/**
+	 * Draw a line with the given color.
+	 */
+	// Altered - now specify width
+	@Override protected void drawSegment(Segment ls, Color col) {
+			drawSegment(ls,col,1);
+	}
+
+	// Altered - now specify width
+	private void drawSegment (Segment ls, Color col, int width) {
+		Graphics2D g2d = (Graphics2D)g;
+		if (ls.incomplete)
+			return;
+		if (ls.selected)
+			col = getPreferencesColor("selected", Color.YELLOW);
+		g.setColor(col);
+		//g.setWidth(width);
+		g2d.setStroke(new BasicStroke(width));
+		Point p1 = nc.getPoint(ls.from.eastNorth);
+		Point p2 = nc.getPoint(ls.to.eastNorth);
+		g.drawLine(p1.x, p1.y, p2.x, p2.y);
+
+		if (Main.pref.getBoolean("draw.segment.direction")) {
+			double t = Math.atan2(p2.y-p1.y, p2.x-p1.x) + Math.PI;
+	        g.drawLine(p2.x,p2.y, (int)(p2.x + 10*Math.cos(t-PHI)), (int)(p2.y + 10*Math.sin(t-PHI)));
+	        g.drawLine(p2.x,p2.y, (int)(p2.x + 10*Math.cos(t+PHI)), (int)(p2.y + 10*Math.sin(t+PHI)));
+		}
+	}
+
+
+	/**
+	 * Draw the node as small rectangle with the given color.
+	 *
+	 * @param n		The node to draw.
+	 * @param color The color of the node.
+	 */
+	@Override public void drawNode(Node n, Color color) {
+		Point p = nc.getPoint(n.eastNorth);
+		g.setColor(color);
+		g.drawRect(p.x-1, p.y-1, 2, 2);
+	}
+
+	// NW 111106 Overridden from SimplePaintVisitor in josm-1.4-nw1
+	// Shows areas before non-areas
+	public void visitAll(DataSet data) {
+
+		for (final OsmPrimitive osm : data.ways) {
+			if(!osm.deleted && MapPaintPlugin.elemStyles.isArea(osm))
+				osm.visit(this);
+		}
+
+		for (final OsmPrimitive osm : data.segments)
+			if (!osm.deleted)
+				osm.visit(this);
+
+
+		for (final OsmPrimitive osm : data.ways) {
+			if(!osm.deleted && !MapPaintPlugin.elemStyles.isArea(osm))
+				osm.visit(this);
+		}
+
+		for (final OsmPrimitive osm : data.nodes)
+			if (!osm.deleted)
+				osm.visit(this);
+
+		for (final OsmPrimitive osm : data.getSelected())
+			if (!osm.deleted)
+				osm.visit(this);
+	}
+}
Index: /applications/editors/josm/plugins/nearclick/.classpath
===================================================================
--- /applications/editors/josm/plugins/nearclick/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/nearclick/.classpath	(revision 2549)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/nearclick/.project
===================================================================
--- /applications/editors/josm/plugins/nearclick/.project	(revision 2549)
+++ /applications/editors/josm/plugins/nearclick/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>nearclick</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/nearclick/src/nearclick/NearClickPlugin.java
===================================================================
--- /applications/editors/josm/plugins/nearclick/src/nearclick/NearClickPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/nearclick/src/nearclick/NearClickPlugin.java	(revision 2549)
@@ -0,0 +1,47 @@
+package nearclick;
+
+import java.awt.AWTEvent;
+import java.awt.AWTException;
+import java.awt.GraphicsEnvironment;
+import java.awt.Robot;
+import java.awt.Toolkit;
+import java.awt.event.AWTEventListener;
+import java.awt.event.MouseEvent;
+
+public class NearClickPlugin implements AWTEventListener {
+
+    private int mouseDownX = -1;
+    private int mouseDownY = -1;
+    private long mouseDownTime = -1;
+
+    public NearClickPlugin() {
+        Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.MOUSE_EVENT_MASK | AWTEvent.MOUSE_MOTION_EVENT_MASK);
+    }
+
+    public void eventDispatched(AWTEvent event) {
+        if (event instanceof MouseEvent) {
+            MouseEvent e = (MouseEvent)event;
+            if ( e.getButton() != MouseEvent.BUTTON1 )
+                return;
+            if (e.getID() == MouseEvent.MOUSE_RELEASED) {
+                if ( e.getWhen() - mouseDownTime < 250 &&
+                        e.getPoint().x - mouseDownX < 7 &&
+                        e.getPoint().y - mouseDownY < 7 &&
+                        e.getPoint().x != mouseDownX &&
+                        e.getPoint().y != mouseDownY ) {
+                    try {
+                        Robot r = new Robot(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice());
+                        r.mousePress(MouseEvent.BUTTON1_MASK);
+                        r.mouseRelease(MouseEvent.BUTTON1_MASK);
+                    } catch (AWTException e1) {
+                    }
+                }                
+            }
+            if (e.getID() == MouseEvent.MOUSE_PRESSED) {
+                mouseDownX = e.getPoint().x;
+                mouseDownY = e.getPoint().y;
+                mouseDownTime = e.getWhen();            
+            }
+        }
+    }
+}
Index: /applications/editors/josm/plugins/osmarender/.classpath
===================================================================
--- /applications/editors/josm/plugins/osmarender/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/osmarender/.classpath	(revision 2549)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/osmarender/.project
===================================================================
--- /applications/editors/josm/plugins/osmarender/.project	(revision 2549)
+++ /applications/editors/josm/plugins/osmarender/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>osmarender</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/osmarender/build.xml
===================================================================
--- /applications/editors/josm/plugins/osmarender/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/osmarender/build.xml	(revision 2549)
@@ -0,0 +1,37 @@
+<project name="osmarender" default="install" basedir=".">
+
+	<property name="josm" location="../../../../editors/josm/dist/josm-custom.jar" />
+	<property name="osmarender" location="../../../osmarender" />
+
+
+	<target name="compile">
+		<mkdir dir="bin"></mkdir>
+		<mkdir dir="dist"></mkdir>
+		<javac srcdir="src" debug="true" classpath="${josm}" destdir="bin">
+			<include name="**/*.java" />
+		</javac>
+	</target>
+
+	<target name="build">
+		<copy todir="bin">
+			<fileset dir="${osmarender}">
+				<include name="osmarender.xsl"/>
+				<include name="osm-map-features.xml"/>
+			</fileset>
+		</copy>
+		<jar destfile="${user.home}/.josm/plugins/osmarender.jar" basedir="bin">
+			<manifest>
+				<attribute name="Plugin-Class" value="OsmarenderPlugin" />
+				<attribute name="Plugin-Description" value="Launches FireFox to display the current visible screen as a nice SVG image" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="clean">
+		<delete dir="bin" />
+		<delete dir="dist" />
+	</target>
+
+	<target name="install" depends="compile,build" />
+
+</project>
Index: /applications/editors/josm/plugins/osmarender/src/OsmarenderPlugin.java
===================================================================
--- /applications/editors/josm/plugins/osmarender/src/OsmarenderPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/osmarender/src/OsmarenderPlugin.java	(revision 2549)
@@ -0,0 +1,145 @@
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.HashSet;
+
+import javax.swing.AbstractAction;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JTextField;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.osm.visitor.AddVisitor;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+import org.openstreetmap.josm.io.OsmWriter;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.openstreetmap.josm.tools.GBC;
+
+
+public class OsmarenderPlugin extends Plugin {
+
+    private class Action extends AbstractAction {
+
+        public Action() {
+            super("Osmarender");
+        }
+
+        public void actionPerformed(ActionEvent e) {
+            // get all stuff visible on screen
+            LatLon bottomLeft = Main.map.mapView.getLatLon(0,Main.map.mapView.getHeight());
+            LatLon topRight = Main.map.mapView.getLatLon(Main.map.mapView.getWidth(), 0);
+            Bounds b = new Bounds(bottomLeft, topRight);
+            Collection<Node> nodes = new HashSet<Node>();
+            DataSet fromDataSet = new DataSet();
+            AddVisitor adder = new AddVisitor(fromDataSet);
+            for (Node n : Main.ds.nodes) {
+                if (n.coor.isWithin(b)) {
+                    n.visit(adder);
+                    nodes.add(n);
+                }
+            }
+            Collection<Segment> segments = new HashSet<Segment>();
+            for (Segment s : Main.ds.segments) {
+                if (nodes.contains(s.from) || nodes.contains(s.to)) {
+                    s.visit(adder);
+                    segments.add(s);
+                }
+            }
+            for (Way w : Main.ds.ways) {
+                for (Segment s : w.segments) {
+                    if (segments.contains(s)) {
+                        w.visit(adder);
+                        break;
+                    }
+                }
+            }
+
+            String firefox = Main.pref.get("osmarender.firefox", "firefox");
+            try {
+                // write to plugin dir
+                OsmWriter.output(new FileOutputStream(getPluginDir()+"data.osm"), new OsmWriter.All(fromDataSet, true));
+
+                // get the exec line
+                String exec = firefox;
+                if (System.getProperty("os.name").startsWith("Windows"))
+                    exec += " file:///"+getPluginDir().replace('\\','/').replace(" ","%20")+"osm-map-features.xml\"";
+                else
+                    exec += " "+getPluginDir()+"osm-map-features.xml";
+
+                // launch up the viewer
+                Runtime.getRuntime().exec(exec);
+            } catch (IOException e1) {
+                JOptionPane.showMessageDialog(Main.parent, tr("FireFox not found. Please set firefox executable in the preferences."));
+            }
+        }
+    }
+
+    private JMenu view;
+    private JMenuItem osmarenderMenu = new JMenuItem(new Action());
+
+    public OsmarenderPlugin() throws IOException {
+        JMenuBar menu = Main.main.menu;
+        view = null;
+        for (int i = 0; i < menu.getMenuCount(); ++i) {
+            if (menu.getMenu(i) != null && tr("View").equals(menu.getMenu(i).getText())) {
+                view = menu.getMenu(i);
+                break;
+            }
+        }
+        if (view == null) {
+            view = new JMenu(tr("View"));
+            menu.add(view, 2);
+            view.setVisible(false);
+        }
+        view.add(osmarenderMenu);
+        osmarenderMenu.setVisible(false);
+
+        // install the xsl and xml file
+        copy("/osmarender.xsl", "osmarender.xsl");
+        copy("/osm-map-features.xml", "osm-map-features.xml");
+    }
+
+    @Override
+    public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
+        if (oldFrame != null && newFrame == null) {
+            // disable
+            osmarenderMenu.setVisible(false);
+            if (view.getMenuComponentCount() == 1)
+                view.setVisible(false);
+        } else if (oldFrame == null && newFrame != null) {
+            // enable
+            osmarenderMenu.setVisible(true);
+            if (view.getMenuComponentCount() == 1)
+                view.setVisible(true);
+        }
+    }
+
+    @Override public PreferenceSetting getPreferenceSetting() {
+        return new PreferenceSetting(){
+            private JTextField firefox = new JTextField(10);
+            public void addGui(PreferenceDialog gui) {
+                gui.map.add(new JLabel(tr("osmarender options")), GBC.eol().insets(0,5,0,0));
+                gui.map.add(new JLabel(tr("FireFox executable")), GBC.std().insets(10,5,5,0));
+                gui.map.add(firefox, GBC.eol().insets(0,5,0,0).fill(GBC.HORIZONTAL));
+                firefox.setText(Main.pref.get("osmarender.firefox"));
+            }
+            public void ok() {
+                Main.pref.put("osmarender.firefox", firefox.getText());
+            }
+        };
+    }
+}
Index: /applications/editors/josm/plugins/plastic_laf/.classpath
===================================================================
--- /applications/editors/josm/plugins/plastic_laf/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/plastic_laf/.classpath	(revision 2549)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="lib/looks-2.0.4.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/plastic_laf/.project
===================================================================
--- /applications/editors/josm/plugins/plastic_laf/.project	(revision 2549)
+++ /applications/editors/josm/plugins/plastic_laf/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>plastic_laf</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/plastic_laf/build.xml
===================================================================
--- /applications/editors/josm/plugins/plastic_laf/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/plastic_laf/build.xml	(revision 2549)
@@ -0,0 +1,17 @@
+<project name="plastic_laf" default="install" basedir=".">
+
+	<target name="install">
+		<javac srcdir="src" destdir="bin">
+			<include name="**/*.java" />
+		</javac>
+		<unjar dest="bin" src="lib/looks-2.0.4.jar" />
+		<jar destfile="${user.home}/.josm/plugins/plastic_laf.jar" basedir="bin">
+			<manifest>
+				<attribute name="Plugin-Class" value="plastic_laf.Plugin" />
+				<attribute name="Plugin-Description" value="The great JGoodies Plastic Look and Feel" />
+				<attribute name="Plugin-Early" value="true" />
+			</manifest>
+		</jar>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/plastic_laf/src/plastic_laf/Plugin.java
===================================================================
--- /applications/editors/josm/plugins/plastic_laf/src/plastic_laf/Plugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/plastic_laf/src/plastic_laf/Plugin.java	(revision 2549)
@@ -0,0 +1,13 @@
+package plastic_laf;
+
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+
+import com.jgoodies.looks.plastic.PlasticLookAndFeel;
+
+public class Plugin {
+	public Plugin() throws UnsupportedLookAndFeelException {
+		UIManager.getDefaults().put("ClassLoader", getClass().getClassLoader());
+		UIManager.setLookAndFeel(new PlasticLookAndFeel());
+	}
+}
Index: /applications/editors/josm/plugins/slippymap/.classpath
===================================================================
--- /applications/editors/josm/plugins/slippymap/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/slippymap/.classpath	(revision 2549)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path=""/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="output" path=""/>
+</classpath>
Index: /applications/editors/josm/plugins/slippymap/.project
===================================================================
--- /applications/editors/josm/plugins/slippymap/.project	(revision 2549)
+++ /applications/editors/josm/plugins/slippymap/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>livegps</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/slippymap/README
===================================================================
--- /applications/editors/josm/plugins/slippymap/README	(revision 2549)
+++ /applications/editors/josm/plugins/slippymap/README	(revision 2549)
@@ -0,0 +1,6 @@
+A plugin for displaying a slippy map grid, with various server interaction
+options (download tiles, request tile updates etc.)
+
+Author: Frederik Ramm <frederik@remote.org>
+
+Software at very early stage, not configurable etc., work in progress!
Index: /applications/editors/josm/plugins/slippymap/build.xml
===================================================================
--- /applications/editors/josm/plugins/slippymap/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/slippymap/build.xml	(revision 2549)
@@ -0,0 +1,30 @@
+<project name="slippymap" default="dist" basedir=".">
+
+	<target name="dist" depends="compile">
+		<!-- images -->
+		<copy todir="build/images">
+			<fileset dir="images" />
+		</copy>
+
+		<!-- create josm-custom.jar -->
+		<jar destfile="slippymap.jar" basedir="build">
+			<manifest>
+                <attribute name="Plugin-Class" value="slippymap.SlippyMapPlugin" />
+                <attribute name="Plugin-Description" value="Displays a slippy map tile grid, and tile status info" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="slippymap" classpath="../../josm/bin/" destdir="build" />
+	</target>
+
+	<target name="init">
+		<mkdir dir="build" />
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapLayer.java
===================================================================
--- /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapLayer.java	(revision 2549)
+++ /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapLayer.java	(revision 2549)
@@ -0,0 +1,387 @@
+package slippymap;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.image.ImageObserver;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.Icon;
+import javax.swing.JColorChooser;
+import javax.swing.JLabel;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPopupMenu;
+import javax.swing.JSeparator;
+import javax.swing.SwingUtilities;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.actions.RenameLayerAction;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.projection.Mercator;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.openstreetmap.josm.gui.layer.markerlayer.Marker;
+import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
+import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Class that displays a slippy map layer.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class SlippyMapLayer extends Layer implements ImageObserver {
+
+	ArrayList<HashMap<Integer, SlippyMapTile>> tileStorage = new ArrayList<HashMap<Integer, SlippyMapTile>>(20);
+	Point[][] pixelpos = new Point[21][21];
+	LatLon lastTopLeft;
+	LatLon lastBotRight;
+
+	int z12x0, z12x1, z12y0, z12y1;
+	
+	private Image bufferImage;
+	private SlippyMapTile clickedTile;
+	private boolean needRedraw;
+	
+	private JPopupMenu tileOptionMenu;
+	
+	public SlippyMapLayer()
+	{
+		super("Slippy Map");
+		for (int i=0; i<18; i++)
+			tileStorage.add(new HashMap<Integer, SlippyMapTile>());
+		
+		tileOptionMenu = new JPopupMenu();
+		tileOptionMenu.add(new JMenuItem(new AbstractAction("Load Tile") {
+			public void actionPerformed(ActionEvent ae) {
+				if (clickedTile != null) 
+				{
+					clickedTile.loadImage();
+					needRedraw = true;
+				    Main.map.repaint();
+				}
+			}
+		}));
+
+		tileOptionMenu.add(new JMenuItem(new AbstractAction("Request Update") {
+			public void actionPerformed(ActionEvent ae) {
+			}
+			public boolean isEnabled() { return false; }
+		}));
+
+		tileOptionMenu.add(new JMenuItem(new AbstractAction("Show Tile Status") {
+			public void actionPerformed(ActionEvent ae) {
+			}
+			public boolean isEnabled() { return false; }
+		}));
+		
+		SwingUtilities.invokeLater(new Runnable(){
+			public void run() {
+				Main.map.mapView.addMouseListener(new MouseAdapter() {
+					@Override public void mouseClicked(MouseEvent e) {
+						if (e.getButton() != MouseEvent.BUTTON3)
+							return;
+						clickedTile = getTileForPixelpos(e.getX(), e.getY());
+						tileOptionMenu.show(e.getComponent(), e.getX(), e.getY());
+					}
+				});
+
+				Main.map.mapView.addLayerChangeListener(new LayerChangeListener(){
+					public void activeLayerChange(Layer oldLayer, Layer newLayer) {}
+					public void layerAdded(Layer newLayer) {}
+					public void layerRemoved(Layer oldLayer) {
+						Main.pref.listener.remove(SlippyMapLayer.this);
+					}
+				});
+			}
+		});
+	}
+	
+
+	/**
+	 */
+	@Override public void paint(Graphics g, MapView mv)
+	{
+		LatLon topLeft = mv.getLatLon(0, 0);
+		LatLon botRight = mv.getLatLon(mv.getWidth(), mv.getHeight());
+		Graphics oldg = g;
+		
+		if (lastTopLeft != null && 
+			lastBotRight != null && 
+			topLeft.equalsEpsilon(lastTopLeft) && 
+			botRight.equalsEpsilon(lastBotRight) && 
+			bufferImage != null && 
+			mv.getWidth() == bufferImage.getWidth(null) && 
+			mv.getHeight() == bufferImage.getHeight(null) &&
+			!needRedraw)
+		{
+
+			g.drawImage(bufferImage, 0, 0, null);
+			return;
+		}
+		
+		needRedraw = false;
+		lastTopLeft = topLeft;
+		lastBotRight = botRight;
+		bufferImage = mv.createImage(mv.getWidth(), mv.getHeight());
+		g = bufferImage.getGraphics();
+			
+		z12x0 = lonToTileX(topLeft.lon());
+		z12x1 = lonToTileX(botRight.lon());
+		z12y0 = latToTileY(topLeft.lat());
+		z12y1 = latToTileY(botRight.lat());
+		
+		if (z12x0>z12x1) { int tmp = z12x0; z12x0=z12x1; z12x1=tmp; }
+		if (z12y0>z12y1) { int tmp = z12y0; z12y0=z12y1; z12y1=tmp; }
+		
+		if (z12x1-z12x0 > 18) return;
+		if (z12y1-z12y0 > 18) return;
+		
+		for (int x = z12x0 -1; x <= z12x1+1; x++) 
+		{
+			double lon = tileXToLon(x);
+			for (int y = z12y0 -1; y <= z12y1+1; y++) 
+			{
+				LatLon tmpLL = new LatLon(tileYToLat(y), lon);
+				pixelpos[x-z12x0+1][y-z12y0+1] = mv.getPoint(Main.proj.latlon2eastNorth(tmpLL));
+			}
+		}
+		
+		int fontHeight = g.getFontMetrics().getHeight();
+			
+		g.setColor(Color.DARK_GRAY);
+		
+		for (int x = z12x0 -1; x <= z12x1; x++) 
+		{
+			for (int y = z12y0 -1; y <= z12y1; y++) 
+			{
+				int key = y * 2<<18 + x;
+				SlippyMapTile tile = tileStorage.get(12).get(key);
+
+				if (tile == null)
+				{
+					tileStorage.get(12).put(key, tile = new SlippyMapTile(x, y, 12));
+				}
+				Image img = tile.getImage();
+				
+				if (img != null)
+				{
+					Point p = pixelpos[x-z12x0+1][y-z12y0+1];
+					Point p2 = pixelpos[x-z12x0+2][y-z12y0+2];
+					g.drawImage(img, p.x, p.y, p2.x-p.x, p2.y-p.y, this);
+				}
+			}
+		}
+		
+		for (int x = z12x0 -1; x <= z12x1; x++) 
+		{
+			Point p = pixelpos[x-z12x0+1][0];
+			
+			if (x % 32 == 0) 
+			{
+				// level 7 tile boundary
+				g.fillRect(p.x - 1, 0, 3, mv.getHeight());
+			} 
+			else 
+			{
+				g.drawLine(p.x, 0, p.x, mv.getHeight());
+			}
+		
+			for (int y = z12y0 -1; y <= z12y1; y++) 
+			{
+				int key = y * 2<<18 + x;
+				int texty = p.y + 2 + fontHeight;
+				SlippyMapTile tile = tileStorage.get(12).get(key);
+				p = pixelpos[x-z12x0+1][y-z12y0+2];				
+				g.drawString("x=" + x + " y="+ y + " z=12", p.x + 2, texty);
+				texty += 1 + fontHeight;
+				if ((x % 32 == 0) && (y % 32 == 0))
+				{
+					g.drawString("x=" + x/32 + " y="+ y/32 + " z=7", p.x+2, texty);
+					texty += 1 + fontHeight;
+				}
+				
+				String md = tile.getMetadata();
+				if (md != null)
+				{
+					g.drawString(md, p.x+2, texty);
+					texty += 1 + fontHeight;
+				}
+				
+				if (tile.getImage() == null)
+				{
+					g.drawString("image not loaded", p.x+2, texty);
+					texty += 1 + fontHeight;
+				}
+						
+				if (x == z12x0-1) 
+				{
+					if (y % 32 == 31) 
+					{
+						g.fillRect(0, p.y - 1, mv.getWidth(), 3);
+					} 
+					else 
+					{
+						g.drawLine(0, p.y, mv.getWidth(), p.y);
+					}
+				}
+			}
+		}
+
+		oldg.drawImage(bufferImage, 0, 0, null);
+	
+	}
+
+	SlippyMapTile getTileForPixelpos(int px, int py)
+	{
+		int tilex=z12x1;
+		int tiley=z12y1;
+		for (int x = z12x0; x <= z12x1; x++) 
+		{
+
+			if (pixelpos[x-z12x0+1][0].x > px) 
+			{
+				tilex = x-1;
+				break;
+			}
+		}
+		if (tilex==-1) return null;
+		for (int y = z12y0; y <= z12y1; y++) 
+		{
+
+			if (pixelpos[0][y-z12y0+1].y > py) 
+			{
+				tiley = y-1;
+				break;
+			}
+		}
+		if (tiley==-1) return null;
+		
+		int key = tiley * 2<<18 + tilex;
+		SlippyMapTile tile = tileStorage.get(12).get(key);
+		if (tile==null) tileStorage.get(12).put(key, tile = new SlippyMapTile(tilex, tiley, 12));
+		return tile;
+	}
+	
+	@Override
+	public Icon getIcon() {
+		// TODO Auto-generated method stub
+		return ImageProvider.get("slippymap");
+	}
+
+	@Override
+	public Object getInfoComponent() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override public Component[] getMenuEntries() {
+		/*
+		JMenuItem color = new JMenuItem(tr("Customize Color"), ImageProvider.get("colorchooser"));
+		color.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				String col = Main.pref.get("color.layer "+name, Main.pref.get("color.gps marker", ColorHelper.color2html(Color.gray)));
+				JColorChooser c = new JColorChooser(ColorHelper.html2color(col));
+				Object[] options = new Object[]{tr("OK"), tr("Cancel"), tr("Default")};
+				int answer = JOptionPane.showOptionDialog(Main.parent, c, tr("Choose a color"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, options[0]);
+				switch (answer) {
+				case 0:
+					Main.pref.put("color.layer "+name, ColorHelper.color2html(c.getColor()));
+					break;
+				case 1:
+					return;
+				case 2:
+					Main.pref.put("color.layer "+name, null);
+					break;
+				}
+				Main.map.repaint();
+			}
+		});
+		*/
+		
+		return new Component[] {
+				new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+				new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+				new JSeparator(),
+				// color,
+				new JMenuItem(new RenameLayerAction(associatedFile, this)),
+				new JSeparator(),
+				new JMenuItem(new LayerListPopup.InfoAction(this))
+		};
+	}
+
+	@Override
+	public String getToolTipText() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean isMergable(Layer other) {
+		return false;
+	}
+
+	@Override
+	public void mergeFrom(Layer from) {
+	}
+
+	@Override
+	public void visitBoundingBox(BoundingXYVisitor v) {
+		// TODO Auto-generated method stub		
+	}
+
+	private int latToTileY(double lat) {
+		double l = lat / 180 * Math.PI;
+		double pf = Math.log(Math.tan(l) + (1/Math.cos(l)));
+		return (int) (2048.0 * (Math.PI - pf) / Math.PI);
+	}
+	
+	private int lonToTileX(double lon) {
+		return (int) (512.0 * (lon + 180.0) / 45.0);
+	}
+	
+	private double tileYToLat(int y) {
+		return Math.atan(Math.sinh(Math.PI - (Math.PI*y / 2048.0))) * 180 / Math.PI;
+	}
+	
+	private double tileXToLon(int x) {
+		return x * 45.0 / 512.0 - 180.0;
+	}
+
+	public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
+
+	    boolean done = ((infoflags & (ERROR | FRAMEBITS | ALLBITS)) != 0);
+	    // Repaint immediately if we are done, otherwise batch up
+	    // repaint requests every 100 milliseconds
+	    needRedraw = true;
+	    Main.map.repaint(done ? 0 : 100);
+	    return !done;
+	}
+}
Index: /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapPlugin.java
===================================================================
--- /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapPlugin.java	(revision 2549)
@@ -0,0 +1,43 @@
+package slippymap;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
+import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
+import org.openstreetmap.josm.plugins.Plugin;
+
+/**
+ * Main class for the slippy map plugin.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class SlippyMapPlugin extends Plugin 
+{    
+    public SlippyMapPlugin() 
+    {
+	        
+    }
+	
+	public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) 
+	{
+    	SlippyMapLayer smlayer;
+    	smlayer = new SlippyMapLayer();
+    	Main.main.addLayer(smlayer);
+	}
+}
Index: /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapTile.java
===================================================================
--- /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapTile.java	(revision 2549)
+++ /applications/editors/josm/plugins/slippymap/slippymap/SlippyMapTile.java	(revision 2549)
@@ -0,0 +1,69 @@
+package slippymap;
+import java.awt.Image;
+import java.awt.Toolkit;
+import java.awt.image.ImageObserver;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.swing.ImageIcon;
+import javax.swing.JComponent;
+
+/**
+ * Class that contains information about one single slippy map tile.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ *
+ */
+public class SlippyMapTile 
+{
+
+	private Image tileImage;
+	
+	int x;
+	int y;
+	int z;
+	
+	public SlippyMapTile(int x, int y, int z) 
+	{
+		this.x = x;
+		this.y = y;
+		this.z = z;
+	}
+	
+	public String getMetadata()
+	{
+		return "";
+	}
+	
+	public void loadImage()
+	{
+		try
+		{
+			// tileImage = new ImageIcon(new URL("http://dev.openstreetmap.org/~ojw/Tiles/tile.php/"+z+"/"+x+"/"+y+".png"));
+			//tileImage = Toolkit.getDefaultToolkit().createImage(new URL("http://openstreetmap.gryph.de/slippymap/tiles/"+z+"/"+x+"/"+y+".png"));
+			tileImage = Toolkit.getDefaultToolkit().createImage(new URL("http://dev.openstreetmap.org/~ojw/Tiles/tile.php/"+z+"/"+x+"/"+y+".png"));
+//				
+		}
+		catch (MalformedURLException mfu)
+		{
+			mfu.printStackTrace();
+		}		
+	}
+
+	public Image getImage()
+	{
+		return tileImage;
+	}
+	
+	public void loadMetadata()
+	{
+	}
+	
+	public boolean equals(Object o)
+	{
+		if (!(o instanceof SlippyMapTile)) return false;
+		SlippyMapTile other = (SlippyMapTile) o;
+		return (this.x == other.x && this.y == other.y && this.z == other.z);
+	}
+	
+}
Index: /applications/editors/josm/plugins/validator/.classpath
===================================================================
--- /applications/editors/josm/plugins/validator/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/validator/.classpath	(revision 2549)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JDK 5"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/validator/.project
===================================================================
--- /applications/editors/josm/plugins/validator/.project	(revision 2549)
+++ /applications/editors/josm/plugins/validator/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>validator</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/validator/README
===================================================================
--- /applications/editors/josm/plugins/validator/README	(revision 2549)
+++ /applications/editors/josm/plugins/validator/README	(revision 2549)
@@ -0,0 +1,1 @@
+A OSM data validator that checks for common errors.
Index: /applications/editors/josm/plugins/validator/build.xml
===================================================================
--- /applications/editors/josm/plugins/validator/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/validator/build.xml	(revision 2549)
@@ -0,0 +1,48 @@
+<project name="validator" default="build" basedir=".">
+
+	<!-- point to your JOSM directory -->
+	<property name="josm" location="../josm/dist/josm-custom.jar" />
+
+
+	
+	<target name="init">
+		<mkdir dir="build"/>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="${josm}" destdir="build" debug="true">
+			<include name="**/*.java" />
+		</javac>
+	</target>
+
+	<target name="build" depends="clean, compile">
+		<copy todir="build/resources">
+			<fileset dir="resources"/>
+		</copy>
+		<copy todir="build/images">
+			<fileset dir="images"/>
+		</copy>
+		<jar destfile="validator.jar" basedir="build">
+			<manifest>
+				<attribute name="Plugin-Class" value="org.openstreetmap.josm.plugins.validator.OSMValidatorPlugin"/>
+				<attribute name="Plugin-Description" value="A OSM data validator"/>
+				<attribute name="Author" value="Francisco R. Santos &lt;frsantos@gmail.com>"/>
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+	</target>
+
+	<target name="install" depends="build">
+		<copy file="validator.jar" todir="${user.home}/.josm/plugins"/>
+	</target>
+
+	<target name="test" depends="install">
+		<java jar="${josm}" fork="true">
+			<arg value="/home/frsantos/Desktop/JOSM/Tracks/Auto_1007_13.gpx"/>
+		</java>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/validator/resources/spellCheck.data
===================================================================
--- /applications/editors/josm/plugins/validator/resources/spellCheck.data	(revision 2549)
+++ /applications/editors/josm/plugins/validator/resources/spellCheck.data	(revision 2549)
@@ -0,0 +1,999 @@
++abutters
+-abuters
+-abbutter
+-abbutters
+-abuttors
+-abuutters
+-ubutters
++abutter
++address
++amenity
+-amenety
+-amenitry
+-amnity
+-amenity 
+-amentiy
+-aminity
+-amneity
+-amnenity
+-aminety
+-amentity
+-ammenity
+-ameinty
+-anemity
+-amneity
+-amemity
+-ameity
+-amenity:
+-amenty
+-Amenity
+-maenity
++amenitylanduse
++atm
++bicycle
+-bycycle
+-biycle
+-bycicle
+-bicyle
++bike
+- bike
++biological
++by
++City
++class
+-Class
++classification
++ele
++emity
++code_departement
++code_INSEE
++commercial
+-comercial
++comment
++confirmed
++created_by
+-created by
+-cretaed_by
+-crated_by
+-creared_by
+-creayed_by
+-{created_by
+- created_by
+-creeated_by
+-created_bu
++crossing
++denomination
+-denomionation
+-denomation
+-demonination
+-demomination
+-denomition
+-denomincation
+-denominatation
+-denoination
++domination
++faith
++footway
++foot
+- foot
+-foor
++height
+-hieght
++highway
+-huighway
+-highwayt
+-ghway
+-highaway
+-highwway
+-ighway
+-higjway
+-hioghway
+-hiway
+-hihjway
+-higheway
+-highwaY
+-hughway
+-hihgway
+-higoway
+-highwat
+-highwah
+-gighway
+-higyway
+-hichway
+-HIGHWAY
+-hingway
+-hhighway
+-highwayu
+-hyighway
+-hiughway
+-highwya
+-hifhway
+-hihway
+-hifgway
+-highway:
+-highjway
+-highway 
+-highwy
+-hgihway
+-highawy
+-highwau
+-highay
+-higbway
+-hignway
+-higway
+-highwayx
+- highway
+-hoghway
+-highwa
+-Highway
+-hghway
++highways
++highspeed
++highwaytype
++highway_type
++highwayunclassified
++horse
++hvg
++iata_ref
++icao_ref
++image
+-imaqge
++island
++layer
+-layer 
+-elevation
+-leyer
+-lyaer
+- layer
++layer2
++layers
++layout
++leisure
+-leissure
+-leiruse
+-lesure
+-leisure 
+-Leisure
+-liesure
+-lieusure
+-lesiure
+-leasure
++naam
++name
+-nname
+-naem
+-nmae
+-nacme
+-n ame
+-name`
+-namw
+-bame
+-nam
+- name
+-namr
+-name 
+-anme
+-Name
+-name:
+-NAME
+-name;
++name_1
++name_4
++named_by
++names
++note
+-Note
+-note 
++Number
++oneway
+-onewway
+-onewau
+-oneay
+-neway
+-oneweay
+-onewa
+-omeway
+-one_way
+-onway
+- oneway
+-oeway
++onte
++osmarender:nameDirection
+-name_direction
+-name-direction
+-osmarender:name_direction
++place
+-place 
+-Place
++passing
++railway
+- railway
+-Railway
+-raillway
++regional_name
++ref
+-ref 
+-ref:
+-Ref
++ref:source
++ref_nat
++ref_int
++retail
++time
++seats
++square
++soccer
++source
+-sorce
+-soruce
+-soure
+-souce
+-sourec
+-aource
+-sourse
++source2
++source:ncn_ref
++source:highway
++status
++way
++waterway
+- waterway
+-waterwa
+-Waterway
+-waterwy
+-wateway
++wood
++unknown
+-unknwon
++ 
++1
++4wd
++ car
++ class
++ horse
++ sport
++ open 09:00 - 16:00 daily
++ General McArthur lived here
++ Also coaches
++80n:ibm
++amenities
++bar
++batteries
++Bezeichnung
++boder
++Brand
++Food
++Fussweg
++Hauptstrasse
++POI
++Park
++Strasse
++abutment
++abutts
++access
++accident_and_emergency
++aerialway
+-areilway
+-areialway
+-arielway
++aeroway
+-aeoroway
+-areoway
+-airoway
++ageofdgpsdata
++airport
+-aeroport
++airport_ident
++airport_ref
++airway
++alias
++alt
++altname
++alt_name
++alt_name_2
++alternative_name
++altitude
++alt_ref
++ame
++annotation
++annotate
++angle
++angle_to_last
++appearance
++approximate
++area
++art
++ascii_name
++author
++autocar
++b test tag
++badminton
++barnvagn
++barrier
++bb:name
++beach
++bicycleRoute
++bicycle_Route
++blackadder:name
++blackadder:commerce
++blackadder:cuisine
++blackadder:service
++blackadder:civic
++bicycles
++boat
++border
++borded
++border_edit
++border_type
++boundary
++boundary_name
++boundary_type
++branch_code:fa
++branch_name:fa
++brand
++brewery
++bridge
+-brdige
+-bridgde
+-birdge
+-   bridge
+-bidge
+-brige
+-brigde
+-bridgw
++bridleway
++building
+-buillding
+-buiding
+-bulding
++build_date
++bus
++buss
++busway
++bus_routes
++building_type
++cafe
++capacity
++Car
++car
++cars
++carsharing
++category
++caution
++charge
++chemin
++checked_by
++cheshire_cycleway_ref
++christian_denomination
++cladding
++city
+-citya
++city_id
++clothes
++cmt
++complete
+- complete
+-complite
++condition
++construction
++controlled
++converted_by
++core
++cost
++country
++course
++cover
++covered
++creator
++cycle
++cycleRoute
++cycleway
+-cycleway:
++cykel
++cuisine
++cusine
++cutting
++d_lat
++d_lon
++danger
++date
++date_off
++day_off
++day_on
++dead-end
++deadend
++depth
++desc
++description
+-descripion
+-desription
+-decription
++descriptions
++ details:naco
++destination
++difficulty
++direction
++dispensing
++distance
++distance_meter
++disused
++ECautomaton
++edited_some_more_by
++editor
++editor note
++ef
++elevated
++embankment
++emergency
++emergency_ward
++error
++exit
++exit_nr
++exit_name
++external_description
++external_link
++ev_charge
++facility
++farezone
++fastfood
++FACC_CODE
++feature
+-featuer
++feature: NGIA map
+- feature: NGIA map
++features
++feet
++ferry
++fenced
++fire
++first_number
++fix
++fixme
++foobar
++food
++footpath
+-fottpath
++forrest
++foto
++free
++freight
+-frieght
++from_to
++from_zip
++fuel_diesel
++fuel_lpg
++fuel_octane_91
++fuel_octane_95
++fuel_octane_98
++full_name:fa
+-full_name:Fa
++full_name
++gate
++geoname_id
++glass
++glutenfree
++gluten_free
++goods
++gps_network
++grade
++grind
++gym
++halt
++hazard
++hame
++hdop
++helped_by
++heritage
++hgv
++highway E-number
++highway_border
+-highway_boarder
+-highway_boreder
++hill
++historic
++historic name
++historical
++history
++Higgy:ref
++hotelclass
++hospital:operator
++hour_off
++hour_on
++hours
++house_numbers
++iata
++icao
++id
+-ID
++import_ref
++incomplete
++incline_steep
++incline
++industrial
++info
++ info :naco
++infopoint
++informal_name
++int_name
+-int name
+-iint_name
++int_ref
++interpolation
++intersection
++is
++is_in
+-is in
+- is_in
++in_in
++is_in:de
++is_in:es
++junction
+-junctioin
+-juntion
+-junctiion
+-jounction
+-jumction
+- junction
+-juction
+-Junction
+-junction 
++junction_ref
++junction:ref
++junction:name
++key
++Kingsmede
++label
++landuse
+-land_use
+-lansuse
+-lanudse
+-lanuse
++lane
++lanes
+-Lanes
++last_number
++ Last Edit: Batchoy 2006-12-14
++learning
++length
++level
++license
++liftStation
++liftType
++lighthouse
++line
++lines
++link:naming
++linje
++lit
++loc_ref
++loc_name
+-loc_name 
++loc_name:fa
++local_name
+-local_nama
++local_ref
++locality
++long_name
++lorries
++ma,e
++main
++man_made
+-man_made 
+-mand_made
+-nan_made
+-madmade
+-manmade
++mapkey
++maplint:error
++maplint:notice
++maplint:warning
++mapping_status
++markedtrail
++marker
++marching_step
++min_speed
++minspeed
++max_speed
++max speed
++maxheight
+-max_hieght
+-max_height
++maxspeed
+-mayspeed
+-maxspeed 
+-maxpeed
++maxweight
+-maxwieght
+-max_weight
+-max_wieght
+-maxweihgt
++maxwidth
++membership
++memorial
++menu
++military
++mixed
++monument
++more_data
++motor
++motorbike
++motorcar
+- motorcar
+-motocar
++motor_car
++motorcars
+-motocars
++motorcycle
+-motocycle
+-motorcycle 
++motorway
++motorway station
++motorway_junction
++munro
++museum
++name.2
++name.alt
++name.en
++name:ar
++name:af
++name:cy
++name:de
++name:en
++name:es
++name:eu
++name:fa
++name:fi
++name:fr
++name:gd
++name:la
++name:my
++name:nl
++name:sv
++name.se
++name.short
++name:zh-Latn
++name1
++name2
++name int
++name_int
++name:source
++name_source
++name:cym
++name_ie
++name_loc
++name_segment
++namelayer
++name:ref
++nat_name
++nat_ref
++nat_pref
++nat_reg
++natural
+-nataural
+- natural
+-natrual
+-nautral
+-natural 
++natural2
++nature
++navigable
++ncn_name
++ncn_ref
++ncn:ref
++needs_to_be
++network
++net_ref
++newsagent_code
++nickb_marker
++nlanes
++noat
++node
++noentry
++noexit
+- noexit
++notes
++note_1
+-note_!
++note_2
+-note2
++note_3
++note_4
++note_
++noturn
++number
++numbers
++obstacles
++obstruction
++official
++ojw2
++ojw_test
++old_name
+-oldname
++old_name:fa
++old_ref
++opened
++open_in
++operator
++opm:capacity
++opm:difficulty
++opm:liftStation
++opm:liftType
+-opm:lifttype
++osmarender:renderName
+-osmarender:rendername
+-soamrender:renderName
++osmarender:renderRef
+-osmrender:renderRef
++owner
++owners
++park_and_ride
++parking
++parking:cost
++parking:spaces
++passenger
++path
++paved
++pcv_only
++pdop
++pedestrian
++pedestrians
++permissive
++phone
++phone_number
++physical
++place_postal
++place numbers
++place_code
++place_name
+- place_name
++place_numbers
++place_of_worship
++plave
++playe
++plant
++poi
++point_of_interest
++population
++popul
++port
++position_accuracy
++post_code
++postal_code
+- postal_code
+-posatl_code
++postcode
++power
++primary
++private
++provided
++Properties
++problem
++psv
++public
++public_transportation
++punting
++quality
++rail
++railroad
++railway_tracks
++ramp
++recreation
++recycling
++recycling:batteries
++recycling:bicycles
++recycling:books
++recycling:glas
+-recyling:glas
++recycling:shoes
++recycling:clothes
++recycling:engine_oil
++recycling:glass_bottles
++recycling:green_waste
++recycling:magazines
++recycling:mobile_phones
++recycling:newspaper
++recycling:newspapers
++recycling:printer_cartridges
++recycling:cardboard
++recycling:music
++recycling:paper
+-reycling:paper
++recycle:plastic_bottles
++recycle:paper
++recycle:magazines
++recycle:cardboard
++recycle:cans
++recycling:cans
++recycling:plastic_bottles
++recycline:cardboard
++recycle:glass_bottles
++recycling:cork
++recycling:glass
++recycling:plastic
++recycling:plastic_bags
++recycling:plasic_bottles
++recycling:scrap_metal
++recycling:white_goods
++recycling:wood
++recycling:tyres
++reference
++ref_direction
++reg_name
++reg_ref
++region_id
++religion
+-relgion
++residence
++residential
+-residentail
++restriction
+-restrction
+-Restriction
++restricted
++restrictions
+-Restrictions
+-Restrictions 
++riverwidth
++river_width
++road
++rollerblade
++roundabout
++route
++routing
++rue
++runway
++sat
++sculpture
++shape
++sheltered
++shortcut
++sidewalk
++sign
++single_track
++shop
++shopping
++size
++ski
++slope
++snowboarding
++some_data
++source:loc_name
++source:old_name
++source:old_ref
++source:name
+-source:Name
++source:ref
++source_ref
++source_ref:ref
++source_ref:name
++source:uri
++source_uri
++source:url
+-source_url
++source:oneway
++southglos:heritagetrail
++species
++speed
++speed_limit
++speed limit
++speedlimit
++speedevil
++sport
++sport_2
++sports
++stairs
++start_date
++state
++station
++stream
++street
++street_name
++steps
++subtype
++suburb
++suggested
++surface
+-sruface
++surfaced
++svg:font-size
++svg:stroke-width
++svg_font-size
++svg:stroke-dasharray
++swimming
++sym
++symbol
++symbolic
++tag
++taxi
++telephone
++telephone:operator
++telephone_number
++telephone_type
++test
++testing
++testnode
++ this was a children's playarea with a path leading through it. Didn't want to look too dodgy :)
++thoroughfare
++time_diff
++times
++tractor
++track
++tracktype_1
++to_zip
++todo
++TODO
++toll
++topspeed
++tourism
+-tourim
+-tourism 
+-toursim
+-touristm
++tourist
++tourist_attraction
++towards
++town
++towpath
++tracks
++traffic
++traffic_signals
++train
++tracktype
+-tractype
+-tracltype
+-trackype
++tram
++tramline
++true
++truck
++tube
++tune
++tunnel
+-tunne
+-tunnel 
+-Tunnel
+-tunel
+-tunnely
++turn_right
++typ
++type
+-tyoe
++type.en
++uk:row
++unclassified
++upload_tag
++uploader
++uploaded_by
++uri
++url
++use
++use_status
++utility
++vdop
++vehicle
++viaduct
++vicar
++view
++village
++visited_by
++voltage
++warning
++water
++waterfall
++wayclass
++waypoint
++web
++website
++website:official
++weight_limit
++wide
++width
++width_restriction
++wiki
++wikipedia
++wikipedia:es
++wiki:nl
++wrong
++www
++zip
++{}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ErrorTreeRenderer.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ErrorTreeRenderer.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ErrorTreeRenderer.java	(revision 2549)
@@ -0,0 +1,47 @@
+package org.openstreetmap.josm.plugins.validator;
+
+import java.awt.Component;
+
+import javax.swing.JTree;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeCellRenderer;
+
+import org.openstreetmap.josm.plugins.validator.util.MultipleNameVisitor;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Tree renderer for displaying errors
+ * @author frsantos
+ */
+public class ErrorTreeRenderer extends DefaultTreeCellRenderer 
+{
+    /** Serializable ID */
+    private static final long serialVersionUID = 5567632718124640198L;
+
+    @Override
+	public Component getTreeCellRendererComponent(JTree tree, Object value,
+			boolean selected, boolean expanded, boolean leaf, int row,
+			boolean hasFocus) 
+	{
+		super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
+		
+		DefaultMutableTreeNode node = (DefaultMutableTreeNode)value;
+		Object nodeInfo = node.getUserObject();		
+		
+		if (nodeInfo instanceof Severity) 
+		{
+			Severity s = (Severity)nodeInfo;
+			setIcon(ImageProvider.get("data", s.getIcon()));
+		}
+		else if (nodeInfo instanceof TestError) 
+		{
+			TestError error = (TestError)nodeInfo;
+			MultipleNameVisitor v = new MultipleNameVisitor();
+			v.visit(error.getPrimitives());
+			setText(v.getText());
+			setIcon(v.getIcon());
+		}
+
+		return this;
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/OSMValidatorPlugin.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/OSMValidatorPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/OSMValidatorPlugin.java	(revision 2549)
@@ -0,0 +1,160 @@
+package org.openstreetmap.josm.plugins.validator;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.openstreetmap.josm.plugins.validator.tests.*;
+import org.openstreetmap.josm.plugins.validator.util.Util;
+
+/**
+ * 
+ * A OSM data validator
+ * 
+ * @author Francisco R. Santos <frsantos@gmail.com>
+ */
+public class OSMValidatorPlugin extends Plugin 
+{
+    /** The validate action */
+    ValidateAction validateAction = new ValidateAction();
+    
+    /** The validation dialog */
+    ValidatorDialog validationDialog;
+    
+    /** The list of errors */
+    List<TestError> errors = new ArrayList<TestError>(30);
+
+    /** 
+     * All available tests 
+     * TODO: is there any way to find out automagically all available tests? 
+     */
+    public static Class[] allAvailableTests = new Class[]
+    { 
+    	DuplicateNode.class, 
+    	DuplicateSegment.class, 
+    	SingleNodeSegment.class, 
+    	TaggedSegment.class, 
+    	UnorderedWay.class, 
+    	SpellCheck.class,
+    	UntaggedNode.class, 
+    	OrphanSegment.class, 
+    };
+
+	/**
+	 * Creates the plugin, and starts the HTTP server
+	 */
+	public OSMValidatorPlugin()
+	{
+        initializeTests( getTests(true) );
+	}
+	
+    @Override
+	public PreferenceSetting getPreferenceSetting() 
+	{
+		return new PreferenceEditor();
+	}
+	
+	@Override
+	public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) 
+	{
+		if (newFrame != null)
+		{
+		    validationDialog = new ValidatorDialog();
+	        newFrame.addToggleDialog(validationDialog);
+		}
+	}
+
+	
+	/**
+	 * Utility method for classes that can't access the plugin directly
+	 * 
+	 * @return The plugin object
+	 */
+	public static OSMValidatorPlugin getPlugin() 
+	{
+		return (OSMValidatorPlugin)Util.getPlugin(OSMValidatorPlugin.class);
+	}
+	
+	/**
+	 * Gets a collection with the available tests
+	 * 
+	 * @param onlyActive if true, gets only active tests
+	 * @return A collection with the available tests
+	 */
+	public static Collection<Test> getTests(boolean onlyActive)
+	{
+		Map<String, Test> enabledTests = new LinkedHashMap<String, Test>();
+		for(Class<Test> testClass : getAllAvailableTests() )
+		{
+			Test test;
+			try {
+				test = testClass.newInstance();
+			}
+			catch( Exception e)
+			{
+				e.printStackTrace();
+				continue;
+			}
+			test.enabled = true;
+			enabledTests.put(testClass.getSimpleName(), test);
+		}
+
+		Pattern regexp = Pattern.compile("(\\w+)=(true|false),?");
+		Matcher m = regexp.matcher(Main.pref.get("tests"));
+		int pos = 0;
+		while( m.find(pos) )
+		{
+			String testName = m.group(1);
+			Test test = enabledTests.get(testName);
+			if( test != null )
+			{
+				test.enabled = Boolean.valueOf(m.group(2)).booleanValue();
+				if( onlyActive && !test.enabled)
+					enabledTests.remove(test.getClass().getSimpleName() );
+			}
+			pos = m.end();
+		}
+		return enabledTests.values();
+	}
+	
+    /**
+     * Gets the list of all available test classes
+     * 
+     * @return An array of the test classes
+     */
+    public static Class[] getAllAvailableTests()
+    {
+        return allAvailableTests;
+    }
+    
+	/**
+	 * Initializes all tests
+	 * @param allTests The tests to initialize
+	 */
+	public void initializeTests(Collection<Test> allTests)
+	{
+		for( Test test : allTests )
+		{
+			try
+			{
+				if( test.enabled )
+				{
+					test.getClass().getMethod("initialize", new Class[] { OSMValidatorPlugin.class} ).invoke(null, new Object[] {this});
+				}
+			} 
+			catch(Exception e) 
+			{
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(null, tr("Error initializing test {0}.", test.getClass().getSimpleName()));
+			}
+		}
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/PreferenceEditor.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/PreferenceEditor.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/PreferenceEditor.java	(revision 2549)
@@ -0,0 +1,85 @@
+package org.openstreetmap.josm.plugins.validator;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Collection;
+
+import javax.swing.*;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+import org.openstreetmap.josm.plugins.validator.util.Util;
+import org.openstreetmap.josm.plugins.validator.util.Util.Version;
+import org.openstreetmap.josm.tools.GBC;
+
+/**
+ * Preference settings for the validator plugin
+ * 
+ * @author frsantos
+ */
+public class PreferenceEditor implements PreferenceSetting
+{
+	/** The list of all tests */
+	private Collection<Test> allTests;
+
+    public void addGui(PreferenceDialog gui)
+    {
+		JPanel testPanel = new JPanel(new GridBagLayout());
+		testPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
+		
+		allTests = OSMValidatorPlugin.getTests(false);
+		for(final Test test: allTests) 
+		{
+			final JCheckBox testCheck = new JCheckBox(test.name, test.enabled);
+			testCheck.setToolTipText(test.description);
+			testPanel.add(testCheck, GBC.eop().insets(20,0,0,0));
+			test.addGui(testPanel);
+
+			testCheck.addActionListener(new ActionListener(){
+				public void actionPerformed(ActionEvent e) {
+					test.enabled = testCheck.isSelected();
+				}
+			});
+		}
+		
+		JScrollPane testPane = new JScrollPane(testPanel, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+		testPane.setBorder(null);
+
+		Version ver = Util.getVersion();
+		String description = tr("A OSM data validator that checks for common errors made by users and editor programs.");
+		if( ver != null )
+			description += "<br><br>" + tr("Version: {0}<br>Last change at {1}", ver.revision, ver.time);
+    	JPanel tab = gui.createPreferenceTab("validator", tr("Data validator"), description);
+		tab.add(testPane, GBC.eol().fill(GBC.BOTH));
+		tab.add(GBC.glue(0,10), GBC.eol());
+    }
+
+	public void ok() 
+	{
+		String tests = "";
+		
+		for (Test test : allTests)
+		{
+			boolean enabled = test.enabled;
+			String name = test.getClass().getSimpleName();
+			tests += name + "=" + enabled + ",";
+			
+			if (enabled)
+			{
+				test.ok();
+			}
+		}
+		
+		if (tests.endsWith(","))
+			tests = tests.substring(0, tests.length() - 1);
+		
+		OSMValidatorPlugin.getPlugin().initializeTests( allTests );
+		
+		Main.pref.put("tests", tests);
+	}
+
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/Severity.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/Severity.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/Severity.java	(revision 2549)
@@ -0,0 +1,46 @@
+package org.openstreetmap.josm.plugins.validator;
+
+/** The error severity */
+public enum Severity {
+	/** Error messages */
+	ERROR("Errors", "error.gif"),
+	/** Warning messages */ 
+	WARNING("Warnings", "warning.gif"), 
+	/** Other messages */ 
+	OTHER("Other", "other.gif"); 
+	
+	/** Description of the severity code */
+	private final String message;
+	
+	/** Associated icon */
+	private final String icon;
+
+	/**
+	 * Constructor
+	 * 
+	 * @param message Description
+	 * @param icon Associated icon
+	 */
+    Severity(String message, String icon) 
+    {
+        this.message = message;
+		this.icon = icon;
+    }
+
+	@Override
+	public String toString() 
+	{
+		return message;
+	}
+
+	/** 
+	 * Gets the associated icon
+	 * @return the associated icon
+	 */
+	public String getIcon() 
+	{
+		return icon;
+	}
+    
+    
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/Test.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/Test.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/Test.java	(revision 2549)
@@ -0,0 +1,118 @@
+package org.openstreetmap.josm.plugins.validator;
+
+import java.util.*;
+
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.data.osm.*;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+/**
+ * Parent class for all validation tests.
+ * <p>
+ * A test is a primitive visitor, so that it can access to all data to be
+ * validated. These primitives are always visited in the same order: nodes
+ * first, then segments, and ways last.
+ * 
+ * @author frsantos
+ */
+public class Test implements Visitor
+{
+	/** Name of the test */
+	protected String name;
+	
+	/** Description of the test */
+	protected String description;
+	
+	/** Whether this test is enabled. Used by peferences */
+	protected boolean enabled;
+
+	/** The list of errors */
+	protected List<TestError> errors = new ArrayList<TestError>(30);
+
+	/**
+	 * Constructor
+	 * @param name Name of the test
+	 * @param description Description of the test
+	 */
+	public Test(String name, String description)
+	{
+		this.name = name;
+		this.description = description;
+	}
+	
+	/**
+	 * Constructor
+	 * @param name Name of the test
+	 */
+	public Test(String name)
+	{
+		this.name = name;
+	}
+	
+	/**
+	 * Initializes any global data used this tester.
+	 * @param plugin The plugin
+	 * @throws Exception When cannot initialize the test
+	 */ 
+	public static void initialize(@SuppressWarnings("unused") OSMValidatorPlugin plugin) throws Exception {}
+	
+	/**
+	 * Notification of the start of the test. The tester can initialize the
+	 * structures it may need for this test
+	 */ 
+	public void startTest() 
+	{
+		errors = new ArrayList<TestError>(30);
+	}
+	
+	/**
+	 * Gets the validation errors accumulated until this moment.
+	 * @return The list of errors 
+	 */
+	public List<TestError> getErrors() 
+	{
+		return errors;
+	}
+	
+	/**
+	 * Notification of the end of the test. The tester may perform additional
+	 * actions and destroy the used structures 
+	 */
+	public void endTest() {}
+
+    /**
+     * Visits all primitives to be tested. These primitives are always visited
+     * in the same order: nodes first, then segments, and ways last.
+     * 
+     * @param selection The primitives to be tested
+     */
+    public void visit(Collection<OsmPrimitive> selection) 
+    {
+        for (OsmPrimitive p : selection)
+        {
+            p.visit(this);
+        }
+    }
+
+    public void visit(Node n) {}
+
+	public void visit(Segment s) {}
+
+	public void visit(Way w) {}
+
+	/**
+	 * Allow the tester to manage its own preferences 
+	 * @param testPanel The panel to add any preferences component
+	 */
+	public void addGui(@SuppressWarnings("unused") JPanel testPanel) 
+	{
+	}
+
+	/**
+	 * Called when the used submits the preferences
+	 */
+	public void ok() 
+	{
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/TestError.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/TestError.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/TestError.java	(revision 2549)
@@ -0,0 +1,112 @@
+package org.openstreetmap.josm.plugins.validator;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+/**
+ * Validation error
+ * @author frsantos
+ */
+public class TestError
+{
+	/** Severity */
+	private Severity severity;
+	/** The error message */
+	private String message;
+	/** The affected primitives */
+	private List<? extends OsmPrimitive> primitives;
+	
+	/**
+	 * Constructor
+	 */
+	public TestError()
+	{
+	}
+
+	/**
+	 * Constructor
+	 * @param severity The severity of this error
+	 * @param message The error message
+	 * @param primitives The affected primitives
+	 */
+	public TestError(Severity severity, String message, List<? extends OsmPrimitive> primitives)
+	{
+		this.severity = severity;
+		this.message = message;
+		this.primitives = primitives;
+	}
+	
+	/**
+	 * Constructor
+	 * @param severity The severity of this error
+	 * @param message The error message
+	 * @param primitive The affected primitive
+	 */
+	public TestError(Severity severity, String message, OsmPrimitive primitive)
+	{
+		this.severity = severity;
+		this.message = message;
+		
+		List<OsmPrimitive> primitives = new ArrayList<OsmPrimitive>();
+		primitives.add(primitive);
+		
+		this.primitives = primitives;
+	}
+	
+	/**
+	 * Gets the error message
+	 * @return the error message
+	 */
+	public String getMessage() 
+	{
+		return message;
+	}
+	
+	/**
+	 * Sets the error message
+	 * @param message The error message
+	 */
+	public void setMessage(String message) 
+	{
+		this.message = message;
+	}
+	
+	/**
+	 * Gets the list of primitives affected by this error 
+	 * @return the list of primitives affected by this error
+	 */
+	public List<? extends OsmPrimitive> getPrimitives() 
+	{
+		return primitives;
+	}
+
+	/**
+	 * Sets the list of primitives affected by this error 
+	 * @param primitives the list of primitives affected by this error
+	 */
+
+	public void setPrimitives(List<OsmPrimitive> primitives) 
+	{
+		this.primitives = primitives;
+	}
+
+	/**
+	 * Gets the severity of this error
+	 * @return the severity of this error
+	 */
+	public Severity getSeverity() 
+	{
+		return severity;
+	}
+
+	/**
+	 * Sets the severity of this error
+	 * @param severity the severity of this error
+	 */
+	public void setSeverity(Severity severity) 
+	{
+		this.severity = severity;
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidateAction.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidateAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidateAction.java	(revision 2549)
@@ -0,0 +1,64 @@
+package org.openstreetmap.josm.plugins.validator;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.plugins.validator.util.AgregatePrimitivesVisitor;
+
+/**
+ * The action that does the validate thing.
+ * <p>
+ * This action iterates through all active tests and give them the data, so that
+ * each one can test it.
+ * 
+ * @author frsantos
+ */
+public class ValidateAction extends JosmAction 
+{
+	/** Serializable ID */
+    private static final long serialVersionUID = -2304521273582574603L;
+
+    /**
+	 * Constructor
+	 */
+	public ValidateAction()
+	{
+		super("Validation", "validator", "Performs the data validation", KeyEvent.VK_V, KeyEvent.CTRL_DOWN_MASK + KeyEvent.ALT_MASK, true);
+	}
+
+	public void actionPerformed(ActionEvent ev)
+	{
+		OSMValidatorPlugin plugin = OSMValidatorPlugin.getPlugin();
+		plugin.errors = new ArrayList<TestError>();
+		plugin.validationDialog.setVisible(true);
+		
+		Collection<Test> tests = OSMValidatorPlugin.getTests(true);
+		if( tests.isEmpty() )
+			return;
+		
+		Collection<OsmPrimitive> selection = Main.ds.getSelected();
+		if( selection.isEmpty() )
+			selection = Main.ds.allNonDeletedPrimitives();
+		else
+		{
+			AgregatePrimitivesVisitor v = new AgregatePrimitivesVisitor();
+			selection = v.visit(selection);
+		}
+
+		for(Test test : tests) 
+        {
+		    test.startTest();
+		    test.visit(selection);
+			test.endTest();
+			plugin.errors.addAll( test.getErrors() );
+		}
+		tests = null;
+		
+		plugin.validationDialog.refresh();
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidatorDialog.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidatorDialog.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidatorDialog.java	(revision 2549)
@@ -0,0 +1,214 @@
+package org.openstreetmap.josm.plugins.validator;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.BorderLayout;
+import java.awt.GridLayout;
+import java.awt.event.*;
+import java.util.*;
+import java.util.Map.Entry;
+
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.tree.*;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
+import org.openstreetmap.josm.plugins.validator.util.Bag;
+import org.openstreetmap.josm.plugins.validator.util.Util;
+
+/**
+ * A small tool dialog for displaying the current selection. The selection manager
+ * respects clicks into the selection list. Ctrl-click will remove entries from
+ * the list while single click will make the clicked entry the only selection.
+ *
+ * @author imi
+ */
+public class ValidatorDialog extends ToggleDialog implements ActionListener
+{
+    /** Serializable ID */
+    private static final long serialVersionUID = 2952292777351992696L;
+
+    /**
+     * The validation data.
+     */
+	private DefaultTreeModel treeModel = new DefaultTreeModel(new DefaultMutableTreeNode());
+
+	/**
+     * The display tree.
+     */
+    protected JTree tree = new JTree(treeModel);
+    
+
+    /**
+     * Constructor
+     */
+    public ValidatorDialog() 
+    {
+        super(tr("Validation errors"), "validator", tr("Open the validation window."), KeyEvent.VK_V, 150);
+        
+		tree.setRootVisible(false);
+		tree.setShowsRootHandles(true);
+		tree.expandRow(0);
+		tree.setVisibleRowCount(8);
+		tree.addMouseListener(new DblClickWatch());
+		tree.setCellRenderer(new ErrorTreeRenderer());
+		tree.getSelectionModel().setSelectionMode(TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);
+
+		add(new JScrollPane(tree), BorderLayout.CENTER);
+
+        JPanel buttonPanel = new JPanel(new GridLayout(1,2));
+
+        buttonPanel.add(Util.createButton("Select", "mapmode/selection/select", "Set the selected elements on the map to the selected items in the list above.", this)); 
+        add(buttonPanel, BorderLayout.SOUTH);
+        buttonPanel.add(Util.createButton("Validate", "dialogs/refresh", "Validate the data.", this)); 
+        add(buttonPanel, BorderLayout.SOUTH);
+    }
+
+    @Override 
+    public void setVisible(boolean v) {
+		if (v)
+			buildTree();
+		else if (tree != null)
+			treeModel.setRoot(new DefaultMutableTreeNode());
+		if( action != null && action.button != null )
+			action.button.setSelected(v);
+		super.setVisible(v);
+	}
+    
+    
+	/**
+	 * Builds the errors tree
+	 */
+	private void buildTree() 
+	{
+		DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode();
+
+		List<TestError> errorList = OSMValidatorPlugin.getPlugin().errors;
+		if( errorList == null || errorList.isEmpty() )
+		{
+			treeModel.setRoot(rootNode);
+			return;
+		}
+		
+		Map<Severity, Bag<String, TestError>> errorTree = new HashMap<Severity, Bag<String, TestError>>();
+		for(Severity s : Severity.values())
+		{
+			errorTree.put(s, new Bag<String, TestError>(20));
+		}
+		
+		for(TestError e : errorList)
+		{
+			errorTree.get(e.getSeverity()).add(e.getMessage(), e);
+		}
+		
+		for(Severity s : Severity.values())
+		{
+			Bag<String,	TestError> severityErrors = errorTree.get(s);
+			if( severityErrors.isEmpty() )
+				continue;
+			
+			// Severity node
+			DefaultMutableTreeNode severityNode = new DefaultMutableTreeNode(s);
+			rootNode.add(severityNode);
+			
+			for(Entry<String, List<TestError>> msgErrors : severityErrors.entrySet()  )
+			{
+				// Message node
+				List<TestError> errors = msgErrors.getValue();
+				String msg = msgErrors.getKey() + " (" + errors.size() + ")";
+				DefaultMutableTreeNode messageNode = new DefaultMutableTreeNode(msg);
+				severityNode.add(messageNode);
+				
+				for (TestError error : errors) 
+				{
+					// Error node
+					DefaultMutableTreeNode errorNode = new DefaultMutableTreeNode(error);
+					messageNode.add(errorNode);
+				}
+			}
+		}
+
+		treeModel.setRoot(rootNode);
+		tree.scrollRowToVisible(treeModel.getChildCount(rootNode)-1);
+	}
+	
+    /**
+     * Sets the selection of the map to the current selected items.
+     */
+    @SuppressWarnings("unchecked")
+    public void setSelectedItems() 
+    {
+        Collection<OsmPrimitive> sel = new HashSet<OsmPrimitive>(40);
+
+        TreePath[] selectedPaths = tree.getSelectionPaths();
+        for( TreePath path : selectedPaths)
+        {
+        	DefaultMutableTreeNode node = (DefaultMutableTreeNode)path.getLastPathComponent();
+    		Enumeration<DefaultMutableTreeNode> children = node.breadthFirstEnumeration();
+    		while( children.hasMoreElements() )
+    		{
+        		DefaultMutableTreeNode childNode = children.nextElement();
+        		Object nodeInfo = childNode.getUserObject();
+        		if( nodeInfo instanceof TestError)
+        		{
+        			TestError error = (TestError)nodeInfo;
+        			sel.addAll( error.getPrimitives() );
+        		}
+    		}
+        }
+        Main.ds.setSelected(sel);
+    }
+
+	public void actionPerformed(ActionEvent e) 
+	{
+		if( e.getActionCommand().equals("Select"))
+			setSelectedItems();
+		else if( e.getActionCommand().equals("Validate"))
+	    	OSMValidatorPlugin.getPlugin().validateAction.actionPerformed(e);
+	}
+	
+	/**
+	 * Refresh the error messages display
+	 */
+	public void refresh()
+	{
+		buildTree();
+	}
+	
+	/**
+	 * Watches for double clicks and from editing or new property, depending on the
+	 * location, the click was.
+	 * @author imi
+	 */
+	public class DblClickWatch extends MouseAdapter 
+	{
+        @SuppressWarnings("unchecked")
+        @Override 
+		public void mouseClicked(MouseEvent e) 
+		{
+			if (e.getClickCount() < 2 || e.getSource() instanceof JScrollPane)
+				return;
+			else 
+			{
+		        Collection<OsmPrimitive> sel = new HashSet<OsmPrimitive>(40);
+
+	        	DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
+	    		Enumeration<DefaultMutableTreeNode> children = node.breadthFirstEnumeration();
+	    		while( children.hasMoreElements() )
+	    		{
+	        		DefaultMutableTreeNode childNode = children.nextElement();
+	        		Object nodeInfo = childNode.getUserObject();
+	        		if( nodeInfo instanceof TestError)
+	        		{
+	        			TestError error = (TestError)nodeInfo;
+	        			sel.addAll( error.getPrimitives() );
+	        		}
+	    		}
+	    		Main.ds.setSelected(sel);
+			}
+		}
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/DuplicateNode.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/DuplicateNode.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/DuplicateNode.java	(revision 2549)
@@ -0,0 +1,57 @@
+package org.openstreetmap.josm.plugins.validator.tests;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.List;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.plugins.validator.Severity;
+import org.openstreetmap.josm.plugins.validator.Test;
+import org.openstreetmap.josm.plugins.validator.TestError;
+import org.openstreetmap.josm.plugins.validator.util.Bag;
+/**
+ * Tests if there are duplicate nodes
+ * 
+ * @author frsantos
+ */
+public class DuplicateNode extends Test 
+{
+	/** Bag of all nodes */
+	Bag<LatLon, Node> nodes;
+	
+	/**
+	 * Constructor
+	 */
+	public DuplicateNode() 
+	{
+		super(tr("Duplicated nodes."),
+			  tr("This test checks that there are no nodes at the very same location."));
+	}
+
+
+	@Override
+	public void startTest() 
+	{
+		nodes = new Bag<LatLon, Node>(1000);
+	}
+
+	@Override
+	public void endTest() 
+	{
+		for(List<Node> duplicated : nodes.values() )
+		{
+			if( duplicated.size() > 1)
+			{
+				errors.add( new TestError(Severity.ERROR, tr("Duplicated nodes"), duplicated) );
+			}
+		}
+		nodes = null;
+	}
+
+	@Override
+	public void visit(Node n) 
+	{
+		nodes.add(n.coor, n);
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/DuplicateSegment.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/DuplicateSegment.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/DuplicateSegment.java	(revision 2549)
@@ -0,0 +1,97 @@
+package org.openstreetmap.josm.plugins.validator.tests;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.List;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.plugins.validator.Severity;
+import org.openstreetmap.josm.plugins.validator.Test;
+import org.openstreetmap.josm.plugins.validator.TestError;
+import org.openstreetmap.josm.plugins.validator.util.Bag;
+/**
+ * Tests if there are duplicate segments
+ * 
+ * @author frsantos
+ */
+public class DuplicateSegment extends Test 
+{
+	/** Bag of all segments */
+	Bag<CompoundLatLon, Segment> segments;
+	
+	/**
+	 * Constructor
+	 */
+	public DuplicateSegment() 
+	{
+		super(tr("Duplicated segments."),
+			  tr("This test checks that two nodes are not used by more than one segment."));
+		
+	}
+
+
+	@Override
+	public void startTest() 
+	{
+		segments = new Bag<CompoundLatLon, Segment>(1000);
+	}
+
+	@Override
+	public void endTest() 
+	{
+		for(List<Segment> duplicated : segments.values() )
+		{
+			if( duplicated.size() > 1)
+			{
+				errors.add( new TestError(Severity.ERROR, tr("Duplicated segments"), duplicated) );
+			}
+		}
+		segments = null;
+	}
+
+	@Override
+	public void visit(Segment s) 
+	{
+		if( !s.incomplete ) segments.add( new CompoundLatLon(s), s);
+	}
+	
+	/**
+	 * Compound LatLong for easy duplicity check
+	 * @author frsantos
+	 */
+	class CompoundLatLon
+	{
+		/** From position */
+		LatLon from;
+		/** To position */
+		LatLon to;
+		
+		/**
+		 * Constructor
+		 * @param s The segment
+		 */
+		public CompoundLatLon(Segment s)
+		{
+			this.from = s.from.coor;
+			this.to = s.to.coor;
+		}
+
+		@Override
+		public boolean equals(Object obj) 
+		{
+			if (obj == null || getClass() != obj.getClass() )
+				return super.equals(obj);
+			
+			CompoundLatLon other = (CompoundLatLon)obj;
+			return from.equals(other.from) && to.equals(other.to) ||
+				   to.equals(other.from) && from.equals(other.to);
+		}
+
+		@Override
+		public int hashCode() 
+		{
+			return from.hashCode() + to.hashCode();
+		}
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/OrphanSegment.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/OrphanSegment.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/OrphanSegment.java	(revision 2549)
@@ -0,0 +1,61 @@
+package org.openstreetmap.josm.plugins.validator.tests;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.plugins.validator.Severity;
+import org.openstreetmap.josm.plugins.validator.Test;
+import org.openstreetmap.josm.plugins.validator.TestError;
+
+/**
+ * Check that every segment is in a way
+ * 
+ * @author frsantos
+ */
+public class OrphanSegment extends Test 
+{
+	/** Bag of all nodes */
+	Set<Segment> segments;
+	
+	/**
+	 * Constructor
+	 */
+	public OrphanSegment() 
+	{
+		super(tr("Orphaned segments."),
+		      tr("This test checks that every segment is in a way."));
+	}
+
+
+	@Override
+	public void startTest() 
+	{
+		segments = new HashSet<Segment>(1000);
+	}
+
+	@Override
+	public void endTest() 
+	{
+		for(Segment segment : segments )
+		{
+			errors.add( new TestError(Severity.OTHER, tr("Segments not in a way"), segment) );
+		}
+		segments = null;
+	}
+
+	@Override
+	public void visit(Segment s) 
+	{
+		segments.add(s);
+	}
+	
+	@Override
+	public void visit(Way w) 
+	{
+		segments.removeAll(w.segments);
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/SingleNodeSegment.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/SingleNodeSegment.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/SingleNodeSegment.java	(revision 2549)
@@ -0,0 +1,36 @@
+package org.openstreetmap.josm.plugins.validator.tests;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.plugins.validator.Severity;
+import org.openstreetmap.josm.plugins.validator.Test;
+import org.openstreetmap.josm.plugins.validator.TestError;
+
+/**
+ * Checks that from/to nodes in a segment are different
+ * 
+ * @author frsantos
+ */
+public class SingleNodeSegment extends Test 
+{
+	/** Tags allowed in a segment */
+	public static String[] allowedTags = new String[] { "created_by" };
+	/**
+	 * Constructor
+	 */
+	public SingleNodeSegment() 
+	{
+		super(tr("Single node segments."),
+			  tr("This test checks that there are no segments with the same node as start and destination."));
+	}
+
+	@Override
+	public void visit(Segment s) 
+	{
+		if( !s.incomplete && s.from.equals(s.to) )
+		{
+			errors.add( new TestError(Severity.ERROR, tr("Single node segments"), s) );
+		}
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/SpellCheck.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/SpellCheck.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/SpellCheck.java	(revision 2549)
@@ -0,0 +1,281 @@
+package org.openstreetmap.josm.plugins.validator.tests;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.*;
+import java.net.URL;
+import java.util.*;
+import java.util.Map.Entry;
+
+import javax.swing.JCheckBox;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.*;
+import org.openstreetmap.josm.gui.annotation.AnnotationPreset;
+import org.openstreetmap.josm.gui.annotation.AnnotationPreset.*;
+import org.openstreetmap.josm.gui.preferences.AnnotationPresetPreference;
+import org.openstreetmap.josm.plugins.validator.*;
+import org.openstreetmap.josm.plugins.validator.util.Bag;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.XmlObjectParser;
+import org.xml.sax.SAXException;
+
+/**
+ * Check for mispelled properties
+ * 
+ * @author frsantos
+ */
+public class SpellCheck extends Test 
+{
+	/** The spell check key substitutions: the key should be substituted by the value */
+	protected static Map<String, String> spellCheckKeyData;
+
+	/** The spell check preset values */
+	protected static Bag<String, String> spellCheckValueData;
+	
+	/** Preference name for checking values */
+	public static final String PREF_CHECK_VALUES = "tests." + SpellCheck.class.getSimpleName() + ".checkValues";
+	
+	/** Whether to check values too */
+	protected boolean checkValues = false;
+
+	/** Preferences checkbox */
+	protected JCheckBox prefCheckValues;
+
+	/**
+	 * Constructor
+	 */
+	public SpellCheck() 
+	{
+		super(tr("Spell checker."),
+			  tr("This plugin checks misspelled property keys and values."));
+	}
+
+	public static void initialize(OSMValidatorPlugin plugin) throws Exception
+	{
+		initializeSpellCheck(plugin);
+		initializePresets(plugin);
+	}
+
+	/**
+	 * Reads the spellcheck file into a HashMap.
+	 * <p>
+	 * The data file is a list of words, beginning with +/-. If it starts with +,
+	 * the word is valid, but if it starts with -, the word should be replaced
+	 * by the nearest + word before this.
+	 * 
+	 * @param plugin The validator plugin 
+	 * @throws FileNotFoundException 
+	 * @throws IOException 
+	 */
+	private static void initializeSpellCheck(OSMValidatorPlugin plugin) throws FileNotFoundException, IOException 
+	{
+		plugin.copy("/resources/spellCheck.data", "spellCheck.data");
+		BufferedReader reader = new BufferedReader( new FileReader(plugin.getPluginDir() + "/spellCheck.data") );
+		
+		spellCheckKeyData = new HashMap<String, String>();
+		String okValue = null;
+		do
+		{
+			String line = reader.readLine();
+			if( line == null || line.length() == 0 )
+				break;
+
+			if( line.charAt(0) == '+' )
+			{
+				okValue = line.substring(1);
+			}
+			else if( line.charAt(0) == '-' && okValue != null )
+			{
+				spellCheckKeyData.put(line.substring(1), okValue);
+			}
+			else
+			{
+				System.err.println("Invalid spellcheck line:" + line);
+			}
+		}
+		while( true );
+	}
+	
+	/**
+	 * Reads the presets data.
+	 * 
+	 * @param plugin The validator plugin
+	 * @throws Exception
+	 */
+	public static void initializePresets(@SuppressWarnings("unused") OSMValidatorPlugin plugin) throws Exception
+	{
+		if( Main.pref.getBoolean(PREF_CHECK_VALUES) )
+			return;
+		
+		Collection<AnnotationPreset> presets = AnnotationPresetPreference.annotationPresets;
+		if( presets == null || presets.isEmpty() )
+		{
+			// Skip re-reading presets if there are none available
+			return;
+		}
+		
+		spellCheckValueData = new Bag<String, String>();
+		readPresetFromPreferences();
+		
+		// TODO: allow per user word definitions
+	}
+	
+	
+	@Override
+	public void visit(Node n)
+	{
+		checkPrimitive(n);
+	}
+
+
+	@Override
+	public void visit(Segment s) 
+	{
+		checkPrimitive(s);
+	}
+
+
+	@Override
+	public void visit(Way w) 
+	{
+		checkPrimitive(w);
+	}
+	
+	/**
+	 * Checks the spelling of the primitive properties
+	 * @param p The primitive to check
+	 */
+	private void checkPrimitive(OsmPrimitive p)
+	{
+	    // Just a collection to know if a primitive has been already marked with error
+        Bag<OsmPrimitive, String> withErrors = new Bag<OsmPrimitive, String>();
+        
+        Map<String, String> props = (p.keys == null) ? Collections.<String, String>emptyMap() : p.keys;
+		for(Entry<String, String> prop: props.entrySet() )
+		{
+			String key = prop.getKey();
+			String value = prop.getValue();
+			if( (value==null || value.trim().length() == 0) && !withErrors.contains(p, "EV"))
+			{
+				errors.add( new TestError(Severity.WARNING, tr("Tags with empty value"), p) );
+				withErrors.add(p, "EV");
+			}
+			if( spellCheckKeyData.containsKey(key) && !withErrors.contains(p, "IPK"))
+			{
+				errors.add( new TestError(Severity.WARNING, tr("Invalid property key"), p) );
+				withErrors.add(p, "IPK");
+			}
+			if( checkValues && value != null && value.length() > 0 )
+			{
+				List<String> values = spellCheckValueData.get(key);
+				if( values != null && !values.contains(prop.getValue()) && !withErrors.contains(p, "UPV"))
+				{
+					errors.add( new TestError(Severity.OTHER, tr("Unknown property value"), p) );
+					withErrors.add(p, "UPV");
+				}
+			}
+		}
+	}
+	
+	/**
+	 * Parse an anotation preset from a stream
+	 * 
+	 * @param inStream The stream of the anotstion preset
+	 * @throws SAXException
+	 */
+	public static void readPresets(InputStream inStream) throws SAXException 
+	{
+		BufferedReader in = null;
+		try 
+		{
+			in = new BufferedReader(new InputStreamReader(inStream, "UTF-8"));
+		} 
+		catch (UnsupportedEncodingException e) 
+		{
+			e.printStackTrace();
+			in = new BufferedReader(new InputStreamReader(inStream));
+		}
+		
+		XmlObjectParser parser = new XmlObjectParser();
+		parser.mapOnStart("item", AnnotationPreset.class);
+		parser.map("text", Text.class);
+		parser.map("check", Check.class);
+		parser.map("combo", Combo.class);
+		parser.map("label", Label.class);
+		parser.map("key", Key.class);
+		parser.start(in);
+		
+		while(parser.hasNext()) 
+		{
+			Object obj = parser.next();
+			if (obj instanceof Combo) {
+				Combo combo = (Combo)obj;
+				for(String value :  combo.values.split(",") )
+					spellCheckValueData.add(combo.key, value);
+			}
+		}
+	}
+
+	/**
+	 * Reads the annotations presets
+	 */
+	public static void readPresetFromPreferences() 
+	{
+		String allAnnotations = Main.pref.get("annotation.sources");
+		StringTokenizer st = new StringTokenizer(allAnnotations, ";");
+		while (st.hasMoreTokens()) 
+		{
+			InputStream in = null;
+			String source = st.nextToken();
+			try 
+			{
+				if (source.startsWith("http") || source.startsWith("ftp") || source.startsWith("file"))
+					in = new URL(source).openStream();
+				else if (source.startsWith("resource://"))
+					in = Main.class.getResourceAsStream(source.substring("resource:/".length()));
+				else
+					in = new FileInputStream(source);
+				readPresets(in);
+				in.close();
+			} 
+			catch (IOException e) 
+			{
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(Main.parent, tr("Could not read annotation preset source: {0}",source));
+			} 
+			catch (SAXException e) 
+			{
+				e.printStackTrace();
+				JOptionPane.showMessageDialog(Main.parent, tr("Error parsing {0}: ", source)+e.getMessage());
+			}
+		}
+	}
+
+	@Override
+	public void startTest() 
+	{
+		checkValues = Main.pref.getBoolean("tests." + getClass().getSimpleName() + ".checkValues");
+	}
+
+	@Override
+	public void addGui(JPanel testPanel)
+	{
+		boolean checkValues = Main.pref.getBoolean(PREF_CHECK_VALUES);
+		
+		String text = tr("Check also property values from presets");
+		prefCheckValues = new JCheckBox(text, checkValues);
+		prefCheckValues.setToolTipText(text);
+		testPanel.add(prefCheckValues, GBC.eop().insets(40,0,0,0));
+	}
+
+	@Override
+	public void ok() 
+	{
+		Main.pref.put(PREF_CHECK_VALUES, prefCheckValues.isSelected());
+	}
+}
+	
+	
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/TaggedSegment.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/TaggedSegment.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/TaggedSegment.java	(revision 2549)
@@ -0,0 +1,47 @@
+package org.openstreetmap.josm.plugins.validator.tests;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.Map;
+
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.plugins.validator.Severity;
+import org.openstreetmap.josm.plugins.validator.Test;
+import org.openstreetmap.josm.plugins.validator.TestError;
+
+/**
+ * Check if a segment has tags
+ * 
+ * @author frsantos
+ */
+public class TaggedSegment extends Test 
+{
+	/** Tags allowed in a segment */
+	public static String[] allowedTags = new String[] { "created_by", "converted_by", "source" };
+	
+	/**
+	 * Constructor
+	 */
+	public TaggedSegment() 
+	{
+		super(tr("Tagged segments"),
+			  tr("This test checks that no segment segment is tagged. Only ways should be tagged."));
+	}
+
+	@Override
+	public void visit(Segment s) 
+	{
+		Map<String, String> tags = s.keys;
+		if( tags == null )
+			return;
+		
+		int numAllowedTags = 0;
+		for( String tag : allowedTags)
+			if( tags.containsKey(tag) ) numAllowedTags++;
+		
+		if( tags.size() - numAllowedTags > 0 )
+		{
+			errors.add( new TestError(Severity.WARNING, tr("Segments with tags"), s) );
+		}
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UnorderedWay.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UnorderedWay.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UnorderedWay.java	(revision 2549)
@@ -0,0 +1,41 @@
+package org.openstreetmap.josm.plugins.validator.tests;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.plugins.validator.Severity;
+import org.openstreetmap.josm.plugins.validator.Test;
+import org.openstreetmap.josm.plugins.validator.TestError;
+
+/**
+ * Check for unordered ways
+ * 
+ * @author frsantos
+ */
+public class UnorderedWay extends Test 
+{
+	/**
+	 * Constructor
+	 */
+	public UnorderedWay() 
+	{
+		super(tr("Unordered ways."),
+			  tr("This test checks that all segments in a way are properly ordered."));
+	}
+
+	@Override
+	public void visit(Way w) 
+	{
+		Segment last = null;
+		for(Segment s: w.segments)
+		{
+			if( last != null && !last.incomplete && !s.incomplete && !last.to.equals(s.from) )
+			{
+				errors.add( new TestError(Severity.WARNING, tr("Unordered ways"), w) );
+				break;
+			}
+			last = s;
+		}
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UntaggedNode.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UntaggedNode.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/UntaggedNode.java	(revision 2549)
@@ -0,0 +1,76 @@
+package org.openstreetmap.josm.plugins.validator.tests;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Segment;
+import org.openstreetmap.josm.plugins.validator.Severity;
+import org.openstreetmap.josm.plugins.validator.Test;
+import org.openstreetmap.josm.plugins.validator.TestError;
+/**
+ * Checks for untagged nodes that are in no segment
+ * 
+ * @author frsantos
+ */
+public class UntaggedNode extends Test 
+{
+	/** Tags allowed in a segment */
+	public static String[] allowedTags = new String[] { "created_by" };
+	
+	/** Bag of all nodes */
+	Set<Node> emptyNodes;
+
+	/**
+	 * Constructor
+	 */
+	public UntaggedNode() 
+	{
+		super(tr("Untagged nodes."),
+			  tr("This test checks for untagged nodes that are not part of any segment."));
+	}
+
+	@Override
+	public void startTest() 
+	{
+		emptyNodes = new HashSet<Node>(100);
+	}
+	
+	@Override
+	public void visit(Node n) 
+	{
+		int numTags = 0;
+		Map<String, String> tags = n.keys;
+		if( tags != null )
+		{
+			numTags = tags.size();
+			for( String tag : allowedTags)
+				if( tags.containsKey(tag) ) numTags--;
+		}
+		
+		if( numTags == 0 )
+		{
+			emptyNodes.add(n);
+		}
+	}
+	
+	@Override
+	public void visit(Segment s) 
+	{
+		emptyNodes.remove(s.from);
+		emptyNodes.remove(s.to);
+	}
+	
+	@Override
+	public void endTest() 
+	{
+		for(Node node : emptyNodes)
+		{
+			errors.add( new TestError(Severity.OTHER, tr("Untagged and unconnected nodes"), node) );
+		}
+		emptyNodes = null;
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/AgregatePrimitivesVisitor.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/AgregatePrimitivesVisitor.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/AgregatePrimitivesVisitor.java	(revision 2549)
@@ -0,0 +1,90 @@
+package org.openstreetmap.josm.plugins.validator.util;
+
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.TreeSet;
+
+import org.openstreetmap.josm.data.osm.*;
+import org.openstreetmap.josm.data.osm.visitor.Visitor;
+
+/**
+ * A visitor that aggregates all primitives it visits.
+ * <p>
+ * The primitives are sorted according to their tyep: first Nodes, then
+ * Segments, and Ways last.
+ * 
+ * @author frsantos
+ */
+public class AgregatePrimitivesVisitor implements Visitor
+{
+	/** Aggregated data */
+	Collection<OsmPrimitive> aggregatedData;
+
+	/**
+	 * Constructor
+	 */
+	public AgregatePrimitivesVisitor() 
+	{
+		aggregatedData = new TreeSet<OsmPrimitive>( new PrimitiveComparator());
+	}
+
+	/**
+	 * Visits a collection of primitives 
+	 * @param data The collection of primitives 
+	 * @return The aggregated primitives
+	 */
+	public Collection<OsmPrimitive> visit(Collection<OsmPrimitive> data) 
+	{
+		for (OsmPrimitive osm : data) 
+		{
+			osm.visit(this);
+		}
+		
+		return aggregatedData;
+	}
+
+	public void visit(Node n) 
+	{
+		aggregatedData.add(n);
+	}
+
+	public void visit(Segment s) 
+	{
+		aggregatedData.add(s);
+		if( s.from != null ) visit(s.from);
+		if( s.to != null )   visit(s.to);
+	}
+
+	public void visit(Way w) 
+	{
+		aggregatedData.add(w);
+		for(Segment s : w.segments)
+			visit(s);
+	}
+
+	/**
+	 * A comparator that orders Nodes first, then Segments and Ways last.
+	 * 
+	 * @author frsantos
+	 */
+	class PrimitiveComparator implements Comparator<OsmPrimitive>
+	{
+		public int compare(OsmPrimitive o1, OsmPrimitive o2) 
+		{
+			if( o1 instanceof Node)
+			{
+				return o2 instanceof Node ? o1.compareTo(o2) : -1;
+			}
+			else if( o1 instanceof Way)
+			{
+				return o2 instanceof Way ? o1.compareTo(o2) : 1;
+			}
+			else // o1 is a segment
+			{
+				if( o2 instanceof Node ) return 1;
+				if( o2 instanceof Way ) return -1;
+				return o1.compareTo(o2);
+			}
+		}
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/Bag.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/Bag.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/Bag.java	(revision 2549)
@@ -0,0 +1,78 @@
+package org.openstreetmap.josm.plugins.validator.util;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 
+ * A very simple bag to store multiple occurences of a same key.
+ * <p>
+ * The bag will keep, for each key, a list of values.
+ * 
+ * @author frsantos
+ *
+ * @param <K> The key class
+ * @param <V> The value class
+ */
+public class Bag<K,V> extends HashMap<K, List<V>> 
+{
+    /** Serializable ID */
+    private static final long serialVersionUID = 5374049172859211610L;
+
+    /**
+	 * Returns the list of elements with the same key
+	 * @param key The key to obtain the elements
+	 * @return the list of elements with the same key
+	 */
+	public List<V> get(K key) 
+	{
+		return super.get(key);
+	}
+
+	/**
+	 * Adds an element to the bag
+	 * @param key The key of the element
+	 * @param value The element to add
+	 */
+	public void add(K key, V value) 
+	{
+		List<V> values = get(key);
+		if( values == null )
+		{
+			values = new ArrayList<V>();
+			put(key, values);
+		}
+		values.add(value);
+	}
+
+	/**
+	 * Constructor
+	 */
+	public Bag() 
+	{
+		super();
+	}
+
+	/**
+	 * Constructor
+	 * 
+	 * @param initialCapacity The initial capacity
+	 */
+	public Bag(int initialCapacity) 
+	{
+		super(initialCapacity);
+	}
+
+	/**
+	 * Returns true if the bag contains a value for a key
+	 * @param key The key
+	 * @param value The value
+	 * @return true if the key contains the value
+	 */
+	public boolean contains(K key, V value)
+	{
+		List<V> values = get(key);
+		return (values == null) ? false : values.contains(value);
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/MultipleNameVisitor.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/MultipleNameVisitor.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/MultipleNameVisitor.java	(revision 2549)
@@ -0,0 +1,76 @@
+package org.openstreetmap.josm.plugins.validator.util;
+
+import static org.openstreetmap.josm.tools.I18n.trn;
+
+import java.util.Collection;
+
+import javax.swing.Icon;
+import javax.swing.JLabel;
+
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Able to create a name and an icon for a collection of elements.
+ * 
+ * @author frsantos
+ */
+public class MultipleNameVisitor extends NameVisitor 
+{
+	/** The class name of the combined primitives */
+	String multipleClassname;
+	/** Size of the collection */
+	int size;
+	
+	/**
+	 * Visits a collection of primitives 
+	 * @param data The collection of primitives 
+	 */
+	public void visit(Collection<? extends OsmPrimitive> data) 
+	{
+		size = data.size();
+		multipleClassname = null;
+		for (OsmPrimitive osm : data) 
+		{
+			osm.visit(this);
+			if (multipleClassname == null)
+				multipleClassname = className;
+			else if (!multipleClassname.equals(className))
+				multipleClassname = "object";
+		}
+	}
+
+	@Override
+	public JLabel toLabel() 
+	{
+		if( size == 1 )
+			return super.toLabel();
+		else
+			return new JLabel( size + " " + trn(multipleClassname, multipleClassname + "s", size), ImageProvider.get("data", multipleClassname), JLabel.HORIZONTAL);
+	}
+	
+	/**
+	 * Gets the name of the items
+	 * @return the name of the items
+	 */
+	public String getText()
+	{
+		if( size == 1 )
+			return name;
+		else
+			return size + " " + trn(multipleClassname, multipleClassname + "s", size);
+	}
+
+	/**
+	 * Gets the icon of the items
+	 * @return the icon of the items
+	 */
+	public Icon getIcon()
+	{
+		if( size == 1 )
+			return icon;
+		else
+			return ImageProvider.get("data", multipleClassname);
+	}
+}
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/Util.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/Util.java	(revision 2549)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/Util.java	(revision 2549)
@@ -0,0 +1,166 @@
+package org.openstreetmap.josm.plugins.validator.util;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionListener;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.JButton;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.openstreetmap.josm.plugins.PluginProxy;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Utility class
+ * 
+ * @author frsantos
+ */
+public class Util 
+{
+
+    /**
+     * Utility method to retrieve the plugin for classes that can't access to the plugin object directly.
+     * 
+     * @param clazz The plugin class
+     * @return The YWMS plugin
+     */
+    public static Plugin getPlugin(Class<? extends Plugin> clazz)
+    {
+    	String classname = clazz.getName();
+        for (PluginProxy plugin : Main.plugins)
+        {
+            if( plugin.info.className.equals(classname) )
+            {
+                return (Plugin)plugin.plugin;
+            }
+        }
+        
+        return null;
+    }
+    
+	/** 
+	 * Returns the plugin's directory of a plugin
+	 * <p>
+	 * Utility method for classes that can't acces the plugin object
+	 * 
+	 * @param clazz The plugin class to look for
+	 * @return The directory of the plugin
+	 */
+	public static String getStaticPluginDir(Class<? extends Plugin> clazz)
+	{
+	    Plugin plugin = getPlugin(clazz);
+	    return ( plugin != null ) ? plugin.getPluginDir() : null;
+	}
+
+	/**
+	 * Utility method for creating buttons
+	 * @param name The name of the button
+	 * @param icon Icon of the button
+	 * @param tooltip Tooltip
+	 * @param action The action performed when clicking the button
+	 * @return The created button
+	 */
+    public static JButton createButton(String name, String icon, String tooltip, ActionListener action) 
+    {
+		JButton button = new JButton(tr(name), ImageProvider.get(icon));
+		button.setActionCommand(name);
+		button.addActionListener(action);
+		button.setToolTipText(tr(tooltip));
+		button.putClientProperty("help", "Dialog/SelectionList/" + name);
+		return button;
+	}
+    
+    
+	/**
+	 * Returns the version
+	 * @return The version of the application
+	 */
+	public static Version getVersion()
+    {
+    	String revision;
+    	try 
+    	{
+			revision = loadFile(Util.class.getResource("/resources/REVISION"));
+		} 
+    	catch (Exception e) 
+    	{
+			return null;
+		}
+
+		Pattern versionPattern = Pattern.compile(".*?Revision: ([0-9]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
+		Matcher match = versionPattern.matcher(revision);
+		String version = match.matches() ? match.group(1) : "UNKNOWN";
+
+		Pattern timePattern = Pattern.compile(".*?Last Changed Date: ([^\n]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
+		match = timePattern.matcher(revision);
+		String time = match.matches() ? match.group(1) : "UNKNOWN";
+		
+		return new Version(version, time);
+    }
+
+    /**
+     * Utility class for displaying versions
+     * 
+     * @author frsantos
+     */
+    public static class Version
+    {
+    	/** The revision */
+    	public String revision;
+    	/** The build time */
+    	public String time;
+    	
+        /**
+         * Constructor
+         * @param revision
+         * @param time
+         */
+        public Version(String revision, String time) 
+        {
+			this.revision = revision;
+			this.time = time;
+		}
+    }
+    
+    
+    /**
+     * Loads a text file in a String
+     * 
+     * @param resource The URL of the file
+     * @return A String with the file contents
+     * @throws IOException when error reading the file
+     */
+    public static String loadFile(URL resource) throws IOException
+    {
+    	BufferedReader in = null;
+		try 
+		{
+			in = new BufferedReader(new InputStreamReader(resource.openStream()));
+			StringBuilder sb = new StringBuilder();
+			for (String line = in.readLine(); line != null; line = in.readLine()) 
+			{
+				sb.append(line);
+				sb.append('\n');
+			}
+			return sb.toString();
+		}
+		finally
+		{
+			if( in != null )
+			{
+				try {
+					in.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+    }
+}
Index: /applications/editors/josm/plugins/waypoints/build.xml
===================================================================
--- /applications/editors/josm/plugins/waypoints/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/waypoints/build.xml	(revision 2549)
@@ -0,0 +1,42 @@
+<project name="waypoints" default="build" basedir=".">
+
+	<!-- point to your JOSM directory -->
+	<property name="josm" location="/home/nick/josm/dist/josm-latest.jar" />
+
+
+
+	<target name="init">
+		<mkdir dir="build"></mkdir>
+		<mkdir dir="dist"></mkdir>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="${josm}" destdir="build" debug="true">
+			<include name="**/*.java" />
+		</javac>
+	</target>
+
+	<target name="build" depends="compile">
+			<!--
+		<copy todir="build/images">
+			<fileset dir="images"></fileset>
+		</copy>
+		-->
+		<jar destfile="dist/waypoints.jar" basedir="build">
+			<manifest>
+				<attribute name="Plugin-Class" value="waypoints.WaypointPlugin" />
+				<attribute name="Plugin-Description" value="Automatic conversion of waypoints in a GPX file to OSM nodes." />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+		<delete dir="dist" />
+	</target>
+
+	<target name="install" depends="build">
+		<copy file="dist/waypoints.jar" todir="${user.home}/.josm/plugins"/>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/waypoints/src/WaypointOpenAction.java
===================================================================
--- /applications/editors/josm/plugins/waypoints/src/WaypointOpenAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/waypoints/src/WaypointOpenAction.java	(revision 2549)
@@ -0,0 +1,66 @@
+package waypoints; 
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.LinkedList;
+
+import javax.swing.JFileChooser;
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.actions.DiskAccessAction;
+import org.xml.sax.SAXException;
+
+/**
+ * Based on standard JOSM OpenAction 
+ * For opening a waypoint file to convert to nodes.
+ */
+public class WaypointOpenAction extends DiskAccessAction {
+	
+	/**
+	 * Create an open action. The name is "Open a file".
+	 */
+	public WaypointOpenAction() {
+		super(tr("Open waypoints file"), "open", tr("Open a waypoints file."), 
+						KeyEvent.VK_W, InputEvent.CTRL_DOWN_MASK);
+	}
+
+	public void actionPerformed(ActionEvent e) {
+		JFileChooser fc = createAndOpenFileChooser(true, true);
+		if (fc == null)
+			return;
+		File[] files = fc.getSelectedFiles();
+		for (int i = files.length; i > 0; --i)
+			openFile(files[i-1]);
+	}
+
+	/**
+	 * Open the given file.
+	 */
+	public void openFile(File file) {
+		String fn = file.getName();
+		try {
+				DataSet dataSet = 
+						WaypointReader.parse(new FileInputStream(file));
+				Main.main.addLayer(new OsmDataLayer(dataSet, file.getName(), 
+										file));
+		} catch (SAXException x) {
+			x.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, 
+					tr("Error while parsing {0}",fn)+": "+x.getMessage());
+		} catch (IOException x) {
+			x.printStackTrace();
+			JOptionPane.showMessageDialog(Main.parent, 
+					tr("Could not read \"{0}\"",fn)+"\n"+x.getMessage());
+		}
+	}
+}
Index: /applications/editors/josm/plugins/waypoints/src/WaypointPlugin.java
===================================================================
--- /applications/editors/josm/plugins/waypoints/src/WaypointPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/waypoints/src/WaypointPlugin.java	(revision 2549)
@@ -0,0 +1,29 @@
+package waypoints; 
+
+import java.awt.Component;
+import javax.swing.JMenuItem;
+import javax.swing.JSeparator;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.plugins.Plugin;
+
+public class WaypointPlugin extends Plugin  {
+
+
+	public WaypointPlugin() {
+		JMenuItem waypointItem = new JMenuItem(new WaypointOpenAction());
+		int index = findFirstSeparator();
+		Main.main.menu.fileMenu.add(waypointItem,index<0 ? 0: index);
+	}
+
+	private int findFirstSeparator()
+	{
+		Component[] components = Main.main.menu.fileMenu.getMenuComponents();
+		for(int count=0; count<components.length; count++)
+		{
+			if(components[count] instanceof JSeparator)
+				return count;
+		}
+		return -1;
+	}
+}
Index: /applications/editors/josm/plugins/waypoints/src/WaypointReader.java
===================================================================
--- /applications/editors/josm/plugins/waypoints/src/WaypointReader.java	(revision 2549)
+++ /applications/editors/josm/plugins/waypoints/src/WaypointReader.java	(revision 2549)
@@ -0,0 +1,106 @@
+package waypoints; 
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.DataSet; // NW
+import org.openstreetmap.josm.data.osm.Node; // NW
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+
+import uk.co.wilson.xml.MinML2;
+
+
+/**
+ * Read waypoints from a GPX file and convert to nodes.
+ */
+public class WaypointReader {
+
+	private static class Parser extends MinML2 {
+		/**
+		 * Current track to be read. The last entry is the current trkpt.
+		 * If in wpt-mode, it contain only one GpsPoint.
+		 */
+	    private DataSet dataSet;
+		private LatLon currentLatLon;
+		private String curWptName;
+		private  boolean inName = false;
+
+		// NW start	
+		// data now has two components: the GPS points and an OsmDataLayer.
+		// This is to allow us to convert waypoints straight to nodes.
+		// The way this works is that waypoints with a name not beginning
+		// with 0 - i.e. waypoints specially named - will be loaded in as
+		// nodes, in addition to going into the gpx layer. Other waypoints will
+		// only go into the gpx layer.
+		public Parser()
+		{
+			dataSet = new DataSet();
+		}
+		// NW end
+
+		@Override public void startElement(String namespaceURI, 
+				String localName, String qName, Attributes atts) 
+					throws SAXException {
+			if (qName.equals("wpt")) {
+				try {
+	                double lat = Double.parseDouble(atts.getValue("lat"));
+	                double lon = Double.parseDouble(atts.getValue("lon"));
+	        		if (Math.abs(lat) > 90)
+	        			throw new SAXException
+						(tr("Data error: lat value \"{0}\" is out of bound.", 
+							lat));
+	        		if (Math.abs(lon) > 180)
+	        			throw new SAXException
+						(tr("Data error: lon value \"{0}\" is out of bound.", 
+							lon));
+	                currentLatLon = new LatLon(lat, lon);
+                } catch (NumberFormatException e) {
+                	e.printStackTrace();
+	                throw new SAXException(e);
+                }
+			}
+			else if (qName.equals("name")) {
+				inName = true;
+				curWptName = "";	
+			}	
+		}
+
+		@Override public void characters(char[] ch, int start, int length) {
+			// NW start
+			if (inName) {
+				curWptName = new String (ch,start,length);
+			}
+			// NW end
+		}
+
+		@Override public void endElement(String namespaceURI, String localName,
+					   					String qName) {
+			if (qName.equals("wpt") && curWptName!="") { 
+				// create a new node from the latitude and longitude
+				System.out.println("Found a waypoint to convert to a node: " 
+										+ curWptName);
+				Node node = new Node(currentLatLon);
+				node.put("name",curWptName);
+				dataSet.nodes.add(node);
+			}
+			else if (qName.equals("name")) {
+				inName = false;
+			}
+        }
+	}
+
+	/**
+	 * Parse and return the read data
+	 */
+	public static DataSet parse(InputStream source) 
+			throws SAXException, IOException{
+		Parser parser = new Parser();
+		parser.parse(new InputStreamReader(source, "UTF-8"));
+		return parser.dataSet;
+	}
+}
Index: /applications/editors/josm/plugins/wmsplugin/README
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/README	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/README	(revision 2549)
@@ -0,0 +1,7 @@
+A plugin for JOSM that can query any WMS server for background images.
+Also supports Metacarta's map rectifier.
+Supersedes the "Landsat" plugin, as the WMS plugin can do everything the
+landsat plugin could plus more.
+
+See also utils/ywms for a way to get Yahoo satellite images with this
+plugin (Linux required for ywms).
Index: /applications/editors/josm/plugins/wmsplugin/build.xml
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/build.xml	(revision 2549)
@@ -0,0 +1,41 @@
+<project name="wmsplugin" default="build" basedir=".">
+
+	<!-- point to your JOSM directory -->
+	<property name="josm" location="C:\Documents and Settings\tim\java\josm\dist\josm-custom.jar" />
+
+
+
+	<target name="init">
+		<mkdir dir="build"></mkdir>
+		<mkdir dir="dist"></mkdir>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="${josm}" debug="true" destdir="build">
+			<include name="**/*.java" />
+		</javac>
+	</target>
+
+	<target name="build" depends="compile">
+		<copy todir="build/images" >
+			<fileset dir="images" />
+		</copy>
+		<jar destfile="dist/wmsplugin.jar" basedir="build">
+			<manifest>
+				<attribute name="Plugin-Class" value="wmsplugin.WMSPlugin" />
+				<attribute name="Plugin-Description" value="Allows external WMS resources to be displayed,&lt;br&gt; i.e from Metacarta's Map Rectifier, Landsat, NPE.&lt;br&gt;
+					Change url via menu item, or wmsplugin.url in advanced prefs. v2.1" />
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+		<delete dir="dist" />
+	</target>
+
+	<target name="install" depends="build">
+		<copy file="dist/wmsplugin.jar" todir="${user.home}/.josm/plugins"/>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/wmsplugin/src/META-INF/MANIFEST.MF
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/META-INF/MANIFEST.MF	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/META-INF/MANIFEST.MF	(revision 2549)
@@ -0,0 +1,8 @@
+Manifest-Version: 1.0
+Ant-Version: Apache Ant 1.6.5
+Created-By: 1.5.0_06-b05 (Sun Microsystems Inc.)
+Plugin-Class: wmsplugin.WMSPlugin
+Plugin-Description: Allows external WMS resources to be displayed,<br>
+  i.e from Metacarta's Map Rectifier, Landsat, NPE.<br>      Change ur
+ l via menu item, or wmsplugin.url in advanced prefs. v1.5
+
Index: /applications/editors/josm/plugins/wmsplugin/src/readme.txt
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/readme.txt	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/readme.txt	(revision 2549)
@@ -0,0 +1,46 @@
+--------------------------------------------------------------------------
+ Jcoord
+ readme.txt
+ 
+ (c) 2006 Jonathan Stott
+ 
+ Created on 11-Feb-2006
+ 
+ 1.0 - 11 Feb 2006
+  - Initial version created from PHPcoord v2.2
+--------------------------------------------------------------------------
+
+Jcoord is a collection of Java classes that provide functions for handling
+various co-ordinate systems and converting between them. Currently, OSGB
+(Ordnance Survey of Great Britain) grid references, UTM (Universal Transverse
+Mercator) references and latitude/longitude are supported. A function is 
+also provided to find the surface distance between two points of latitude
+and longitude.
+
+When using the OSGB conversions, the majority of applications use the
+WGS84 datum rather than the OSGB36 datum. Conversions between the two
+data were added in v1.1 - the conversions should be accurate to within
+5m or so. If accuracy is not important (i.e. to within 200m or so),
+then it isn't necessary to perform the conversions.
+
+Examples of how to use the classes in Jcoord can be found in the
+uk.me.jstott.jcoord.Test class
+
+See http://www.jstott.me.uk/jcoord/ for latest releases and information.
+
+
+DISCLAIMER
+
+Accuracy of the co-ordinate conversions contained within the Jcoord
+package is not guaranteed. Use of the conversions is entirely at your
+own risk and I cannot be held responsible for any consequences of
+errors created by the conversions. I do not recommend using the package
+for mission-critical applications.
+
+
+LICENSING
+
+This software product is available under the GNU General Public License
+(GPL). Terms of the GPL can be read at http://www.jstott.me.uk/gpl/.
+Any commercial use requires the purchase of a license - contact me at
+jcoord@jstott.me.uk for details.
Index: /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/LatLng.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/LatLng.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/LatLng.java	(revision 2549)
@@ -0,0 +1,354 @@
+package uk.me.jstott.jcoord;
+
+/**
+ * Class to represent a latitude/longitude pair.
+ * 
+ * (c) 2006 Jonathan Stott
+ * 
+ * Created on 11-02-2006
+ * 
+ * @author Jonathan Stott
+ * @version 1.0
+ * @since 1.0
+ */
+public class LatLng {
+
+  /**
+   * Latitude in degrees.
+   */
+  private double lat;
+
+  /**
+   * Longitude in degrees.
+   */
+  private double lng;
+
+
+  /**
+   * Create a new LatLng object to represent a latitude/longitude pair.
+   * 
+   * @param lat
+   *          the latitude in degrees
+   * @param lng
+   *          the longitude in degrees
+   * @since 1.0
+   */
+  public LatLng(double lat, double lng) {
+    this.lat = lat;
+    this.lng = lng;
+  }
+
+
+  /**
+   * Get a String representation of this LatLng object.
+   * 
+   * @return a String representation of this LatLng object.
+   * @since 1.0
+   */
+  public String toString() {
+    return "(" + this.lat + ", " + this.lng + ")";
+  }
+
+
+  /**
+   * Convert this latitude and longitude into an OSGB (Ordnance Survey of Great
+   * Britain) grid reference.
+   * 
+   * @return the converted OSGB grid reference
+   * @since 1.0
+   */
+  public OSRef toOSRef() {
+    RefEll airy1830 = new RefEll(6377563.396, 6356256.909);
+    double OSGB_F0 = 0.9996012717;
+    double N0 = -100000.0;
+    double E0 = 400000.0;
+    double phi0 = Math.toRadians(49.0);
+    double lambda0 = Math.toRadians(-2.0);
+    double a = airy1830.getMaj();
+    double b = airy1830.getMin();
+    double eSquared = airy1830.getEcc();
+    double phi = Math.toRadians(getLat());
+    double lambda = Math.toRadians(getLng());
+    double E = 0.0;
+    double N = 0.0;
+    double n = (a - b) / (a + b);
+    double v =
+        a * OSGB_F0 * Math.pow(1.0 - eSquared * Util.sinSquared(phi), -0.5);
+    double rho =
+        a * OSGB_F0 * (1.0 - eSquared)
+            * Math.pow(1.0 - eSquared * Util.sinSquared(phi), -1.5);
+    double etaSquared = (v / rho) - 1.0;
+    double M =
+        (b * OSGB_F0)
+            * (((1 + n + ((5.0 / 4.0) * n * n) + ((5.0 / 4.0) * n * n * n)) * (phi - phi0))
+                - (((3 * n) + (3 * n * n) + ((21.0 / 8.0) * n * n * n))
+                    * Math.sin(phi - phi0) * Math.cos(phi + phi0))
+                + ((((15.0 / 8.0) * n * n) + ((15.0 / 8.0) * n * n * n))
+                    * Math.sin(2.0 * (phi - phi0)) * Math
+                    .cos(2.0 * (phi + phi0))) - (((35.0 / 24.0) * n * n * n)
+                * Math.sin(3.0 * (phi - phi0)) * Math.cos(3.0 * (phi + phi0))));
+    double I = M + N0;
+    double II = (v / 2.0) * Math.sin(phi) * Math.cos(phi);
+    double III =
+        (v / 24.0) * Math.sin(phi) * Math.pow(Math.cos(phi), 3.0)
+            * (5.0 - Util.tanSquared(phi) + (9.0 * etaSquared));
+    double IIIA =
+        (v / 720.0)
+            * Math.sin(phi)
+            * Math.pow(Math.cos(phi), 5.0)
+            * (61.0 - (58.0 * Util.tanSquared(phi)) + Math.pow(Math.tan(phi),
+                4.0));
+    double IV = v * Math.cos(phi);
+    double V =
+        (v / 6.0) * Math.pow(Math.cos(phi), 3.0)
+            * ((v / rho) - Util.tanSquared(phi));
+    double VI =
+        (v / 120.0)
+            * Math.pow(Math.cos(phi), 5.0)
+            * (5.0 - (18.0 * Util.tanSquared(phi))
+                + (Math.pow(Math.tan(phi), 4.0)) + (14 * etaSquared) - (58 * Util
+                .tanSquared(phi) * etaSquared));
+
+    N =
+        I + (II * Math.pow(lambda - lambda0, 2.0))
+            + (III * Math.pow(lambda - lambda0, 4.0))
+            + (IIIA * Math.pow(lambda - lambda0, 6.0));
+    E =
+        E0 + (IV * (lambda - lambda0)) + (V * Math.pow(lambda - lambda0, 3.0))
+            + (VI * Math.pow(lambda - lambda0, 5.0));
+
+    return new OSRef(E, N);
+  }
+
+
+  /**
+   * Convert this latitude and longitude to a UTM reference.
+   * 
+   * @return the converted UTM reference
+   * @since 1.0
+   */
+  public UTMRef toUTMRef() {
+    double UTM_F0 = 0.9996;
+    double a = RefEll.WGS84.getMaj();
+    double eSquared = RefEll.WGS84.getEcc();
+    double longitude = this.lng;
+    double latitude = this.lat;
+
+    double latitudeRad = latitude * (Math.PI / 180.0);
+    double longitudeRad = longitude * (Math.PI / 180.0);
+    int longitudeZone = (int) Math.floor((longitude + 180.0) / 6.0) + 1;
+
+    // Special zone for Norway
+    if (latitude >= 56.0 && latitude < 64.0 && longitude >= 3.0
+        && longitude < 12.0) {
+      longitudeZone = 32;
+    }
+
+    // Special zones for Svalbard
+    if (latitude >= 72.0 && latitude < 84.0) {
+      if (longitude >= 0.0 && longitude < 9.0) {
+        longitudeZone = 31;
+      } else if (longitude >= 9.0 && longitude < 21.0) {
+        longitudeZone = 33;
+      } else if (longitude >= 21.0 && longitude < 33.0) {
+        longitudeZone = 35;
+      } else if (longitude >= 33.0 && longitude < 42.0) {
+        longitudeZone = 37;
+      }
+    }
+
+    double longitudeOrigin = (longitudeZone - 1) * 6 - 180 + 3;
+    double longitudeOriginRad = longitudeOrigin * (Math.PI / 180.0);
+
+    char UTMZone = UTMRef.getUTMLatitudeZoneLetter(latitude);
+
+    double ePrimeSquared = (eSquared) / (1 - eSquared);
+
+    double n =
+        a
+            / Math.sqrt(1 - eSquared * Math.sin(latitudeRad)
+                * Math.sin(latitudeRad));
+    double t = Math.tan(latitudeRad) * Math.tan(latitudeRad);
+    double c = ePrimeSquared * Math.cos(latitudeRad) * Math.cos(latitudeRad);
+    double A = Math.cos(latitudeRad) * (longitudeRad - longitudeOriginRad);
+
+    double M =
+        a
+            * ((1 - eSquared / 4 - 3 * eSquared * eSquared / 64 - 5 * eSquared
+                * eSquared * eSquared / 256)
+                * latitudeRad
+                - (3 * eSquared / 8 + 3 * eSquared * eSquared / 32 + 45
+                    * eSquared * eSquared * eSquared / 1024)
+                * Math.sin(2 * latitudeRad)
+                + (15 * eSquared * eSquared / 256 + 45 * eSquared * eSquared
+                    * eSquared / 1024) * Math.sin(4 * latitudeRad) - (35
+                * eSquared * eSquared * eSquared / 3072)
+                * Math.sin(6 * latitudeRad));
+
+    double UTMEasting =
+        (UTM_F0
+            * n
+            * (A + (1 - t + c) * Math.pow(A, 3.0) / 6 + (5 - 18 * t + t * t
+                + 72 * c - 58 * ePrimeSquared)
+                * Math.pow(A, 5.0) / 120) + 500000.0);
+
+    double UTMNorthing =
+        (UTM_F0 * (M + n
+            * Math.tan(latitudeRad)
+            * (A * A / 2 + (5 - t + (9 * c) + (4 * c * c)) * Math.pow(A, 4.0)
+                / 24 + (61 - (58 * t) + (t * t) + (600 * c) - (330 * ePrimeSquared))
+                * Math.pow(A, 6.0) / 720)));
+
+    // Adjust for the southern hemisphere
+    if (latitude < 0) {
+      UTMNorthing += 10000000.0;
+    }
+
+    return new UTMRef(UTMEasting, UTMNorthing, UTMZone, longitudeZone);
+  }
+
+
+  /**
+   * Convert this LatLng from the OSGB36 datum to the WGS84 datum using an
+   * approximate Helmert transformation.
+   * 
+   * @since 1.0
+   */
+  public void toWGS84() {
+    double a = RefEll.AIRY_1830.getMaj();
+    double eSquared = RefEll.AIRY_1830.getEcc();
+    double phi = Math.toRadians(lat);
+    double lambda = Math.toRadians(lng);
+    double v = a / (Math.sqrt(1 - eSquared * Util.sinSquared(phi)));
+    double H = 0; // height
+    double x = (v + H) * Math.cos(phi) * Math.cos(lambda);
+    double y = (v + H) * Math.cos(phi) * Math.sin(lambda);
+    double z = ((1 - eSquared) * v + H) * Math.sin(phi);
+
+    double tx = 446.448;
+    double ty = -124.157;
+    double tz = 542.060;
+    double s = -0.0000204894;
+    double rx = Math.toRadians(0.00004172222);
+    double ry = Math.toRadians(0.00006861111);
+    double rz = Math.toRadians(0.00023391666);
+
+    double xB = tx + (x * (1 + s)) + (-rx * y) + (ry * z);
+    double yB = ty + (rz * x) + (y * (1 + s)) + (-rx * z);
+    double zB = tz + (-ry * x) + (rx * y) + (z * (1 + s));
+
+    a = RefEll.WGS84.getMaj();
+    eSquared = RefEll.WGS84.getEcc();
+
+    double lambdaB = Math.toDegrees(Math.atan(yB / xB));
+    double p = Math.sqrt((xB * xB) + (yB * yB));
+    double phiN = Math.atan(zB / (p * (1 - eSquared)));
+    for (int i = 1; i < 10; i++) {
+      v = a / (Math.sqrt(1 - eSquared * Util.sinSquared(phiN)));
+      double phiN1 = Math.atan((zB + (eSquared * v * Math.sin(phiN))) / p);
+      phiN = phiN1;
+    }
+
+    double phiB = Math.toDegrees(phiN);
+
+    lat = phiB;
+    lng = lambdaB;
+  }
+
+
+  /**
+   * Convert this LatLng from the WGS84 datum to the OSGB36 datum using an
+   * approximate Helmert transformation.
+   * 
+   * @since 1.0
+   */
+  public void toOSGB36() {
+    RefEll wgs84 = new RefEll(6378137.000, 6356752.3141);
+    double a = wgs84.getMaj();
+    double eSquared = wgs84.getEcc();
+    double phi = Math.toRadians(this.lat);
+    double lambda = Math.toRadians(this.lng);
+    double v = a / (Math.sqrt(1 - eSquared * Util.sinSquared(phi)));
+    double H = 0; // height
+    double x = (v + H) * Math.cos(phi) * Math.cos(lambda);
+    double y = (v + H) * Math.cos(phi) * Math.sin(lambda);
+    double z = ((1 - eSquared) * v + H) * Math.sin(phi);
+
+    double tx = -446.448;
+    double ty = 124.157;
+    double tz = -542.060;
+    double s = 0.0000204894;
+    double rx = Math.toRadians(-0.00004172222);
+    double ry = Math.toRadians(-0.00006861111);
+    double rz = Math.toRadians(-0.00023391666);
+
+    double xB = tx + (x * (1 + s)) + (-rx * y) + (ry * z);
+    double yB = ty + (rz * x) + (y * (1 + s)) + (-rx * z);
+    double zB = tz + (-ry * x) + (rx * y) + (z * (1 + s));
+
+    RefEll airy1830 = new RefEll(6377563.396, 6356256.909);
+    a = airy1830.getMaj();
+    eSquared = airy1830.getEcc();
+
+    double lambdaB = Math.toDegrees(Math.atan(yB / xB));
+    double p = Math.sqrt((xB * xB) + (yB * yB));
+    double phiN = Math.atan(zB / (p * (1 - eSquared)));
+    for (int i = 1; i < 10; i++) {
+      v = a / (Math.sqrt(1 - eSquared * Util.sinSquared(phiN)));
+      double phiN1 = Math.atan((zB + (eSquared * v * Math.sin(phiN))) / p);
+      phiN = phiN1;
+    }
+
+    double phiB = Math.toDegrees(phiN);
+
+    lat = phiB;
+    lng = lambdaB;
+  }
+
+
+  /**
+   * Calculate the surface distance in kilometres from the this LatLng to the
+   * given LatLng.
+   * 
+   * @param ll
+   * @return the surface distance in km
+   * @since 1.0
+   */
+  public double distance(LatLng ll) {
+    double er = 6366.707;
+
+    double latFrom = Math.toRadians(getLat());
+    double latTo = Math.toRadians(ll.getLat());
+    double lngFrom = Math.toRadians(getLng());
+    double lngTo = Math.toRadians(ll.getLng());
+
+    double d =
+        Math.acos(Math.sin(latFrom) * Math.sin(latTo) + Math.cos(latFrom)
+            * Math.cos(latTo) * Math.cos(lngTo - lngFrom))
+            * er;
+
+    return d;
+  }
+
+
+  /**
+   * Return the latitude in degrees.
+   * 
+   * @return the latitude in degrees
+   * @since 1.0
+   */
+  public double getLat() {
+    return lat;
+  }
+
+
+  /**
+   * Return the longitude in degrees.
+   * 
+   * @return the longitude in degrees
+   * @since 1.0
+   */
+  public double getLng() {
+    return lng;
+  }
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/OSRef.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/OSRef.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/OSRef.java	(revision 2549)
@@ -0,0 +1,245 @@
+package uk.me.jstott.jcoord;
+
+/**
+ * Class to represent an Ordnance Survey grid reference
+ * 
+ * (c) 2006 Jonathan Stott
+ * 
+ * Created on 11-02-2006
+ * 
+ * @author Jonathan Stott
+ * @version 1.0
+ * @since 1.0
+ */
+public class OSRef {
+
+  /**
+   * Easting
+   */
+  private double easting;
+
+  /**
+   * Northing
+   */
+  private double northing;
+
+
+  /**
+   * Create a new Ordnance Survey grid reference.
+   * 
+   * @param easting
+   *          the easting in metres
+   * @param northing
+   *          the northing in metres
+   * @since 1.0
+   */
+  public OSRef(double easting, double northing) {
+    this.easting = easting;
+    this.northing = northing;
+  }
+
+
+  /**
+   * Take a string formatted as a six-figure OS grid reference (e.g. "TG514131")
+   * and create a new OSRef object that represents that grid reference. The
+   * first character must be H, N, S, O or T. The second character can be any
+   * uppercase character from A through Z excluding I.
+   * 
+   * @param ref
+   *          a String representing a six-figure Ordnance Survey grid reference
+   *          in the form XY123456
+   * @throws IllegalArgumentException
+   *           if ref is not of the form XY123456
+   * @since 1.0
+   */
+  public OSRef(String ref) throws IllegalArgumentException {
+    // if (ref.matches(""))
+    char char1 = ref.charAt(0);
+    char char2 = ref.charAt(1);
+    // Thanks to Nick Holloway for pointing out the radix bug here
+    int east = Integer.parseInt(ref.substring(2, 5)) * 100;
+    int north = Integer.parseInt(ref.substring(5, 8)) * 100;
+    if (char1 == 'H') {
+      north += 1000000;
+    } else if (char1 == 'N') {
+      north += 500000;
+    } else if (char1 == 'O') {
+      north += 500000;
+      east += 500000;
+    } else if (char1 == 'T') {
+      east += 500000;
+    }
+    int char2ord = char2;
+    if (char2ord > 73)
+      char2ord--; // Adjust for no I
+    double nx = ((char2ord - 65) % 5) * 100000;
+    double ny = (4 - Math.floor((char2ord - 65) / 5)) * 100000;
+    easting = east + nx;
+    northing = north + ny;
+  }
+
+
+  /**
+   * Return a String representation of this OSGB grid reference showing the
+   * easting and northing.
+   * 
+   * @return a String represenation of this OSGB grid reference
+   * @since 1.0
+   */
+  public String toString() {
+    return "(" + easting + ", " + northing + ")";
+  }
+
+
+  /**
+   * Return a String representation of this OSGB grid reference using the
+   * six-figure notation in the form XY123456
+   * 
+   * @return a String representing this OSGB grid reference in six-figure
+   *         notation
+   * @since 1.0
+   */
+  public String toSixFigureString() {
+    int hundredkmE = (int) Math.floor(easting / 100000);
+    int hundredkmN = (int) Math.floor(northing / 100000);
+    String firstLetter;
+    if (hundredkmN < 5) {
+      if (hundredkmE < 5) {
+        firstLetter = "S";
+      } else {
+        firstLetter = "T";
+      }
+    } else if (hundredkmN < 10) {
+      if (hundredkmE < 5) {
+        firstLetter = "N";
+      } else {
+        firstLetter = "O";
+      }
+    } else {
+      firstLetter = "H";
+    }
+
+    int index = 65 + ((4 - (hundredkmN % 5)) * 5) + (hundredkmE % 5);
+    // int ti = index;
+    if (index >= 73)
+      index++;
+    String secondLetter = Character.toString((char) index);
+
+    int e = (int) Math.floor((easting - (100000 * hundredkmE)) / 100);
+    int n = (int) Math.floor((northing - (100000 * hundredkmN)) / 100);
+    String es = "" + e;
+    if (e < 100)
+      es = "0" + es;
+    if (e < 10)
+      es = "0" + es;
+    String ns = "" + n;
+    if (n < 100)
+      ns = "0" + ns;
+    if (n < 10)
+      ns = "0" + ns;
+
+    return firstLetter + secondLetter + es + ns;
+  }
+
+
+  /**
+   * Convert this OSGB grid reference to a latitude/longitude pair using the
+   * OSGB36 datum. Note that, the LatLng object may need to be converted to the
+   * WGS84 datum depending on the application.
+   * 
+   * @return a LatLng object representing this OSGB grid reference using the
+   *         OSGB36 datum
+   * @since 1.0
+   */
+  public LatLng toLatLng() {
+    double OSGB_F0 = 0.9996012717;
+    double N0 = -100000.0;
+    double E0 = 400000.0;
+    double phi0 = Math.toRadians(49.0);
+    double lambda0 = Math.toRadians(-2.0);
+    double a = RefEll.AIRY_1830.getMaj();
+    double b = RefEll.AIRY_1830.getMin();
+    double eSquared = RefEll.AIRY_1830.getEcc();
+    double phi = 0.0;
+    double lambda = 0.0;
+    double E = this.easting;
+    double N = this.northing;
+    double n = (a - b) / (a + b);
+    double M = 0.0;
+    double phiPrime = ((N - N0) / (a * OSGB_F0)) + phi0;
+    do {
+      M =
+          (b * OSGB_F0)
+              * (((1 + n + ((5.0 / 4.0) * n * n) + ((5.0 / 4.0) * n * n * n)) * (phiPrime - phi0))
+                  - (((3 * n) + (3 * n * n) + ((21.0 / 8.0) * n * n * n))
+                      * Math.sin(phiPrime - phi0) * Math.cos(phiPrime + phi0))
+                  + ((((15.0 / 8.0) * n * n) + ((15.0 / 8.0) * n * n * n))
+                      * Math.sin(2.0 * (phiPrime - phi0)) * Math
+                      .cos(2.0 * (phiPrime + phi0))) - (((35.0 / 24.0) * n * n * n)
+                  * Math.sin(3.0 * (phiPrime - phi0)) * Math
+                  .cos(3.0 * (phiPrime + phi0))));
+      phiPrime += (N - N0 - M) / (a * OSGB_F0);
+    } while ((N - N0 - M) >= 0.001);
+    double v =
+        a * OSGB_F0
+            * Math.pow(1.0 - eSquared * Util.sinSquared(phiPrime), -0.5);
+    double rho =
+        a * OSGB_F0 * (1.0 - eSquared)
+            * Math.pow(1.0 - eSquared * Util.sinSquared(phiPrime), -1.5);
+    double etaSquared = (v / rho) - 1.0;
+    double VII = Math.tan(phiPrime) / (2 * rho * v);
+    double VIII =
+        (Math.tan(phiPrime) / (24.0 * rho * Math.pow(v, 3.0)))
+            * (5.0 + (3.0 * Util.tanSquared(phiPrime)) + etaSquared - (9.0 * Util
+                .tanSquared(phiPrime) * etaSquared));
+    double IX =
+        (Math.tan(phiPrime) / (720.0 * rho * Math.pow(v, 5.0)))
+            * (61.0 + (90.0 * Util.tanSquared(phiPrime)) + (45.0 * Util
+                .tanSquared(phiPrime) * Util.tanSquared(phiPrime)));
+    double X = Util.sec(phiPrime) / v;
+    double XI =
+        (Util.sec(phiPrime) / (6.0 * v * v * v))
+            * ((v / rho) + (2 * Util.tanSquared(phiPrime)));
+    double XII =
+        (Util.sec(phiPrime) / (120.0 * Math.pow(v, 5.0)))
+            * (5.0 + (28.0 * Util.tanSquared(phiPrime)) + (24.0 * Util
+                .tanSquared(phiPrime) * Util.tanSquared(phiPrime)));
+    double XIIA =
+        (Util.sec(phiPrime) / (5040.0 * Math.pow(v, 7.0)))
+            * (61.0
+                + (662.0 * Util.tanSquared(phiPrime))
+                + (1320.0 * Util.tanSquared(phiPrime) * Util
+                    .tanSquared(phiPrime)) + (720.0 * Util.tanSquared(phiPrime)
+                * Util.tanSquared(phiPrime) * Util.tanSquared(phiPrime)));
+    phi =
+        phiPrime - (VII * Math.pow(E - E0, 2.0))
+            + (VIII * Math.pow(E - E0, 4.0)) - (IX * Math.pow(E - E0, 6.0));
+    lambda =
+        lambda0 + (X * (E - E0)) - (XI * Math.pow(E - E0, 3.0))
+            + (XII * Math.pow(E - E0, 5.0)) - (XIIA * Math.pow(E - E0, 7.0));
+
+    return new LatLng(Math.toDegrees(phi), Math.toDegrees(lambda));
+  }
+
+
+  /**
+   * Get the easting.
+   * 
+   * @return the easting in metres
+   * @since 1.0
+   */
+  public double getEasting() {
+    return easting;
+  }
+
+
+  /**
+   * Get the northing.
+   * 
+   * @return the northing in metres
+   * @since 1.0
+   */
+  public double getNorthing() {
+    return northing;
+  }
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/RefEll.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/RefEll.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/RefEll.java	(revision 2549)
@@ -0,0 +1,90 @@
+package uk.me.jstott.jcoord;
+
+/**
+ * Class to represent a reference ellipsoid. Also provides a number of
+ * pre-determined reference ellipsoids as constants.
+ * 
+ * (c) 2006 Jonathan Stott
+ * 
+ * Created on 11-Feb-2006
+ * 
+ * @author Jonathan Stott
+ * @version 1.0
+ * @since 1.0
+ */
+public class RefEll {
+
+  /**
+   * Airy 1830 Reference Ellipsoid
+   */
+  public static final RefEll AIRY_1830 = new RefEll(6377563.396, 6356256.909);
+
+  /**
+   * WGS84 Reference Ellipsoid
+   */
+  public static final RefEll WGS84     = new RefEll(6378137.000, 6356752.3141);
+
+  /**
+   * Semi-major axis
+   */
+  private double             maj;
+
+  /**
+   * Semi-minor axis
+   */
+  private double             min;
+
+  /**
+   * Eccentricity
+   */
+  private double             ecc;
+
+
+  /**
+   * Create a new reference ellipsoid
+   * 
+   * @param maj
+   *          semi-major axis
+   * @param min
+   *          semi-minor axis
+   * @since 1.0
+   */
+  public RefEll(double maj, double min) {
+    this.maj = maj;
+    this.min = min;
+    this.ecc = ((maj * maj) - (min * min)) / (maj * maj);
+  }
+
+
+  /**
+   * Return the semi-major axis.
+   * 
+   * @return the semi-major axis
+   * @since 1.0
+   */
+  public double getMaj() {
+    return maj;
+  }
+
+
+  /**
+   * Return the semi-minor axis
+   * 
+   * @return the semi-minor axis
+   * @since 1.0
+   */
+  public double getMin() {
+    return min;
+  }
+
+
+  /**
+   * Return the eccentricity.
+   * 
+   * @return the eccentricity
+   * @since 1.0
+   */
+  public double getEcc() {
+    return ecc;
+  }
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/Test.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/Test.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/Test.java	(revision 2549)
@@ -0,0 +1,145 @@
+package uk.me.jstott.jcoord;
+
+/**
+ * Class to illustrate the use of the various functions of the classes in the
+ * Jcoord package.
+ * 
+ * (c) 2006 Jonathan Stott
+ * 
+ * Created on 11-Feb-2006
+ * 
+ * @author Jonathan Stott
+ * @version 1.0
+ * @since 1.0
+ */
+public class Test {
+
+  /**
+   * Main method
+   * 
+   * @param args
+   *          not used
+   * @since 1.0
+   */
+  public static void main(String[] args) {
+
+    /*
+     * Calculate Surface Distance between two Latitudes/Longitudes
+     * 
+     * The distance() function takes a reference to a LatLng object as a
+     * parameter and calculates the surface distance between the the given
+     * object and this object in kilometres:
+     */
+
+    System.out
+        .println("Calculate Surface Distance between two Latitudes/Longitudes");
+    LatLng lld1 = new LatLng(40.718119, -73.995667); // New York
+    System.out.println("New York Lat/Long: " + lld1.toString());
+    LatLng lld2 = new LatLng(51.499981, -0.125313); // London
+    System.out.println("London Lat/Long: " + lld2.toString());
+    double d = lld1.distance(lld2);
+    System.out.println("Surface Distance between New York and London: " + d
+        + "km");
+    System.out.println();
+
+    /*
+     * Convert OS Grid Reference to Latitude/Longitude
+     * 
+     * Note that the OSGB-Latitude/Longitude conversions use the OSGB36 datum by
+     * default. The majority of applications use the WGS84 datum, for which the
+     * appropriate conversions need to be added. See the examples below to see
+     * the difference between the two data.
+     */
+
+    System.out.println("Convert OS Grid Reference to Latitude/Longitude");
+    // Using OSGB36 (convert an OSGB grid reference to a latitude and longitude
+    // using the OSGB36 datum):
+    System.out.println("Using OSGB36");
+    OSRef os1 = new OSRef(651409.903, 313177.270);
+    System.out.println("OS Grid Reference: " + os1.toString() + " - "
+        + os1.toSixFigureString());
+    LatLng ll1 = os1.toLatLng();
+    System.out.println("Converted to Lat/Long: " + ll1.toString());
+    System.out.println();
+
+    // Using WGS84 (convert an OSGB grid reference to a latitude and longitude
+    // using the WGS84 datum):
+    System.out.println("Using WGS84");
+    OSRef os1w = new OSRef(651409.903, 313177.270);
+    System.out.println("OS Grid Reference: " + os1w.toString() + " - "
+        + os1w.toSixFigureString());
+    LatLng ll1w = os1w.toLatLng();
+    ll1w.toWGS84();
+    System.out.println("Converted to Lat/Long: " + ll1w.toString());
+    System.out.println();
+
+    /*
+     * Convert Latitude/Longitude to OS Grid Reference
+     * 
+     * Note that the OSGB-Latitude/Longitude conversions use the OSGB36 datum by
+     * default. The majority of applications use the WGS84 datum, for which the
+     * appropriate conversions need to be added. See the examples below to see
+     * the difference between the two data.
+     */
+
+    System.out.println("Convert Latitude/Longitude to OS Grid Reference");
+    // Using OSGB36 (convert a latitude and longitude using the OSGB36 datum to
+    // an OSGB grid reference):
+    System.out.println("Using OSGB36");
+    LatLng ll2 = new LatLng(52.657570301933, 1.7179215806451);
+    System.out.println("Latitude/Longitude: " + ll2.toString());
+    OSRef os2 = ll2.toOSRef();
+    System.out.println("Converted to OS Grid Ref: " + os2.toString() + " - "
+        + os2.toSixFigureString());
+    System.out.println();
+
+    // Using WGS84 (convert a latitude and longitude using the WGS84 datum to an
+    // OSGB grid reference):
+    System.out.println("Using WGS84");
+    LatLng ll2w = new LatLng(52.657570301933, 1.7179215806451);
+    System.out.println("Latitude/Longitude: " + ll2.toString());
+    ll2w.toOSGB36();
+    OSRef os2w = ll2w.toOSRef();
+    System.out.println("Converted to OS Grid Ref: " + os2w.toString() + " - "
+        + os2w.toSixFigureString());
+    System.out.println();
+
+    /*
+     * Convert Six-Figure OS Grid Reference String to an OSRef Object
+     * 
+     * To convert a string representing a six-figure OSGB grid reference:
+     */
+
+    System.out
+        .println("Convert Six-Figure OS Grid Reference String to an OSRef Object");
+    String os6 = "TG514131";
+    System.out.println("Six figure string: " + os6);
+    OSRef os6x = new OSRef(os6);
+    System.out.println("Converted to OS Grid Ref: " + os6x.toString() + " - "
+        + os6x.toSixFigureString());
+    System.out.println();
+
+    /*
+     * Convert UTM Reference to Latitude/Longitude
+     */
+
+    System.out.println("Convert UTM Reference to Latitude/Longitude");
+    UTMRef utm1 = new UTMRef(456463.99, 3335334.05, 'E', 12);
+    System.out.println("UTM Reference: " + utm1.toString());
+    LatLng ll3 = utm1.toLatLng();
+    System.out.println("Converted to Lat/Long: " + ll3.toString());
+    System.out.println();
+
+    /*
+     * Convert Latitude/Longitude to UTM Reference
+     */
+
+    System.out.println("Convert Latitude/Longitude to UTM Reference");
+    LatLng ll4 = new LatLng(-60.1167, -111.7833);
+    System.out.println("Latitude/Longitude: " + ll4.toString());
+    UTMRef utm2 = ll4.toUTMRef();
+    System.out.println("Converted to UTM Ref: " + utm2.toString());
+    System.out.println();
+  }
+
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/UTMRef.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/UTMRef.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/UTMRef.java	(revision 2549)
@@ -0,0 +1,238 @@
+package uk.me.jstott.jcoord;
+
+/**
+ * Class to represent a UTM reference
+ * 
+ * (c) 2006 Jonathan Stott
+ * 
+ * Created on 11-Feb-2006
+ * 
+ * @author Jonathan Stott
+ * @version 1.0
+ * @since 1.0
+ */
+public class UTMRef {
+
+  /**
+   * Easting
+   */
+  private double easting;
+
+  /**
+   * Northing
+   */
+  private double northing;
+
+  /**
+   * Latitude zone character
+   */
+  private char   latZone;
+
+  /**
+   * Longitude zone number
+   */
+  private int    lngZone;
+
+
+  /**
+   * Create a new UTM reference object.
+   * 
+   * @param easting
+   *          the easting
+   * @param northing
+   *          the northing
+   * @param latZone
+   *          the latitude zone character
+   * @param lngZone
+   *          the longitude zone number
+   * @since 1.0
+   */
+  public UTMRef(double easting, double northing, char latZone, int lngZone) {
+    this.easting = easting;
+    this.northing = northing;
+    this.latZone = latZone;
+    this.lngZone = lngZone;
+  }
+
+
+  /**
+   * Convert this UTM reference to a latitude and longitude.
+   * 
+   * @return the converted latitude and longitude
+   * @since 1.0
+   */
+  public LatLng toLatLng() {
+    double UTM_F0 = 0.9996;
+    double a = RefEll.WGS84.getMaj();
+    double eSquared = RefEll.WGS84.getEcc();
+    double ePrimeSquared = eSquared / (1.0 - eSquared);
+    double e1 = (1 - Math.sqrt(1 - eSquared)) / (1 + Math.sqrt(1 - eSquared));
+    double x = easting - 500000.0;
+    ;
+    double y = northing;
+    int zoneNumber = lngZone;
+    char zoneLetter = latZone;
+
+    double longitudeOrigin = (zoneNumber - 1.0) * 6.0 - 180.0 + 3.0;
+
+    // Correct y for southern hemisphere
+    if ((zoneLetter - 'N') < 0) {
+      y -= 10000000.0;
+    }
+
+    double m = y / UTM_F0;
+    double mu =
+        m
+            / (a * (1.0 - eSquared / 4.0 - 3.0 * eSquared * eSquared / 64.0 - 5.0 * Math
+                .pow(eSquared, 3.0) / 256.0));
+
+    double phi1Rad =
+        mu + (3.0 * e1 / 2.0 - 27.0 * Math.pow(e1, 3.0) / 32.0)
+            * Math.sin(2.0 * mu)
+            + (21.0 * e1 * e1 / 16.0 - 55.0 * Math.pow(e1, 4.0) / 32.0)
+            * Math.sin(4.0 * mu) + (151.0 * Math.pow(e1, 3.0) / 96.0)
+            * Math.sin(6.0 * mu);
+
+    double n =
+        a / Math.sqrt(1.0 - eSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad));
+    double t = Math.tan(phi1Rad) * Math.tan(phi1Rad);
+    double c = ePrimeSquared * Math.cos(phi1Rad) * Math.cos(phi1Rad);
+    double r =
+        a
+            * (1.0 - eSquared)
+            / Math.pow(1.0 - eSquared * Math.sin(phi1Rad) * Math.sin(phi1Rad),
+                1.5);
+    double d = x / (n * UTM_F0);
+
+    double latitude =
+        (phi1Rad - (n * Math.tan(phi1Rad) / r)
+            * (d
+                * d
+                / 2.0
+                - (5.0 + (3.0 * t) + (10.0 * c) - (4.0 * c * c) - (9.0 * ePrimeSquared))
+                * Math.pow(d, 4.0) / 24.0 + (61.0 + (90.0 * t) + (298.0 * c)
+                + (45.0 * t * t) - (252.0 * ePrimeSquared) - (3.0 * c * c))
+                * Math.pow(d, 6.0) / 720.0))
+            * (180.0 / Math.PI);
+
+    double longitude =
+        longitudeOrigin
+            + ((d - (1.0 + 2.0 * t + c) * Math.pow(d, 3.0) / 6.0 + (5.0
+                - (2.0 * c) + (28.0 * t) - (3.0 * c * c)
+                + (8.0 * ePrimeSquared) + (24.0 * t * t))
+                * Math.pow(d, 5.0) / 120.0) / Math.cos(phi1Rad))
+            * (180.0 / Math.PI);
+
+    return new LatLng(latitude, longitude);
+  }
+
+
+  /**
+   * Work out the UTM latitude zone from the latitude.
+   * 
+   * @param latitude
+   *          the latitude to find the UTM latitude zone for
+   * @return the UTM latitude zone for the given latitude
+   * @since 1.0
+   */
+  public static char getUTMLatitudeZoneLetter(double latitude) {
+    if ((84 >= latitude) && (latitude >= 72))
+      return 'X';
+    else if ((72 > latitude) && (latitude >= 64))
+      return 'W';
+    else if ((64 > latitude) && (latitude >= 56))
+      return 'V';
+    else if ((56 > latitude) && (latitude >= 48))
+      return 'U';
+    else if ((48 > latitude) && (latitude >= 40))
+      return 'T';
+    else if ((40 > latitude) && (latitude >= 32))
+      return 'S';
+    else if ((32 > latitude) && (latitude >= 24))
+      return 'R';
+    else if ((24 > latitude) && (latitude >= 16))
+      return 'Q';
+    else if ((16 > latitude) && (latitude >= 8))
+      return 'P';
+    else if ((8 > latitude) && (latitude >= 0))
+      return 'N';
+    else if ((0 > latitude) && (latitude >= -8))
+      return 'M';
+    else if ((-8 > latitude) && (latitude >= -16))
+      return 'L';
+    else if ((-16 > latitude) && (latitude >= -24))
+      return 'K';
+    else if ((-24 > latitude) && (latitude >= -32))
+      return 'J';
+    else if ((-32 > latitude) && (latitude >= -40))
+      return 'H';
+    else if ((-40 > latitude) && (latitude >= -48))
+      return 'G';
+    else if ((-48 > latitude) && (latitude >= -56))
+      return 'F';
+    else if ((-56 > latitude) && (latitude >= -64))
+      return 'E';
+    else if ((-64 > latitude) && (latitude >= -72))
+      return 'D';
+    else if ((-72 > latitude) && (latitude >= -80))
+      return 'C';
+    else
+      return 'Z';
+  }
+
+
+  /**
+   * Convert this UTM reference to a String representation for printing out.
+   * 
+   * @return a String representation of this UTM reference
+   * @since 1.0
+   */
+  public String toString() {
+    return lngZone + Character.toString(latZone) + " " + easting + " "
+        + northing;
+  }
+
+
+  /**
+   * Get the easting.
+   * 
+   * @return the easting
+   * @since 1.0
+   */
+  public double getEasting() {
+    return easting;
+  }
+
+
+  /**
+   * Get the northing.
+   * 
+   * @return the northing
+   * @since 1.0
+   */
+  public double getNorthing() {
+    return northing;
+  }
+
+
+  /**
+   * Get the latitude zone character.
+   * 
+   * @return the latitude zone character
+   * @since 1.0
+   */
+  public char getLatZone() {
+    return latZone;
+  }
+
+
+  /**
+   * Get the longitude zone number.
+   * 
+   * @return the longitude zone number
+   * @since 1.0
+   */
+  public int getLngZone() {
+    return lngZone;
+  }
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/Util.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/Util.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/uk/me/jstott/jcoord/Util.java	(revision 2549)
@@ -0,0 +1,66 @@
+package uk.me.jstott.jcoord;
+
+/**
+ * Some utility functions used by classes in the uk.me.jstott.jcoord package.
+ * 
+ * (c) 2006 Jonathan Stott
+ * 
+ * Created on 11-Feb-2006
+ * 
+ * @author Jonathan Stott
+ * @version 1.0
+ * @since 1.0
+ */
+class Util {
+
+  /**
+   * Calculate sin^2(x).
+   * 
+   * @param x
+   *          x
+   * @return sin^2(x)
+   * @since 1.0
+   */
+  protected static double sinSquared(double x) {
+    return Math.sin(x) * Math.sin(x);
+  }
+
+
+  /**
+   * Calculate cos^2(x).
+   * 
+   * @param x
+   *          x
+   * @return cos^2(x)
+   * @since 1.0
+   */
+  protected static double cosSquared(double x) {
+    return Math.cos(x) * Math.cos(x);
+  }
+
+
+  /**
+   * Calculate tan^2(x).
+   * 
+   * @param x
+   *          x
+   * @return tan^2(x)
+   * @since 1.0
+   */
+  protected static double tanSquared(double x) {
+    return Math.tan(x) * Math.tan(x);
+  }
+
+
+  /**
+   * Calculate sec(x).
+   * 
+   * @param x
+   *          x
+   * @return sec(x)
+   * @since 1.0
+   */
+  protected static double sec(double x) {
+    return 1.0 / Math.cos(x);
+  }
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/DownloadWMSTask.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/DownloadWMSTask.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/DownloadWMSTask.java	(revision 2549)
@@ -0,0 +1,75 @@
+package wmsplugin;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.util.*;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.DownloadAction;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+
+ 
+
+public class DownloadWMSTask extends PleaseWaitRunnable {
+
+	private WMSLayer wmsLayer;
+	private double minlat, minlon, maxlat, maxlon;
+	
+	/* whether our layer was already added. */
+	private boolean layerAdded = false;
+	
+	
+	public DownloadWMSTask(String name, String wmsurl) {
+		
+		super(tr("Downloading " + name));
+		
+		// simply check if we already have a layer created. if not, create; if yes, reuse.
+		
+		if (wmsLayer == null) {
+			
+			if (wmsurl.matches("(?i).*layers=npeoocmap.*") || wmsurl.matches("(?i).*layers=npe.*") ){
+				//then we use the OSGBLayer
+				this.wmsLayer= new OSGBLayer(name, wmsurl);
+			} else {			
+				this.wmsLayer = new WMSLayer(name, wmsurl); 
+				
+			} 
+		} 
+	}
+	
+	@Override public void realRun() throws IOException {
+		wmsLayer.grab(minlat,minlon,maxlat,maxlon);
+	}
+
+	@Override protected void finish() {
+
+		// BUG if layer is deleted, wmsLayer is not null and layerAdded remains true!
+		// FIXED, see below
+		
+		layerAdded = false;
+		for (Iterator it = Main.map.mapView.getAllLayers().iterator(); it.hasNext(); ) {
+        Object  element = it.next();
+       
+        if (element.equals(wmsLayer)) layerAdded = true;
+        
+		}
+		 
+				
+		if ((wmsLayer != null) && (!layerAdded))
+		{
+			Main.main.addLayer(wmsLayer);
+			layerAdded = true;
+		}
+	}
+
+	@Override protected void cancel() {
+	}
+
+	public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
+		this.minlat=minlat;
+		this.minlon=minlon;
+		this.maxlat=maxlat;
+		this.maxlon=maxlon;
+		Main.worker.execute(this);
+	}
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Help_WMSmenuAction.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Help_WMSmenuAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Help_WMSmenuAction.java	(revision 2549)
@@ -0,0 +1,62 @@
+package wmsplugin;
+
+import java.awt.event.ActionEvent;
+import javax.swing.*;
+import org.openstreetmap.josm.actions.JosmAction;
+
+
+
+public class Help_WMSmenuAction extends JosmAction {
+
+	/**
+	 * 
+	 */
+	
+
+	public Help_WMSmenuAction() {
+		//super("Help / About");
+		super("help", "help", "Help  / About", 0, 0, false);
+		
+	}
+	
+	public void actionPerformed(ActionEvent e) {
+		//todo - put this into a txt file? 
+		  String helptext = 
+			"You can add, edit and delete WMS entries in the WMSplugin Preference Tab - "  +
+			"these will then show up in the WMS menu.\n\n"+
+			
+			"You can also do this manually in the Advanced Preferences, using the following schema:\n"+
+			"wmsplugin.url.1.name=Landsat\n"+
+			"wmsplugin.url.1.url=http://onearth.jpl.nasa.gov....\n"+
+			"wmsplugin.url.2.name=NPE Maps... etc\n\n"+
+					
+			"Full WMS URL input format example (landsat)\n"+
+			"http://onearth.jpl.nasa.gov/wms.cgi?request=GetMap&\n"+
+			"layers=global_mosaic&styles=&srs=EPSG:4326&\n"+
+			"format=image/jpeg \n\n"+
+			
+			"For Metacartas Map Rectifier http://labs.metacarta.com/rectifier/ , you only need to input the relevant 'id'.\n" +
+			"To add a Metacarta Map Rectifer menu item, manually create the url like in this example," +
+			"replacing 73 with your image id: \n" +
+			"http://labs.metacarta.com/rectifier/wms.cgi?id=73\n" +
+			"&srs=EPSG:4326&Service=WMS&Version=1.1.0&Request=GetMap&format=image/png\n" +
+			" \n" +
+			"Note: Make sure the image is suitable, copyright-wise, if in doubt, don't use.\n"+
+			 "WMS Plugin version: "+ WMSPlugin.VERSION ;		
+		
+		JTextPane tp = new JTextPane();
+		  JScrollPane js = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+				  JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+		 
+		  
+		  js.getViewport().add(tp);
+		  JFrame jf = new JFrame("WMS Plugin Help");
+		  jf.getContentPane().add(js);
+		  jf.pack();
+		  jf.setSize(400,500);
+		  jf.setVisible(true); 
+		  tp.setText(helptext);
+	
+}
+	
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Map_Rectifier_WMSmenuAction.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Map_Rectifier_WMSmenuAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/Map_Rectifier_WMSmenuAction.java	(revision 2549)
@@ -0,0 +1,66 @@
+package wmsplugin;
+
+import java.awt.event.ActionEvent;
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.gui.MapView;
+
+
+public class Map_Rectifier_WMSmenuAction extends JosmAction {
+
+	/**
+	 * tim waters "chippy"
+	 */
+	private static final long serialVersionUID = 1L;
+
+	public Map_Rectifier_WMSmenuAction() {
+		super("Rectified Image", "OLmarker", "Download Rectified Image from Metacarta's Map Rectifer WMS", 0, 0, false);
+
+
+	}
+	DownloadWMSTask downloadTask;
+
+	public void actionPerformed(ActionEvent e) {
+
+		//String newid;
+		String newURL = "";
+		String newid = "";
+
+		newid = JOptionPane.showInputDialog(Main.parent, "Metacarta Map Rectifier image id ");
+	//	System.out.println("newid= " +newid);
+		if (newid != null){
+
+
+			if (newid.compareTo("") != 0) 
+			{
+				newURL = "http://labs.metacarta.com/rectifier/wms.cgi?id="+newid+
+				"&srs=EPSG:4326&Service=WMS&Version=1.1.0&Request=GetMap&format=image/png";
+
+
+				//System.out.println(newURL);
+
+			//	if (downloadTask == null){
+					//System.out.println("new download task!");
+					downloadTask = new DownloadWMSTask("rectifier id="+newid, newURL);
+			//	}
+				MapView mv = Main.map.mapView;
+
+				downloadTask.download(null,
+						mv.getLatLon(0, mv.getHeight()).lat(),
+						mv.getLatLon(0, mv.getHeight()).lon(),
+						mv.getLatLon(mv.getWidth(), 0).lat(),
+						mv.getLatLon(mv.getWidth(), 0).lon());			
+
+
+			}
+		}
+		//else do nuffink
+
+	}
+
+
+
+}
+
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/NPE_WMSmenuAction.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/NPE_WMSmenuAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/NPE_WMSmenuAction.java	(revision 2549)
@@ -0,0 +1,52 @@
+package wmsplugin;
+
+import java.awt.event.ActionEvent;
+
+import javax.swing.AbstractAction;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+
+
+public class NPE_WMSmenuAction extends AbstractAction {
+
+	/**
+	 * 
+	 */
+	
+
+	public NPE_WMSmenuAction() {
+		super("Use NPE maps");
+		
+	}
+	
+	public void actionPerformed(ActionEvent e) {
+	
+		/*String npeURL = ("	http://www.getmapping.com/iedirectimage/getmappingwms.aspx?"+
+			"srs=EPSG:27700&Service=WMS&Version=1.1.0&"+
+			"Request=GetMap&format=image/jpeg&layers=npeoocmap");*/
+		
+		String npeURL = ("http://nick.dev.openstreetmap.org/openpaths/freemap.php?layers=npe&");
+			
+		
+
+			Main.pref.put("wmsplugin.url", npeURL);	
+	
+			JOptionPane.showMessageDialog(null, "WMS set to New Public Edition.");
+		
+		//need to reset the particular download task
+		//DownloadWMSTask
+		;
+		for (int i = 0; i < Main.main.menu.download.downloadTasks.size(); ++i) {
+			
+			if (Main.main.menu.download.downloadTasks.get(i).getPreferencesSuffix().compareTo("wmsplugin") == 0){
+				
+				Main.main.menu.download.downloadTasks.remove(i);
+			}
+		}
+
+
+
+	}
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/OSGBImage.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/OSGBImage.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/OSGBImage.java	(revision 2549)
@@ -0,0 +1,153 @@
+package wmsplugin;
+
+import uk.me.jstott.jcoord.OSRef;
+import uk.me.jstott.jcoord.LatLng;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+
+import java.awt.Graphics2D;
+import java.awt.BasicStroke;
+import java.awt.Point;
+import java.awt.Graphics;
+import java.awt.Color;
+
+public class OSGBImage extends WMSImage
+{
+	public OSGBImage(String constURL)
+	{
+		super(constURL);
+	}
+
+	public void grab(NavigatableComponent nc,double minlat,double minlon,
+			double maxlat,double maxlon) throws IOException
+	{
+		// To deal with the fact that grid refs and lat/lon don't align
+		LatLng ll1 = new LatLng(minlat,minlon),
+				ll2 = new LatLng(maxlat,maxlon),
+				ll3 = new LatLng(maxlat,minlon),
+				ll4 = new LatLng(minlat,maxlon);
+
+		ll1.toOSGB36();
+		ll2.toOSGB36();
+		ll3.toOSGB36();
+		ll4.toOSGB36();
+
+		OSRef bottomLeftGR = ll1.toOSRef(),
+			  topRightGR = ll2.toOSRef(),
+		 	topLeftGR =  ll3.toOSRef(),
+			  bottomRightGR =  ll4.toOSRef();
+
+		double w = Math.min(bottomLeftGR.getEasting(),
+								topLeftGR.getEasting()),
+			   s = Math.min(bottomLeftGR.getNorthing(),
+							   bottomRightGR.getNorthing()),
+			   e = Math.max(bottomRightGR.getEasting(),
+							   topRightGR.getEasting()),
+			   n = Math.max(topLeftGR.getNorthing(),
+							   topRightGR.getNorthing());
+
+		// Adjust topLeft and bottomRight due to messing around with
+		// projections
+		LatLng tl2 = new OSRef(w,n).toLatLng();
+		LatLng br2 = new OSRef(e,s).toLatLng();
+		tl2.toWGS84();
+		br2.toWGS84();
+
+		topLeft = Main.proj.latlon2eastNorth
+					(new LatLon(tl2.getLat(),tl2.getLng() ));
+		bottomRight = Main.proj.latlon2eastNorth
+					(new LatLon(br2.getLat(),br2.getLng() ));
+
+		grabbedScale = nc.getScale(); // enPerPixel
+
+		int widthPx = (int)((bottomRight.east()-topLeft.east())/grabbedScale),
+			heightPx = (int)
+				((topLeft.north()-bottomRight.north()) / grabbedScale);
+
+		try
+		{
+			URL url =  doGetURL(w,s,e,n,widthPx,heightPx);
+			doGrab(url);
+		}
+		catch(MalformedURLException ex)
+		{
+			System.out.println("Illegal url. Error="+ex);
+		}
+	}
+
+	public void paint(Graphics g,NavigatableComponent nc) 
+	{
+		if(theImage!=null)
+		{
+			super.paint(g,nc);
+			Graphics2D g2d = (Graphics2D)g;
+			g2d.setStroke(new BasicStroke(2));
+
+			// Display markers at the OSGB intersections.
+			// The code is very convoluted - projections really are fun
+			// things to deal with :-)
+			// Oh well, at least I can let someone else do the maths :-)
+
+			double zoomInFactor = grabbedScale / nc.getScale();
+
+			EastNorth topLeftDisplaced  = 
+				new EastNorth(topLeft.east()+dEast, topLeft.north()+dNorth);
+			EastNorth bottomRightDisplaced  = 
+				new EastNorth(bottomRight.east()+dEast,
+								bottomRight.north()+dNorth);
+
+			LatLon ll5 = Main.proj.eastNorth2latlon(topLeftDisplaced),
+				ll6 = Main.proj.eastNorth2latlon(bottomRightDisplaced);
+
+			LatLng ll7 = new LatLng(ll5.lat(),ll5.lon());
+			LatLng ll8 = new LatLng(ll6.lat(),ll6.lon());
+			ll7.toOSGB36();
+			ll8.toOSGB36();
+
+			LatLng curLatLng; 
+			EastNorth curEN;
+
+			
+			OSRef osgb1 = ll7.toOSRef(),
+				 osgb2 = ll8.toOSRef();
+
+			for(int easting=(int)(osgb1.getEasting()/1000) + 1; 
+					easting<=(int)(osgb2.getEasting()/1000);
+					easting++)
+			{
+				for (int northing=(int)(osgb1.getNorthing()/1000) ;
+					 northing>(int)(osgb2.getNorthing()/1000);
+					 northing--)
+				{
+					// Now we have to convert the OSGB eastings and northings
+					// *back* to EastNorth units so we can draw the 
+					// intersections....
+					// Not to mention converting between JOSM LatLon and
+					// JCoord LatLng....
+				
+
+					curLatLng = new OSRef(easting*1000,northing*1000).
+											toLatLng();
+					curLatLng.toWGS84();
+					curEN = Main.proj.latlon2eastNorth
+								(new LatLon(curLatLng.getLat(),
+											curLatLng.getLng() ) );
+
+					// draw a cross at the intersection 
+					Point p = Main.map.mapView.getPoint(curEN);
+					g.setColor(Color.BLUE);
+					g.drawLine(p.x-5,p.y,p.x+5,p.y);
+					g.drawLine(p.x,p.y-5,p.x,p.y+5);
+				}
+			}
+			g2d.setStroke(new BasicStroke(1));
+		}
+	}
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/OSGBLayer.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/OSGBLayer.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/OSGBLayer.java	(revision 2549)
@@ -0,0 +1,21 @@
+package wmsplugin;
+
+import java.io.IOException;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapView;
+
+public class OSGBLayer extends WMSLayer {
+
+	public OSGBLayer(String name, String constURL) {
+		super(name, constURL);
+	}
+
+	public void grab(double minlat,double minlon,double maxlat,double maxlon)
+	throws IOException {
+		MapView mv = Main.map.mapView;
+		OSGBImage npeImage = new OSGBImage(url);
+		npeImage.grab(mv,minlat,minlon,maxlat,maxlon);
+		wmsImages.add(npeImage);
+	}
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSAdjustAction.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSAdjustAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSAdjustAction.java	(revision 2549)
@@ -0,0 +1,92 @@
+package wmsplugin; 
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Cursor;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.actions.mapmode.MapMode;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.gui.layer.Layer;
+
+
+public class WMSAdjustAction extends MapMode implements
+		MouseListener, MouseMotionListener{
+
+	WMSImage selectedImage; 
+	boolean mouseDown;
+	EastNorth prevEastNorth;
+
+	public WMSAdjustAction(MapFrame mapFrame) {
+		super("landsatAdjust", "movelandsat", 
+						"Adjust the position of the WMS layer", mapFrame, 
+						ImageProvider.getCursor("normal", "move"));
+	}
+
+	@Override public void enterMode() {
+		super.enterMode();
+		Main.map.mapView.addMouseListener(this);
+		Main.map.mapView.addMouseMotionListener(this);
+	}
+
+	@Override public void exitMode() {
+		super.exitMode();
+		Main.map.mapView.removeMouseListener(this);
+		Main.map.mapView.removeMouseMotionListener(this);
+	}
+
+	@Override public void mousePressed(MouseEvent e) {
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+
+		 for(Layer layer:Main.map.mapView.getAllLayers()) {
+			if (layer instanceof WMSLayer) {
+				prevEastNorth=Main.map.mapView.getEastNorth(e.getX(),e.getY());
+				selectedImage = ((WMSLayer)layer).findImage(prevEastNorth);
+				if(selectedImage!=null){
+					Main.map.mapView.setCursor
+						(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
+				}
+			}
+		}
+	}
+
+	@Override public void mouseDragged(MouseEvent e) {
+			/*
+		if (e.getButton() != MouseEvent.BUTTON1)
+			return;
+			*/
+
+		if(selectedImage!=null) {
+			EastNorth eastNorth=
+					Main.map.mapView.getEastNorth(e.getX(),e.getY());
+			if(selectedImage.contains(eastNorth)) {
+				selectedImage.displace(eastNorth.east()-prevEastNorth.east(), 
+									eastNorth.north()-prevEastNorth.north());
+				prevEastNorth = eastNorth;
+			}
+			Main.map.mapView.repaint();
+		}
+	}
+
+	@Override public void mouseReleased(MouseEvent e) {
+		Main.map.mapView.repaint();
+		Main.map.mapView.setCursor(Cursor.getDefaultCursor());
+		selectedImage = null;	
+	}
+
+	public void mouseEntered(MouseEvent e) {
+	}
+	public void mouseExited(MouseEvent e) {
+	}
+	public void mouseMoved(MouseEvent e) {
+	}
+
+	@Override public void mouseClicked(MouseEvent e) {
+	}
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSDownloadAction.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSDownloadAction.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSDownloadAction.java	(revision 2549)
@@ -0,0 +1,36 @@
+package wmsplugin;
+
+import java.awt.event.ActionEvent;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.gui.MapView;
+
+public class WMSDownloadAction extends JosmAction {
+
+	private WMSInfo info;
+	
+	public WMSDownloadAction(WMSInfo info) {
+		super(info.name, "wmsmenu", "Download WMS tile from "+info.name, 0, 0, false);
+		this.info = info;
+	}
+	
+	public void actionPerformed(ActionEvent e) {
+		
+		// store the download task with the "info" object. if we create a new
+		// download task here every time, then different layers are displayed even
+		// for images from the same server, and we don't want that.
+		
+		if (info.downloadTask == null)
+			info.downloadTask = new DownloadWMSTask(info.name, info.url);
+		
+		MapView mv = Main.map.mapView;
+		
+		info.downloadTask.download(null,
+				mv.getLatLon(0, mv.getHeight()).lat(),
+				mv.getLatLon(0, mv.getHeight()).lon(),
+				mv.getLatLon(mv.getWidth(), 0).lat(),
+				mv.getLatLon(mv.getWidth(), 0).lon());			
+	}
+};
+
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSImage.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSImage.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSImage.java	(revision 2549)
@@ -0,0 +1,145 @@
+package wmsplugin;
+
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Point;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.imageio.ImageIO;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.NavigatableComponent;
+
+public class WMSImage
+{
+	String constURL;
+	protected Image theImage;
+	protected double grabbedScale;
+	protected EastNorth topLeft, bottomRight;
+	double dEast, dNorth;	
+
+	public WMSImage(String constURL)
+	{
+		this.constURL = constURL;
+	}
+
+	public void grab(NavigatableComponent nc) throws IOException
+	{
+
+		EastNorth topLeft  = nc.getEastNorth(0,0);
+		grabbedScale =  nc.getScale();  // scale is enPerPixel
+
+		this.topLeft = topLeft;
+
+		try
+		{
+			URL url = getURL(nc);
+			doGrab(url);
+		}
+		catch(MalformedURLException e)
+		{
+			System.out.println("Illegal url. Error="+e);
+		}
+	}
+
+	public void grab(NavigatableComponent nc,double minlat,double minlon,
+			double maxlat,double maxlon) throws IOException
+	{
+		LatLon p = new LatLon(minlat,minlon),
+				p2 = new LatLon(maxlat,maxlon);
+
+		grabbedScale = nc.getScale(); // enPerPixel
+
+		topLeft = Main.proj.latlon2eastNorth(new LatLon(maxlat,minlon));
+		bottomRight = Main.proj.latlon2eastNorth(new LatLon(minlat,maxlon));
+
+		int widthPx = (int)((bottomRight.east()-topLeft.east())/grabbedScale),
+		heightPx = (int)
+		((topLeft.north()-bottomRight.north()) / grabbedScale);
+
+		try
+		{
+			URL url =  doGetURL(p.lon(),p.lat(),
+									p2.lon(),p2.lat(),widthPx,heightPx);
+			doGrab(url);
+		}
+		catch(MalformedURLException e)
+		{
+			System.out.println("Illegal url. Error="+e);
+		}
+	}
+
+	private URL getURL(NavigatableComponent nc) throws MalformedURLException
+	{
+		double widthEN = nc.getWidth()*grabbedScale,
+		heightEN = nc.getHeight()*grabbedScale;
+		LatLon p = Main.proj.eastNorth2latlon(new EastNorth
+				(topLeft.east(), topLeft.north()-heightEN));
+		LatLon p2 = Main.proj.eastNorth2latlon(new EastNorth
+				(topLeft.east()+widthEN, topLeft.north()));
+		return doGetURL(p.lon(),p.lat(),p2.lon(),p2.lat(),
+						(int)(widthEN/grabbedScale),
+						(int)(heightEN/grabbedScale) );
+	}
+
+	protected URL doGetURL(double w,double s,double e,double n, int wi, 
+					int ht) throws MalformedURLException
+	{
+		String str = constURL + "&bbox=" + w +"," + s + ","+
+				e+","+n + "&width=" + wi + "&height=" + ht;
+		return new URL(str);
+	}
+
+	protected void doGrab (URL url) throws IOException
+	{
+		InputStream is = url.openStream();
+		theImage = ImageIO.read(is) ;
+		is.close();
+		Main.map.repaint();
+	}
+
+	public void displace (double dEast, double dNorth)
+	{
+	 	this.dEast += dEast;	
+	 	this.dNorth += dNorth;	
+	}
+
+	public boolean contains(EastNorth eastNorth)
+	{
+		double e1 = topLeft.east()+dEast, 
+			   e2 = bottomRight.east()+dEast,
+			   n1 = bottomRight.north()+dNorth,
+			   n2 = topLeft.north()+dNorth;
+
+		boolean b =  eastNorth.east()>=e1 && eastNorth.east()<=e2 &&
+				eastNorth.north()>=n1 && eastNorth.north()<=n2;
+		return b;
+	}
+
+	public void paint(Graphics g,NavigatableComponent nc) 
+	{
+		if(theImage!=null)
+		{
+			double zoomInFactor = grabbedScale / nc.getScale();
+
+			// Find the image x and y of the supplied bottom left
+			// This will be the difference in EastNorth units, divided by the
+			// grabbed scale in EastNorth/pixel.
+
+			int w = theImage.getWidth(null), h=theImage.getHeight(null);
+			EastNorth topLeftDisplaced  = 
+				new EastNorth(topLeft.east()+dEast, topLeft.north()+dNorth);
+			Point displacement = Main.map.mapView.getPoint(topLeftDisplaced);
+			g.drawImage(theImage,displacement.x,displacement.y,
+					(int)(displacement.x+w*zoomInFactor),
+					(int)(displacement.y+h*zoomInFactor),
+					0,0,w,h,null);
+		}
+	}
+
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSInfo.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSInfo.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSInfo.java	(revision 2549)
@@ -0,0 +1,27 @@
+package wmsplugin;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * Class that stores info about a WMS server.
+ * 
+ * @author Frederik Ramm <frederik@remote.org>
+ */
+public class WMSInfo {
+	
+	String name;
+	String url;
+	int prefid;
+	DownloadWMSTask downloadTask;
+	
+	public WMSInfo(String name, String url, int prefid) {
+		this.name=name; this.url=url; this.prefid=prefid;
+		downloadTask = null;
+	}
+	
+	public void save() {
+		Main.pref.put("wmsplugin.url." + prefid + ".name", name);
+		Main.pref.put("wmsplugin.url." + prefid + ".url", url);
+	}
+	
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSLayer.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSLayer.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSLayer.java	(revision 2549)
@@ -0,0 +1,124 @@
+package wmsplugin;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.Toolkit;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import javax.swing.Icon;
+import javax.swing.ImageIcon;
+import javax.swing.JMenuItem;
+import javax.swing.JSeparator;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.MapView;
+import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.data.coor.EastNorth;
+
+/**
+ * This is a layer that grabs the current screen from an WMS server. The data
+ * fetched this way is tiled and managerd to the disc to reduce server load.
+ */
+public class WMSLayer extends Layer {
+
+	protected static Icon icon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(WMSPlugin.class.getResource("/images/wms.png")));
+
+	protected final ArrayList<WMSImage> wmsImages;
+
+	protected final String url;
+
+	public WMSLayer(String name, String url) {
+		super(name);
+		// to calculate the world dimension, we assume that the projection does
+		// not have problems with translating longitude to a correct scale.
+		// Next to that, the projection must be linear dependend on the lat/lon
+		// unprojected scale.
+		if (Projection.MAX_LON != 180)
+			throw new IllegalArgumentException(tr
+					("Wrong longitude transformation for tile manager. "+
+							"Can't operate on {0}",Main.proj));
+
+		this.url = url;
+		//wmsImage = new WMSImage(url);
+		wmsImages = new ArrayList<WMSImage>();
+	}
+
+	public void grab() throws IOException
+	{
+		MapView mv = Main.map.mapView;
+		WMSImage wmsImage = new WMSImage(url);
+		wmsImage.grab(mv);
+		wmsImages.add(wmsImage);
+	}
+
+	public void grab(double minlat,double minlon,double maxlat,double maxlon)
+	throws IOException
+	{
+		MapView mv = Main.map.mapView;
+		WMSImage wmsImage = new WMSImage(url);
+		wmsImage.grab(mv,minlat,minlon,maxlat,maxlon);
+		wmsImages.add(wmsImage);
+	}
+
+	@Override public Icon getIcon() {
+		return icon;
+	}
+
+	@Override public String getToolTipText() {
+		return tr("WMS layer ({0}), {1} tile(s) loaded", name, wmsImages.size());
+	}
+
+	@Override public boolean isMergable(Layer other) {
+		return false;
+	}
+
+	@Override public void mergeFrom(Layer from) {
+	}
+
+	@Override public void paint(Graphics g, final MapView mv) {
+		for(WMSImage wmsImage : wmsImages) {
+			wmsImage.paint(g,mv);
+		}
+	}
+
+	@Override public void visitBoundingBox(BoundingXYVisitor v) {
+		// doesn't have a bounding box
+	}
+
+	@Override public Object getInfoComponent() {
+		return getToolTipText();
+	}
+
+	@Override public Component[] getMenuEntries() {
+		return new Component[]{
+				new JMenuItem(new LayerListDialog.ShowHideLayerAction(this)),
+				new JMenuItem(new LayerListDialog.DeleteLayerAction(this)),
+				new JSeparator(),
+				new JMenuItem(new LayerListPopup.InfoAction(this))};
+	}
+
+	public WMSImage findImage(EastNorth eastNorth)
+	{
+		for(WMSImage wmsImage : wmsImages) {
+			if (wmsImage.contains(eastNorth))  {
+				return wmsImage;
+			}
+		}
+		return null;
+	}
+
+	//to enable the removal of the images when the layer is removed.
+	public void destroy() {
+	
+		wmsImages.clear();
+		
+		
+	}
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSPlugin.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSPlugin.java	(revision 2549)
@@ -0,0 +1,132 @@
+package wmsplugin;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.TreeSet;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.IconToggleButton;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+
+
+// NW 151006 only add the landsat task when the map frame is initialised with
+// data.
+
+public class WMSPlugin extends Plugin {
+
+	static String VERSION = "2.4";
+	
+	DownloadWMSTask task;
+	WMSLayer wmsLayer;
+	static JMenu wmsJMenu;
+
+	static ArrayList<WMSInfo> wmsList = new ArrayList<WMSInfo>();
+	
+
+	
+	public WMSPlugin() {
+		
+		refreshMenu();
+		
+	}
+
+	// this parses the preferences settings. preferences for the wms plugin have to
+	// look like this:
+	// wmsplugin.1.name=Landsat
+	// wmsplugin.1.url=http://and.so.on/
+	
+	public static void refreshMenu() {
+		wmsList.clear();
+		Map<String,String> prefs = Main.pref.getAllPrefix("wmsplugin.url.");
+		
+		TreeSet<String> keys = new TreeSet<String>(prefs.keySet());
+		int prefid = 0;
+		String name = null;
+		String url = null;
+		int lastid = -1;
+		for (String key : keys) {
+			String[] elements = key.split("\\.");
+			if (elements.length != 4) continue;
+			try {
+				prefid = Integer.parseInt(elements[2]);
+			} catch(NumberFormatException e) {
+				continue;
+			}
+			if (prefid != lastid) {
+				if ((name != null) && (url != null)) {
+					wmsList.add(new WMSInfo(name, url, prefid));
+				}
+				name = null; url = null; lastid = prefid; 
+			}
+			if (elements[3].equals("name")) {
+				name=prefs.get(key);
+			} else if (elements[3].equals("url")) {
+				url = prefs.get(key);
+			}		
+		}
+		if ((name != null) && (url != null)) {
+			wmsList.add(new WMSInfo(name, url, prefid));
+		}
+		
+		// if no (valid) prefs are set, initialize to a sensible default.
+		if (wmsList.isEmpty()) {
+			WMSInfo landsatInfo = new WMSInfo("Landsat", 
+					"http://onearth.jpl.nasa.gov/wms.cgi?request=GetMap&"+
+					"layers=global_mosaic&styles=&srs=EPSG:4326&"+
+					"format=image/jpeg", 1);
+			landsatInfo.save();
+			wmsList.add(landsatInfo);
+			
+			WMSInfo npeInfo = new WMSInfo("NPE Maps", 
+					"http://nick.dev.openstreetmap.org/openpaths/freemap.php?layers=npe&", 2);
+			npeInfo.save();
+			wmsList.add(npeInfo);
+		}
+		
+		JMenuBar menu = Main.main.menu;
+
+		if (wmsJMenu == null) {
+			wmsJMenu = new JMenu(tr("WMS"));
+			menu.add(wmsJMenu, 3);
+			wmsJMenu.setEnabled(false);
+		} else {
+			wmsJMenu.removeAll();
+		}
+		
+		// for each configured WMSInfo, add a menu entry.
+		for (final WMSInfo u : wmsList) {
+			wmsJMenu.add(new JMenuItem(new WMSDownloadAction(u)));
+		}	
+		wmsJMenu.addSeparator();
+		wmsJMenu.add(new JMenuItem(new Map_Rectifier_WMSmenuAction()));
+		
+		wmsJMenu.addSeparator();
+		wmsJMenu.add(new JMenuItem(new Help_WMSmenuAction()));
+		
+		
+	
+	}
+	
+	public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
+		if(oldFrame==null && newFrame!=null) { 
+			wmsJMenu.setEnabled(true);
+			Main.map.toolBarActions.addSeparator();
+			Main.map.toolBarActions.add(new IconToggleButton
+						(new WMSAdjustAction(Main.map)));
+		} else if (oldFrame!=null && newFrame==null ) {
+			wmsJMenu.setEnabled(false);
+		}
+	}
+	
+	public PreferenceSetting getPreferenceSetting() {
+		return new WMSPreferenceEditor();
+	}
+}
Index: /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSPreferenceEditor.java
===================================================================
--- /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSPreferenceEditor.java	(revision 2549)
+++ /applications/editors/josm/plugins/wmsplugin/src/wmsplugin/WMSPreferenceEditor.java	(revision 2549)
@@ -0,0 +1,168 @@
+package wmsplugin;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.Dimension;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.HashMap;
+import java.util.Map;
+
+
+import javax.swing.Box;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.table.DefaultTableModel;
+
+
+import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+import org.openstreetmap.josm.tools.GBC;
+
+public class WMSPreferenceEditor implements PreferenceSetting {
+	
+	private Map<String,String> orig;
+	private DefaultTableModel model;
+	private int highestIdUsed = 0;
+	private HashMap<Integer, WMSInfo> oldValues = new HashMap<Integer, WMSInfo>();
+	
+	public void addGui(final PreferenceDialog gui) {
+		JPanel p = gui.createPreferenceTab("wms", tr("WMS Plugin Preferences"), tr("Modify list of WMS servers displayed in the WMS plugin menu"));
+		
+		model = new DefaultTableModel(new String[]{"#", "Menu Name", "WMS URL"}, 0) {
+			@Override public boolean isCellEditable(int row, int column) {
+				return column != 0;
+			}
+		};
+		final JTable list = new JTable(model);
+		list.getColumnModel().removeColumn(list.getColumnModel().getColumn(0));
+		JScrollPane scroll = new JScrollPane(list);
+		p.add(scroll, GBC.eol().fill(GBC.BOTH));
+		scroll.setPreferredSize(new Dimension(400,200));
+		
+		for (WMSInfo i : WMSPlugin.wmsList) {
+			oldValues.put(i.prefid, i);
+			model.addRow(new String[]{Integer.toString(i.prefid), i.name, i.url});
+			if (i.prefid > highestIdUsed) highestIdUsed = i.prefid;
+		}
+		
+		JButton add = new JButton(tr("Add"));
+		p.add(Box.createHorizontalGlue(), GBC.std().fill(GBC.HORIZONTAL));
+		p.add(add, GBC.std().insets(0,5,0,0));
+		add.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				JPanel p = new JPanel(new GridBagLayout());
+				p.add(new JLabel("Menu Name"), GBC.std().insets(0,0,5,0));
+				JTextField key = new JTextField(10);
+				JTextField value = new JTextField(10);
+				p.add(key, GBC.eop().insets(5,0,0,0).fill(GBC.HORIZONTAL));
+				p.add(new JLabel("WMS URL"), GBC.std().insets(0,0,5,0));
+				p.add(value, GBC.eol().insets(5,0,0,0).fill(GBC.HORIZONTAL));
+				int answer = JOptionPane.showConfirmDialog(gui, p, tr("Enter a menu name and WMS URL"), JOptionPane.OK_CANCEL_OPTION);
+				if (answer == JOptionPane.OK_OPTION) {
+					highestIdUsed++;
+					model.addRow(new String[]{Integer.toString(highestIdUsed), key.getText(), value.getText()});
+				}
+			}
+		});
+				
+		JButton delete = new JButton(tr("Delete"));
+		p.add(delete, GBC.std().insets(0,5,0,0));
+		delete.addActionListener(new ActionListener(){
+			public void actionPerformed(ActionEvent e) {
+				if (list.getSelectedRowCount() == 0) {
+					JOptionPane.showMessageDialog(gui, tr("Please select the row to delete."));
+					return;
+				}
+				while (list.getSelectedRow() != -1)
+					model.removeRow(list.getSelectedRow());
+			}
+		});
+	}
+	
+	public void ok() {
+		boolean change = false;
+		for (int i = 0; i < model.getRowCount(); ++i) {
+			int id = Integer.parseInt(model.getValueAt(i, 0).toString());
+			String name = model.getValueAt(i,1).toString();
+			String url = model.getValueAt(i,2).toString();
+			
+			WMSInfo origValue = oldValues.get(id);
+			if (origValue == null) {
+				new WMSInfo(name, url, id).save();
+				change = true;
+			} else {
+				if (origValue.name.equals(name) && origValue.url.equals(url)) {
+					// no change
+				} else {
+					origValue.name = name; 
+					origValue.url = url;
+					origValue.save();
+					change = true;
+				}
+				oldValues.remove(id);
+			}
+		}
+		
+		// josm doesn't seem to give us an option to delete preferences, 
+		// we can only overwrite them with empty strings...
+		for (WMSInfo i : oldValues.values()) {
+			i.url = ""; 
+			i.name = "";
+			i.save();
+			change = true;
+		}
+		
+		if (change) WMSPlugin.refreshMenu();
+	}
+	
+    /**
+     * Updates a server URL in the preferences dialog. Used by other plugins.
+     * 
+     * @param server The server name
+     * @param url The server URL
+     */
+    public void setServerUrl(String server, String url)
+    {
+        for (int i = 0; i < model.getRowCount(); i++) 
+        {
+            String name = model.getValueAt(i,1).toString();
+            if( name.equals(server) )
+            {
+                model.setValueAt(url, i, 2);
+                return;
+            }
+        }        
+
+        highestIdUsed++;
+        model.addRow(new String[]{Integer.toString(highestIdUsed), server, url});
+    }
+    
+    /**
+     * Gets a server URL in the preferences dialog. Used by other plugins.
+     * 
+     * @param server The server name
+     * @return The server URL
+     */
+    public String getServerUrl(String server)
+    {
+        for (int i = 0; i < model.getRowCount(); i++) 
+        {
+            String name = model.getValueAt(i,1).toString();
+            if( name.equals(server) )
+            {
+                String url = model.getValueAt(i,2).toString();
+                return url;
+            }
+        }
+        
+        return null;
+    }
+}
+
Index: /applications/editors/josm/plugins/ywms/.classpath
===================================================================
--- /applications/editors/josm/plugins/ywms/.classpath	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/.classpath	(revision 2549)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/josm"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JDK 5"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: /applications/editors/josm/plugins/ywms/.project
===================================================================
--- /applications/editors/josm/plugins/ywms/.project	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/.project	(revision 2549)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ywms</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /applications/editors/josm/plugins/ywms/README
===================================================================
--- /applications/editors/josm/plugins/ywms/README	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/README	(revision 2549)
@@ -0,0 +1,25 @@
+A plugin for JOSM that acts as a WMS server for Yahoo satellite imagery. Used with wmsplugin.
+
+From the announcement on talk:
+
+With this new plugin, you can now work with Yahoo satellite images inside
+JOSM, the same way the applet or the flash editor does. It is a port to java
+of the perl script that Frederik Ramm made a couple of months ago, so it
+uses the same approach: spawn a browser window that asks Yahoo the images
+using its API. However, this plugin works in windows too.
+
+To use Yahoo imagery, follow this steps:
+
+1.- Download and install YWMS from [1].
+2.- Download and install/update WMS plugin from [2]. IMPORTANT!!: upgrade if
+you already have this plugin.
+3.- Activate both plugins in JOSM and restart.
+4.- In preference settings, Yahoo tab, set the path to firefox executable,
+the name of a new profile for firefox and click  "create". This opens a new
+browser window. Click "Make changes" and accept the question. Close the
+browser.
+5.- Go to your favorite area, and click the menu option "WMS -> Yahoo" .
+6.- Enjoy
+
+Any modern Gecko browser ([3]) should work, not only firefox. However, I
+have only tested firefox (>1.5.)
Index: /applications/editors/josm/plugins/ywms/build.xml
===================================================================
--- /applications/editors/josm/plugins/ywms/build.xml	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/build.xml	(revision 2549)
@@ -0,0 +1,46 @@
+<project name="ywms" default="build" basedir=".">
+
+	<!-- point to your JOSM directory -->
+	<property name="josm" location="../josm/dist/josm-custom.jar" />
+
+
+	
+	<target name="init">
+		<mkdir dir="build"/>
+	</target>
+
+	<target name="compile" depends="init">
+		<javac srcdir="src" classpath="${josm}" destdir="build" debug="true">
+			<include name="**/*.java" />
+		</javac>
+	</target>
+
+	<target name="build" depends="compile">
+		<copy todir="build/resources">
+			<fileset dir="resources"/>
+		</copy>
+		<copy todir="build/images">
+			<fileset dir="images"/>
+		</copy>
+		<jar destfile="ywms.jar" basedir="build">
+			<manifest>
+				<attribute name="Plugin-Class" value="org.openstreetmap.josm.plugins.ywms.YWMSPlugin"/>
+				<attribute name="Plugin-Description" value="A WMS server for Yahoo imagery based on Firefox"/>
+				<attribute name="Author" value="Francisco R. Santos &lt;frsantos@gmail.com>"/>
+			</manifest>
+		</jar>
+	</target>
+
+	<target name="clean">
+		<delete dir="build" />
+	</target>
+
+	<target name="install" depends="build">
+		<copy file="ywms.jar" todir="${user.home}/.josm/plugins"/>
+	</target>
+
+	<target name="test" depends="install">
+		<java jar="${josm}" fork="true"/>
+	</target>
+
+</project>
Index: /applications/editors/josm/plugins/ywms/resources/config.html
===================================================================
--- /applications/editors/josm/plugins/ywms/resources/config.html	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/resources/config.html	(revision 2549)
@@ -0,0 +1,81 @@
+<html>
+  <head>
+    <title>YWMS plugin configuration</title>
+    <script type="text/javascript">
+    function configure()
+    {
+    	// Require privileges to change configuration
+	    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect UniversalPreferencesWrite UniversalPreferencesRead");
+    	var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
+		var ok = true;
+
+		// when this properties are created with "string" instead of "boolean", it throws an error
+		// Jus delete the profile and create again.
+    	try
+    	{
+	    	// Enable dump to console
+	    	prefs.setBoolPref("browser.dom.window.dump.enabled", true);
+			// navigator.preference("browser.dom.window.dump.enabled", true);
+		}
+		catch(err)
+		{
+			ok = false;
+			alert( "Error setting 'browser.dom.window.dump.enabled'=true :" + err );
+		}
+
+    	try
+    	{
+			// Disable resume from crash
+	    	prefs.setBoolPref("browser.sessionstore.resume_from_crash",false);
+			// navigator.preference("browser.sessionstore.resume_from_crash", "false");
+		}
+		catch(err)
+		{
+			ok = false;
+			alert( "Error setting 'browser.sessionstore.resume_from_crash'=false :" + err );
+		}
+		
+		if( ok )
+		{
+			document.getElementById("closeMsg").style.visibility = "inherit";
+			document.getElementById("errorMsg").style.visibility = "hidden";
+		}		// Seems that both configuration changes need differente ways of modification. Some mozilla bug??		
+		
+		else
+		{
+			document.getElementById("closeMsg").style.visibility = "hidden";
+			document.getElementById("errorMsg").style.visibility = "inherit";
+		}
+	}
+    </script>
+  
+  </head>
+
+<body>
+  <h2>YWMS Plugin configuration</h2>
+  
+  The configuration of the profile needs some extra modifications of the
+  browser profile:
+  <ol>
+  <li><h4>The Javascript method <i>dump</i> must be active.</h4>
+  	  This method allows Javascrip code to write data to the output stream of the browser, 
+  	  and can be activated with the config option <i>browser.dom.window.dump.enabled</i>.</li><br>
+  <li><h4>Session recovery must be inactive</h4>
+      Session crash recovery will try to reopen the pages you were viewing before a browser crash, 
+      but for this JOSM plugin, this feature is not useful. This feature can be deactivated 
+      with the config option <i>browser.sessionstore.resume_from_crash</i>
+  </li>
+  </ol>
+  
+  These configuration properties can be modified automatically just clicking in the button below, 
+  that will ask for permissions to do so. Just accept to allow the modifications.
+  <br>
+  <br>
+  <button type="button" name="configure" value="Configure" onClick="configure()">Make changes</button>
+  <br>
+  <br>
+  <div id="closeMsg" style="visibility:hidden;"><blink>Close this browser window to start using JOSM with the YWMS plugin</blink></div>
+  <div id="errorMsg" style="visibility:hidden;"><blink>Configuration properties not properly modified.</blink></div>
+  
+</body>
+</html>
Index: /applications/editors/josm/plugins/ywms/resources/ymap.html
===================================================================
--- /applications/editors/josm/plugins/ywms/resources/ymap.html	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/resources/ymap.html	(revision 2549)
@@ -0,0 +1,105 @@
+<html>
+  <head>
+    <script type="text/javascript">
+		var bbox = "";
+        var width  = 800;
+        var height = 800;
+
+		// Parse query string and set variables
+		var url = location.href;
+        var queryStringPos = url.indexOf("?");
+		if( queryStringPos != -1 )
+        {
+            url = url.substring(queryStringPos + 1);
+	    	var variables = url.split ("&");
+            for (i = 0; i < variables.length; i++) 
+            {
+            	if( !variables[i] )
+            		continue;
+                var keyValue = variables[i].split("=");
+                eval ('var '+keyValue[0].toLowerCase()+'="'+keyValue[1]+'"');
+            }
+        }
+        else
+        {
+            dump("YWMS ERROR: no queryString\n");
+        }
+        
+        // Limit size to current window's, to avoid memory problems
+        width = Math.min(width, screen.width);
+        height = Math.min(height, screen.height);
+        
+		// Don't know how to hide the window, so resize for the user to see it loading the aerial photo
+        window.moveTo(0,0);
+        window.resizeTo(width,height);
+    </script>
+    <script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.4&appid=z7qRk3_V34HAbY_SkC7u7GAgG5nDTblw.cuL1OS5LWGwkIIUeGjg4qsnJDPpmhoF"></script>
+  </head>
+  
+  <body style="margin: 0px">
+    <div id="map"></div>
+    <script type="text/javascript">
+      if( !bbox || !width || !height)
+      {
+          alert("YWMS ERROR: invalid parameters\n");
+      }
+      else
+      {
+          // Resize map container to parameter dimension
+          var mapDiv = document.getElementById("map");
+          mapDiv.style.width  = width;
+          mapDiv.style.height = height;
+
+          // Get the bounding box
+          var coords = bbox.split(",");
+          var tllon  = coords[0], tllat = coords[1];
+          var brlon  = coords[2], brlat = coords[3];
+
+          var points = new Array();
+          points[0] = new YGeoPoint(tllat, tllon);
+          points[1] = new YGeoPoint(brlat, brlon);
+
+          // other map types work as well but only satellite allowed for use with OSM!
+          var map = new YMap(document.getElementById("map"), YAHOO_MAP_SAT);
+          map.removeZoomScale();
+          var zac = map.getBestZoomAndCenter(points);
+          var level = zac.zoomLevel;
+           
+           // funny Yahoo bug seems to return 0 if your section is too small
+           if( level == 0 ) level = 1;
+           if (level>1) level--;
+           
+           map.drawZoomAndCenter(zac.YGeoPoint,level);
+
+		  // Get the on-screen coordinates of the points
+		  xy0 = map.convertLatLonXY(points[0]);
+		  xy1 = map.convertLatLonXY(points[1]);
+		  
+		  // Create a new size for the map. This makes the need of clipping the image unnecesary.
+		  new_width  = Math.abs( xy0.x - xy1.x);
+		  new_height = Math.abs( xy0.y - xy1.y);
+		  
+		  // Apply the new width-height
+          mapDiv.style.width  = new_width;
+          mapDiv.style.height = new_height;
+          map.resizeTo( new YSize(new_width, new_height));
+          
+		  /// DEBUG: colour the interesting area
+		  var cPT2 = new YGeoPoint(tllat, tllon); 
+		  var cPT3 = new YGeoPoint(tllat, brlon); 
+		  var cPT4 = new YGeoPoint(brlat, brlon); 
+		  var cPT5 = new YGeoPoint(brlat, tllon); 
+		  // args: array of pts, color, width, alpha 
+		  var poly1 = new YPolyline([cPT2,cPT3,cPT4,cPT5, cPT2],'blue',7,0.7); 
+		  //map.addOverlay(poly1);
+		 
+          var bounds = map.getBoundsLatLon();
+
+          // Dumps the actual bounding box
+          dump("bbox=" + bounds.LonMin + "," + bounds.LatMin + "," + bounds.LonMax + "," + bounds.LatMax + "\n");
+          dump("new_width=" + new_width + "\n");
+          dump("new_height=" + new_height + "\n");
+      }
+    </script>
+  </body>
+</html>
Index: /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/GeckoSupport.java
===================================================================
--- /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/GeckoSupport.java	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/GeckoSupport.java	(revision 2549)
@@ -0,0 +1,108 @@
+package org.openstreetmap.josm.plugins.ywms;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Map;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * Utility class for Gecko browsers operations
+ * 
+ * @author frsantos
+ */
+public class GeckoSupport 
+{
+
+	/**
+	 * Creates a profile in a gecko browser
+	 * @param browserPath The path to the executable 
+	 * @param profile The profile to create
+	 * @return The browser process that is creating the profile
+	 * @throws IOException 
+	 */
+	public static Process createProfile(String browserPath, String profile) throws IOException 
+	{
+		ArrayList<String> cmdParams = new ArrayList<String>();
+		cmdParams.add( browserPath );
+		cmdParams.add("-CreateProfile");
+		cmdParams.add( profile );
+	
+		System.out.println("YWMS::Create Firefox profile CMD:" + cmdParams);
+		ProcessBuilder builder = new ProcessBuilder( cmdParams );
+	
+		// Set Mozilla environment variable to avoid reusing same window if already open
+		builder.environment().put("MOZ_NO_REMOTE", "1");
+		
+        return startProcess(builder);
+	}
+
+    /**
+     * Starts the process
+     * 
+     * @param builder The builder for the process
+     * @return The started process
+     * @throws IOException If coulnd't start the process
+     */
+    private static Process startProcess(ProcessBuilder builder) throws IOException
+    {
+        try
+        {
+            return builder.start();
+        }
+        catch(IOException ioe)
+        {
+            throw new IOException( tr("Could not start browser. Please check that the executable path is correct.")); 
+        }
+    }
+	
+	/**
+	 * Browses a URL using a profile.
+	 * 
+	 * @param browserPath The path to the browser executable
+	 * @param profile If not empty, the profile to browse with
+	 * @param url The URL to browse
+	 * @param dump If true, every page loaded will be dumped to a PPM image
+	 * @return The browser process
+	 * @throws IOException If error
+	 */
+	public static Process browse(String browserPath, String profile, String url, boolean dump) throws IOException 
+	{
+		ArrayList<String> cmdParams = new ArrayList<String>();
+		cmdParams.add( browserPath );
+		if( profile != null && profile.length() != 0 )
+		{
+			cmdParams.add("-P");
+			cmdParams.add( profile );
+		}
+		cmdParams.add( url );
+
+		System.out.println("YWMS::Browsing URL CMD:" + cmdParams);
+		ProcessBuilder builder = new ProcessBuilder( cmdParams );
+
+		Map<String, String> environment = builder.environment();
+		// Set Mozilla environment variables
+		// This one avoids reusing same window if already open
+		environment.put("MOZ_NO_REMOTE", "1");
+		// This one causes Firefox to dump a screenshot of the viewport once the page has been loaded
+		if( dump )
+			environment.put("MOZ_FORCE_PAINT_AFTER_ONLOAD", System.getProperty("java.io.tmpdir") + "/ywms");
+		
+		return startProcess(builder);
+	}
+	
+	/**
+	 * Browses a URL using the configured profile.
+	 * 
+	 * @param url The URL to browse
+	 * @param dump If true, every page loaded will be dumped to a PPM image
+	 * @return The browser process
+	 * @throws IOException If error
+	 */
+	public static Process browse(String url, boolean dump) throws IOException
+	{
+		return browse(Main.pref.get("ywms.firefox", "firefox"), Main.pref.get("ywms.profile"), url, dump);
+	}
+}
Index: /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/HTTPServer.java
===================================================================
--- /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/HTTPServer.java	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/HTTPServer.java	(revision 2549)
@@ -0,0 +1,69 @@
+package org.openstreetmap.josm.plugins.ywms;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketException;
+
+/**
+ * Simple HTTP server that spawn a {@link RequestProcessor} for every connection.
+ * 
+ * @author frsantos
+  */
+public class HTTPServer extends Thread 
+{
+    /** Default port for the HTTP server */
+	public static final int DEFAULT_PORT = 8000;
+	
+	/** The server socket */
+	private ServerSocket server;
+
+	/**
+	 * Constructor
+	 * @param port The port this server will listen
+	 * @throws IOException when connection errors
+	 */
+	public HTTPServer(int port)
+		throws IOException 
+	{
+		super("YWMS HTTP Server");
+		this.setDaemon(true);
+		// Start the server socket with only 1 connection, because we can only start one firefox process
+		this.server = new ServerSocket(port, 1);
+	}
+
+	/**
+	 * The main loop, spawns a {@link RequestProcessor} for each connection
+	 */
+	public void run() 
+	{
+		System.out.println("YWMS::Accepting connections on port " + server.getLocalPort());
+		while (true) 
+		{
+			try 
+			{
+				Socket request = server.accept();
+				RequestProcessor.processRequest(request);
+			}
+			catch( SocketException se)
+			{
+				if( !server.isClosed() )
+					se.printStackTrace();
+			}
+			catch (IOException ioe) 
+			{
+				ioe.printStackTrace();
+			}
+		}
+	}
+	
+	/**
+     * Stops the HTTP server
+     *  
+     * @throws IOException
+	 */
+	public void stopServer() throws IOException
+	{
+		server.close();
+	}
+}
Index: /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/ImageLoader.java
===================================================================
--- /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/ImageLoader.java	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/ImageLoader.java	(revision 2549)
@@ -0,0 +1,294 @@
+package org.openstreetmap.josm.plugins.ywms;
+
+import java.awt.*;
+import java.awt.image.*;
+import java.io.*;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.imageio.ImageIO;
+
+
+/**
+ * Loads a stellite image from Yahoo accordin to a WMS request.
+ * <p>
+ * The image is captured from firefox using one of its features: when the
+ * environment variable MOZ_FORCE_PAINT_AFTER_ONLOAD is set, it causes firefox
+ * to dump, as PPM files, the contents of all the pages loaded. The value of the
+ * variable is used to locate where the files are dumped.
+ * <p>
+ * As the image served by Yahoo is bigger than the one requested, it is cropped
+ * and resized to the desired size.
+ * <p>
+ * Currently, there is no way of knowing whether a zone has imagery or not. If
+ * not, the Yahoo message "We're sorry, the data you have requested is not
+ * available. Please zoom out to see more map information or refresh your
+ * browser to try again".
+ * <p>
+ * <br>
+ * <b>Implementation note:</b> <lu>
+ * <li>Some information is passed from Javascript to Java, so Firefox must be
+ * configured with the method "dump" to work. To allow this method in firefox,
+ * create or modify the option "browser.dom.window.dump.enabled=true" in
+ * "about:config"
+ * <p>
+ * <li>Also, as firefox must be started and killed once and again, it is
+ * recommended to create a profile with the option
+ * "browser.sessionstore.resume_from_crash" to false and set other profile to
+ * default, so no nag screens are shown. </lu>
+ * 
+ * @author frsantos
+ * 
+ */
+public class ImageLoader 
+{
+	/** Firefox writes lines starting with this for each file loadded */
+	public static final String GECKO_DEBUG_LINE = "GECKO: PAINT FORCED AFTER ONLOAD:";
+
+	private URL yahooUrl;
+	double[] orig_bbox = null;
+    int width = -1;
+    int height = -1;
+    int final_width = -1;
+    int final_height = -1;
+	Image image;
+	List<String> firefoxFiles = new ArrayList<String>();
+
+	/** The regular expression used to locate the bounding boxes */
+	private static final Pattern BBOX_RE = Pattern.compile("bbox=([+-]?\\d+\\.\\d+),([+-]?\\d+\\.\\d+),([+-]?\\d+\\.\\d+),([+-]?\\d+\\.\\d+)", Pattern.CASE_INSENSITIVE); 
+
+	/**
+	 * Constructor.
+	 * 
+	 * @param wmsUrl The WMS request
+	 * @param pluginDir The directory of the plugin
+	 * @throws ImageLoaderException When error loading the image
+	 */
+	public ImageLoader(String wmsUrl) throws ImageLoaderException
+	{
+		System.out.println("YWMS::Requested WMS URL: " + wmsUrl);
+		try {
+			URL request = new URL("file:///page" + wmsUrl);
+			String query = request.getQuery().toLowerCase();
+			yahooUrl = new File(YWMSPlugin.getStaticPluginDir(), "ymap.html").toURI().toURL();
+			yahooUrl = new URL( yahooUrl.toExternalForm() + "?" + query);
+			
+			// Parse query to find original bounding box and dimensions
+        	StringTokenizer st = new StringTokenizer(query, "&");
+        	while( st.hasMoreTokens() )
+        	{
+        		String param = st.nextToken();
+        		if( param.startsWith("width=") )
+        			width=Integer.parseInt(param.substring("width=".length()));
+        		else if( param.startsWith("height=") )
+        			height=Integer.parseInt(param.substring("height=".length()));
+        		else if( param.startsWith("bbox=") )
+        		{
+        			orig_bbox = getBbox(param);
+        		}
+        	}
+        	
+        	if( width == -1 || height == -1)
+        		throw new ImageLoaderException("Can't find dimensions");
+        	
+        	load();
+		} 
+		catch (MalformedURLException e) {
+			throw new ImageLoaderException(e);
+		}
+	}
+
+	/**
+	 * Does the hard work.
+	 * <p>
+	 * It spawns a Firefox process with an HTML page that loads Yahoo imagery
+	 * using Yahoo's AJAX API. Firefox must be configured to allow the "dump"
+	 * method for this to work.
+	 * <p>
+	 * The image is cropped and reescaled to meet requested dimensions.
+	 * @throws ImageLoaderException When error loading the page
+	 */
+	private void load() throws ImageLoaderException
+	{
+		Process browser = null;
+		try 
+		{
+			browser = GeckoSupport.browse(yahooUrl.toString(), true);
+			// TODO: set focus in main window
+			File imageFilePpm = null;
+
+			// Parse output
+			BufferedReader in = new BufferedReader( new InputStreamReader( browser.getInputStream() ) );
+			String line = in.readLine();
+	        while( line != null ) 
+	        {
+	        	System.out.println("YWMS::" + line);
+                if( line.startsWith("new_width=") )
+                {
+                    final_width = (int)Math.round( Double.parseDouble( line.substring(10)) );
+                }
+                else if( line.startsWith("new_height=") )
+                {
+                    final_height = (int)Math.round( Double.parseDouble( line.substring(11)) );
+                }
+	            else if( line.startsWith(GECKO_DEBUG_LINE))
+	            {
+	            	// Find out the screenshot file
+	            	StringTokenizer st = new StringTokenizer(line);
+	            	// Skip header
+	            	for( int i = 0; i < 5; i++) st.nextToken();
+	            	String url = st.nextToken();
+	            	String file = st.nextToken();
+	            	firefoxFiles.add(file);
+	            	
+	            	URL browserUrl;
+	            	try {
+	            		browserUrl = new URL(url);	
+		            	if( browserUrl.sameFile(yahooUrl))
+		            	{
+			            	String status = st.nextToken();
+			            	if( !"(OK)".equals(status) )
+			            		throw new ImageLoaderException("Firefox couldn't load image");
+			            	
+			            	imageFilePpm = new File(file);
+			            	break;
+		            	}
+					} 
+	            	catch (MalformedURLException mue) 
+	            	{
+						// Probably a mozilla "chrome://" URL. Do nothing
+					}
+	            }
+	            else if( line.startsWith("WYMS ERROR:") )
+	            {
+		        	throw new ImageLoaderException("Error in JavaScript page:" + line);
+	            }
+	            line = in.readLine();
+	        }
+
+	        if( final_width == -1 && imageFilePpm == null && !firefoxFiles.isEmpty() )
+	        {
+	        	throw new ImageLoaderException("Is there any other firefox window open with same profile?");
+	        }
+	        if( final_width == -1)
+	        {
+	        	throw new ImageLoaderException("Couldn't find new dimension. Is browser.dom.window.dump.enabled set in Firefox config?");
+	        }
+	        if( imageFilePpm == null )
+	        {
+	        	throw new ImageLoaderException("Couldn't find dumped image. Is it a modern Gecko browser (i.e., firefox 1.5)?");
+	        }
+	        
+            PPM ppmImage = new PPM(imageFilePpm.getAbsolutePath());
+            image = ppmImage.getImage();
+            cleanImages();
+
+	        resizeImage();
+		} catch (IOException e) 
+		{
+			throw new ImageLoaderException(e);
+		}
+		finally
+		{
+			if( browser != null )
+			    browser.destroy();
+		}
+	}
+
+	/**
+	 * Transforms the Image into a BufferedImage
+	 * @return The current image as a BufferedImage
+	 */
+	public BufferedImage getBufferedImage() 
+	{
+		if( image == null )
+			return null;
+		
+		BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+        Graphics g = bufferedImage.createGraphics();
+        g.setColor(Color.white);
+        g.fillRect(0, 0, width, height);
+        g.drawImage(image, 0, 0, null);
+        g.dispose();
+
+        return bufferedImage;
+	}
+
+	/**
+	 * Resizes the image to meet the requested dimensions
+	 */
+	private void resizeImage() 
+	{
+		Toolkit tk = Toolkit.getDefaultToolkit();
+        //save("/tmp/image_orig.png");
+        image = tk.createImage (new FilteredImageSource (image.getSource(), new CropImageFilter(0, 0, final_width, final_height)));
+        //save("/tmp/image_crop.png");
+        image = tk.createImage (new FilteredImageSource (image.getSource(), new ReplicateScaleFilter(width, height)));
+        //save("/tmp/image_scale.png");
+	}
+
+	/**
+	 * Parses a line of the form bbox=xmin,ymin,xmax,ymax and extracts the bounding box
+	 * 
+	 * @param line The string to parse
+	 * @return The bound box as a double array[4]
+	 * @throws ImageLoaderException
+	 */
+	private double[] getBbox(String line) throws ImageLoaderException
+	{
+    	Matcher matcher = BBOX_RE.matcher(line);
+    	if( !matcher.matches() )
+    	{
+    		throw new ImageLoaderException("Can't find bounding box");
+    	}
+    	
+    	double[] bbox = new double[4];
+    	for( int i = 0; i < 4; i++)
+    	{
+    		bbox[i] = Double.parseDouble( matcher.group(i+1) );
+    	}
+    	
+    	return bbox;
+	}
+	
+	/**
+	 * Saves the current image as a PNG file
+	 * @param fileName The name of the new file 
+	 * @throws IOException When error saving the file
+	 */
+	public void save(String fileName)
+	{
+        try
+        {
+            FileOutputStream fileStream = new FileOutputStream(fileName);
+            ImageIO.write(getBufferedImage(), "png", fileStream);
+            fileStream.close();
+        }
+        catch(Exception e)
+        {
+            e.printStackTrace();
+        }
+	}
+	
+	/**
+	 * Delete all images created by firefox when they are not longer used
+	 */
+	public void cleanImages() 
+	{
+		for(String fileName : firefoxFiles)
+		{
+			try
+			{
+				File file = new File(fileName);
+				file.delete();
+			}
+			catch(Exception e) { }
+		}
+		
+	}
+}
Index: /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/ImageLoaderException.java
===================================================================
--- /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/ImageLoaderException.java	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/ImageLoaderException.java	(revision 2549)
@@ -0,0 +1,38 @@
+package org.openstreetmap.josm.plugins.ywms;
+
+/**
+ * Exception when loading images with a mozilla browser
+ * 
+ * @author frsantos
+ *
+ */
+public class ImageLoaderException extends Exception 
+{
+    /**
+     * Constructor
+     */
+	public ImageLoaderException() 
+	{
+		super();
+	}
+
+
+    /**
+     * Constructor 
+     * 
+     * @param msg The exception message
+     */
+	public ImageLoaderException(String msg) 
+	{
+		super(msg);
+	}
+
+    /**
+     * Constructor 
+     * @param t the nested exception
+     */
+	public ImageLoaderException(Throwable t) 
+	{
+		super(t);
+	}
+}
Index: /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/PPM.java
===================================================================
--- /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/PPM.java	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/PPM.java	(revision 2549)
@@ -0,0 +1,109 @@
+package org.openstreetmap.josm.plugins.ywms;
+
+import java.awt.Dimension;
+import java.awt.Image;
+import java.awt.Toolkit;
+import java.awt.image.MemoryImageSource;
+import java.io.*;
+
+/**
+ * PPM Image loader.
+ * <p>
+ * This loader handles only one type of PPM files: binary(P6) with 255 colors.
+ */
+public class PPM
+{
+	/** The image dimension */
+	protected Dimension dim = new Dimension();
+	
+	/** The pixels of the image in ARGB format  */
+	protected int[] data;
+
+	/**
+	 * Creates a PPM image from a file
+	 * <p>
+	 * The stream must contain a binary PPM (type P6 in the header) of 255 colors
+	 * 
+	 * @param filename The name of the file to read the PPM from
+	 * @throws IOException when failing to read the file
+	 * @throws UnsupportedEncodingException if file is not a binary(P6) PPM of 255 colors 
+	 */
+	public PPM(String filename) throws IOException, UnsupportedEncodingException
+	{
+		FileInputStream fis = new FileInputStream(filename);
+		
+		// XXX: The source data to the StreamTokenizer can't buffered, since we
+		// only need a few lines of the beginning of the file, and all remain
+		// data must be processed later. Even a InputStreamReader does some
+		// internal buffering, so we must use a deprecated constructor, create
+		// our own Reader or create some methods to simulate a StreamTokenizer.
+		// Easy way chosen :-)
+		StreamTokenizer st = new StreamTokenizer(fis);
+		st.commentChar('#');
+
+		/* PPM file format:
+		 * 
+		 * #			  --> Comments allowed anywere before binary data
+		 * P3|P6          --> ASCII/Binary
+		 * WIDTH          --> image width, in ascii
+		 * HEIGHT         --> image height, in ascii
+		 * COLORS		  --> num colors, in ascii
+		 * [data]		  --> if P6, data in binary, 3 RGB bytes per pixel 
+		 */
+
+		st.nextToken();
+		if( !st.sval.equals("P6") )
+			throw new UnsupportedEncodingException("Not a P6 (binary) PPM");
+		
+		st.nextToken();
+		dim.width = (int) Math.round(st.nval);
+		st.nextToken();
+		dim.height = (int) Math.round(st.nval);
+		data = new int[dim.width * dim.height];
+
+		st.nextToken(); 
+		int maxVal = (int) Math.round(st.nval); 
+		if( maxVal != 255 )
+			throw new UnsupportedEncodingException("Not a 255 color PPM");
+				
+		// Binary data cann be buffered
+		InputStream in = new BufferedInputStream(fis);
+		int numPixels = dim.width * dim.height;
+		for (int i = 0; i < numPixels; i++)
+		{
+			int r = in.read();
+			int g = in.read();
+			int b = in.read();
+			if( r== -1 || g == -1 || b == -1)
+				throw new IOException("EOF:" + r + " " + g + " " + b);
+			
+			data[i] = rgb(r, g, b);
+		}
+		in.close();		
+	}
+
+
+	/**
+	 * Creates an AWT image using the raw data
+	 * @return The AWT image
+	 */
+	public Image getImage()
+	{
+		MemoryImageSource memoryImageSource = new MemoryImageSource(dim.width, dim.height, data, 0, dim.width);
+		return Toolkit.getDefaultToolkit().createImage(memoryImageSource);
+	}
+
+	/**
+	 * Makes an ARGB pixel from three color values
+	 * @param r The red value
+	 * @param g The green value
+	 * @param b The blue value
+	 * @return The ARGB value
+	 * 
+	 */
+	private static int rgb(int r, int g, int b)
+	{
+		return (255 << 24 | (r << 16) | (g << 8) | b);
+	}
+
+}
Index: /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/RequestProcessor.java
===================================================================
--- /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/RequestProcessor.java	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/RequestProcessor.java	(revision 2549)
@@ -0,0 +1,168 @@
+package org.openstreetmap.josm.plugins.ywms;
+
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.net.Socket;
+import java.util.Date;
+import java.util.StringTokenizer;
+
+import javax.imageio.ImageIO;
+    
+/**
+ * Processes each of the WMS cliente requests, and serves the PNG image of the
+ * area.
+ * <p>
+ * This class acts as a very simple HTTP server, that only understands WMS GET
+ * requests.
+ * 
+ * @author frsantos
+ */
+public class RequestProcessor extends Thread 
+{
+	private Socket request;
+  
+	/**
+	 * Constructor
+	 * 
+	 * @param request The WMS request
+	 * @param pluginDir The directory of the plugin
+	 */
+	public RequestProcessor(Socket request) 
+	{
+	    super("YWMS request processor");
+	    this.setDaemon(true);
+		this.request = request;
+	}
+  
+	/**
+	 * Spawns a new thread for the request
+	 * 
+	 * @param request The WMS request
+	 */
+	public static void processRequest(Socket request) 
+	{
+		RequestProcessor processor = new RequestProcessor(request);
+		processor.start();
+	}  
+  
+	/**
+	 * The work is done here.
+	 * <p>
+	 * It parses the request and extracts the URL requested, used to load the
+	 * image, and serves it back
+	 */
+	public void run() 
+	{
+		Writer out = null;
+		try 
+		{            
+	        OutputStream raw = new BufferedOutputStream( request.getOutputStream() );         
+	        out = new OutputStreamWriter(raw);
+	        Reader in = new InputStreamReader( new BufferedInputStream( request.getInputStream(  ) ), "ASCII" );
+	        
+	        StringBuffer requestLine = new StringBuffer();
+	        while (true) 
+	        {
+	            int c = in.read();
+	            if (c == '\r' || c == '\n') break;
+	            requestLine.append((char) c);
+	        }
+	        
+	        String get = requestLine.toString();
+	        StringTokenizer st = new StringTokenizer(get);
+	        String method = st.nextToken();
+	        String url = st.nextToken();
+
+	        if( !method.equals("GET") )
+	        {
+	        	sendNotImplemented(out);
+	        	return;
+	        }
+
+	        // Load the image
+	        ImageLoader imageLdr = new ImageLoader(url);
+            BufferedImage wmsImage = imageLdr.getBufferedImage();
+            
+            // send the image data
+            ByteArrayOutputStream imageStream = new ByteArrayOutputStream();
+            ImageIO.write(wmsImage, "jpeg", imageStream);
+            byte[] data = imageStream.toByteArray();
+            
+			sendHeader(out, "200 OK", "image/jpeg", false);
+            out.write("Content-length: " + data.length + "\r\n");
+            out.write("\r\n");
+            out.flush();
+            
+            raw.write(data);
+            raw.flush();
+		}
+		catch (IOException ioe) { }
+		catch(Exception e)
+		{
+			e.printStackTrace();
+			try 
+			{
+				sendError(out);
+			} 
+			catch (IOException e1) { }
+		}
+		finally 
+		{
+	        try 
+	        {
+	        	request.close();        
+	        }
+	        catch (IOException e) {} 
+		}
+	}
+
+	/**
+	 * Sends a 500 error: server error
+	 */
+	private void sendError(Writer out) throws IOException
+	{
+		sendHeader(out, "500 Internal Server Error", "text/html", true);
+		out.write("<HTML>\r\n");
+		out.write("<HEAD><TITLE>Internal Error</TITLE>\r\n");
+		out.write("</HEAD>\r\n");
+		out.write("<BODY>");
+		out.write("<H1>HTTP Error 500: Internal Server Error</h2>\r\n");
+		out.write("</BODY></HTML>\r\n");
+		out.flush();
+	}
+
+	/**
+	 * Sends a 501 error: not implemented
+	 */
+	private void sendNotImplemented(Writer out) throws IOException
+	{
+		sendHeader(out, "501 Not Implemented", "text/html", true);
+		out.write("<HTML>\r\n");
+		out.write("<HEAD><TITLE>Not Implemented</TITLE>\r\n");
+		out.write("</HEAD>\r\n");
+		out.write("<BODY>");
+		out.write("<H1>HTTP Error 501: Not Implemented</h2>\r\n");
+		out.write("</BODY></HTML>\r\n");
+		out.flush();
+	}
+	
+	/**
+	 * Send common HTTP headers to the client.
+	 * 
+	 * @param out The Writer
+	 * @param status The status string ("200 OK", "500", etc)
+	 * @param contentType The content type of the data sent
+	 * @param endHeaders If true, adds a new line, ending the headers.
+	 * @throws IOException When error
+	 */
+	private void sendHeader(Writer out, String status, String contentType, boolean endHeaders) throws IOException
+	{
+		out.write("HTTP/1.1 " + status + "\r\n");
+		Date now = new Date();
+		out.write("Date: " + now + "\r\n");
+        out.write("Server: YWMS Server 1.0\r\n");
+        out.write("Content-type: " + contentType + "\r\n");
+        if( endHeaders )
+        	out.write("\r\n");
+	}
+}
Index: /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/YWMSPlugin.java
===================================================================
--- /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/YWMSPlugin.java	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/YWMSPlugin.java	(revision 2549)
@@ -0,0 +1,169 @@
+package org.openstreetmap.josm.plugins.ywms;
+
+import java.io.IOException;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+import org.openstreetmap.josm.plugins.Plugin;
+import org.openstreetmap.josm.plugins.PluginProxy;
+
+/**
+ * 
+ * YWMS server
+ * <p>
+ * Emulates a primitive WMS server (only GetMap requests) that serves Yahoo!
+ * satellite images.
+ * <p>
+ * This plugin is heavily based on Frederik Ramm <frederik@remote.org> YWMS
+ * server in perl (see
+ * http://lists.openstreetmap.org/pipermail/dev/2007-January/002814.html), so
+ * most of the calculations and documentation is taken from his code. However,
+ * this plugin does not need any X server to run, because of a Firefox feature
+ * that dumps all loaded pages to PPM files, activated through the environment
+ * variable MOZ_FORCE_PAINT_AFTER_ONLOAD, pointing to the directory and prefix
+ * of the generated image files.
+ * <p>
+ * For each incoming request:
+ * <ul>
+ * <li>starts a firefox instance to render the web page
+ * <li>converts the resulting image to jpeg and returns it
+ * </ul>
+ * <p>
+ * This method can theoretically be used to display maps from any web site where
+ * the API supports selecting a geographic region AND includes a call to find
+ * out the region actually displayed.
+ * <p>
+ * This is required because most such services have discrete zoom levels, while
+ * the WMS request issued by josm expects to receive EXACTLY the coordinates
+ * requested in an image of the requested pixel size.
+ * <p>
+ * The HTML/Javscript used by this server uses the Yahoo! API to display an
+ * image depicting the selected area in the best available zoom level and then
+ * inquires about the area actually displayed, which will always be larger than
+ * what was requested. This information is then written to stdout using the
+ * "dump" Javascript command. From there it is read by this server, and used to
+ * stretch and cut the resulting browser image to the size requested in the WMS
+ * request.
+ * <p>
+ * To illustrate: <lu>
+ * <li>josm says "I want the area (48.5,7.0)-(48.8,7.1) as a 1000x800 pixel
+ * image"
+ * <li>we ask Yahoo about the best zoom level to display this area on 1000x800
+ * and request the image
+ * <li>we ask Yahoo about the extents actually displayed and receive the
+ * answer: (48.45,6.95)-(48.85,7.15)
+ * <li>This is .4 degrees high (we requested .3 degrees high) and .2 degrees
+ * wide (we requested .1 wide).
+ * <li>We scale the image to 1333x1600 and cut a 1000x800 section from the
+ * middle, knowing that this will now be exactly .3 degrees by .1 degrees (minus
+ * projection errors of course!) <lu>
+ * <p>
+ * <br>
+ * <b>Implementation note:</b> <lu>
+ * <li>Some information is passed from Javascript to Java, so Firefox must be
+ * configured with the method "dump" to work. To allow this method in firefox,
+ * create or modify the option "browser.dom.window.dump.enabled=true" in
+ * "about:config"
+ * <p>
+ * <li>Also, as firefox must be started and killed once and again, it is
+ * recommended to create a profile with the option
+ * "browser.sessionstore.resume_from_crash" to false and set other profile to
+ * default, so no nag screens are shown. </lu>
+ * 
+ * @author Francisco R. Santos <frsantos@gmail.com>
+ * @author Frederik Ramm <frederik@remote.org>
+ * @version 0.2 03/10/2007
+ */
+public class YWMSPlugin extends Plugin 
+{
+	static HTTPServer server;
+    
+	/**
+	 * Creates the plugin, and starts the HTTP server
+	 */
+	public YWMSPlugin()
+	{
+        WARNING. This compilation error is made on purpose. 
+        We are not allowed to use this plugin at present.
+        Please, don't use it until all legal issues are resolved.
+        
+		try
+		{
+			copy("/resources/ymap.html", "ymap.html");
+			copy("/resources/config.html", "config.html");
+			restartServer();
+		}
+		catch(IOException e)
+		{
+			e.printStackTrace();
+		}
+	}
+	
+    @Override
+	public PreferenceSetting getPreferenceSetting() 
+	{
+		return new YWMSPreferenceSetting();
+	}
+	
+	/**
+	 * Starts or restarts the HTTP server
+	 *
+	 */
+	public void restartServer()
+	{
+		try
+		{
+			if( server != null )
+				server.stopServer();
+			
+			int port;
+			String strPort = Main.pref.get("ywms.port");
+			try
+			{
+				port = Integer.parseInt( strPort );
+			}
+			catch(Exception e)
+			{
+				System.out.println("YWMS::Invalid port '" + strPort + "'. Using default " + HTTPServer.DEFAULT_PORT);
+				port = HTTPServer.DEFAULT_PORT;
+			}
+			server = new HTTPServer(port);
+			server.start();
+		}
+		catch(IOException ioe)
+		{
+			ioe.printStackTrace();
+		}
+	}
+	
+    /** 
+     * Returns the plugin's directory
+     * <p>
+     * Utility method for classes that can't acces the plugin object
+     * 
+     * @return The directory of the plugin
+     */
+    public static String getStaticPluginDir()
+    {
+        YWMSPlugin plugin = getPlugin();
+        return ( plugin != null ) ? plugin.getPluginDir() : null;
+    }
+
+    /**
+     * Utility method to retrieve the plugin for classes that can't access to the plugin object directly.
+     * 
+     * @return The YWMS plugin
+     */
+    public static YWMSPlugin getPlugin()
+    {
+        for (PluginProxy plugin : Main.plugins)
+        {
+            if( plugin.info.className.equals(YWMSPlugin.class.getName()) )
+            {
+                return (YWMSPlugin)plugin.plugin;
+            }
+        }
+        
+        return null;
+    }
+}
Index: /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/YWMSPreferenceSetting.java
===================================================================
--- /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/YWMSPreferenceSetting.java	(revision 2549)
+++ /applications/editors/josm/plugins/ywms/src/org/openstreetmap/josm/plugins/ywms/YWMSPreferenceSetting.java	(revision 2549)
@@ -0,0 +1,210 @@
+package org.openstreetmap.josm.plugins.ywms;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.*;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+
+import javax.swing.*;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
+import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.I18n;
+
+/**
+ * Preference settings for the YWMS plugin
+ * 
+ * @author frsantos
+ */
+public class YWMSPreferenceSetting implements PreferenceSetting
+{
+    /** WMS server name */
+    public static final String WMS_NAME  = "Yahoo";
+    /** WMS URL server parameters */
+    public static final String WMS_URL_PARAMS = "/ymap?request=GetMap&format=image/jpeg";
+
+    private JTextField firefox = new JTextField(10);
+    private JTextField port    = new JTextField(10);
+    private JTextField profile = new JTextField(10);
+    
+    public void addGui( final PreferenceDialog gui ) 
+    {
+    	firefox.setToolTipText(tr("<html>Path to firefox executable.<br>" + 
+    							  "The Firefox profile used in this plugin <b>must</b> be configured with the javascript 'dump' method,<br>" + 
+    							  "that can be activated with the property 'browser.dom.window.dump.enabled=true' in the about:config page.</html>"));
+    	port.setToolTipText(tr("<html>The port that the server will use to listen WMS requests<br>" +
+    						   "The WMS plugin need to be configured to use this port"));
+    	profile.setToolTipText(tr("<html>Name of the profile.<br>" + 
+    							  "This profile is used to avoid nag firefox screens asking you to resume failed sessions.<br>" +
+    							  "Just set the selected profile as not default in the profile selection window and configure to not ask<br>" + 
+    							  "about failed sessions with 'browser.sessionstore.resume_from_crash=false' in the about:config page"
+    							 ));
+
+    	JPanel ywms = gui.createPreferenceTab("yahoo.gif", I18n.tr("Yahoo! WMS server"), I18n.tr("Settings for the Yahoo! imagery server."));
+    	ywms.add(new JLabel(tr("YWMS options")), GBC.eol().insets(0,5,0,0));
+
+    	ywms.add(new JLabel(tr("Firefox executable")), GBC.std().insets(10,5,5,0));
+        ywms.add(firefox, GBC.eol().insets(0,5,0,0).fill(GBC.HORIZONTAL));
+        
+        ywms.add(new JLabel(tr("Firefox profile")), GBC.std().insets(10,5,5,0));
+        ywms.add(profile, GBC.std().insets(0,5,0,0).fill(GBC.HORIZONTAL));
+		JButton create = new JButton(tr("Create"));
+		ywms.add(create, GBC.eol().insets(5,0,0,0).fill(GBC.EAST));
+		create.addActionListener(new ProfileCreatorActionListener());
+        
+        ywms.add(new JLabel(tr("Server port")), GBC.std().insets(10,5,5,0));
+        ywms.add(port, GBC.eol().insets(0,5,0,0).fill(GBC.HORIZONTAL));
+		ywms.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.VERTICAL));
+        WMSConfigurationActionListener configurationActionListener = new WMSConfigurationActionListener();
+        port.addActionListener(configurationActionListener);
+        port.addFocusListener(configurationActionListener);
+		
+        firefox.setText(Main.pref.get("ywms.firefox", "firefox"));
+        profile.setText(Main.pref.get("ywms.profile"));
+        port.setText(Main.pref.get("ywms.port", "8000"));
+    }
+    
+    public void ok() 
+    {
+        Main.pref.put("ywms.firefox", firefox.getText());
+        Main.pref.put("ywms.profile", profile.getText());
+
+        String oldPort = Main.pref.get("ywms.port");
+        Main.pref.put("ywms.port", port.getText());
+        if( !oldPort.equals(port.getText()) )
+        {
+            YWMSPlugin plugin = YWMSPlugin.getPlugin();
+            plugin.restartServer();
+        }
+    }
+
+    /**
+     * ActionListener for the configuration of WMS plugin  
+     * @author frsantos
+     */
+    private final class WMSConfigurationActionListener implements ActionListener, FocusListener
+    {
+        boolean alreadyHandled = false;
+        public void actionPerformed(ActionEvent e) 
+        {
+            if( !alreadyHandled )
+                configureWMSPluginPreferences();
+            alreadyHandled = true;
+        }
+
+        public void focusGained(FocusEvent e)
+        {
+            alreadyHandled = false;
+        }
+
+        public void focusLost(FocusEvent e)
+        {
+            if( !alreadyHandled )
+                configureWMSPluginPreferences();
+            alreadyHandled = true;
+        }
+    }
+    
+    /**
+     * ActionListener for the creation of a Mozilla profile  
+     * @author frsantos
+     */
+    private final class ProfileCreatorActionListener implements ActionListener
+    {
+        public void actionPerformed(ActionEvent e) 
+        {
+            String profileName = profile.getText();
+            if( profileName == null || profileName.length() == 0)
+            {
+                JOptionPane.showMessageDialog(Main.parent, tr("Please name the profile you want to create."));
+                return;
+            }
+            
+            try
+            {
+                PleaseWaitRunnable createProfileTask = new PleaseWaitRunnable(tr("Creating profile"))
+                {
+                    Process process = null;
+                    @Override 
+                    protected void realRun() throws IOException
+                    {
+                        process = GeckoSupport.createProfile(firefox.getText(), profile.getText());
+                        try {
+                            process.waitFor();
+                        } 
+                        catch (InterruptedException e) 
+                        {
+                            IOException ioe = new IOException();
+                            ioe.initCause(e);
+                            throw ioe;
+                        }
+                        
+                        String configFile = new File(YWMSPlugin.getStaticPluginDir(), "config.html").toURL().toString(); 
+                        GeckoSupport.browse(firefox.getText(), profile.getText(), configFile, false);
+                        configureWMSPluginPreferences();
+                    }
+                    
+                    @Override 
+                    protected void finish() {}
+                    
+                    @Override 
+                    protected void cancel() 
+                    {
+                        if( process != null )
+                            process.destroy();
+                    }
+                };                  
+                Main.worker.execute(createProfileTask);
+            }
+            catch(Exception e2)
+            {
+                
+            }
+        }
+    }
+    
+    /**
+     * Configures WMSPlugin preferences with a server "Yahoo" pointing to YWMS  
+     * @param gui 
+     */
+    private void configureWMSPluginPreferences()
+    {
+        try 
+        {
+            PreferenceSetting wmsSetting = null;
+            for( PreferenceSetting setting : PreferenceDialog.settings)
+            {
+                if( setting.getClass().getName() == "wmsplugin.WMSPreferenceEditor" )
+                {
+                    wmsSetting = setting;
+                    break;
+                }
+            }
+            
+            if( wmsSetting == null )
+                return;
+            
+            int portNumber = Integer.parseInt(port.getText());
+            String strUrl = (String)wmsSetting.getClass().getMethod("getServerUrl", String.class).invoke(wmsSetting, WMS_NAME);
+            if( strUrl == null )
+                strUrl = new URL("http", "localhost", portNumber, WMS_URL_PARAMS).toString();
+            else
+            {
+                URL oldUrl = new URL(strUrl);
+                strUrl = new URL("http", oldUrl.getHost(), portNumber, WMS_URL_PARAMS).toString();
+            }
+            wmsSetting.getClass().getMethod("setServerUrl", String.class, String.class).invoke(wmsSetting, WMS_NAME, strUrl);
+        } catch (NoSuchMethodException e) {
+        } catch (NumberFormatException nfe) {
+        }
+        catch (Exception e) 
+        {
+            e.printStackTrace();
+        }
+    }
+}
