diff --git a/js/id/actions/connect.js b/js/id/actions/connect.js
index 73c1af09a..3c69b8a0f 100644
--- a/js/id/actions/connect.js
+++ b/js/id/actions/connect.js
@@ -19,11 +19,11 @@ iD.actions.Connect = function(nodeIds) {
for (var i = 0; i < nodeIds.length - 1; i++) {
var node = graph.entity(nodeIds[i]), index;
- graph.parentWays(node).forEach(function (parent) {
+ graph.parentWays(node).forEach(function(parent) {
graph = graph.replace(parent.replaceNode(node.id, survivor.id));
});
- graph.parentRelations(node).forEach(function (parent) {
+ graph.parentRelations(node).forEach(function(parent) {
graph = graph.replace(parent.replaceMember(node, survivor));
});
diff --git a/js/id/actions/delete_multiple.js b/js/id/actions/delete_multiple.js
index a33dba4de..cd7c022a1 100644
--- a/js/id/actions/delete_multiple.js
+++ b/js/id/actions/delete_multiple.js
@@ -6,7 +6,7 @@ iD.actions.DeleteMultiple = function(ids) {
relation: iD.actions.DeleteRelation
};
- ids.forEach(function (id) {
+ ids.forEach(function(id) {
var entity = graph.entity(id);
if (entity) { // It may have been deleted aready.
graph = actions[entity.type](id)(graph);
diff --git a/js/id/actions/delete_way.js b/js/id/actions/delete_way.js
index 211447228..95888470e 100644
--- a/js/id/actions/delete_way.js
+++ b/js/id/actions/delete_way.js
@@ -8,7 +8,7 @@ iD.actions.DeleteWay = function(wayId) {
graph = graph.replace(parent.removeMember(wayId));
});
- way.nodes.forEach(function (nodeId) {
+ way.nodes.forEach(function(nodeId) {
var node = graph.entity(nodeId);
// Circular ways include nodes more than once, so they
diff --git a/js/id/actions/join.js b/js/id/actions/join.js
index feccfebaf..d3b353dc5 100644
--- a/js/id/actions/join.js
+++ b/js/id/actions/join.js
@@ -47,7 +47,7 @@ iD.actions.Join = function(ids) {
nodes = a.nodes.concat(b.nodes.slice().slice(1));
}
- graph.parentRelations(b).forEach(function (parent) {
+ graph.parentRelations(b).forEach(function(parent) {
graph = graph.replace(parent.replaceMember(b, a));
});
diff --git a/js/id/actions/merge.js b/js/id/actions/merge.js
index 5b515bcc5..4c4fb2abc 100644
--- a/js/id/actions/merge.js
+++ b/js/id/actions/merge.js
@@ -9,10 +9,10 @@ iD.actions.Merge = function(ids) {
area = geometries.area[0],
points = geometries.point;
- points.forEach(function (point) {
+ points.forEach(function(point) {
area = area.mergeTags(point.tags);
- graph.parentRelations(point).forEach(function (parent) {
+ graph.parentRelations(point).forEach(function(parent) {
graph = graph.replace(parent.replaceMember(point, area));
});
diff --git a/js/id/actions/move_way.js b/js/id/actions/move_way.js
index 8301539c4..376e31d6e 100644
--- a/js/id/actions/move_way.js
+++ b/js/id/actions/move_way.js
@@ -1,9 +1,9 @@
iD.actions.MoveWay = function(wayId, delta, projection) {
return function(graph) {
- return graph.update(function (graph) {
+ return graph.update(function(graph) {
var way = graph.entity(wayId);
- _.uniq(way.nodes).forEach(function (id) {
+ _.uniq(way.nodes).forEach(function(id) {
var node = graph.entity(id),
start = projection(node.loc),
end = projection.invert([start[0] + delta[0], start[1] + delta[1]]);
diff --git a/js/id/actions/reverse.js b/js/id/actions/reverse.js
index 5c8315467..f9696ceb1 100644
--- a/js/id/actions/reverse.js
+++ b/js/id/actions/reverse.js
@@ -62,8 +62,8 @@ iD.actions.Reverse = function(wayId) {
tags[reverseKey(key)] = reverseValue(key, way.tags[key]);
}
- graph.parentRelations(way).forEach(function (relation) {
- relation.members.forEach(function (member, index) {
+ graph.parentRelations(way).forEach(function(relation) {
+ relation.members.forEach(function(member, index) {
if (member.id === way.id && (role = {forward: 'backward', backward: 'forward'}[member.role])) {
relation = relation.updateMember({role: role}, index);
graph = graph.replace(relation);
diff --git a/js/id/actions/split.js b/js/id/actions/split.js
index 92f9296f7..cf5d56f84 100644
--- a/js/id/actions/split.js
+++ b/js/id/actions/split.js
@@ -14,7 +14,7 @@ iD.actions.Split = function(nodeId, newWayId) {
var node = graph.entity(nodeId),
parents = graph.parentWays(node);
- return parents.filter(function (parent) {
+ return parents.filter(function(parent) {
return parent.isClosed() ||
(parent.first() !== nodeId &&
parent.last() !== nodeId);
diff --git a/js/id/behavior/drag_node.js b/js/id/behavior/drag_node.js
index 0cf732b4d..eff4c1174 100644
--- a/js/id/behavior/drag_node.js
+++ b/js/id/behavior/drag_node.js
@@ -61,7 +61,7 @@ iD.behavior.DragNode = function(context) {
context.surface()
.classed('behavior-drag-node', true)
.selectAll('.node, .way')
- .filter(function (d) { return activeIDs.indexOf(d.id) >= 0; })
+ .filter(function(d) { return activeIDs.indexOf(d.id) >= 0; })
.classed('active', true);
}
diff --git a/js/id/behavior/draw_way.js b/js/id/behavior/draw_way.js
index 0a05c7e9d..a9a34e37c 100644
--- a/js/id/behavior/draw_way.js
+++ b/js/id/behavior/draw_way.js
@@ -30,7 +30,7 @@ iD.behavior.DrawWay = function(context, wayId, index, mode, baseGraph) {
if (datum.id === end.id || datum.id === segment.id) {
context.surface().selectAll('.way, .node')
- .filter(function (d) {
+ .filter(function(d) {
return d.id === end.id || d.id === segment.id;
})
.classed('active', true);
diff --git a/js/id/behavior/hover.js b/js/id/behavior/hover.js
index b724f13b1..0f5786676 100644
--- a/js/id/behavior/hover.js
+++ b/js/id/behavior/hover.js
@@ -15,14 +15,14 @@ iD.behavior.Hover = function() {
var datum = d3.event.target.__data__;
if (datum) {
selection.selectAll('*')
- .filter(function (d) { return d === datum; })
+ .filter(function(d) { return d === datum; })
.classed('hover', true);
}
}
selection.on('mouseover.hover', mouseover);
- selection.on('mouseout.hover', function () {
+ selection.on('mouseout.hover', function() {
selection.selectAll('.hover')
.classed('hover', false);
});
diff --git a/js/id/connection.js b/js/id/connection.js
index df9c318ca..ea90c5591 100644
--- a/js/id/connection.js
+++ b/js/id/connection.js
@@ -200,19 +200,19 @@ iD.Connection = function(context) {
comment: comment,
created_by: 'iD ' + iD.version
}))
- }, function (err, changeset_id) {
+ }, function(err, changeset_id) {
if (err) return callback(err);
oauth.xhr({
method: 'POST',
path: '/api/0.6/changeset/' + changeset_id + '/upload',
options: { header: { 'Content-Type': 'text/xml' } },
content: JXON.stringify(connection.osmChangeJXON(user.id, changeset_id, changes))
- }, function (err) {
+ }, function(err) {
if (err) return callback(err);
oauth.xhr({
method: 'PUT',
path: '/api/0.6/changeset/' + changeset_id + '/close'
- }, function (err) {
+ }, function(err) {
callback(err, changeset_id);
});
});
diff --git a/js/id/core/difference.js b/js/id/core/difference.js
index e2159271a..e8faef149 100644
--- a/js/id/core/difference.js
+++ b/js/id/core/difference.js
@@ -6,7 +6,7 @@
of entities that will require a redraw, taking into account
child and parent relationships.
*/
-iD.Difference = function (base, head) {
+iD.Difference = function(base, head) {
var changes = {}, length = 0;
_.each(head.entities, function(h, id) {
@@ -27,7 +27,7 @@ iD.Difference = function (base, head) {
var difference = {};
- difference.length = function () {
+ difference.length = function() {
return length;
};
@@ -89,7 +89,9 @@ iD.Difference = function (base, head) {
b = change.base,
entity = h || b;
- if (extent && !entity.intersects(extent, h ? head : base))
+ if (extent &&
+ (!h || !h.intersects(extent, head)) &&
+ (!b || !b.intersects(extent, base)))
continue;
result[id] = h;
@@ -105,7 +107,7 @@ iD.Difference = function (base, head) {
}
diff = _.difference(nb, nh);
- for (var i = 0; i < diff.length; i++) {
+ for (i = 0; i < diff.length; i++) {
result[diff[i]] = head.entity(diff[i]);
}
}
diff --git a/js/id/core/graph.js b/js/id/core/graph.js
index eae11cc15..96dca44e7 100644
--- a/js/id/core/graph.js
+++ b/js/id/core/graph.js
@@ -192,14 +192,14 @@ iD.Graph.prototype = {
if (this.entities[entity.id] === entity)
return this;
- return this.update(function () {
+ return this.update(function() {
this._updateCalculated(this.entities[entity.id], entity);
this.entities[entity.id] = entity;
});
},
remove: function(entity) {
- return this.update(function () {
+ return this.update(function() {
this._updateCalculated(entity, undefined);
this.entities[entity.id] = undefined;
});
diff --git a/js/id/core/relation.js b/js/id/core/relation.js
index 950f56230..778568917 100644
--- a/js/id/core/relation.js
+++ b/js/id/core/relation.js
@@ -14,7 +14,7 @@ _.extend(iD.Relation.prototype, {
extent: function(resolver) {
return resolver.transient(this, 'extent', function() {
- return this.members.reduce(function (extent, member) {
+ return this.members.reduce(function(extent, member) {
member = resolver.entity(member.id);
if (member) {
return extent.extend(member.extent(resolver));
@@ -156,8 +156,8 @@ _.extend(iD.Relation.prototype, {
//
multipolygon: function(resolver) {
var members = this.members
- .filter(function (m) { return m.type === 'way' && resolver.entity(m.id); })
- .map(function (m) { return { role: m.role || 'outer', id: m.id, nodes: resolver.childNodes(resolver.entity(m.id)) }; });
+ .filter(function(m) { return m.type === 'way' && resolver.entity(m.id); })
+ .map(function(m) { return { role: m.role || 'outer', id: m.id, nodes: resolver.childNodes(resolver.entity(m.id)) }; });
function join(ways) {
var joined = [], current, first, last, i, how, what;
@@ -202,7 +202,7 @@ _.extend(iD.Relation.prototype, {
}
}
- return joined.map(function (nodes) { return _.pluck(nodes, 'loc'); });
+ return joined.map(function(nodes) { return _.pluck(nodes, 'loc'); });
}
function findOuter(inner) {
@@ -221,9 +221,9 @@ _.extend(iD.Relation.prototype, {
}
}
- var outers = join(members.filter(function (m) { return m.role === 'outer'; })),
- inners = join(members.filter(function (m) { return m.role === 'inner'; })),
- result = outers.map(function (o) { return [o]; });
+ var outers = join(members.filter(function(m) { return m.role === 'outer'; })),
+ inners = join(members.filter(function(m) { return m.role === 'inner'; })),
+ result = outers.map(function(o) { return [o]; });
for (var i = 0; i < inners.length; i++) {
var o = findOuter(inners[i]);
diff --git a/js/id/core/way.js b/js/id/core/way.js
index 5229040ab..e9fb7b71d 100644
--- a/js/id/core/way.js
+++ b/js/id/core/way.js
@@ -14,7 +14,7 @@ _.extend(iD.Way.prototype, {
extent: function(resolver) {
return resolver.transient(this, 'extent', function() {
- return this.nodes.reduce(function (extent, id) {
+ return this.nodes.reduce(function(extent, id) {
return extent.extend(resolver.entity(id).extent(resolver));
}, iD.geo.Extent());
});
diff --git a/js/id/geo.js b/js/id/geo.js
index 61bd9273e..682980758 100644
--- a/js/id/geo.js
+++ b/js/id/geo.js
@@ -64,13 +64,13 @@ iD.geo.pointInPolygon = function(point, polygon) {
};
iD.geo.polygonContainsPolygon = function(outer, inner) {
- return _.every(inner, function (point) {
+ return _.every(inner, function(point) {
return iD.geo.pointInPolygon(point, outer);
});
};
iD.geo.polygonIntersectsPolygon = function(outer, inner) {
- return _.some(inner, function (point) {
+ return _.some(inner, function(point) {
return iD.geo.pointInPolygon(point, outer);
});
};
diff --git a/js/id/geo/extent.js b/js/id/geo/extent.js
index 4422b5e39..243ebad4f 100644
--- a/js/id/geo/extent.js
+++ b/js/id/geo/extent.js
@@ -14,7 +14,7 @@ iD.geo.Extent = function geoExtent(min, max) {
iD.geo.Extent.prototype = [[], []];
_.extend(iD.geo.Extent.prototype, {
- extend: function (obj) {
+ extend: function(obj) {
if (!(obj instanceof iD.geo.Extent)) obj = new iD.geo.Extent(obj);
return iD.geo.Extent([Math.min(obj[0][0], this[0][0]),
Math.min(obj[0][1], this[0][1])],
@@ -22,12 +22,12 @@ _.extend(iD.geo.Extent.prototype, {
Math.max(obj[1][1], this[1][1])]);
},
- center: function () {
+ center: function() {
return [(this[0][0] + this[1][0]) / 2,
(this[0][1] + this[1][1]) / 2];
},
- intersects: function (obj) {
+ intersects: function(obj) {
if (!(obj instanceof iD.geo.Extent)) obj = new iD.geo.Extent(obj);
return obj[0][0] <= this[1][0] &&
obj[0][1] <= this[1][1] &&
diff --git a/js/id/renderer/map.js b/js/id/renderer/map.js
index af828b49d..1bea28a17 100644
--- a/js/id/renderer/map.js
+++ b/js/id/renderer/map.js
@@ -319,14 +319,14 @@ iD.Map = function(context) {
}
};
- map.flush = function () {
+ map.flush = function() {
context.connection().flush();
context.history().reset();
return map;
};
var usedTails = {};
- map.tail = function (_) {
+ map.tail = function(_) {
if (!_ || usedTails[_] === undefined) {
tail.text(_);
usedTails[_] = true;
diff --git a/js/id/svg.js b/js/id/svg.js
index dda91ec99..36d1d060d 100644
--- a/js/id/svg.js
+++ b/js/id/svg.js
@@ -32,10 +32,10 @@ iD.svg = {
};
},
- MultipolygonMemberTags: function (graph) {
- return function (entity) {
+ MultipolygonMemberTags: function(graph) {
+ return function(entity) {
var tags = entity.tags;
- graph.parentRelations(entity).forEach(function (relation) {
+ graph.parentRelations(entity).forEach(function(relation) {
if (relation.isMultipolygon()) {
tags = _.extend({}, relation.tags, tags);
}
diff --git a/js/id/svg/areas.js b/js/id/svg/areas.js
index cd9525d4d..46df5544c 100644
--- a/js/id/svg/areas.js
+++ b/js/id/svg/areas.js
@@ -28,11 +28,11 @@ iD.svg.Areas = function(projection) {
paths.enter()
.append('path')
- .attr('class', function (d) { return d.type + ' area ' + klass; });
+ .attr('class', function(d) { return d.type + ' area ' + klass; });
paths
.order()
- .attr('d', function (entity) { return path(entity.asGeoJSON(graph)); })
+ .attr('d', function(entity) { return path(entity.asGeoJSON(graph)); })
.call(tagClasses)
.call(iD.svg.MemberClasses(graph));
@@ -44,7 +44,7 @@ iD.svg.Areas = function(projection) {
areas = _.pluck(areas, 'entity');
- var strokes = areas.filter(function (area) {
+ var strokes = areas.filter(function(area) {
return area.type === 'way';
});
diff --git a/js/id/svg/lines.js b/js/id/svg/lines.js
index 2fd7b9152..59fec46e1 100644
--- a/js/id/svg/lines.js
+++ b/js/id/svg/lines.js
@@ -95,7 +95,7 @@ iD.svg.Lines = function(projection) {
// Determine the lengths of oneway paths
var lengths = {},
- oneways = strokes.filter(function (d) { return d.isOneWay(); }).each(function(d) {
+ oneways = strokes.filter(function(d) { return d.isOneWay(); }).each(function(d) {
lengths[d.id] = Math.floor(this.getTotalLength() / alength);
}).data();
diff --git a/js/id/svg/member_classes.js b/js/id/svg/member_classes.js
index d5745a466..713cc898e 100644
--- a/js/id/svg/member_classes.js
+++ b/js/id/svg/member_classes.js
@@ -17,7 +17,7 @@ iD.svg.MemberClasses = function(graph) {
classes += ' member';
}
- relations.forEach(function (relation) {
+ relations.forEach(function(relation) {
classes += ' member-type-' + relation.tags.type;
classes += ' member-role-' + relation.memberById(d.id).role;
});
diff --git a/js/id/svg/midpoints.js b/js/id/svg/midpoints.js
index 174012cf3..fc1a5bbc3 100644
--- a/js/id/svg/midpoints.js
+++ b/js/id/svg/midpoints.js
@@ -35,7 +35,7 @@ iD.svg.Midpoints = function(projection) {
var groups = surface.select('.layer-hit').selectAll('g.midpoint')
.filter(filter)
- .data(_.values(midpoints), function (d) { return d.id; });
+ .data(_.values(midpoints), function(d) { return d.id; });
var group = groups.enter()
.insert('g', ':first-child')
diff --git a/js/id/ui/geocoder.js b/js/id/ui/geocoder.js
index 0643c41d1..7b79c2158 100644
--- a/js/id/ui/geocoder.js
+++ b/js/id/ui/geocoder.js
@@ -23,7 +23,7 @@ iD.ui.geocoder = function(context) {
.text(t('geocoder.no_results', {name: searchVal}));
} else if (resp.length > 1) {
var spans = resultsList.selectAll('span')
- .data(resp, function (d) { return d.place_id; });
+ .data(resp, function(d) { return d.place_id; });
spans.enter()
.append('span')
diff --git a/js/id/ui/modes.js b/js/id/ui/modes.js
index a08b2b13b..b382ab295 100644
--- a/js/id/ui/modes.js
+++ b/js/id/ui/modes.js
@@ -64,5 +64,5 @@ iD.ui.Modes = function(context) {
d3.select(document)
.call(keybinding);
- }
+ };
};
diff --git a/js/id/ui/radial_menu.js b/js/id/ui/radial_menu.js
index fe0d7ee86..106a48196 100644
--- a/js/id/ui/radial_menu.js
+++ b/js/id/ui/radial_menu.js
@@ -42,10 +42,10 @@ iD.ui.RadialMenu = function(operations) {
});
button.append('circle')
- .attr('class', function (d) { return 'radial-menu-item radial-menu-item-' + d.id; })
+ .attr('class', function(d) { return 'radial-menu-item radial-menu-item-' + d.id; })
.attr('r', 15)
- .attr('title', function (d) { return d.title; })
- .classed('disabled', function (d) { return !d.enabled(); })
+ .attr('title', function(d) { return d.title; })
+ .classed('disabled', function(d) { return !d.enabled(); })
.on('click', click)
.on('mouseover', mouseover)
.on('mouseout', mouseout);
@@ -58,7 +58,7 @@ iD.ui.RadialMenu = function(operations) {
.attr('y', -10);
image.append('xhtml:span')
- .attr('class', function (d) { return 'icon icon-operation icon-operation-' + d.id; });
+ .attr('class', function(d) { return 'icon icon-operation icon-operation-' + d.id; });
var tooltip = menu.append('foreignObject')
.style('display', 'none')
diff --git a/js/id/ui/save.js b/js/id/ui/save.js
index e19097ec9..b8f9d619a 100644
--- a/js/id/ui/save.js
+++ b/js/id/ui/save.js
@@ -10,7 +10,7 @@ iD.ui.Save = function(context) {
if (!history.hasChanges()) return;
- connection.authenticate(function (err) {
+ connection.authenticate(function(err) {
var modal = iD.ui.modal(context.container());
var changes = history.changes();
changes.connection = connection;
@@ -18,7 +18,7 @@ iD.ui.Save = function(context) {
.classed('commit-modal', true)
.datum(changes)
.call(iD.ui.commit(context)
- .on('cancel', function () {
+ .on('cancel', function() {
modal.remove();
})
.on('fix', clickFix)
@@ -73,7 +73,7 @@ iD.ui.Save = function(context) {
modal.remove();
}
- return function (selection) {
+ return function(selection) {
var button = selection.append('button')
.attr('class', 'save col12 disabled')
.attr('tabindex', -1)
diff --git a/js/id/ui/undo_redo.js b/js/id/ui/undo_redo.js
index f38066af4..9eef75364 100644
--- a/js/id/ui/undo_redo.js
+++ b/js/id/ui/undo_redo.js
@@ -43,5 +43,5 @@ iD.ui.UndoRedo = function(context) {
.attr('data-original-title', iD.ui.tooltipHtml(redo || t('nothing_to_redo'), iD.ui.cmd('⌘⇧Z')))
.call(refreshTooltip);
});
- }
+ };
};
diff --git a/locale/da.js b/locale/da.js
new file mode 100644
index 000000000..217f597f6
--- /dev/null
+++ b/locale/da.js
@@ -0,0 +1,201 @@
+locale.da = {
+ modes: {
+ add_area: {
+ title: "Område",
+ description: "Tilføj parker, bygninger, søer, eller andre områder til kortet.",
+ tail: "Klik på kortet for at indtegne et område fx en park, sø eller bygning.",
+ key: "A"
+ },
+ add_line: {
+ title: "Linje",
+ description: "Linjer kan være veje, gader eller stier selv kanaler kan være linjer.",
+ tail: "Klik på koret for at indtegne en vej, sti eller rute.",
+ key: "L"
+ },
+ add_point: {
+ title: "Punkt",
+ description: "Restauranter, mindesmærker og postkasser er punkter.",
+ tail: "Klik på kortet for at tilføje et punkt.",
+ key: "P"
+ },
+ browse: {
+ title: "Browse",
+ description: "Træk rundt og zoom på kortet.",
+ key: "B"
+ },
+ draw_area: {
+ tail: "Klik her for at tilføje punkter til dit område. Click the first point to finish the area."
+ },
+ draw_line: {
+ tail: "Click to add more points to the line. Click on other lines to connect to them, and double-click to end the line."
+ }
+ },
+
+ operations: {
+ add: {
+ annotation: {
+ point: "Added a point.",
+ vertex: "Added a node to a way."
+ }
+ },
+ start: {
+ annotation: {
+ line: "Started a line.",
+ area: "Started an area."
+ }
+ },
+ 'continue': {
+ annotation: {
+ line: "Continued a line.",
+ area: "Continued an area."
+ }
+ },
+ cancel_draw: {
+ annotation: "Cancelled drawing."
+ },
+ change_tags: {
+ annotation: "Changed tags."
+ },
+ circularize: {
+ title: "Circularize",
+ description: "Make this round.",
+ key: "O",
+ annotation: {
+ line: "Made a line circular.",
+ area: "Made an area circular."
+ }
+ },
+ orthogonalize: {
+ title: "Orthogonalize",
+ description: "Square these corners.",
+ key: "Q",
+ annotation: {
+ line: "Squared the corners of a line.",
+ area: "Squared the corners of an area."
+ }
+ },
+ 'delete': {
+ title: "Delete",
+ description: "Remove this from the map.",
+ key: "⌫",
+ annotation: {
+ point: "Deleted a point.",
+ vertex: "Deleted a node from a way.",
+ line: "Deleted a line.",
+ area: "Deleted an area.",
+ relation: "Deleted a relation.",
+ multiple: "Deleted {n} objects."
+ }
+ },
+ connect: {
+ annotation: {
+ point: "Connected a way to a point.",
+ vertex: "Connected a way to another.",
+ line: "Connected a way to a line.",
+ area: "Connected a way to an area."
+ }
+ },
+ disconnect: {
+ title: "Disconnect",
+ description: "Disconnect these ways from each other.",
+ key: "D",
+ annotation: "Disconnected ways."
+ },
+ merge: {
+ title: "Merge",
+ description: "Merge these lines.",
+ key: "C",
+ annotation: "Merged {n} lines."
+ },
+ move: {
+ title: "Move",
+ description: "Move this to a different location.",
+ key: "M",
+ annotation: {
+ point: "Moved a point.",
+ vertex: "Moved a node in a way.",
+ line: "Moved a line.",
+ area: "Moved an area."
+ }
+ },
+ reverse: {
+ title: "Reverse",
+ description: "Make this line go in the opposite direction.",
+ key: "V",
+ annotation: "Reversed a line."
+ },
+ split: {
+ title: "Split",
+ description: "Split this into two ways at this point.",
+ key: "X",
+ annotation: "Split a way."
+ }
+ },
+
+ validations: {
+ untagged_point: "Untagged point which is not part of a line or area",
+ untagged_line: "Untagged line",
+ untagged_area: "Untagged area",
+ tag_suggests_area: "The tag {tag} suggests line should be area, but it is not an area",
+ deprecated_tags: "Deprecated tags: {tags}"
+ },
+
+ save: "Save",
+ unsaved_changes: "You have unsaved changes",
+ save_help: "Save changes to OpenStreetMap, making them visible to other users",
+ no_changes: "You don't have any changes to save.",
+ save_error: "An error occurred while trying to save",
+ uploading_changes: "Uploading changes to OpenStreetMap.",
+ just_edited: "You Just Edited OpenStreetMap!",
+ okay: "Okay",
+
+ "zoom-in": "Zoom ind",
+ "zoom-out": "Zoom ud",
+
+ nothing_to_undo: "Nothing to undo.",
+ nothing_to_redo: "Nothing to redo.",
+
+ browser_notice: "This editor is supported in Firefox, Chrome, Safari, Opera, and Internet Explorer 9 and above. Please upgrade your browser or use Potlatch 2 to edit the map.",
+
+ inspector: {
+ no_documentation_combination: "This is no documentation available for this tag combination",
+ no_documentation_key: "This is no documentation available for this key",
+ new_tag: "Nyt Tag"
+ },
+
+ view_on_osm: "Vis på OSM",
+
+ zoom_in_edit: "zoom ind for at rette kortet",
+
+ edit_tags: "Ret tags",
+
+ geocoder: {
+ title: "Find et sted",
+ placeholder: "find et sted",
+ no_results: "Kunne ikke finde '{name}'"
+ },
+
+ description: "Description",
+
+ logout: "log ud",
+
+ report_a_bug: "report a bug",
+
+ layerswitcher: {
+ title: "Background",
+ description: "Background Settings",
+ percent_brightness: "{opacity}% brightness",
+ fix_misalignment: "Fix misalignment",
+ reset: "nulstill"
+ },
+
+ contributors: {
+ list: "Vis bidrag fra {users}",
+ truncated_list: "Vis bidrag fra {users} og {count} andre"
+ },
+
+ source_switch: {
+ live: "live",
+ dev: "dev"
+ }
+};
diff --git a/test/index_packaged.html b/test/index_packaged.html
index 874639094..c7d8ad7de 100644
--- a/test/index_packaged.html
+++ b/test/index_packaged.html
@@ -23,6 +23,7 @@
+
diff --git a/test/spec/actions/delete_way.js b/test/spec/actions/delete_way.js
index d550803fa..130f5f759 100644
--- a/test/spec/actions/delete_way.js
+++ b/test/spec/actions/delete_way.js
@@ -1,12 +1,12 @@
-describe("iD.actions.DeleteWay", function () {
- it("removes the way from the graph", function () {
+describe("iD.actions.DeleteWay", function() {
+ it("removes the way from the graph", function() {
var way = iD.Way(),
action = iD.actions.DeleteWay(way.id),
graph = iD.Graph([way]).update(action);
expect(graph.entity(way.id)).to.be.undefined;
});
- it("removes a way from parent relations", function () {
+ it("removes a way from parent relations", function() {
var way = iD.Way(),
relation = iD.Relation({members: [{ id: way.id }]}),
action = iD.actions.DeleteWay(way.id),
@@ -14,7 +14,7 @@ describe("iD.actions.DeleteWay", function () {
expect(_.pluck(graph.entity(relation.id).members, 'id')).not.to.contain(way.id);
});
- it("deletes member nodes not referenced by another parent", function () {
+ it("deletes member nodes not referenced by another parent", function() {
var node = iD.Node(),
way = iD.Way({nodes: [node.id]}),
action = iD.actions.DeleteWay(way.id),
@@ -22,7 +22,7 @@ describe("iD.actions.DeleteWay", function () {
expect(graph.entity(node.id)).to.be.undefined;
});
- it("does not delete member nodes referenced by another parent", function () {
+ it("does not delete member nodes referenced by another parent", function() {
var node = iD.Node(),
way1 = iD.Way({nodes: [node.id]}),
way2 = iD.Way({nodes: [node.id]}),
@@ -31,7 +31,7 @@ describe("iD.actions.DeleteWay", function () {
expect(graph.entity(node.id)).not.to.be.undefined;
});
- it("deletes multiple member nodes", function () {
+ it("deletes multiple member nodes", function() {
var a = iD.Node(),
b = iD.Node(),
way = iD.Way({nodes: [a.id, b.id]}),
@@ -41,7 +41,7 @@ describe("iD.actions.DeleteWay", function () {
expect(graph.entity(b.id)).to.be.undefined;
});
- it("deletes a circular way's start/end node", function () {
+ it("deletes a circular way's start/end node", function() {
var a = iD.Node(),
b = iD.Node(),
c = iD.Node(),
@@ -53,7 +53,7 @@ describe("iD.actions.DeleteWay", function () {
expect(graph.entity(c.id)).to.be.undefined;
});
- it("does not delete member nodes with interesting tags", function () {
+ it("does not delete member nodes with interesting tags", function() {
var node = iD.Node({tags: {highway: 'traffic_signals'}}),
way = iD.Way({nodes: [node.id]}),
action = iD.actions.DeleteWay(way.id),
diff --git a/test/spec/actions/move_way.js b/test/spec/actions/move_way.js
index 38f191a3c..24bc81593 100644
--- a/test/spec/actions/move_way.js
+++ b/test/spec/actions/move_way.js
@@ -1,5 +1,5 @@
-describe("iD.actions.MoveWay", function () {
- it("moves all nodes in a way by the given amount", function () {
+describe("iD.actions.MoveWay", function() {
+ it("moves all nodes in a way by the given amount", function() {
var node1 = iD.Node({loc: [0, 0]}),
node2 = iD.Node({loc: [5, 10]}),
way = iD.Way({nodes: [node1.id, node2.id]}),
@@ -14,7 +14,7 @@ describe("iD.actions.MoveWay", function () {
expect(loc2[1]).to.be.closeTo( 7.866, 0.001);
});
- it("moves repeated nodes only once", function () {
+ it("moves repeated nodes only once", function() {
var node = iD.Node({loc: [0, 0]}),
way = iD.Way({nodes: [node.id, node.id]}),
delta = [2, 3],