Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1018)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1019)
@@ -14,4 +14,5 @@
 import java.util.Collection;
 import java.util.LinkedList;
+import java.util.Locale;
 
 import javax.swing.ImageIcon;
@@ -44,4 +45,5 @@
 	protected ElemStyles styles;
 	protected double circum;
+	protected String regionalNameOrder[];
 
 	protected boolean isZoomOk(ElemStyle e) {
@@ -226,5 +228,5 @@
 		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");
+		String name = getNodeName(n);
 		if (name!=null && annotate)
 		{
@@ -240,4 +242,15 @@
 			g.drawRect (p.x-w/2-2,p.y-w/2-2, w+4, h+4);
 		}
+	}
+
+	protected String getNodeName(Node n) {
+		String name = null;
+		if (n.keys != null) {
+			for (int i = 0; i < regionalNameOrder.length; i++) {
+				name = n.keys.get(regionalNameOrder[i]);
+				if (name != null) break;
+			}
+		}
+		return name;
 	}
 
@@ -322,4 +335,6 @@
 		styles = MapPaintStyles.getStyles();
 		orderFont = new Font(Main.pref.get("mappaint.font","Helvetica"), Font.PLAIN, Main.pref.getInteger("mappaint.fontsize", 8));
+		String currentLocale = Locale.getDefault().getLanguage();
+		regionalNameOrder = Main.pref.get("mappaint.nameOrder", "name:"+currentLocale+";name;int_name").split(";");
 
 		if(styles.hasAreas())
