]> git.openstreetmap.org Git - rails.git/commitdiff
Update to iD v1.3.1
authorJohn Firebaugh <john.firebaugh@gmail.com>
Sat, 26 Oct 2013 23:56:43 +0000 (16:56 -0700)
committerJohn Firebaugh <john.firebaugh@gmail.com>
Sat, 26 Oct 2013 23:56:43 +0000 (16:56 -0700)
41 files changed:
vendor/assets/iD/iD.css.erb
vendor/assets/iD/iD.js
vendor/assets/iD/iD/img/maki-sprite.png
vendor/assets/iD/iD/locales/af.json
vendor/assets/iD/iD/locales/ar.json
vendor/assets/iD/iD/locales/ast.json
vendor/assets/iD/iD/locales/bg-BG.json
vendor/assets/iD/iD/locales/bs.json
vendor/assets/iD/iD/locales/ca.json
vendor/assets/iD/iD/locales/cs.json
vendor/assets/iD/iD/locales/da.json
vendor/assets/iD/iD/locales/de.json
vendor/assets/iD/iD/locales/el.json
vendor/assets/iD/iD/locales/en-GB.json
vendor/assets/iD/iD/locales/en.json
vendor/assets/iD/iD/locales/es.json
vendor/assets/iD/iD/locales/et.json
vendor/assets/iD/iD/locales/fi.json
vendor/assets/iD/iD/locales/fr.json
vendor/assets/iD/iD/locales/hu.json
vendor/assets/iD/iD/locales/id.json
vendor/assets/iD/iD/locales/is.json
vendor/assets/iD/iD/locales/it.json
vendor/assets/iD/iD/locales/ja.json
vendor/assets/iD/iD/locales/ko.json
vendor/assets/iD/iD/locales/lv.json
vendor/assets/iD/iD/locales/nl.json
vendor/assets/iD/iD/locales/no.json
vendor/assets/iD/iD/locales/pl.json
vendor/assets/iD/iD/locales/pt-BR.json
vendor/assets/iD/iD/locales/pt.json
vendor/assets/iD/iD/locales/sk.json
vendor/assets/iD/iD/locales/sr.json
vendor/assets/iD/iD/locales/sv.json
vendor/assets/iD/iD/locales/te.json
vendor/assets/iD/iD/locales/tr.json
vendor/assets/iD/iD/locales/uk.json
vendor/assets/iD/iD/locales/vi.json
vendor/assets/iD/iD/locales/zh-CN.json
vendor/assets/iD/iD/locales/zh-TW.json
vendor/assets/iD/iD/locales/zh.json

index a79d63b4b50666d6d6429a9478989e16ef25e196..206ceb621d03c8f23923d3b80402baff5a2c2555 100644 (file)
@@ -4145,99 +4145,107 @@ img.wiki-image {
 .preset-icon{background-image:url(<%= asset_path("iD/img/maki-sprite.png") %>);background-repeat:no-repeat;width:24px;height:24px;}
 .preset-icon-line{background-image:url(<%= asset_path("iD/img/line-presets.png") %>);background-repeat:no-repeat;width:60px;height:60px;}
 .preset-icon-relation{background-image:url(<%= asset_path("iD/img/relation-presets.png") %>);background-repeat:no-repeat;width:60px;height:60px;}
-.feature-airfield{background-position:-0px -34px;}
-.feature-airport{background-position:-0px -94px;}
-.feature-alcohol-shop{background-position:-0px -154px;}
-.feature-america-football{background-position:-0px -214px;}
-.feature-art-gallery{background-position:-0px -274px;}
-.feature-bank{background-position:-0px -334px;}
-.feature-bar{background-position:-0px -394px;}
-.feature-baseball{background-position:-0px -454px;}
-.feature-basketball{background-position:-0px -514px;}
-.feature-beer{background-position:-0px -574px;}
-.feature-bicycle{background-position:-0px -634px;}
-.feature-building{background-position:-0px -694px;}
-.feature-bus{background-position:-0px -754px;}
-.feature-cafe{background-position:-0px -814px;}
-.feature-campsite{background-position:-0px -874px;}
-.feature-cemetery{background-position:-0px -934px;}
-.feature-cinema{background-position:-0px -994px;}
-.feature-circle{background-position:-0px -1054px;}
-.feature-circle-stroked{background-position:-0px -1114px;}
-.feature-city{background-position:-0px -1174px;}
-.feature-college{background-position:-0px -1234px;}
-.feature-commercial{background-position:-0px -1294px;}
-.feature-cricket{background-position:-0px -1354px;}
-.feature-cross{background-position:-0px -1414px;}
-.feature-dam{background-position:-0px -1474px;}
-.feature-danger{background-position:-0px -1534px;}
-.feature-disability{background-position:-0px -1594px;}
-.feature-embassy{background-position:-0px -1654px;}
-.feature-emergency-telephone{background-position:-0px -1714px;}
-.feature-farm{background-position:-0px -1774px;}
-.feature-fast-food{background-position:-0px -1834px;}
-.feature-ferry{background-position:-0px -1894px;}
-.feature-fire-station{background-position:-0px -1954px;}
-.feature-fuel{background-position:-0px -2014px;}
-.feature-garden{background-position:-0px -2074px;}
-.feature-golf{background-position:-0px -2134px;}
-.feature-grocery{background-position:-0px -2194px;}
-.feature-harbor{background-position:-0px -2254px;}
-.feature-heliport{background-position:-0px -2314px;}
-.feature-hospital{background-position:-0px -2374px;}
-.feature-industrial{background-position:-0px -2434px;}
-.feature-land-use{background-position:-0px -2494px;}
-.feature-library{background-position:-0px -2554px;}
-.feature-lodging{background-position:-0px -2614px;}
-.feature-logging{background-position:-0px -2674px;}
-.feature-marker{background-position:-0px -2734px;}
-.feature-marker-stroked{background-position:-0px -2794px;}
-.feature-monument{background-position:-0px -2854px;}
-.feature-museum{background-position:-0px -2914px;}
-.feature-music{background-position:-0px -2974px;}
-.feature-oil-well{background-position:-0px -3034px;}
-.feature-park{background-position:-0px -3094px;}
-.feature-park2{background-position:-0px -3154px;}
-.feature-parking{background-position:-0px -3214px;}
-.feature-parking-garage{background-position:-0px -3274px;}
-.feature-pharmacy{background-position:-0px -3334px;}
-.feature-pitch{background-position:-0px -3394px;}
-.feature-place-of-worship{background-position:-0px -3454px;}
-.feature-police{background-position:-0px -3514px;}
-.feature-post{background-position:-0px -3574px;}
-.feature-prison{background-position:-0px -3634px;}
-.feature-rail{background-position:-0px -3694px;}
-.feature-rail-above{background-position:-0px -3754px;}
-.feature-rail-underground{background-position:-0px -3814px;}
-.feature-religious-christian{background-position:-0px -3874px;}
-.feature-religious-jewish{background-position:-0px -3934px;}
-.feature-religious-muslim{background-position:-0px -3994px;}
-.feature-restaurant{background-position:-0px -4054px;}
-.feature-roadblock{background-position:-0px -4114px;}
-.feature-school{background-position:-0px -4174px;}
-.feature-shop{background-position:-0px -4234px;}
-.feature-skiing{background-position:-0px -4294px;}
-.feature-slaughterhouse{background-position:-0px -4354px;}
-.feature-soccer{background-position:-0px -4414px;}
-.feature-square{background-position:-0px -4474px;}
-.feature-square-stroked{background-position:-0px -4534px;}
-.feature-star{background-position:-0px -4594px;}
-.feature-star-stroked{background-position:-0px -4654px;}
-.feature-swimming{background-position:-0px -4714px;}
-.feature-telephone{background-position:-0px -4774px;}
-.feature-tennis{background-position:-0px -4834px;}
-.feature-theatre{background-position:-0px -4894px;}
-.feature-toilets{background-position:-0px -4954px;}
-.feature-town{background-position:-0px -5014px;}
-.feature-town-hall{background-position:-0px -5074px;}
-.feature-triangle{background-position:-0px -5134px;}
-.feature-triangle-stroked{background-position:-0px -5194px;}
-.feature-village{background-position:-0px -5254px;}
-.feature-warehouse{background-position:-0px -5314px;}
-.feature-waste-basket{background-position:-0px -5374px;}
-.feature-water{background-position:-0px -5434px;}
-.feature-wetland{background-position:-0px -5494px;}
-.feature-zoo{background-position:-0px -5554px;}
+.feature-circle-stroked{background-position:-0px -0px;}
+.feature-circle{background-position:-54px -0px;}
+.feature-square-stroked{background-position:-108px -0px;}
+.feature-square{background-position:-162px -0px;}
+.feature-triangle-stroked{background-position:-216px -0px;}
+.feature-triangle{background-position:-0px -24px;}
+.feature-star-stroked{background-position:-54px -24px;}
+.feature-star{background-position:-108px -24px;}
+.feature-cross{background-position:-162px -24px;}
+.feature-marker-stroked{background-position:-216px -24px;}
+.feature-marker{background-position:-0px -48px;}
+.feature-religious-jewish{background-position:-54px -48px;}
+.feature-religious-christian{background-position:-108px -48px;}
+.feature-religious-muslim{background-position:-162px -48px;}
+.feature-cemetery{background-position:-216px -48px;}
+.feature-rocket{background-position:-0px -72px;}
+.feature-airport{background-position:-54px -72px;}
+.feature-heliport{background-position:-108px -72px;}
+.feature-rail{background-position:-162px -72px;}
+.feature-rail-underground{background-position:-216px -72px;}
+.feature-rail-above{background-position:-0px -96px;}
+.feature-bus{background-position:-54px -96px;}
+.feature-fuel{background-position:-108px -96px;}
+.feature-parking{background-position:-162px -96px;}
+.feature-parking-garage{background-position:-216px -96px;}
+.feature-airfield{background-position:-0px -120px;}
+.feature-roadblock{background-position:-54px -120px;}
+.feature-ferry{background-position:-108px -120px;}
+.feature-harbor{background-position:-162px -120px;}
+.feature-bicycle{background-position:-216px -120px;}
+.feature-park{background-position:-0px -144px;}
+.feature-park2{background-position:-54px -144px;}
+.feature-museum{background-position:-108px -144px;}
+.feature-lodging{background-position:-162px -144px;}
+.feature-monument{background-position:-216px -144px;}
+.feature-zoo{background-position:-0px -168px;}
+.feature-garden{background-position:-54px -168px;}
+.feature-campsite{background-position:-108px -168px;}
+.feature-theatre{background-position:-162px -168px;}
+.feature-art-gallery{background-position:-216px -168px;}
+.feature-pitch{background-position:-0px -192px;}
+.feature-soccer{background-position:-54px -192px;}
+.feature-america-football{background-position:-108px -192px;}
+.feature-tennis{background-position:-162px -192px;}
+.feature-basketball{background-position:-216px -192px;}
+.feature-baseball{background-position:-0px -216px;}
+.feature-golf{background-position:-54px -216px;}
+.feature-swimming{background-position:-108px -216px;}
+.feature-cricket{background-position:-162px -216px;}
+.feature-skiing{background-position:-216px -216px;}
+.feature-school{background-position:-0px -240px;}
+.feature-college{background-position:-54px -240px;}
+.feature-library{background-position:-108px -240px;}
+.feature-post{background-position:-162px -240px;}
+.feature-fire-station{background-position:-216px -240px;}
+.feature-town-hall{background-position:-0px -264px;}
+.feature-police{background-position:-54px -264px;}
+.feature-prison{background-position:-108px -264px;}
+.feature-embassy{background-position:-162px -264px;}
+.feature-beer{background-position:-216px -264px;}
+.feature-restaurant{background-position:-0px -288px;}
+.feature-cafe{background-position:-54px -288px;}
+.feature-shop{background-position:-108px -288px;}
+.feature-fast-food{background-position:-162px -288px;}
+.feature-bar{background-position:-216px -288px;}
+.feature-bank{background-position:-0px -312px;}
+.feature-grocery{background-position:-54px -312px;}
+.feature-cinema{background-position:-108px -312px;}
+.feature-pharmacy{background-position:-162px -312px;}
+.feature-hospital{background-position:-216px -312px;}
+.feature-danger{background-position:-0px -336px;}
+.feature-industrial{background-position:-54px -336px;}
+.feature-warehouse{background-position:-108px -336px;}
+.feature-commercial{background-position:-162px -336px;}
+.feature-building{background-position:-216px -336px;}
+.feature-place-of-worship{background-position:-0px -360px;}
+.feature-alcohol-shop{background-position:-54px -360px;}
+.feature-logging{background-position:-108px -360px;}
+.feature-oil-well{background-position:-162px -360px;}
+.feature-slaughterhouse{background-position:-216px -360px;}
+.feature-dam{background-position:-0px -384px;}
+.feature-water{background-position:-54px -384px;}
+.feature-wetland{background-position:-108px -384px;}
+.feature-disability{background-position:-162px -384px;}
+.feature-telephone{background-position:-216px -384px;}
+.feature-emergency-telephone{background-position:-0px -408px;}
+.feature-toilets{background-position:-54px -408px;}
+.feature-waste-basket{background-position:-108px -408px;}
+.feature-music{background-position:-162px -408px;}
+.feature-land-use{background-position:-216px -408px;}
+.feature-city{background-position:-0px -432px;}
+.feature-town{background-position:-54px -432px;}
+.feature-village{background-position:-108px -432px;}
+.feature-farm{background-position:-162px -432px;}
+.feature-bakery{background-position:-216px -432px;}
+.feature-dog-park{background-position:-0px -456px;}
+.feature-lighthouse{background-position:-54px -456px;}
+.feature-clothing-store{background-position:-108px -456px;}
+.feature-london-underground{background-position:-162px -456px;}
+.feature-minefield{background-position:-216px -456px;}
+.feature-camera{background-position:-0px -480px;}
 .preset-icon-line.feature-highway-motorway{background-position:-20px -25px;}
 .preset-icon-line.feature-highway-trunk{background-position:-80px -25px;}
 .preset-icon-line.feature-highway-primary{background-position:-140px -25px;}
index 0b0a390080fc3b31f53a16cabf8319ae4ef7a199..9fe1e16e2eb7230dadde5ce08744f859ad28b88f 100644 (file)
@@ -15378,6 +15378,7 @@ if (typeof exports === 'object') {
 }).call(function() {
   return this || (typeof window !== 'undefined' ? window : global);
 }());
+/* jshint ignore:start */
 (function () {
 'use strict';
 window.iD = function () {
@@ -15406,7 +15407,9 @@ window.iD = function () {
             else storage.setItem(k, v);
         } catch(e) {
             // localstorage quota exceeded
+            /* jshint devel:true */
             if (typeof console !== 'undefined') console.error('localStorage quota exceeded');
+            /* jshint devel:false */
         }
     };
 
@@ -15489,7 +15492,7 @@ window.iD = function () {
             var result = fn.apply(history, arguments);
             debouncedSave();
             return result;
-        }
+        };
     }
 
     context.perform = withDebouncedSave(history.perform);
@@ -15690,13 +15693,13 @@ window.iD = function () {
     return d3.rebind(context, dispatch, 'on');
 };
 
