diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 38d58fa61..7c106eb6c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -72,6 +72,21 @@ Transiflex, will automatically detect the change. Use `make` to build the translations with the local changes. `make translate` can be used to pull the latest translations from Transifex. +## Contributing Documentation + +Documentation is maintained as a series of [Markdown](http://daringfireball.net/projects/markdown/) +documents in the `data/doc/` path. The first line of each page of documentation +should be of the form + + # GPS + +This will be used for navigation and as its title in iD. Documentation is +shown in alphabetical order, so most documentation is prefixed with `02-` and +so on in order to keep it in a certain order. + +To add a new page of documentation, simply create a new Markdown file in +`data/doc` in the same format as the rest. + ## Javascript We use the [Airbnb style for Javascript](https://github.com/airbnb/javascript) with diff --git a/Makefile b/Makefile index f99342a98..8b7691e77 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ all: \ iD.js \ iD.min.js -DATA_FILES = $(shell find data -type f -name '*.json') +DATA_FILES = $(shell find data -type f -name '*.json' -o -name '*.md') data/data.js: $(DATA_FILES) node build.js @@ -18,6 +18,7 @@ data/data.js: $(DATA_FILES) js/lib/d3.v3.js \ js/lib/d3.combobox.js \ js/lib/d3.geo.tile.js \ + js/lib/d3.jsonp.js \ js/lib/d3.keybinding.js \ js/lib/d3.one.js \ js/lib/d3.size.js \ diff --git a/build.js b/build.js index 27bec4be2..fd5f5f35f 100644 --- a/build.js +++ b/build.js @@ -2,13 +2,18 @@ var fs = require('fs'), path = require('path'), glob = require('glob'), YAML = require('js-yaml'), + marked = require('marked'), _ = require('./js/lib/lodash'), jsonschema = require('jsonschema'), fieldSchema = require('./data/presets/schema/field.json'), presetSchema = require('./data/presets/schema/preset.json'); +function readtxt(f) { + return fs.readFileSync(f, 'utf8'); +} + function read(f) { - return JSON.parse(fs.readFileSync(f)); + return JSON.parse(readtxt(f)); } function r(f) { @@ -19,6 +24,10 @@ function rp(f) { return r('presets/' + f); } +function stringify(o) { + return JSON.stringify(o, null, 4); +} + function validate(file, instance, schema) { var result = jsonschema.validate(instance, schema); if (result.length) { @@ -39,59 +48,81 @@ var translations = { presets: {} }; -var fields = {}; -glob.sync(__dirname + '/data/presets/fields/*.json').forEach(function(file) { - var field = read(file), - id = path.basename(file, '.json'); +function generateDocumentation() { + var docs = []; + glob.sync(__dirname + '/data/doc/*.md').forEach(function(file) { + var text = readtxt(file), + title = text.split('\n')[0] + .replace('#', '').trim(); + docs.push({ + html: marked(text.split('\n').slice(1).join('\n')), + title: title + }); + }); + fs.writeFileSync('data/doc.json', stringify(docs)); +} - validate(file, field, fieldSchema); +function generateFields() { + var fields = {}; + glob.sync(__dirname + '/data/presets/fields/*.json').forEach(function(file) { + var field = read(file), + id = path.basename(file, '.json'); - translations.fields[id] = {label: field.label}; - if (field.strings) { - for (var i in field.strings) { - translations.fields[id][i] = field.strings[i]; + validate(file, field, fieldSchema); + + translations.fields[id] = {label: field.label}; + if (field.strings) { + for (var i in field.strings) { + translations.fields[id][i] = field.strings[i]; + } } - } - fields[id] = field; -}); -fs.writeFileSync('data/presets/fields.json', JSON.stringify(fields, null, 4)); + fields[id] = field; + }); + fs.writeFileSync('data/presets/fields.json', stringify(fields)); +} -var presets = {}; -glob.sync(__dirname + '/data/presets/presets/**/*.json').forEach(function(file) { - var preset = read(file), - id = file.match(/presets\/presets\/([^.]*)\.json/)[1]; +function generatePresets() { + var presets = {}; + glob.sync(__dirname + '/data/presets/presets/**/*.json').forEach(function(file) { + var preset = read(file), + id = file.match(/presets\/presets\/([^.]*)\.json/)[1]; - validate(file, preset, presetSchema); + validate(file, preset, presetSchema); - translations.presets[id] = { - name: preset.name, - terms: (preset.terms || []).join(',') - }; + translations.presets[id] = { + name: preset.name, + terms: (preset.terms || []).join(',') + }; - presets[id] = preset; -}); -fs.writeFileSync('data/presets/presets.json', JSON.stringify(presets, null, 4)); + presets[id] = preset; + }); + fs.writeFileSync('data/presets/presets.json', stringify(presets)); + fs.writeFileSync('data/presets.yaml', YAML.dump({en: {presets: translations}})); +} -fs.writeFileSync('data/presets.yaml', YAML.dump({en: {presets: translations}})); +generateDocumentation(); +generateFields(); +generatePresets(); -fs.writeFileSync('data/data.js', 'iD.data = ' + JSON.stringify({ +fs.writeFileSync('data/data.js', 'iD.data = ' + stringify({ deprecated: r('deprecated.json'), discarded: r('discarded.json'), keys: r('keys.json'), imagery: r('imagery.json'), + doc: r('doc.json'), presets: { presets: rp('presets.json'), defaults: rp('defaults.json'), categories: rp('categories.json'), fields: rp('fields.json') } -}, null, 4) + ';'); +}) + ';'); // Push changes from data/core.yaml into data/locales.js var core = YAML.load(fs.readFileSync('data/core.yaml', 'utf8')); var presets = YAML.load(fs.readFileSync('data/presets.yaml', 'utf8')); var intro = YAML.load(fs.readFileSync('data/intro.yaml', 'utf8')); var en = _.merge(_.merge(core, presets), intro); -var out = 'locale.en = ' + JSON.stringify(en.en, null, 4) + ';'; +var out = 'locale.en = ' + stringify(en.en) + ';'; fs.writeFileSync('data/locales.js', fs.readFileSync('data/locales.js', 'utf8').replace(/locale.en =[^;]*;/, out)); diff --git a/combobox.html b/combobox.html index 72c7ea538..c24384cb9 100644 --- a/combobox.html +++ b/combobox.html @@ -70,7 +70,6 @@ - diff --git a/css/app.css b/css/app.css index 2bb72b993..87fb899b1 100644 --- a/css/app.css +++ b/css/app.css @@ -62,7 +62,7 @@ h2 { font-size: 25px; line-height: 1.25; font-weight: bold; - margin-bottom: 10px; + margin-bottom: 20px; } h3:last-child, @@ -71,11 +71,9 @@ h4:last-child { margin-bottom: 0;} h3 { font-size: 16px; - line-height: 1.3333; + line-height: 1.25; font-weight: bold; margin-bottom: 10px; - text-overflow: ellipsis; - white-space: nowrap; } h4 { @@ -96,10 +94,15 @@ h5 { } p { + font-size: 12px; margin:0; padding:0; } +p:last-child { + padding-bottom: 0; +} + em { font-style: italic; } @@ -147,6 +150,7 @@ input[type=email] { background-color: white; border:1px solid #ccc; padding:5px 10px; + height:30px; width: 100%; border-radius:4px; -webkit-transition: all 100ms; @@ -159,11 +163,6 @@ input:focus { background-color: #F1F1F1; } -input[type=text] { - padding:5px 10px; - height:30px; -} - input.major { width: 100%; padding:5px 10px; @@ -258,6 +257,11 @@ ul.link-list li:last-child { color: #333; } +.fillL3 { + background: #f1f1f1; + color: #333; +} + .fillD { background:rgba(0,0,0,.8); color: #6C6C6C; @@ -310,7 +314,6 @@ a.hide { right: 0; } - /* Buttons */ button { @@ -393,10 +396,10 @@ button.action:hover { background: #597BE7; } -button.delete { +button.cancel { background-color: #ff7070; } -button.delete:hover { +button.cancel:hover { background-color: #ef5454; } @@ -500,8 +503,11 @@ button[disabled] .label { .icon.warning { background-position: -380px 0px;} .icon.back { background-position: -420px 0px;} .icon.forward { background-position: -440px 0px;} +.icon.help { background-position: -460px 0px;} +.icon.inspect.light { background-position: -220px -20px;} .icon.geocode.light { background-position: -280px -20px;} +.icon.help.light { background-position: -460px -20px;} .fillD .icon.avatar { background-position: -320px -20px;} .fillD .icon.nearby { background-position: -340px -20px;} @@ -513,7 +519,6 @@ button[disabled] .icon.add-area { background-position: -60px -40px;} button.disabled .icon.undo { background-position: -80px -40px;} button.disabled .icon.redo { background-position: -100px -40px;} button[disabled] .apply.icon { background-position: -120px -40px;} -button[disabled] .save.icon { background-position: -140px -40px;} button[disabled] .close.icon { background-position: -160px -40px;} button[disabled] .delete.icon { background-position: -180px -40px;} button[disabled] .icon.remove { background-position: -200px -40px;} @@ -569,18 +574,22 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} border-radius: 0; } - /* Header for modals / panes ------------------------------------------------------- */ .header { border-bottom: 1px solid #ccc; z-index: 2; + height: 60px; position: relative; } .header h3 { + margin-right: 40px; margin-bottom: 0; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } .modal > button, @@ -593,10 +602,11 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} overflow: hidden; position: absolute; right: 0; + top: 0; } .modal > button { - height: 61px; + height: 59px; z-index: 3; } @@ -627,10 +637,6 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} top: 120px; } -.inspector-body::-webkit-scrollbar { - background: #fff; -} - .inspector-inner { padding: 20px; position: relative; @@ -639,15 +645,11 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} .inspector-wrap .header button.preset-reset { border-right: 1px solid #CCC; position: relative; - width: 60px; } .inspector-wrap .header button.preset-reset > div { height: 100%; padding: 20px 0; - -webkit-transition: opacity 200ms; - -moz-transition: opacity 200ms; - transition: opacity 200ms; } .inspector-wrap .header button.preset-reset .col12:last-child { @@ -669,12 +671,6 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} padding: 0; } -.pane:last-child .header h3 { - position: absolute; - left: 60px; - right: 40px; -} - .inspector-toggle { color:#fff; width: 100%; @@ -715,25 +711,6 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} background: #ececec; } -.grid-entry:hover .preset-help { - display: block; - border-radius: 0; -} - -.grid-entry .preset-help { - display: none; - position: absolute; - bottom: 0; - right: 0; - height: 30px; - width: 30px; - background: rgba(0,0,0,.5); -} - -.grid-entry .preset-help:hover { - background: rgba(0,0,0,.9); -} - .grid-entry > .icon { position: absolute; top: 30px;left: 0px; right: 0px; @@ -814,23 +791,24 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} } .subgrid { - width: -webkit-calc(100% - 10px); - width: calc(100% - 10px); + width: 100%; + width: -webkit-calc(100% + 10px); + width: calc(100% + 10px); + margin-left: -10px; overflow: hidden; } .subgrid .preset-grid { - background: #eee; padding: 10px 0px 0px 10px; + border: 1px solid #CCC; margin-top: 0px; - border: 0; - border-radius: 4px; + border-radius: 8px; } .subgrid .arrow { border: solid rgba(0, 0, 0, 0); border-width: 10px; - border-bottom-color: #eee; + border-bottom-color: #CCC; width: 0; height: 0; margin-left: 33.3333%; @@ -861,6 +839,25 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} color: #222; } +.grid-entry:hover .tag-reference-button { + opacity: 1; + border-radius: 0; +} + +.grid-entry .tag-reference-button { + opacity: 0; + position: absolute; + bottom: 0; + right: 0; + width: 20px; + height: 30px; + background: rgba(0,0,0,.5); +} + +.grid-entry .tag-reference-button:hover { + background: rgba(0,0,0,.9); +} + /* Preset icon colors */ .inspector-body-line .icon.feature-marker-stroked { @@ -900,69 +897,104 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} /* preset form basics */ -.preset-field.inspector-inner { - padding-bottom: 0; +.tag-wrap .preset-icon-wrap { + border-bottom: 1px solid #CCC; } -.tag-wrap .grid-button-wrap { - padding: 0; - height: 110px; -} - -.tag-wrap .grid-button-wrap .grid-entry { - border-top: 0; - background: #eef0ff; -} - -.tag-wrap .grid-button-wrap .grid-entry .label { - background: #eef0ff; -} - -.preset-field h4 .modified-icon { - opacity: 0.2; - display: none; - pointer-events: all; -} -.preset-field h4 .modified-icon:hover { - opacity: 0.5; -} -.preset-field.modified h4 .modified-icon { - display: inline-block; -} - -.preset-field h4[for*="input-"] { - border: 1px solid #cfcfcf; - padding: 5px 10px; - background: #f6f6f6; +.tag-wrap .preset-icon-wrap::after { + content: ""; position: absolute; - left: 20px; - right: 20px; + height: 0; + width: 0; + bottom: 0; + left: 0; + right: 0; + margin: auto; + border: solid rgba(0, 0, 0, 0); + border-width: 10px; + border-bottom-color: #CCC; +} + +.tag-wrap .preset-icon-wrap div { + height: 80px; + width: 33.3333%; + width: -webkit-calc(33.3333% - 10px); + width: calc(33.3333% - 10px); + margin: auto; + border-radius: 4px; + border: 1px solid #CCC; + position: relative; +} + +.tag-wrap .preset-icon-wrap .preset-icon { + position: absolute; + top: 30px; + left: 0px; + right: 0px; + margin: auto; +} + +.tag-wrap .preset-icon-wrap .preset-icon.line { + top: 15px; +} + +.inspector-preset .form-field { + padding-left: 20px; + padding-right: 20px; +} + +.form-label { + position: relative; + font-weight: bold; + border: 1px solid #cfcfcf; + padding: 5px 0px 5px 10px; + background: #f6f6f6; + display: block; border-radius: 4px 4px 0 0; - pointer-events: none; - z-index: 2; } -.preset-field h4 + input, -h4 + .input-wrap-position input, -h4 + .preset-input input:first-child { - padding-top: 35px; - height: 60px; +.form-label button { + pointer-events: all; + height: 29px; + margin-top: -5px; + border-left: 1px solid #CCC; + border-radius: 0; + opacity: .5; } -.preset-field h4 + textarea { - padding-top: 35px; - height: 100px; +.form-label .modified-icon { + border-right: 0; + opacity: 0; } -.preset-field h4[for="input-building:levels"], -.preset-field h4[for="input-ele"], -.preset-field.checkselect h4 { - right: 50%; +.modified .form-label .modified-icon { + opacity: .5; } -.preset-field-name h4 + input { - padding-top: 35px; - height: 70px; +.form-label button.tag-reference-button { + border-top-right-radius: 3px; +} + +.form-field > input, +.form-field > textarea, +.form-field .preset-input-wrap { + border: 1px solid #CCC; + border-top: 0; + border-radius: 0 0 4px 4px; +} + +.form-field textarea { + height: 65px; +} + +.form-field-levels, +.form-field-elevation, +.form-field.checkselect { + width: 60%; +} + +.form-field-name input { + height: 35px; font-size: 18px; font-weight: bold; } @@ -989,21 +1021,16 @@ button.preset-add-field { padding: 0 10px; } -.view-on-osm { - padding: 20px; -} - /* preset form numbers */ input[type=number] { position: relative; - width: 50%; padding-right: 65px; } .spin-control { width: 60px; - height: 30px; + height: 29px; border-left: 1px solid #CCC; display: inline-block; margin-left: -60px; @@ -1016,13 +1043,14 @@ input[type=number] { float: left; height: 100%; width: 50%; - border: 1px solid #CCC; + border-left: 1px solid #CCC; + border-right: 1px solid #CCC; border-radius: 0; border-left: 0; } -.spin-control button.descend { - border-bottom-right-radius: 4px; +.spin-control button.decrement { + border-bottom-right-radius: 3px; } .spin-control button.decrement::after, @@ -1048,14 +1076,11 @@ input[type=number] { /* preset form checkbox */ -.checkselect label { +.checkselect label:last-of-type { display: block; - padding: 35px 5px 5px 5px; - border-radius: 4px; - margin-right: 50%; + padding: 5px; box-sizing: border-box; color: #999; - border: 1px solid #CCC; } .checkselect label:hover { @@ -1081,11 +1106,8 @@ input[type=number] { .radio-wrap { display: block; - padding: 30px 0 0 0; - border-radius: 4px; box-sizing: border-box; color: #999; - border: 1px solid #CCC; overflow: hidden; } @@ -1106,25 +1128,29 @@ input[type=number] { /* Preset form address */ -.preset-field .addr-housename { - border-bottom: none; - border-radius: 4px 4px 0 0; +.form-field .addr-housename { + border: none; } -.preset-field .addr-number { +.form-field .addr-number { width: 20%; + border-left: none; border-right: none; border-bottom: none; border-radius: 0; } -.preset-field .addr-street { +.form-field .addr-street { width: 80%; - border-radius: 0; + border-right: none; border-bottom: none; + border-radius: 0; } -.preset-field .addr-city { +.form-field .addr-city { + border-left: none; + border-right: none; + border-bottom: none; border-radius: 0 0 4px 4px; } @@ -1209,7 +1235,7 @@ div.combobox { .tag-row { width: 100%; position: relative; - height: 30px; + clear: both; } .tag-row input { @@ -1228,7 +1254,6 @@ div.combobox { border-right: 1px solid #CCC; } - .tag-row:first-child input.key { border-top: 1px solid #CCC; border-top-left-radius: 4px; @@ -1255,6 +1280,10 @@ div.combobox { left: -20px } +.tag-row div.tag-help { + display: hidden; +} + .tag-row:hover input.value, .tag-row:hover input.key { border-radius: 0; @@ -1282,6 +1311,20 @@ div.combobox { display: none; } +/* Tag reference */ + +.tag-help { + overflow: hidden; +} + +img.wiki-image { + float: left; + max-width: 33.3333%; + margin-right: 20px; + max-height: 200px; + border-radius: 4px; +} + /* Map Controls */ .map-control { @@ -1523,10 +1566,68 @@ div.combobox { } .geolocate-control button { +} + +/* Help */ + +.help-control { + top: 270px; +} + +.help-control button { border-radius: 0 0 4px 0; border-bottom: 0; } +.help-wrap { + position: absolute; + top:60px; + bottom: 30px; + padding: 20px 20px 20px 50px; + left: 0; + overflow-y: scroll; +} + +.help-wrap p { + font-size: 15px; + margin-bottom: 20px; +} + +.help-wrap .left-content .body p code { + padding:2px 4px; + background:#eee; +} + +.help-wrap .toc { + /* This is two columns, 41.66666 x .4 = 16.6666 */ + width:40%; + float:right; + margin-left: 20px; + margin-bottom: 20px; + padding-left: 5px +} + +.help-wrap .toc li a { + display: block; + font-weight: bold; + border: 1px solid #CCC; + border-bottom: 0px; + padding: 5px; +} + +.help-wrap .toc li a.selected { + background: #eef0ff; +} + +.help-wrap .toc li:first-child a { + border-radius: 4px 4px 0 0; +} + +.help-wrap .toc li:last-child a { + border-bottom: 1px solid #CCC; + border-radius: 0 0 4px 4px +} + /* Map ------------------------------------------------------- */ @@ -1597,6 +1698,20 @@ div.combobox { color:#fff; } +/* Attribution overlay */ +.attribution { + position: absolute; + bottom: 35px; + right:10px; + color:#888; + font-size:10px; +} + +.source-image { + height:20px; + vertical-align:top; +} + .user-list a:not(:last-child):after { content: ', '; } @@ -1798,7 +1913,7 @@ div.typeahead a:first-child { ------------------------------------------------------- */ .modal a.success-action { - height: 180px; + height: 170px; border-bottom: 1px solid #CCC; text-align: center; -webkit-transition: all 200ms; @@ -1820,7 +1935,7 @@ a.success-action:before { height: 100px; width: 100px; margin: auto; - margin-bottom: 20px; + margin-bottom: 10px; background:transparent url(../img/sprite.png) no-repeat 0px -220px; } @@ -2091,13 +2206,24 @@ a.success-action.twitter:before { @media only screen and (max-height: 840px) { } +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), + only screen and (-o-min-device-pixel-ratio: 3/2), + only screen and (min--moz-device-pixel-ratio: 1.5), + only screen and (min-device-pixel-ratio: 1.5) { + .map-control .icon, + .button-wrap .icon { + background-image: url(../img/sprite2x.png); + background-size: 500px 320px; + } +} + /* Scrollbars ----------------------------------------------------- */ ::-webkit-scrollbar { height: 20px; overflow: visible; width: 10px; - background: #EBEBEB; + background: white; border-left: 1px solid #DDD; } ::-webkit-scrollbar-button { @@ -2114,10 +2240,8 @@ a.success-action.twitter:before { } ::-webkit-scrollbar-track:hover { background-color: rgba(0,0,0,.05); - box-shadow: inset 1px 0 0 rgba(0,0,0,.1); } ::-webkit-scrollbar-track:horizontal:hover { - box-shadow: inset 0 1px 0 rgba(0,0,0,.1) } ::-webkit-scrollbar-track:active { background-color: rgba(0,0,0,.05); diff --git a/css/map.css b/css/map.css index 02989ea77..e8032f733 100644 --- a/css/map.css +++ b/css/map.css @@ -856,11 +856,11 @@ text.point { cursor: url(../img/cursor-select-remove.png), pointer; } -.point:active, -.vertex:active, -.line:active, -.area:active, -.midpoint:active, +#map .point:active, +#map .vertex:active, +#map .line:active, +#map .area:active, +#map .midpoint:active, .mode-select .selected { cursor: url(../img/cursor-select-acting.png), pointer; } diff --git a/data/core.yaml b/data/core.yaml index 8f40b5ac7..6f38a68ad 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -107,7 +107,7 @@ en: 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 + view_on_osm: "View on OSM →" zoom_in_edit: zoom in to edit the map logout: logout report_a_bug: report a bug @@ -123,8 +123,8 @@ en: deleted: Deleted created: Created contributors: - list: "Viewing contributions by {users}" - truncated_list: "Viewing contributions by {users} and {count} others" + list: "Contributed by {users}" + truncated_list: "Contributed by {users} and {count} others" geocoder: title: Find a place placeholder: Find a place @@ -136,7 +136,7 @@ en: no_documentation_key: There is no documentation available for this key show_more: Show More new_tag: New tag - view_on_osm: View on OSM + view_on_osm: View on OSM → editing_feature: "Editing {feature}" additional: Additional tags choose: Select feature type @@ -150,7 +150,8 @@ en: fix_misalignment: Fix misalignment reset: reset restore: - description: "You have unsaved changes from a previous editing session. Do you wish to restore these changes?" + heading: You have unsaved changes + description: "Do you wish to restore changes from a previous editing session?" restore: Restore reset: Reset save: @@ -167,6 +168,7 @@ en: start: Start Editing source_switch: live: live + lose_changes: "You have unsaved changes. Switching the map server will discard them. Are you sure you want to switch servers?" dev: dev tag_reference: description: Description @@ -182,8 +184,8 @@ en: zoom: in: Zoom In out: Zoom Out - imagery: - provided_by: "Imagery provided by {source}" gpx: local_layer: "Local GPX file" drag_drop: "Drag and drop a .gpx file on the page" + help: + title: "Help" diff --git a/data/data_dev.js b/data/data_dev.js index 3445f943a..6968c7d6a 100644 --- a/data/data_dev.js +++ b/data/data_dev.js @@ -12,7 +12,8 @@ iD.data = { path + 'data/presets/presets.json', path + 'data/presets/defaults.json', path + 'data/presets/categories.json', - path + 'data/presets/fields.json'], d3.json, function (err, data) { + path + 'data/presets/fields.json', + path + 'data/doc.json'], d3.json, function (err, data) { iD.data = { deprecated: data[0], @@ -24,7 +25,8 @@ iD.data = { defaults: data[5], categories: data[6], fields: data[7] - } + }, + doc: data[8] }; callback(); diff --git a/data/doc.json b/data/doc.json new file mode 100644 index 000000000..b00025eaf --- /dev/null +++ b/data/doc.json @@ -0,0 +1,34 @@ +[ + { + "html": "
This is an editor for OpenStreetMap, the\nfree and editable map of the world. You can use it to fix and update\ndata in your area, making an open-source and open-data map of the world\nbetter for everyone.
\nEdits that you make on this map will be visible to everyone who uses\nOpenStreetMap. In order to make an edit, you'll need a\nfree OpenStreetMap account.
\niD Editor is a collaborative project with source\ncode available on GitHub.
\n", + "title": "Help" + }, + { + "html": "This editor is designed to work primarily online, and you're accessing\nit through a website right now.
\nTo select a map feature, like a road or point of interest, simply single-click\non it on the map. This will highlight the selected feature, show a panel of\ndetails, and also show a menu of things you can do with the feature.
\nMultiple features can be selected by holding the 'Shift' key, clicking,\nand dragging on the map. This will select all features within the box\nthat's drawn, and you can do certain 'batch operations' on all features.
\nWhen you create changes, like editing roads, buildings, and places, these are\nstored locally until you save them to the server. Don't worry if you make\na mistake - you can undo changes by clicking the undo button, and redo\nchanges by clicking the redo button.
\nClick 'Save' to finish a group of edits - for instance, if you've completed\nan area of town and would like to start on a new area. You'll have a chance\nto review what you've done, and the editor supplies helpful suggestions\nand warnings if something doesn't seem right about the changes.
\nClicking 'Save' again, on the new dialog, will post the changes\nto OpenStreetMap.org, where they are visible\nto all other users and available for others to build and improve upon.
\nIf you can't finish your edits in one sitting, you can leave the editor\nwindow and come back (on the same browser and computer), and the\neditor application will offer to restore your work.
\n", + "title": "Editing & Saving" + }, + { + "html": "You can create, fix, and delete roads with this editor. Roads can be all\nkinds: paths, highways, trails, cycleways, and more - any often-crossed\nsegment should be mappable.
\nClick on a road to select it. An outline should become visible, along\nwith a small tools menu on the map and a sidebar showing more information\nabout the road.
\nOften you'll see roads that aren't aligned to the imagery behind them\nor a GPS track.
\nFirst click on the road you want to change. This will highlight it and show\n'control points along it' that you can drag to better locations. If\nyou want to add new control points for more detail, double-click a part\nof the road without a point, and one will be added.
\nIf the road connects to another road, but doesn't properly connect on\nthe map, you can drag one of its control points onto the other road in\norder to join them. Having roads connect is important for the map\nand essential for providing driving directions.
\nYou can also click the 'Move' tool or type M to move the entire road at\none time, and then click again to save that movement.
If a road is entirely incorrect - you can see that it doesn't exist in satellite\nimagery and ideally have confirmed locally that it's not present - you can delete\nit, which removes it from the map. Be cautious when deleting features -\nlike any other edit, the results are seen by everyone and satellite imagery\nis often out of date, so the road could simply be newly built.
\nYou can delete a road by clicking on it to select it, then clicking the\ntrash can icon or pressing the 'Delete' key.
\nFound somewhere there should be a road but there isn't? Click the 'Line'\nicon in the top-left of the editor or press the key '2' to start drawing\na line.
\nClick on the start of the road on the map to start drawing. If the road\nconnects to another road, first, click on the place where they connect.
\nThen click on points along the road so that it follows the right path, according\nto satellite imagery or GPS. When you're done drawing the road, double-click\nor press 'Return' or 'Enter' on your keyboard.
\n", + "title": "Roads" + }, + { + "html": "GPS data is the most trusted source of data for OpenStreetMap. This editor\nsupports local traces - .gpx files on your local computer. You can collect\nthis kind of GPS trace with a number of smartphone applications as well as\npersonal GPS hardware.
For information on how to perform a GPS survey, read\nSurveying with a GPS.
\nTo use a GPX track for mapping, drag and drop the GPX file onto the map map\neditor. If it's recognized, it will be added to the map as a bright green\nline. Click on the 'Background Settings' menu on the left side to enable,\ndisable, or zoom to this new GPX-powered layer.
\nThe GPX track isn't directly uploaded to OpenStreetMap - the best way to\nuse it is to draw on the map, using it as a guide for the new features that\nyou add.
\n", + "title": "GPS" + }, + { + "html": "Aerial imagery is an important resource for mapping. A combination of\nairplane flyovers, satellite views, and freely-compiled sources are available\nin the editor under the 'Background Settings' menu on the left.
\nBy default a Bing Maps satellite layer is\npresented in the editor, but as you pan and zoom the map to new geographical\nareas, new sources will become available. Some countries, like the United\nStates, France, and Denmark have very high-resolution, high-quality imagery\navailable for smaller geographical coverages.
\nImagery is sometimes offset from the map data because of a mistake on the\nimagery provider's side - so if you see many roads shifted from the background,\ndon't immediately go to move them all. You can set an offset for imagery\nby clicking 'Fix alignment' at the bottom of the bottom of the Background\nSettings UI.
\n", + "title": "Imagery" + }, + { + "html": "Addresses are some of the most useful information for the map.
\nAlthough addresses are often represented as parts of streets, in OpenStreetMap\nthey're recorded as attributes of buildings and places along streets.
\nYou can add address information to places mapped as building outlines as well\nas well as those mapped as single points. The optimal source of address\ndata is from an on-the-ground survey or personal knowledge - as with any\nother feature, copying from commercial sources like Google Maps is strictly\nforbidden.
\n", + "title": "Addresses" + }, + { + "html": "The inspector is the user interface element on the right-hand side of the\npage that appears when an element is selected and allows to edit its details.
\nThe inspector has two modes: the first allows you to pick a preset, or\npredetermined selection of forms and tags.
\nClick the 'i' in the bottom-right-hand corner of a preset option to learn\nmore about it. Click a preset to choose it.
\nThe second allows you to edit the\nattributes of a map element using those forms and tags.
\nBelow the forms you see, you can click icons to add more easy-to-use forms,\nlike Wikipedia information, wheelchair\naccess, and more.
\nAt the bottom of the inspector, click 'Additional tags' to add arbitrary\nother tags to the element. Taginfo is a\ngreat resource for learn more about popular tag combinations.
\nChanges you make in the inspector are automatically applied to the map.\nYou can undo them at any time by clicking the Undo button.
\nYou can close the inspector by either clicking the close button in the top-right,\npressing the 'Escape' key, or clicking on the map.
\n", + "title": "Using the Inspector" + }, + { + "html": "OpenStreetMap is the world's largest database of buildings. You can create\nand improve this database.
\nYou can select a building by clicking on its border. This will highlight the\nbuilding and open a small tools menu and a sidebar showing more information\nabout the building.
\nSometimes buildings are incorrectly placed or have incorrect tags.
\nTo move an entire building, select it, then click the 'Move' tool. Move your\nmouse to shift the building, and click when it's correctly placed.
\nTo fix the specific shape of a building, click and drag the points that form\nits border into better places.
\nOne of the main questions around adding buildings to the map is that\nOpenStreetMap records buildings both as shapes and points. The rule of thumb\nis to map a building as a shape whenever possible, and map companies, homes,\namenities, and other things that operate out of buildings as points placed\nwithin the building shape.
\nStart drawing a building as a shape by clicking the 'Area' button in the top\nleft of the interface, and end it either by pressing 'Return' on your keyboard\nor clicking on the first point drawn to close the shape.
\nIf a building is entirely incorrect - you can see that it doesn't exist in satellite\nimagery and ideally have confirmed locally that it's not present - you can delete\nit, which removes it from the map. Be cautious when deleting features -\nlike any other edit, the results are seen by everyone and satellite imagery\nis often out of date, so the road could simply be newly built.
\nYou can delete a building by clicking on it to select it, then clicking the\ntrash can icon or pressing the 'Delete' key.
\n", + "title": "Buildings" + } +] \ No newline at end of file diff --git a/data/doc/00-help.md b/data/doc/00-help.md new file mode 100644 index 000000000..60d1c976f --- /dev/null +++ b/data/doc/00-help.md @@ -0,0 +1,13 @@ +# Help + +This is an editor for [OpenStreetMap](http://www.openstreetmap.org/), the +free and editable map of the world. You can use it to fix and update +data in your area, making an open-source and open-data map of the world +better for everyone. + +Edits that you make on this map will be visible to everyone who uses +OpenStreetMap. In order to make an edit, you'll need a +[free OpenStreetMap account](https://www.openstreetmap.org/user/new). + +[iD Editor](http://ideditor.com/) is a collaborative project with [source +code available on GitHub](https://github.com/systemed/iD). diff --git a/data/doc/01-editing-saving.md b/data/doc/01-editing-saving.md new file mode 100644 index 000000000..5f9a8c38a --- /dev/null +++ b/data/doc/01-editing-saving.md @@ -0,0 +1,34 @@ +# Editing & Saving + +This editor is designed to work primarily online, and you're accessing +it through a website right now. + +### Selecting Features + +To select a map feature, like a road or point of interest, simply single-click +on it on the map. This will highlight the selected feature, show a panel of +details, and also show a menu of things you can do with the feature. + +Multiple features can be selected by holding the 'Shift' key, clicking, +and dragging on the map. This will select all features within the box +that's drawn, and you can do certain 'batch operations' on all features. + +### Saving Edits + +When you create changes, like editing roads, buildings, and places, these are +stored locally until you save them to the server. Don't worry if you make +a mistake - you can undo changes by clicking the undo button, and redo +changes by clicking the redo button. + +Click 'Save' to finish a group of edits - for instance, if you've completed +an area of town and would like to start on a new area. You'll have a chance +to review what you've done, and the editor supplies helpful suggestions +and warnings if something doesn't seem right about the changes. + +Clicking 'Save' again, on the new dialog, will post the changes +to [OpenStreetMap.org](http://www.openstreetmap.org/), where they are visible +to all other users and available for others to build and improve upon. + +If you can't finish your edits in one sitting, you can leave the editor +window and come back (on the same browser and computer), and the +editor application will offer to restore your work. diff --git a/data/doc/03-road.md b/data/doc/03-road.md new file mode 100644 index 000000000..2f59a46e2 --- /dev/null +++ b/data/doc/03-road.md @@ -0,0 +1,53 @@ +# Roads + +You can create, fix, and delete roads with this editor. Roads can be all +kinds: paths, highways, trails, cycleways, and more - any often-crossed +segment should be mappable. + +### Selecting + +Click on a road to select it. An outline should become visible, along +with a small tools menu on the map and a sidebar showing more information +about the road. + +### Modifying + +Often you'll see roads that aren't aligned to the imagery behind them +or a GPS track. + +First click on the road you want to change. This will highlight it and show +'control points along it' that you can drag to better locations. If +you want to add new control points for more detail, double-click a part +of the road without a point, and one will be added. + +If the road connects to another road, but doesn't properly connect on +the map, you can drag one of its control points onto the other road in +order to join them. Having roads connect is important for the map +and essential for providing driving directions. + +You can also click the 'Move' tool or type `M` to move the entire road at +one time, and then click again to save that movement. + +### Deleting + +If a road is entirely incorrect - you can see that it doesn't exist in satellite +imagery and ideally have confirmed locally that it's not present - you can delete +it, which removes it from the map. Be cautious when deleting features - +like any other edit, the results are seen by everyone and satellite imagery +is often out of date, so the road could simply be newly built. + +You can delete a road by clicking on it to select it, then clicking the +trash can icon or pressing the 'Delete' key. + +### Creating + +Found somewhere there should be a road but there isn't? Click the 'Line' +icon in the top-left of the editor or press the key '2' to start drawing +a line. + +Click on the start of the road on the map to start drawing. If the road +connects to another road, first, click on the place where they connect. + +Then click on points along the road so that it follows the right path, according +to satellite imagery or GPS. When you're done drawing the road, double-click +or press 'Return' or 'Enter' on your keyboard. diff --git a/data/doc/04-gps.md b/data/doc/04-gps.md new file mode 100644 index 000000000..4bb48f276 --- /dev/null +++ b/data/doc/04-gps.md @@ -0,0 +1,18 @@ +# GPS + +GPS data is the most trusted source of data for OpenStreetMap. This editor +supports local traces - `.gpx` files on your local computer. You can collect +this kind of GPS trace with a number of smartphone applications as well as +personal GPS hardware. + +For information on how to perform a GPS survey, read +[Surveying with a GPS](http://learnosm.org/en/beginner/using-gps/). + +To use a GPX track for mapping, drag and drop the GPX file onto the map map +editor. If it's recognized, it will be added to the map as a bright green +line. Click on the 'Background Settings' menu on the left side to enable, +disable, or zoom to this new GPX-powered layer. + +The GPX track isn't directly uploaded to OpenStreetMap - the best way to +use it is to draw on the map, using it as a guide for the new features that +you add. diff --git a/data/doc/05-imagery.md b/data/doc/05-imagery.md new file mode 100644 index 000000000..71ae7bccd --- /dev/null +++ b/data/doc/05-imagery.md @@ -0,0 +1,17 @@ +# Imagery + +Aerial imagery is an important resource for mapping. A combination of +airplane flyovers, satellite views, and freely-compiled sources are available +in the editor under the 'Background Settings' menu on the left. + +By default a [Bing Maps](http://www.bing.com/maps/) satellite layer is +presented in the editor, but as you pan and zoom the map to new geographical +areas, new sources will become available. Some countries, like the United +States, France, and Denmark have very high-resolution, high-quality imagery +available for smaller geographical coverages. + +Imagery is sometimes offset from the map data because of a mistake on the +imagery provider's side - so if you see many roads shifted from the background, +don't immediately go to move them all. You can set an offset for imagery +by clicking 'Fix alignment' at the bottom of the bottom of the Background +Settings UI. diff --git a/data/doc/06-addresses.md b/data/doc/06-addresses.md new file mode 100644 index 000000000..0250e8cd3 --- /dev/null +++ b/data/doc/06-addresses.md @@ -0,0 +1,12 @@ +# Addresses + +Addresses are some of the most useful information for the map. + +Although addresses are often represented as parts of streets, in OpenStreetMap +they're recorded as attributes of buildings and places along streets. + +You can add address information to places mapped as building outlines as well +as well as those mapped as single points. The optimal source of address +data is from an on-the-ground survey or personal knowledge - as with any +other feature, copying from commercial sources like Google Maps is strictly +forbidden. diff --git a/data/doc/07-inspector.md b/data/doc/07-inspector.md new file mode 100644 index 000000000..687468e72 --- /dev/null +++ b/data/doc/07-inspector.md @@ -0,0 +1,33 @@ +# Using the Inspector + +The inspector is the user interface element on the right-hand side of the +page that appears when an element is selected and allows to edit its details. + +### Selecting a Preset + +The inspector has two modes: the first allows you to pick a preset, or +predetermined selection of forms and tags. + +Click the 'i' in the bottom-right-hand corner of a preset option to learn +more about it. Click a preset to choose it. + +### Using Forms and Editing Tags + +The second allows you to edit the +attributes of a map element using those forms and tags. + +Below the forms you see, you can click icons to add more easy-to-use forms, +like [Wikipedia](http://www.wikipedia.org/) information, wheelchair +access, and more. + +At the bottom of the inspector, click 'Additional tags' to add arbitrary +other tags to the element. [Taginfo](http://taginfo.openstreetmap.org/) is a +great resource for learn more about popular tag combinations. + +Changes you make in the inspector are automatically applied to the map. +You can undo them at any time by clicking the Undo button. + +### Closing the Inspector + +You can close the inspector by either clicking the close button in the top-right, +pressing the 'Escape' key, or clicking on the map. diff --git a/data/doc/building.md b/data/doc/building.md new file mode 100644 index 000000000..5a634de0d --- /dev/null +++ b/data/doc/building.md @@ -0,0 +1,43 @@ +# Buildings + +OpenStreetMap is the world's largest database of buildings. You can create +and improve this database. + +### Selecting + +You can select a building by clicking on its border. This will highlight the +building and open a small tools menu and a sidebar showing more information +about the building. + +### Modifying + +Sometimes buildings are incorrectly placed or have incorrect tags. + +To move an entire building, select it, then click the 'Move' tool. Move your +mouse to shift the building, and click when it's correctly placed. + +To fix the specific shape of a building, click and drag the points that form +its border into better places. + +### Creating + +One of the main questions around adding buildings to the map is that +OpenStreetMap records buildings both as shapes and points. The rule of thumb +is to _map a building as a shape whenever possible_, and map companies, homes, +amenities, and other things that operate out of buildings as points placed +within the building shape. + +Start drawing a building as a shape by clicking the 'Area' button in the top +left of the interface, and end it either by pressing 'Return' on your keyboard +or clicking on the first point drawn to close the shape. + +### Deleting + +If a building is entirely incorrect - you can see that it doesn't exist in satellite +imagery and ideally have confirmed locally that it's not present - you can delete +it, which removes it from the map. Be cautious when deleting features - +like any other edit, the results are seen by everyone and satellite imagery +is often out of date, so the road could simply be newly built. + +You can delete a building by clicking on it to select it, then clicking the +trash can icon or pressing the 'Delete' key. diff --git a/data/locales.js b/data/locales.js index 57e88fb46..eebbd3daf 100644 --- a/data/locales.js +++ b/data/locales.js @@ -139,7 +139,7 @@ locale.en = { "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", + "view_on_osm": "View on OSM →", "zoom_in_edit": "zoom in to edit the map", "logout": "logout", "report_a_bug": "report a bug", @@ -156,8 +156,8 @@ locale.en = { "created": "Created" }, "contributors": { - "list": "Viewing contributions by {users}", - "truncated_list": "Viewing contributions by {users} and {count} others" + "list": "Contributed by {users}", + "truncated_list": "Contributed by {users} and {count} others" }, "geocoder": { "title": "Find a place", @@ -172,7 +172,7 @@ locale.en = { "no_documentation_key": "There is no documentation available for this key", "show_more": "Show More", "new_tag": "New tag", - "view_on_osm": "View on OSM", + "view_on_osm": "View on OSM →", "editing_feature": "Editing {feature}", "additional": "Additional tags", "choose": "Select feature type", @@ -188,7 +188,8 @@ locale.en = { "reset": "reset" }, "restore": { - "description": "You have unsaved changes from a previous editing session. Do you wish to restore these changes?", + "heading": "You have unsaved changes", + "description": "Do you wish to restore changes from a previous editing session?", "restore": "Restore", "reset": "Reset" }, @@ -208,6 +209,7 @@ locale.en = { }, "source_switch": { "live": "live", + "lose_changes": "You have unsaved changes. Switching the map server will discard them. Are you sure you want to switch servers?", "dev": "dev" }, "tag_reference": { @@ -227,13 +229,13 @@ locale.en = { "in": "Zoom In", "out": "Zoom Out" }, - "imagery": { - "provided_by": "Imagery provided by {source}" - }, "gpx": { "local_layer": "Local GPX file", "drag_drop": "Drag and drop a .gpx file on the page" }, + "help": { + "title": "Help" + }, "presets": { "fields": { "access": { @@ -1624,6 +1626,7 @@ locale.zh = { "commit": { "title": "保存更改", "description_placeholder": "简要说明你的贡献", + "message_label": "提交说明", "upload_explanation": "{user}你上传的更新将会显示在所有使用OpenStreetMap数据的地图上。", "save": "保存", "cancel": "取消", @@ -1649,10 +1652,7 @@ locale.zh = { "no_documentation_key": "没有关于此键的文档", "show_more": "显示更多", "new_tag": "新建标签", - "edit_tags": "编辑标签", - "okay": "确定", "view_on_osm": "在OSM上查看", - "name": "名称", "editing_feature": "编辑{feature}", "additional": "附加标签", "choose": "选择对象的类型", @@ -1821,6 +1821,9 @@ locale.zh = { "maxspeed": { "label": "限速" }, + "name": { + "label": "名称" + }, "natural": { "label": "自然" }, @@ -1836,6 +1839,9 @@ locale.zh = { "oneway": { "label": "单行" }, + "oneway_yes": { + "label": "单行" + }, "opening_hours": { "label": "小时" }, @@ -2051,6 +2057,9 @@ locale.zh = { "barrier/bollard": { "name": "短柱" }, + "barrier/cattle_grid": { + "name": "家畜栅栏" + }, "barrier/city_wall": { "name": "城墙" }, @@ -2091,7 +2100,7 @@ locale.zh = { "name": "公路" }, "highway/bridleway": { - "name": "台阶", + "name": "马道", "terms": "楼梯" }, "highway/bus_stop": { @@ -2110,18 +2119,30 @@ locale.zh = { "highway/motorway": { "name": "高速公路" }, + "highway/motorway_link": { + "name": "高速公路匝道" + }, "highway/path": { "name": "路" }, "highway/primary": { "name": "主要道路" }, + "highway/primary_link": { + "name": "主要道路匝道" + }, "highway/residential": { "name": "住宅区道路" }, + "highway/road": { + "name": "未知道路" + }, "highway/secondary": { "name": "次要道路" }, + "highway/secondary_link": { + "name": "次要道路匝道" + }, "highway/service": { "name": "辅助道路" }, @@ -2132,6 +2153,9 @@ locale.zh = { "highway/tertiary": { "name": "三级道路" }, + "highway/tertiary_link": { + "name": "三级道路匝道" + }, "highway/track": { "name": "小路" }, @@ -2142,6 +2166,9 @@ locale.zh = { "highway/trunk": { "name": "干线道路" }, + "highway/trunk_link": { + "name": "干线道路匝道" + }, "highway/turning_circle": { "name": "环岛" }, @@ -2154,6 +2181,9 @@ locale.zh = { "historic/archaeological_site": { "name": "考古遗址" }, + "historic/boundary_stone": { + "name": "界桩" + }, "historic/castle": { "name": "城堡" }, @@ -2166,6 +2196,9 @@ locale.zh = { "historic/ruins": { "name": "废墟" }, + "historic/wayside_cross": { + "name": "路边的十字架" + }, "historic/wayside_shrine": { "name": "路边的神社" }, @@ -2352,7 +2385,7 @@ locale.zh = { "name": "村庄" }, "power": { - "name": "动力" + "name": "电力设施" }, "power/generator": { "name": "发电厂" @@ -2415,11 +2448,14 @@ locale.zh = { "shop/beverages": { "name": "饮料店" }, + "shop/bicycle": { + "name": "自行车店" + }, "shop/books": { "name": "书店" }, "shop/boutique": { - "name": "精品" + "name": "精品店" }, "shop/butcher": { "name": "肉贩" @@ -2434,7 +2470,7 @@ locale.zh = { "name": "汽车修理店" }, "shop/chemist": { - "name": "化学家" + "name": "药房" }, "shop/clothes": { "name": "服装店" @@ -2461,7 +2497,10 @@ locale.zh = { "name": "干洗店" }, "shop/electronics": { - "name": "鱼贩子" + "name": "家电店" + }, + "shop/fishmonger": { + "name": "鱼贩" }, "shop/florist": { "name": "花店" @@ -2470,7 +2509,7 @@ locale.zh = { "name": "家具店" }, "shop/garden_centre": { - "name": "花园中心" + "name": "花店" }, "shop/gift": { "name": "礼品店" @@ -2488,10 +2527,10 @@ locale.zh = { "name": "音响店" }, "shop/jewelry": { - "name": "珠宝商" + "name": "珠宝店" }, "shop/kiosk": { - "name": "亭" + "name": "报刊亭" }, "shop/laundry": { "name": "洗衣店" @@ -2512,7 +2551,7 @@ locale.zh = { "name": "书报" }, "shop/optician": { - "name": "配镜师" + "name": "眼镜店" }, "shop/outdoor": { "name": "户外店" @@ -2581,7 +2620,7 @@ locale.zh = { "name": "旅馆" }, "tourism/information": { - "name": "信息" + "name": "信息板" }, "tourism/motel": { "name": "汽车旅馆" @@ -2804,10 +2843,8 @@ locale.zh_TW = { "no_documentation_key": "這個鍵值沒有可用的文檔", "show_more": "顯示更多", "new_tag": "新的標籤", - "edit_tags": "編輯標籤", - "okay": "確定", "view_on_osm": "在OSM上顯示", - "name": "名稱", + "editing_feature": "正在編輯 {feature}", "additional": "附加的標籤", "choose": "選擇功能種類", "results": "{search} 的 {n} 個結果", @@ -2862,6 +2899,10 @@ locale.zh_TW = { "imagery": { "provided_by": "影像由 {source} 提供" }, + "gpx": { + "local_layer": "本機GPX檔案", + "drag_drop": "拖放一個.gpx格式的檔案到本頁" + }, "presets": { "fields": { "access": { @@ -3152,10 +3193,12 @@ locale.zh_TW = { "terms": "穆斯林,清真寺" }, "amenity/police": { - "name": "警察局" + "name": "警察局", + "terms": "徽章,警官,警官,警官,警官,男童軍,警官,警官,警官,警官,警官,軍團,警車,偵探,警官,警官,部隊,警官,憲兵,刑警,警官, 法律,執法,警官,警官,警官,警官,警察" }, "amenity/post_box": { - "name": "郵箱" + "name": "郵箱", + "terms": "信箱,信箱,郵箱,郵箱,郵筒,郵箱" }, "amenity/post_office": { "name": "郵政局" @@ -3701,8 +3744,6 @@ locale.da = { "no_documentation_combination": "Der er ingen dokumentation for denne tag kombination", "no_documentation_key": "Der er ingen dokumentation tilgængelig for denne nøgle", "new_tag": "Nyt tag", - "edit_tags": "Ret tags", - "okay": "Ok", "view_on_osm": "Vis på OSM" }, "background": { @@ -3912,10 +3953,7 @@ locale.nl = { "no_documentation_combination": "Voor deze tag is geen documentatie beschikbaar.", "no_documentation_key": "Voor deze sleutel is geen documentatie beschikbaar", "new_tag": "Nieuwe tag", - "edit_tags": "Tags aanpassen", - "okay": "OK", "view_on_osm": "Bekijk op OSM", - "name": "Name", "additional": "Additional tags", "choose": "What are you adding?", "results": "{n} results for {search}" @@ -4138,10 +4176,7 @@ locale.fr = { "no_documentation_key": "Aucune documentation n'est disponible pour cette clé", "show_more": "Plus d'infornations", "new_tag": "Nouveau tag", - "edit_tags": "Editer les tags", - "okay": "Okay", "view_on_osm": "Visualiser sur OSM", - "name": "Nom", "editing_feature": "Édition de {feature}", "additional": "Tags complémentaires", "choose": "Que souhaitez vous ajouter?", @@ -4660,6 +4695,7 @@ locale.de = { "rotate": { "title": "Drehen", "description": "Dieses Objekt um seinen Mittelpunkt drehen.", + "key": "R", "annotation": { "line": "Linie gedreht.", "area": "Fläche gedreht." @@ -4714,13 +4750,13 @@ locale.de = { "no_documentation_key": "Für dises Schlüsselwort ist keine Dokumentation verfügbar", "show_more": "Zeige mehr", "new_tag": "Neues Attribut", - "edit_tags": "Attribute bearbeiten", - "okay": "OK", "view_on_osm": "auf OpenStreetMap ansehen", - "name": "Name", + "editing_feature": "In Bearbeitung {feature}", "additional": "Weitere Merkmale", + "choose": "Eigenschafts-Typ auswählen", "results": "{n} Resultate für {search}", - "reference": "In der OpenSteetMap Wiki anschauen →" + "reference": "In der OpenSteetMap Wiki anschauen →", + "back_tooltip": "Eigenschafts-Typ ändern" }, "background": { "title": "Hintergrund", @@ -4737,6 +4773,7 @@ locale.de = { "save": { "title": "Speichern", "help": "Speichere Änderungen auf OpenStreetMap, um diese für andere Nutzer sichtbar zu machen.", + "no_changes": "Keine zu speichernden Änderungen.", "error": "Beim Speichern ist ein Fehler aufgetreten", "uploading": "Änderungen werden zu OpenStreetMap hochgeladen.", "unsaved_changes": "Ungespeicherte Änderungen vorhanden" @@ -5267,10 +5304,7 @@ locale.it = { "no_documentation_key": "Non c'è documentazione per questa chiave", "show_more": "Mostra di più", "new_tag": "Nuovo Tag", - "edit_tags": "Modifica i tag", - "okay": "Ok", "view_on_osm": "Mostra su OSM", - "name": "Nome", "additional": "Tag aggiuntivi", "choose": "Seleziona il tipo di caratteristica", "results": "{n} risultati per {search}", @@ -6129,7 +6163,6 @@ locale.ja = { "no_documentation_combination": "このタグの組み合わせに関する説明文はありません", "no_documentation_key": "このキーに対する説明文はありません", "new_tag": "新規タグ", - "edit_tags": "タグ編集", "view_on_osm": "詳細情報確認" }, "background": { @@ -6345,10 +6378,7 @@ locale.lv = { "no_documentation_combination": "Šai apzīmējumu kombinācijai nav piejama dokumentācija", "no_documentation_key": "Šai vērtībai nav piejama dokumentācija", "new_tag": "Jauns apzīmējums", - "edit_tags": "Labot apzīmējumus", - "okay": "Labi", "view_on_osm": "Apskatīt OSM", - "name": "Name", "additional": "Papildus apzīmējumi", "choose": "Izvēlieties objekta tipu", "results": "Atrasti {n} rezultāti meklējot {search}", @@ -6698,8 +6728,6 @@ locale.pl = { "no_documentation_combination": "Nie ma dokumentacji dla tej kombinacji tagu.", "no_documentation_key": "Nie ma dokumentacji dla tego klucza", "new_tag": "Nowy tag", - "edit_tags": "Edytuj tagi", - "okay": "Okej", "view_on_osm": "Zobacz w OSM" }, "background": { @@ -6918,14 +6946,14 @@ locale.pt = { "inspector": { "no_documentation_combination": "Não há documentação disponível para esta combinação de tags", "no_documentation_key": "Não há documentação disponível para esta tecla", + "show_more": "Mostrar Mais", "new_tag": "Nova tag", - "edit_tags": "Editar tags", - "okay": "OK", "view_on_osm": "Ver em OSM", - "name": "Nome", + "editing_feature": "Editando {feature}", "additional": "Tags adicionais", "choose": "O que está a adicionar?", - "results": "{n} resultados para {search}" + "results": "{n} resultados para {search}", + "reference": "Ver na Wiki do OpenStreetMap" }, "background": { "title": "Fundo", @@ -6935,6 +6963,7 @@ locale.pt = { "reset": "reiniciar" }, "restore": { + "heading": "Tem alterações por guardar", "description": "Tem alterações por guardar de uma prévia sessão de edição. Deseja restaurar estas alterações?", "restore": "Restaurar", "reset": "Descartar" @@ -6942,6 +6971,7 @@ locale.pt = { "save": { "title": "Guardar", "help": "Guardar alterações no OpenStreetMap, tornando-as visíveis a outros utilizadores.", + "no_changes": "Não há alterações para guardar.", "error": "Um erro ocorreu ao tentar guardar", "uploading": "Enviando alterações para OpenStreetMap.", "unsaved_changes": "Tem alterações por guardar" @@ -6952,6 +6982,7 @@ locale.pt = { }, "source_switch": { "live": "ao vivo", + "lose_changes": "Tem alterações por guardar. Mudando o servidor de mapas irá perdê-las. Tem a certeza que deseja mudar de servidores?", "dev": "dev" }, "tag_reference": { @@ -6970,6 +7001,403 @@ locale.pt = { "zoom": { "in": "Aproximar", "out": "Afastar" + }, + "imagery": { + "provided_by": "Imagens disponibilizadas por {source}" + }, + "gpx": { + "local_layer": "Ficheiro GPX local", + "drag_drop": "Arraste um ficheiro .gpx para a página" + }, + "help": { + "title": "Ajuda" + }, + "presets": { + "fields": { + "access": { + "label": "Acesso" + }, + "address": { + "label": "Morada", + "placeholders": { + "housename": "Nome de casa", + "number": "123", + "street": "Rua", + "city": "Cidade" + } + }, + "aeroway": { + "label": "Tipo" + }, + "amenity": { + "label": "Tipo" + }, + "atm": { + "label": "MB" + }, + "bicycle_parking": { + "label": "Tipo" + }, + "building": { + "label": "Edifício" + }, + "building_area": { + "label": "Edifício" + }, + "building_yes": { + "label": "Edifício" + }, + "capacity": { + "label": "Capacidade" + }, + "construction": { + "label": "Tipo" + }, + "crossing": { + "label": "Tipo" + }, + "cuisine": { + "label": "Cozinha" + }, + "denomination": { + "label": "Denominação" + }, + "denotation": { + "label": "Denotação" + }, + "elevation": { + "label": "Elevação" + }, + "emergency": { + "label": "Emergência" + }, + "entrance": { + "label": "Tipo" + }, + "fax": { + "label": "Fax" + }, + "fee": { + "label": "Tarifa" + }, + "highway": { + "label": "Tipo" + }, + "historic": { + "label": "Tipo" + }, + "internet_access": { + "label": "Acesso à Internet", + "options": { + "wlan": "Wifi" + } + }, + "maxspeed": { + "label": "Limite de Velocidade" + }, + "natural": { + "label": "Natural" + }, + "network": { + "label": "Rede" + }, + "note": { + "label": "Nota" + }, + "office": { + "label": "Tipo" + }, + "oneway": { + "label": "Sentido Único" + }, + "opening_hours": { + "label": "Horas" + }, + "operator": { + "label": "Operador" + }, + "phone": { + "label": "Telefone" + }, + "place": { + "label": "Tipo" + }, + "railway": { + "label": "Tipo" + }, + "religion": { + "label": "Religião", + "options": { + "christian": "Cristão", + "muslim": "Muçulmano", + "buddhist": "Budista", + "jewish": "Judeu" + } + }, + "shelter": { + "label": "Abrigo" + }, + "shop": { + "label": "Tipo" + }, + "source": { + "label": "Fonte" + }, + "sport": { + "label": "Desporto" + }, + "surface": { + "label": "Superfície" + }, + "tourism": { + "label": "Tipo" + }, + "water": { + "label": "Tipo" + }, + "waterway": { + "label": "Tipo" + }, + "website": { + "label": "Website" + }, + "wetland": { + "label": "Tipo" + }, + "wikipedia": { + "label": "Wikipedia" + }, + "wood": { + "label": "Tipo" + } + }, + "presets": { + "aeroway/aerodrome": { + "name": "Aeroporto" + }, + "amenity": { + "name": "Amenidade" + }, + "amenity/bank": { + "name": "Banco" + }, + "amenity/bar": { + "name": "Bar" + }, + "amenity/bench": { + "name": "Banco" + }, + "amenity/bicycle_parking": { + "name": "Parque de Bicicletas" + }, + "amenity/bicycle_rental": { + "name": "Aluguer de Bicicletas" + }, + "amenity/cafe": { + "name": "Café" + }, + "amenity/cinema": { + "name": "Cinema" + }, + "amenity/fire_station": { + "name": "Quartel de Bombeiros" + }, + "amenity/grave_yard": { + "name": "Cemitério" + }, + "amenity/hospital": { + "name": "Hospital" + }, + "amenity/library": { + "name": "Biblioteca" + }, + "amenity/parking": { + "name": "Estacionamento" + }, + "amenity/pharmacy": { + "name": "Farmácia" + }, + "amenity/place_of_worship": { + "name": "Local de Oração" + }, + "amenity/place_of_worship/christian": { + "name": "Igreja" + }, + "amenity/place_of_worship/jewish": { + "name": "Sinagoga" + }, + "amenity/place_of_worship/muslim": { + "name": "Mesquita" + }, + "amenity/police": { + "name": "Polícia" + }, + "amenity/post_box": { + "name": "Caixa de Correio" + }, + "amenity/post_office": { + "name": "Estação de Correios" + }, + "amenity/pub": { + "name": "Bar" + }, + "amenity/restaurant": { + "name": "Restaurante" + }, + "amenity/school": { + "name": "Escola" + }, + "amenity/telephone": { + "name": "Telefone" + }, + "amenity/toilets": { + "name": "Casas de Banho" + }, + "amenity/townhall": { + "name": "Câmara Municipal" + }, + "amenity/university": { + "name": "Universidade" + }, + "building": { + "name": "Edifício" + }, + "entrance": { + "name": "Entrada" + }, + "highway": { + "name": "Autoestrada" + }, + "highway/bus_stop": { + "name": "Paragem de Autocarro" + }, + "highway/crossing": { + "name": "Passadeira" + }, + "highway/cycleway": { + "name": "Ciclovia" + }, + "highway/primary": { + "name": "Estrada Principal" + }, + "highway/residential": { + "name": "Estrada Residencial" + }, + "highway/secondary": { + "name": "Estrada Secundária" + }, + "highway/service": { + "name": "Estrada de Serviço" + }, + "highway/steps": { + "name": "Passos" + }, + "highway/track": { + "name": "Pista" + }, + "landuse/cemetery": { + "name": "Cemitério" + }, + "landuse/commercial": { + "name": "Comercial" + }, + "landuse/construction": { + "name": "Construção" + }, + "landuse/farm": { + "name": "Quinta" + }, + "landuse/farmyard": { + "name": "Quintal" + }, + "landuse/forest": { + "name": "Floresta" + }, + "landuse/grass": { + "name": "Relva" + }, + "landuse/industrial": { + "name": "Industrial" + }, + "leisure/golf_course": { + "name": "Campo de Golf" + }, + "leisure/park": { + "name": "Parque" + }, + "leisure/pitch": { + "name": "Campo de Desporto" + }, + "leisure/pitch/tennis": { + "name": "Campo de Ténis" + }, + "man_made/water_tower": { + "name": "Torre de Água" + }, + "natural": { + "name": "Natural" + }, + "natural/bay": { + "name": "Baía" + }, + "natural/beach": { + "name": "Praia" + }, + "natural/cliff": { + "name": "Penhasco" + }, + "natural/coastline": { + "name": "Linha Costeira" + }, + "natural/water": { + "name": "Água" + }, + "natural/water/lake": { + "name": "Lago" + }, + "place/island": { + "name": "Ilha" + }, + "place/locality": { + "name": "Localidade" + }, + "place/village": { + "name": "Aldeia" + }, + "railway/subway": { + "name": "Metro" + }, + "railway/subway_entrance": { + "name": "Entrada de Metro" + }, + "shop": { + "name": "Loja" + }, + "shop/butcher": { + "name": "Talho" + }, + "shop/supermarket": { + "name": "Supermercado" + }, + "tourism": { + "name": "Turismo" + }, + "tourism/camp_site": { + "name": "Parque de Campismo" + }, + "tourism/hotel": { + "name": "Hotal" + }, + "tourism/museum": { + "name": "Musei" + }, + "waterway/canal": { + "name": "Canal" + }, + "waterway/river": { + "name": "Rio" + } + } } }; locale.ru = { @@ -7143,10 +7571,7 @@ locale.ru = { "no_documentation_combination": "Для этой комбинации ключа и значения нет описания", "no_documentation_key": "Для этого ключа описания нет", "new_tag": "Новый тег", - "edit_tags": "Править теги", - "okay": "Готово", "view_on_osm": "Посмотреть в OSM", - "name": "Name", "additional": "Additional tags", "choose": "What are you adding?", "results": "{n} results for {search}", @@ -7361,8 +7786,6 @@ locale.es = { "no_documentation_combination": "No hay documentación disponible para esta combinación de etiquetas", "no_documentation_key": "No hay documentación disponible para esta tecla", "new_tag": "Nueva etiqueta", - "edit_tags": "Editar etiquetas", - "okay": "OK", "view_on_osm": "Ver en OSM" }, "background": { @@ -7582,10 +8005,7 @@ locale.sv = { "no_documentation_combination": "Der er ingen dokumentation for denne tag kombination", "no_documentation_key": "Det finns inget dokumentation för denna nyckel.", "new_tag": "Ny tagg", - "edit_tags": "Redigera taggar", - "okay": "Ok", "view_on_osm": "Visa på OSM", - "name": "Namn", "additional": "Fler taggar", "choose": "Vad lägger du till?", "results": "{n} sökresult för {search}", @@ -7799,10 +8219,7 @@ locale.tr = { "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": "OSM üzerinde gör", - "name": "İsim", "additional": "Ekstra etiketler", "choose": "Neyi ekliyorsunuz?", "results": "{n} results for {search}" @@ -8025,10 +8442,7 @@ locale.uk = { "no_documentation_key": "Для цього теґа немає документації", "show_more": "Ще", "new_tag": "Новий теґ", - "edit_tags": "Редагувати теґи", - "okay": "Готово", "view_on_osm": "Подивтись в ОСМ", - "name": "Name", "editing_feature": "Властивості {feature}", "additional": "Додаткові теґи", "choose": "Виберіть тип об’єкту", @@ -8096,7 +8510,7 @@ locale.uk = { "label": "Адреса", "placeholders": { "housename": "Назвабудинку", - "number": "123", + "number": "Номер", "street": "Вулиця", "city": "Місто" } @@ -8128,6 +8542,9 @@ locale.uk = { "capacity": { "label": "Міськість" }, + "collection_times": { + "label": "Час виїмки пошти" + }, "construction": { "label": "Тип" }, @@ -8205,6 +8622,9 @@ locale.uk = { "office": { "label": "Тип" }, + "oneway": { + "label": "Односторонній рух" + }, "opening_hours": { "label": "Години" }, @@ -8340,6 +8760,9 @@ locale.uk = { "amenity/fire_station": { "name": "Пожежна станція" }, + "amenity/fuel": { + "name": "Заправка" + }, "amenity/grave_yard": { "name": "Цвинтар" }, @@ -8803,6 +9226,9 @@ locale.uk = { "shop/butcher": { "name": "М’ясна лавка" }, + "shop/car": { + "name": "Автосалон" + }, "shop/car_parts": { "name": "Автозапчастини" }, @@ -8902,6 +9328,9 @@ locale.uk = { "shop/sports": { "name": "Спорттовари" }, + "shop/stationery": { + "name": "Канцтовари" + }, "shop/supermarket": { "name": "Супермаркет" }, @@ -8914,6 +9343,9 @@ locale.uk = { "shop/tyres": { "name": "Колеса та шини" }, + "shop/vacant": { + "name": "Здається в оренду" + }, "shop/variety_store": { "name": "Універсам" }, @@ -9149,6 +9581,7 @@ locale.vi = { "commit": { "title": "Lưu các Thay đổi", "description_placeholder": "Tóm lược các đóng góp của bạn", + "message_label": "Tóm lược sửa đổi", "upload_explanation": "Các thay đổi bạn thực hiện dưới tên {user} sẽ xuất hiện trên tất cả các bản đồ sử dụng dữ liệu OpenStreetMap.", "save": "Lưu", "cancel": "Hủy bỏ", @@ -9174,10 +9607,7 @@ locale.vi = { "no_documentation_key": "Không có tài liệu về chìa khóa này", "show_more": "Xem thêm", "new_tag": "Thẻ mới", - "edit_tags": "Sửa đổi các thẻ", - "okay": "OK", "view_on_osm": "Xem tại OSM", - "name": "Tên", "editing_feature": "Đang sửa {feature}", "additional": "Các thẻ nâng cao", "choose": "Chọn loại đối tượng", @@ -9193,6 +9623,7 @@ locale.vi = { "reset": "đặt lại" }, "restore": { + "heading": "Bạn có thay đổi chưa lưu", "description": "Bạn có thay đổi chưa lưu từ một phiên làm việc trước đây. Bạn có muốn khôi phục các thay đổi này không?", "restore": "Khôi phục", "reset": "Đặt lại" @@ -9211,6 +9642,7 @@ locale.vi = { }, "source_switch": { "live": "thật", + "lose_changes": "Bạn có các thay đổi chưa lưu. Các thay đổi này sẽ bị mất khi bạn đổi máy chủ bản đồ. Bạn có chắc chắn muốn đổi máy chủ?", "dev": "thử" }, "tag_reference": { @@ -9237,6 +9669,9 @@ locale.vi = { "local_layer": "Tập tin GPX địa phương", "drag_drop": "Kéo thả một tập tin .gpx vào trang" }, + "help": { + "title": "Trợ giúp" + }, "presets": { "fields": { "access": { @@ -9346,6 +9781,9 @@ locale.vi = { "maxspeed": { "label": "Tốc độ Tối đa" }, + "name": { + "label": "Tên" + }, "natural": { "label": "Thiên nhiên" }, @@ -9361,6 +9799,9 @@ locale.vi = { "oneway": { "label": "Một chiều" }, + "oneway_yes": { + "label": "Một chiều" + }, "opening_hours": { "label": "Giờ Mở cửa" }, @@ -9661,18 +10102,33 @@ locale.vi = { "highway/motorway": { "name": "Đường Cao tốc" }, + "highway/motorway_link": { + "name": "Nhánh Ra vào Đường Cao tốc", + "terms": "đường nhánh,đoạn nhánh,đường nhánh rẽ,đoạn nhánh rẽ,đường nhánh chuyển đường,nhánh chuyển đường,lối ra vào,lối ra,lối vào,nhánh ra,nhánh vào,đường nối" + }, "highway/path": { "name": "Lối" }, "highway/primary": { "name": "Đường Chính" }, + "highway/primary_link": { + "name": "Nhánh Ra vào Đường Chính", + "terms": "đường nhánh,đoạn nhánh,đường nhánh rẽ,đoạn nhánh rẽ,đường nhánh chuyển đường,nhánh chuyển đường,lối ra vào,lối ra,lối vào,nhánh ra,nhánh vào,đường nối" + }, "highway/residential": { "name": "Ngõ Dân cư" }, + "highway/road": { + "name": "Đường Nói chung" + }, "highway/secondary": { "name": "Đường Lớn" }, + "highway/secondary_link": { + "name": "Nhánh Ra vào Đường Lớn", + "terms": "đường nhánh,đoạn nhánh,đường nhánh rẽ,đoạn nhánh rẽ,đường nhánh chuyển đường,nhánh chuyển đường,lối ra vào,lối ra,lối vào,nhánh ra,nhánh vào,đường nối" + }, "highway/service": { "name": "Ngách" }, @@ -9683,6 +10139,10 @@ locale.vi = { "highway/tertiary": { "name": "Phố" }, + "highway/tertiary_link": { + "name": "Nhánh Ra vào Phố", + "terms": "đường nhánh,đoạn nhánh,đường nhánh rẽ,đoạn nhánh rẽ,đường nhánh chuyển đường,nhánh chuyển đường,lối ra vào,lối ra,lối vào,nhánh ra,nhánh vào,đường nối" + }, "highway/track": { "name": "Đường mòn" }, @@ -9693,6 +10153,10 @@ locale.vi = { "highway/trunk": { "name": "Xa lộ" }, + "highway/trunk_link": { + "name": "Nhánh Ra vào Xa lộ", + "terms": "đường nhánh,đoạn nhánh,đường nhánh rẽ,đoạn nhánh rẽ,đường nhánh chuyển đường,nhánh chuyển đường,lối ra vào,lối ra,lối vào,nhánh ra,nhánh vào,đường nối" + }, "highway/turning_circle": { "name": "Cuối đường Vòng tròn" }, diff --git a/data/presets/fields.json b/data/presets/fields.json index bf31d2fe1..841321562 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -372,6 +372,7 @@ "key": "website", "type": "url", "icon": "website", + "placeholder": "http://example.com/", "universal": true, "label": "Website" }, diff --git a/data/presets/fields/website.json b/data/presets/fields/website.json index 90e1cd1d1..1fcfaa6cf 100644 --- a/data/presets/fields/website.json +++ b/data/presets/fields/website.json @@ -2,6 +2,7 @@ "key": "website", "type": "url", "icon": "website", + "placeholder": "http://example.com/", "universal": true, "label": "Website" -} \ No newline at end of file +} diff --git a/data/presets/schema/field.json b/data/presets/schema/field.json index f852288c5..253ab79ff 100644 --- a/data/presets/schema/field.json +++ b/data/presets/schema/field.json @@ -59,9 +59,12 @@ "icon": { "type": "string" }, + "placeholder": { + "type": "string" + }, "strings": { "type": "object" } }, "additionalProperties": false -} \ No newline at end of file +} diff --git a/img/bing.png b/img/bing.png deleted file mode 100644 index a5a5c38dd..000000000 Binary files a/img/bing.png and /dev/null differ diff --git a/img/bing_maps.png b/img/bing_maps.png new file mode 100644 index 000000000..bbc4b1dfa Binary files /dev/null and b/img/bing_maps.png differ diff --git a/img/source/sprite.svg b/img/source/sprite.svg index 32ee46f77..52a403fae 100644 --- a/img/source/sprite.svg +++ b/img/source/sprite.svg @@ -9,7 +9,7 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="460" + width="500" height="320" id="svg12393" version="1.1" @@ -39,8 +39,8 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1" - inkscape:cx="237.92081" - inkscape:cy="230.70164" + inkscape:cx="319.99979" + inkscape:cy="247.06899" inkscape:document-units="px" inkscape:current-layer="layer12" showgrid="false" @@ -53,10 +53,11 @@ fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" - showguides="false" + showguides="true" inkscape:guide-bbox="true" inkscape:snap-bbox="true" - inkscape:snap-nodes="false"> + inkscape:snap-nodes="true" + inkscape:snap-global="true">