mirror of
https://github.com/FoggedLens/iD.git
synced 2026-06-03 21:48:03 +02:00
Merge branch 'master' of github.com:systemed/iD
This commit is contained in:
@@ -52,8 +52,8 @@ all: \
|
||||
js/id/ui/*.js \
|
||||
js/id/validate.js \
|
||||
js/id/end.js \
|
||||
locale/locale.js \
|
||||
locale/en.js
|
||||
js/lib/locale.js \
|
||||
locale/*.js
|
||||
|
||||
iD.js: Makefile
|
||||
@rm -f $@
|
||||
|
||||
+1
-1
@@ -61,7 +61,7 @@
|
||||
<script src='js/id/ui/commit.js'></script>
|
||||
<script src='js/id/ui/success.js'></script>
|
||||
<script src='js/id/ui/loading.js'></script>
|
||||
<script src='js/id/ui/userpanel.js'></script>
|
||||
<script src='js/id/ui/account.js'></script>
|
||||
<script src='js/id/ui/layerswitcher.js'></script>
|
||||
<script src='js/id/ui/contributors.js'></script>
|
||||
<script src='js/id/ui/geocoder.js'></script>
|
||||
|
||||
+41
-51
@@ -19,10 +19,11 @@ body {
|
||||
}
|
||||
|
||||
.limiter {
|
||||
position: relative;
|
||||
max-width: 1200px;
|
||||
}
|
||||
|
||||
div, textarea, input, span, ul, li, ol, a, button {
|
||||
div, textarea, input, form, span, ul, li, ol, a, button {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
@@ -120,7 +121,7 @@ input[type=text]:focus {
|
||||
}
|
||||
|
||||
input[type=text] {
|
||||
padding:4px 10px;
|
||||
padding:5px 10px;
|
||||
height:30px;
|
||||
resize: none;
|
||||
}
|
||||
@@ -181,11 +182,11 @@ ul li { list-style: none;}
|
||||
ul.toggle-list li a {
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
padding: 10px;
|
||||
border-top: 1px solid white;
|
||||
padding: 5px 10px;
|
||||
display:block;
|
||||
border-top: 1px solid rgba(0, 0, 0, .5);
|
||||
text-wrap:no-wrap;
|
||||
border-top: 1px solid #ccc;
|
||||
white-space:nowrap;
|
||||
text-overflow:ellipsis;
|
||||
overflow:hidden;
|
||||
}
|
||||
ul.toggle-list li a:hover { background-color: #ececec;}
|
||||
@@ -223,7 +224,7 @@ ul.link-list li:last-child {
|
||||
|
||||
.fillD {
|
||||
background:rgba(0,0,0,.8);
|
||||
color: #a9a9a9;
|
||||
color: #6C6C6C;
|
||||
}
|
||||
|
||||
|
||||
@@ -266,10 +267,6 @@ button:hover {
|
||||
background-color: #ececec;
|
||||
}
|
||||
|
||||
button.col3:hover {
|
||||
background: #bde5aa;
|
||||
}
|
||||
|
||||
button.active {
|
||||
cursor:url(../img/cursor-pointing.png) 6 1, auto;
|
||||
}
|
||||
@@ -280,7 +277,7 @@ button.disabled {
|
||||
}
|
||||
|
||||
button.active:not([disabled]):not(.disabled) {
|
||||
background: #6bc641;
|
||||
background: #7092ff;
|
||||
}
|
||||
|
||||
button.minor {
|
||||
@@ -325,7 +322,7 @@ button.centered {
|
||||
border-radius:0 4px 4px 0;
|
||||
}
|
||||
|
||||
button.Browse .label { display: none;}
|
||||
button.browse .label { display: none;}
|
||||
|
||||
button.action {
|
||||
background: #7092ff;
|
||||
@@ -352,8 +349,7 @@ button.save .count {
|
||||
button.save.has-count .count {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
top: 5px;
|
||||
background: rgba(255, 255, 255, .5);
|
||||
color: #333;
|
||||
padding: 10px;
|
||||
@@ -655,14 +651,15 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;}
|
||||
}
|
||||
|
||||
.map-control > button.active:hover {
|
||||
background: #6bc641;
|
||||
background: #7092ff;
|
||||
}
|
||||
|
||||
.map-overlay {
|
||||
width: 150px;
|
||||
position:absolute;
|
||||
left:40px;
|
||||
top:0;
|
||||
right: 75%;
|
||||
max-width: 260px;
|
||||
min-width: 210px;
|
||||
position: fixed;
|
||||
left: 40px;
|
||||
display: block;
|
||||
border-radius: 4px;
|
||||
}
|
||||
@@ -688,10 +685,6 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;}
|
||||
top:190px;
|
||||
}
|
||||
|
||||
.layerswitcher-control .map-overlay {
|
||||
width:250px;
|
||||
}
|
||||
|
||||
.nudge-container {
|
||||
margin-top: 10px;
|
||||
}
|
||||
@@ -701,10 +694,8 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;}
|
||||
font-size:10px;
|
||||
padding:0 5px 3px 5px;
|
||||
background: white;
|
||||
border:0;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
|
||||
}
|
||||
|
||||
.layerswitcher-control .adjustments button:hover {
|
||||
@@ -741,9 +732,9 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;}
|
||||
.layerswitcher-control .nudge {
|
||||
text-indent: -9999px;
|
||||
overflow: hidden;
|
||||
width:20px;
|
||||
width:16.6666%;
|
||||
border-radius: 0;
|
||||
margin-right:1px;
|
||||
border-right: 1px solid rgba(0, 0, 0, .5);
|
||||
position: relative;
|
||||
}
|
||||
|
||||
@@ -786,7 +777,7 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;}
|
||||
}
|
||||
|
||||
.layerswitcher-control .reset {
|
||||
width: 45px;
|
||||
width: 33.3333%;
|
||||
border-radius: 0 4px 4px 0;
|
||||
}
|
||||
|
||||
@@ -820,8 +811,8 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;}
|
||||
|
||||
.layerswitcher-control li:hover .select-box,
|
||||
.layerswitcher-control li.selected .select-box {
|
||||
border: 2px solid #6bc641;
|
||||
background: rgba(107, 198, 65, .5);
|
||||
border: 2px solid #7092ff;
|
||||
background: rgba(89, 123, 231, .5);
|
||||
opacity: .5;
|
||||
}
|
||||
.layerswitcher-control li.selected:hover .select-box,
|
||||
@@ -838,25 +829,29 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;}
|
||||
|
||||
/* Geocoder */
|
||||
|
||||
.geocode-control {
|
||||
.geocode-control, .geocode-control form {
|
||||
top:150px;
|
||||
}
|
||||
|
||||
.geocode-control input {
|
||||
width: 140px;
|
||||
border: 1px solid #ccc;
|
||||
margin: 4px;
|
||||
.geocode-control form {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.geocode-control div {
|
||||
top: 50px;
|
||||
width: 340px;
|
||||
margin: 4px;
|
||||
padding: 5px;
|
||||
.geocode-control input {
|
||||
width: 100%;
|
||||
}
|
||||
.geocode-control div span {
|
||||
|
||||
.geocode-control div.content {
|
||||
z-index: 100;
|
||||
top: 190px;
|
||||
max-height: 300px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.geocode-control div.content span {
|
||||
display: inline-block;
|
||||
border-bottom: 1px solid #333;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
/* Geolocator */
|
||||
@@ -935,17 +930,17 @@ img.tile {
|
||||
color:#fff;
|
||||
}
|
||||
|
||||
#user-list a:not(:last-child):after {
|
||||
.user-list a:not(:last-child):after {
|
||||
content: ', ';
|
||||
}
|
||||
|
||||
/* Account Information */
|
||||
|
||||
.user-container {
|
||||
.account {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.user-container .logout {
|
||||
.account .logout {
|
||||
margin-left:10px;
|
||||
border-left: 1px solid white;
|
||||
padding-left: 10px;
|
||||
@@ -1150,11 +1145,6 @@ div.typeahead a:first-child {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.modal-section .buttons {
|
||||
padding-top: 10px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.modal-section img.wiki-image {
|
||||
max-width: 100%;
|
||||
max-height: 300px;
|
||||
@@ -1218,7 +1208,7 @@ a.success-action {
|
||||
}
|
||||
|
||||
.notice .zoom-to:hover {
|
||||
background: #bde5aa;
|
||||
background: #d8e1ff;
|
||||
}
|
||||
|
||||
.notice .zoom-to .icon {
|
||||
|
||||
+21
-152
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 88 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
+9
-6
@@ -57,6 +57,7 @@
|
||||
<script src="js/id/svg/labels.js"></script>
|
||||
|
||||
<script src="js/id/ui.js"></script>
|
||||
<script src='js/id/ui/attribution.js'></script>
|
||||
<script src='js/id/ui/radial_menu.js'></script>
|
||||
<script src='js/id/ui/inspector.js'></script>
|
||||
<script src='js/id/ui/modal.js'></script>
|
||||
@@ -65,7 +66,7 @@
|
||||
<script src='js/id/ui/commit.js'></script>
|
||||
<script src='js/id/ui/success.js'></script>
|
||||
<script src='js/id/ui/loading.js'></script>
|
||||
<script src='js/id/ui/userpanel.js'></script>
|
||||
<script src='js/id/ui/account.js'></script>
|
||||
<script src='js/id/ui/layerswitcher.js'></script>
|
||||
<script src='js/id/ui/modes.js'></script>
|
||||
<script src='js/id/ui/contributors.js'></script>
|
||||
@@ -82,6 +83,7 @@
|
||||
<script src='js/id/ui/source_switch.js'></script>
|
||||
<script src='js/id/ui/toggle.js'></script>
|
||||
<script src='js/id/ui/undo_redo.js'></script>
|
||||
<script src='js/id/ui/zoom.js'></script>
|
||||
|
||||
<script src='js/id/actions.js'></script>
|
||||
<script src="js/id/actions/add_midpoint.js"></script>
|
||||
@@ -146,14 +148,15 @@
|
||||
<script src='js/id/connection.js'></script>
|
||||
<script src='js/id/validate.js'></script>
|
||||
|
||||
<script src='locale/locale.js'></script>
|
||||
<script src='locale/en.js'></script>
|
||||
<script src='locale/ja.js'></script>
|
||||
<script src='locale/fr.js'></script>
|
||||
<script src='js/lib/locale.js'></script>
|
||||
<script src='locale/da.js'></script>
|
||||
<script src='locale/de.js'></script>
|
||||
<script src='locale/en.js'></script>
|
||||
<script src='locale/es.js'></script>
|
||||
<script src='locale/fr.js'></script>
|
||||
<script src='locale/ja.js'></script>
|
||||
<script src='locale/lv.js'></script>
|
||||
<script src='locale/tr.js'></script>
|
||||
<script src='locale/es.js'></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -12,7 +12,7 @@ iD.behavior.Lasso = function(context) {
|
||||
|
||||
pos = [d3.event.clientX, d3.event.clientY];
|
||||
|
||||
lasso = iD.ui.lasso().a(d3.mouse(context.surface().node()));
|
||||
lasso = iD.ui.Lasso().a(d3.mouse(context.surface().node()));
|
||||
|
||||
context.surface().call(lasso);
|
||||
|
||||
|
||||
+19
-65
@@ -1,78 +1,32 @@
|
||||
iD.behavior.Select = function(context) {
|
||||
|
||||
var behavior = function(selection) {
|
||||
|
||||
var timeout = null,
|
||||
// the position of the first mousedown
|
||||
pos = null;
|
||||
|
||||
function click(event) {
|
||||
d3.event = event;
|
||||
function click() {
|
||||
var datum = d3.event.target.__data__;
|
||||
if (datum instanceof iD.Entity) {
|
||||
if (d3.event.shiftKey) {
|
||||
context.enter(iD.modes.Select(context, context.selection().concat([datum.id])));
|
||||
} else {
|
||||
context.enter(iD.modes.Select(context, [datum.id]));
|
||||
}
|
||||
if (!(datum instanceof iD.Entity)) {
|
||||
if (!d3.event.shiftKey)
|
||||
context.enter(iD.modes.Browse(context));
|
||||
|
||||
} else if (!d3.event.shiftKey) {
|
||||
context.enter(iD.modes.Browse(context));
|
||||
// Avoid re-entering Select mode with same entity.
|
||||
if (context.selection().length !== 1 || context.selection()[0] !== datum.id)
|
||||
context.enter(iD.modes.Select(context, [datum.id]));
|
||||
|
||||
} else if (context.selection().indexOf(datum.id) >= 0) {
|
||||
var selection = _.without(context.selection(), datum.id);
|
||||
context.enter(selection.length ?
|
||||
iD.modes.Select(context, selection) :
|
||||
iD.modes.Browse(context));
|
||||
|
||||
} else {
|
||||
context.enter(iD.modes.Select(context, context.selection().concat([datum.id])));
|
||||
}
|
||||
}
|
||||
|
||||
function mousedown() {
|
||||
var datum = d3.event.target.__data__;
|
||||
pos = [d3.event.clientX, d3.event.clientY];
|
||||
if (datum instanceof iD.Entity || (datum && datum.type === 'midpoint')) {
|
||||
selection
|
||||
.on('mousemove.select', mousemove)
|
||||
.on('touchmove.select', mousemove);
|
||||
|
||||
// we've seen a mousedown within 400ms of this one, so ignore
|
||||
// both because they will be a double click
|
||||
if (timeout !== null) {
|
||||
window.clearTimeout(timeout);
|
||||
selection.on('mousemove.select', null);
|
||||
timeout = null;
|
||||
} else {
|
||||
// queue the click handler to fire in 400ms if no other clicks
|
||||
// are detected
|
||||
timeout = window.setTimeout((function(event) {
|
||||
return function() {
|
||||
click(event);
|
||||
timeout = null;
|
||||
selection.on('mousemove.select', null);
|
||||
};
|
||||
// save the event for the click handler
|
||||
})(d3.event), 200);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// allow mousemoves to cancel the click
|
||||
function mousemove() {
|
||||
if (iD.geo.dist([d3.event.clientX, d3.event.clientY], pos) > 4) {
|
||||
window.clearTimeout(timeout);
|
||||
timeout = null;
|
||||
}
|
||||
}
|
||||
|
||||
function mouseup() {
|
||||
selection.on('mousemove.select', null);
|
||||
if (pos && d3.event.clientX === pos[0] && d3.event.clientY === pos[1] &&
|
||||
!(d3.event.target.__data__ instanceof iD.Entity)) {
|
||||
context.enter(iD.modes.Browse(context));
|
||||
}
|
||||
}
|
||||
|
||||
selection
|
||||
.on('mousedown.select', mousedown)
|
||||
.on('mouseup.select', mouseup)
|
||||
.on('touchstart.select', mousedown);
|
||||
selection.on('click.select', click);
|
||||
};
|
||||
|
||||
behavior.off = function(selection) {
|
||||
selection.on('mousedown.select', null);
|
||||
selection.on('click.select', null);
|
||||
};
|
||||
|
||||
return behavior;
|
||||
|
||||
+1
-1
@@ -228,7 +228,7 @@ iD.Connection = function(context) {
|
||||
if (img && img[0].getAttribute('href')) {
|
||||
image_url = img[0].getAttribute('href');
|
||||
}
|
||||
callback(connection.user({
|
||||
callback(undefined, connection.user({
|
||||
display_name: u.attributes.display_name.nodeValue,
|
||||
image_url: image_url,
|
||||
id: u.attributes.id.nodeValue
|
||||
|
||||
@@ -85,6 +85,8 @@ window.iD = function () {
|
||||
context.projection = map.projection;
|
||||
context.tail = map.tail;
|
||||
context.redraw = map.redraw;
|
||||
context.zoomIn = map.zoomIn;
|
||||
context.zoomOut = map.zoomOut;
|
||||
|
||||
context.container = function(_) {
|
||||
if (!arguments.length) return container;
|
||||
|
||||
+16
-8
@@ -4,8 +4,9 @@ iD.modes.Select = function(context, selection, initial) {
|
||||
button: 'browse'
|
||||
};
|
||||
|
||||
var inspector = iD.ui.inspector().initial(!!initial),
|
||||
var inspector = iD.ui.Inspector().initial(!!initial),
|
||||
keybinding = d3.keybinding('select'),
|
||||
timeout = null,
|
||||
behaviors = [
|
||||
iD.behavior.Hover(),
|
||||
iD.behavior.Select(context),
|
||||
@@ -160,22 +161,27 @@ iD.modes.Select = function(context, selection, initial) {
|
||||
.call(keybinding);
|
||||
|
||||
context.surface()
|
||||
.on('dblclick.select', dblclick)
|
||||
.selectAll("*")
|
||||
.filter(selected)
|
||||
.classed('selected', true);
|
||||
|
||||
radialMenu = iD.ui.RadialMenu(operations);
|
||||
var showMenu = d3.event && !initial;
|
||||
|
||||
if (d3.event && !initial) {
|
||||
var loc = context.map().mouseCoordinates();
|
||||
|
||||
if (showMenu) {
|
||||
if (entity && entity.type === 'node') {
|
||||
loc = entity.loc;
|
||||
radialMenu.center(context.projection(entity.loc));
|
||||
} else {
|
||||
radialMenu.center(d3.mouse(context.surface().node()));
|
||||
}
|
||||
|
||||
context.surface().call(radialMenu, context.projection(loc));
|
||||
}
|
||||
|
||||
timeout = window.setTimeout(function() {
|
||||
if (showMenu) context.surface().call(radialMenu);
|
||||
|
||||
context.surface()
|
||||
.on('dblclick.select', dblclick)
|
||||
}, 200);
|
||||
};
|
||||
|
||||
mode.exit = function() {
|
||||
@@ -183,6 +189,8 @@ iD.modes.Select = function(context, selection, initial) {
|
||||
changeTags(singular(), inspector.tags());
|
||||
}
|
||||
|
||||
if (timeout) window.clearTimeout(timeout);
|
||||
|
||||
context.container()
|
||||
.select('.inspector-wrap')
|
||||
.style('display', 'none')
|
||||
|
||||
+28
-65
@@ -37,31 +37,21 @@ iD.ui = function(context) {
|
||||
.attr('class', 'button-wrap col1')
|
||||
.call(iD.ui.Save(context));
|
||||
|
||||
var zoom = container.append('div')
|
||||
.attr('class', 'zoombuttons map-control')
|
||||
.selectAll('button')
|
||||
.data([['zoom-in', '+', map.zoomIn, t('zoom-in')], ['zoom-out', '-', map.zoomOut, t('zoom-out')]])
|
||||
.enter()
|
||||
.append('button')
|
||||
.attr('tabindex', -1)
|
||||
.attr('class', function(d) { return d[0]; })
|
||||
.attr('title', function(d) { return d[3]; })
|
||||
.on('click.editor', function(d) { return d[2](); })
|
||||
.append('span')
|
||||
.attr('class', function(d) {
|
||||
return d[0] + ' icon';
|
||||
});
|
||||
container.append('div')
|
||||
.attr('class', 'map-control zoombuttons')
|
||||
.call(iD.ui.Zoom(context));
|
||||
|
||||
if (navigator.geolocation) {
|
||||
container.append('div')
|
||||
.call(iD.ui.geolocate(map));
|
||||
}
|
||||
container.append('div')
|
||||
.attr('class', 'map-control geocode-control')
|
||||
.call(iD.ui.Geocoder(context));
|
||||
|
||||
container.append('div').attr('class', 'geocode-control map-control')
|
||||
.call(iD.ui.geocoder(context));
|
||||
container.append('div')
|
||||
.attr('class', 'map-control layerswitcher-control')
|
||||
.call(iD.ui.LayerSwitcher(context));
|
||||
|
||||
container.append('div').attr('class', 'map-control layerswitcher-control')
|
||||
.call(iD.ui.layerswitcher(context));
|
||||
container.append('div')
|
||||
.attr('class', 'map-control geolocate-control')
|
||||
.call(iD.ui.Geolocate(map));
|
||||
|
||||
container.append('div')
|
||||
.style('display', 'none')
|
||||
@@ -70,20 +60,13 @@ iD.ui = function(context) {
|
||||
var about = container.append('div')
|
||||
.attr('class','col12 about-block fillD pad1');
|
||||
|
||||
var userContainer = about.append('div')
|
||||
.attr('class', 'user-container');
|
||||
about.append('div')
|
||||
.attr('class', 'account')
|
||||
.call(iD.ui.Account(context));
|
||||
|
||||
userContainer
|
||||
.append('div')
|
||||
.attr('class', 'hello');
|
||||
|
||||
var aboutList = about.append('ul')
|
||||
.attr('id','about')
|
||||
.attr('class','link-list');
|
||||
|
||||
var linkList = aboutList.append('ul')
|
||||
.attr('id','about')
|
||||
.attr('class','pad1 fillD about-block link-list');
|
||||
var linkList = about.append('ul')
|
||||
.attr('id', 'about')
|
||||
.attr('class', 'pad1 fillD about-block link-list');
|
||||
|
||||
linkList.append('li')
|
||||
.append('a')
|
||||
@@ -97,27 +80,21 @@ iD.ui = function(context) {
|
||||
.attr('href', 'http://github.com/systemed/iD/issues')
|
||||
.text(t('report_a_bug'));
|
||||
|
||||
var imagery = linkList.append('li')
|
||||
.attr('id', 'attribution');
|
||||
|
||||
imagery.append('span')
|
||||
.text('imagery');
|
||||
|
||||
imagery
|
||||
.append('span')
|
||||
.attr('class', 'provided-by');
|
||||
linkList.append('li')
|
||||
.attr('class', 'attribution')
|
||||
.call(iD.ui.Attribution(context));
|
||||
|
||||
linkList.append('li')
|
||||
.attr('class', 'source-switch')
|
||||
.call(iD.ui.SourceSwitch(context));
|
||||
|
||||
linkList.append('li')
|
||||
.attr('id', 'user-list')
|
||||
.call(iD.ui.contributors(context));
|
||||
.attr('class', 'user-list')
|
||||
.call(iD.ui.Contributors(context));
|
||||
|
||||
window.onbeforeunload = function() {
|
||||
history.save();
|
||||
if (history.hasChanges()) return t('unsaved_changes');
|
||||
if (history.hasChanges()) return t('save.unsaved_changes');
|
||||
};
|
||||
|
||||
d3.select(window).on('resize.editor', function() {
|
||||
@@ -139,11 +116,7 @@ iD.ui = function(context) {
|
||||
.on('←', pan([pa, 0]))
|
||||
.on('↑', pan([0, pa]))
|
||||
.on('→', pan([-pa, 0]))
|
||||
.on('↓', pan([0, -pa]))
|
||||
.on('⇧=', function() { map.zoomIn(); })
|
||||
.on('+', function() { map.zoomIn(); })
|
||||
.on('-', function() { map.zoomOut(); })
|
||||
.on('dash', function() { map.zoomOut(); });
|
||||
.on('↓', pan([0, -pa]));
|
||||
|
||||
d3.select(document)
|
||||
.call(keybinding);
|
||||
@@ -156,21 +129,11 @@ iD.ui = function(context) {
|
||||
map.centerZoom([-77.02271, 38.90085], 20);
|
||||
}
|
||||
|
||||
userContainer.call(iD.ui.userpanel(connection)
|
||||
.on('logout.editor', connection.logout)
|
||||
.on('login.editor', connection.authenticate));
|
||||
|
||||
context.enter(iD.modes.Browse(context));
|
||||
|
||||
if (!context.storage('sawSplash')) {
|
||||
iD.ui.splash(context.container());
|
||||
context.storage('sawSplash', true);
|
||||
}
|
||||
|
||||
if (history.lock() && history.restorableChanges()) {
|
||||
iD.ui.restore(context.container(), history);
|
||||
}
|
||||
|
||||
context.container()
|
||||
.call(iD.ui.Splash(context))
|
||||
.call(iD.ui.Restore(context));
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
iD.ui.Account = function(context) {
|
||||
var connection = context.connection();
|
||||
|
||||
function update(selection) {
|
||||
if (!connection.authenticated()) {
|
||||
selection.html('')
|
||||
.style('display', 'none');
|
||||
return;
|
||||
}
|
||||
|
||||
selection.style('display', 'block');
|
||||
|
||||
connection.userDetails(function(err, details) {
|
||||
selection.html('');
|
||||
|
||||
if (err) return;
|
||||
|
||||
// Link
|
||||
var userLink = selection.append('a')
|
||||
.attr('href', connection.url() + '/user/' + details.display_name)
|
||||
.attr('target', '_blank');
|
||||
|
||||
// Add thumbnail or dont
|
||||
if (details.image_url) {
|
||||
userLink.append('img')
|
||||
.attr('class', 'icon icon-pre-text user-icon')
|
||||
.attr('src', details.image_url);
|
||||
} else {
|
||||
userLink.append('span')
|
||||
.attr('class', 'icon avatar icon-pre-text');
|
||||
}
|
||||
|
||||
// Add user name
|
||||
userLink.append('span')
|
||||
.attr('class', 'label')
|
||||
.text(details.display_name);
|
||||
|
||||
selection.append('a')
|
||||
.attr('class', 'logout')
|
||||
.attr('href', '#')
|
||||
.text(t('logout'))
|
||||
.on('click.logout', function() {
|
||||
d3.event.preventDefault();
|
||||
connection.logout();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return function(selection) {
|
||||
connection.on('auth', function() { update(selection); });
|
||||
update(selection);
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,10 @@
|
||||
iD.ui.Attribution = function(context) {
|
||||
return function(selection) {
|
||||
selection.append('span')
|
||||
.text('imagery');
|
||||
|
||||
selection
|
||||
.append('span')
|
||||
.attr('class', 'provided-by');
|
||||
}
|
||||
};
|
||||
+52
-46
@@ -1,4 +1,4 @@
|
||||
iD.ui.commit = function(context) {
|
||||
iD.ui.Commit = function(context) {
|
||||
var event = d3.dispatch('cancel', 'save', 'fix');
|
||||
|
||||
function zipSame(d) {
|
||||
@@ -31,47 +31,44 @@ iD.ui.commit = function(context) {
|
||||
header = selection.append('div').attr('class', 'header modal-section fillL'),
|
||||
body = selection.append('div').attr('class', 'body');
|
||||
|
||||
header.append('h2').text('Save Changes');
|
||||
header.append('h2')
|
||||
.text(t('commit.title'));
|
||||
|
||||
// Comment Box
|
||||
var comment_section = body.append('div').attr('class','modal-section fillD');
|
||||
var commentField = comment_section.append('textarea')
|
||||
var commentSection = body.append('div')
|
||||
.attr('class', 'modal-section fillD');
|
||||
|
||||
var commentField = commentSection.append('textarea')
|
||||
.attr('class', 'changeset-comment')
|
||||
.attr('placeholder', 'Brief Description of your contributions')
|
||||
.attr('placeholder', t('commit.description_placeholder'))
|
||||
.property('value', context.storage('comment') || '');
|
||||
|
||||
commentField.node().select();
|
||||
|
||||
var commit_info =
|
||||
comment_section
|
||||
.append('p')
|
||||
.attr('class','commit-info');
|
||||
var userLink = d3.select(document.createElement('div'));
|
||||
|
||||
commit_info.append('span').text('The changes you upload as ');
|
||||
|
||||
var user_link = commit_info.append('a')
|
||||
.attr('class','user-info')
|
||||
.text(user.display_name)
|
||||
.attr('href', connection.url() + '/user/' + user.display_name)
|
||||
.attr('target', '_blank');
|
||||
|
||||
commit_info.append('span').text(' will be visible on all maps that use OpenStreetMap data:');
|
||||
userLink.append('a')
|
||||
.attr('class','user-info')
|
||||
.text(user.display_name)
|
||||
.attr('href', connection.url() + '/user/' + user.display_name)
|
||||
.attr('target', '_blank');
|
||||
|
||||
if (user.image_url) {
|
||||
user_link
|
||||
.append('img')
|
||||
.attr('src', user.image_url)
|
||||
.attr('class', 'icon icon-pre-text user-icon');
|
||||
userLink.append('img')
|
||||
.attr('src', user.image_url)
|
||||
.attr('class', 'icon icon-pre-text user-icon');
|
||||
}
|
||||
|
||||
// Confirm / Cancel Buttons
|
||||
var buttonwrap = comment_section.append('div')
|
||||
.attr('class', 'buttons cf')
|
||||
.append('div')
|
||||
.attr('class', 'button-wrap joined col4');
|
||||
commentSection.append('p')
|
||||
.attr('class', 'commit-info')
|
||||
.html(t('commit.upload_explanation', {user: userLink.html()}));
|
||||
|
||||
var savebutton = buttonwrap
|
||||
.append('button')
|
||||
// Confirm / Cancel Buttons
|
||||
var buttonWrap = commentSection.append('div')
|
||||
.attr('class', 'buttons cf')
|
||||
.append('div')
|
||||
.attr('class', 'button-wrap joined col4');
|
||||
|
||||
var saveButton = buttonWrap.append('button')
|
||||
.attr('class', 'save action col6 button')
|
||||
.on('click.save', function() {
|
||||
var comment = commentField.node().value;
|
||||
@@ -80,62 +77,71 @@ iD.ui.commit = function(context) {
|
||||
comment: comment
|
||||
});
|
||||
});
|
||||
savebutton.append('span').attr('class','label').text('Save');
|
||||
|
||||
var cancelbutton = buttonwrap.append('button')
|
||||
saveButton.append('span')
|
||||
.attr('class', 'label')
|
||||
.text(t('commit.save'));
|
||||
|
||||
var cancelButton = buttonWrap.append('button')
|
||||
.attr('class', 'cancel col6 button')
|
||||
.on('click.cancel', function() {
|
||||
event.cancel();
|
||||
});
|
||||
cancelbutton.append('span').attr('class','label').text('Cancel');
|
||||
|
||||
cancelButton.append('span')
|
||||
.attr('class', 'label')
|
||||
.text(t('commit.cancel'));
|
||||
|
||||
var warnings = body.selectAll('div.warning-section')
|
||||
.data(iD.validate(changes, context.graph()))
|
||||
.enter()
|
||||
.append('div').attr('class', 'modal-section warning-section fillL');
|
||||
.append('div')
|
||||
.attr('class', 'modal-section warning-section fillL');
|
||||
|
||||
warnings.append('h3')
|
||||
.text('Warnings');
|
||||
.text(t('commit.warnings'));
|
||||
|
||||
var warning_li = warnings.append('ul')
|
||||
var warningLi = warnings.append('ul')
|
||||
.attr('class', 'changeset-list')
|
||||
.selectAll('li')
|
||||
.data(function(d) { return d; })
|
||||
.enter()
|
||||
.append('li');
|
||||
|
||||
warning_li.append('button')
|
||||
warningLi.append('button')
|
||||
.attr('class', 'minor')
|
||||
.on('click', event.fix)
|
||||
.append('span')
|
||||
.attr('class', 'icon warning');
|
||||
|
||||
warning_li.append('strong').text(function(d) {
|
||||
warningLi.append('strong').text(function(d) {
|
||||
return d.message;
|
||||
});
|
||||
|
||||
var section = body.selectAll('div.commit-section')
|
||||
.data(['modified', 'deleted', 'created'].filter(changesLength))
|
||||
.enter()
|
||||
.append('div').attr('class', 'commit-section modal-section fillL2');
|
||||
.append('div')
|
||||
.attr('class', 'commit-section modal-section fillL2');
|
||||
|
||||
section.append('h3').text(function(d) {
|
||||
return d.charAt(0).toUpperCase() + d.slice(1);
|
||||
})
|
||||
section.append('h3')
|
||||
.text(function(d) { return t('commit.' + d); })
|
||||
.append('small')
|
||||
.attr('class', 'count')
|
||||
.text(changesLength);
|
||||
|
||||
var li = section.append('ul')
|
||||
.attr('class','changeset-list')
|
||||
.attr('class', 'changeset-list')
|
||||
.selectAll('li')
|
||||
.data(function(d) { return zipSame(changes[d]); })
|
||||
.enter()
|
||||
.append('li');
|
||||
|
||||
li.append('strong').text(function(d) {
|
||||
return (d.count > 1) ? d.type + 's ' : d.type + ' ';
|
||||
});
|
||||
li.append('strong')
|
||||
.text(function(d) {
|
||||
return (d.count > 1) ? d.type + 's ' : d.type + ' ';
|
||||
});
|
||||
|
||||
li.append('span')
|
||||
.text(function(d) { return d.name; })
|
||||
.attr('title', function(d) { return d.tagText; });
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
iD.ui.contributors = function(context) {
|
||||
iD.ui.Contributors = function(context) {
|
||||
function update(selection) {
|
||||
var users = {},
|
||||
limit = 3,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
iD.ui.geocoder = function(context) {
|
||||
iD.ui.Geocoder = function(context) {
|
||||
function resultExtent(bounds) {
|
||||
return new iD.geo.Extent(
|
||||
[parseFloat(bounds[3]), parseFloat(bounds[0])],
|
||||
@@ -64,7 +64,7 @@ iD.ui.geocoder = function(context) {
|
||||
function setVisible(show) {
|
||||
if (show !== shown) {
|
||||
button.classed('active', show);
|
||||
gcForm.call(iD.ui.toggle(show));
|
||||
gcForm.call(iD.ui.Toggle(show));
|
||||
if (!show) resultsList.classed('hide', !show);
|
||||
if (show) inputNode.node().focus();
|
||||
else inputNode.node().blur();
|
||||
@@ -75,8 +75,12 @@ iD.ui.geocoder = function(context) {
|
||||
var button = selection.append('button')
|
||||
.attr('tabindex', -1)
|
||||
.attr('title', t('geocoder.title'))
|
||||
.html('<span class=\'geocode icon\'></span>')
|
||||
.on('click', toggle);
|
||||
.on('click', toggle)
|
||||
.call(bootstrap.tooltip()
|
||||
.placement('right'));
|
||||
|
||||
button.append('span')
|
||||
.attr('class', 'icon geocode');
|
||||
|
||||
var gcForm = selection.append('form');
|
||||
|
||||
|
||||
+16
-13
@@ -1,4 +1,8 @@
|
||||
iD.ui.geolocate = function(map) {
|
||||
iD.ui.Geolocate = function(map) {
|
||||
function click() {
|
||||
navigator.geolocation.getCurrentPosition(
|
||||
success, error);
|
||||
}
|
||||
|
||||
function success(position) {
|
||||
map.center([position.coords.longitude, position.coords.latitude]);
|
||||
@@ -7,17 +11,16 @@ iD.ui.geolocate = function(map) {
|
||||
function error() { }
|
||||
|
||||
return function(selection) {
|
||||
selection
|
||||
.attr('class', 'geolocate-control map-control')
|
||||
.append('button')
|
||||
.attr('tabindex', -1)
|
||||
.attr('title', 'Show My Location')
|
||||
.on('click', function() {
|
||||
navigator.geolocation.getCurrentPosition(
|
||||
success, error);
|
||||
})
|
||||
.append('span')
|
||||
.attr('class','icon geolocate');
|
||||
};
|
||||
if (!navigator.geolocation) return;
|
||||
|
||||
var button = selection.append('button')
|
||||
.attr('tabindex', -1)
|
||||
.attr('title', t('geolocate.title'))
|
||||
.on('click', click)
|
||||
.call(bootstrap.tooltip()
|
||||
.placement('right'));
|
||||
|
||||
button.append('span')
|
||||
.attr('class', 'icon geolocate');
|
||||
};
|
||||
};
|
||||
|
||||
+25
-18
@@ -1,4 +1,4 @@
|
||||
iD.ui.inspector = function() {
|
||||
iD.ui.Inspector = function() {
|
||||
var event = d3.dispatch('changeTags', 'close'),
|
||||
taginfo = iD.taginfo(),
|
||||
initial = false,
|
||||
@@ -22,20 +22,24 @@ iD.ui.inspector = function() {
|
||||
.attr('class', 'inspector-inner tag-wrap fillL2');
|
||||
|
||||
inspectorwrap.append('h4')
|
||||
.text(t('edit_tags'));
|
||||
.text(t('inspector.edit_tags'));
|
||||
|
||||
tagList = inspectorwrap.append('ul');
|
||||
|
||||
var newTag = inspectorwrap.append('button')
|
||||
.attr('class', 'add-tag');
|
||||
.attr('class', 'add-tag');
|
||||
|
||||
newTag.on('click', function() {
|
||||
addTag();
|
||||
focusNewKey();
|
||||
});
|
||||
newTag.on('click', function () {
|
||||
addTag();
|
||||
focusNewKey();
|
||||
});
|
||||
|
||||
newTag.append('span').attr('class', 'icon icon-pre-text plus');
|
||||
newTag.append('span').attr('class','label').text(t('inspector.new_tag'));
|
||||
newTag.append('span')
|
||||
.attr('class', 'icon icon-pre-text plus');
|
||||
|
||||
newTag.append('span')
|
||||
.attr('class', 'label')
|
||||
.text(t('inspector.new_tag'));
|
||||
|
||||
drawTags(entity.tags);
|
||||
|
||||
@@ -43,7 +47,7 @@ iD.ui.inspector = function() {
|
||||
.attr('class', 'inspector-buttons pad1 fillD')
|
||||
.call(drawButtons);
|
||||
|
||||
inspector.call(iD.ui.toggle(true));
|
||||
inspector.call(iD.ui.Toggle(true));
|
||||
}
|
||||
|
||||
function drawHead(selection) {
|
||||
@@ -62,17 +66,20 @@ iD.ui.inspector = function() {
|
||||
var entity = selection.datum();
|
||||
|
||||
var inspectorButton = selection.append('button')
|
||||
.attr('class', 'apply action')
|
||||
.on('click', apply);
|
||||
.attr('class', 'apply action')
|
||||
.on('click', apply);
|
||||
|
||||
inspectorButton.append('span').attr('class','label').text(t('okay'));
|
||||
inspectorButton.append('span')
|
||||
.attr('class','label')
|
||||
.text(t('inspector.okay'));
|
||||
|
||||
var minorButtons = selection.append('div').attr('class','minor-buttons fl');
|
||||
var minorButtons = selection.append('div')
|
||||
.attr('class','minor-buttons fl');
|
||||
|
||||
minorButtons.append('a')
|
||||
.attr('href', 'http://www.openstreetmap.org/browse/' + entity.type + '/' + entity.osmId())
|
||||
.attr('target', '_blank')
|
||||
.text('View on OSM');
|
||||
minorButtons.append('a')
|
||||
.attr('href', 'http://www.openstreetmap.org/browse/' + entity.type + '/' + entity.osmId())
|
||||
.attr('target', '_blank')
|
||||
.text(t('inspector.view_on_osm'));
|
||||
}
|
||||
|
||||
function drawTags(tags) {
|
||||
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
iD.ui.lasso = function() {
|
||||
iD.ui.Lasso = function() {
|
||||
|
||||
var center, box,
|
||||
group,
|
||||
@@ -13,7 +13,7 @@ iD.ui.lasso = function() {
|
||||
box = group.append('rect')
|
||||
.attr('class', 'lasso-box');
|
||||
|
||||
group.call(iD.ui.toggle(true));
|
||||
group.call(iD.ui.Toggle(true));
|
||||
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ iD.ui.lasso = function() {
|
||||
|
||||
lasso.close = function(selection) {
|
||||
if (group) {
|
||||
group.call(iD.ui.toggle(false, function() {
|
||||
group.call(iD.ui.Toggle(false, function() {
|
||||
d3.select(this).remove();
|
||||
}));
|
||||
}
|
||||
|
||||
+16
-12
@@ -1,4 +1,4 @@
|
||||
iD.ui.layerswitcher = function(context) {
|
||||
iD.ui.LayerSwitcher = function(context) {
|
||||
var event = d3.dispatch('cancel', 'save'),
|
||||
opacities = [1, 0.5, 0];
|
||||
|
||||
@@ -23,17 +23,20 @@ iD.ui.layerswitcher = function(context) {
|
||||
.attr('tabindex', -1)
|
||||
.attr('class', 'fillD')
|
||||
.attr('title', t('layerswitcher.description'))
|
||||
.html("<span class='layers icon'></span>")
|
||||
.on('click.layerswitcher-toggle', toggle);
|
||||
.on('click.layerswitcher-toggle', toggle)
|
||||
.call(bootstrap.tooltip()
|
||||
.placement('right'));
|
||||
|
||||
button.append('span')
|
||||
.attr('class', 'layers icon');
|
||||
|
||||
function show() { setVisible(true); }
|
||||
function hide() { setVisible(false); }
|
||||
function toggle() { setVisible(content.classed('hide')); }
|
||||
|
||||
function setVisible(show) {
|
||||
if (show !== shown) {
|
||||
button.classed('active', show);
|
||||
content.call(iD.ui.toggle(show));
|
||||
content.call(iD.ui.Toggle(show));
|
||||
shown = show;
|
||||
}
|
||||
}
|
||||
@@ -89,7 +92,7 @@ iD.ui.layerswitcher = function(context) {
|
||||
return d === context.background().source();
|
||||
});
|
||||
|
||||
var provided_by = context.container().select('#attribution .provided-by')
|
||||
var provided_by = context.container().select('.attribution .provided-by')
|
||||
.html('');
|
||||
|
||||
if (d.data.terms_url) {
|
||||
@@ -133,7 +136,7 @@ iD.ui.layerswitcher = function(context) {
|
||||
return d.data.name;
|
||||
});
|
||||
layerLinks.exit().remove();
|
||||
layerLinks.enter()
|
||||
var LayerInner = layerLinks.enter()
|
||||
.append('li')
|
||||
.append('a')
|
||||
.attr('data-original-title', function(d) {
|
||||
@@ -141,18 +144,19 @@ iD.ui.layerswitcher = function(context) {
|
||||
})
|
||||
.attr('href', '#')
|
||||
.attr('class', 'layer')
|
||||
.text(function(d) {
|
||||
return d.data.name;
|
||||
})
|
||||
.each(function(d) {
|
||||
// only set tooltips for layers with tooltips
|
||||
if (d.data.description) {
|
||||
d3.select(this).call(bootstrap.tooltip().placement('right'));
|
||||
}
|
||||
})
|
||||
.on('click.set-source', clickSetSource)
|
||||
.insert('span')
|
||||
.on('click.set-source', clickSetSource);
|
||||
LayerInner.insert('span')
|
||||
.attr('class','icon toggle');
|
||||
LayerInner.insert('span').text(function(d) {
|
||||
return d.data.name;
|
||||
});
|
||||
|
||||
selectLayer(context.background().source());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ iD.ui.Modes = function(context) {
|
||||
|
||||
buttons.enter().append('button')
|
||||
.attr('tabindex', -1)
|
||||
.attr('class', function(mode) { return mode.title + ' add-button col3'; })
|
||||
.attr('class', function(mode) { return mode.id + ' add-button col3'; })
|
||||
.on('click.mode-buttons', function(mode) { context.enter(mode); })
|
||||
.call(bootstrap.tooltip()
|
||||
.placement('bottom')
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
iD.ui.RadialMenu = function(operations) {
|
||||
var menu;
|
||||
var menu,
|
||||
center = [0, 0];
|
||||
|
||||
var radialMenu = function(selection, center) {
|
||||
var radialMenu = function(selection) {
|
||||
if (!operations.length)
|
||||
return;
|
||||
|
||||
@@ -94,5 +95,11 @@ iD.ui.RadialMenu = function(operations) {
|
||||
}
|
||||
};
|
||||
|
||||
radialMenu.center = function(_) {
|
||||
if (!arguments.length) return center;
|
||||
center = _;
|
||||
return radialMenu;
|
||||
};
|
||||
|
||||
return radialMenu;
|
||||
};
|
||||
|
||||
+33
-27
@@ -1,34 +1,40 @@
|
||||
iD.ui.restore = function(selection, history) {
|
||||
var modal = iD.ui.modal(selection);
|
||||
iD.ui.Restore = function(context) {
|
||||
return function(selection) {
|
||||
if (!context.history().lock() || !context.history().restorableChanges())
|
||||
return;
|
||||
|
||||
modal.select('.modal')
|
||||
.attr('class', 'modal-splash modal');
|
||||
var modal = iD.ui.modal(selection);
|
||||
|
||||
var introModal = modal.select('.content')
|
||||
.append('div')
|
||||
.attr('class', 'modal-section fillL')
|
||||
.text('You have unsaved changes from a previous editing session. Do you wish to restore these changes?');
|
||||
modal.select('.modal')
|
||||
.attr('class', 'modal-splash modal');
|
||||
|
||||
buttons = introModal
|
||||
.append('div')
|
||||
.attr('class', 'buttons cf')
|
||||
var introModal = modal.select('.content');
|
||||
|
||||
introModal.append('div')
|
||||
.attr('class', 'modal-section fillL')
|
||||
.append('h3')
|
||||
.text(t('restore.description'));
|
||||
|
||||
var buttonWrap = introModal.append('div')
|
||||
.attr('class', 'modal-section fillD cf col12');
|
||||
|
||||
var buttons = buttonWrap
|
||||
.append('div')
|
||||
.attr('class', 'button-wrap joined col4');
|
||||
.attr('class', 'button-wrap joined col6');
|
||||
|
||||
buttons.append('button')
|
||||
.attr('class', 'save action button col6')
|
||||
.text('Restore')
|
||||
.on('click', function() {
|
||||
history.load();
|
||||
modal.remove();
|
||||
});
|
||||
buttons.append('button')
|
||||
.attr('class', 'save action button col6')
|
||||
.text(t('restore.restore'))
|
||||
.on('click', function() {
|
||||
context.history().load();
|
||||
modal.remove();
|
||||
});
|
||||
|
||||
buttons.append('button')
|
||||
.attr('class', 'cancel button col6')
|
||||
.text('Reset')
|
||||
.on('click', function() {
|
||||
modal.remove();
|
||||
});
|
||||
|
||||
return modal;
|
||||
buttons.append('button')
|
||||
.attr('class', 'cancel button col6')
|
||||
.text(t('restore.reset'))
|
||||
.on('click', function() {
|
||||
modal.remove();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
+6
-6
@@ -17,7 +17,7 @@ iD.ui.Save = function(context) {
|
||||
modal.select('.content')
|
||||
.classed('commit-modal', true)
|
||||
.datum(changes)
|
||||
.call(iD.ui.commit(context)
|
||||
.call(iD.ui.Commit(context)
|
||||
.on('cancel', function() {
|
||||
modal.remove();
|
||||
})
|
||||
@@ -30,7 +30,7 @@ iD.ui.Save = function(context) {
|
||||
context.container().select('.shaded')
|
||||
.remove();
|
||||
|
||||
var loading = iD.ui.loading(context.container(), t('uploading_changes'), true);
|
||||
var loading = iD.ui.loading(context.container(), t('save.uploading'), true);
|
||||
|
||||
connection.putChangeset(
|
||||
history.changes(),
|
||||
@@ -44,7 +44,7 @@ iD.ui.Save = function(context) {
|
||||
var desc = iD.ui.confirm()
|
||||
.select('.description');
|
||||
desc.append('h2')
|
||||
.text(t('save_error'));
|
||||
.text(t('save.error'));
|
||||
desc.append('p').text(err.responseText);
|
||||
} else {
|
||||
success(e, changeset_id);
|
||||
@@ -60,7 +60,7 @@ iD.ui.Save = function(context) {
|
||||
id: changeset_id,
|
||||
comment: e.comment
|
||||
})
|
||||
.call(iD.ui.success(connection)
|
||||
.call(iD.ui.Success(connection)
|
||||
.on('cancel', function() {
|
||||
modal.remove();
|
||||
}));
|
||||
@@ -81,11 +81,11 @@ iD.ui.Save = function(context) {
|
||||
.call(bootstrap.tooltip()
|
||||
.placement('bottom')
|
||||
.html(true)
|
||||
.title(iD.ui.tooltipHtml(t('save_help'), key)));
|
||||
.title(iD.ui.tooltipHtml(t('save.help'), key)));
|
||||
|
||||
button.append('span')
|
||||
.attr('class', 'label')
|
||||
.text(t('save'));
|
||||
.text(t('save.title'));
|
||||
|
||||
button.append('span')
|
||||
.attr('class', 'count');
|
||||
|
||||
+26
-15
@@ -1,21 +1,32 @@
|
||||
iD.ui.splash = function(selection) {
|
||||
var modal = iD.ui.modal(selection);
|
||||
iD.ui.Splash = function(context) {
|
||||
return function(selection) {
|
||||
if (context.storage('sawSplash'))
|
||||
return;
|
||||
|
||||
modal.select('.modal')
|
||||
.attr('class', 'modal-splash modal');
|
||||
context.storage('sawSplash', true);
|
||||
|
||||
var introModal = modal.select('.content')
|
||||
.append('div')
|
||||
.attr('class', 'modal-section fillL');
|
||||
var modal = iD.ui.modal(selection);
|
||||
|
||||
introModal.append('div')
|
||||
.attr('class','logo');
|
||||
modal.select('.modal')
|
||||
.attr('class', 'modal-splash modal');
|
||||
|
||||
introModal.append('div')
|
||||
.html("<h2 class>Welcome to the iD OpenStreetMap editor</h2><p>" +
|
||||
"This is development version 0.0.0-alpha1. " +
|
||||
"For more information see <a href='http://ideditor.com/'>ideditor.com</a>" +
|
||||
" and report bugs at <a href='https://github.com'>github.com.systemed/iD</a>.</p>");
|
||||
var introModal = modal.select('.content')
|
||||
.append('div')
|
||||
.attr('class', 'modal-section fillL');
|
||||
|
||||
return modal;
|
||||
introModal.append('div')
|
||||
.attr('class', 'logo');
|
||||
|
||||
var div = introModal.append('div');
|
||||
|
||||
div.append("h2")
|
||||
.text(t('splash.welcome'));
|
||||
|
||||
div.append("p")
|
||||
.html(t('splash.text', {
|
||||
version: iD.version,
|
||||
website: '<a href="http://ideditor.com/">ideditor.com</a>',
|
||||
github: '<a href="https://github.com/systemed/iD">github.com</a>'
|
||||
}));
|
||||
}
|
||||
};
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
iD.ui.success = function(connection) {
|
||||
iD.ui.Success = function(connection) {
|
||||
var event = d3.dispatch('cancel', 'save');
|
||||
|
||||
function success(selection) {
|
||||
|
||||
@@ -11,7 +11,7 @@ iD.ui.tagReference = function(selection) {
|
||||
.enter()
|
||||
.append('span')
|
||||
.attr('title', function(d) {
|
||||
return 'used with ' + d;
|
||||
return t('tag_reference.used_with', {type: d});
|
||||
})
|
||||
.attr('class', function(d) {
|
||||
return 'icon big icon-pre-text big-' + d;
|
||||
@@ -19,12 +19,12 @@ iD.ui.tagReference = function(selection) {
|
||||
header.append('span')
|
||||
.text(g('title'));
|
||||
|
||||
referenceBody = selection.append('div')
|
||||
var referenceBody = selection.append('div')
|
||||
.attr('class','modal-section fillL2');
|
||||
|
||||
referenceBody
|
||||
.append('h5')
|
||||
.text(t('description'));
|
||||
.text(t('tag_reference.description'));
|
||||
|
||||
if (selection.datum().image) {
|
||||
referenceBody
|
||||
@@ -36,6 +36,7 @@ iD.ui.tagReference = function(selection) {
|
||||
referenceBody
|
||||
.append('p')
|
||||
.text(g('description'));
|
||||
|
||||
referenceBody
|
||||
.append('a')
|
||||
.attr('target', '_blank')
|
||||
@@ -43,7 +44,7 @@ iD.ui.tagReference = function(selection) {
|
||||
return 'http://wiki.openstreetmap.org/wiki/' + d.title;
|
||||
})
|
||||
.text(function(d) {
|
||||
return d.title + ' on wiki.osm.org';
|
||||
return t('tag_reference.on_wiki', {tag: d.title});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
// hide class, which sets display=none, and a d3 transition for opacity.
|
||||
// this will cause blinking when called repeatedly, so check that the
|
||||
// value actually changes between calls.
|
||||
iD.ui.toggle = function(show, callback) {
|
||||
iD.ui.Toggle = function(show, callback) {
|
||||
return function(selection) {
|
||||
selection.style('opacity', show ? 0 : 1)
|
||||
.classed('hide', false)
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
iD.ui.userpanel = function(connection) {
|
||||
var event = d3.dispatch('logout', 'login');
|
||||
|
||||
function user(selection) {
|
||||
function update() {
|
||||
if (connection.authenticated()) {
|
||||
selection.style('display', 'block');
|
||||
connection.userDetails(function(err, user_details) {
|
||||
|
||||
selection.html('');
|
||||
|
||||
if (err) return;
|
||||
|
||||
// Link
|
||||
var userLink = selection.append('a')
|
||||
.attr('href', connection.url() + '/user/' +
|
||||
user_details.display_name)
|
||||
.attr('target', '_blank');
|
||||
|
||||
// Add thumbnail or dont
|
||||
if (user_details.image_url) {
|
||||
userLink.append('img')
|
||||
.attr('class', 'icon icon-pre-text user-icon')
|
||||
.attr('src', user_details.image_url);
|
||||
} else {
|
||||
userLink.append('span')
|
||||
.attr('class','icon avatar icon-pre-text');
|
||||
}
|
||||
|
||||
// Add user name
|
||||
userLink.append('span')
|
||||
.attr('class','label')
|
||||
.text(user_details.display_name);
|
||||
|
||||
selection
|
||||
.append('a')
|
||||
.attr('class', 'logout')
|
||||
.attr('href', '#')
|
||||
.text(t('logout'))
|
||||
.on('click.logout', function() {
|
||||
d3.event.preventDefault();
|
||||
event.logout();
|
||||
});
|
||||
});
|
||||
} else {
|
||||
selection.html('').style('display', 'none');
|
||||
}
|
||||
}
|
||||
connection.on('auth', update);
|
||||
update();
|
||||
}
|
||||
|
||||
return d3.rebind(user, event, 'on');
|
||||
};
|
||||
@@ -0,0 +1,40 @@
|
||||
iD.ui.Zoom = function(context) {
|
||||
var zooms = [{
|
||||
id: 'zoom-in',
|
||||
title: t('zoom.in'),
|
||||
action: context.zoomIn,
|
||||
key: '+'
|
||||
}, {
|
||||
id: 'zoom-out',
|
||||
title: t('zoom.out'),
|
||||
action: context.zoomOut,
|
||||
key: '-'
|
||||
}];
|
||||
|
||||
return function(selection) {
|
||||
var button = selection.selectAll('button')
|
||||
.data(zooms)
|
||||
.enter().append('button')
|
||||
.attr('tabindex', -1)
|
||||
.attr('class', function(d) { return d.id; })
|
||||
.on('click.editor', function(d) { d.action(); })
|
||||
.call(bootstrap.tooltip()
|
||||
.placement('right')
|
||||
.html(true)
|
||||
.title(function(d) {
|
||||
return iD.ui.tooltipHtml(d.title, d.key);
|
||||
}));
|
||||
|
||||
button.append('span')
|
||||
.attr('class', function(d) { return d.id + ' icon'; });
|
||||
|
||||
var keybinding = d3.keybinding('zoom')
|
||||
.on('+', function() { context.zoomIn(); })
|
||||
.on('-', function() { context.zoomOut(); })
|
||||
.on('⇧=', function() { context.zoomIn(); })
|
||||
.on('dash', function() { context.zoomOut(); });
|
||||
|
||||
d3.select(document)
|
||||
.call(keybinding);
|
||||
}
|
||||
};
|
||||
@@ -22,6 +22,10 @@ Let's look at an example line from `en.js`:
|
||||
no_results: "Couldn't locate a place named '{name}'"
|
||||
```
|
||||
|
||||
`no_results` is the translation _key_, and should not be translated.
|
||||
The text to the right of the colon, `"Couldn't locate a place named '{name}'"`,
|
||||
is the string to be translated.
|
||||
|
||||
The word in brackets, `{name}`, should **not** be translated into a new
|
||||
language: it's replaced with a place name when iD presents the text. So
|
||||
a French translation would look like
|
||||
@@ -30,6 +34,15 @@ a French translation would look like
|
||||
no_results: "Impossible de localiser l'endroit nommé '{name}'"
|
||||
```
|
||||
|
||||
For technical reasons, a few translation keys are quoted. For example:
|
||||
|
||||
```
|
||||
'delete': "Delete"
|
||||
```
|
||||
|
||||
Only translate the value to the right of the colon, not the quoted key on
|
||||
the left.
|
||||
|
||||
## License
|
||||
|
||||
Contributions to translations are under the same liberal
|
||||
|
||||
+99
-73
@@ -3,25 +3,21 @@ locale.da = {
|
||||
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"
|
||||
tail: "Klik på kortet for at indtegne et område fx en park, sø eller bygning."
|
||||
},
|
||||
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"
|
||||
tail: "Klik på koret for at indtegne en vej, sti eller rute."
|
||||
},
|
||||
add_point: {
|
||||
title: "Punkt",
|
||||
description: "Restauranter, mindesmærker og postkasser er punkter.",
|
||||
tail: "Klik på kortet for at tilføje et punkt.",
|
||||
key: "P"
|
||||
tail: "Klik på kortet for at tilføje et punkt."
|
||||
},
|
||||
browse: {
|
||||
title: "Browse",
|
||||
description: "Træk rundt og zoom på kortet.",
|
||||
key: "B"
|
||||
description: "Træk rundt og zoom på kortet."
|
||||
},
|
||||
draw_area: {
|
||||
tail: "Klik her for at tilføje punkter til dit område. Click the first point to finish the area."
|
||||
@@ -34,27 +30,27 @@ locale.da = {
|
||||
operations: {
|
||||
add: {
|
||||
annotation: {
|
||||
point: "Added a point.",
|
||||
vertex: "Added a node to a way."
|
||||
point: "Tilføjede et punkt.",
|
||||
vertex: "Tilføjede en node til en vej."
|
||||
}
|
||||
},
|
||||
start: {
|
||||
annotation: {
|
||||
line: "Started a line.",
|
||||
area: "Started an area."
|
||||
line: "Startede en linje.",
|
||||
area: "Startede et område."
|
||||
}
|
||||
},
|
||||
'continue': {
|
||||
annotation: {
|
||||
line: "Continued a line.",
|
||||
area: "Continued an area."
|
||||
line: "Forsatte en linje.",
|
||||
area: "Forsatte et område."
|
||||
}
|
||||
},
|
||||
cancel_draw: {
|
||||
annotation: "Cancelled drawing."
|
||||
annotation: "Annulleret indtegning."
|
||||
},
|
||||
change_tags: {
|
||||
annotation: "Changed tags."
|
||||
annotation: "Ændret tags."
|
||||
},
|
||||
circularize: {
|
||||
title: "Circularize",
|
||||
@@ -75,16 +71,16 @@ locale.da = {
|
||||
}
|
||||
},
|
||||
'delete': {
|
||||
title: "Delete",
|
||||
description: "Remove this from the map.",
|
||||
title: "Slet",
|
||||
description: "Fjern dette fra kortet.",
|
||||
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."
|
||||
point: "Slettede et punkt.",
|
||||
vertex: "Slettede en node fra en vej.",
|
||||
line: "Slettede en linje.",
|
||||
area: "Slettede et område.",
|
||||
relation: "Sletede en relation.",
|
||||
multiple: "Slettede {n} objekter."
|
||||
}
|
||||
},
|
||||
connect: {
|
||||
@@ -108,14 +104,14 @@ locale.da = {
|
||||
annotation: "Merged {n} lines."
|
||||
},
|
||||
move: {
|
||||
title: "Move",
|
||||
description: "Move this to a different location.",
|
||||
title: "Flyt",
|
||||
description: "Flyt dette til anden lokation.",
|
||||
key: "M",
|
||||
annotation: {
|
||||
point: "Moved a point.",
|
||||
vertex: "Moved a node in a way.",
|
||||
line: "Moved a line.",
|
||||
area: "Moved an area."
|
||||
point: "Flyttede et punktMoved.",
|
||||
vertex: "Flyttede en node i en vej.",
|
||||
line: "Flyttede en linje.",
|
||||
area: "Flyttede et område."
|
||||
}
|
||||
},
|
||||
reverse: {
|
||||
@@ -125,60 +121,21 @@ locale.da = {
|
||||
annotation: "Reversed a line."
|
||||
},
|
||||
split: {
|
||||
title: "Split",
|
||||
description: "Split this into two ways at this point.",
|
||||
title: "Del op",
|
||||
description: "Del op i to vej ved dette punkt.",
|
||||
key: "X",
|
||||
annotation: "Split a way."
|
||||
annotation: "Del op en vej."
|
||||
}
|
||||
},
|
||||
|
||||
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.",
|
||||
|
||||
just_edited: "Du har lige rettede i OpenStreetMap!",
|
||||
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: {
|
||||
@@ -189,13 +146,82 @@ locale.da = {
|
||||
reset: "nulstill"
|
||||
},
|
||||
|
||||
commit: {
|
||||
title: "Save Changes",
|
||||
description_placeholder: "Brief description of your contributions",
|
||||
upload_explanation: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.",
|
||||
save: "Save",
|
||||
cancel: "Cancel",
|
||||
warnings: "Warnings",
|
||||
modified: "Modified",
|
||||
deleted: "Deleted",
|
||||
created: "Created"
|
||||
},
|
||||
|
||||
contributors: {
|
||||
list: "Vis bidrag fra {users}",
|
||||
truncated_list: "Vis bidrag fra {users} og {count} andre"
|
||||
},
|
||||
|
||||
geocoder: {
|
||||
title: "Find et sted",
|
||||
placeholder: "find et sted",
|
||||
no_results: "Kunne ikke finde '{name}'"
|
||||
},
|
||||
|
||||
geolocate: {
|
||||
title: "Show My Location"
|
||||
},
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "Der er ingen dokumentation for denne tag kombination",
|
||||
no_documentation_key: "Der er ingen dokumenation tilgængelig for denne nøgle",
|
||||
new_tag: "Nyt Tag",
|
||||
edit_tags: "Ret tags",
|
||||
okay: "Ok",
|
||||
view_on_osm: "View on OSM"
|
||||
},
|
||||
|
||||
restore: {
|
||||
description: "You have unsaved changes from a previous editing session. Do you wish to restore these changes?",
|
||||
restore: "Restore",
|
||||
reset: "Reset"
|
||||
},
|
||||
|
||||
save: {
|
||||
title: "Gem",
|
||||
help: "Gem ændringer til OpenStreetMap gør dem synlige for andre brugere",
|
||||
error: "Der skete en fejl da du prøvede at gemme",
|
||||
uploading: "Gemmer nu ændringer til OpenStreetMap.",
|
||||
unsaved_changes: "Du har ændringer der ikke er gemt endnu",
|
||||
},
|
||||
|
||||
splash: {
|
||||
welcome: "Welcome to the iD OpenStreetMap editor",
|
||||
text: "This is development version {version}. For more information see {website} and report bugs at {github}."
|
||||
},
|
||||
|
||||
source_switch: {
|
||||
live: "live",
|
||||
dev: "dev"
|
||||
},
|
||||
|
||||
tag_reference: {
|
||||
description: "Description",
|
||||
on_wiki: "{tag} on wiki.osm.org",
|
||||
used_with: "used with {type}"
|
||||
},
|
||||
|
||||
zoom: {
|
||||
in: "Zoom ind",
|
||||
out: "Zoom ud"
|
||||
},
|
||||
|
||||
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}"
|
||||
}
|
||||
};
|
||||
|
||||
+67
-37
@@ -128,42 +128,32 @@ locale.de = {
|
||||
}
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Punkt ohne Attribute, der kein Teil einer Linie oder Fläche ist",
|
||||
untagged_line: "Linie ohne Attribute",
|
||||
untagged_area: "Fläche ohne Attribute",
|
||||
tag_suggests_area: "Das Attribut {tag} suggeriert eine Fläche, ist aber keine Fläche",
|
||||
deprecated_tags: "Veralterte Attribute: {tags}"
|
||||
},
|
||||
|
||||
save: "Speichern",
|
||||
unsaved_changes: "Ungespeicherte Änderugen vorhanden",
|
||||
save_help: "Speichere Änderungen auf OpenStreetMap, um diese für andere Nutzer sichtbar zu machen",
|
||||
no_changes: "Keine Änderungen zum Speichern vorhanden.",
|
||||
save_error: "Beim Speichern ist ein Fehler aufgetreten",
|
||||
uploading_changes: "Änderungen werden zu OpenStreetMap hochgeladen.",
|
||||
just_edited: "Sie haben gerade OpenStreetMap editiert!",
|
||||
okay: "OK",
|
||||
|
||||
"zoom-in": "Hineinzoomen",
|
||||
"zoom-out": "Herauszoomen",
|
||||
|
||||
nothing_to_undo: "Nichts zum Rückgängigmachen.",
|
||||
nothing_to_redo: "Nichts zum Wiederherstellen.",
|
||||
|
||||
just_edited: "Sie haben gerade OpenStreetMap editiert!",
|
||||
browser_notice: "Dieser Editor wird von Firefox, Chrome, Safari, Opera, und Internet Explorer (Version 9 und höher) unterstzützt. Bitte aktualisieren Sie Ihren Browser oder nutzen Sie Potlatch 2, um die Karte zu modifizieren.",
|
||||
view_on_osm: "Auf OSM anschauen",
|
||||
zoom_in_edit: "Hineinzoomen, um die Karte zu bearbeiten",
|
||||
logout: "Abmelden",
|
||||
report_a_bug: "Programmfehler melden",
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "Für dieses Attribut ist keine Dokumentation verfügbar.",
|
||||
no_documentation_key: "Für dises Schlüsselwort ist keine Dokumentation verfügbar",
|
||||
new_tag: "Neues Attribut"
|
||||
commit: {
|
||||
title: "Änderungen speichern",
|
||||
description_placeholder: "Eine kurze Beschreibung deiner Beiträge",
|
||||
upload_explanation: "Änderungen, die du als {user} hochlädst werden sichtbar auf allen Karte, die OpenStreetMap nutzen.",
|
||||
save: "Speichern",
|
||||
cancel: "Abbrechen",
|
||||
warnings: "Warnungen",
|
||||
modified: "Verändert",
|
||||
deleted: "Gelöscht",
|
||||
created: "Erstellt"
|
||||
},
|
||||
|
||||
view_on_osm: "Auf OSM anschauen",
|
||||
|
||||
zoom_in_edit: "Hineinzoomen, um die Karte zu bearbeiten",
|
||||
|
||||
edit_tags: "Attribute bearbeiten",
|
||||
contributors: {
|
||||
list: "Diese Kartenansicht enthält Beiträge von:",
|
||||
truncated_list: "Diese Kartenansicht enthält Beiträge von: {users} und {count} Anderen"
|
||||
},
|
||||
|
||||
geocoder: {
|
||||
title: "Suche einen Ort",
|
||||
@@ -171,15 +161,17 @@ locale.de = {
|
||||
no_results: "Der Ort '{name}' konnte nicht gefunden werden"
|
||||
},
|
||||
|
||||
description: "Beschreibung",
|
||||
geolocate: {
|
||||
title: "Zeige meine Position"
|
||||
},
|
||||
|
||||
report_a_bug: "Programmfehler melden",
|
||||
|
||||
logout: "Abmelden",
|
||||
|
||||
contributors: {
|
||||
list: "Diese Kartenansicht enthält Beiträge von:",
|
||||
truncated_list: "Diese Kartenansicht enthält Beiträge von: {users} und {count} Anderen"
|
||||
inspector: {
|
||||
no_documentation_combination: "Für dieses Attribut ist keine Dokumentation verfügbar.",
|
||||
no_documentation_key: "Für dises Schlüsselwort ist keine Dokumentation verfügbar",
|
||||
new_tag: "Neues Attribut",
|
||||
edit_tags: "Attribute bearbeiten",
|
||||
okay: "OK",
|
||||
view_on_osm: "auf OSM ansehen"
|
||||
},
|
||||
|
||||
layerswitcher: {
|
||||
@@ -190,8 +182,46 @@ locale.de = {
|
||||
reset: "Zurücksetzen"
|
||||
},
|
||||
|
||||
restore: {
|
||||
description: "Es gibt ungespeicherte Änderungen aus einer vorherigen Sitzung. Möchtest du diese Änderungen wiederherstellen?",
|
||||
restore: "Wiederherstellen",
|
||||
reset: "Zurücksetzen"
|
||||
},
|
||||
|
||||
save: {
|
||||
title: "Speichern",
|
||||
help: "Speichere Änderungen auf OpenStreetMap, um diese für andere Nutzer sichtbar zu machen",
|
||||
error: "Beim Speichern ist ein Fehler aufgetreten",
|
||||
uploading: "Änderungen werden zu OpenStreetMap hochgeladen.",
|
||||
unsaved_changes: "Ungespeicherte Änderugen vorhanden",
|
||||
},
|
||||
|
||||
splash: {
|
||||
welcome: "Willkommen beim iD OpenStreetMap editor",
|
||||
text: "Dies ist eine Entwicklungsversion {version}. Für weitere Informationen besuche {website} und melde Fehler unter {github}."
|
||||
},
|
||||
|
||||
source_switch: {
|
||||
live: "live",
|
||||
dev: "dev"
|
||||
},
|
||||
|
||||
tag_reference: {
|
||||
description: "Beschreibung",
|
||||
on_wiki: "{tag} auf wiki.osm.org",
|
||||
used_with: "benutzt mit {type}"
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Punkt ohne Attribute, der kein Teil einer Linie oder Fläche ist",
|
||||
untagged_line: "Linie ohne Attribute",
|
||||
untagged_area: "Fläche ohne Attribute",
|
||||
tag_suggests_area: "Das Attribut {tag} suggeriert eine Fläche, ist aber keine Fläche",
|
||||
deprecated_tags: "Veralterte Attribute: {tags}"
|
||||
},
|
||||
|
||||
zoom: {
|
||||
in: "Hineinzoomen",
|
||||
out: "Herauszoomen"
|
||||
}
|
||||
};
|
||||
|
||||
+66
-36
@@ -128,42 +128,32 @@ locale.en = {
|
||||
}
|
||||
},
|
||||
|
||||
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 In",
|
||||
"zoom-out": "Zoom Out",
|
||||
|
||||
nothing_to_undo: "Nothing to undo.",
|
||||
nothing_to_redo: "Nothing to redo.",
|
||||
|
||||
just_edited: "You Just Edited OpenStreetMap!",
|
||||
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.",
|
||||
view_on_osm: "View on OSM",
|
||||
zoom_in_edit: "zoom in to edit the map",
|
||||
logout: "logout",
|
||||
report_a_bug: "report a bug",
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "There is no documentation available for this tag combination",
|
||||
no_documentation_key: "There is no documentation available for this key",
|
||||
new_tag: "New Tag"
|
||||
commit: {
|
||||
title: "Save Changes",
|
||||
description_placeholder: "Brief description of your contributions",
|
||||
upload_explanation: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.",
|
||||
save: "Save",
|
||||
cancel: "Cancel",
|
||||
warnings: "Warnings",
|
||||
modified: "Modified",
|
||||
deleted: "Deleted",
|
||||
created: "Created"
|
||||
},
|
||||
|
||||
view_on_osm: "View on OSM",
|
||||
|
||||
zoom_in_edit: "zoom in to edit the map",
|
||||
|
||||
edit_tags: "Edit tags",
|
||||
contributors: {
|
||||
list: "Viewing contributions by {users}",
|
||||
truncated_list: "Viewing contributions by {users} and {count} others"
|
||||
},
|
||||
|
||||
geocoder: {
|
||||
title: "Find A Place",
|
||||
@@ -171,11 +161,18 @@ locale.en = {
|
||||
no_results: "Couldn't locate a place named '{name}'"
|
||||
},
|
||||
|
||||
description: "Description",
|
||||
geolocate: {
|
||||
title: "Show My Location"
|
||||
},
|
||||
|
||||
logout: "logout",
|
||||
|
||||
report_a_bug: "report a bug",
|
||||
inspector: {
|
||||
no_documentation_combination: "There is no documentation available for this tag combination",
|
||||
no_documentation_key: "There is no documentation available for this key",
|
||||
new_tag: "New Tag",
|
||||
edit_tags: "Edit tags",
|
||||
okay: "Okay",
|
||||
view_on_osm: "View on OSM"
|
||||
},
|
||||
|
||||
layerswitcher: {
|
||||
title: "Background",
|
||||
@@ -185,13 +182,46 @@ locale.en = {
|
||||
reset: "reset"
|
||||
},
|
||||
|
||||
contributors: {
|
||||
list: "Viewing contributions by {users}",
|
||||
truncated_list: "Viewing contributions by {users} and {count} others"
|
||||
restore: {
|
||||
description: "You have unsaved changes from a previous editing session. Do you wish to restore these changes?",
|
||||
restore: "Restore",
|
||||
reset: "Reset"
|
||||
},
|
||||
|
||||
save: {
|
||||
title: "Save",
|
||||
help: "Save changes to OpenStreetMap, making them visible to other users",
|
||||
error: "An error occurred while trying to save",
|
||||
uploading: "Uploading changes to OpenStreetMap.",
|
||||
unsaved_changes: "You have unsaved changes"
|
||||
},
|
||||
|
||||
splash: {
|
||||
welcome: "Welcome to the iD OpenStreetMap editor",
|
||||
text: "This is development version {version}. For more information see {website} and report bugs at {github}."
|
||||
},
|
||||
|
||||
source_switch: {
|
||||
live: "live",
|
||||
dev: "dev"
|
||||
},
|
||||
|
||||
tag_reference: {
|
||||
description: "Description",
|
||||
on_wiki: "{tag} on wiki.osm.org",
|
||||
used_with: "used with {type}"
|
||||
},
|
||||
|
||||
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}"
|
||||
},
|
||||
|
||||
zoom: {
|
||||
in: "Zoom In",
|
||||
out: "Zoom Out"
|
||||
}
|
||||
};
|
||||
|
||||
+66
-36
@@ -128,42 +128,32 @@ locale.es = {
|
||||
}
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Punto sin etiquetar que no es parte de una línea ni zona.", //"Untagged point which is not part of a line or area",
|
||||
untagged_line: "Línea sin etiquetar", //"Untagged line",
|
||||
untagged_area: "Zona sin etiquetar", //"Untagged area",
|
||||
tag_suggests_area: "La etiqueta {tag} sugiere que esta línea debería ser una zona, pero no lo es.", //"The tag {tag} suggests line should be area, but it is not an area",
|
||||
deprecated_tags: "Etiquetas obsoletas: {tags}" //"Deprecated tags: {tags}"
|
||||
},
|
||||
|
||||
save: "Guardar", //"Save",
|
||||
unsaved_changes: "Tienes cambios sin guardar", //"You have unsaved changes",
|
||||
save_help: "Guardar los cambios en OpenStreetMap haciéndolos visibles a otros usuarios", //"Save changes to OpenStreetMap, making them visible to other users",
|
||||
no_changes: "No tienes cambios sin guardar", //"You don't have any changes to save.",
|
||||
save_error: "Ha ocurrido un error tratando de guardar", //"An error occurred while trying to save",
|
||||
uploading_changes: "Subiendo cambios a OpenStreetMap", //"Uploading changes to OpenStreetMap.",
|
||||
just_edited: "Acabas de editar OpenStreetMap!", //"You Just Edited OpenStreetMap!",
|
||||
okay: "OK", //"Okay",
|
||||
|
||||
"zoom-in": "Aumentar", // "Zoom In",
|
||||
"zoom-out": "Alejar", //"Zoom Out",
|
||||
|
||||
nothing_to_undo: "Nada para deshacer", //"Nothing to undo.",
|
||||
nothing_to_redo: "Nada para rehacer", //"Nothing to redo.",
|
||||
|
||||
just_edited: "Acabas de editar OpenStreetMap!", //"You Just Edited OpenStreetMap!",
|
||||
browser_notice: "Este editor soporta Firefox, Chrome, Safari, Opera e Internet Explorer 9 o superior. Por favor actualiza tu navegador o utiliza Potlatch 2 para editar el mapa.", //"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.",
|
||||
view_on_osm: "Ver en OSM", //"View on OSM",
|
||||
zoom_in_edit: "acercar para editar el mapa", //"zoom in to edit the map",
|
||||
logout: "cerrar sesión", //"logout",
|
||||
report_a_bug: "reportar un error", //"report a bug",
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "No hay documentación disponible para esta combinación de etiquetas", //"This is no documentation available for this tag combination",
|
||||
no_documentation_key: "No hay documentación disponible para esta tecla", //"This is no documentation available for this key",
|
||||
new_tag: "Nueve etiqueta" //"New Tag"
|
||||
commit: {
|
||||
title: "Save Changes",
|
||||
description_placeholder: "Brief description of your contributions",
|
||||
upload_explanation: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.",
|
||||
save: "Save",
|
||||
cancel: "Cancel",
|
||||
warnings: "Warnings",
|
||||
modified: "Modified",
|
||||
deleted: "Deleted",
|
||||
created: "Created"
|
||||
},
|
||||
|
||||
view_on_osm: "Ver en OSM", //"View on OSM",
|
||||
|
||||
zoom_in_edit: "acercar para editar el mapa", //"zoom in to edit the map",
|
||||
|
||||
edit_tags: "Editar etiquetas", //"Edit tags",
|
||||
contributors: {
|
||||
list: "Viendo las contribuciones de usuarios {users}", //"Viewing contributions by {users}",
|
||||
truncated_list: "Viendo las contribuciones de {users} y {count} más" //"Viewing contributions by {users} and {count} others"
|
||||
},
|
||||
|
||||
geocoder: {
|
||||
title: "Encontrar un lugar", //"Find A Place",
|
||||
@@ -171,11 +161,18 @@ locale.es = {
|
||||
no_results: "No se pudo encontrar el lugar llamado '{name}'" //"Couldn't locate a place named '{name}'"
|
||||
},
|
||||
|
||||
description: "Descripción", //"Description",
|
||||
geolocate: {
|
||||
title: "Show My Location"
|
||||
},
|
||||
|
||||
logout: "cerrar sesión", //"logout",
|
||||
|
||||
report_a_bug: "reportar un error", //"report a bug",
|
||||
inspector: {
|
||||
no_documentation_combination: "No hay documentación disponible para esta combinación de etiquetas", //"This is no documentation available for this tag combination",
|
||||
no_documentation_key: "No hay documentación disponible para esta tecla", //"This is no documentation available for this key",
|
||||
new_tag: "Nueve etiqueta", //"New Tag"
|
||||
edit_tags: "Editar etiquetas", //"Edit tags",
|
||||
okay: "OK",
|
||||
view_on_osm: "View on OSM"
|
||||
},
|
||||
|
||||
layerswitcher: {
|
||||
title: "Fondo", //"Background",
|
||||
@@ -185,13 +182,46 @@ locale.es = {
|
||||
reset: "reiniciar" //"reset"
|
||||
},
|
||||
|
||||
contributors: {
|
||||
list: "Viendo las contribuciones de usuarios {users}", //"Viewing contributions by {users}",
|
||||
truncated_list: "Viendo las contribuciones de {users} y {count} más" //"Viewing contributions by {users} and {count} others"
|
||||
restore: {
|
||||
description: "You have unsaved changes from a previous editing session. Do you wish to restore these changes?",
|
||||
restore: "Restore",
|
||||
reset: "Reset"
|
||||
},
|
||||
|
||||
save: {
|
||||
title: "Guardar", //"Save",
|
||||
help: "Guardar los cambios en OpenStreetMap haciéndolos visibles a otros usuarios", //"Save changes to OpenStreetMap, making them visible to other users",
|
||||
error: "Ha ocurrido un error tratando de guardar", //"An error occurred while trying to save",
|
||||
uploading: "Subiendo cambios a OpenStreetMap", //"Uploading changes to OpenStreetMap.",
|
||||
unsaved_changes: "Tienes cambios sin guardar" //"You have unsaved changes",
|
||||
},
|
||||
|
||||
splash: {
|
||||
welcome: "Welcome to the iD OpenStreetMap editor",
|
||||
text: "This is development version {version}. For more information see {website} and report bugs at {github}."
|
||||
},
|
||||
|
||||
source_switch: {
|
||||
live: "en vivo", //"live",
|
||||
dev: "dev"
|
||||
},
|
||||
|
||||
tag_reference: {
|
||||
description: "Descripción",
|
||||
on_wiki: "{tag} on wiki.osm.org",
|
||||
used_with: "used with {type}"
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Punto sin etiquetar que no es parte de una línea ni zona.", //"Untagged point which is not part of a line or area",
|
||||
untagged_line: "Línea sin etiquetar", //"Untagged line",
|
||||
untagged_area: "Zona sin etiquetar", //"Untagged area",
|
||||
tag_suggests_area: "La etiqueta {tag} sugiere que esta línea debería ser una zona, pero no lo es.", //"The tag {tag} suggests line should be area, but it is not an area",
|
||||
deprecated_tags: "Etiquetas obsoletas: {tags}" //"Deprecated tags: {tags}"
|
||||
},
|
||||
|
||||
zoom: {
|
||||
in: "Aumentar", // "Zoom In",
|
||||
out: "Alejar" //"Zoom Out",
|
||||
}
|
||||
};
|
||||
|
||||
+70
-40
@@ -128,60 +128,52 @@ locale.fr = {
|
||||
}
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Point sans aucun tag ne faisant partie ni d'une ligne, ni d'un polygone",
|
||||
untagged_line: "Ligne sans aucun tag",
|
||||
untagged_area: "Polygone sans aucun tag",
|
||||
tag_suggests_area: "Ce tag {tag} suppose que cette ligne devrait être un polygone, or ce n'est pas le cas",
|
||||
deprecated_tags: "Tags obsolètes : {tags}"
|
||||
},
|
||||
|
||||
save: "Sauvegarder",
|
||||
unsaved_changes: "Vous avez des modifications non enregistrées",
|
||||
save_help: "Envoie des modifications au serveyr OpenStreetMap afin qu'elles soient visibles par les autres contributeurs.",
|
||||
no_changes: "Vous n'avez aucune modification à enregistrer.",
|
||||
save_error: "Une erreur est survenue lors de l'enregistrement des données",
|
||||
uploading_changes: "Envoie des modifications vers OpenStreetMap.",
|
||||
just_edited: "Vous venez de participer à OpenStreetMap!",
|
||||
okay: "Okay",
|
||||
|
||||
"zoom-in": "Zoomer",
|
||||
"zoom-out": "Dézoomer",
|
||||
|
||||
nothing_to_undo: "Rien à annuler.",
|
||||
nothing_to_redo: "Rien à refaire.",
|
||||
|
||||
just_edited: "Vous venez de participer à OpenStreetMap!",
|
||||
browser_notice: "Les navigateurs supportés par cet éditeur sont : Firefox, Chrome, Safari, Opera et Internet Explorer (version 9 et supérieures). Pour éditer la carte, veuillez mettre à jour votre navigateur ou utiliser Potlatch 2.",
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "Aucune documentation n'est disponible pour cette combinaison de tag",
|
||||
no_documentation_key: "Aucune documentation n'est disponible pour cette clé",
|
||||
new_tag: "Nouveau tag"
|
||||
},
|
||||
|
||||
view_on_osm: "Consulter dans OSM",
|
||||
|
||||
zoom_in_edit: "Zoomer pour modifier la carte",
|
||||
|
||||
edit_tags: "Editer les tags",
|
||||
|
||||
geocoder: {
|
||||
title: "Trouver un emplacement",
|
||||
placeholder: "Trouver un endroit",
|
||||
no_results: "Impossible de localiser l'endroit nommé '{name}'"
|
||||
},
|
||||
|
||||
description: "Déscription",
|
||||
|
||||
logout: "Déconnexion",
|
||||
|
||||
report_a_bug: "Signaler un bug",
|
||||
|
||||
commit: {
|
||||
title: "Save Changes",
|
||||
description_placeholder: "Brief description of your contributions",
|
||||
upload_explanation: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.",
|
||||
save: "Save",
|
||||
cancel: "Cancel",
|
||||
warnings: "Warnings",
|
||||
modified: "Modified",
|
||||
deleted: "Deleted",
|
||||
created: "Created"
|
||||
},
|
||||
|
||||
contributors: {
|
||||
list: "Consulter les contributions de {users}",
|
||||
truncated_list: "Consulter les contributions de {users} et {count} les autres"
|
||||
},
|
||||
|
||||
geocoder: {
|
||||
title: "Trouver un emplacement",
|
||||
placeholder: "Trouver un endroit",
|
||||
no_results: "Impossible de localiser l'endroit nommé '{name}'"
|
||||
},
|
||||
|
||||
geolocate: {
|
||||
title: "Show My Location"
|
||||
},
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "Aucune documentation n'est disponible pour cette combinaison de tag",
|
||||
no_documentation_key: "Aucune documentation n'est disponible pour cette clé",
|
||||
new_tag: "Nouveau tag",
|
||||
edit_tags: "Editer les tags",
|
||||
okay: "Okay",
|
||||
view_on_osm: "View on OSM"
|
||||
},
|
||||
|
||||
layerswitcher: {
|
||||
title: "Fond de carte",
|
||||
description: "Paramètres du fond de carte",
|
||||
@@ -190,8 +182,46 @@ locale.fr = {
|
||||
reset: "reset"
|
||||
},
|
||||
|
||||
restore: {
|
||||
description: "You have unsaved changes from a previous editing session. Do you wish to restore these changes?",
|
||||
restore: "Restore",
|
||||
reset: "Reset"
|
||||
},
|
||||
|
||||
save: {
|
||||
title: "Sauvegarder",
|
||||
help: "Envoie des modifications au serveyr OpenStreetMap afin qu'elles soient visibles par les autres contributeurs.",
|
||||
error: "Une erreur est survenue lors de l'enregistrement des données",
|
||||
uploading: "Envoie des modifications vers OpenStreetMap.",
|
||||
unsaved_changes: "Vous avez des modifications non enregistrées"
|
||||
},
|
||||
|
||||
splash: {
|
||||
welcome: "Welcome to the iD OpenStreetMap editor",
|
||||
text: "This is development version {version}. For more information see {website} and report bugs at {github}."
|
||||
},
|
||||
|
||||
source_switch: {
|
||||
live: "live",
|
||||
dev: "dev"
|
||||
},
|
||||
|
||||
tag_reference: {
|
||||
description: "Déscription",
|
||||
on_wiki: "{tag} on wiki.osm.org",
|
||||
used_with: "used with {type}"
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Point sans aucun tag ne faisant partie ni d'une ligne, ni d'un polygone",
|
||||
untagged_line: "Ligne sans aucun tag",
|
||||
untagged_area: "Polygone sans aucun tag",
|
||||
tag_suggests_area: "Ce tag {tag} suppose que cette ligne devrait être un polygone, or ce n'est pas le cas",
|
||||
deprecated_tags: "Tags obsolètes : {tags}"
|
||||
},
|
||||
|
||||
zoom: {
|
||||
in: "Zoomer",
|
||||
out: "Dézoomer"
|
||||
}
|
||||
};
|
||||
|
||||
+66
-36
@@ -128,42 +128,32 @@ locale.ja = {
|
||||
}
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "ポイントにタグが付与されておらず、ラインやエリアの一部でもありません",
|
||||
untagged_line: "ラインにタグが付与されていません",
|
||||
untagged_area: "エリアにタグが付与されていません",
|
||||
tag_suggests_area: "ラインに {tag} タグが付与されています。エリアで描かれるべきです",
|
||||
deprecated_tags: "タグの重複: {tags}"
|
||||
},
|
||||
|
||||
save: "Save",
|
||||
unsaved_changes: "変更が保存されていません",
|
||||
save_help: "変更点をOpenStreetMapに保存し、他ユーザが確認できるようにします",
|
||||
no_changes: "変更点がありません",
|
||||
save_error: "データ保存中にエラーが発生しました",
|
||||
uploading_changes: "変更点をOpenStreetMapへアップロードしています",
|
||||
just_edited: "OpenStreetMap編集完了!",
|
||||
okay: "OK",
|
||||
|
||||
"zoom-in": "ズームイン",
|
||||
"zoom-out": "ズームアウト",
|
||||
|
||||
nothing_to_undo: "やり直す変更点がありません",
|
||||
nothing_to_redo: "やり直した変更点がありません",
|
||||
|
||||
just_edited: "OpenStreetMap編集完了!",
|
||||
browser_notice: "このエディタは Firefox, Chrome, Safari, Opera, および Internet Explorer 9 以上をサポートしています。ブラウザのバージョンを更新するか、Potlatch 2を使用して編集してください",
|
||||
view_on_osm: "OSMで確認",
|
||||
zoom_in_edit: "編集するにはさらに地図を拡大してください",
|
||||
logout: "ログアウト",
|
||||
report_a_bug: "バグを報告",
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "このタグの組み合わせに関する説明文はありません",
|
||||
no_documentation_key: "このキーに対する説明文はありません",
|
||||
new_tag: "新規タグ"
|
||||
commit: {
|
||||
title: "Save Changes",
|
||||
description_placeholder: "Brief description of your contributions",
|
||||
upload_explanation: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.",
|
||||
save: "Save",
|
||||
cancel: "Cancel",
|
||||
warnings: "Warnings",
|
||||
modified: "Modified",
|
||||
deleted: "Deleted",
|
||||
created: "Created"
|
||||
},
|
||||
|
||||
view_on_osm: "OSMで確認",
|
||||
|
||||
zoom_in_edit: "編集するにはさらに地図を拡大してください",
|
||||
|
||||
edit_tags: "タグを編集",
|
||||
contributors: {
|
||||
list: "{users} による編集履歴を確認",
|
||||
truncated_list: "{users} とその他 {count} 人による編集履歴を表示"
|
||||
},
|
||||
|
||||
geocoder: {
|
||||
title: "特定地点を検索",
|
||||
@@ -171,11 +161,18 @@ locale.ja = {
|
||||
no_results: "'{name}' という名称の地点が見つかりません"
|
||||
},
|
||||
|
||||
description: "説明",
|
||||
geolocate: {
|
||||
title: "Show My Location"
|
||||
},
|
||||
|
||||
logout: "ログアウト",
|
||||
|
||||
report_a_bug: "バグを報告",
|
||||
inspector: {
|
||||
no_documentation_combination: "このタグの組み合わせに関する説明文はありません",
|
||||
no_documentation_key: "このキーに対する説明文はありません",
|
||||
new_tag: "新規タグ",
|
||||
edit_tags: "タグを編集",
|
||||
okay: "OK",
|
||||
view_on_osm: "View on OSM"
|
||||
},
|
||||
|
||||
layerswitcher: {
|
||||
title: "背景画像",
|
||||
@@ -185,13 +182,46 @@ locale.ja = {
|
||||
reset: "設定リセット"
|
||||
},
|
||||
|
||||
contributors: {
|
||||
list: "{users} による編集履歴を確認",
|
||||
truncated_list: "{users} とその他 {count} 人による編集履歴を表示"
|
||||
restore: {
|
||||
description: "You have unsaved changes from a previous editing session. Do you wish to restore these changes?",
|
||||
restore: "Restore",
|
||||
reset: "Reset"
|
||||
},
|
||||
|
||||
save: {
|
||||
title: "Save",
|
||||
help: "変更点をOpenStreetMapに保存し、他ユーザが確認できるようにします",
|
||||
error: "データ保存中にエラーが発生しました",
|
||||
uploading: "変更点をOpenStreetMapへアップロードしています",
|
||||
unsaved_changes: "変更が保存されていません"
|
||||
},
|
||||
|
||||
splash: {
|
||||
welcome: "Welcome to the iD OpenStreetMap editor",
|
||||
text: "This is development version {version}. For more information see {website} and report bugs at {github}."
|
||||
},
|
||||
|
||||
source_switch: {
|
||||
live: "本番サーバ",
|
||||
dev: "開発サーバ"
|
||||
},
|
||||
|
||||
tag_reference: {
|
||||
description: "説明",
|
||||
on_wiki: "{tag} on wiki.osm.org",
|
||||
used_with: "used with {type}"
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "ポイントにタグが付与されておらず、ラインやエリアの一部でもありません",
|
||||
untagged_line: "ラインにタグが付与されていません",
|
||||
untagged_area: "エリアにタグが付与されていません",
|
||||
tag_suggests_area: "ラインに {tag} タグが付与されています。エリアで描かれるべきです",
|
||||
deprecated_tags: "タグの重複: {tags}"
|
||||
},
|
||||
|
||||
zoom: {
|
||||
in: "ズームイン",
|
||||
out: "ズームアウト"
|
||||
}
|
||||
};
|
||||
|
||||
+66
-36
@@ -128,42 +128,32 @@ locale.lv = {
|
||||
}
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Neapzīmēts punkts",
|
||||
untagged_line: "Neapzīmēta līnija",
|
||||
untagged_area: "Neapzīmēts apgabals",
|
||||
tag_suggests_area: "Apzīmējums {tag} parasti tiek lietots apgabaliem, bet objekts nav apgabals",
|
||||
deprecated_tags: "Novecojuši apzīmējumi: {tags}"
|
||||
},
|
||||
|
||||
save: "Saglabāt",
|
||||
unsaved_changes: "Jums ir nesaglabātas izmaiņas",
|
||||
save_help: "Saglabā izmaiņas, padarot tās redzamas citiem",
|
||||
no_changes: "Jums nav izmaiņu, ko saglabāt",
|
||||
save_error: "Kļūda. Nevarēja saglabāt maiņas",
|
||||
uploading_changes: "Augšupielādē",
|
||||
just_edited: "Jūs nupat rediģējāt OpenStreetMap",
|
||||
okay: "Labi",
|
||||
|
||||
"zoom-in": "Pietuvināt",
|
||||
"zoom-out": "Attālināt",
|
||||
|
||||
nothing_to_undo: "Nav nekā, ko atcelt",
|
||||
nothing_to_redo: "Nav nekā, ko atsaukt",
|
||||
|
||||
just_edited: "Jūs nupat rediģējāt OpenStreetMap",
|
||||
browser_notice: "Šis redaktors tiek atbalstīts ar Firefox, Chrome, Safari, Opera, un Internet Explorer 9 un jaunāku. Lūdzu, atjauniniet savu pārlūkprogrammu vai izmantojiet Potlatch 2 to kartes rediģēšanai",
|
||||
view_on_osm: "Apskatīt OSM lapu",
|
||||
zoom_in_edit: "pietuviniet, lai rediģētu karti",
|
||||
logout: "atslēgties",
|
||||
report_a_bug: "ziņot par kļūdu",
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "Šai apzīmējumu kombinācijai nav piejama dokumetācija",
|
||||
no_documentation_key: "There is no documentation available for this key",
|
||||
new_tag: "Jauns apzīmējums"
|
||||
commit: {
|
||||
title: "Save Changes",
|
||||
description_placeholder: "Brief description of your contributions",
|
||||
upload_explanation: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.",
|
||||
save: "Save",
|
||||
cancel: "Cancel",
|
||||
warnings: "Warnings",
|
||||
modified: "Modified",
|
||||
deleted: "Deleted",
|
||||
created: "Created"
|
||||
},
|
||||
|
||||
view_on_osm: "Apskatīt OSM lapu",
|
||||
|
||||
zoom_in_edit: "pietuviniet, lai rediģētu karti",
|
||||
|
||||
edit_tags: "Rediģēt apzīmējumus",
|
||||
contributors: {
|
||||
list: "{users} papildinājumi redzami",
|
||||
truncated_list: "{users} un {count} citu papildinājumi redzami"
|
||||
},
|
||||
|
||||
geocoder: {
|
||||
title: "Atrast vietu",
|
||||
@@ -171,11 +161,18 @@ locale.lv = {
|
||||
no_results: "Nevar atrast vietu '{name}'"
|
||||
},
|
||||
|
||||
description: "Apraksts",
|
||||
geolocate: {
|
||||
title: "Show My Location"
|
||||
},
|
||||
|
||||
logout: "atslēgties",
|
||||
|
||||
report_a_bug: "ziņot par kļūdu",
|
||||
inspector: {
|
||||
no_documentation_combination: "Šai apzīmējumu kombinācijai nav piejama dokumetācija",
|
||||
no_documentation_key: "There is no documentation available for this key",
|
||||
new_tag: "Jauns apzīmējums",
|
||||
edit_tags: "Rediģēt apzīmējumus",
|
||||
okay: "Labi",
|
||||
view_on_osm: "View on OSM"
|
||||
},
|
||||
|
||||
layerswitcher: {
|
||||
title: "Fons",
|
||||
@@ -185,13 +182,46 @@ locale.lv = {
|
||||
reset: "Pārstatīt"
|
||||
},
|
||||
|
||||
contributors: {
|
||||
list: "{users} papildinājumi redzami",
|
||||
truncated_list: "{users} un {count} citu papildinājumi redzami"
|
||||
restore: {
|
||||
description: "You have unsaved changes from a previous editing session. Do you wish to restore these changes?",
|
||||
restore: "Restore",
|
||||
reset: "Reset"
|
||||
},
|
||||
|
||||
save: {
|
||||
title: "Saglabāt",
|
||||
help: "Saglabā izmaiņas, padarot tās redzamas citiem",
|
||||
error: "Kļūda. Nevarēja saglabāt maiņas",
|
||||
uploading: "Augšupielādē",
|
||||
unsaved_changes: "Jums ir nesaglabātas izmaiņas"
|
||||
},
|
||||
|
||||
splash: {
|
||||
welcome: "Welcome to the iD OpenStreetMap editor",
|
||||
text: "This is development version {version}. For more information see {website} and report bugs at {github}."
|
||||
},
|
||||
|
||||
source_switch: {
|
||||
live: "live",
|
||||
dev: "dev"
|
||||
},
|
||||
|
||||
tag_reference: {
|
||||
description: "Apraksts",
|
||||
on_wiki: "{tag} on wiki.osm.org",
|
||||
used_with: "used with {type}"
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Neapzīmēts punkts",
|
||||
untagged_line: "Neapzīmēta līnija",
|
||||
untagged_area: "Neapzīmēts apgabals",
|
||||
tag_suggests_area: "Apzīmējums {tag} parasti tiek lietots apgabaliem, bet objekts nav apgabals",
|
||||
deprecated_tags: "Novecojuši apzīmējumi: {tags}"
|
||||
},
|
||||
|
||||
zoom: {
|
||||
in: "Pietuvināt",
|
||||
out: "Attālināt"
|
||||
}
|
||||
};
|
||||
|
||||
+66
-36
@@ -128,42 +128,32 @@ locale.tr = {
|
||||
}
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Herhangi bir çizgi ya da alana bağlantısı olmayan ve etiketlenmemiş bir nokta.",
|
||||
untagged_line: "Etiketlenmemiş çizgi",
|
||||
untagged_area: "Etiketlenmemiş alan",
|
||||
tag_suggests_area: "{tag} etiketi buranın alan olmasını tavsiye ediyor ama alan değil.",
|
||||
deprecated_tags: "Kullanımdan kaldırılmış etiket : {tags}"
|
||||
},
|
||||
|
||||
save: "Kaydet",
|
||||
unsaved_changes: "Kaydedilmemiş değişiklikleriniz var",
|
||||
save_help: "Diğer kullanıcıların yaptığınız değişiklikleri görmesi için OpenStreetMap'e kaydediniz",
|
||||
no_changes: "Kaydedecek hiçbir değişikliğiniz yok",
|
||||
save_error: "Kaydederken bir hata oluştu",
|
||||
uploading_changes: "Değişiklikleriniz OpenStreetMap'e gönderiliyor.",
|
||||
just_edited: "Şu an OpenStreetMap'de bir değişiklik yaptınız!",
|
||||
okay: "Tamam",
|
||||
|
||||
"zoom-in": "Yaklaş",
|
||||
"zoom-out": "Uzaklaş",
|
||||
|
||||
nothing_to_undo: "Geri alınacak birşey yok.",
|
||||
nothing_to_redo: "Tekrar yapılacak birşey yok.",
|
||||
|
||||
just_edited: "Şu an OpenStreetMap'de bir değişiklik yaptınız!",
|
||||
browser_notice: "Bu editör sadece Firefox, Chrome, Safari, Opera ile Internet Explorer 9 ve üstü tarayıcılarda çalışmaktadır. Lütfen tarayınıcı güncelleyin ya da Potlatch 2'yi kullanarak haritada güncelleme yapınız.",
|
||||
view_on_osm: "OSM üstünde Gör",
|
||||
zoom_in_edit: "Güncelleme yapmak için haritada yakınlaşmalısınız",
|
||||
logout: "Çıkış",
|
||||
report_a_bug: "Hata rapor et",
|
||||
|
||||
inspector: {
|
||||
no_documentation_combination: "Bu etiket kombinasyonu için dökümantasyon bulunmamaktadır.",
|
||||
no_documentation_key: "Bu anahtar için dökümantasyon bulunmamaktadır.",
|
||||
new_tag: "Yeni Etiket"
|
||||
commit: {
|
||||
title: "Save Changes",
|
||||
description_placeholder: "Brief description of your contributions",
|
||||
upload_explanation: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.",
|
||||
save: "Save",
|
||||
cancel: "Cancel",
|
||||
warnings: "Warnings",
|
||||
modified: "Modified",
|
||||
deleted: "Deleted",
|
||||
created: "Created"
|
||||
},
|
||||
|
||||
view_on_osm: "OSM üstünde Gör",
|
||||
|
||||
zoom_in_edit: "Güncelleme yapmak için haritada yakınlaşmalısınız",
|
||||
|
||||
edit_tags: "Etiketleri güncelle",
|
||||
contributors: {
|
||||
list: "{users} tarafından yapılan katkılar görünmektedir",
|
||||
truncated_list: "{users} ve diğer {count} tarafından yapılan katkılar görünmektedir"
|
||||
},
|
||||
|
||||
geocoder: {
|
||||
title: "Bir Yer Bul",
|
||||
@@ -171,11 +161,18 @@ locale.tr = {
|
||||
no_results: "'{name}' ismindeki yer bulunamadı"
|
||||
},
|
||||
|
||||
description: "Açıklama",
|
||||
geolocate: {
|
||||
title: "Show My Location"
|
||||
},
|
||||
|
||||
logout: "Çıkış",
|
||||
|
||||
report_a_bug: "Hata rapor et",
|
||||
inspector: {
|
||||
no_documentation_combination: "Bu etiket kombinasyonu için dökümantasyon bulunmamaktadır.",
|
||||
no_documentation_key: "Bu anahtar için dökümantasyon bulunmamaktadır.",
|
||||
new_tag: "Yeni Etiket",
|
||||
edit_tags: "Etiketleri güncelle",
|
||||
okay: "Tamam",
|
||||
view_on_osm: "View on OSM"
|
||||
},
|
||||
|
||||
layerswitcher: {
|
||||
title: "Arkaplan",
|
||||
@@ -185,13 +182,46 @@ locale.tr = {
|
||||
reset: "Sıfırla"
|
||||
},
|
||||
|
||||
contributors: {
|
||||
list: "{users} tarafından yapılan katkılar görünmektedir",
|
||||
truncated_list: "{users} ve diğer {count} tarafından yapılan katkılar görünmektedir"
|
||||
restore: {
|
||||
description: "You have unsaved changes from a previous editing session. Do you wish to restore these changes?",
|
||||
restore: "Restore",
|
||||
reset: "Reset"
|
||||
},
|
||||
|
||||
save: {
|
||||
title: "Kaydet",
|
||||
help: "Diğer kullanıcıların yaptığınız değişiklikleri görmesi için OpenStreetMap'e kaydediniz",
|
||||
error: "Kaydederken bir hata oluştu",
|
||||
uploading: "Değişiklikleriniz OpenStreetMap'e gönderiliyor.",
|
||||
unsaved_changes: "Kaydedilmemiş değişiklikleriniz var"
|
||||
},
|
||||
|
||||
splash: {
|
||||
welcome: "Welcome to the iD OpenStreetMap editor",
|
||||
text: "This is development version {version}. For more information see {website} and report bugs at {github}."
|
||||
},
|
||||
|
||||
source_switch: {
|
||||
live: "canlı",
|
||||
dev: "geliştirme"
|
||||
},
|
||||
|
||||
tag_reference: {
|
||||
description: "Açıklama",
|
||||
on_wiki: "{tag} on wiki.osm.org",
|
||||
used_with: "used with {type}"
|
||||
},
|
||||
|
||||
validations: {
|
||||
untagged_point: "Herhangi bir çizgi ya da alana bağlantısı olmayan ve etiketlenmemiş bir nokta.",
|
||||
untagged_line: "Etiketlenmemiş çizgi",
|
||||
untagged_area: "Etiketlenmemiş alan",
|
||||
tag_suggests_area: "{tag} etiketi buranın alan olmasını tavsiye ediyor ama alan değil.",
|
||||
deprecated_tags: "Kullanımdan kaldırılmış etiket : {tags}"
|
||||
},
|
||||
|
||||
zoom: {
|
||||
in: "Yaklaş",
|
||||
out: "Uzaklaş"
|
||||
}
|
||||
};
|
||||
|
||||
+7
-6
@@ -63,7 +63,7 @@
|
||||
<script src='../js/id/ui/inspector.js'></script>
|
||||
<script src='../js/id/ui/commit.js'></script>
|
||||
<script src='../js/id/ui/loading.js'></script>
|
||||
<script src='../js/id/ui/userpanel.js'></script>
|
||||
<script src='../js/id/ui/account.js'></script>
|
||||
<script src='../js/id/ui/geocoder.js'></script>
|
||||
<script src='../js/id/ui/notice.js'></script>
|
||||
<script src='../js/id/ui/modal.js'></script>
|
||||
@@ -136,14 +136,15 @@
|
||||
|
||||
<script src='../js/id/connection.js'></script>
|
||||
|
||||
<script src='../locale/locale.js'></script>
|
||||
<script src='../locale/en.js'></script>
|
||||
<script src='../locale/ja.js'></script>
|
||||
<script src='../locale/fr.js'></script>
|
||||
<script src='../js/lib/locale.js'></script>
|
||||
<script src='../locale/da.js'></script>
|
||||
<script src='../locale/de.js'></script>
|
||||
<script src='../locale/en.js'></script>
|
||||
<script src='../locale/es.js'></script>
|
||||
<script src='../locale/fr.js'></script>
|
||||
<script src='../locale/ja.js'></script>
|
||||
<script src='../locale/lv.js'></script>
|
||||
<script src='../locale/tr.js'></script>
|
||||
<script src='../locale/es.js'></script>
|
||||
|
||||
<script src="spec/spec_helpers.js"></script>
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@ describe("iD.behavior.Select", function() {
|
||||
.enter().append('circle')
|
||||
.attr('class', function(d) { return d.id; });
|
||||
|
||||
context.enter(iD.modes.Browse(context));
|
||||
|
||||
behavior = iD.behavior.Select(context);
|
||||
context.install(behavior);
|
||||
});
|
||||
@@ -30,32 +32,33 @@ describe("iD.behavior.Select", function() {
|
||||
container.remove();
|
||||
});
|
||||
|
||||
specify("click on entity selects the entity", function(done) {
|
||||
happen.mousedown(context.surface().select('.' + a.id).node());
|
||||
window.setTimeout(function() {
|
||||
expect(context.selection()).to.eql([a.id]);
|
||||
done();
|
||||
}, 600);
|
||||
specify("click on entity selects the entity", function() {
|
||||
happen.click(context.surface().select('.' + a.id).node());
|
||||
expect(context.selection()).to.eql([a.id]);
|
||||
});
|
||||
|
||||
specify("click on empty space clears the selection", function(done) {
|
||||
specify("click on empty space clears the selection", function() {
|
||||
context.enter(iD.modes.Select(context, [a.id]));
|
||||
happen.click(context.surface().node());
|
||||
happen.mousedown(context.surface().node());
|
||||
happen.mouseup(context.surface().node());
|
||||
window.setTimeout(function() {
|
||||
expect(context.selection()).to.eql([]);
|
||||
done();
|
||||
}, 600);
|
||||
expect(context.mode().id).to.eql('browse');
|
||||
});
|
||||
|
||||
specify("shift-click on entity adds the entity to the selection", function(done) {
|
||||
specify("shift-click on unselected entity adds it to the selection", function() {
|
||||
context.enter(iD.modes.Select(context, [a.id]));
|
||||
happen.mousedown(context.surface().select('.' + b.id).node(), {shiftKey: true});
|
||||
window.setTimeout(function() {
|
||||
expect(context.selection()).to.eql([a.id, b.id]);
|
||||
done();
|
||||
}, 600);
|
||||
happen.click(context.surface().select('.' + b.id).node(), {shiftKey: true});
|
||||
expect(context.selection()).to.eql([a.id, b.id]);
|
||||
});
|
||||
|
||||
specify("shift-click on selected entity removes it from the selection", function() {
|
||||
context.enter(iD.modes.Select(context, [a.id, b.id]));
|
||||
happen.click(context.surface().select('.' + b.id).node(), {shiftKey: true});
|
||||
expect(context.selection()).to.eql([a.id]);
|
||||
});
|
||||
|
||||
specify("shift-click on last selected entity clears the selection", function() {
|
||||
context.enter(iD.modes.Select(context, [a.id]));
|
||||
happen.click(context.surface().select('.' + a.id).node(), {shiftKey: true});
|
||||
expect(context.mode().id).to.eql('browse');
|
||||
});
|
||||
|
||||
specify("shift-click on empty space leaves the selection unchanged", function() {
|
||||
|
||||
@@ -27,7 +27,8 @@ describe('translations', function() {
|
||||
var allkeys = _.flatten(_.values(languageKeys));
|
||||
|
||||
_.forEach(languageKeys, function(l, k) {
|
||||
expect(_.difference(allkeys, l)).to.eql([]);
|
||||
var diff = _.difference(allkeys, l).join(", ");
|
||||
expect(diff).to.equal("");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
describe("iD.ui.geocoder", function () {
|
||||
describe("iD.ui.Geocoder", function () {
|
||||
it('can be instantiated', function () {
|
||||
var geocoder = iD.ui.geocoder();
|
||||
var geocoder = iD.ui.Geocoder();
|
||||
expect(geocoder).to.be.ok;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
describe("iD.ui.inspector", function () {
|
||||
describe("iD.ui.Inspector", function () {
|
||||
var inspector, element,
|
||||
tags = {highway: 'residential'},
|
||||
entity, graph, context;
|
||||
|
||||
function render() {
|
||||
inspector = iD.ui.inspector().context(context);
|
||||
inspector = iD.ui.Inspector().context(context);
|
||||
element = d3.select('body')
|
||||
.append('div')
|
||||
.attr('id', 'inspector-wrap')
|
||||
|
||||
Reference in New Issue
Block a user