-iD.version = '1.3.0';
+iD.version = '1.3.1';
 
 (function() {
     var detected = {};
 
     var ua = navigator.userAgent,
-        msie = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
+        msie = new RegExp('MSIE ([0-9]{1,}[\\.0-9]{0,})');
 
     if (msie.exec(ua) !== null) {
         var rv = parseFloat(RegExp.$1);
@@ -15940,7 +15943,7 @@ iD.util.entityOrMemberSelector = function(ids, graph) {
         var entity = graph.hasEntity(id);
         if (entity && entity.type === 'relation') {
             entity.members.forEach(function(member) {
-                s += ',.' + member.id
+                s += ',.' + member.id;
             });
         }
     });
@@ -16025,7 +16028,7 @@ iD.util.editDistance = function(a, b) {
     for (var j = 0; j <= a.length; j++) { matrix[0][j] = j; }
     for (i = 1; i <= b.length; i++) {
         for (j = 1; j <= a.length; j++) {
-            if (b.charAt(i-1) == a.charAt(j-1)) {
+            if (b.charAt(i-1) === a.charAt(j-1)) {
                 matrix[i][j] = matrix[i-1][j-1];
             } else {
                 matrix[i][j] = Math.min(matrix[i-1][j-1] + 1, // substitution
@@ -16053,6 +16056,7 @@ iD.util.fastMouse = function(container) {
     };
 };
 
+/* jshint -W103 */
 iD.util.getPrototypeOf = Object.getPrototypeOf || function(obj) { return obj.__proto__; };
 
 iD.util.asyncMap = function(inputs, func, callback) {
@@ -16092,7 +16096,7 @@ iD.util.SessionMutex = function(name) {
 
     mutex.lock = function() {
         if (intervalID) return true;
-        var cookie = document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + name + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1");
+        var cookie = document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + name + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1');
         if (cookie) return false;
         renew();
         intervalID = window.setInterval(renew, 4000);
@@ -16204,7 +16208,7 @@ iD.geo.pointInPolygon = function(point, polygon) {
         var xi = polygon[i][0], yi = polygon[i][1];
         var xj = polygon[j][0], yj = polygon[j][1];
 
-        var intersect = ((yi > y) != (yj > y)) &&
+        var intersect = ((yi > y) !== (yj > y)) &&
             (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
         if (intersect) inside = !inside;
     }
@@ -16270,7 +16274,7 @@ _.extend(iD.geo.Extent.prototype, {
             [this[1][0], this[1][1]],
             [this[1][0], this[0][1]],
             [this[0][0], this[0][1]]
-        ]
+        ];
     },
 
     intersects: function(obj) {
@@ -16531,7 +16535,7 @@ iD.actions.AddMember = function(relationId, member, memberIndex) {
         }
 
         return graph.replace(relation.addMember(member, memberIndex));
-    }
+    };
 };
 iD.actions.AddMidpoint = function(midpoint, node) {
     return function(graph) {
@@ -16565,7 +16569,7 @@ iD.actions.AddVertex = function(wayId, nodeId, index) {
 iD.actions.ChangeMember = function(relationId, member, memberIndex) {
     return function(graph) {
         return graph.replace(graph.entity(relationId).updateMember(member, memberIndex));
-    }
+    };
 };
 iD.actions.ChangePreset = function(entityId, oldPreset, newPreset) {
     return function(graph) {
@@ -16591,7 +16595,7 @@ iD.actions.Circularize = function(wayId, projection, maxAngle) {
     var action = function(graph) {
         var way = graph.entity(wayId),
             nodes = _.uniq(graph.childNodes(way)),
-            keyNodes = nodes.filter(function(n) { return graph.parentWays(n).length != 1; }),
+            keyNodes = nodes.filter(function(n) { return graph.parentWays(n).length !== 1; }),
             points = nodes.map(function(n) { return projection(n.loc); }),
             keyPoints = keyNodes.map(function(n) { return projection(n.loc); }),
             centroid = d3.geom.polygon(points).centroid(),
@@ -16605,7 +16609,7 @@ iD.actions.Circularize = function(wayId, projection, maxAngle) {
             keyPoints = [points[0]];
         }
 
-        if (keyNodes.length == 1) {
+        if (keyNodes.length === 1) {
             var index = nodes.indexOf(keyNodes[0]),
                 oppositeIndex = Math.floor((index + nodes.length / 2) % nodes.length);
 
@@ -16715,6 +16719,7 @@ iD.actions.Connect = function(nodeIds) {
         for (var i = 0; i < nodeIds.length - 1; i++) {
             var node = graph.entity(nodeIds[i]);
 
+            /*jshint -W083 */
             graph.parentWays(node).forEach(function(parent) {
                 if (!parent.areAdjacent(node.id, survivor.id)) {
                     graph = graph.replace(parent.replaceNode(node.id, survivor.id));
@@ -16724,6 +16729,7 @@ iD.actions.Connect = function(nodeIds) {
             graph.parentRelations(node).forEach(function(parent) {
                 graph = graph.replace(parent.replaceMember(node, survivor));
             });
+            /*jshint +W083 */
 
             survivor = survivor.mergeTags(node.tags);
             graph = iD.actions.DeleteNode(node.id)(graph);
@@ -16929,7 +16935,7 @@ iD.actions.DiscardTags = function(difference) {
         difference.created().forEach(discardTags);
 
         return graph;
-    }
+    };
 };
 // Disconect the ways at the given node.
 //
@@ -17168,7 +17174,7 @@ iD.actions.MergePolygon = function(ids, newRelationId) {
             return _.any(contained[i]);
         }
 
-        function filterContained(d, i) {
+        function filterContained(d) {
             return d.filter(isContained);
         }
 
@@ -17325,7 +17331,7 @@ iD.actions.Orthogonalize = function(wayId, projection) {
 
             for (i = 0; i < points.length; i++) {
                 // only move the points that actually moved
-                if (originalPoints[i][0] != points[i][0] || originalPoints[i][1] != points[i][1]) {
+                if (originalPoints[i][0] !== points[i][0] || originalPoints[i][1] !== points[i][1]) {
                     graph = graph.replace(graph.entity(nodes[i].id)
                         .move(projection.invert(points[i])));
                 }
@@ -17335,8 +17341,8 @@ iD.actions.Orthogonalize = function(wayId, projection) {
             for (i = 0; i < points.length; i++) {
                 var node = nodes[i];
 
-                if (graph.parentWays(node).length > 1 || 
-                    graph.parentRelations(node).length || 
+                if (graph.parentWays(node).length > 1 ||
+                    graph.parentRelations(node).length ||
                     node.hasInterestingTags()) {
 
                     continue;
@@ -17490,9 +17496,9 @@ iD.actions.Reverse = function(wayId) {
     }
 
     function reverseValue(key, value) {
-        if (key === "incline" && numeric.test(value)) {
+        if (key === 'incline' && numeric.test(value)) {
             return value.replace(numeric, function(_, sign) { return sign === '-' ? '' : '-'; });
-        } else if (key === "incline" || key === "direction") {
+        } else if (key === 'incline' || key === 'direction') {
             return {up: 'down', down: 'up'}[value] || value;
         } else {
             return {left: 'right', right: 'left'}[value] || value;
@@ -17590,13 +17596,13 @@ iD.actions.Split = function(nodeId, newWayIds) {
 
         // calculate lengths
         length = 0;
-        for (i = wrap(idxA+1); i != idxA; i = wrap(i+1)) {
+        for (i = wrap(idxA+1); i !== idxA; i = wrap(i+1)) {
             length += dist(nodes[i], nodes[wrap(i-1)]);
             lengths[i] = length;
         }
 
         length = 0;
-        for (i = wrap(idxA-1); i != idxA; i = wrap(i-1)) {
+        for (i = wrap(idxA-1); i !== idxA; i = wrap(i-1)) {
             length += dist(nodes[i], nodes[wrap(i+1)]);
             if (length < lengths[i])
                 lengths[i] = length;
@@ -17753,22 +17759,22 @@ iD.actions.Straighten = function(wayId, projection) {
             i;
 
         for (i = 1; i < points.length-1; i++) {
-            var node = nodes[i], 
+            var node = nodes[i],
                 point = points[i];
 
-            if (graph.parentWays(node).length > 1 || 
-                graph.parentRelations(node).length || 
+            if (graph.parentWays(node).length > 1 ||
+                graph.parentRelations(node).length ||
                 node.hasInterestingTags()) {
 
                 var u = positionAlongWay(point, startPoint, endPoint),
                     p0 = startPoint[0] + u * (endPoint[0] - startPoint[0]),
-                    p1 = startPoint[1] + u * (endPoint[1] - startPoint[1]),
+                    p1 = startPoint[1] + u * (endPoint[1] - startPoint[1]);
 
                 graph = graph.replace(graph.entity(node.id)
                     .move(projection.invert([p0, p1])));
             } else {
                 // safe to delete
-                if (toDelete.indexOf(node) == -1) {
+                if (toDelete.indexOf(node) === -1) {
                     toDelete.push(node);
                 }
             }
@@ -17792,7 +17798,7 @@ iD.actions.Straighten = function(wayId, projection) {
             i;
 
         for (i = 1; i < points.length-1; i++) {
-            var point = points[i], 
+            var point = points[i],
                 u = positionAlongWay(point, startPoint, endPoint),
                 p0 = startPoint[0] + u * (endPoint[0] - startPoint[0]),
                 p1 = startPoint[1] + u * (endPoint[1] - startPoint[1]),
@@ -17866,7 +17872,7 @@ iD.behavior.drag = function() {
       d3.event.preventDefault();
     }
 
-    var event = d3.dispatch("start", "move", "end"),
+    var event = d3.dispatch('start', 'move', 'end'),
         origin = null,
         selector = '',
         filter = null,
@@ -17874,10 +17880,10 @@ iD.behavior.drag = function() {
 
     event.of = function(thiz, argumentz) {
       return function(e1) {
+        var e0 = e1.sourceEvent = d3.event;
+        e1.target = drag;
+        d3.event = e1;
         try {
-          var e0 = e1.sourceEvent = d3.event;
-          e1.target = drag;
-          d3.event = e1;
           event[e1.type].apply(thiz, argumentz);
         } finally {
           d3.event = e0;
@@ -17885,7 +17891,7 @@ iD.behavior.drag = function() {
       };
     };
 
-    var d3_event_userSelectProperty = iD.util.prefixCSSProperty("UserSelect"),
+    var d3_event_userSelectProperty = iD.util.prefixCSSProperty('UserSelect'),
         d3_event_userSelectSuppress = d3_event_userSelectProperty ?
             function () {
                 var selection = d3.selection(),
@@ -17896,9 +17902,9 @@ iD.behavior.drag = function() {
                 };
             } :
             function (type) {
-                var w = d3.select(window).on("selectstart." + type, d3_eventCancel);
+                var w = d3.select(window).on('selectstart.' + type, d3_eventCancel);
                 return function () {
-                    w.on("selectstart." + type, null);
+                    w.on('selectstart.' + type, null);
                 };
             };
 
@@ -17910,11 +17916,11 @@ iD.behavior.drag = function() {
             offset,
             origin_ = point(),
             started = false,
-            selectEnable = d3_event_userSelectSuppress(touchId != null ? "drag-" + touchId : "drag");
+            selectEnable = d3_event_userSelectSuppress(touchId !== null ? 'drag-' + touchId : 'drag');
 
         var w = d3.select(window)
-            .on(touchId !== null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove)
-            .on(touchId !== null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
+            .on(touchId !== null ? 'touchmove.drag-' + touchId : 'mousemove.drag', dragmove)
+            .on(touchId !== null ? 'touchend.drag-' + touchId : 'mouseup.drag', dragend, true);
 
         if (origin) {
             offset = origin.apply(target, arguments);
@@ -17941,7 +17947,7 @@ iD.behavior.drag = function() {
             if (!started) {
                 started = true;
                 event_({
-                    type: "start"
+                    type: 'start'
                 });
             }
 
@@ -17949,7 +17955,7 @@ iD.behavior.drag = function() {
             d3_eventCancel();
 
             event_({
-                type: "move",
+                type: 'move',
                 point: [p[0] + offset[0],  p[1] + offset[1]],
                 delta: [dx, dy]
             });
@@ -17958,21 +17964,21 @@ iD.behavior.drag = function() {
         function dragend() {
             if (started) {
                 event_({
-                    type: "end"
+                    type: 'end'
                 });
 
                 d3_eventCancel();
-                if (d3.event.target === eventTarget) w.on("click.drag", click, true);
+                if (d3.event.target === eventTarget) w.on('click.drag', click, true);
             }
 
-            w.on(touchId !== null ? "touchmove.drag-" + touchId : "mousemove.drag", null)
-                .on(touchId !== null ? "touchend.drag-" + touchId : "mouseup.drag", null);
+            w.on(touchId !== null ? 'touchmove.drag-' + touchId : 'mousemove.drag', null)
+                .on(touchId !== null ? 'touchend.drag-' + touchId : 'mouseup.drag', null);
             selectEnable();
         }
 
         function click() {
             d3_eventCancel();
-            w.on("click.drag", null);
+            w.on('click.drag', null);
         }
     }
 
@@ -17993,13 +17999,13 @@ iD.behavior.drag = function() {
             };
         }
 
-        selection.on("mousedown.drag" + selector, delegate)
-            .on("touchstart.drag" + selector, delegate);
+        selection.on('mousedown.drag' + selector, delegate)
+            .on('touchstart.drag' + selector, delegate);
     }
 
     drag.off = function(selection) {
-        selection.on("mousedown.drag" + selector, null)
-            .on("touchstart.drag" + selector, null);
+        selection.on('mousedown.drag' + selector, null)
+            .on('touchstart.drag' + selector, null);
     };
 
     drag.delegate = function(_) {
@@ -18022,8 +18028,8 @@ iD.behavior.drag = function() {
 
     drag.cancel = function() {
         d3.select(window)
-            .on("mousemove.drag", null)
-            .on("mouseup.drag", null);
+            .on('mousemove.drag', null)
+            .on('mouseup.drag', null);
         return drag;
     };
 
@@ -18040,7 +18046,7 @@ iD.behavior.drag = function() {
         return drag;
     };
 
-    return d3.rebind(drag, event, "on");
+    return d3.rebind(drag, event, 'on');
 };
 iD.behavior.Draw = function(context) {
     var event = d3.dispatch('move', 'click', 'clickWay',
@@ -18068,8 +18074,7 @@ iD.behavior.Draw = function(context) {
             })[0] : d3.mouse(p);
         }
 
-        var eventTarget = d3.event.target,
-            element = d3.select(this),
+        var element = d3.select(this),
             touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null,
             time = +new Date(),
             pos = point();
@@ -18404,7 +18409,7 @@ iD.behavior.Hash = function(context) {
 
     var parser = function(map, s) {
         var q = iD.util.stringQs(s);
-        var args = (q.map || '').split("/").map(Number);
+        var args = (q.map || '').split('/').map(Number);
         if (args.length < 3 || args.some(isNaN)) {
             return true; // replace bogus hash
         } else if (s !== formatter(map).slice(1)) {
@@ -18459,7 +18464,7 @@ iD.behavior.Hash = function(context) {
         d3.select(window)
             .on('hashchange.hash', null);
 
-        location.hash = "";
+        location.hash = '';
     };
 
     return hash;
@@ -18473,7 +18478,7 @@ iD.behavior.Hash = function(context) {
    Only one of these elements can have the :hover pseudo-class, but all of them will
    have the .hover class.
  */
-iD.behavior.Hover = function(context) {
+iD.behavior.Hover = function() {
     var dispatch = d3.dispatch('hover'),
         selection,
         altDisables,
@@ -18547,7 +18552,7 @@ iD.behavior.Hover = function(context) {
         function mousedown() {
             down = true;
             d3.select(window)
-                .on('mouseup.hover', mouseup)
+                .on('mouseup.hover', mouseup);
         }
 
         function mouseup() {
@@ -18580,7 +18585,7 @@ iD.behavior.Hover = function(context) {
         d3.select(window)
             .on('keydown.hover', null)
             .on('keyup.hover', null)
-            .on('mouseup.hover', null)
+            .on('mouseup.hover', null);
     };
 
     hover.altDisables = function(_) {
@@ -18728,25 +18733,25 @@ iD.behavior.Tail = function() {
     var text,
         container,
         xmargin = 25,
-        tooltip_size = [0, 0],
-        selection_size = [0, 0],
+        tooltipSize = [0, 0],
+        selectionSize = [0, 0],
         transformProp = iD.util.prefixCSSProperty('Transform');
 
     function tail(selection) {
         if (!text) return;
 
         d3.select(window)
-            .on('resize.tail', function() { selection_size = selection.dimensions(); });
+            .on('resize.tail', function() { selectionSize = selection.dimensions(); });
 
         function show() {
             container.style('display', 'block');
-            tooltip_size = container.dimensions();
+            tooltipSize = container.dimensions();
         }
 
         function mousemove() {
             if (container.style('display') === 'none') show();
-            var xoffset = ((d3.event.clientX + tooltip_size[0] + xmargin) > selection_size[0]) ?
-                -tooltip_size[0] - xmargin : xmargin;
+            var xoffset = ((d3.event.clientX + tooltipSize[0] + xmargin) > selectionSize[0]) ?
+                -tooltipSize[0] - xmargin : xmargin;
             container.classed('left', xoffset > 0);
             container.style(transformProp, 'translate(' +
                 (~~d3.event.clientX + xoffset) + 'px,' +
@@ -18781,8 +18786,8 @@ iD.behavior.Tail = function() {
         container
             .on('mousemove.tail', mousemove);
 
-        tooltip_size = container.dimensions();
-        selection_size = selection.dimensions();
+        tooltipSize = container.dimensions();
+        selectionSize = selection.dimensions();
     }
 
     tail.off = function(selection) {
@@ -18969,7 +18974,7 @@ iD.modes.AddPoint = function(context) {
                 .newFeature(true));
     }
 
-    function addWay(loc, edge) {
+    function addWay(loc) {
         add(loc);
     }
 
@@ -19013,7 +19018,7 @@ iD.modes.Browse = function(context) {
         });
 
         // Get focus on the body.
-        if (document.activeElement) {
+        if (document.activeElement && document.activeElement.blur) {
             document.activeElement.blur();
         }
 
@@ -19207,7 +19212,7 @@ iD.modes.DragNode = function(context) {
     }
 
     var behavior = iD.behavior.drag()
-        .delegate("g.node, g.point, g.midpoint")
+        .delegate('g.node, g.point, g.midpoint')
         .surface(context.surface().node())
         .origin(origin)
         .on('start', start)
@@ -19598,7 +19603,7 @@ iD.modes.Save = function(context) {
             context.install(behavior);
         });
 
-        context.connection().authenticate(function(err) {
+        context.connection().authenticate(function() {
             context.ui().sidebar.show(ui);
         });
     };
@@ -19814,7 +19819,7 @@ iD.modes.Select = function(context, selectedIDs) {
         context.surface()
             .call(radialMenu.close)
             .on('dblclick.select', null)
-            .selectAll(".selected")
+            .selectAll('.selected')
             .classed('selected', false);
 
         context.map().on('drawn.select', null);
@@ -19850,7 +19855,7 @@ iD.operations.Circularize = function(selectedIDs, context) {
             t('operations.circularize.description.' + geometry);
     };
 
-    operation.id = "circularize";
+    operation.id = 'circularize';
     operation.keys = [t('operations.circularize.key')];
     operation.title = t('operations.circularize.title');
 
@@ -19899,7 +19904,7 @@ iD.operations.Continue = function(selectedIDs, context) {
             t('operations.continue.description');
     };
 
-    operation.id = "continue";
+    operation.id = 'continue';
     operation.keys = [t('operations.continue.key')];
     operation.title = t('operations.continue.title');
 
@@ -19969,7 +19974,7 @@ iD.operations.Delete = function(selectedIDs, context) {
             t('operations.delete.description');
     };
 
-    operation.id = "delete";
+    operation.id = 'delete';
     operation.keys = [iD.ui.cmd('⌘⌫'), iD.ui.cmd('⌘⌦')];
     operation.title = t('operations.delete.title');
 
@@ -20006,7 +20011,7 @@ iD.operations.Disconnect = function(selectedIDs, context) {
             t('operations.disconnect.description');
     };
 
-    operation.id = "disconnect";
+    operation.id = 'disconnect';
     operation.keys = [t('operations.disconnect.key')];
     operation.title = t('operations.disconnect.title');
 
@@ -20058,7 +20063,7 @@ iD.operations.Merge = function(selectedIDs, context) {
         return t('operations.merge.description');
     };
 
-    operation.id = "merge";
+    operation.id = 'merge';
     operation.keys = [t('operations.merge.key')];
     operation.title = t('operations.merge.title');
 
@@ -20086,7 +20091,7 @@ iD.operations.Move = function(selectedIDs, context) {
             t('operations.move.description');
     };
 
-    operation.id = "move";
+    operation.id = 'move';
     operation.keys = [t('operations.move.key')];
     operation.title = t('operations.move.title');
 
@@ -20121,7 +20126,7 @@ iD.operations.Orthogonalize = function(selectedIDs, context) {
             t('operations.orthogonalize.description.' + geometry);
     };
 
-    operation.id = "orthogonalize";
+    operation.id = 'orthogonalize';
     operation.keys = [t('operations.orthogonalize.key')];
     operation.title = t('operations.orthogonalize.title');
 
@@ -20149,7 +20154,7 @@ iD.operations.Reverse = function(selectedIDs, context) {
         return t('operations.reverse.description');
     };
 
-    operation.id = "reverse";
+    operation.id = 'reverse';
     operation.keys = [t('operations.reverse.key')];
     operation.title = t('operations.reverse.title');
 
@@ -20176,7 +20181,7 @@ iD.operations.Rotate = function(selectedIDs, context) {
         return t('operations.rotate.description');
     };
 
-    operation.id = "rotate";
+    operation.id = 'rotate';
     operation.keys = [t('operations.rotate.key')];
     operation.title = t('operations.rotate.title');
 
@@ -20230,7 +20235,7 @@ iD.operations.Split = function(selectedIDs, context) {
         }
     };
 
-    operation.id = "split";
+    operation.id = 'split';
     operation.keys = [t('operations.split.key')];
     operation.title = t('operations.split.title');
 
@@ -20264,7 +20269,7 @@ iD.operations.Straighten = function(selectedIDs, context) {
             t('operations.straighten.description');
     };
 
-    operation.id = "straighten";
+    operation.id = 'straighten';
     operation.keys = [t('operations.straighten.key')];
     operation.title = t('operations.straighten.title');
 
@@ -20306,7 +20311,7 @@ iD.Connection = function() {
     };
 
     connection.userURL = function(username) {
-        return url + "/user/" + username;
+        return url + '/user/' + username;
     };
 
     connection.loadFromURL = function(url, callback) {
@@ -20587,7 +20592,7 @@ iD.Connection = function() {
                     extent: iD.geo.Extent(
                         projection.invert([x, y + ts]),
                         projection.invert([x + ts, y]))
-                }
+                };
             });
 
         function bboxUrl(tile) {
@@ -20965,10 +20970,10 @@ iD.Entity.prototype = {
 
     hasInterestingTags: function() {
         return _.keys(this.tags).some(function(key) {
-            return key != 'attribution' &&
-                key != 'created_by' &&
-                key != 'source' &&
-                key != 'odbl' &&
+            return key !== 'attribution' &&
+                key !== 'created_by' &&
+                key !== 'source' &&
+                key !== 'odbl' &&
                 key.indexOf('tiger:') !== 0;
         });
     },
@@ -20980,8 +20985,8 @@ iD.Entity.prototype = {
         iD.data.deprecated.forEach(function(d) {
             var match = _.pairs(d.old)[0];
             tags.forEach(function(t) {
-                if (t[0] == match[0] &&
-                    (t[1] == match[1] || match[1] == '*')) {
+                if (t[0] === match[0] &&
+                    (t[1] === match[1] || match[1] === '*')) {
                     deprecated[t[0]] = t[1];
                 }
             });
@@ -21172,7 +21177,6 @@ iD.Graph.prototype = {
                 ways.push(entity.id);
                 parentWays[added[i]] = ways;
             }
-        } else if (type === 'node') {
 
         } else if (type === 'relation') {
 
@@ -21501,14 +21505,18 @@ iD.History = function(context) {
                 stack = h.stack.map(function(d) {
                     var entities = {}, entity;
 
-                    d.modified && d.modified.forEach(function(key) {
-                        entity = allEntities[key];
-                        entities[entity.id] = entity;
-                    });
+                    if (d.modified) {
+                        d.modified.forEach(function(key) {
+                            entity = allEntities[key];
+                            entities[entity.id] = entity;
+                        });
+                    }
 
-                    d.deleted && d.deleted.forEach(function(id) {
-                        entities[id] = undefined;
-                    });
+                    if (d.deleted) {
+                        d.deleted.forEach(function(id) {
+                            entities[id] = undefined;
+                        });
+                    }
 
                     return {
                         graph: iD.Graph(stack[0].graph).load(entities),
@@ -21589,7 +21597,7 @@ iD.Node = iD.Entity.node = function iD_Node() {
 iD.Node.prototype = Object.create(iD.Entity.prototype);
 
 _.extend(iD.Node.prototype, {
-    type: "node",
+    type: 'node',
 
     extent: function() {
         return new iD.geo.Extent(this.loc);
@@ -21651,7 +21659,7 @@ iD.Relation = iD.Entity.relation = function iD_Relation() {
 iD.Relation.prototype = Object.create(iD.Entity.prototype);
 
 _.extend(iD.Relation.prototype, {
-    type: "relation",
+    type: 'relation',
     members: [],
 
     extent: function(resolver) {
@@ -21682,7 +21690,7 @@ _.extend(iD.Relation.prototype, {
     indexedMembers: function() {
         var result = new Array(this.members.length);
         for (var i = 0; i < this.members.length; i++) {
-            result[i] = _.extend({}, this.members[i], {index: i})
+            result[i] = _.extend({}, this.members[i], {index: i});
         }
         return result;
     },
@@ -21998,7 +22006,7 @@ iD.Way = iD.Entity.way = function iD_Way() {
 iD.Way.prototype = Object.create(iD.Entity.prototype);
 
 _.extend(iD.Way.prototype, {
-    type: "way",
+    type: 'way',
     nodes: [],
 
     extent: function(resolver) {
@@ -22100,13 +22108,13 @@ _.extend(iD.Way.prototype, {
 
         for (var i = 0; i < this.nodes.length; i++) {
             var node = this.nodes[i];
-            if (node != id && nodes[nodes.length - 1] != node) {
+            if (node !== id && nodes[nodes.length - 1] !== node) {
                 nodes.push(node);
             }
         }
 
         // Preserve circularity
-        if (this.nodes.length > 1 && this.first() === id && this.last() === id && nodes[nodes.length - 1] != nodes[0]) {
+        if (this.nodes.length > 1 && this.first() === id && this.last() === id && nodes[nodes.length - 1] !== nodes[0]) {
             nodes.push(nodes[0]);
         }
 
@@ -22273,7 +22281,7 @@ iD.Background = function(context) {
         gpx.call(gpxLayer);
 
         var overlays = selection.selectAll('.overlay-layer')
-            .data(overlayLayers, function(d) { return d.source().name });
+            .data(overlayLayers, function(d) { return d.source().name; });
 
         overlays.enter().insert('div', '.layer-data')
             .attr('class', 'layer-layer overlay-layer');
@@ -22312,7 +22320,7 @@ iD.Background = function(context) {
     };
 
     background.bing = function() {
-        background.baseLayerSource(findSource("Bing"));
+        background.baseLayerSource(findSource('Bing'));
     };
 
     background.hasGpxLayer = function() {
@@ -22407,7 +22415,7 @@ iD.Background = function(context) {
             name: 'Custom'
         }));
     } else {
-        background.baseLayerSource(findSource(chosen) || findSource("Bing"));
+        background.baseLayerSource(findSource(chosen) || findSource('Bing'));
     }
 
     var locator = _.find(backgroundSources, function(d) {
@@ -22503,7 +22511,7 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
         dispatch.change();
     });
 
-    var template = "http://ecn.t{t}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z",
+    var template = 'http://ecn.t{t}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z',
         subdomains = [0, 1, 2, 3];
 
     bing.url = function(coord) {
@@ -22535,8 +22543,8 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
         }).join(', ');
     };
 
-    bing.logo = "bing_maps.png";
-    bing.terms_url = "http://opengeodata.org/microsoft-imagery-details";
+    bing.logo = 'bing_maps.png';
+    bing.terms_url = 'http://opengeodata.org/microsoft-imagery-details';
 
     return bing;
 };
@@ -22544,7 +22552,7 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
 iD.BackgroundSource.None = function() {
     return iD.BackgroundSource({ name: t('background.none'), id: 'None', template: '' });
 };
-iD.GpxLayer = function(context, dispatch) {
+iD.GpxLayer = function(context) {
     var projection,
         gj = {},
         enable = true,
@@ -22690,7 +22698,7 @@ iD.Map = function(context) {
 
         map.surface = surface = dataLayer.append('svg')
             .on('mousedown.zoom', function() {
-                if (d3.event.button == 2) {
+                if (d3.event.button === 2) {
                     d3.event.stopPropagation();
                 }
             }, true)
@@ -22902,7 +22910,7 @@ iD.Map = function(context) {
 
     map.mouse = function() {
         var e = mousemove || d3.event, s;
-        while (s = e.sourceEvent) e = s;
+        while ((s = e.sourceEvent)) e = s;
         return mouse(e);
     };
 
@@ -23027,7 +23035,7 @@ iD.Map = function(context) {
         d3.timer(function() {
             if (stop) return true;
             map.center(iD.geo.interp(from, loc, (t += 1) / 10));
-            return t == 10;
+            return t === 10;
         }, 20);
         return map;
     };
@@ -23266,7 +23274,7 @@ iD.svg = {
             if (entity.id in cache) {
                 return cache[entity.id];
             } else {
-                return cache[entity.id] = path(entity.asGeoJSON(graph, polygon));
+                return cache[entity.id] = path(entity.asGeoJSON(graph, polygon)); // jshint ignore:line
             }
         };
     },
@@ -23379,7 +23387,8 @@ iD.svg.Areas = function(projection) {
             var entity = entities[i];
             if (entity.geometry(graph) !== 'area') continue;
 
-            if (multipolygon = iD.geo.isSimpleMultipolygonOuterMember(entity, graph)) {
+            multipolygon = iD.geo.isSimpleMultipolygonOuterMember(entity, graph);
+            if (multipolygon) {
                 areas[multipolygon.id] = {
                     entity: multipolygon.mergeTags(entity.tags),
                     area: Math.abs(entity.area(graph))
@@ -23481,11 +23490,11 @@ iD.svg.Labels = function(projection, context) {
 
     var font_sizes = label_stack.map(function(d) {
         var style = iD.util.getStyle('text.' + d[0] + '.tag-' + d[1]),
-            m = style && style.cssText.match("font-size: ([0-9]{1,2})px;");
+            m = style && style.cssText.match('font-size: ([0-9]{1,2})px;');
         if (m) return parseInt(m[1], 10);
 
         style = iD.util.getStyle('text.' + d[0]);
-        m = style && style.cssText.match("font-size: ([0-9]{1,2})px;");
+        m = style && style.cssText.match('font-size: ([0-9]{1,2})px;');
         if (m) return parseInt(m[1], 10);
 
         return default_size;
@@ -23538,19 +23547,18 @@ iD.svg.Labels = function(projection, context) {
     }
 
     function drawLineLabels(group, entities, filter, classes, labels) {
-
         var texts = group.selectAll('text.' + classes)
             .filter(filter)
             .data(entities, iD.Entity.key);
 
-        var tp = texts.enter()
+        texts.enter()
             .append('text')
             .attr('class', function(d, i) { return classes + ' ' + labels[i].classes + ' ' + d.id; })
             .append('textPath')
             .attr('class', 'textpath');
 
 
-        var tps = texts.selectAll('.textpath')
+        texts.selectAll('.textpath')
             .filter(filter)
             .data(entities, iD.Entity.key)
             .attr({
@@ -23560,11 +23568,9 @@ iD.svg.Labels = function(projection, context) {
             .text(iD.util.displayName);
 
         texts.exit().remove();
-
     }
 
     function drawLinePaths(group, entities, filter, classes, labels) {
-
         var halos = group.selectAll('path')
             .filter(filter)
             .data(entities, iD.Entity.key);
@@ -24153,7 +24159,7 @@ iD.svg.Restrictions = function(context) {
     }
 
     drawRestrictions.turns = function (graph, selectedIDs) {
-        if (selectedIDs.length != 1)
+        if (selectedIDs.length !== 1)
             return [];
 
         var from = graph.entity(selectedIDs[0]);
@@ -24194,7 +24200,7 @@ iD.svg.Restrictions = function(context) {
             to: to,
             restriction: restriction,
             angle: Math.atan2(b[1] - a[1], b[0] - a[0])
-        }
+        };
     };
 
     return drawRestrictions;
@@ -24222,7 +24228,7 @@ iD.svg.Surface = function(context) {
                 .data(data)
                 .enter().append('use')
                 .attr('id', function(d) { return d.key; })
-                .attr('transform', function(d) { return "translate(-" + d.value[0] + ",-" + d.value[1] + ")"; })
+                .attr('transform', function(d) { return 'translate(-' + d.value[0] + ',-' + d.value[1] + ')'; })
                 .attr('xlink:href', '#' + id);
         };
     }
@@ -24320,8 +24326,8 @@ iD.svg.Surface = function(context) {
 iD.svg.TagClasses = function() {
     var primary = [
             'highway', 'railway', 'waterway', 'aeroway', 'motorway',
-            'power', 'amenity', 'natural', 'landuse', 'building', 'leisure',
-            'place', 'boundary'
+            'boundary', 'power', 'amenity', 'natural', 'landuse',
+            'building', 'leisure', 'place'
         ],
         secondary = [
             'oneway', 'bridge', 'tunnel', 'construction'
@@ -24434,9 +24440,10 @@ iD.svg.Vertices = function(projection, context) {
         var icons = {};
         function icon(entity) {
             if (entity.id in icons) return icons[entity.id];
-            return icons[entity.id] = (zoom !== 0 &&
+            icons[entity.id] = zoom !== 0 &&
                 entity.hasInterestingTags() &&
-                context.presets().match(entity, graph).icon);
+                context.presets().match(entity, graph).icon;
+            return icons[entity.id];
         }
 
         function circle(klass) {
@@ -24449,7 +24456,7 @@ iD.svg.Vertices = function(projection, context) {
                 this.setAttribute('cx', c);
                 this.setAttribute('cy', -c);
                 this.setAttribute('r', r);
-            }
+            };
         }
 
         var enter = groups.enter().append('g')
@@ -24494,7 +24501,7 @@ iD.svg.Vertices = function(projection, context) {
             if (entity.id in selected ||
                 entity.hasInterestingTags() ||
                 entity.isIntersection(graph)) {
-                vertices.push(entity)
+                vertices.push(entity);
             }
         }
 
@@ -24523,8 +24530,7 @@ iD.svg.Vertices = function(projection, context) {
 };
 iD.ui = function(context) {
     function render(container) {
-        var history = context.history(),
-            map = context.map();
+        var map = context.map();
 
         if (iD.detect().opera) container.classed('opera', true);
 
@@ -24552,7 +24558,7 @@ iD.ui = function(context) {
             .attr('id', 'map')
             .call(map);
 
-        var spacer = bar.append('div')
+        bar.append('div')
             .attr('class', 'spacer col4');
 
         var limiter = bar.append('div')
@@ -24849,7 +24855,7 @@ iD.ui.Background = function(context) {
             ['top', [0, -1]],
             ['right', [-1, 0]],
             ['bottom', [0, 1]]],
-        opacityDefault = (context.storage('background-opacity') !== undefined) ?
+        opacityDefault = (context.storage('background-opacity') !== null) ?
             (+context.storage('background-opacity')) : 0.5;
 
     function background(selection) {
@@ -25050,7 +25056,7 @@ iD.ui.Background = function(context) {
                 return t('background.percent_brightness', { opacity: (d * 100) });
             })
             .on('click.set-opacity', setOpacity)
-            .html("<div class='select-box'></div>")
+            .html('<div class="select-box"></div>')
             .call(bootstrap.tooltip()
                 .placement('top'))
             .append('div')
@@ -25413,16 +25419,16 @@ iD.ui.confirm = function(selection) {
 
     var section = modal.select('.content');
 
-    var modalHeader = section.append('div')
+    section.append('div')
         .attr('class', 'modal-section header');
 
-    var description = section.append('div')
+    section.append('div')
         .attr('class', 'modal-section message-text');
 
     var buttonwrap = section.append('div')
         .attr('class', 'modal-section buttons cf');
 
-    var okbutton = buttonwrap.append('button')
+    buttonwrap.append('button')
         .attr('class', 'col2 action')
         .on('click.confirm', function() {
             modal.remove();
@@ -26514,7 +26520,7 @@ iD.ui.modal = function(selection, blocking) {
         .attr('class', 'modal fillL col6');
 
         shaded.on('click.remove-modal', function() {
-            if (d3.event.target == this && !blocking) shaded.close();
+            if (d3.event.target === this && !blocking) shaded.close();
         });
 
     modal.append('button')
@@ -26587,12 +26593,12 @@ iD.ui.Modes = function(context) {
         context.on('enter.editor', function(entered) {
             buttons.classed('active', function(mode) { return entered.button === mode.button; });
             context.container()
-                .classed("mode-" + entered.id, true);
+                .classed('mode-' + entered.id, true);
         });
 
         context.on('exit.editor', function(exited) {
             context.container()
-                .classed("mode-" + exited.id, false);
+                .classed('mode-' + exited.id, false);
         });
 
         var keybinding = d3.keybinding('mode-buttons');
@@ -27029,7 +27035,7 @@ iD.ui.PresetList = function(context) {
 
     function drawList(list, presets) {
         var collection = presets.collection.map(function(preset) {
-            return preset.members ? CategoryItem(preset) : PresetItem(preset)
+            return preset.members ? CategoryItem(preset) : PresetItem(preset);
         });
 
         var items = list.selectAll('.preset-list-item')
@@ -27186,7 +27192,7 @@ iD.ui.RadialMenu = function(context, operations) {
 
         menu = selection.append('g')
             .attr('class', 'radial-menu')
-            .attr('transform', "translate(" + center + ")")
+            .attr('transform', 'translate(' + center + ')')
             .attr('opacity', 0);
 
         menu.transition()
@@ -27485,7 +27491,7 @@ iD.ui.RawMembershipEditor = function(context) {
                 if (member.id === entity.id) {
                     memberships.push({relation: relation, member: member, index: index});
                 }
-            })
+            });
         });
 
         selection.call(iD.ui.Disclosure()
@@ -28243,7 +28249,7 @@ iD.ui.Success = function(context) {
             .attr('class', 'fr')
             .append('span')
             .attr('class', 'icon close')
-            .on('click', function() { event.cancel(success) });
+            .on('click', function() { event.cancel(success); });
 
         header.append('h3')
             .text(t('success.just_edited'));
@@ -28340,7 +28346,7 @@ iD.ui.TagReference = function(tag) {
                 body
                     .append('img')
                     .attr('class', 'wiki-image')
-                    .attr('src', docs.image.thumb_url_prefix + "100" + docs.image.thumb_url_suffix)
+                    .attr('src', docs.image.thumb_url_prefix + '100' + docs.image.thumb_url_suffix)
                     .on('load', function() { show(); })
                     .on('error', function() { d3.select(this).remove(); show(); });
             } else {
@@ -28584,7 +28590,7 @@ iD.ui.Zoom = function(context) {
             .call(keybinding);
     };
 };
-iD.ui.preset.access = function(field, context) {
+iD.ui.preset.access = function(field) {
     var event = d3.dispatch('change'),
         entity,
         items;
@@ -28638,7 +28644,7 @@ iD.ui.preset.access = function(field, context) {
     access.options = function(type) {
         var options = ['no', 'permissive', 'private', 'designated', 'destination'];
 
-        if (type != 'access') {
+        if (type !== 'access') {
             options.unshift('yes');
         }
 
@@ -29027,7 +29033,7 @@ iD.ui.preset.url = function(field) {
             .on('blur', change)
             .on('change', change);
 
-        if (field.type == 'number') {
+        if (field.type === 'number') {
             input.attr('type', 'text');
 
             var spinControl = selection.selectAll('.spin-control')
@@ -29070,7 +29076,7 @@ iD.ui.preset.url = function(field) {
 
     return d3.rebind(i, event, 'on');
 };
-iD.ui.preset.localized = function(field, context) {
+iD.ui.preset.localized = function(field) {
 
     var event = d3.dispatch('change'),
         wikipedia = iD.wikipedia(),
@@ -29285,7 +29291,7 @@ iD.ui.preset.localized = function(field, context) {
     };
 
     i.focus = function() {
-        title.node().focus();
+        input.node().focus();
     };
 
     return d3.rebind(i, event, 'on');
@@ -29736,10 +29742,6 @@ iD.ui.intro.line = function(context, reveal) {
         title: 'intro.lines.title'
     };
 
-    function one(target, e, f) {
-        d3.selection.prototype.one.call(target, e, f);
-    }
-
     function timeout(f, t) {
         timeouts.push(window.setTimeout(f, t));
     }
@@ -29848,7 +29850,7 @@ iD.ui.intro.line = function(context, reveal) {
         }
 
         // selected wrong road type
-        function retryPreset(mode) {
+        function retryPreset() {
             timeout(function() {
                 var preset = d3.select('.entity-editor-pane .preset-list-button');
                 reveal(preset.node(), t('intro.lines.wrong_preset'));
@@ -30547,6 +30549,7 @@ iD.validate = function(changes, graph) {
 
     return warnings;
 };
+/* jshint ignore:start */
 })();
 window.locale = { _current: 'en' };
 
@@ -58185,7 +58188,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "landuse": "farmyard"
                 },
                 "terms": [],
-                "name": "Farmyard"
+                "name": "Farmyard",
+                "icon": "farm"
             },
             "landuse/forest": {
                 "fields": [
@@ -58328,7 +58332,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "leisure": "dog_park"
                 },
-                "name": "Dog Park"
+                "name": "Dog Park",
+                "icon": "dog-park"
             },
             "leisure/garden": {
                 "icon": "garden",
@@ -58655,7 +58660,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "man_made": "lighthouse"
                 },
-                "name": "Lighthouse"
+                "name": "Lighthouse",
+                "icon": "lighthouse"
             },
             "man_made/observation": {
                 "geometry": [
@@ -59482,7 +59488,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Liquor Store"
             },
             "shop/bakery": {
-                "icon": "shop",
+                "icon": "bakery",
                 "fields": [
                     "address",
                     "building_area",
@@ -59674,7 +59680,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Chemist"
             },
             "shop/clothes": {
-                "icon": "shop",
+                "icon": "clothing-store",
                 "fields": [
                     "address",
                     "building_area",
@@ -60194,7 +60200,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Outdoor Store"
             },
             "shop/pet": {
-                "icon": "shop",
+                "icon": "dog-park",
                 "fields": [
                     "address",
                     "building_area",
@@ -60210,6 +60216,23 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Pet Store"
             },
+            "shop/photo": {
+                "icon": "camera",
+                "fields": [
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "vertex",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "photo"
+                },
+                "name": "Photography Store"
+            },
             "shop/shoes": {
                 "icon": "shop",
                 "fields": [
@@ -71792,1310 +71815,1422 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
         ]
     },
     "featureIcons": {
-        "airfield": {
+        "circle-stroked": {
             "12": [
-                0,
+                42,
                 0
             ],
             "18": [
-                0,
-                14
+                24,
+                0
             ],
             "24": [
                 0,
-                34
+                0
             ]
         },
-        "airport": {
+        "circle": {
             "12": [
-                0,
-                60
+                96,
+                0
             ],
             "18": [
-                0,
-                74
+                78,
+                0
             ],
             "24": [
-                0,
-                94
+                54,
+                0
             ]
         },
-        "alcohol-shop": {
+        "square-stroked": {
             "12": [
-                0,
-                120
+                150,
+                0
             ],
             "18": [
-                0,
-                134
+                132,
+                0
             ],
             "24": [
-                0,
-                154
+                108,
+                0
             ]
         },
-        "america-football": {
+        "square": {
             "12": [
-                0,
-                180
+                204,
+                0
             ],
             "18": [
-                0,
-                194
+                186,
+                0
             ],
             "24": [
-                0,
-                214
+                162,
+                0
             ]
         },
-        "art-gallery": {
+        "triangle-stroked": {
             "12": [
-                0,
-                240
+                258,
+                0
             ],
             "18": [
-                0,
-                254
+                240,
+                0
             ],
             "24": [
-                0,
-                274
+                216,
+                0
             ]
         },
-        "bank": {
+        "triangle": {
             "12": [
-                0,
-                300
+                42,
+                24
             ],
             "18": [
-                0,
-                314
+                24,
+                24
             ],
             "24": [
                 0,
-                334
+                24
             ]
         },
-        "bar": {
+        "star-stroked": {
             "12": [
-                0,
-                360
+                96,
+                24
             ],
             "18": [
-                0,
-                374
+                78,
+                24
             ],
             "24": [
-                0,
-                394
+                54,
+                24
             ]
         },
-        "baseball": {
+        "star": {
             "12": [
-                0,
-                420
+                150,
+                24
             ],
             "18": [
-                0,
-                434
+                132,
+                24
             ],
             "24": [
-                0,
-                454
+                108,
+                24
             ]
         },
-        "basketball": {
+        "cross": {
             "12": [
-                0,
-                480
+                204,
+                24
             ],
             "18": [
-                0,
-                494
+                186,
+                24
             ],
             "24": [
-                0,
-                514
+                162,
+                24
             ]
         },
-        "beer": {
+        "marker-stroked": {
             "12": [
-                0,
-                540
+                258,
+                24
             ],
             "18": [
-                0,
-                554
+                240,
+                24
             ],
             "24": [
-                0,
-                574
+                216,
+                24
             ]
         },
-        "bicycle": {
+        "marker": {
             "12": [
-                0,
-                600
+                42,
+                48
             ],
             "18": [
-                0,
-                614
+                24,
+                48
             ],
             "24": [
                 0,
-                634
+                48
             ]
         },
-        "building": {
+        "religious-jewish": {
             "12": [
-                0,
-                660
+                96,
+                48
             ],
             "18": [
-                0,
-                674
+                78,
+                48
             ],
             "24": [
-                0,
-                694
+                54,
+                48
             ]
         },
-        "bus": {
+        "religious-christian": {
             "12": [
-                0,
-                720
+                150,
+                48
             ],
             "18": [
-                0,
-                734
+                132,
+                48
             ],
             "24": [
-                0,
-                754
+                108,
+                48
             ]
         },
-        "cafe": {
+        "religious-muslim": {
             "12": [
-                0,
-                780
+                204,
+                48
             ],
             "18": [
-                0,
-                794
+                186,
+                48
             ],
             "24": [
-                0,
-                814
+                162,
+                48
             ]
         },
-        "campsite": {
+        "cemetery": {
             "12": [
-                0,
-                840
+                258,
+                48
             ],
             "18": [
-                0,
-                854
+                240,
+                48
             ],
             "24": [
-                0,
-                874
+                216,
+                48
             ]
         },
-        "cemetery": {
+        "rocket": {
             "12": [
-                0,
-                900
+                42,
+                72
             ],
             "18": [
-                0,
-                914
+                24,
+                72
             ],
             "24": [
                 0,
-                934
+                72
             ]
         },
-        "cinema": {
+        "airport": {
             "12": [
-                0,
-                960
+                96,
+                72
             ],
             "18": [
-                0,
-                974
+                78,
+                72
             ],
             "24": [
-                0,
-                994
+                54,
+                72
             ]
         },
-        "circle": {
+        "heliport": {
             "12": [
-                0,
-                1020
+                150,
+                72
             ],
             "18": [
-                0,
-                1034
+                132,
+                72
             ],
             "24": [
-                0,
-                1054
+                108,
+                72
             ]
         },
-        "circle-stroked": {
+        "rail": {
             "12": [
-                0,
-                1080
+                204,
+                72
             ],
             "18": [
-                0,
-                1094
+                186,
+                72
             ],
             "24": [
-                0,
-                1114
+                162,
+                72
             ]
         },
-        "city": {
+        "rail-underground": {
             "12": [
-                0,
-                1140
+                258,
+                72
             ],
             "18": [
-                0,
-                1154
+                240,
+                72
             ],
             "24": [
-                0,
-                1174
+                216,
+                72
             ]
         },
-        "college": {
+        "rail-above": {
             "12": [
-                0,
-                1200
+                42,
+                96
             ],
             "18": [
-                0,
-                1214
+                24,
+                96
             ],
             "24": [
                 0,
-                1234
+                96
             ]
         },
-        "commercial": {
+        "bus": {
             "12": [
-                0,
-                1260
+                96,
+                96
             ],
             "18": [
-                0,
-                1274
+                78,
+                96
             ],
             "24": [
-                0,
-                1294
+                54,
+                96
             ]
         },
-        "cricket": {
+        "fuel": {
             "12": [
-                0,
-                1320
+                150,
+                96
             ],
             "18": [
-                0,
-                1334
+                132,
+                96
             ],
             "24": [
-                0,
-                1354
+                108,
+                96
             ]
         },
-        "cross": {
+        "parking": {
             "12": [
-                0,
-                1380
+                204,
+                96
             ],
             "18": [
-                0,
-                1394
+                186,
+                96
             ],
             "24": [
-                0,
-                1414
+                162,
+                96
             ]
         },
-        "dam": {
+        "parking-garage": {
             "12": [
-                0,
-                1440
+                258,
+                96
             ],
             "18": [
-                0,
-                1454
+                240,
+                96
             ],
             "24": [
-                0,
-                1474
+                216,
+                96
             ]
         },
-        "danger": {
+        "airfield": {
             "12": [
-                0,
-                1500
+                42,
+                120
             ],
             "18": [
-                0,
-                1514
+                24,
+                120
             ],
             "24": [
                 0,
-                1534
+                120
             ]
         },
-        "disability": {
+        "roadblock": {
             "12": [
-                0,
-                1560
+                96,
+                120
             ],
             "18": [
-                0,
-                1574
+                78,
+                120
             ],
             "24": [
-                0,
-                1594
+                54,
+                120
             ]
         },
-        "embassy": {
+        "ferry": {
             "12": [
-                0,
-                1620
+                150,
+                120
             ],
             "18": [
-                0,
-                1634
+                132,
+                120
             ],
             "24": [
-                0,
-                1654
+                108,
+                120
+            ],
+            "line": [
+                2240,
+                25
             ]
         },
-        "emergency-telephone": {
+        "harbor": {
             "12": [
-                0,
-                1680
+                204,
+                120
             ],
             "18": [
-                0,
-                1694
+                186,
+                120
             ],
             "24": [
-                0,
-                1714
+                162,
+                120
             ]
         },
-        "farm": {
+        "bicycle": {
             "12": [
-                0,
-                1740
+                258,
+                120
             ],
             "18": [
-                0,
-                1754
+                240,
+                120
             ],
             "24": [
-                0,
-                1774
+                216,
+                120
             ]
         },
-        "fast-food": {
+        "park": {
             "12": [
-                0,
-                1800
+                42,
+                144
             ],
             "18": [
-                0,
-                1814
+                24,
+                144
             ],
             "24": [
                 0,
-                1834
+                144
             ]
         },
-        "ferry": {
+        "park2": {
             "12": [
-                0,
-                1860
+                96,
+                144
             ],
             "18": [
-                0,
-                1874
+                78,
+                144
             ],
             "24": [
-                0,
-                1894
+                54,
+                144
+            ]
+        },
+        "museum": {
+            "12": [
+                150,
+                144
             ],
-            "line": [
-                2240,
-                25
+            "18": [
+                132,
+                144
+            ],
+            "24": [
+                108,
+                144
             ]
         },
-        "fire-station": {
+        "lodging": {
             "12": [
-                0,
-                1920
+                204,
+                144
             ],
             "18": [
-                0,
-                1934
+                186,
+                144
             ],
             "24": [
-                0,
-                1954
+                162,
+                144
             ]
         },
-        "fuel": {
+        "monument": {
             "12": [
-                0,
-                1980
+                258,
+                144
             ],
             "18": [
-                0,
-                1994
+                240,
+                144
+            ],
+            "24": [
+                216,
+                144
+            ]
+        },
+        "zoo": {
+            "12": [
+                42,
+                168
+            ],
+            "18": [
+                24,
+                168
             ],
             "24": [
                 0,
-                2014
+                168
             ]
         },
         "garden": {
             "12": [
-                0,
-                2040
+                96,
+                168
             ],
             "18": [
-                0,
-                2054
+                78,
+                168
             ],
             "24": [
-                0,
-                2074
+                54,
+                168
             ]
         },
-        "golf": {
+        "campsite": {
             "12": [
-                0,
-                2100
+                150,
+                168
             ],
             "18": [
-                0,
-                2114
+                132,
+                168
             ],
             "24": [
-                0,
-                2134
+                108,
+                168
             ]
         },
-        "grocery": {
+        "theatre": {
             "12": [
-                0,
-                2160
+                204,
+                168
             ],
             "18": [
-                0,
-                2174
+                186,
+                168
             ],
             "24": [
-                0,
-                2194
+                162,
+                168
             ]
         },
-        "harbor": {
+        "art-gallery": {
             "12": [
-                0,
-                2220
+                258,
+                168
             ],
             "18": [
-                0,
-                2234
+                240,
+                168
             ],
             "24": [
-                0,
-                2254
+                216,
+                168
             ]
         },
-        "heliport": {
+        "pitch": {
             "12": [
-                0,
-                2280
+                42,
+                192
             ],
             "18": [
-                0,
-                2294
+                24,
+                192
             ],
             "24": [
                 0,
-                2314
+                192
             ]
         },
-        "hospital": {
+        "soccer": {
             "12": [
-                0,
-                2340
+                96,
+                192
             ],
             "18": [
-                0,
-                2354
+                78,
+                192
             ],
             "24": [
-                0,
-                2374
+                54,
+                192
             ]
         },
-        "industrial": {
+        "america-football": {
             "12": [
-                0,
-                2400
+                150,
+                192
             ],
             "18": [
-                0,
-                2414
+                132,
+                192
             ],
             "24": [
-                0,
-                2434
+                108,
+                192
             ]
         },
-        "land-use": {
+        "tennis": {
             "12": [
-                0,
-                2460
+                204,
+                192
             ],
             "18": [
-                0,
-                2474
+                186,
+                192
             ],
             "24": [
-                0,
-                2494
+                162,
+                192
             ]
         },
-        "library": {
+        "basketball": {
             "12": [
-                0,
-                2520
+                258,
+                192
             ],
             "18": [
-                0,
-                2534
+                240,
+                192
             ],
             "24": [
-                0,
-                2554
+                216,
+                192
             ]
         },
-        "lodging": {
+        "baseball": {
             "12": [
-                0,
-                2580
+                42,
+                216
             ],
             "18": [
-                0,
-                2594
+                24,
+                216
             ],
             "24": [
                 0,
-                2614
+                216
             ]
         },
-        "logging": {
+        "golf": {
             "12": [
-                0,
-                2640
+                96,
+                216
             ],
             "18": [
-                0,
-                2654
+                78,
+                216
             ],
             "24": [
-                0,
-                2674
+                54,
+                216
             ]
         },
-        "marker": {
+        "swimming": {
             "12": [
-                0,
-                2700
+                150,
+                216
             ],
             "18": [
-                0,
-                2714
+                132,
+                216
             ],
             "24": [
-                0,
-                2734
+                108,
+                216
             ]
         },
-        "marker-stroked": {
+        "cricket": {
             "12": [
-                0,
-                2760
+                204,
+                216
             ],
             "18": [
-                0,
-                2774
+                186,
+                216
             ],
             "24": [
-                0,
-                2794
+                162,
+                216
             ]
         },
-        "monument": {
+        "skiing": {
             "12": [
-                0,
-                2820
+                258,
+                216
             ],
             "18": [
-                0,
-                2834
+                240,
+                216
             ],
             "24": [
-                0,
-                2854
+                216,
+                216
             ]
         },
-        "museum": {
+        "school": {
             "12": [
-                0,
-                2880
+                42,
+                240
             ],
             "18": [
-                0,
-                2894
+                24,
+                240
             ],
             "24": [
                 0,
-                2914
+                240
             ]
         },
-        "music": {
+        "college": {
             "12": [
-                0,
-                2940
+                96,
+                240
             ],
             "18": [
-                0,
-                2954
+                78,
+                240
             ],
             "24": [
-                0,
-                2974
+                54,
+                240
             ]
         },
-        "oil-well": {
+        "library": {
             "12": [
-                0,
-                3000
+                150,
+                240
             ],
             "18": [
-                0,
-                3014
+                132,
+                240
             ],
             "24": [
-                0,
-                3034
+                108,
+                240
             ]
         },
-        "park": {
+        "post": {
             "12": [
-                0,
-                3060
+                204,
+                240
             ],
             "18": [
-                0,
-                3074
+                186,
+                240
             ],
             "24": [
-                0,
-                3094
+                162,
+                240
             ]
         },
-        "park2": {
+        "fire-station": {
             "12": [
-                0,
-                3120
+                258,
+                240
             ],
             "18": [
-                0,
-                3134
+                240,
+                240
             ],
             "24": [
-                0,
-                3154
+                216,
+                240
             ]
         },
-        "parking": {
+        "town-hall": {
             "12": [
-                0,
-                3180
+                42,
+                264
             ],
             "18": [
-                0,
-                3194
+                24,
+                264
             ],
             "24": [
                 0,
-                3214
+                264
             ]
         },
-        "parking-garage": {
+        "police": {
             "12": [
-                0,
-                3240
+                96,
+                264
             ],
             "18": [
-                0,
-                3254
+                78,
+                264
             ],
             "24": [
-                0,
-                3274
+                54,
+                264
             ]
         },
-        "pharmacy": {
+        "prison": {
             "12": [
-                0,
-                3300
+                150,
+                264
             ],
             "18": [
-                0,
-                3314
+                132,
+                264
             ],
             "24": [
-                0,
-                3334
+                108,
+                264
             ]
         },
-        "pitch": {
+        "embassy": {
             "12": [
-                0,
-                3360
+                204,
+                264
             ],
             "18": [
-                0,
-                3374
+                186,
+                264
             ],
             "24": [
-                0,
-                3394
+                162,
+                264
             ]
         },
-        "place-of-worship": {
+        "beer": {
             "12": [
-                0,
-                3420
+                258,
+                264
             ],
             "18": [
-                0,
-                3434
+                240,
+                264
             ],
             "24": [
-                0,
-                3454
+                216,
+                264
             ]
         },
-        "police": {
+        "restaurant": {
             "12": [
-                0,
-                3480
+                42,
+                288
             ],
             "18": [
-                0,
-                3494
+                24,
+                288
             ],
             "24": [
                 0,
-                3514
+                288
             ]
         },
-        "post": {
+        "cafe": {
             "12": [
-                0,
-                3540
+                96,
+                288
             ],
             "18": [
-                0,
-                3554
+                78,
+                288
             ],
             "24": [
-                0,
-                3574
+                54,
+                288
             ]
         },
-        "prison": {
+        "shop": {
             "12": [
-                0,
-                3600
+                150,
+                288
             ],
             "18": [
-                0,
-                3614
+                132,
+                288
             ],
             "24": [
-                0,
-                3634
+                108,
+                288
             ]
         },
-        "rail": {
+        "fast-food": {
             "12": [
-                0,
-                3660
+                204,
+                288
             ],
             "18": [
-                0,
-                3674
+                186,
+                288
             ],
             "24": [
-                0,
-                3694
+                162,
+                288
             ]
         },
-        "rail-above": {
+        "bar": {
             "12": [
-                0,
-                3720
+                258,
+                288
             ],
             "18": [
-                0,
-                3734
+                240,
+                288
             ],
             "24": [
-                0,
-                3754
+                216,
+                288
             ]
         },
-        "rail-underground": {
+        "bank": {
             "12": [
-                0,
-                3780
+                42,
+                312
             ],
             "18": [
-                0,
-                3794
+                24,
+                312
             ],
             "24": [
                 0,
-                3814
+                312
             ]
         },
-        "religious-christian": {
+        "grocery": {
             "12": [
-                0,
-                3840
+                96,
+                312
             ],
             "18": [
-                0,
-                3854
+                78,
+                312
             ],
             "24": [
-                0,
-                3874
+                54,
+                312
             ]
         },
-        "religious-jewish": {
+        "cinema": {
             "12": [
-                0,
-                3900
+                150,
+                312
             ],
             "18": [
-                0,
-                3914
+                132,
+                312
             ],
             "24": [
-                0,
-                3934
+                108,
+                312
             ]
         },
-        "religious-muslim": {
+        "pharmacy": {
             "12": [
-                0,
-                3960
+                204,
+                312
             ],
             "18": [
-                0,
-                3974
+                186,
+                312
             ],
             "24": [
-                0,
-                3994
+                162,
+                312
             ]
         },
-        "restaurant": {
+        "hospital": {
             "12": [
-                0,
-                4020
+                258,
+                312
             ],
             "18": [
-                0,
-                4034
+                240,
+                312
             ],
             "24": [
-                0,
-                4054
+                216,
+                312
             ]
         },
-        "roadblock": {
+        "danger": {
             "12": [
-                0,
-                4080
+                42,
+                336
             ],
             "18": [
-                0,
-                4094
+                24,
+                336
             ],
             "24": [
                 0,
-                4114
+                336
             ]
         },
-        "school": {
+        "industrial": {
             "12": [
-                0,
-                4140
+                96,
+                336
             ],
             "18": [
-                0,
-                4154
+                78,
+                336
             ],
             "24": [
-                0,
-                4174
+                54,
+                336
             ]
         },
-        "shop": {
+        "warehouse": {
             "12": [
-                0,
-                4200
+                150,
+                336
             ],
             "18": [
-                0,
-                4214
+                132,
+                336
             ],
             "24": [
-                0,
-                4234
+                108,
+                336
             ]
         },
-        "skiing": {
+        "commercial": {
             "12": [
-                0,
-                4260
+                204,
+                336
             ],
             "18": [
-                0,
-                4274
+                186,
+                336
             ],
             "24": [
-                0,
-                4294
+                162,
+                336
             ]
         },
-        "slaughterhouse": {
+        "building": {
             "12": [
-                0,
-                4320
+                258,
+                336
             ],
             "18": [
-                0,
-                4334
+                240,
+                336
             ],
             "24": [
-                0,
-                4354
+                216,
+                336
             ]
         },
-        "soccer": {
+        "place-of-worship": {
             "12": [
-                0,
-                4380
+                42,
+                360
             ],
             "18": [
-                0,
-                4394
+                24,
+                360
             ],
             "24": [
                 0,
-                4414
+                360
             ]
         },
-        "square": {
+        "alcohol-shop": {
             "12": [
-                0,
-                4440
+                96,
+                360
             ],
             "18": [
-                0,
-                4454
+                78,
+                360
             ],
             "24": [
-                0,
-                4474
+                54,
+                360
             ]
         },
-        "square-stroked": {
+        "logging": {
             "12": [
-                0,
-                4500
+                150,
+                360
             ],
             "18": [
-                0,
-                4514
+                132,
+                360
             ],
             "24": [
-                0,
-                4534
+                108,
+                360
             ]
         },
-        "star": {
+        "oil-well": {
             "12": [
-                0,
-                4560
+                204,
+                360
             ],
             "18": [
-                0,
-                4574
+                186,
+                360
             ],
             "24": [
-                0,
-                4594
+                162,
+                360
             ]
         },
-        "star-stroked": {
+        "slaughterhouse": {
             "12": [
-                0,
-                4620
+                258,
+                360
             ],
             "18": [
-                0,
-                4634
+                240,
+                360
             ],
             "24": [
-                0,
-                4654
+                216,
+                360
             ]
         },
-        "swimming": {
+        "dam": {
             "12": [
-                0,
-                4680
+                42,
+                384
             ],
             "18": [
-                0,
-                4694
+                24,
+                384
             ],
             "24": [
                 0,
-                4714
+                384
             ]
         },
-        "telephone": {
+        "water": {
             "12": [
-                0,
-                4740
+                96,
+                384
             ],
             "18": [
-                0,
-                4754
+                78,
+                384
             ],
             "24": [
-                0,
-                4774
+                54,
+                384
             ]
         },
-        "tennis": {
+        "wetland": {
             "12": [
-                0,
-                4800
+                150,
+                384
             ],
             "18": [
-                0,
-                4814
+                132,
+                384
             ],
             "24": [
-                0,
-                4834
+                108,
+                384
             ]
         },
-        "theatre": {
+        "disability": {
             "12": [
-                0,
-                4860
+                204,
+                384
             ],
             "18": [
-                0,
-                4874
+                186,
+                384
+            ],
+            "24": [
+                162,
+                384
+            ]
+        },
+        "telephone": {
+            "12": [
+                258,
+                384
+            ],
+            "18": [
+                240,
+                384
+            ],
+            "24": [
+                216,
+                384
+            ]
+        },
+        "emergency-telephone": {
+            "12": [
+                42,
+                408
+            ],
+            "18": [
+                24,
+                408
             ],
             "24": [
                 0,
-                4894
+                408
             ]
         },
         "toilets": {
             "12": [
-                0,
-                4920
+                96,
+                408
             ],
             "18": [
-                0,
-                4934
+                78,
+                408
             ],
             "24": [
-                0,
-                4954
+                54,
+                408
             ]
         },
-        "town": {
+        "waste-basket": {
             "12": [
-                0,
-                4980
+                150,
+                408
             ],
             "18": [
-                0,
-                4994
+                132,
+                408
             ],
             "24": [
-                0,
-                5014
+                108,
+                408
             ]
         },
-        "town-hall": {
+        "music": {
             "12": [
-                0,
-                5040
+                204,
+                408
             ],
             "18": [
-                0,
-                5054
+                186,
+                408
             ],
             "24": [
-                0,
-                5074
+                162,
+                408
             ]
         },
-        "triangle": {
+        "land-use": {
             "12": [
-                0,
-                5100
+                258,
+                408
             ],
             "18": [
-                0,
-                5114
+                240,
+                408
             ],
             "24": [
-                0,
-                5134
+                216,
+                408
             ]
         },
-        "triangle-stroked": {
+        "city": {
             "12": [
-                0,
-                5160
+                42,
+                432
             ],
             "18": [
-                0,
-                5174
+                24,
+                432
             ],
             "24": [
                 0,
-                5194
+                432
+            ]
+        },
+        "town": {
+            "12": [
+                96,
+                432
+            ],
+            "18": [
+                78,
+                432
+            ],
+            "24": [
+                54,
+                432
             ]
         },
         "village": {
             "12": [
-                0,
-                5220
+                150,
+                432
             ],
             "18": [
-                0,
-                5234
+                132,
+                432
             ],
             "24": [
-                0,
-                5254
+                108,
+                432
             ]
         },
-        "warehouse": {
+        "farm": {
             "12": [
-                0,
-                5280
+                204,
+                432
             ],
             "18": [
-                0,
-                5294
+                186,
+                432
             ],
             "24": [
-                0,
-                5314
+                162,
+                432
             ]
         },
-        "waste-basket": {
+        "bakery": {
             "12": [
-                0,
-                5340
+                258,
+                432
             ],
             "18": [
-                0,
-                5354
+                240,
+                432
             ],
             "24": [
-                0,
-                5374
+                216,
+                432
             ]
         },
-        "water": {
+        "dog-park": {
             "12": [
-                0,
-                5400
+                42,
+                456
             ],
             "18": [
-                0,
-                5414
+                24,
+                456
             ],
             "24": [
                 0,
-                5434
+                456
             ]
         },
-        "wetland": {
+        "lighthouse": {
             "12": [
-                0,
-                5460
+                96,
+                456
             ],
             "18": [
-                0,
-                5474
+                78,
+                456
             ],
             "24": [
-                0,
-                5494
+                54,
+                456
             ]
         },
-        "zoo": {
+        "clothing-store": {
             "12": [
-                0,
-                5520
+                150,
+                456
             ],
             "18": [
-                0,
-                5534
+                132,
+                456
+            ],
+            "24": [
+                108,
+                456
+            ]
+        },
+        "london-underground": {
+            "12": [
+                204,
+                456
+            ],
+            "18": [
+                186,
+                456
+            ],
+            "24": [
+                162,
+                456
+            ]
+        },
+        "minefield": {
+            "12": [
+                258,
+                456
+            ],
+            "18": [
+                240,
+                456
+            ],
+            "24": [
+                216,
+                456
+            ]
+        },
+        "camera": {
+            "12": [
+                42,
+                480
+            ],
+            "18": [
+                24,
+                480
             ],
             "24": [
                 0,
-                5554
+                480
             ]
         },
         "highway-motorway": {
@@ -73838,7 +73973,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "none": "None",
             "custom": "Custom",
             "custom_prompt": "Enter a tile template. Valid tokens are {z}, {x}, {y} for Z/X/Y scheme and {u} for quadtile scheme.",
-            "fix_misalignment": "Fix misalignment",
+            "fix_misalignment": "Fix alignment",
             "reset": "reset"
         },
         "restore": {
@@ -75484,6 +75619,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Pet Store",
                     "terms": ""
                 },
+                "shop/photo": {
+                    "name": "Photography Store",
+                    "terms": ""
+                },
                 "shop/shoes": {
                     "name": "Shoe Store",
                     "terms": ""
index cbcba82e2084c6079103df45b3ab4690ba70e7dd..c082961461593ebd546b9921193197f67b94b941 100644 (file)
Binary files a/vendor/assets/iD/iD/img/maki-sprite.png and b/vendor/assets/iD/iD/img/maki-sprite.png differ
index 45b76aaad9942080ed5037e95d48f00a0d67ac84..2d4e8c10d05ff94084c66fb236bfae6daab8785d 100644 (file)
         "title": "Agtergrond",
         "description": "Agtergrond stellings",
         "percent_brightness": "{opacity}% helderheid",
-        "fix_misalignment": "Lyn op",
         "reset": "begin van voor"
     },
     "restore": {
index 0abc2ca36b7c46a7c1873dd6b8d69e93055e35be..71f1c121ad0c99af60baedb967d26c7cfb3348e2 100644 (file)
     },
     "presets": {
         "categories": {
+            "category-landuse": {
+                "name": "استخدام الأرض"
+            },
             "category-path": {
                 "name": "طريق"
+            },
+            "category-rail": {
+                "name": "قطار"
+            },
+            "category-road": {
+                "name": "طريق"
+            },
+            "category-water": {
+                "name": "مياه"
             }
         },
         "fields": {
             "access": {
-                "label": "الوصول"
+                "label": "الوصول",
+                "types": {
+                    "access": "عام",
+                    "foot": "بالقدم",
+                    "motor_vehicle": "مركبات",
+                    "bicycle": "درجات هوائية",
+                    "horse": "أحصنة"
+                },
+                "options": {
+                    "yes": {
+                        "title": "مسموح",
+                        "description": "الدخول مسموح به بنص القانون، حق الطريق"
+                    },
+                    "no": {
+                        "title": "محظور",
+                        "description": "الدخول ليس مسموحا به للعامة"
+                    },
+                    "permissive": {
+                        "title": "مرخص",
+                        "description": "الدخول مسموح به حتى يلغى المالك هذا الترخيص."
+                    },
+                    "private": {
+                        "title": "خاص",
+                        "description": "الدخول مسموح به فقط بإذن من المالك على أساس فردي."
+                    },
+                    "designated": {
+                        "title": "مخصص",
+                        "description": "الدخول مصرح به وفقا للعلامات أو قوانين محلية مخصصة."
+                    },
+                    "destination": {
+                        "title": "الوجهة",
+                        "description": "الدخول مسموح به فقط للوصل إلى وجهة معينة"
+                    }
+                }
             },
             "address": {
                 "label": "العنوان",
                     "housename": "اسم المنزل",
                     "number": "١٢٣",
                     "street": "الشارع",
-                    "city": "المدينة"
+                    "city": "المدينة",
+                    "postcode": "الرمز البريدي"
                 }
             },
+            "admin_level": {
+                "label": "مستوى الإدارة"
+            },
             "aeroway": {
                 "label": "النوع"
             },
             "atm": {
                 "label": "صراف آلي"
             },
+            "barrier": {
+                "label": "نوع"
+            },
             "bicycle_parking": {
                 "label": "النوع"
             },
             "capacity": {
                 "label": "السعة"
             },
+            "cardinal_direction": {
+                "label": "اتجاه"
+            },
+            "clock_direction": {
+                "label": "الاتجاه",
+                "options": {
+                    "clockwise": "باتجاه عقارب الساعة",
+                    "anticlockwise": "عكس عقارب الساعة"
+                }
+            },
             "collection_times": {
                 "label": "وقت الاستلام"
             },
             "construction": {
                 "label": "النوع"
             },
+            "country": {
+                "label": "دولة"
+            },
             "crossing": {
                 "label": "النوع"
             },
             "historic": {
                 "label": "النوع"
             },
+            "incline": {
+                "label": "انحدار"
+            },
             "internet_access": {
                 "label": "إنترنت",
                 "options": {
             "landuse": {
                 "label": "النوع"
             },
+            "lanes": {
+                "label": "زقاق"
+            },
             "layer": {
                 "label": "طبقة"
             },
             "maxspeed": {
                 "label": "السرعة القصوى"
             },
+            "name": {
+                "label": "اسم"
+            },
             "natural": {
                 "label": "طبيعه"
             },
             "oneway": {
                 "label": "مسار واحد"
             },
+            "oneway_yes": {
+                "label": "مسار واحد"
+            },
             "opening_hours": {
                 "label": "ساعات"
             },
             "operator": {
                 "label": "مشغل"
             },
+            "parking": {
+                "label": "النوع"
+            },
             "phone": {
                 "label": "هاتف"
             },
             "place": {
                 "label": "النوع"
             },
+            "power": {
+                "label": "نوع"
+            },
             "railway": {
                 "label": "النوع"
             },
+            "ref": {
+                "label": "مرجع"
+            },
             "religion": {
                 "label": "الديانة",
                 "options": {
             "sport": {
                 "label": "رياضة"
             },
+            "structure": {
+                "label": "بنية",
+                "options": {
+                    "bridge": "جسر",
+                    "tunnel": "نفق",
+                    "embankment": "طريق مرتفع",
+                    "cutting": "طريق منخفض"
+                }
+            },
+            "supervised": {
+                "label": "مراقب"
+            },
             "surface": {
                 "label": "سطح"
             },
             "tourism": {
                 "label": "النوع"
             },
+            "tracktype": {
+                "label": "نوع"
+            },
             "water": {
                 "label": "النوع"
             },
             "wetland": {
                 "label": "النوع"
             },
+            "wheelchair": {
+                "label": "وصول كرسي المعوّقين"
+            },
             "wikipedia": {
                 "label": "ويكيبيديا"
             },
             "amenity/cafe": {
                 "name": "مقهى"
             },
+            "amenity/car_wash": {
+                "name": "غسيل سيارات"
+            },
             "amenity/cinema": {
                 "name": "سينما"
             },
+            "amenity/courthouse": {
+                "name": "دار العدل"
+            },
+            "amenity/embassy": {
+                "name": "سفارة"
+            },
             "amenity/fast_food": {
                 "name": "وجبات سريعة"
             },
             "amenity/fire_station": {
                 "name": "محطة إطفاء"
             },
+            "amenity/fountain": {
+                "name": "نافورة"
+            },
             "amenity/fuel": {
                 "name": "محطة غاز"
             },
             "amenity/library": {
                 "name": "مكتبة"
             },
+            "amenity/marketplace": {
+                "name": "سوق"
+            },
             "amenity/parking": {
                 "name": "موقف"
             },
             "amenity/school": {
                 "name": "مدرسة"
             },
+            "amenity/swimming_pool": {
+                "name": "حوض سباحة"
+            },
             "amenity/telephone": {
                 "name": "هاتف"
             },
+            "amenity/theatre": {
+                "name": "مسرح"
+            },
             "amenity/toilets": {
                 "name": "دورات مياه"
             },
             "amenity/university": {
                 "name": "جامعة"
             },
+            "amenity/waste_basket": {
+                "name": "سلة مهملات"
+            },
+            "barrier": {
+                "name": "حاجز"
+            },
+            "barrier/block": {
+                "name": "كتلة"
+            },
+            "barrier/bollard": {
+                "name": "عمود صلب"
+            },
+            "barrier/cattle_grid": {
+                "name": "شبكة الماشية"
+            },
+            "barrier/city_wall": {
+                "name": "جدار المدينة"
+            },
+            "barrier/cycle_barrier": {
+                "name": "حاجز الدرجات الهوائية"
+            },
+            "barrier/ditch": {
+                "name": "خندق"
+            },
+            "barrier/entrance": {
+                "name": "مدخل"
+            },
+            "barrier/fence": {
+                "name": "سياج"
+            },
+            "barrier/gate": {
+                "name": "بوابة"
+            },
+            "barrier/hedge": {
+                "name": "سياج نباتي"
+            },
+            "barrier/kissing_gate": {
+                "name": "بوابة منع الماشية"
+            },
+            "barrier/lift_gate": {
+                "name": "بوابة الرافعة"
+            },
+            "barrier/retaining_wall": {
+                "name": "جدار تثبيت"
+            },
+            "barrier/stile": {
+                "name": "مرقى عبور"
+            },
+            "barrier/toll_booth": {
+                "name": "كشك التحصيل"
+            },
+            "barrier/wall": {
+                "name": "جدار"
+            },
+            "boundary/administrative": {
+                "name": "حدود إدارية"
+            },
             "building": {
                 "name": "مبنى"
             },
+            "building/apartments": {
+                "name": "شقق"
+            },
+            "building/entrance": {
+                "name": "مدخل"
+            },
+            "building/house": {
+                "name": "منزل"
+            },
+            "emergency/phone": {
+                "name": "هاتف طوارئ"
+            },
             "entrance": {
                 "name": "مدخل"
             },
             "highway/footway": {
                 "name": "طريق مشي بالأقدام"
             },
+            "highway/living_street": {
+                "name": "شارع سكني"
+            },
+            "highway/mini_roundabout": {
+                "name": "دوار صغير"
+            },
             "highway/motorway": {
                 "name": "طريق سريع"
             },
+            "highway/motorway_junction": {
+                "name": "مفرق طريق سريع"
+            },
+            "highway/motorway_link": {
+                "name": "رابط لطريق سريع"
+            },
             "highway/path": {
                 "name": "طريق"
             },
+            "highway/pedestrian": {
+                "name": "مشاة"
+            },
             "highway/primary": {
                 "name": "طريق رئيسي"
             },
+            "highway/primary_link": {
+                "name": "رابط لطريق رئيسي"
+            },
             "highway/residential": {
                 "name": "طريق سكني"
             },
+            "highway/road": {
+                "name": "طريق غير معروف"
+            },
             "highway/secondary": {
                 "name": "طريق ثانوي"
             },
+            "highway/secondary_link": {
+                "name": "رابط لطريق ثانوي"
+            },
             "highway/service": {
                 "name": "طريق خدمة"
             },
             "highway/tertiary": {
                 "name": "طريق ثالثي"
             },
+            "highway/tertiary_link": {
+                "name": "رابط لطريق ثالثي"
+            },
             "highway/track": {
                 "name": "شاحنات"
             },
             "highway/trunk": {
                 "name": "طريق شاحنات"
             },
+            "highway/trunk_link": {
+                "name": "رابط لطريق أساسي"
+            },
             "highway/turning_circle": {
                 "name": "دائرة رجوع"
             },
             "historic": {
                 "name": "موقع تاريخي"
             },
+            "historic/archaeological_site": {
+                "name": "موقع أثري"
+            },
+            "historic/boundary_stone": {
+                "name": "صخرة حدودية"
+            },
+            "historic/castle": {
+                "name": "حصن"
+            },
+            "historic/memorial": {
+                "name": "نصب تذكاري"
+            },
             "historic/monument": {
                 "name": "نصب تذكاري"
             },
+            "historic/ruins": {
+                "name": "آثار"
+            },
+            "historic/wayside_cross": {
+                "name": "صليب على الطريق"
+            },
+            "historic/wayside_shrine": {
+                "name": "مقام نصراني على الطريق"
+            },
             "landuse": {
                 "name": "استخدام الارض"
             },
             "landuse/residential": {
                 "name": "سكني"
             },
+            "landuse/retail": {
+                "name": "بيع بالتجزئة"
+            },
             "landuse/vineyard": {
                 "name": "مزرعة العنب"
             },
             "leisure/golf_course": {
                 "name": "معلب جولف"
             },
+            "leisure/marina": {
+                "name": "حوض السفن"
+            },
             "leisure/park": {
                 "name": "حديقة"
             },
             "leisure/pitch/tennis": {
                 "name": "ملعب تنس"
             },
+            "leisure/pitch/volleyball": {
+                "name": "ملعب كرة الطائرة"
+            },
             "leisure/playground": {
                 "name": "ساحة ألعاب للأطفال"
             },
+            "leisure/slipway": {
+                "name": "مزلقة سفن"
+            },
+            "leisure/stadium": {
+                "name": "مدرج رياضي"
+            },
+            "leisure/swimming_pool": {
+                "name": "حوض سباحة"
+            },
             "man_made": {
                 "name": "مباني صناعية"
             },
             "man_made/pier": {
                 "name": "رصيف بحري"
             },
+            "man_made/survey_point": {
+                "name": "نقطة مسح"
+            },
+            "man_made/wastewater_plant": {
+                "name": "محطة صرف صحي"
+            },
             "man_made/water_tower": {
                 "name": "خزان مائي"
             },
+            "man_made/water_works": {
+                "name": "محطة مياه"
+            },
             "natural": {
                 "name": "طبيعي"
             },
             "place": {
                 "name": "قصر"
             },
+            "place/city": {
+                "name": "مدينة"
+            },
             "place/hamlet": {
                 "name": "قرية صغيرة"
             },
             "place/island": {
                 "name": "جزيرة"
             },
+            "place/isolated_dwelling": {
+                "name": "مساكن متفرقة"
+            },
             "place/locality": {
                 "name": "موقع"
             },
+            "place/town": {
+                "name": "بلدة"
+            },
             "place/village": {
                 "name": "قرية"
             },
+            "power": {
+                "name": "الطاقة"
+            },
+            "power/line": {
+                "name": "خط الطاقة"
+            },
+            "power/pole": {
+                "name": "برج كهربائي"
+            },
             "power/sub_station": {
                 "name": "محطة فرعية"
             },
+            "power/tower": {
+                "name": "برج عالي الجهد"
+            },
+            "power/transformer": {
+                "name": "محول كهربائي"
+            },
             "railway": {
                 "name": "سكة حديد"
             },
+            "railway/abandoned": {
+                "name": "سكة حديدية مهجورة"
+            },
+            "railway/disused": {
+                "name": "سكة حديدة مهجورة"
+            },
             "railway/level_crossing": {
                 "name": "معبر سكة حديدية"
             },
+            "railway/monorail": {
+                "name": "سكة حديدة مفردة"
+            },
+            "railway/platform": {
+                "name": "رصيف سكة حديد"
+            },
             "railway/rail": {
                 "name": "قطار"
             },
+            "railway/station": {
+                "name": "محطة سكة حديد"
+            },
             "railway/subway": {
                 "name": "مترو الأنفاق"
             },
             "railway/subway_entrance": {
                 "name": "مدخل مترو الأنفاق"
             },
+            "railway/tram": {
+                "name": "ترام"
+            },
             "shop": {
                 "name": "محل"
             },
+            "shop/alcohol": {
+                "name": "محل خمور"
+            },
+            "shop/bakery": {
+                "name": "مخبز"
+            },
+            "shop/beauty": {
+                "name": "محل تجميل"
+            },
+            "shop/beverages": {
+                "name": "محل مشروبات"
+            },
+            "shop/bicycle": {
+                "name": "محل دراجات هوائية"
+            },
+            "shop/books": {
+                "name": "محل بيع كتب"
+            },
+            "shop/boutique": {
+                "name": "بوتيك"
+            },
             "shop/butcher": {
                 "name": "ملحمة"
             },
+            "shop/car": {
+                "name": "وكالة سيارات"
+            },
+            "shop/car_parts": {
+                "name": "محل بيع أجزاء السيارة"
+            },
+            "shop/car_repair": {
+                "name": "محل تصليح السيارات جراج"
+            },
+            "shop/chemist": {
+                "name": "محل أدوية"
+            },
+            "shop/clothes": {
+                "name": "محل ملابس"
+            },
+            "shop/computer": {
+                "name": "محل حاسوب"
+            },
+            "shop/confectionery": {
+                "name": "محل حلويات"
+            },
+            "shop/convenience": {
+                "name": "بقالة"
+            },
+            "shop/deli": {
+                "name": "محل أطعمة لذيذة"
+            },
+            "shop/department_store": {
+                "name": "محل متعدد الأقسام"
+            },
+            "shop/doityourself": {
+                "name": "محل افعلها بنفسك"
+            },
+            "shop/dry_cleaning": {
+                "name": "محل مجفف الملابس"
+            },
+            "shop/electronics": {
+                "name": "محل إلكترونيات"
+            },
+            "shop/fishmonger": {
+                "name": "محل بيع أسماك"
+            },
+            "shop/florist": {
+                "name": "محل بيع الورود"
+            },
+            "shop/furniture": {
+                "name": "محل أثاث"
+            },
+            "shop/garden_centre": {
+                "name": "مشتل"
+            },
+            "shop/gift": {
+                "name": "محل الهدايا"
+            },
+            "shop/greengrocer": {
+                "name": "بقالة"
+            },
+            "shop/hairdresser": {
+                "name": "حلاق"
+            },
+            "shop/hardware": {
+                "name": "محل أجهزة"
+            },
+            "shop/hifi": {
+                "name": "محل بيع أجهزة عالية الدقة"
+            },
+            "shop/jewelry": {
+                "name": "محل بيع مجوهرات"
+            },
+            "shop/kiosk": {
+                "name": "كشك"
+            },
+            "shop/laundry": {
+                "name": "محل غسيل ملابس"
+            },
+            "shop/mall": {
+                "name": "مركز تسوق مول"
+            },
+            "shop/mobile_phone": {
+                "name": "محل بيع هواتف"
+            },
+            "shop/motorcycle": {
+                "name": "وكالة دراجات نارية"
+            },
+            "shop/music": {
+                "name": "محل بيع موسيقى"
+            },
+            "shop/newsagent": {
+                "name": "محل بيع صحف"
+            },
+            "shop/optician": {
+                "name": "محل بيع نظارات"
+            },
+            "shop/outdoor": {
+                "name": "محل بيع مسلتزمات التخييم"
+            },
+            "shop/pet": {
+                "name": "محل حيوانات أليفة"
+            },
+            "shop/shoes": {
+                "name": "محل بيع أحذية"
+            },
+            "shop/sports": {
+                "name": "محل بيع أدوات رياضية"
+            },
+            "shop/stationery": {
+                "name": "محل بيع أدوات مكتبية"
+            },
             "shop/supermarket": {
                 "name": "سوبر ماركت"
             },
+            "shop/toys": {
+                "name": "محل ألعاب"
+            },
+            "shop/travel_agency": {
+                "name": "وكالة سفر"
+            },
+            "shop/tyres": {
+                "name": "محل بيع إطارات"
+            },
+            "shop/vacant": {
+                "name": "محل شاغر"
+            },
+            "shop/variety_store": {
+                "name": "محل كل شيء "
+            },
+            "shop/video": {
+                "name": "محل بيع وتأجير الأفلام"
+            },
             "tourism": {
                 "name": "سياحي"
             },
             "tourism/theme_park": {
                 "name": "حديقة ترفيه"
             },
+            "tourism/viewpoint": {
+                "name": "منظر سياحي"
+            },
             "tourism/zoo": {
                 "name": "حديقة حيوانات"
             },
index d1661906be0aceef723ea9cb6d95ffa714172a5f..8a0dd1e69948b1841b4b9f30356757a7d25e1977 100644 (file)
         "title": "Fondu",
         "description": "Configuración del fondu",
         "percent_brightness": "{opacity}% brillu",
-        "fix_misalignment": "Iguar mal alliniamientu",
         "reset": "reaniciar"
     },
     "restore": {
index 55ecf86fd8deba249ee746374d44da6568615d89..7cad80fd2f89b0fcd8e4377ca3bcbe65cb698724 100644 (file)
         "title": "Изображения",
         "description": "Изображения настройки",
         "percent_brightness": "{opacity}% яркост",
-        "fix_misalignment": "Подравняване",
         "reset": "презареждане"
     },
     "restore": {
index 5108622fda248cceb5549adaf286ddb49d3d4ed5..62ef0868c2a46c1b191235b113497f51844e3935 100644 (file)
         "none": "Ništa",
         "custom": "Prilagođena pozadina",
         "custom_prompt": "Unesite šablon pločica. Validni simboli su {z}, {x}, {y} za Z/X/Y šemu i {u} za \"QuadTile\" šemu.",
-        "fix_misalignment": "Popravite poravnanje",
         "reset": "ponovo postavite"
     },
     "restore": {
index a339d7a2570288bf16d07346811d3e0ba3409568..6d7c052c303d2b40ddf09d9cdfb7af8a9018f819 100644 (file)
         "none": "Cap",
         "custom": "Personalitza",
         "custom_prompt": "Introdueix una plantilla de casella. Els paràmetres vàlids són {z}, {x}, {y} per a l'esquema Z/X/Y i  {u} per a l'esquema quadtile.",
-        "fix_misalignment": "Corregeix la desalineació",
         "reset": "reinicia"
     },
     "restore": {
index fb90cdf7355ac32023699463375086f688a8d286..ee74c9401a76446b43cc98c2b71ca6a086608821 100644 (file)
         "none": "Žádné",
         "custom": "Vlastní",
         "custom_prompt": "Vložte šablonu adres dlaždic. Lze použít tokeny {z}, {x}, {y} pro schéma Z/X/Y a {u} pro hierarchické schéma quadtile.",
-        "fix_misalignment": "Zarovnat pozadí",
+        "fix_misalignment": "Vyrovnat posunutí pozadí",
         "reset": "vrátit na začátek"
     },
     "restore": {
                 "name": "Chovatelské potřeby",
                 "terms": "obchod pro domácí zvířata,obchod pro domácí mazlíčky,zverimex"
             },
+            "shop/photo": {
+                "name": "Fotografický obchod",
+                "terms": "fotografie,fotografický obchod,foto,fotoobchod,video,vyvolávání,tisk,film,filmy,fotostudio,studio,fotoaparát,digitální,digitál,střih,ateliér,objektiv"
+            },
             "shop/shoes": {
                 "name": "Obuvnictví",
                 "terms": "dům obuvi,boty,obuvnictví,obuvník,švec"
index 9cb8575f925718350ac7c17579da7fef9a2595c0..eb2c05fddb074489dc63cd9a56dc24d51892e1d1 100644 (file)
         "none": "Ingen",
         "custom": "Brugerdefineret",
         "custom_prompt": "Angiv en tile skabelon. Valide værdier er {z}, {x}, {y} for Z/X/Y skemaer og {u} for quadtile skema. ",
-        "fix_misalignment": "Ret fejljustering",
+        "fix_misalignment": "Ret justering",
         "reset": "nulstil"
     },
     "restore": {
                 "label": "Type"
             },
             "maxspeed": {
-                "label": "Hastighedsbegræsning",
+                "label": "Hastighedsbegrænsning",
                 "placeholder": "40, 50, 60..."
             },
             "name": {
                 "label": "Type"
             },
             "oneway": {
-                "label": "Ensrettet vej"
+                "label": "Ensrettet"
             },
             "oneway_yes": {
                 "label": "Ensrettet"
                 "terms": "adresse, adresser"
             },
             "aeroway": {
-                "name": "Lufthavnsveje",
+                "name": "Lufthavnsvej",
                 "terms": "Lufthavnsveje"
             },
             "aeroway/aerodrome": {
                 "terms": "Indgang, Indgangsparti"
             },
             "highway": {
-                "name": "Veje",
+                "name": "Vej",
                 "terms": "Veje, Gader"
             },
             "highway/bridleway": {
                 "name": "Kæledyrsbutik",
                 "terms": "Kæledyrsbutik, Dyreforhandler"
             },
+            "shop/photo": {
+                "name": "Fotoforretning",
+                "terms": "<Oversæt med synonymer eller relaterede termer for \"Fotoforretning\", adskilt af kommaer>"
+            },
             "shop/shoes": {
                 "name": "Skobutik",
                 "terms": "Skobutik, Skoforretning"
index 295cedf434f73a4264113f2b71e414c7301542c4..282b8c9a93143e51f1bfbad7bc7af8fbf0d49edf 100644 (file)
         "none": "Kein Hintergrund",
         "custom": "Benutzerdefiniert",
         "custom_prompt": "Gib eine Kachel-Vorlage ein. Gültige Token sind {z}, {x}, {y} für das Z/X/Y Schema und {u} für das 'quadtile'-Schema.",
-        "fix_misalignment": "Fehlerhafte Ausrichtung korrigieren",
+        "fix_misalignment": "Ausrichtung korrigieren",
         "reset": "Zurücksetzen"
     },
     "restore": {
                 "name": "Tierhandlung",
                 "terms": "Tierhandlung, Zoohandlung"
             },
+            "shop/photo": {
+                "name": "Fotofachgeschäft",
+                "terms": "Fotoladen, Fotograf, Fotogeschäft"
+            },
             "shop/shoes": {
                 "name": "Schuhgeschäft",
                 "terms": "Schuhgeschäft"
index 069c95c132bda29a554ef3242436070c66009597..5898cdd5c511fb0ba778290cfddaef0644f60a73 100644 (file)
         "percent_brightness": "{opacity}% φωτεινότητα",
         "none": "Κανένα",
         "custom": "Προσαρμοσμένο",
-        "fix_misalignment": "Διόρθωση ευθυγράμμισης",
         "reset": "Μηδενισμός"
     },
     "restore": {
index b5aa52d3e2509162a6be3aa017dfe14f20b192b2..b7e3c98b7496f3e5cf7f84a25c3def1e33f63eb9 100644 (file)
@@ -1,9 +1,53 @@
 {
+    "modes": {
+        "add_area": {
+            "title": "Area",
+            "description": "Add parks, buildings, lakes or other areas to the map.",
+            "tail": "Click on the map to start drawing an area, like a park, lake, or building."
+        },
+        "add_line": {
+            "title": "Line",
+            "description": "Add roads, streets, footpaths, canals or other lines to the map.",
+            "tail": "Click on the map to start drawing a road, path, or route."
+        },
+        "add_point": {
+            "title": "Point",
+            "description": "Add restaurants, monuments, post boxes or other points to the map.",
+            "tail": "Click on the map to add a point."
+        },
+        "browse": {
+            "title": "Browse",
+            "description": "Pan and zoom the map."
+        }
+    },
     "operations": {
+        "add": {
+            "annotation": {
+                "point": "Added a point.",
+                "vertex": "Added a node to a way."
+            }
+        },
+        "start": {
+            "annotation": {
+                "line": "Started a line.",
+                "area": "Started an area."
+            }
+        },
         "rotate": {
             "description": "Rotate this object around its centre point."
         }
     },
+    "zoom_in_edit": "Zoom in to Edit",
+    "inspector": {
+        "none": "None"
+    },
+    "background": {
+        "fix_misalignment": "Fix alignment"
+    },
+    "gpx": {
+        "drag_drop": "Drag and drop a .gpx file on the page, or click the button to the right to browse",
+        "browse": "Browse for a .gpx file"
+    },
     "intro": {
         "lines": {
             "add": "Lines are used to represent features such as roads, railways and rivers. **Click the Line button to add a new line.**"
index 70c5bafd5caebb2e02a843f0bd73196399a0de19..aa5c88dc1ab0694a0a096b113d425966da7f6aac 100644 (file)
         "none": "None",
         "custom": "Custom",
         "custom_prompt": "Enter a tile template. Valid tokens are {z}, {x}, {y} for Z/X/Y scheme and {u} for quadtile scheme.",
-        "fix_misalignment": "Fix misalignment",
+        "fix_misalignment": "Fix alignment",
         "reset": "reset"
     },
     "restore": {
                 "name": "Pet Store",
                 "terms": ""
             },
+            "shop/photo": {
+                "name": "Photography Store",
+                "terms": ""
+            },
             "shop/shoes": {
                 "name": "Shoe Store",
                 "terms": ""
index f844fa496e2f852cfacaa10ecd7d624652c6b39c..6d830c5c0663e161a953645a0696b1b878ae3adf 100644 (file)
         "none": "Ninguno",
         "custom": "Personalizado",
         "custom_prompt": "Introduzca una plantilla de teselas. Los símbolos válidos son {z}, {x}, {y} para el esquema Z\\/X\\/Y y {u} para el esquema quadtile.",
-        "fix_misalignment": "Corregir alineación",
         "reset": "reiniciar"
     },
     "restore": {
index e30c5b07f4da4636a1dc478ce21522a30e8dffb1..9c43d2c3fd9b064fde922fdf82f62e963bd4cb52 100644 (file)
@@ -7,7 +7,7 @@
         },
         "add_line": {
             "title": "Joon",
-            "description": "Lisa teid, tänavaid, jalgteid, ojasid ja teisi jooni kaardile.",
+            "description": "Lisa kaardile teid, tänavaid, jalgteid, ojasid ja teisi jooni.",
             "tail": "Joone (tee, rada, marsruut vms) joonistamiseks kliki kaardil."
         },
         "add_point": {
         "none": "Puudub",
         "custom": "Kohandatud",
         "custom_prompt": "Sisesta kohandatud tausta URL. Kasutatavad muutujad on {z}, {x}, {y} Z/X/Y skeemi jaoks ja {u} quadtile skeemi jaoks.",
-        "fix_misalignment": "Korrigeeri nihet",
         "reset": "lähtesta"
     },
     "restore": {
                 "label": "Faks",
                 "placeholder": "+372 123 4567"
             },
+            "fee": {
+                "label": "Tasu"
+            },
             "iata": {
                 "label": "IATA"
             },
             "lanes": {
                 "label": "Sõiduread"
             },
+            "layer": {
+                "label": "Kiht"
+            },
             "levels": {
                 "label": "Korruseid"
             },
             "note": {
                 "label": "Märge"
             },
+            "office": {
+                "label": "Tüüp"
+            },
             "oneway": {
                 "label": "Ühesuunaline"
             },
             "shelter": {
                 "label": "Varjualune"
             },
+            "source": {
+                "label": "Allikas"
+            },
             "sport": {
                 "label": "Sport"
             },
index 7f576dc77fd33faa035cc9d88c631c46539e6d08..eb2ae12d6bf316b155a92849006b9bdc6a01c74e 100644 (file)
         "percent_brightness": "{opacity}% kirkkaus",
         "none": "Ei kohteita",
         "custom": "Mukautettu",
-        "fix_misalignment": "Korjaa ilmakuvavirhe",
         "reset": "palauta"
     },
     "restore": {
index e2460f5cf70861d5984b4e2115f5cad67ef36aaa..d548b3af33ff4ff9eec4859e92bd1d559aa2dcdd 100644 (file)
         "none": "Aucun",
         "custom": "Personnalisé",
         "custom_prompt": "Entre un modèle de tuile. Les jetons valides sont  {z}, {x}, {y} pour un système Z/X/Y  et {u} pour le quatrième système.",
-        "fix_misalignment": "Corriger le décalage",
         "reset": "réinitialiser"
     },
     "restore": {
index 9318a3a5627f3d8c5cb45fb35527ae73be093901..2146972ff07673d9332f26a8e295c359f3288ab8 100644 (file)
         "none": "Nincs",
         "custom": "Egyéni",
         "custom_prompt": "Adj meg egy csempe sablont. Érvényes tokenek: {z}, {x}, {y} a Z/X/Y rendszerű URL-ekhez és {u} a kvadratikusakhoz.",
-        "fix_misalignment": "Elcsúszás korrigálása",
         "reset": "visszavonás"
     },
     "restore": {
index 1fc31ce8cdf6e85dd3cba278bee4004985580473..30b5949c35138e8a94373ec40999cd2f21ac9a2d 100644 (file)
         "title": "Latar",
         "description": "Pengaturan Latar",
         "percent_brightness": "{opacity}% kecerahan",
-        "fix_misalignment": "Perbaiki Kesalahan Penempatan",
         "reset": "ulang"
     },
     "restore": {
index d897b34ceff9edabb0a365dec6fb3522430b7a6f..616510a0711b996aadfb2ba28fd11085a4d6ef5c 100644 (file)
         "title": "Bakgrunnur",
         "description": "Bakgrunnsstillingar",
         "percent_brightness": "{opacity}% birta",
-        "fix_misalignment": "Laga hliðrun",
         "reset": "endurstilla"
     },
     "restore": {
index fb16ddfbe1610cb3ff0e52a758861ffabe3b1fcd..f0d2c9a8bced011f329ad9453ea467c3929cae73 100644 (file)
                 "name": "Negozio di animali",
                 "terms": "Negozio di animali"
             },
+            "shop/photo": {
+                "name": "Fotografo",
+                "terms": "fotografia,fotografico,fotografo,foto,diapositive,rullini,macchine fotografiche"
+            },
             "shop/shoes": {
                 "name": "Negozio di scarpe",
                 "terms": "Negozio scarpe"
index 88009d28c3baebffaff94f8013e0af6ec8a8b391..bb1ed3e0a36c91bc06df44b57b071bfaee180d08 100644 (file)
             "shop/laundry": {
                 "name": "コインランドリー"
             },
+            "shop/locksmith": {
+                "name": "錠前屋"
+            },
             "shop/mall": {
                 "name": "ショッピングセンター"
             },
             "shop/pet": {
                 "name": "ペットショップ"
             },
+            "shop/photo": {
+                "name": "写真販売"
+            },
             "shop/shoes": {
                 "name": "靴屋"
             },
index 03421abc8a764f34d8a0423904b0a9a30d1ab8d9..d58ea66a8bd9c85544afd121cd0ba6f1f2bfa3cf 100644 (file)
         "none": "없음",
         "custom": "사용자 지정",
         "custom_prompt": "타일 템플릿을 입력하세요. 올바른 토큰은 Z/X/Y scheme에 대해 {z}, {x}, {y}이고 quadtile scheme에 대해 {u}입니다.",
-        "fix_misalignment": "어긋난 것을 고치기",
         "reset": "재설정"
     },
     "restore": {
index f30f25a1741ba61ffe4547386f81477268f82f5d..8249ec8881a356d78e540db855d8013b0411f724 100644 (file)
         "title": "Fons",
         "description": "Fona iestatījumi",
         "percent_brightness": "{opacity}% caurspīdīgums",
-        "fix_misalignment": "Labot fona nobīdi",
         "reset": "Atiestatīt"
     },
     "restore": {
index a41929b8124a94eb53b23a2c48ff965b709ff496..fb346d6d3206154b75b9fbbf8a6ab615a3fa25a1 100644 (file)
         "none": "Geen",
         "custom": "Aangepast",
         "custom_prompt": "Voer een tegelschema in. Geldige waarden zijn {z}, {x}, {y} voor Z/X/Y schema en {u} voor het quadtile schema.",
-        "fix_misalignment": "Repareer de verkeerde ligging",
+        "fix_misalignment": "Repareer de ligging",
         "reset": "Standaard herstellen"
     },
     "restore": {
index 7884e7ca9a661a1d71966f628fd1f01d26ed1e4e..7380ec16f313247547021dce2e38e58117784b50 100644 (file)
         "title": "Bakgrunn",
         "description": "Bakgrunnsinnstillinger",
         "percent_brightness": "{opacity}% lysstyrke",
-        "fix_misalignment": "Rett opp skjevstilling",
         "reset": "tilbakestill"
     },
     "restore": {
index 162cd9988b4162a698320e3accde2f7d3760efa8..00fee146ada783200a0955d61c4bdd0e61d25602 100644 (file)
                 "terms": "budowa,teren,budowy"
             },
             "landuse/farm": {
-                "name": "Teren rolny (orny)"
+                "name": "Teren rolny (orny)",
+                "terms": "Farma, gospodarstwo, zagroda"
             },
             "landuse/farmyard": {
-                "name": "Zabudowa rolnicza"
+                "name": "Zabudowa rolnicza",
+                "terms": "podwórze gospodarskie"
             },
             "landuse/forest": {
-                "name": "Las"
+                "name": "Las",
+                "terms": "Las"
             },
             "landuse/grass": {
-                "name": "Trawa"
+                "name": "Trawa",
+                "terms": "trawa, trawnik, "
             },
             "landuse/industrial": {
                 "name": "Obszar przemysłowy"
             },
             "landuse/meadow": {
-                "name": "Łąka"
+                "name": "Łąka",
+                "terms": "Łąka"
             },
             "landuse/orchard": {
-                "name": "Sad"
+                "name": "Sad",
+                "terms": "Sad"
             },
             "landuse/quarry": {
                 "name": "Kamieniołom"
                 "name": "Obszar handlowy"
             },
             "landuse/vineyard": {
-                "name": "Winnica"
+                "name": "Winnica",
+                "terms": "winnica"
             },
             "leisure": {
                 "name": "Rozrywka i wypoczynek"
                 "name": "Park dla psów"
             },
             "leisure/garden": {
-                "name": "Ogród"
+                "name": "Ogród",
+                "terms": "ogród"
             },
             "leisure/golf_course": {
-                "name": "Pole golfowe"
+                "name": "Pole golfowe",
+                "terms": "pole golfowe"
             },
             "leisure/marina": {
-                "name": "Przystań"
+                "name": "Przystań",
+                "terms": "przystań"
             },
             "leisure/park": {
                 "name": "Park",
                 "name": "Zatoka"
             },
             "natural/beach": {
-                "name": "Plaża"
+                "name": "Plaża",
+                "terms": "plaża"
             },
             "natural/cliff": {
-                "name": "Klif"
+                "name": "Klif",
+                "terms": "urwisko, klif"
             },
             "natural/coastline": {
-                "name": "Wybrzeże"
+                "name": "Wybrzeże",
+                "terms": "Linia brzegowa"
             },
             "natural/fell": {
                 "name": "Wzgórze"
             },
             "natural/glacier": {
-                "name": "Lodowiec"
+                "name": "Lodowiec",
+                "terms": "lodowiec"
             },
             "natural/grassland": {
                 "name": "Łąka"
                 "name": "Miejsce"
             },
             "place/city": {
-                "name": "Miasto"
+                "name": "Miasto",
+                "terms": "miasto"
             },
             "place/hamlet": {
-                "name": "Przysiółek"
+                "name": "Przysiółek",
+                "terms": "mała wioska, przysiołek"
             },
             "place/island": {
-                "name": "Wyspa"
+                "name": "Wyspa",
+                "terms": "Wyspa"
             },
             "place/isolated_dwelling": {
                 "name": "Pojedyncze zabudowania"
                 "name": "Okolica"
             },
             "place/town": {
-                "name": "Miasto"
+                "name": "Miasto",
+                "terms": "Miasteczko"
             },
             "place/village": {
-                "name": "Wioska"
+                "name": "Wioska",
+                "terms": "Wieś"
             },
             "point": {
                 "name": "Punkt"
                 "name": "Rogatka"
             },
             "railway/monorail": {
-                "name": "Kolej jednoszynowa"
+                "name": "Kolej jednoszynowa",
+                "terms": "Kolej jednoszynowa"
             },
             "railway/platform": {
                 "name": "Peron kolejowy"
                 "name": "Dworzec kolejowy"
             },
             "railway/subway": {
-                "name": "Metro"
+                "name": "Metro",
+                "terms": "Metro"
             },
             "railway/subway_entrance": {
-                "name": "Wejście do metra"
+                "name": "Wejście do metra",
+                "terms": "Wejście do metra"
             },
             "railway/tram": {
-                "name": "Tramwaj"
+                "name": "Tramwaj",
+                "terms": "Tory tramwajowe"
             },
             "relation": {
                 "name": "Relacja"
                 "name": "Trasa morska"
             },
             "shop": {
-                "name": "Sklep"
+                "name": "Sklep",
+                "terms": "Sklep"
             },
             "shop/alcohol": {
                 "name": "Sklep monopolowy"
             },
             "shop/bakery": {
-                "name": "Piekarnia"
+                "name": "Piekarnia",
+                "terms": "Piekarnia"
             },
             "shop/beauty": {
                 "name": "Salon piękności"
                 "name": "Domek gościnny"
             },
             "tourism/hostel": {
-                "name": "Schronisko"
+                "name": "Schronisko",
+                "terms": "Hostel"
             },
             "tourism/hotel": {
-                "name": "Hotel"
+                "name": "Hotel",
+                "terms": "Hotel"
             },
             "tourism/information": {
                 "name": "Informacja"
             },
             "tourism/motel": {
-                "name": "Motel"
+                "name": "Motel",
+                "terms": "Motel"
             },
             "tourism/museum": {
-                "name": "Muzeum"
+                "name": "Muzeum",
+                "terms": "Muzeum"
             },
             "tourism/picnic_site": {
                 "name": "Miejsce na piknik"
                 "name": "Punkt widokowy"
             },
             "tourism/zoo": {
-                "name": "Zoo"
+                "name": "Zoo",
+                "terms": "Zoo, ogród zoologiczny"
             },
             "type/boundary": {
                 "name": "Granica"
index c61eebbd17040e143184ecf278f0067594d8e11e..de0ca89d0546855789a420270eaf69bcccbdc7f9 100644 (file)
@@ -41,6 +41,7 @@
             }
         },
         "continue": {
+            "key": "A",
             "title": "Continuar",
             "description": "Continuar esta linha.",
             "not_eligible": "Nenhuma linha pode ser continuada aqui.",
@@ -78,6 +79,7 @@
                 "line": "Ajustar os cantos de uma linha para 90°.",
                 "area": "Ajustar os cantos de uma área para 90°."
             },
+            "key": "S",
             "annotation": {
                 "line": "Ajustou os cantos de uma linha para 90°.",
                 "area": "Ajustou os cantos de uma área para 90°."
@@ -87,6 +89,7 @@
         "straighten": {
             "title": "Endireitar",
             "description": "Endireitar esta linha.",
+            "key": "S",
             "annotation": "Endireitar uma linha.",
             "too_bendy": "Isto não pode ser alinhado porque possui muitas curvas."
         },
         "none": "Nenhum",
         "custom": "Customizado",
         "custom_prompt": "Entre com um template de tiles. Tokens válidos são {z}, {x}, {y} para esquema Z/X/Y e {u} para esquema de quadtile.",
-        "fix_misalignment": "Corrigir desalinhamento",
+        "fix_misalignment": "Corrigir alinhamento",
         "reset": "resetar"
     },
     "restore": {
                 "terms": "Lazer"
             },
             "leisure/common": {
-                "name": "Área Comunitária"
+                "name": "Área Comunitária",
+                "terms": "Comum, Habitual, Frequente"
             },
             "leisure/dog_park": {
                 "name": "Parque de Cães",
                 "terms": "Farol"
             },
             "man_made/observation": {
-                "name": "Torre de Observação"
+                "name": "Torre de Observação",
+                "terms": "Torre de observação"
             },
             "man_made/pier": {
                 "name": "Píer",
                 "terms": "Orla Marítima, Linha Costeira"
             },
             "natural/fell": {
-                "name": "Colina"
+                "name": "Colina",
+                "terms": "Caiu"
             },
             "natural/glacier": {
                 "name": "Geleira",
                 "terms": "Pico, Topo de Montanha, Serra, Montanha, Monte"
             },
             "natural/scree": {
-                "name": "Cascalho"
+                "name": "Cascalho",
+                "terms": "Seixos, Pedras"
             },
             "natural/scrub": {
                 "name": "Arbustos",
index b966ff96fed76baa3d769eae4b7d87205f113c86..e725892b44c69e6e8a2815f9b1b1ea2dd18a7708 100644 (file)
             "atm": {
                 "label": "MultiBanco"
             },
+            "backrest": {
+                "label": "Encosto"
+            },
             "barrier": {
                 "label": "Tipo"
             },
                 "label": "Nível",
                 "placeholder": "2, 4, 6..."
             },
+            "lit": {
+                "label": "Iluminação"
+            },
             "location": {
                 "label": "Localização"
             },
             "surface": {
                 "label": "Superfície"
             },
+            "toilets/disposal": {
+                "label": "Eliminação de resíduos"
+            },
             "tourism": {
                 "label": "Tipo"
             },
             "trail_visibility": {
                 "label": "Visibilidade do Trilho"
             },
+            "vending": {
+                "label": "Tipo de produto"
+            },
             "water": {
                 "label": "Tipo"
             },
                 "name": "Edifício residencial",
                 "terms": "Prédio residencial"
             },
+            "emergency/ambulance_station": {
+                "name": "Central de ambulâncias"
+            },
             "emergency/fire_hydrant": {
                 "name": "Boca de incêndio"
             },
             "leisure": {
                 "name": "Lazer"
             },
+            "leisure/common": {
+                "name": "Comum"
+            },
             "leisure/dog_park": {
                 "name": "Parque de cães",
                 "terms": "Parque para cães"
             "natural/coastline": {
                 "name": "Linha Costeira"
             },
+            "natural/fell": {
+                "name": "Encosta"
+            },
             "natural/glacier": {
                 "name": "Glaciar"
             },
             "natural/peak": {
                 "name": "Cume"
             },
+            "natural/scree": {
+                "name": "Encosta de cascalho"
+            },
             "natural/scrub": {
                 "name": "Matagal"
             },
             "shop/electronics": {
                 "name": "Loja de Eletrónica de Consumo"
             },
+            "shop/farm": {
+                "name": "Barraca de produtos do campo"
+            },
             "shop/fishmonger": {
                 "name": "Peixaria"
             },
index 4136a581e6a6999c15bdd0fdeac3fafb611dd497..4e92c423433c29d5ff1fb4d848ef38e5ea87a78d 100644 (file)
                 "name": "Chovprodukt",
                 "terms": "domáci miláčik,domaci milacik,domace zvierata,domáce zvierata,potrava"
             },
+            "shop/photo": {
+                "name": "Obchod s fototechnikou",
+                "terms": "Fotoateliér,fotoatelier,fotostudio,fotoštúdio,fotografia"
+            },
             "shop/shoes": {
                 "name": "Obchod s obuvov",
                 "terms": "obuv,topánky,topanky"
index 265d42102937bfa86652cbccc894a680d9b9a31c..65b433d454cadb20f6901350a1da98b5407579bf 100644 (file)
         "none": "Ниједна",
         "custom": "Прилагођена",
         "custom_prompt": "Унесите образац плочица. Важеће вредности су {z}, {x}, {y} за Z/X/Y шему и {u} за квадратну шему.",
-        "fix_misalignment": "Поправи поравнање",
         "reset": "ресетовање"
     },
     "restore": {
index 4fe10c171b7d82306a93e3b439ce06fa5b0ca158..c26b6f893477b0bb8967405e7f1dbe15fc80ef45 100644 (file)
         "title": "Bakgrund",
         "description": "Bakgrundsinställningar",
         "percent_brightness": "{opacity}% ljusstyrka",
-        "fix_misalignment": "Justera bildplacering",
         "reset": "ta bort"
     },
     "restore": {
index 4c3d7058df44253bf5b5fe8d7aa212f9397328b2..36ef5c0907b267cf332e54a677b9a0df64de5cf5 100644 (file)
@@ -16,6 +16,9 @@
                 "point": "ఒక బిందువును చేర్చారు."
             }
         },
+        "continue": {
+            "title": "కొనసాగించు"
+        },
         "delete": {
             "title": "తొలగించు",
             "annotation": {
@@ -87,6 +90,9 @@
         "points": {
             "title": "బిందువులు"
         },
+        "areas": {
+            "title": "ప్రదేశాలు"
+        },
         "lines": {
             "title": "గీతలు"
         }
         "fields": {
             "access": {
                 "types": {
-                    "access": "సాధారణం"
+                    "access": "సాధారణం",
+                    "bicycle": "సైకిళ్ళు",
+                    "horse": "గుర్రాలు"
+                },
+                "options": {
+                    "destination": {
+                        "title": "గమ్యం"
+                    }
                 }
             },
             "address": {
             "amenity": {
                 "label": "రకం"
             },
+            "artwork_type": {
+                "label": "రకం"
+            },
             "barrier": {
                 "label": "రకం"
             },
             "entrance": {
                 "label": "రకం"
             },
+            "fire_hydrant/type": {
+                "label": "రకం"
+            },
+            "generator/type": {
+                "label": "రకం"
+            },
             "highway": {
                 "label": "రకం"
             },
                 "label": "వేగ పరిమితి"
             },
             "name": {
-                "label": "పేరు"
+                "label": "పేరు",
+                "placeholder": "మామూలు పేరు (ఉంటే)"
             },
             "note": {
                 "label": "గమనిక"
             "amenity/pharmacy": {
                 "name": "మందుల షాపు"
             },
+            "amenity/place_of_worship/buddhist": {
+                "name": "బౌద్ధ ఆలయం"
+            },
             "amenity/place_of_worship/christian": {
                 "name": "చర్చి",
                 "terms": "చర్చి, చర్చ్"
             "shop/supermarket": {
                 "name": "సుపర్ మార్కెట్"
             },
+            "shop/toys": {
+                "name": "బొమ్మల కొట్టు"
+            },
             "shop/vacant": {
                 "name": "ఖాళీ దుకాణం"
             },
index 0dd7b44df5be0d05f3b723b771a600bbdffe4bc0..b7bbdf7e94523949c937f3a49c540e00ba979524 100644 (file)
         "title": "Arkaplan",
         "description": "Arkaplan Ayarları",
         "percent_brightness": "{opacity}% parlaklık",
-        "fix_misalignment": "Yanlış hizalamayı düzelt",
         "reset": "Sıfırla"
     },
     "restore": {
index 6617a322943cde8ba570107041a1f43d67d80fdb..d03670b219469adfb57a13f58b53518ff310be20 100644 (file)
         "facebook": "Поділитись на Facebook",
         "twitter": "Поділитись на Twitter",
         "google": "Поділитись на Google+",
-        "help_html": "Ваші зміни повинні з’явитись в «Стандартному» шарі через кілька хвилин. Зміни інших шарів, та об’єктів можуть відбуватись\nдовше (<a href='https://help.openstreetmap.org/questions/4705/why-havent-my-changes-appeared-on-the-map' target='_blank'>докладніше англійською</a>).\n"
+        "help_html": "Ваші зміни повинні з’явитись в «Стандартному» шарі за кілька хвилин. \nЗміни інших шарів та об’єктів можуть відбуватись довше (<a href='https://help.openstreetmap.org/questions/4705/why-havent-my-changes-appeared-on-the-map' target='_blank'>докладніше англійською</a>).\n"
     },
     "confirm": {
         "okay": "Готово"
                 "label": "Тип"
             },
             "ref": {
-                "label": "Ð\9fоÑ\81иланнÑ\8f"
+                "label": "Ð\9dомеÑ\80"
             },
             "relation": {
                 "label": "Тип"
             },
             "amenity/drinking_water": {
                 "name": "Питна вода",
-                "terms": "Drinking Water, gbnyf djlf"
+                "terms": "Drinking Water, gbnyf djlf, бювет"
             },
             "amenity/embassy": {
                 "name": "Амбасада",
index 63fce20c1562611a8302cb1a2245ac02bec65b33..7536258c3d4e823db8f8668c381f2d37552022f2 100644 (file)
         "none": "Không có",
         "custom": "Tùy biến",
         "custom_prompt": "Đưa vào định dạng URL của các mảnh bản đồ. Bạn có thể sử dụng các dấu hiệu {z}, {x}, {y} cho định dạng Z/X/Y hoặc {u} cho định dạng quadtile.",
-        "fix_misalignment": "Chỉnh lại hình nền bị chệch",
+        "fix_misalignment": "Điều chỉnh lại",
         "reset": "đặt lại"
     },
     "restore": {
                 "name": "Tiệm Vật nuôi",
                 "terms": "tiệm bán vật nuôi,tiệm bán đồ nuôi thú vật,cửa hàng vật nuôi,cửa hiệu thú vật,đồ ăn thú vật,chó,mèo,tiem ban vat nuoi,tiem ban do nuoi thu vat,cua hang vat nuoi,cua hieu thu vat,do an thu vat,cho,meo"
             },
+            "shop/photo": {
+                "name": "Tiệm Chụp Hình",
+                "terms": "tiệm chụp hình,tiệm lấy hình,tiệm lấy ảnh,tiệm nhiếp ảnh,cửa hàng chụp hình,cửa hàng lấy hình,cửa hàng lấy ảnh,cửa hàng nhiếp ảnh,tiem chup hinh,tiem lay hinh,tiem lay anh,tiem nhiep anh,cua hang chup hinh,cua hang lay hinh,cua hang lay anh,cua hang nhiep anh"
+            },
             "shop/shoes": {
                 "name": "Tiệm Giày",
                 "terms": "tiệm giày,cửa hàng giày,chỗ bán giày,cửa hiệu giày,dép,tiem giay,cua hang giay,cho ban giay,cua hieu giay,dep"
index 52aef4f05405014f068f9428f36d609640032d14..6c7e7521c822b5266b457ccbe0b0ea4ba9549bda 100644 (file)
         "title": "背景",
         "description": "背景设置",
         "custom": "自定义",
-        "fix_misalignment": "修正不对准",
         "reset": "重置"
     },
     "restore": {
index 750ca001e58f2f4aa9a0b35a2b0f8d2083be87b1..6df3ed2216a76f10bd6b5356a6cf212b1773c99d 100644 (file)
         "title": "背景",
         "description": "背景圖像設定",
         "percent_brightness": "{opacity}%的光度",
-        "fix_misalignment": "校準底圖",
         "reset": "重設"
     },
     "restore": {
index 8ffd86cab93a02fabeeeeb831c376a7ea3460896..f6e5d72180fe4558346600a40295f7cd47749407 100644 (file)
         "title": "背景",
         "description": "设置背景",
         "percent_brightness": "{opacity}% 亮度",
-        "fix_misalignment": "修复错位",
         "reset": "重置"
     },
     "restore": {