Merge branch 'develop' of https://github.com/openstreetmap/iD into patch-6

This commit is contained in:
Peter Newman
2020-08-12 17:06:35 +01:00
155 changed files with 3056 additions and 1157 deletions
+127 -31
View File
@@ -7,7 +7,8 @@ fail to serve some proportion of mappers. Broadly speaking, iD should strive to
follow [universal design](https://en.wikipedia.org/wiki/Universal_design) principles.
This is a living document that details the usability of iD across a number of dimensions,
with the intent of identifying and addressing problem areas.
with the intent of identifying and addressing problem areas. Since there are always more
factors to consider, no part of this document should be considered complete.
Symbols used in this document:
@@ -17,7 +18,9 @@ Symbols used in this document:
- ❌ No appreciable support
- 🤷 Unknown support, none is assumed
## Browser Compatibility
<br/>
## 🔗 Browser Compatibility
As a web app, iD's browser support is fundamental. The user experience should be
as equivalent as possible across the latest versions of all modern browsers on all
@@ -27,16 +30,17 @@ should fallback gracefully without breaking other aspects of the app.
This table covers high-level compatibility, with individual features to be detailed
elsewhere in this document.
| | | Browser | Notes | Issues |
| | Icon | Browser | Notes | Issues |
|---|---|---|---|---|
| ✅ | ![chrome logo] | Chrome | |
| ✅* | ![firefox logo] | Firefox | *Minor known issues | [#7132] |
| ✅ | ![safari logo] | Safari | |
| 🟩 | ![opera logo] | Opera | |
| 🟩 | ![edge logo] | Edge | |
| 🟠 | ![ie logo] | Internet Explorer | IE has been discontinued, but IE 11 is still maintained. iD polyfills ES6 features on IE 11, with varying success. |
| 🟩 | 🌐 | Others | iD should run without issue on any desktop browser implementing modern web standards. |
| 🟠 | 📱 | Mobile browsers | iD has not yet been fully optimized for mobile devices, but some editing is usually possible. |
| ✅ | ![chrome logo] | [Chrome](https://en.wikipedia.org/wiki/Google_Chrome) | |
| ✅* | ![firefox logo] | [Firefox](https://en.wikipedia.org/wiki/Firefox) | \*Minor known issues | [#7132](https://github.com/openstreetmap/iD/issues/7132) |
| ✅ | ![safari logo] | [Safari](https://en.wikipedia.org/wiki/Safari_(web_browser)) | |
| 🟩 | ![opera logo] | [Opera](https://en.wikipedia.org/wiki/Opera_(web_browser)) | |
| 🟩 | ![edge logo] | [Edge](https://en.wikipedia.org/wiki/Microsoft_Edge) | |
| 🟠 | ![ie logo] | [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer) | IE has been discontinued, but [IE 11 is still maintained](https://docs.microsoft.com/en-us/lifecycle/faq/internet-explorer-microsoft-edge). iD [polyfills](https://en.wikipedia.org/wiki/Polyfill_(programming)) modern web features for IE 11 where possible, but full support should not be expected |
| | ![webkit logo] | [iOS](https://en.wikipedia.org/wiki/IOS) browsers | All browsers on iOS (e.g. Safari, Chrome, Firefox, Edge) use the [WebKit](https://en.wikipedia.org/wiki/WebKit) engine and should thus have equivalent support |
| 🟩 | ![android logo] | [Android](https://en.wikipedia.org/wiki/Android_(operating_system)) browsers | Browsers on Android can use their own engines, so support may vary, but there are currently no known issues |
| 🟩 | 🌐 | Others | iD should run on any browser implementing [modern web standards](https://www.w3.org/standards/). Hardware factors such as screen size may affect usability |
[safari logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Safari_browser_logo.svg/30px-Safari_browser_logo.svg.png
[opera logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Opera_browser_logo_2013_vector.svg/30px-Opera_browser_logo_2013_vector.svg.png
@@ -44,40 +48,107 @@ elsewhere in this document.
[firefox logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Firefox_logo%2C_2019.svg/30px-Firefox_logo%2C_2019.svg.png
[edge logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Microsoft_Edge_logo_%282015%E2%80%932019%29.svg/30px-Microsoft_Edge_logo_%282015%E2%80%932019%29.svg.png
[ie logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Internet_Explorer_10%2B11_logo.svg/30px-Internet_Explorer_10%2B11_logo.svg.png
[webkit logo]: https://upload.wikimedia.org/wikipedia/en/thumb/b/be/WebKit_logo_(2015).svg/35px-WebKit_logo_(2015).svg.png
[android logo]: https://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Android_robot.svg/28px-Android_robot.svg.png
[#7132]: https://github.com/openstreetmap/iD/issues/7132
<br/>
## Input Device Support
## 🕹 Interaction Support
iD has traditionally assumed the mapper will be interacting via a mouse and keyboard,
but realistically people want or need to use various other [input devices](https://en.wikipedia.org/wiki/Input_device).
### Setups
iD relies on modern [pointer events](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events) for some interactions, so
some devices may see degraded functionality on older browsers.
The following table details iD's usability for different setups. A setup is where
a mapper is using only the device(s) listed in the row.
### Input Devices
This table details iD's support for specific classes of input devices.
"Full support" for a device means that iD reasonably handles its entire range of input on supported platforms. Though the given device is not necessarily expected to perform all of iD's functions.
It's impractical to ensure every single input device works as expected, so the table only reflects the support status to the best of our knowledge.
| | Icon | Input Device | Notes | Issues |
|---|---|---|---|---|
| 🟩 | ![apple adb mouse] | Single-button [mouse](https://en.wikipedia.org/wiki/Computer_mouse) | Primary click (e.g. left-click) can be used for all pointer interactions. Long-clicking on map features opens the edit menu |
| 🟩 | ![ibm mouse] | Multi-button mouse | Secondary click (e.g. right-click) can be used on map features to open the edit menu. Middle click, etc., are not needed by iD but are passed through to the browser |
| 🟩 | [![magic mouse]](https://en.wikipedia.org/wiki/Magic_Mouse) | Multi-touch mouse | 2D scrolling in the map is treated as panning, not zooming |
| 🟠 | ![vertical scroll wheel] | Vertical [scroll wheel](https://en.wikipedia.org/wiki/Scroll_wheel) | Should zoom the map in and out | [#5550](https://github.com/openstreetmap/iD/issues/5550) |
| ❌ | | Horizontal scroll wheel | Currently does nothing in the map | [#7134](https://github.com/openstreetmap/iD/issues/7134) |
| 🤷 | [![apple mighty mouse]](https://en.wikipedia.org/wiki/Apple_Mighty_Mouse) | Scroll ball | Works like combined vertical/horizontal scroll wheels |
| 🟩 | 🖲 | [Trackball](https://en.wikipedia.org/wiki/Trackball) | |
| 🟩 | ![touchpad] | [Trackpad](https://en.wikipedia.org/wiki/Touchpad) | |
| 🟩 | [![macbook trackpad]](https://en.wikipedia.org/wiki/Magic_Trackpad) | Multi-touch trackpad | Pinch-to-zoom and scroll-to-pan are supported in the map |
| 🟩 | ![pointing stick] | [Pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) | |
| 🟩 | ⌨️ | [Keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | Any keyboard can be used, but certain functionality may require certain keys |
| 🤷 | | [Touch bar](https://www.imore.com/touch-bar) | Generic, browser-provided controls should be shown |
| 🟩 | | Multi-touch screen | |
| 🟩 | ✍️ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) | Works like a single touch for tapping, dragging, scrolling, etc. |
| 🤷 | 🔲 | [Graphics tablet](https://en.wikipedia.org/wiki/Graphics_tablet) | |
| 🤷 | 🎮 | [Gamepad](https://en.wikipedia.org/wiki/Gamepad) | |
[ibm mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/6/62/Myszka_IBM.jpg/40px-Myszka_IBM.jpg
[apple adb mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Apple-ADB-mouse.jpg/70px-Apple-ADB-mouse.jpg
[apple mighty mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/Apple_Mighty_Mouse_top_viewo.jpg/35px-Apple_Mighty_Mouse_top_viewo.jpg
[vertical scroll wheel]: https://upload.wikimedia.org/wikipedia/commons/thumb/9/90/Razer_DeathAdder_2013_Edition-mouse_wheel_PNr%C2%B00405.jpg/50px-Razer_DeathAdder_2013_Edition-mouse_wheel_PNr%C2%B00405.jpg
[magic mouse]: https://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Magic_Mouse.jpg/70px-Magic_Mouse.jpg
[pointing stick]: https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Mouse_pointing_stick.jpeg/70px-Mouse_pointing_stick.jpeg
[touchpad]: https://upload.wikimedia.org/wikipedia/commons/thumb/6/64/Touchpad_F3JA.jpg/70px-Touchpad_F3JA.jpg
[macbook trackpad]: https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/MacBook_Pro%27s_trackpad.JPG/70px-MacBook_Pro%27s_trackpad.JPG
### Input Setups
This table lists iD's usability for different setups. A setup is where
a mapper is using only the device(s) given in the row.
A setup with "full support" offers functionality equivalent to that of the
highest-functioning setup (generally mouse and keyboard).
Certain functions may be accessed differently on different setups,
such as opening the edit menu via long-pressing instead of right-clicking.
Older browsers that don't support [pointer events](https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events)
may see degraded functionality for some setups.
| | | Input Setup | Notes |
|---|---|---|---|
| | Icon | Input Setup | Notes | Issues |
|---|---|---|---|---|
| ✅ | 🖱⌨️ | [Mouse](https://en.wikipedia.org/wiki/Computer_mouse) + [keyboard](https://en.wikipedia.org/wiki/Computer_keyboard) | iD's original input paradigm. Any mouse-like device such as a [trackpad](https://en.wikipedia.org/wiki/Touchpad), [trackball](https://en.wikipedia.org/wiki/Trackball), or [pointing stick](https://en.wikipedia.org/wiki/Pointing_stick) is grouped into "mouse" for this table |
| ❌ | ⌨️ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible |
| ❌ | ⌨️ | Keyboard only | Not all elements can necessarily be keyed to. Key traps may exists. Geometry editing isn't possible | [#7770](https://github.com/openstreetmap/iD/issues/7770) |
| 🟠 | 🖱 | Mouse only | The primary [mouse button](https://en.wikipedia.org/wiki/Mouse_button) (e.g. left click) alone is sufficient. Multiselection and disabling of node-snapping aren't possible |
| 🟠 | 🖐 | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Move and rotate aren't possible |
| 🟠 | ✍️ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Move, rotate, and multiselection aren't possible |
| 🟠 | 🖐 | [Multi-touch](https://en.wikipedia.org/wiki/Multi-touch) on a [touchscreen](https://en.wikipedia.org/wiki/Touchscreen) | Moving and rotating selections isn't possible | [#7599](https://github.com/openstreetmap/iD/issues/7599) |
| 🟠 | ✍️ | [Stylus](https://en.wikipedia.org/wiki/Stylus_(computing)) on a touchscreen | Moving and rotating selections isn't possible, nor is selecting multiple features |
| 🤷 | ✍️🔲 | Stylus on a [graphics tablet](https://en.wikipedia.org/wiki/Graphics_tablet) | |
| 🤷 | 🎮 | [Gamepad](https://en.wikipedia.org/wiki/Gamepad) | |
| 🤷 | 🗣 | [Voice](https://en.wikipedia.org/wiki/Voice_user_interface) | Tools like [Voice Control on macOS](https://support.apple.com/en-us/HT210539) and [Windows Speech Recognition](https://en.wikipedia.org/wiki/Windows_Speech_Recognition) allow navigating webpages with voice commands to some degree |
| 🤷 | 🔘 | [Switch](https://en.wikipedia.org/wiki/Switch_access) | Tools like [Switch Control on macOS](https://support.apple.com/en-us/HT202865) can theoretically replicate mouse and keyboard interactions in most apps |
## Language Support
<br/>
## 📟 System Compatibility
iD is largely platform-independent, meaning it should work on any system that runs a modern web browser. However, certain hardware and software components can affect iD's usability and functionality.
### Display Support
| | Display | Notes | Issues |
|---|---|---|---|
| ❌ | No display | Non-graphical devices and "[headless](https://en.wikipedia.org/wiki/Headless_software)" use cases aren't supported. See also the [vision accessibility](#-vision-accessibility) section |
| 🟠 | Small display | iD is not optimized for smartphone-sized screens or smaller, but some editing is usually possible |
| ✅ | Large display | The map expands to fill the entire browser window |
| 🟠 | Low pixel density display | Some icons are not legible on low-res displays |
| ✅ | High [pixel density](https://en.wikipedia.org/wiki/Pixel_density) display | iD's vector graphics scale well to high-resolution screens (e.g. [Retina](https://en.wikipedia.org/wiki/Retina_display)) |
| ✅ | Multiple displays | iD responds accordingly when its browser window is moved between different types of external screens |
### Network Support
| | Connection | Notes | Issues |
|---|---|---|---|
| ❌ | No connection | iD isn't built for offline use out-of-the-box |
| 🟠 | Slow connection | iD downloads a lot of data all throughout use, so slow connections can significantly slow down mapping | [#7788](https://github.com/openstreetmap/iD/issues/7788) |
| ✅ | Intermittent connection | Downloaded data can be edited during temporary connection losses. A banner message is displayed. Reconnection is attempted automatically and a "Retry" button is also provided |
| 🟠 | [Mobile phone connection](https://en.wikipedia.org/wiki/Cellular_network) | A fast, reliable phone network can be used for mapping. However, iD downloads data indiscriminately and can thus gobble up limited data plans | [#7788](https://github.com/openstreetmap/iD/issues/7788) |
| 🤷 | [Tor](https://en.wikipedia.org/wiki/Tor_%28anonymity_network%29) connection | |
<br/>
## 📖 Language Support
English is the language of tags and relation roles in the OpenStreetMap database.
It's also the source language of iD's interface, meaning English is the only language
@@ -89,21 +160,24 @@ platform. Some languages have region-specific variants, such as Brazilian Portug
Translators are typically volunteers. See the [translation guide](https://github.com/openstreetmap/iD/blob/develop/CONTRIBUTING.md#translating)
for more info.
| | Localization Feature | Notes |
|---|---|---|
| | Multilingual Feature | Notes | Issues |
|---|---|---|---|
| ✅ | Browser language preference | iD tries to use the language set in the browser |
| ❌ | Base language fallback | E.g. if `pt_BR` is incomplete, `pt` should be tried before `en` |
| ❌ | Custom fallback language | If the preferred language is incomplete, a user-specified one should be tried before `en` (e.g. `kk``ru`) |
| ❌ | [`lang` HTML attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) | Helps with text-to-speech, text formatting, and auto-transliteration, particularly when iD mixes strings from different languages |
| ✅ | Locale URL parameters | `locale` and `rtl` can be used to manually set iD's locale preferences. See the [API](API.md#url-parameters) |
| 🟩 | Right-to-left layouts | Used for languages like Hebrew and Arabic |
| | Language selection in UI | The mapper should be able to view and change iD's language in the interface at any time. Useful for public computers with fixed browser languages | [#3120](https://github.com/openstreetmap/iD/issues/3120) |
| 🟩 | Right-to-left layouts | The [`dir` HTML attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir) is properly set for languages like Hebrew and Arabic |
| 🟠 | Label icons | Icons should accompany text labels to illustrate the meaning of untranslated terms |
### Translatability
The following table details which interface elements can adapt to the mapper's
This table details which interface elements can adapt to the mapper's
language preferences. This doesn't account for whether they've actually been
translated to one or more languages.
| | Interface Element | Notes | Issues |
| | Interface Element | Notes | Issues |
|---|---|---|---|
| ✅ | Labels and descriptions | | |
| ✅ | Help docs and walkthrough | | |
@@ -112,7 +186,7 @@ translated to one or more languages.
| 🟠 | Fields | Combo fields may show raw tag values. The Wikipedia field lists Wiki names in their native languages | [#2708](https://github.com/openstreetmap/iD/issues/2708) |
| ❌ | Tags | OpenStreetMap tags are English-only as a limitation of the database | |
| ❌ | Relation member roles | OpenStreetMap roles are also limited to English | |
| | Imagery metadata | | |
| 🟠 | Imagery metadata | | [#7724](https://github.com/openstreetmap/iD/issues/7724) |
| 🟠 | Locator overlay | This layer shows feature labels in their local languages | [#7737](https://github.com/openstreetmap/iD/issues/7737) |
| ✅ | OSM community index | | |
| ✅ | iD validation issues | | |
@@ -127,6 +201,28 @@ listed here. Visit the [Transifex project page](https://www.transifex.com/openst
to see the latest numbers. Typically a few languages (German, Spanish, Japanese…)
are kept close to 100% coverage, while most languages have less than 50% coverage.
<br/>
## 👁 Vision Accessibility
| | Vision-Access Feature | Notes | Issues |
|---|---|---|---|
| 🤷 | [Screen reader support](https://en.wikipedia.org/wiki/Screen_reader) | | |
| 🟠 | [Browser zoom](https://support.mozilla.org/en-US/kb/accessibility-features-firefox-make-firefox-and-we#w_page-zoom) | Scrolling-to-pan the map may react oddly on some browsers | |
| 🟠 | [Text-only browser zoom](https://support.mozilla.org/en-US/kb/accessibility-features-firefox-make-firefox-and-we#w_text-zoom) | Enlarged text can overflow containers that have fixed dimensions | |
| 🟠 | [Don't rely on color alone](https://www.wuhcag.com/use-of-colour/) | Some classes of map data are indistinguishable except for their colors | |
| 🤷 | [High-contrast text colors](https://www.wuhcag.com/contrast-enhanced/) | | |
| ❌ | [Dark mode](https://en.wikipedia.org/wiki/Light-on-dark_color_scheme) | Many people find light-on-dark UIs easier to read under certain conditions | |
| ❌ | Audio feedback | This would need to be easy to disable or even disabled by default | [#5821](https://github.com/openstreetmap/iD/issues/5821) |
<br/>
## 👂 Hearing Accessibility
iD itself currently has no audio, so hearing difficulties alone are not expected to impact usability.
<br/>
---
_Further sections coming soon…_
+459
View File
@@ -24,11 +24,470 @@ _Breaking changes, which may affect downstream projects or sites that embed iD,
#### :hourglass: Performance
#### :mortar_board: Walkthrough / Help
#### :rocket: Presets
#### :hammer: Development
[#xxxx]: https://github.com/openstreetmap/iD/issues/xxxx
[@xxxx]: https://github.com/xxxx
-->
# 2.18.4
##### 2020-Jul-31
#### :white_check_mark: Validation
* Offer to upgrade `access=customer` tag to `access=customers` ([#7831], [#7836], thanks [@sun-geo])
[#7831]: https://github.com/openstreetmap/iD/issues/7831
[#7836]: https://github.com/openstreetmap/iD/issues/7836
[@sun-geo]: https://github.com/sun-geo
#### :bug: Bugfixes
* Fix critical bug where iD would be unusable in some places ([#7858])
* Fix issue with background layers using `CRS=EPSG:4326` on WMS version 1.3.0 ([#7557])
* Fix typo in message for multiple features that are too bendy to straighten ([#7845], thanks [@manfredbrandl])
* Make sure the Add Note label in the Help pane matches the toolbar label ([#7841])
[#7858]: https://github.com/openstreetmap/iD/issues/7858
[#7557]: https://github.com/openstreetmap/iD/issues/7557
[#7845]: https://github.com/openstreetmap/iD/issues/7845
[#7841]: https://github.com/openstreetmap/iD/issues/7841
[@manfredbrandl]: https://github.com/manfredbrandl
# 2.18.3
##### 2020-Jul-22
#### :bug: Bugfixes
* Fix issue where selected features would auto-center after deleting or navigating nodes in ways ([#7820])
* Fix some non-loading background imagery layers ([#7823])
* Properly update the inspector when switching between features with generic presets ([#7827])
* Fix broken Browse button for custom map data files ([#7828])
[#7820]: https://github.com/openstreetmap/iD/issues/7820
[#7823]: https://github.com/openstreetmap/iD/issues/7823
[#7827]: https://github.com/openstreetmap/iD/issues/7827
[#7828]: https://github.com/openstreetmap/iD/issues/7828
# 2.18.2
##### 2020-Jul-21
#### :hammer: Development
* Fix `coreContext.preauth` endpoint
# 2.18.1
##### 2020-Jul-20
#### :rocket: Presets
* Add search term to Arts & Crafts Store ([#7811], thanks [@nisargshh])
[#7811]: https://github.com/openstreetmap/iD/issues/7811
[@nisargshh]: https://github.com/nisargshh
#### :hammer: Development
* Re-add `coreContext.locale` endpoint
# 2.18.0
##### 2020-Jul-20
#### :mega: Release Highlights
* :raised_hand_with_fingers_splayed: **Touchscreen support!** We've finally optimized iD for multi-touch mapping on tablets and 2-in-1 devices.<br/>
_Long-press on features to open the edit menu. Review the Help pane to see what else you can do._
* :card_index_dividers: **Multiselection editing** has been supercharged, so you can update many features together instead of one at a time.<br/>
_<kbd>⇧ Shift</kbd> + click to select multiple features. On touchscreens, tap-and-hold one feature, then tap others to select them too._
* :ballot_box_with_check: **[Osmose](http://osmose.openstreetmap.fr)** data quality issues can now be browsed and resolved within iD. Thanks, [@SilentSpike], for this integration!<br/>
_Press <kbd>F</kbd> to open the Map Data pane and toggle on Osmose Issues under Data Layers._
[@SilentSpike]: https://github.com/SilentSpike
#### :tada: New Features
You can now:
* Open the edit menu on touchscreens by long-pressing on features ([#7577])
* Create multiselections on touchscreens by holding one feature while tapping additional features ([#7590])
* Add nodes to ways on touchscreens by double-tapping and dragging midpoints ([#2677])
* Drag nodes to reposition them on touchscreens ([#7415])
* Map with a stylus, including when navigating, selecting, drawing, and dragging ([#1981], [#7396])
* Navigate the map with multi-touch in Edge and Internet Explorer 11 ([#6598])
* Use <kbd>Space</kbd> as an alternative to left-click for selecting and deselecting features ([#3843])
* Open the edit menu by long-clicking or holding down <kbd>Space</kbd> while hovering over features
* Nudge selected features with the arrow keys when holding <kbd>⇧ Shift</kbd> ([#7186])
* Copy and paste features via the edit menu, including on touchscreens ([#2508])
* Edit the fields and tags of multiple selected features all at once ([#1761], [#7262], [#7306])
* View the issues shared by multiple selected features ([#7324])
* Browse and resolve Osmose quality assurance issues ([#5682], [#7095], thanks [@SilentSpike])
* Add basic WMS endpoints as custom background layers ([#4977], [#7510], thanks [@1ec5])
[@SilentSpike]: https://github.com/SilentSpike
[@1ec5]: https://github.com/1ec5
[#7577]: https://github.com/openstreetmap/iD/issues/7577
[#7590]: https://github.com/openstreetmap/iD/issues/7590
[#2677]: https://github.com/openstreetmap/iD/issues/2677
[#7415]: https://github.com/openstreetmap/iD/issues/7415
[#1981]: https://github.com/openstreetmap/iD/issues/1981
[#7396]: https://github.com/openstreetmap/iD/issues/7396
[#6598]: https://github.com/openstreetmap/iD/issues/6598
[#3843]: https://github.com/openstreetmap/iD/issues/3843
[#7186]: https://github.com/openstreetmap/iD/issues/7186
[#7186]: https://github.com/openstreetmap/iD/issues/7186
[#2508]: https://github.com/openstreetmap/iD/issues/2508
[#1761]: https://github.com/openstreetmap/iD/issues/1761
[#7262]: https://github.com/openstreetmap/iD/issues/7262
[#7306]: https://github.com/openstreetmap/iD/issues/7306
[#7324]: https://github.com/openstreetmap/iD/issues/7324
[#5682]: https://github.com/openstreetmap/iD/issues/5682
[#7095]: https://github.com/openstreetmap/iD/issues/7095
[#4977]: https://github.com/openstreetmap/iD/issues/4977
[#7510]: https://github.com/openstreetmap/iD/issues/7510
#### :boom: Breaking Changes
* Pressing <kbd>Space</kbd> with features selected no longer opens the edit menu, since the spacebar can now be used to select and deselect things. You can use the [menu key](https://en.wikipedia.org/wiki/Menu_key) instead, or hold down <kbd>Space</kbd> with the cursor hovering over a feature
* :warning: There are numerous under-the-hood code changes. See the **Development** section below for details
#### :sparkles: Usability
###### Interactions
* Don't show tooltips for non-mouse interactions ([#6035])
* Flash feedback when tapping some buttons on touchscreens ([#7699])
* Use larger targets for touch and stylus input to make interactions easier ([#7643])
* Prevent browser page navigation when swiping with a multi-touch trackpad or mouse in the map ([#5552], [#7659])
* Don't zoom the entire interface via double-tap or pinch-to-zoom on touchscreens ([#6049])
* Disable elastic page bouncing on standalone iD ([#7576])
* Make it easier to select features via clicking with a multi-touch mouse
[#6035]: https://github.com/openstreetmap/iD/issues/6035
[#7699]: https://github.com/openstreetmap/iD/issues/7699
[#7643]: https://github.com/openstreetmap/iD/issues/7643
[#5552]: https://github.com/openstreetmap/iD/issues/5552
[#7659]: https://github.com/openstreetmap/iD/issues/7659
[#6049]: https://github.com/openstreetmap/iD/issues/6049
[#7576]: https://github.com/openstreetmap/iD/issues/7576
###### Operations
* Support disconnecting multiple selected features from each other and from all connected features ([#7652])
* Support circularizing multiple selected areas and closed lines at once ([#7326])
* Make the Extract operation work immediately without an extra step to place the point ([#6674])
* Support the Extract operation on lines that could be mapped as points ([#7598])
* Support extracting points from multiple selected features at once ([#7600])
* Disable the Straighten operation for ways that are already straight ([#7658])
[#7652]: https://github.com/openstreetmap/iD/issues/7652
[#7326]: https://github.com/openstreetmap/iD/issues/7326
[#6674]: https://github.com/openstreetmap/iD/issues/6674
[#7598]: https://github.com/openstreetmap/iD/issues/7598
[#7600]: https://github.com/openstreetmap/iD/issues/7600
[#7658]: https://github.com/openstreetmap/iD/issues/7658
###### Sidebar
* Accept more formats when searching for nodes, ways, and relations by ID ([#7627], [#7282], [#7775], thanks [@blackboxlogic])
* Highlight the corresponding feature in the selection list when hovering on a feature in the map ([#2949], [#7628], thanks [@jgscherber])
* Don't discard tags with empty values when toggling from the text to table tag editor ([#7297], [#7363], thanks [@zengchu2])
* Improve sorting of lassoed points in the selected features list ([#7729])
* Make the selected features list a labeled, collapsible section of the inspector ([#7273])
* Add a label to the "change feature type" button ([#6811])
* Wrap long feature type labels to multiple lines ([#7722])
* Move the "Zoom to this" button to be with the other zoom buttons on the side of the map ([#6601], [#7391])
* Change misleading "Translate" tooltip to "Add multilingual name" ([#7486])
* Add "key=value" placeholder to the text tag editor
* Focus the relation role input when clicking its label ([#7690])
* Autofocus Description field when adding a new OSM note ([#7680])
* Prevent browsers from showing their own lists of autocomplete values for fields ([#6444])
[@blackboxlogic]: https://github.com/blackboxlogic
[@jgscherber]: https://github.com/jgscherber
[@zengchu2]: https://github.com/zengchu2
[#7627]: https://github.com/openstreetmap/iD/issues/7627
[#7282]: https://github.com/openstreetmap/iD/issues/7282
[#7775]: https://github.com/openstreetmap/iD/issues/7775
[#2949]: https://github.com/openstreetmap/iD/issues/2949
[#7628]: https://github.com/openstreetmap/iD/issues/7628
[#7297]: https://github.com/openstreetmap/iD/issues/7297
[#7363]: https://github.com/openstreetmap/iD/issues/7363
[#7729]: https://github.com/openstreetmap/iD/issues/7729
[#7273]: https://github.com/openstreetmap/iD/issues/7273
[#6811]: https://github.com/openstreetmap/iD/issues/6811
[#7722]: https://github.com/openstreetmap/iD/issues/7722
[#6601]: https://github.com/openstreetmap/iD/issues/6601
[#7391]: https://github.com/openstreetmap/iD/issues/7391
[#7486]: https://github.com/openstreetmap/iD/issues/7486
[#7690]: https://github.com/openstreetmap/iD/issues/7690
[#7680]: https://github.com/openstreetmap/iD/issues/7680
[#6444]: https://github.com/openstreetmap/iD/issues/6444
###### Map
* Update the Locator Overlay ([#7025], thanks [@mikelmaron])
* Enable the Mapillary detected Map Features layer everywhere ([#7762], thanks [@nickplesha])
* Make way midpoint positions account for the taller toolbar ([#7640], [#7642], thanks [@jgscherber])
* Move corridors from the paths layer to the indoor features layer ([#7478], [#7548], thanks [@JamesKingdom])
* Render the focused feature at any zoom level during conflict resolution ([#7330])
* Support the `{@2x}` and `{r}` parameters for dynamic retina tiles in custom backgrounds ([#7712])
[@mikelmaron]: https://github.com/mikelmaron
[@nickplesha]: https://github.com/nickplesha
[@jgscherber]: https://github.com/jgscherber
[@JamesKingdom]: https://github.com/JamesKingdom
[#7025]: https://github.com/openstreetmap/iD/issues/7025
[#7762]: https://github.com/openstreetmap/iD/issues/7762
[#7640]: https://github.com/openstreetmap/iD/issues/7640
[#7642]: https://github.com/openstreetmap/iD/issues/7642
[#7478]: https://github.com/openstreetmap/iD/issues/7478
[#7548]: https://github.com/openstreetmap/iD/issues/7548
[#7330]: https://github.com/openstreetmap/iD/issues/7330
[#7712]: https://github.com/openstreetmap/iD/issues/7712
###### Tools
* Include contextual information in the page title ([#6209], [#7444], thanks [@CarycaKatarzyna])
* Point OSMCha links to the new site ([#7555], thanks [@willemarcel])
* Add toggle buttons for the History, Measurement, and Location panels ([#6397])
* Add <kbd>L</kbd> shortcut to toggle the display of the device's current location ([#7395])
* Style the "Show My Location" button as enabled while the location is being shown ([#7390])
* Flash error feedback when locating the device if the location is unavailable
* Show descriptive tooltips when Zoom In / Out buttons are disabled
* Show more calculations in the Measurement panel when multiple features are selected ([#7329])
* Flash error feedback when attempting to draw self-intersecting lines or areas
* Redact API tokens detected in custom background imagery sources ([#6801])
[@CarycaKatarzyna]: https://github.com/CarycaKatarzyna
[@willemarcel]: https://github.com/willemarcel
[#6209]: https://github.com/openstreetmap/iD/issues/6209
[#7444]: https://github.com/openstreetmap/iD/issues/7444
[#7555]: https://github.com/openstreetmap/iD/issues/7555
[#6397]: https://github.com/openstreetmap/iD/issues/6397
[#7395]: https://github.com/openstreetmap/iD/issues/7395
[#7390]: https://github.com/openstreetmap/iD/issues/7390
[#7329]: https://github.com/openstreetmap/iD/issues/7329
[#6801]: https://github.com/openstreetmap/iD/issues/6801
#### :white_check_mark: Validation
* Improve connection of "Almost Junctions" when the lines are nearly co-linear ([#7201], [#7309], thanks [@SilentSpike])
* Deprecate various `type` tag values related to utilities ([#7514], thanks [@guylamar2006])
* Deprecate `building=pavillion` misspelling ([#7749], thanks [@peternewman])
* Disable copy and paste of features that aren't mostly visible ([#7603])
* Disable straightening features that aren't mostly visible ([#7675])
* Disable merging lines when it would result in a line exceeding the maximum nodes-per-way of the API ([#6030])
* Enforce the maximum Unicode character length for tag keys and values, as well as relation roles ([#6817])
* Prevent self-intersection when drawing lines and areas on touch devices ([#7423])
* Fix tolerance when flagging very close nodes that are members of multiple ways ([#7379])
* Don't flag empty tag values as outdated
* Don't flag Google Drive as an incompatible data source ([#7545])
* Deprecate various `parking` tag values ([#7578])
* Deprecate various `tower:type` values for newly-approved `line_management` tag ([#7726])
[@SilentSpike]: https://github.com/SilentSpike
[@guylamar2006]: https://github.com/guylamar2006
[@peternewman]: https://github.com/peternewman
[#7201]: https://github.com/openstreetmap/iD/issues/7201
[#7309]: https://github.com/openstreetmap/iD/issues/7309
[#7514]: https://github.com/openstreetmap/iD/issues/7514
[#7749]: https://github.com/openstreetmap/iD/issues/7749
[#7603]: https://github.com/openstreetmap/iD/issues/7603
[#7675]: https://github.com/openstreetmap/iD/issues/7675
[#6030]: https://github.com/openstreetmap/iD/issues/6030
[#6817]: https://github.com/openstreetmap/iD/issues/6817
[#7423]: https://github.com/openstreetmap/iD/issues/7423
[#7379]: https://github.com/openstreetmap/iD/issues/7379
[#7545]: https://github.com/openstreetmap/iD/issues/7545
[#7578]: https://github.com/openstreetmap/iD/issues/7578
[#7726]: https://github.com/openstreetmap/iD/issues/7726
#### :bug: Bugfixes
* Fix issue where panning without zooming could become impossible on touchscreens ([#6745])
* Don't persist the hover styling after tapping buttons on touchscreens ([#7432])
* Fix issue where vertices may not disappear when deselecting lines and areas ([#7419])
* Fix issue where drawing features too quickly on touchscreens could zoom the map ([#2128])
* Fix issue where map data may not be selectable with a single tap on touchscreens ([#7380])
* Don't grey out the map during conflict resolution ([#6547])
* Fix issue with the feature type label not updating properly when combining features ([#7349])
* Fix issue where merging a point matching a fallback preset into an area could discard tag values ([#7446])
* Fix issue where the edit menu could persist even after deselecting the feature ([#7143])
* Fix cases where the Mapillary Image ID link button might appear disabled unexpectedly ([#7570])
* Fix cases where merging the endpoint of a looped way with an adjacent point could break the loop ([#7553])
* Don't add a value when focusing the Memorial Type field when it's empty ([#7569])
* Don't add default field values when upgrading to a replacement preset ([#7613])
* Don't autocapitalize custom multilingual name languages ([#7156])
* Properly show the delete button for filled multilingual names even if no `name` tag is present ([#7572])
* Fix issue where iD may overflow its container and cause scrollbars to appear while drawing ([#7560])
* Fix infinite recursion error when creating cyclical relations ([#7691])
* Prevent lasso from selecting hidden points ([#7728])
[#6745]: https://github.com/openstreetmap/iD/issues/6745
[#7432]: https://github.com/openstreetmap/iD/issues/7432
[#7419]: https://github.com/openstreetmap/iD/issues/7419
[#2128]: https://github.com/openstreetmap/iD/issues/2128
[#7380]: https://github.com/openstreetmap/iD/issues/7380
[#6547]: https://github.com/openstreetmap/iD/issues/6547
[#7349]: https://github.com/openstreetmap/iD/issues/7349
[#7446]: https://github.com/openstreetmap/iD/issues/7446
[#7143]: https://github.com/openstreetmap/iD/issues/7143
[#7570]: https://github.com/openstreetmap/iD/issues/7570
[#7553]: https://github.com/openstreetmap/iD/issues/7553
[#7569]: https://github.com/openstreetmap/iD/issues/7569
[#7613]: https://github.com/openstreetmap/iD/issues/7613
[#7156]: https://github.com/openstreetmap/iD/issues/7156
[#7572]: https://github.com/openstreetmap/iD/issues/7572
[#7560]: https://github.com/openstreetmap/iD/issues/7560
[#7691]: https://github.com/openstreetmap/iD/issues/7691
[#7728]: https://github.com/openstreetmap/iD/issues/7728
#### :hourglass: Performance
* Request JSON responses from the OpenStreetMap API for supported endpoints ([#7188], thanks [@mmd-osm])
* Improve performance considerably when editing some types of long lines ([#7656])
[@mmd-osm]: https://github.com/mmd-osm
[#7188]: https://github.com/openstreetmap/iD/issues/7188
[#7656]: https://github.com/openstreetmap/iD/issues/7656
#### :mortar_board: Walkthrough / Help
* Show touch-specific instructions in the walkthrough when the mapper is using a touchscreen ([#7692], [#7745])
* Include information about touch interactions in the help docs
* Use mouse/touch icons in the walkthrough and style shortcuts as keyboard keys
* Reference interface labels directly in the help docs to ensure they always correspond to what's onscreen
[#7692]: https://github.com/openstreetmap/iD/issues/7692
[#7745]: https://github.com/openstreetmap/iD/issues/7745
#### :rocket: Presets
###### New Presets
* Add Model Shop preset ([#7776], [#7779], thanks [@nisargshh])
* Add Office Building, Pigsty, and Cowshed presets ([#7539])
* Add Covered Reservoir preset ([#7534])
* Add Shoe Repair Shop preset ([#7562])
* Add Orthodontist preset ([#7575])
* Add Bubble Tea Cafe preset ([#7632])
* Add Collectibles Shop preset ([#7588])
* Add Free Box preset ([#7574])
* Add Goods Conveyor preset ([#7637])
* Add Trophy Shop preset ([#7641])
* Add Vacuum Cleaning Station preset ([#7483])
* Add Emergency Room Entrance preset ([#7725])
* Add Destination Sign relation preset ([#6970])
* Add Coffeehouse and Courtyard presets
[@nisargshh]: https://github.com/nisargshh
[#7776]: https://github.com/openstreetmap/iD/issues/7776
[#7779]: https://github.com/openstreetmap/iD/issues/7779
[#7539]: https://github.com/openstreetmap/iD/issues/7539
[#7534]: https://github.com/openstreetmap/iD/issues/7534
[#7562]: https://github.com/openstreetmap/iD/issues/7562
[#7575]: https://github.com/openstreetmap/iD/issues/7575
[#7632]: https://github.com/openstreetmap/iD/issues/7632
[#7588]: https://github.com/openstreetmap/iD/issues/7588
[#7574]: https://github.com/openstreetmap/iD/issues/7574
[#7637]: https://github.com/openstreetmap/iD/issues/7637
[#7641]: https://github.com/openstreetmap/iD/issues/7641
[#7483]: https://github.com/openstreetmap/iD/issues/7483
[#7725]: https://github.com/openstreetmap/iD/issues/7725
[#6970]: https://github.com/openstreetmap/iD/issues/6970
###### Changed Presets
* Rename Metal Construction preset to Metalworker ([#7549], [#7568], thanks [@animesh-007])
* Don't add `seamark:type=light_major` to lighthouses by default ([#7621], thanks [@Eric-Sparks])
* Don't support using the Foot & Cycle Path preset in Germany ([#7703], thanks [@henry4442])
* Limit the Bail Bond Agent preset to the United States and the Philippines
* Rename Summit Cross preset to Cross ([#7678])
* Rename Road Closed preset to Closed Road
* Rename Organic Goods Store preset to Organic Supermarket and add Organic Products field ([#7714])
* Add "Play" to the names of several playground equipment presets ([#7730])
* Support Quarry features as points ([#7515])
* Support Marine Fuel Station features as vertices
* Add search terms to Lift Gate, Height Restrictor, and Storage Rental ([#7537], [#7538], [#7681])
[@animesh-007]: https://github.com/animesh-007
[@Eric-Sparks]: https://github.com/Eric-Sparks
[@henry4442]: https://github.com/henry4442
[#7549]: https://github.com/openstreetmap/iD/issues/7549
[#7568]: https://github.com/openstreetmap/iD/issues/7568
[#7621]: https://github.com/openstreetmap/iD/issues/7621
[#7703]: https://github.com/openstreetmap/iD/issues/7703
[#7678]: https://github.com/openstreetmap/iD/issues/7678
[#7714]: https://github.com/openstreetmap/iD/issues/7714
[#7730]: https://github.com/openstreetmap/iD/issues/7730
[#7515]: https://github.com/openstreetmap/iD/issues/7515
[#7537]: https://github.com/openstreetmap/iD/issues/7537
[#7538]: https://github.com/openstreetmap/iD/issues/7538
[#7681]: https://github.com/openstreetmap/iD/issues/7681
###### New Fields
* Add Support, Color, and Material fields to Post Box ([#7738], [#7777], thanks [@yyazdi13])
* Add Type field to Ruins ([#7507], thanks [@hikemaniac])
* Add Automated field to Car Wash ([#7580], [#7584], thanks [@animesh-007])
* Add Fee field to Nightclub ([#7579], [#7585], thanks [@animesh-007])
* Add Real Fire field to pub presets in Ireland and the United Kingdom ([#7630], thanks [@rory])
* Add Image field ([#7531])
* Add VHF Channel field to Marina ([#7622])
* Add Grades field to school presets ([#7571])
* Add Type field to Closed Road ([#7519])
* Add Line Management field to High-Voltage Tower and Power Pole ([#7726])
* Add Destination field to Waterway relation preset ([#7532])
* Add Total Ascent, Total Descent, and Forms Loop fields to route presets ([#7671])
* Add Phone and Website fields to commercial building presets ([#7541])
* Add Mount and Type fields to Street Lamp
[@yyazdi13]: https://github.com/yyazdi13
[@hikemaniac]: https://github.com/hikemaniac
[@animesh-007]: https://github.com/animesh-007
[@rory]: https://github.com/rory
[#7738]: https://github.com/openstreetmap/iD/issues/7738
[#7777]: https://github.com/openstreetmap/iD/issues/7777
[#7507]: https://github.com/openstreetmap/iD/issues/7507
[#7580]: https://github.com/openstreetmap/iD/issues/7580
[#7584]: https://github.com/openstreetmap/iD/issues/7584
[#7579]: https://github.com/openstreetmap/iD/issues/7579
[#7585]: https://github.com/openstreetmap/iD/issues/7585
[#7630]: https://github.com/openstreetmap/iD/issues/7630
[#7531]: https://github.com/openstreetmap/iD/issues/7531
[#7622]: https://github.com/openstreetmap/iD/issues/7622
[#7571]: https://github.com/openstreetmap/iD/issues/7571
[#7519]: https://github.com/openstreetmap/iD/issues/7519
[#7726]: https://github.com/openstreetmap/iD/issues/7726
[#7532]: https://github.com/openstreetmap/iD/issues/7532
[#7671]: https://github.com/openstreetmap/iD/issues/7671
[#7541]: https://github.com/openstreetmap/iD/issues/7541
###### Changed Fields
* Allow custom values in the Public Bath Specialty field ([#7481])
* Remove Both/All option from Yield Sign Direction field ([#7581])
[#7481]: https://github.com/openstreetmap/iD/issues/7481
[#7581]: https://github.com/openstreetmap/iD/issues/7581
#### :hammer: Development
* :warning: Add dedicated initialization step to `coreContext` ([#7304])
* :warning: Remove various convenience functions of `coreContext`
* :warning: Fetch JSON resources asynchronously at runtime using `coreFileFetcher` instead of bundling them ([#4994])
* :warning: Add `coreUploader` to manage programatic uploading of edits ([#7247], [#7333])
* :warning: Wrap localization functionality into global `localizer` singleton of `coreLocalizer`
* :warning: Replace `context.storage()` with global `prefs` singleton of `corePreferences`
* Add optimized `coreTree.waySegments` endpoint to return edges overlapping an area
* Resolve browser cookie warning by using `samesite=strict` ([#7596])
* :warning: Remove deprecated radial menu and "tail" behavior
* Add endpoints for setting the changeset parameters programmatically ([#7614])
* Add endpoints for customizing the page title behavior ([#7503])
* :warning: Switch to pointer events on supported browsers, with fallback to mouse events ([#5505])
* :warning: Namespace iD's `id` HTML attributes under `ideditor-` to avoid collisions
* Fix cases where iD might miscalculate element positions when embedded ([#7551])
* Replace Greenkeeper with Dependabot for keeping dependencies up-to-date ([#7430])
[#7304]: https://github.com/openstreetmap/iD/issues/7304
[#4994]: https://github.com/openstreetmap/iD/issues/4994
[#7247]: https://github.com/openstreetmap/iD/issues/7247
[#7333]: https://github.com/openstreetmap/iD/issues/7333
[#7596]: https://github.com/openstreetmap/iD/issues/7596
[#7614]: https://github.com/openstreetmap/iD/issues/7614
[#7503]: https://github.com/openstreetmap/iD/issues/7503
[#5505]: https://github.com/openstreetmap/iD/issues/5505
[#7551]: https://github.com/openstreetmap/iD/issues/7551
[#7430]: https://github.com/openstreetmap/iD/issues/7430
# 2.17.3
##### 2020-Apr-24
-2
View File
@@ -5,8 +5,6 @@
:warning: _We've recently changed our branch names. [`develop`](https://github.com/openstreetmap/iD/tree/develop) is now the default branch, replacing `2.x`. [`v3-prototype`](https://github.com/openstreetmap/iD/tree/v3-prototype) is now the alpha version of iD v3, replacing `master`. [`release`](https://github.com/openstreetmap/iD/tree/release) is still `release`._
[Watch the video](https://2019.stateofthemap.us/program/sat/id-v3.html) from our talk at State of the Map US 2019 to learn more about the current status of iD and our goals for v3.
## Basics
+22 -10
View File
@@ -1,13 +1,12 @@
## Release Checklist
### Prerelease (several days prior)
- Notify translators of impending release
(https://www.transifex.com/projects/p/id-editor/announcements/)
- [Notify translators](https://www.transifex.com/projects/p/id-editor/announcements/) of the impending release
- Notify TomH
### Prep
- If you don't have a `transifex.auth` file in the root of your iD checkout,
you'll need to create a Transifex account, ask @bhousel for admin rights
you'll need to create a Transifex account, ask @quincylvania or @bhousel for admin rights
on the iD project, and then create this file with contents like<br><pre>
{"user": "yourusername", "password": "*******"}</pre>This file is not version-controlled and will not be checked in.
@@ -26,7 +25,7 @@ $ git add . && git commit -m 'npm run translations'
```
- Update `CHANGELOG.md`
- Update version number in `modules/core/context.js`, `package.json`
- Set release version number in `modules/core/context.js` and `package.json`
```bash
$ git add . && git commit -m 'vA.B.C'
@@ -46,21 +45,34 @@ $ git push origin -f release vA.B.C
- Open https://github.com/openstreetmap/iD/tags
- Click `•••` > `Create Release` and link to `CHANGELOG.md` in `Describe this release`
#### Prepare `develop` branch for further development
```bash
$ git checkout develop
```
- Increment version number and add `-dev` suffix in `modules/core/context.js` and `package.json`
```bash
$ git add . && git commit -m 'Set development version number'
$ git push origin develop
```
### Update `openstreetmap-website`
#### Setup remotes (first time only)
```bash
$ git remote add osmlab git@github.com:osmlab/openstreetmap-website.git
$ git remote add upstream git@github.com:openstreetmap/openstreetmap-website.git
$ git remote add openstreetmap git@github.com:openstreetmap/openstreetmap-website.git
```
#### Sync develop branches
#### Sync `master` branches
```bash
$ git fetch --all
$ git checkout develop
$ git reset --hard upstream/develop
$ git push osmlab develop
$ git checkout master
$ git reset --hard openstreetmap/master
$ git push osmlab master
```
#### Create and push branch with the new iD version
@@ -72,4 +84,4 @@ $ rm -rf vendor/assets/iD/* && vendorer
$ git add . && git commit -m 'Update to iD vA.B.C'
$ git push osmlab
```
- [Open a pull request](https://github.com/openstreetmap/openstreetmap-website/compare/develop...osmlab:develop) using the [markdown text from the changelog](https://raw.githubusercontent.com/openstreetmap/iD/release/CHANGELOG.md) as the description
- [Open a pull request](https://github.com/openstreetmap/openstreetmap-website/compare/master...osmlab:master) using the [markdown text from the changelog](https://raw.githubusercontent.com/openstreetmap/iD/release/CHANGELOG.md) as the comment
-4
View File
@@ -390,10 +390,6 @@ path.line.casing.tag-road {
}
/* service roads */
.preset-icon .icon.tag-highway-service {
color: #fff;
fill: #666;
}
path.line.stroke.tag-highway-service,
path.line.stroke.tag-service {
stroke: #fff;
+68 -97
View File
@@ -16,7 +16,7 @@
position: relative;
z-index: 0;
font: normal 12px/1.6667 "-apple-system", BlinkMacSystemFont,
font: normal 12px/1.6667 ui-sans-serif, "-apple-system", BlinkMacSystemFont,
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
"Fira Sans", "Droid Sans", "Helvetica Neue", "Arial",
sans-serif;
@@ -147,8 +147,8 @@ kbd {
}
code {
font-family: monospace, monospace;
background: #eee;
font-family: ui-monospace, monospace, monospace;
background: rgba(174, 174, 174, 0.25);
padding: 1px 2px;
}
@@ -176,6 +176,7 @@ input[type=email] {
height: 30px;
border-radius: 4px;
text-overflow: ellipsis;
overflow: hidden;
}
.ideditor[dir='rtl'] textarea,
.ideditor[dir='rtl'] input[type=text],
@@ -406,6 +407,16 @@ button[disabled].action {
height: 20px;
}
.icon.operation use {
fill: #222;
color: #79f;
}
button.disabled .icon.operation use,
.icon.operation.disabled use {
fill: rgba(32,32,32,.2);
color: rgba(40,40,40,.2);
}
.icon.monochrome use {
fill: currentColor;
}
@@ -506,6 +517,14 @@ button[disabled].action {
.ideditor[dir='rtl'] .top-toolbar .toolbar-item:last-child .item-content {
margin-left: 10px;
}
.ideditor[dir='ltr'] .top-toolbar .toolbar-item:last-child .item-label,
.ideditor[dir='rtl'] .top-toolbar .toolbar-item:first-child .item-label {
padding-right: 5px;
}
.ideditor[dir='ltr'] .top-toolbar .toolbar-item:first-child .item-label,
.ideditor[dir='rtl'] .top-toolbar .toolbar-item:last-child .item-label {
padding-left: 5px;
}
.top-toolbar .toolbar-item .item-label {
text-align: center;
font-size: 11px;
@@ -622,15 +641,17 @@ button.add-note svg.icon {
border-bottom: 1px solid #ccc;
height: 60px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.header h3 {
text-align: center;
margin-bottom: 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
padding: 20px;
padding: 0;
}
.header button,
@@ -647,20 +668,14 @@ button.add-note svg.icon {
}
.field-help-title button.close,
.sidebar-component .header button.data-editor-close,
.sidebar-component .header button.note-editor-close,
.sidebar-component .header button.qa-editor-close,
.entity-editor-pane .header button.preset-close,
.sidebar .header button.close,
.preset-list-pane .header button.preset-choose {
position: absolute;
right: 0;
top: 0;
}
.ideditor[dir='rtl'] .field-help-title button.close,
.ideditor[dir='rtl'] .sidebar-component .header button.data-editor-close,
.ideditor[dir='rtl'] .sidebar-component .header button.note-editor-close,
.ideditor[dir='rtl'] .sidebar-component .header button.qa-editor-close,
.ideditor[dir='rtl'] .entity-editor-pane .header button.preset-close,
.ideditor[dir='rtl'] .sidebar .header button.close,
.ideditor[dir='rtl'] .preset-list-pane .header button.preset-choose {
left: 0;
right: auto;
@@ -698,13 +713,15 @@ button.add-note svg.icon {
position: absolute;
bottom: 0;
margin: 0;
padding: 5px 20px 5px 20px;
padding: 0 15px;
border-top: 1px solid #ccc;
background-color: #f6f6f6;
width: 100%;
height: 30px;
z-index: 1;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
list-style: none;
display: flex;
}
@@ -718,6 +735,10 @@ button.add-note svg.icon {
justify-content: space-between;
}
.header-block {
display: flex;
align-items: center;
}
.header-block-outer {
width: 20%;
}
@@ -725,6 +746,7 @@ button.add-note svg.icon {
.header-block-close {
display: flex;
justify-content: flex-end;
height: 100%;
}
/* Hide/Toggle collapsible sections (aka Disclosure)
@@ -770,9 +792,9 @@ a.hide-toggle {
.sidebar-resizer {
position: absolute;
top: 0;
right: -6px;
right: -10px;
width: 10px;
height: 100%;
width: 6px;
cursor: col-resize;
/* disable drag-to-select */
user-select: none;
@@ -902,7 +924,6 @@ a.hide-toggle {
width: 100%;
}
.no-results-item,
.geocode-item,
.feature-list-item {
width: 100%;
position: relative;
@@ -911,11 +932,13 @@ a.hide-toggle {
}
.geocode-item {
width: 50%;
width: 100%;
max-width: 200px;
background-color: #ccc;
left: 25%;
margin-top: 30px;
border-radius: 2px;
margin: 30px auto;
padding: 5px;
height: auto;
min-height: 40px;
}
.ideditor[dir='rtl'] .geocode-item {
@@ -1008,7 +1031,6 @@ a.hide-toggle {
.preset-list {
width: 100%;
padding: 20px 20px 10px 20px;
border-bottom: 1px solid #ccc;
}
.preset-list-item {
@@ -1222,33 +1244,33 @@ a.hide-toggle {
}
}
.preset-list-item button.tag-reference-button {
.preset-list-button-wrap button.tag-reference-button {
height: 100%;
width: 32px;
flex: 0 0 auto;
background: #f6f6f6;
}
.ideditor[dir='ltr'] .preset-list-item button.tag-reference-button {
.ideditor[dir='ltr'] .preset-list-button-wrap button.tag-reference-button {
border-left: 1px solid #ccc;
}
.ideditor[dir='rtl'] .preset-list-item button.tag-reference-button {
.ideditor[dir='rtl'] .preset-list-button-wrap button.tag-reference-button {
border-right: 1px solid #ccc;
}
.ideditor[dir='ltr'] .preset-list-item button:last-child {
.ideditor[dir='ltr'] .preset-list-button-wrap:not(.category) button:last-child {
border-radius: 0 4px 4px 0;
}
.ideditor[dir='rtl'] .preset-list-item button:last-child {
.ideditor[dir='rtl'] .preset-list-button-wrap:not(.category) button:last-child {
border-radius: 4px 0 0 4px;
}
.preset-list-item button.tag-reference-button:active {
.preset-list-button-wrap button.tag-reference-button:active {
background: #f1f1f1;
}
@media (hover: hover) {
.preset-list-item button.tag-reference-button:hover {
.preset-list-button-wrap button.tag-reference-button:hover {
background: #f1f1f1;
}
}
.preset-list-item button.tag-reference-button .icon {
.preset-list-button-wrap button.tag-reference-button .icon {
opacity: .5;
}
@@ -1275,12 +1297,11 @@ a.hide-toggle {
}
.subgrid .preset-list {
width: auto;
padding: 10px;
margin-top: 0;
margin: 0 -10px;
border: 0;
border-radius: 8px;
width: -webkit-calc(100% + 20px);
margin-left: -10px;
}
.subgrid .preset-list > *:last-child {
margin-bottom: 0;
@@ -1293,7 +1314,7 @@ a.hide-toggle {
width: 0;
height: 0;
margin-left: 50%;
margin-left: -webkit-calc(50% - 10px);
margin-left: calc(50% - 10px);
}
@@ -1371,12 +1392,17 @@ a.hide-toggle {
overflow: hidden;
}
.field-label .label-text {
overflow: hidden;
text-overflow: ellipsis;
flex: 1 1 auto;
padding: 5px 0 5px 10px;
}
.ideditor[dir='rtl'] .field-label .label-text {
padding: 5px 10px 5px 0;
}
.field-label .label-text span {
white-space: nowrap;
}
.label-text .label-textannotation svg.icon {
margin: 0 8px;
@@ -2310,7 +2336,7 @@ div.combobox {
.more-fields input {
margin-left: 10px;
flex: 1 1 50%;
flex: 1 1 auto;
}
.ideditor[dir='rtl'] .more-fields input {
margin-left: auto;
@@ -2583,21 +2609,9 @@ img.tag-reference-wiki-image {
}
.form-field-input-member > input.member-role {
border-radius: 0 0 0 4px;
}
.ideditor[dir='rtl'] .form-field-input-member > input.member-role {
border-radius: 0 0 4px 0;
}
.member-incomplete .form-field-input-member > input.member-role,
.ideditor[dir='rtl'] .member-incomplete .form-field-input-member > input.member-role {
border-radius: 0 0 4px 4px;
}
.member-incomplete .member-delete {
display: none;
}
.member-row-new .member-entity-input {
flex: 1 1 100%;
border-radius: 4px 4px 0 0;
@@ -2809,14 +2823,6 @@ input.key-trap {
.qa-details-subsection:empty {
display: none;
}
.qa-details-container code {
padding: .2em .4em;
margin: 0;
font-size: 85%;
font-family: monospace;
background-color: rgba(27,31,35,.05);
border-radius: 3px;
}
.note-save .new-comment-input,
.qa-save .new-comment-input {
@@ -3758,19 +3764,6 @@ li.issue-fix-item:not(.actionable) .fix-icon {
margin-bottom: 20px;
}
.help-pane .left-content .body p code {
padding: 3px 4px;
font-size: 12px;
color: #555;
vertical-align: baseline;
background-color: #f6f6f6;
border: solid 1px #ccc;
margin: 0 2px;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}
.help-pane .left-content .icon.pre-text {
vertical-align: text-top;
margin-right: 0;
@@ -3779,7 +3772,8 @@ li.issue-fix-item:not(.actionable) .fix-icon {
}
.help-pane .toc {
width: 40%;
width: 100%;
max-width: 200px;
float: right;
margin-left: 20px;
margin-bottom: 20px;
@@ -4412,11 +4406,6 @@ img.tile-debug {
.flash-icon use {
color: #222;
}
.flash-icon.operation use {
fill: #222;
color: #79f;
}
.flash-icon.disabled use,
.flash-icon.operation.disabled use {
fill: rgba(32,32,32,0.7);
@@ -4682,16 +4671,12 @@ img.tile-debug {
padding: 20px;
border-bottom: 1px solid #ccc;
}
.modal-section p:not(:last-of-type),
.modal-section ul {
.modal-section p:not(:last-of-type) {
padding-bottom: 20px;
}
.modal-section h4 {
padding-bottom: 0;
}
.modal-section.header h3 {
padding: 0;
}
.modal-section.buttons {
text-align: center;
}
@@ -4711,7 +4696,6 @@ img.tile-debug {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
margin-bottom: 30px;
}
.save-section .buttons .action,
@@ -4948,15 +4932,6 @@ img.tile-debug {
color: #555;
}
svg.mouseclick use.left {
fill: rgba(112, 146, 255, 1);
color: rgba(112, 146, 255, 0);
}
svg.mouseclick use.right {
fill: rgba(112, 146, 255, 0);
color: rgba(112, 146, 255, 1);
}
.modal-shortcuts .shortcut-keys .gesture {
color: #333;
padding: 3px;
@@ -4976,6 +4951,9 @@ svg.mouseclick use.right {
.settings-custom-background .instructions-template p {
margin-bottom: 0;
}
.settings-custom-background .instructions-template ul {
padding-bottom: 20px;
}
.settings-custom-background .instructions-template ul li {
list-style-type: disc;
list-style-position: inside;
@@ -5420,15 +5398,8 @@ li.hide + li.version .badge .tooltip .popover-arrow {
}
.edit-menu-item use {
fill: #222;
color: #79f;
pointer-events: none;
}
.edit-menu-item.disabled use {
fill: rgba(32,32,32,.2);
color: rgba(40,40,40,.2);
}
/* Lasso
------------------------------------------------------- */
@@ -5517,7 +5488,7 @@ li.hide + li.version .badge .tooltip .popover-arrow {
.intro-nav-wrap button.chapter {
flex: 1 1 100%;
padding: 0px 20px;
padding: 0px 5px;
}
.intro-nav-wrap button.chapter.next {
+169 -125
View File
@@ -70,7 +70,7 @@ en:
title: Continue
description: Continue this line.
not_eligible: No line can be continued here.
multiple: Several lines can be continued here. To choose a line, press the Shift key and click on it to select it.
multiple: Several lines can be continued here. Add one to the selection to continue.
annotation:
line: Continued a line.
area: Continued an area.
@@ -176,7 +176,7 @@ en:
lines: Straightened several lines.
too_bendy:
single: This can't be straightened because it bends too much.
multiple: These can't be straighted because they bend too much.
multiple: These can't be straightened because they bend too much.
connected_to_hidden:
single: This can't be straightened because it is connected to a hidden feature.
multiple: These can't be straightened because some are connected to hidden features.
@@ -315,6 +315,7 @@ en:
vertex: Moved a node in a way.
line: Moved a line.
area: Moved an area.
relation: Moved a relation.
multiple: Moved multiple features.
incomplete_relation:
single: This feature can't be moved because it hasn't been fully downloaded.
@@ -371,6 +372,7 @@ en:
line: Rotated a line.
area: Rotated an area.
multiple: Rotated multiple features.
relation: Rotated a relation.
incomplete_relation:
single: This feature can't be rotated because it hasn't been fully downloaded.
multiple: These features can't be rotated because they haven't been fully downloaded.
@@ -473,9 +475,11 @@ en:
select_from_name: "Click to select {from} {fromName}"
toggle: "Click for \"{turn}\""
undo:
title: Undo
tooltip: "Undo: {action}"
nothing: Nothing to undo.
redo:
title: Redo
tooltip: "Redo: {action}"
nothing: Nothing to redo.
tooltip_keyhint: "Shortcut:"
@@ -606,10 +610,11 @@ en:
view_on_keepRight: View on keepright.at
feature_type: Feature Type
fields: Fields
tags_count: "Tags ({count})"
members_count: "Members ({count})"
relations_count: "Relations ({count})"
features_count: "Features ({count})"
tags: Tags
members: Members
relations: Relations
features: Features
title_count: "{title} ({count})"
add_to_relation: Add to a relation
new_relation: New relation...
choose_relation: Choose a parent relation
@@ -865,10 +870,7 @@ en:
delete: Leave Deleted
download_changes: Or download osmChange file
done: "All conflicts resolved!"
help: |
Another user changed some of the same map features you changed.
Click on each feature below for more details about the conflict, and choose whether to keep
your changes or the other user's changes.
help: "Another user changed some of the same map features you changed. Click on each feature below for more details about the conflict, and choose whether to keep your changes or the other user's changes."
merge_remote_changes:
conflict:
deleted: 'This feature has been deleted by {user}.'
@@ -1216,7 +1218,6 @@ en:
mapillary_map_features:
title: "Map Features"
tooltip: "Map features from Mapillary"
request_data: "Request Data"
construction:
flat:
crosswalk_plain: plain crosswalk
@@ -1294,167 +1295,172 @@ en:
open_data_h: "Open Data"
open_data: "Edits that you make on this map will be visible to everyone who uses OpenStreetMap. Your edits can be based on personal knowledge, on-the-ground surveying, or imagery collected from aerial or street level photos. Copying from commercial sources, like Google Maps, [is strictly forbidden](https://www.openstreetmap.org/copyright)."
before_start_h: "Before you start"
before_start: "You should be familiar with OpenStreetMap and this editor before you start editing. iD contains a walkthrough to teach you the basics of editing OpenStreetMap. Click \"Start the Walkthrough\" on this screen to take the tutorial - it takes only about 15 minutes."
before_start: "You should be familiar with OpenStreetMap and this editor before you start editing. iD contains a walkthrough to teach you the basics of editing OpenStreetMap. Press the \"{start_the_walkthrough}\" button on this screen to start the tutorialit takes only about 15 minutes."
open_source_h: "Open Source"
open_source: "The iD editor is a collaborative open source project, and you are using version {version} now. The source code is available [on GitHub](https://github.com/openstreetmap/iD)."
open_source_help: "You can help iD by [translating](https://github.com/openstreetmap/iD/blob/develop/CONTRIBUTING.md#translating) or [reporting bugs](https://github.com/openstreetmap/iD/issues)."
overview:
title: Overview
navigation_h: "Navigation"
navigation_drag: "You can drag the map by pressing and holding down the {leftclick} left mouse button and moving the mouse around. You can also use the `↓`, `↑`, `←`, `→` arrow keys on your keyboard."
navigation_zoom: "You can zoom in or out by scrolling with the mouse wheel or trackpad, or by clicking the {plus} / {minus} buttons along the side of the map. You can also use the `+`, `-` keys on your keyboard."
navigation_drag: "You can drag the map by holding down the {leftclick} left mouse button and moving the mouse around, or by {touchdrag_icon} dragging on a touchscreen. You can also use the `↓`, `↑`, `←`, `→` arrow keys on a keyboard."
navigation_zoom: "You can zoom in or out by scrolling with a {mousewheel_icon} mouse wheel or trackpad, or by {pinch_icon} pinching with two fingers on a touchscreen. You can also press the {plus} / {minus} buttons along the side of the map or the `+`, `-` keys on a keyboard."
features_h: "Map Features"
features: "We use the word *features* to describe things that appear on the map, such as roads, buildings, or points of interest. Anything in the real world can be mapped as a feature on OpenStreetMap. Map features are represented on the map using *points*, *lines*, or *areas*."
nodes_ways: "In OpenStreetMap, points are sometimes called *nodes*, and lines and areas are sometimes called *ways*."
editing:
title: "Editing & Saving"
select_h: "Select"
select_left_click: "{leftclick} Left-click on a feature to select it. This will highlight it with a pulsing glow, and the sidebar will display details about that feature, such as its name or address."
select_right_click: "{rightclick} Right-click on a feature to display the editing menu, which shows the commands that are available, such as rotating, moving, and deleting."
select_left_click: "{leftclick} Left-click or {tap_icon} tap a feature to select it. This will highlight it with a pulsing glow and display further details about it in the sidebar."
select_right_click: "{rightclick} Right-click or {longpress_icon} long-press a feature to display the edit menu, which provides commands such as copy, rotate, and delete."
select_space: "The `{space}` key can also be used instead of left-click when selecting and drawing."
multiselect_h: "Multiselect"
multiselect_shift_click: "`{shift}`+{leftclick} left-click to select several features together. This makes it easier to move or delete multiple items."
multiselect: "Selecting multiple features together lets you quickly edit them all at once."
multiselect_shift_click: "With a mouse and keyboard, hold `{shift}` and {leftclick} left-click features to add them to the selection. On a touchscreen, {longpress_icon} tap-and-hold one feature while {tap_icon} tapping additional features with another finger."
multiselect_lasso: "Another way to select multiple features is to hold down the `{shift}` key, then press and hold down the {leftclick} left mouse button and drag the mouse to draw a selection lasso. All of the points inside the lasso area will be selected."
undo_redo_h: "Undo & Redo"
undo_redo: "Your edits are stored locally in your browser until you choose to save them to the OpenStreetMap server. You can undo edits by clicking the {undo} **Undo** button, and redo them by clicking the {redo} **Redo** button."
undo_redo: "Your edits are stored locally in your browser until you choose to save them to the OpenStreetMap server. You can undo edits by pressing the {undo_icon} **{undo}** button, and redo them by pressing the {redo_icon} **{redo}** button."
save_h: "Save"
save: "Click {save} **Save** to finish your edits and send them to OpenStreetMap. You should remember to save your work frequently!"
save: "Press the {save_icon} **{save}** button to finish your edits and send them to OpenStreetMap. You should remember to save your work frequently!"
save_validation: "On the save screen, you'll have a chance to review what you've done. iD will also perform some basic checks for missing data and may offer helpful suggestions and warnings if something doesn't seem right."
upload_h: "Upload"
upload: "Before uploading your changes you must enter a [changeset comment](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Then click **Upload** to send your changes to OpenStreetMap, where they will be merged into the map and publicly visible to everyone."
upload: "Before uploading your changes you must enter a [changeset comment](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Then press **{upload}** to send your changes to OpenStreetMap, where they will be merged into the map and publicly visible to everyone."
backups_h: "Automatic Backups"
backups: "If you can't finish your edits in one sitting, for example if your computer crashes or you close the browser tab, your edits are still saved in your browser's storage. You can come back later (on the same browser and computer), and iD will offer to restore your work."
backups: "If you happen to close the browser before saving, your edits are still stored locally. iD will offer to restore your work when you come back later on the same browser and device."
keyboard_h: "Keyboard Shortcuts"
keyboard: "You can view a list of keyboard shortcuts by pressing the `?` key."
keyboard: "You can view a list of keyboard shortcuts by pressing the `{shortcuts_key}` key."
feature_editor:
title: Feature Editor
intro: "The *feature editor* appears alongside the map, and allows you to see and edit all of the information for the selected feature."
definitions: "The top section displays the feature's type. The middle section contains *fields* showing the feature's attributes, such as its name or address."
type_h: "Feature Type"
type: "You can click on the feature type to change the feature to a different type. Everything that exists in the real world can be added to OpenStreetMap, so there are thousands of feature types to choose from."
type_picker: "The type picker displays the most common feature types, such as parks, hospitals, restaurants, roads, and buildings. You can search for anything by typing what you're looking for in the search box. You can also click the {inspect} **Info** icon next to the feature type to learn more about it."
type: "You can press the feature type to change the feature to a different type. Everything that exists in the real world can be added to OpenStreetMap, so there are thousands of feature types to choose from."
type_picker: "The type picker displays the most common feature types, such as parks, hospitals, restaurants, roads, and buildings. You can search for anything by typing what you're looking for in the search box. You can also press the {inspect} **Info** icon next to the feature type to learn more about it."
fields_h: "Fields"
fields_all_fields: "The \"Fields\" section contains all of the feature's details that you may edit. In OpenStreetMap, all of the fields are optional, and it's OK to leave a field blank if you are unsure."
fields_all_fields: "The \"{fields}\" section contains all of the feature's details that you may edit. In OpenStreetMap, all of the fields are optional, and it's OK to leave a field blank if you are unsure."
fields_example: "Each feature type will display different fields. For example, a road may display fields for its surface and speed limit, but a restaurant may display fields for the type of food it serves and the hours it is open."
fields_add_field: "You can also click the \"Add field\" dropdown to add more fields, such as a description, Wikipedia link, wheelchair access, and more."
fields_add_field: "You can also use the \"Add field\" dropdown to add more fields, such as a description, Wikipedia link, wheelchair access, and more."
tags_h: "Tags"
tags_all_tags: "Below the fields section, you can expand the \"Tags\" section to edit any of the OpenStreetMap *tags* for the selected feature. Each tag consists of a *key* and *value*, data elements that define all of the features stored in OpenStreetMap."
tags_all_tags: "Below the fields section, you can expand the \"{tags}\" section to edit any of the OpenStreetMap *tags* for the selected feature. Each tag consists of a *key* and *value*, data elements that define all of the features stored in OpenStreetMap."
tags_resources: "Editing a feature's tags requires intermediate knowledge about OpenStreetMap. You should consult resources like the [OpenStreetMap Wiki](https://wiki.openstreetmap.org/wiki/Main_Page) or [Taginfo](https://taginfo.openstreetmap.org/) to learn more about accepted OpenStreetMap tagging practices."
points:
title: Points
intro: "*Points* can be used to represent features such as shops, restaurants, and monuments. They mark a specific location, and describe what's there."
add_point_h: "Adding Points"
add_point: "To add a point, click the {point} **Point** button on the toolbar above the map, or press the shortcut key `1`. This will change the mouse cursor to a cross symbol."
add_point_finish: "To place the new point on the map, position the mouse cursor where the point should go, then {leftclick} left-click or press `Space`."
add_point: "To add a point, press the {point_icon} **{point}** button on the toolbar above the map, or press the shortcut key `1`."
add_point_finish: "Next, place the new point on the map. With a mouse, position the cursor where the point should go and {leftclick} left-click. On a touchscreen, {tap_icon} tap the location."
move_point_h: "Moving Points"
move_point: "To move a point, place the mouse cursor over the point, then press and hold the {leftclick} left mouse button while dragging the point to its new location."
move_point: "To move a point, {leftclick} left-click and drag it with a mouse or {touchdrag_icon} tap-and-drag it on a touchscreen."
delete_point_h: "Deleting Points"
delete_point: "It's OK to delete features that don't exist in the real world. Deleting a feature from OpenStreetMap removes it from the map that everyone uses, so you should make sure a feature is really gone before you delete it."
delete_point_command: "To delete a point, {rightclick} right-click on the point to select it and show the edit menu, then use the {delete} **Delete** command."
delete_point_command: "To delete a point, {rightclick} right-click or {longpress_icon} long-press the point to show the edit menu, then use the {delete_icon} **{delete}** command."
lines:
title: Lines
intro: "*Lines* are used to represent features such as roads, railroads, and rivers. Lines should be drawn down the center of the feature that they represent."
add_line_h: "Adding Lines"
add_line: "To add a line, click the {line} **Line** button on the toolbar above the map, or press the shortcut key `2`. This will change the mouse cursor to a cross symbol."
add_line_draw: "Next, position the mouse cursor where the line should begin and {leftclick} left-click or press `Space` to begin placing nodes along the line. Continue placing more nodes by clicking or pressing `Space`. While drawing, you can zoom in or drag the map in order to add more detail."
add_line_finish: "To finish a line, press `{return}` or click again on the last node."
add_line: "To add a line, press the {line_icon} **{line}** button on the toolbar above the map, or press the shortcut key `2`."
add_line_draw: "Next, mark the line's starting location. With a mouse, position the cursor where the line should begin and {leftclick} left-click to place a node. On a touchscreen, {tap_icon} tap the location."
add_line_continue: "Continue placing nodes by {leftclick} clicking or {tap_icon} tapping along the shape of the line. While drawing, you can zoom in or drag the map in order to add more detail."
add_line_finish: "To finish a line, click or tap on the last node again or press `{return}`."
modify_line_h: "Modifying Lines"
modify_line_dragnode: "Often you'll see lines that aren't shaped correctly, for example a road that does not match up with the background imagery. To adjust the shape of a line, first {leftclick} left-click to select it. All nodes of the line will be drawn as small circles. You can then drag the nodes to better locations."
modify_line_addnode: "You can also create new nodes along a line either by {leftclick}**x2** double-clicking on the line or by dragging the small triangles at the midpoints between nodes."
modify_line_dragnode: "Often you'll see lines that aren't shaped correctly, for example a road that does not match up with the background imagery. To adjust the shape of a line, first select it. All nodes of the line will be drawn as small circles. You can then drag the nodes to better locations."
modify_line_addnode: "You can also create new nodes along a line by {leftclick}**x2** double-clicking or {doubletap_icon} double-tapping the line, or by dragging the small triangles at the midpoints between nodes."
connect_line_h: "Connecting Lines"
connect_line: "Having roads connected properly is important for the map and essential for providing driving directions."
connect_line_display: "The connections between roads are drawn with gray circles. The endpoints of a line are drawn with larger white circles if they don't connect to anything."
connect_line_drag: "To connect a line to another feature, drag one of the line's nodes onto the other feature until both features snap together. Tip: You can hold down the `{alt}` key to prevent nodes from connecting to other features."
connect_line_tag: "If you know that the connection has traffic lights or crosswalks, you can add them by selecting the connecting node and using the feature editor to select the correct feature's type."
disconnect_line_h: "Disconnecting Lines"
disconnect_line_command: "To disconnect a road from another feature, {rightclick} right-click the connecting node and select the {disconnect} **Disconnect** command from the editing menu."
disconnect_line_command: "To disconnect a road from another feature, {rightclick} right-click or {longpress_icon} long-press the connecting node and select the {disconnect_icon} **{disconnect}** command from the edit menu."
move_line_h: "Moving Lines"
move_line_command: "To move an entire line, {rightclick} right-click the line and select the {move} **Move** command from the editing menu. Then move the mouse, and {leftclick} left-click to place the line in a new location."
move_line_command: "To move an entire line, {rightclick} right-click the line and select the {move_icon} **{move}** command from the edit menu. Then move the mouse, and {leftclick} left-click to place the line in a new location."
move_line_connected: "Lines that are connected to other features will stay connected as you move the line to a new location. iD may prevent you from moving a line across another connected line."
delete_line_h: "Deleting Lines"
delete_line: "If a line is entirely incorrect, for example a road that doesn't exist in the real world, it's OK to delete it. Be careful when deleting features: the background imagery you are using might be outdated, and a road that looks wrong could simply be newly built."
delete_line_command: "To delete a line, {rightclick} right-click on the line to select it and show the edit menu, then use the {delete} **Delete** command."
delete_line_command: "To delete a line, {rightclick} right-click or {longpress_icon} long-press the line to show the edit menu, then use the {delete_icon} **{delete}** command."
areas:
title: Areas
intro: "*Areas* are used to show the boundaries of features like lakes, buildings, and residential areas. Areas should be traced around the edge of the feature that they represent, for example, around the base of a building."
point_or_area_h: "Points or Areas?"
point_or_area: "Many features can be represented as points or areas. You should map buildings and property outlines as areas whenever possible. Place points inside a building area to represent businesses, amenities, and other features located inside the building."
add_area_h: "Adding Areas"
add_area_command: "To add an area, click the {area} **Area** button on the toolbar above the map, or press the shortcut key `3`. This will change the mouse cursor to a cross symbol."
add_area_draw: "Next, position the mouse cursor at one of the corners of the feature and {leftclick} left-click or press `Space` to begin placing nodes around the outer edge of the area. Continue placing more nodes by clicking or pressing `Space`. While drawing, you can zoom in or drag the map in order to add more detail."
add_area_finish: "To finish an area, press `{return}` or click again on either the first or last node."
add_area_command: "To add an area, press the {area_icon} **{area}** button on the toolbar above the map, or press the shortcut key `3`."
add_area_draw: "Next, place the first corner of the area. With a mouse, position the cursor over any corner and {leftclick} left-click to place a node. On a touchscreen, {tap_icon} tap the location."
add_area_continue: "Continue placing nodes by {leftclick} clicking or {tap_icon} tapping along the edge of the area. While drawing, you can zoom in or drag the map in order to add more detail."
add_area_finish: "To finish an area, click or tap on the first or last node again or press `{return}`."
square_area_h: "Square Corners"
square_area_command: "Many area features like buildings have square corners. To square the corners of an area, {rightclick} right-click the edge of the area and select the {orthogonalize} **Square** command from the editing menu."
square_area_command: "Many area features like buildings have square corners. To square the corners of an area, {rightclick} right-click or {longpress_icon} long-press the edge of the area and select the {orthogonalize_icon} **{orthogonalize}** command from the edit menu."
modify_area_h: "Modifying Areas"
modify_area_dragnode: "Often you'll see areas that aren't shaped correctly, for example a building that does not match up with the background imagery. To adjust the shape of an area, first {leftclick} left-click to select it. All nodes of the area will be drawn as small circles. You can then drag the nodes to better locations."
modify_area_addnode: "You can also create new nodes along an area either by {leftclick}**x2** double-clicking on the edge of the area or by dragging the small triangles at the midpoints between nodes."
modify_area_dragnode: "Often you'll see areas that aren't shaped correctly, for example a building that does not match up with the background imagery. To adjust the shape of an area, first select it. All nodes of the area will be drawn as small circles. You can then drag the nodes to better locations."
modify_area_addnode: "You can also create new nodes along an area by {leftclick}**x2** double-clicking or {doubletap_icon} double-tapping an edge, or by dragging the small triangles at the midpoints between nodes."
delete_area_h: "Deleting Areas"
delete_area: "If an area is entirely incorrect, for example a building that doesn't exist in the real world, it's OK to delete it. Be cautious when deleting features - the background imagery you are using might be outdated, and a building that looks wrong could simply be newly built."
delete_area_command: "To delete an area, {rightclick} right-click on the area to select it and show the edit menu, then use the {delete} **Delete** command."
delete_area_command: "To delete an area, {rightclick} right-click or {longpress_icon} long-press the area to show the edit menu, then use the {delete_icon} **{delete}** command."
relations:
title: Relations
intro: "A *relation* is a special type of feature in OpenStreetMap that groups together other features. The features that belong to a relation are called *members*, and each member can have a *role* in the relation."
edit_relation_h: "Editing Relations"
edit_relation: "At the bottom of the feature editor, you can expand the \"Relations\" section to see if the selected feature is a member of any relations. You can then click on the relation to select and edit it."
edit_relation_add: "To add a feature to a relation, select the feature, then click the {plus} add button in the \"Relations\" section of the feature editor. You can choose from a list of nearby relations, or choose the \"New relation...\" option."
edit_relation_delete: "You can also click the {delete} **Delete** button to remove the selected feature from the relation. If you remove all of the members from a relation, the relation will be deleted automatically."
edit_relation: "At the bottom of the feature editor, you can expand the \"{relations}\" section to see if the selected feature is a member of any relations. You can then select a relation to edit it."
edit_relation_add: "To add a feature to a relation, select the feature, then press the {plus} add button in the \"{relations}\" section of the feature editor. You can choose from a list of nearby relations, or choose the \"{new_relation}\" option."
edit_relation_delete: "You can also press the {delete_icon} **{delete}** button to remove the selected feature from the relation. If you remove all of the members from a relation, the relation will be deleted automatically."
maintain_relation_h: "Maintaining Relations"
maintain_relation: "For the most part, iD will maintain relations automatically as you edit. You should take care when replacing features that might be members of relations. For example if you delete a section of road and draw a new section of road to replace it, you should add the new section to the same relations (routes, turn restrictions, etc.) as the original."
relation_types_h: "Relation Types"
multipolygon_h: "Multipolygons"
multipolygon: "A *multipolygon* relation is a group of one or more *outer* features and one or more inner features. The outer features define the outer edges of the multipolygon, and the inner features define sub-areas or holes cut out from the inside of the multipolygon."
multipolygon_create: "To create a multipolygon, for example a building with a hole in it, draw the outer edge as an area and the inner edge as a line or different kind of area. Then `{shift}`+{leftclick} left-click to select both features, {rightclick} right-click to show the edit menu, and select the {merge} **Merge** command."
multipolygon_create: "To create a multipolygon, for example a building with a hole in it, draw the outer edge as an area and the inner edge as a line or different kind of area. Then `{shift}`+{leftclick} left-click to select both features, {rightclick} right-click to show the edit menu, and select the {merge_icon} **{merge}** command."
multipolygon_merge: "Merging several lines or areas will create a new multipolygon relation with all selected areas as members. iD will choose the inner and outer roles automatically, based on which features are contained inside other features."
turn_restriction_h: "Turn restrictions"
turn_restriction: "A *turn restriction* relation is a group of several road segments in an intersection. Turn restrictions consist of a *from* road, *via* node or roads, and a *to* road."
turn_restriction_field: "To edit turn restrictions, select a junction node where two or more roads meet. The feature editor will display a special \"Turn Restrictions\" field containing a model of the intersection."
turn_restriction_editing: "In the \"Turn Restrictions\" field, click to select a \"from\" road, and see whether turns are allowed or restricted to any of the \"to\" roads. You can click on the turn icons to toggle them between allowed and restricted. iD will create relations automatically and set the from, via, and to roles based on your choices."
turn_restriction_field: "To edit turn restrictions, select a junction node where two or more roads meet. The feature editor will display a special \"{turn_restrictions}\" field containing a model of the intersection."
turn_restriction_editing: "In the \"{turn_restrictions}\" field, select a \"from\" road, and see whether turns are allowed or restricted to any of the \"to\" roads. You can press the turn icons to toggle them between allowed and restricted. iD will create relations automatically and set the from, via, and to roles based on your choices."
route_h: "Routes"
route: "A *route* relation is a group of one or more line features that together form a route network, like a bus route, train route, or highway route."
route_add: "To add a feature to a route relation, select the feature and scroll down to the \"Relations\" section of the feature editor, then click the {plus} add button to add this feature to a nearby existing relation or a new relation."
route_add: "To add a feature to a route relation, select the feature and scroll down to the \"{relations}\" section of the feature editor, then press the {plus} add button to add this feature to a nearby existing relation or a new relation."
boundary_h: "Boundaries"
boundary: "A *boundary* relation is a group of one or more line features that together form an administrative boundary."
boundary_add: "To add a feature to a boundary relation, select the feature and scroll down to the \"Relations\" section of the feature editor, then click the {plus} add button to add this feature to a nearby existing relation or a new relation."
boundary_add: "To add a feature to a boundary relation, select the feature and scroll down to the \"{relations}\" section of the feature editor, then press the {plus} add button to add this feature to a nearby existing relation or a new relation."
notes:
title: Notes
intro: "*Notes* are used to alert other users that a feature requires fixing or attention. Notes mark a specific location on the map. To view existing notes or add new ones, click the {data} **Map data** panel to enable the OpenStreetMap notes layer."
intro: "*Notes* are used to alert other users that a feature requires fixing or attention. Notes mark a specific location on the map. To view existing notes or add new ones, open the {data_icon} **{map_data}** panel and enable the {osm_notes} layer."
add_note_h: "Adding Notes"
add_note: "To add a new note, click the {note} **Note** button on the toolbar above the map, or press the shortcut key `4`. This will change the mouse cursor to a cross symbol. To place the new note on the map, position the mouse cursor where the note should go, then {leftclick} left-click or press `Space`."
move_note: "Only new notes can be moved. To move a note, place the mouse cursor over the new note, then press and hold the {leftclick} left mouse button while dragging the note to its new location."
add_note: "To add a new note, press the {note_icon} **{note}** button on the toolbar above the map, or press the shortcut key `{add_note_key}`."
place_note: "Next, place the new note on the map. With a mouse, position the cursor where the note should go and {leftclick} left-click. On a touchscreen, {tap_icon} tap the location."
move_note: "To move a note, {leftclick} left-click and drag it with a mouse or {touchdrag_icon} tap-and-drag it on a touchscreen. Only new notes can be moved."
update_note_h: "Closing, Reopening, and Commenting"
update_note: "An existing note can be updated by closing it, reopening it, or adding a comment to it. Closing a note indicates that the problem has been resolved. Reopening a note indicates that the original issue is not resolved."
save_note_h: "Saving Notes"
save_note: "You must save any note edits individually by clicking the buttons below the note comments. Note edits are **not** included in changesets that you upload to OpenStreetMap."
save_note: "You must save any note edits individually by pressing the buttons below the note comments. Note edits are **not** included in changesets that you upload to OpenStreetMap."
imagery:
title: Background Imagery
intro: "The background imagery that appears beneath the map data is an important resource for mapping. This imagery can be aerial photos collected from satellites, airplanes, and drones, or it can be scanned historical maps or other freely available source data."
sources_h: "Imagery Sources"
choosing: "To see which imagery sources are available for editing, click the {layers} **Background Settings** button on the side of the map."
choosing: "To see which imagery sources are available for editing, open the {layers_icon} **{background_settings}** panel on the side of the map."
sources: "By default, a [Bing Maps](https://www.bing.com/maps/) satellite layer is chosen as the background image. Depending on where you are editing, other imagery sources will be available. Some may be newer or have higher resolution, so it is always useful to check and see which layer is the best one to use as a mapping reference."
offsets_h: "Adjusting Imagery Offset"
offset: "Imagery is sometimes offset slightly from accurate map data. If you see a lot of roads or buildings shifted from the background imagery, it may be the imagery that's incorrect, so don't move them all to match the background. Instead, you can adjust the background so that it matches the existing data by expanding the \"Imagery Offset\" section at the bottom of the Background Settings pane."
offset_change: "Click on the small triangles to adjust the imagery offset in small steps, or hold the {leftclick} left mouse button and drag within the gray square to slide the imagery into alignment."
offset: "Imagery is sometimes offset slightly from accurate map data. If you see a lot of roads or buildings shifted from the background imagery, it may be the imagery that's incorrect, so don't move them all to match the background. Instead, you can adjust the background so that it matches the existing data by expanding the \"{imagery_offset}\" section at the bottom of the Background Settings pane."
offset_change: "Press the small triangle buttons to adjust the imagery offset in small steps, or hold the {leftclick} left mouse button and drag within the gray square to slide the imagery into alignment."
streetlevel:
title: Street Level Photos
intro: "Street level photos are useful for mapping traffic signs, businesses, and other details that you can't see from satellite and aerial images. The iD editor supports street level photos from [Bing Streetside](https://www.microsoft.com/en-us/maps/streetside), [Mapillary](https://www.mapillary.com), and [OpenStreetCam](https://www.openstreetcam.org)."
using_h: "Using Street Level Photos"
using: "To use street level photos for mapping, click the {data} **Map data** panel on the side of the map to enable or disable the available photo layers."
using: "To use street level photos for mapping, open the {data_icon} **{map_data}** panel on the side of the map to enable or disable the available photo layers."
photos: "When enabled, the photo layer displays a line along the sequence of photos. At higher zoom levels, a circle marks at each photo location, and at even higher zoom levels, a cone indicates the direction the camera was facing when the photo was taken."
viewer: "When you click on one of the photo locations, a photo viewer appears in the bottom corner of the map. The photo viewer contains controls to step forward and backward in the image sequence. It also shows the username of the person who captured the image, the date it was captured, and a link to view the image on the original site."
viewer: "When you select one of the photo locations, a photo viewer appears in the bottom corner of the map. The photo viewer contains controls to step forward and backward in the image sequence. It also shows the username of the person who captured the image, the date it was captured, and a link to view the image on the original site."
gps:
title: GPS Traces
intro: "Collected GPS traces are a valuable source of data for OpenStreetMap. This editor supports *.gpx*, *.geojson*, and *.kml* files on your local computer. You can collect GPS traces with a smartphone, sports watch, or other GPS device."
intro: "Collected GPS traces are a valuable source of data for OpenStreetMap. This editor supports *.gpx*, *.geojson*, and *.kml* files on your local device. You can collect GPS traces with a smartphone, sports watch, or other GPS device."
survey: "For information on how to perform a GPS survey, read [Mapping with a smartphone, GPS, or paper](http://learnosm.org/en/mobile-mapping/)."
using_h: "Using GPS Traces"
using: "To use a GPS trace for mapping, drag and drop the data file onto the map editor. If it's recognized, it will be drawn on the map as a bright purple line. Click the {data} **Map data** panel on the side of the map to enable, disable, or zoom to your GPS data."
using: "To use a GPS trace for mapping, drag and drop the data file onto the map editor. If it's recognized, it will be drawn on the map as a bright purple line. Open the {data_icon} **{map_data}** panel on the side of the map to enable, disable, or zoom to your GPS data."
tracing: "The GPS track isn't sent 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."
upload: "You can also [upload your GPS data to OpenStreetMap](https://www.openstreetmap.org/trace/create) for other users to use."
qa:
title: Quality Assurance
intro: "*Quality Assurance* (Q/A) tools can find improper tags, disconnected roads, and other issues with OpenStreetMap, which mappers can then fix. To view existing Q/A issues, click the {data} **Map data** panel to enable a specific Q/A layer."
intro: "*Quality Assurance* (Q/A) tools can find improper tags, disconnected roads, and other issues with OpenStreetMap, which mappers can then fix. To view existing Q/A issues, open the {data_icon} **{map_data}** panel and enable a specific Q/A layer."
tools_h: "Tools"
tools: "The following tools are currently supported: [KeepRight](https://www.keepright.at/), [ImproveOSM](https://improveosm.org/en/) and [Osmose](https://osmose.openstreetmap.fr/)."
issues_h: "Handling Issues"
issues: "Handling Q/A issues is similar to handling notes. Click on a marker to view the issue details in the sidebar. Each tool has its own capabilities, but generally you can comment and/or close an issue."
issues: "Handling Q/A issues is similar to handling notes. Select a marker to view the issue details in the sidebar. Each tool has its own capabilities, but generally you can comment and/or close an issue."
field:
restrictions:
title: Turn Restrictions Help
@@ -1927,110 +1933,148 @@ en:
chapters: "You can use the buttons below to skip chapters at any time or to restart a chapter if you get stuck. Let's begin! **Press '{next}' to continue.**"
navigation:
title: "Navigation"
drag: "The main map area shows OpenStreetMap data on top of a background.{br}You can click-and-drag or tap-and-drag the map to move it around. You can also use the arrow keys on a keyboard. **Drag the map!**"
zoom: "You can zoom in or out by scrolling with a mouse wheel, pinching on a touchscreen, or pressing the {plus} / {minus} buttons. **Zoom the map!**"
map_info: "The main map area shows OpenStreetMap data on top of a background."
drag: "You can click-and-drag the map with the {leftclick} left mouse button to move it around. You can also use the arrow keys on a keyboard. **Drag the map!**"
drag_touch: "You can {touchdrag_icon} tap-and-drag the map to move it around. You can also use the arrow keys on a keyboard. **Drag the map!**"
zoom: "You can zoom the map by scrolling with a {mousewheel_icon} mouse wheel or trackpad, or by pressing the {plus} / {minus} buttons. **Zoom the map!**"
zoom_touch: "You can zoom the map by {pinch_icon} pinching it with two fingers, {doubletap_icon} double-tapping a location, or pressing the {plus} / {minus} buttons. **Zoom the map!**"
features: "We use the word *features* to describe the things that appear on the map. Anything in the real world can be mapped as a feature on OpenStreetMap."
points_lines_areas: "Map features are represented using *points, lines, or areas.*"
nodes_ways: "In OpenStreetMap, points are sometimes called *nodes*, and lines and areas are sometimes called *ways*."
click_townhall: "All features on the map can be selected by clicking or tapping on them. **Select the point.**"
click_townhall: "All features on the map can be selected by {leftclick} clicking on them. **Click the point to select it.**"
tap_townhall: "All features on the map can be selected by {tap_icon} tapping on them. **Tap the point to select it.**"
selected_townhall: "Great! The point is now selected. Selected features are drawn with a pulsing glow."
editor_townhall: "When a feature is selected, the *feature editor* is displayed alongside the map."
preset_townhall: "The top part of the feature editor shows the feature's type. This point is a {preset}."
fields_townhall: "The middle part of the feature editor contains *fields* showing the feature's attributes, such as its name and address."
close_townhall: "**Close the feature editor by hitting escape or pressing the {button} button in the upper corner.**"
close_townhall: "**Close the feature editor by pressing the {button} button in the upper corner or `{esc}`.**"
search_street: "You can also search for features in the current view, or worldwide. **Search for '{name}'.**"
choose_street: "**Choose {name} from the list to select it.**"
selected_street: "Great! {name} is now selected."
editor_street: "The fields shown for a street are different than the fields that were shown for the town hall.{br}For this selected street, the feature editor shows fields like '{field1}' and '{field2}'. **Close the feature editor by hitting escape or pressing the {button} button.**"
street_different_fields: "The fields shown for a street are different than the fields that were shown for the town hall."
editor_street: "For this selected street, the feature editor shows fields like '{field1}' and '{field2}'. **Close the feature editor by pressing the {button} button or `{esc}`.**"
play: "Try exploring the map and selecting some other features to see what kinds of things can be added to OpenStreetMap. **When you are ready to continue to the next chapter, press '{next}'.**"
points:
title: "Points"
add_point: "*Points* can be used to represent features such as shops, restaurants, and monuments.{br}They mark a specific location, and describe what's there. **Click the {button} Point button to add a new point.**"
place_point: "To place the new point on the map, position your mouse cursor where the point should go, then left-click or press the spacebar. **Move the mouse pointer over this building, then left-click or press the spacebar.**"
points_info: "*Points* can be used to represent features such as shops, restaurants, and monuments."
add_point: "They mark a specific location, and describe what's there. **Press the {point_icon} {point} button to add a new point.**"
place_point: "To place the new point on the map, position your mouse cursor where the point should go, then {leftclick} left-click or press `{space}`. **Move the mouse pointer over this building, then left-click or press `{space}`.**"
place_point_touch: "To place the new point on the map, {tap_icon} tap the location where it should go. **Tap the center of this building.**"
search_cafe: "There are many different features that can be represented by points. The point you just added is a cafe. **Search for '{preset}'.**"
choose_cafe: "**Choose {preset} from the list.**"
feature_editor: "The point is now marked as a cafe. Using the feature editor, we can add more information about the cafe."
add_name: "In OpenStreetMap, all of the fields are optional, and it's OK to leave a field blank if you are unsure.{br}Let's pretend that you have local knowledge of this cafe, and you know its name. **Add a name for the cafe.**"
add_close: "The feature editor will remember all of your changes automatically. **When you are finished adding the name, hit escape, enter, or click the {button} button to close the feature editor.**"
reselect: "Often points will already exist, but have mistakes or be incomplete. We can edit existing points. **Click to select the cafe you just created.**"
fields_info: "In OpenStreetMap, all of the fields are optional, and it's OK to leave a field blank if you are unsure."
add_name: "Let's pretend that you have local knowledge of this cafe, and you know its name. **Add a name for the cafe.**"
add_close: "The feature editor will remember all of your changes automatically. **When you are finished adding the name, press the {button} button or `{esc}` to close the feature editor.**"
reselect: "Often points will already exist, but have mistakes or be incomplete. We can edit existing points. **Select the cafe you just created.**"
update: "Let's fill in some more details for this cafe. You can change its name, add a cuisine, or add an address. **Change the cafe details.**"
update_close: "**When you are finished updating the cafe, hit escape, enter, or click the {button} button to close the feature editor.**"
rightclick: "You can right-click on any feature to see the *edit menu*, which shows a list of editing operations that can be performed. **Right-click to select the point you created and show the edit menu.**"
delete: "It's OK to delete features that don't exist in the real world.{br}Deleting a feature from OpenStreetMap removes it from the map that everyone uses, so you should make sure a feature is really gone before you delete it. **Click on the {button} button to delete the point.**"
undo: "You can always undo any changes up until you save your edits to OpenStreetMap. **Click on the {button} button to undo the delete and get the point back.**"
play: "Now that you know how to create and edit points, try creating a few more points for practice! **When you are ready to continue to the next chapter, click '{next}'.**"
update_close: "**When you are finished updating the cafe, press the {button} button or `{esc}` to close the feature editor.**"
rightclick: "You can {rightclick} right-click on any feature to see the *edit menu*, which shows a list of editing operations that can be performed.{br}A right-click might be the same as a control-click or two-finger click. **Right-click to select the point you created and show the edit menu.**"
edit_menu_touch: "You can {longpress_icon} long-press on any feature to see the *edit menu*, which shows a list of editing operations that can be performed. **Press-and-hold the point you created to show the edit menu.**"
delete: "It's OK to delete features that don't exist in the real world.{br}Deleting a feature from OpenStreetMap removes it from the map that everyone uses, so you should make sure a feature is really gone before you delete it. **Press the {delete_icon} {delete} button to remove the point.**"
undo: "You can always undo any changes up until you save your edits to OpenStreetMap. **Press the {undo_icon} {undo} button to get the point back.**"
play: "Now that you know how to create and edit points, try creating a few more points for practice! **When you are ready to continue to the next chapter, press '{next}'.**"
areas:
title: "Areas"
add_playground: "*Areas* are used to show the boundaries of features like lakes, buildings, and residential areas.{br}They can also be used for more detailed mapping of many features you might normally map as points. **Click the {button} Area button to add a new area.**"
start_playground: "Let's add this playground to the map by drawing an area. Areas are drawn by placing *nodes* along the outer edge of the feature. **Click or press spacebar to place a starting node on one of the corners of the playground.**"
continue_playground: "Continue drawing the area by placing more nodes along the playground's edge. It is OK to connect the area to the existing walking paths.{br}Tip: You can hold down the '{alt}' key to prevent nodes from connecting to other features. **Continue drawing an area for the playground.**"
finish_playground: "Finish the area by pressing enter, or clicking again on either the first or last node. **Finish drawing an area for the playground.**"
add_playground: "*Areas* are used to show the boundaries of features like lakes, buildings, and residential areas.{br}They can also be used for more detailed mapping of many features you might normally map as points. **Press the {area_icon} {area} button to add a new area.**"
start_playground: "Let's add this playground to the map by drawing an area. Areas are drawn by placing *nodes* along the outer edge of the feature."
starting_node_click: "**Click or press `{space}` to place a starting node on one of the corners of the playground.**"
starting_node_tap: "**{tap_icon} Tap to place a starting node on one of the corners of the playground.**"
continue_playground: "Continue drawing the area by placing more nodes along the playground's edge. It is OK to connect the area to the existing walking paths.{br}Tip: You can hold down the `{alt}` key to prevent nodes from connecting to other features. **Continue drawing an area for the playground.**"
finish_area_click: "Finish the area by pressing `{return}`, or clicking again on either the first or last node."
finish_area_tap: "Finish the area by {tap_icon} tapping again on either the first or last node, or by pressing `{return}` on a keyboard."
finish_playground: "**Finish drawing an area for the playground.**"
search_playground: "**Search for '{preset}'.**"
choose_playground: "**Choose {preset} from the list.**"
add_field: "This playground doesn't have an official name, so we won't add anything in the Name field.{br}Instead let's add some additional details about the playground to the Description field. **Open the Add Field list.**"
add_field: "This playground doesn't have an official name, so we won't add anything in the {name} field.{br}Instead let's add some additional details about the playground to the {description} field. **Open the Add Field list.**"
choose_field: "**Choose {field} from the list.**"
retry_add_field: "You didn't select the {field} field. Let's try again."
describe_playground: "**Add a description, then click the {button} button to close the feature editor.**"
play: "Good job! Try drawing a few more areas, and see what other kinds of area features you can add to OpenStreetMap. **When you are ready to continue to the next chapter, click '{next}'.**"
describe_playground: "**Add a description, then press the {button} button to close the feature editor.**"
play: "Good job! Try drawing a few more areas, and see what other kinds of area features you can add to OpenStreetMap. **When you are ready to continue to the next chapter, press '{next}'.**"
lines:
title: "Lines"
add_line: "*Lines* are used to represent features such as roads, railroads, and rivers. **Click the {button} Line button to add a new line.**"
start_line: "Here is a road that is missing. Let's add it!{br}In OpenStreetMap, lines should be drawn down the center of the road. You can drag and zoom the map while drawing if necessary. **Start a new line by clicking at the top end of this missing road.**"
intersect: "Click or press spacebar to add more nodes to the line.{br}Roads, and many other types of lines, are part of a larger network. It is important for these lines to be connected properly in order for routing applications to work. **Click on {name} to create an intersection connecting the two lines.**"
add_line: "*Lines* are used to represent features such as roads, railroads, and rivers. **Press the {line_icon} {line} button to add a new line.**"
missing_road: "Here is a road that is missing. Let's add it!"
line_draw_info: "In OpenStreetMap, lines should be drawn down the center of the road. You can drag and zoom the map while drawing if necessary."
start_line: "**Start a new line by clicking at the top end of this missing road.**"
start_line_tap: "**Start a new line by {tap_icon} tapping at the top end of this missing road.**"
intersect: "Continue drawing the line by placing more nodes along the road.{br}Roads, along with paths and ferry routes, must be properly connected to each other for navigation apps to work. **Place an intersection node on {name} to connect the two lines.**"
retry_intersect: "The road needs to intersect {name}. Let's try again!"
continue_line: "Continue drawing the line for the new road. Remember that you can drag and zoom the map if needed.{br}When you are finished drawing, click on the last node again. **Finish drawing the road.**"
continue_line: "Continue drawing the line for the new road. Remember that you can drag and zoom the map if needed."
finish_line_click: "When you're finished, click the last node again or press `{return}`."
finish_line_tap: "When you're finished, {tap_icon} tap the last node again or press `{return}` on a keyboard."
finish_road: "**Finish drawing the road.**"
choose_category_road: "**Select {category} from the list.**"
choose_preset_residential: "There are many different types of roads, but this one is a residential road. **Choose the {preset} type.**"
retry_preset_residential: "You didn't select the {preset} type. **Click here to choose again.**"
name_road: "**Give this road a name, then hit escape, enter, or click the {button} button to close the feature editor.**"
retry_preset_residential: "You didn't select the {preset} type. **Press this button to choose again.**"
name_road: "**Give this road a name, then press the {button} button or `{esc}` to close the feature editor.**"
did_name_road: "Looks good! Next we will learn how to update the shape of a line."
update_line: "Sometimes you will need to change the shape of an existing line. Here is a road that doesn't look quite right."
add_node: "We can add some nodes to this line to improve its shape. One way to add a node is to double-click the line where you want to add a node. **Double-click on the line to create a new node.**"
start_drag_endpoint: "When a line is selected, you can drag any of its nodes by clicking and holding down the left mouse button while you drag. **Drag the endpoint to the place where these roads should intersect.**"
finish_drag_endpoint: "This spot looks good. **Release the left mouse button to finish dragging.**"
add_node_touch: "We can add some nodes to this line to improve its shape. One way to add a node is to {doubletap_icon} double-tap the line where you want to add a node. **Double-tap on the line to create a new node.**"
start_drag_endpoint: "When a line is selected, you can adjust any of its nodes by clicking and holding down the {leftclick} left mouse button while you drag."
start_drag_endpoint_touch: "When a line is selected, you can {touchdrag_icon} tap-and-drag any of its nodes to adjust them."
drag_to_intersection: "**Drag the endpoint to the place where these roads should intersect.**"
spot_looks_good: "This spot looks good."
finish_drag_endpoint: "**Release the mouse button to finish dragging.**"
finish_drag_endpoint_touch: "**Let go of the node to finish dragging.**"
start_drag_midpoint: "Small triangles are drawn at the *midpoints* between nodes. Another way to create a new node is to drag a midpoint to a new location. **Drag the midpoint triangle to create a new node along the curve of the road.**"
continue_drag_midpoint: "This line is looking much better! Continue to adjust this line by double-clicking or dragging midpoints until the curve matches the road shape. **When you're happy with how the line looks, click OK.**"
continue_drag_midpoint: "This line is looking much better! Continue to adjust this line until the curve matches the road shape. **When you're happy with how the line looks, press {ok}.**"
delete_lines: "It's OK to delete lines for roads that don't exist in the real world.{br}Here's an example where the city planned a {street} but never built it. We can improve this part of the map by deleting the extra lines."
rightclick_intersection: "The last real street is {street1}, so we will *split* {street2} at this intersection and remove everything above it. **Right click on the intersection node.**"
split_intersection: "**Click on the {button} button to split {street}.**"
retry_split: "You didn't click the Split button. Try again."
did_split_multi: "Good job! {street1} is now split into two pieces. The top part can be removed. **Click the top part of {street2} to select it.**"
did_split_single: "**Click the top part of {street2} to select it.**"
multi_select: "{selected} is now selected. Let's also select {other1}. You can shift-click to select multiple things. **Shift-click on {other2}.**"
multi_rightclick: "Good! Both lines to delete are now selected. **Right-click on one of the lines to show the edit menu.**"
multi_delete: "**Click on the {button} button to delete the extra lines.**"
retry_delete: "You didn't click the Delete button. Try again."
play: "Great! Use the skills that you've learned in this chapter to practice editing some more lines. **When you are ready to continue to the next chapter, click '{next}'.**"
split_street: "The last real street is {street1}, so we will *split* {street2} at this intersection and remove everything above it."
rightclick_intersection: "**{rightclick} Right-click on the intersection node.**"
edit_menu_intersection_touch: "**{longpress_icon} Long-press on the intersection node.**"
split_intersection: "**Press the {split_icon} {split} button to divide {street}.**"
retry_split: "You didn't press the {split_icon} {split} button. Try again."
did_split_multi: "Good job! {street1} is now split into two pieces. The top part can be removed. **Select the top part of {street2}.**"
did_split_single: "**Select the top part of {street2}.**"
multi_select: "{selected} is now selected. Let's also select {other1}."
add_to_selection_click: "You can hold `{shift}` while clicking to select multiple things. **Shift-click on {other2}.**"
add_to_selection_touch: "**{longpress_icon} Tap-and-hold {selected} and then {tap_icon} tap {other2} with another finger to select both.**"
multi_select_success: "Good! Both lines to delete are now selected."
multi_rightclick: "**{rightclick} Right-click on one of the lines to show the edit menu.**"
multi_edit_menu_touch: "**{longpress_icon} Long-press on one of the lines to show the edit menu.**"
multi_delete: "**Press the {delete_icon} {delete} button to remove the extra lines.**"
retry_delete: "You didn't press the {delete_icon} {delete} button. Try again."
play: "Great! Use the skills that you've learned in this chapter to practice editing some more lines. **When you are ready to continue to the next chapter, press '{next}'.**"
buildings:
title: "Buildings"
add_building: "OpenStreetMap is the world's largest database of buildings.{br}You can help improve this database by tracing buildings that aren't already mapped. **Click the {button} Area button to add a new area.**"
start_building: "Let's add this house to the map by tracing its outline.{br}Buildings should be traced around their footprint as accurately as possible. **Click or press spacebar to place a starting node on one of the corners of the building.**"
continue_building: "Continue adding more nodes to trace the outline of the building. Remember that you can zoom in if you want to add more details.{br}Finish the building by pressing enter, or clicking again on either the first or last node. **Finish tracing the building.**"
add_building: "OpenStreetMap is the world's largest database of buildings.{br}You can help improve this database by tracing buildings that aren't already mapped. **Press the {area_icon} {area} button to add a new area.**"
start_building: "Let's add this house to the map by tracing its outline.{br}Buildings should be traced around their footprint as accurately as possible."
building_corner_click: "**Click or press `{space}` to place a starting node on one of the corners of the building.**"
building_corner_tap: "**{tap_icon} Tap one of the corners of the building to place a starting node.**"
continue_building: "Continue placing nodes to trace the outline of the building. Remember that you can zoom in if you want to add more details."
finish_building: "**Finish tracing the building.**"
retry_building: "It looks like you had some trouble placing the nodes at the building corners. Try again!"
choose_category_building: "**Choose {category} from the list.**"
choose_preset_house: "There are many different types of buildings, but this one is clearly a house.{br}If you're not sure of the type, it's OK to just choose the generic Building type. **Choose the {preset} type.**"
close: "**Hit escape or click the {button} button to close the feature editor.**"
rightclick_building: "**Right-click to select the building you created and show the edit menu.**"
square_building: "The house that you just added will look even better with perfectly square corners. **Click on the {button} button to square the building shape.**"
retry_square: "You didn't click the Square button. Try again."
close: "**Press the {button} button or `{esc}` to close the feature editor.**"
rightclick_building: "**{rightclick} Right-click to select the building you created and show the edit menu.**"
edit_menu_building_touch: "**{longpress_icon} Long-press the building you created to show the edit menu.**"
square_building: "The house that you just added will look even better with perfectly square corners. **Press the {orthogonalize_icon} {orthogonalize} button to tidy up the building's shape.**"
retry_square: "You didn't press the {orthogonalize_icon} {orthogonalize} button. Try again."
done_square: "See how the corners of the building moved into place? Let's learn another useful trick."
add_tank: "Next we'll trace this circular storage tank. **Click the {button} Area button to add a new area.**"
start_tank: "Don't worry, you won't need to draw a perfect circle. Just draw an area inside the tank that touches its edge. **Click or press spacebar to place a starting node on the edge of the tank.**"
continue_tank: "Add a few more nodes around the edge. The circle will be created outside the nodes that you draw.{br}Finish the area by pressing enter, or clicking again on either the first or last node. **Finish tracing the tank.**"
add_tank: "Next we'll trace this circular storage tank. **Press the {area_icon} {area} button to add a new area.**"
start_tank: "Don't worry, you won't need to draw a perfect circle. Just draw an area inside the tank that touches its edge."
tank_edge_click: "**Click or press `{space}` to place a starting node on the edge of the tank.**"
tank_edge_tap: "**{tap_icon} Tap the edge of the tank to place a starting node.**"
continue_tank: "Add a few more nodes around the edge. The circle will be created outside the nodes that you draw."
finish_tank: "**Finish tracing the tank.**"
search_tank: "**Search for '{preset}'.**"
choose_tank: "**Choose {preset} from the list.**"
rightclick_tank: "**Right-click to select the storage tank you created and show the edit menu.**"
circle_tank: "**Click on the {button} button to make the tank a circle.**"
retry_circle: "You didn't click the Circularize button. Try again."
play: "Great Job! Practice tracing a few more buildings, and try some of the other commands on the edit menu. **When you are ready to continue to the next chapter, click '{next}'.**"
rightclick_tank: "**{rightclick} Right-click to select the storage tank you created and show the edit menu.**"
edit_menu_tank_touch: "**{longpress_icon} Long-press the storage tank you created to show the edit menu.**"
circle_tank: "**Press the {circularize_icon} {circularize} button to make the tank a circle.**"
retry_circle: "You didn't press the {circularize_icon} {circularize} button. Try again."
play: "Great Job! Practice tracing a few more buildings, and try some of the other commands on the edit menu. **When you are ready to continue to the next chapter, press '{next}'.**"
startediting:
title: "Start Editing"
help: "You're now ready to edit OpenStreetMap!{br}You can replay this walkthrough anytime or view more documentation by clicking the {button} Help button or pressing the '{key}' key."
shortcuts: "You can view a list of commands along with their keyboard shortcuts by pressing the '{key}' key."
help: "You're now ready to edit OpenStreetMap!{br}You can replay this walkthrough anytime or view more documentation by pressing the {help_icon} {help} button or the `{help_key}` key."
shortcuts: "You can view a list of commands along with their keyboard shortcuts by pressing the `{shortcuts_key}` key."
save: "Don't forget to regularly save your changes!"
start: "Start mapping!"
shortcuts:
title: "Keyboard shortcuts"
title: "Keyboard Shortcuts"
tooltip: "Show the keyboard shortcuts screen."
toggle:
key: '?'
+24
View File
@@ -7,6 +7,10 @@
"old": {"aeroway": "aerobridge"},
"replace": {"aeroway": "jet_bridge", "highway": "corridor"}
},
{
"old": {"access": "customer"},
"replace": {"access": "customers"}
},
{
"old": {"access": "public"},
"replace": {"access": "yes"}
@@ -247,6 +251,10 @@
"old": {"building": "household"},
"replace": {"building": "house"}
},
{
"old": {"building": "pavillion"},
"replace": {"building": "pavilion"}
},
{
"old": {"building:color": "*"},
"replace": {"building:colour": "$1"}
@@ -1386,6 +1394,22 @@
"old": {"toilets:disposal": "pit_latrine"},
"replace": {"toilets:disposal": "pitlatrine"}
},
{
"old": {"toilets:type": "flush"},
"replace": {"toilets:disposal": "flush"}
},
{
"old": {"toilets:type": "pit"},
"replace": {"toilets:disposal": "pitlatrine"}
},
{
"old": {"toilets:type": "pitlatrine"},
"replace": {"toilets:disposal": "pitlatrine"}
},
{
"old": {"toilets:type": "pit latrine"},
"replace": {"toilets:disposal": "pitlatrine"}
},
{
"old": {"tourism": "bed_and_breakfast"},
"replace": {"tourism": "guest_house", "guest_house": "bed_and_breakfast"}
+1009 -108
View File
File diff suppressed because it is too large Load Diff
+10 -3
View File
@@ -2499,6 +2499,7 @@ en:
support:
# support=*
label: Support
terms: '[translate with synonyms or related terms for ''Support'', separated by commas]'
surface:
# surface=*
label: Surface
@@ -4664,8 +4665,9 @@ en:
terms: '<translate with synonyms or related terms for ''Craft'', separated by commas>'
craft/agricultural_engines:
# craft=agricultural_engines
name: Argricultural Engines Mechanic
terms: '<translate with synonyms or related terms for ''Argricultural Engines Mechanic'', separated by commas>'
name: Agricultural Engines Mechanic
# 'terms: combines,farm equipment,harvesters,tractors'
terms: '<translate with synonyms or related terms for ''Agricultural Engines Mechanic'', separated by commas>'
craft/basket_maker:
# craft=basket_maker
name: Basket Maker
@@ -7959,7 +7961,7 @@ en:
shop/craft:
# shop=craft
name: Arts & Crafts Store
# 'terms: art*,paint*,frame'
# 'terms: art*,paint*,frame,hobby'
terms: '<translate with synonyms or related terms for ''Arts & Crafts Store'', separated by commas>'
shop/curtain:
# shop=curtain
@@ -8228,6 +8230,11 @@ en:
# shop=mobile_phone
name: Mobile Phone Store
terms: '<translate with synonyms or related terms for ''Mobile Phone Store'', separated by commas>'
shop/model:
# shop=model
name: Model Shop
# 'terms: hobby,model building,model figures,model kits,model store,scale models'
terms: '<translate with synonyms or related terms for ''Model Shop'', separated by commas>'
shop/money_lender:
# shop=money_lender
name: Money Lender
+6 -5
View File
@@ -177,7 +177,7 @@
"amenity/planetarium": {"icon": "maki-globe", "fields": ["name", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["air_conditioning", "charge_fee", "email", "fax", "fee", "gnis/feature_id", "payment_multi_fee", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["museum", "astronomy", "observatory"], "tags": {"amenity": "planetarium"}, "name": "Planetarium"},
"amenity/police": {"icon": "temaki-police_officer", "fields": ["name", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["badge", "constable", "constabulary", "cop", "detective", "fed", "law", "enforcement", "officer", "patrol"], "tags": {"amenity": "police"}, "name": "Police"},
"amenity/polling_station": {"icon": "fas-vote-yea", "fields": ["name", "ref", "operator", "address", "opening_hours", "opening_hours/covid19", "building_area"], "moreFields": ["air_conditioning", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["ballot box", "ballot drop", "democracy", "elections", "polling place", "vote", "voting booth", "voting machine"], "tags": {"amenity": "polling_station"}, "addTags": {"amenity": "polling_station", "polling_station": "yes"}, "name": "Permanent Polling Place"},
"amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["access_simple", "brand", "covered", "gnis/feature_id", "height", "indoor", "level", "manufacturer", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["drop box", "dropbox", "letter drop", "mail box", "mail collection box", "mail drop", "mail dropoff", "mailbox", "package drop", "pillar box", "pillarbox", "post box", "postal box", "postbox"], "name": "Mail Drop Box"},
"amenity/post_box": {"icon": "temaki-post_box", "fields": ["operator", "collection_times", "drive_through", "ref"], "moreFields": ["access_simple", "brand", "colour", "covered", "gnis/feature_id", "height", "indoor", "level", "manufacturer", "material", "support", "wheelchair"], "geometry": ["point", "vertex"], "tags": {"amenity": "post_box"}, "terms": ["drop box", "dropbox", "letter drop", "mail box", "mail collection box", "mail drop", "mail dropoff", "mailbox", "package drop", "pillar box", "pillarbox", "post box", "postal box", "postbox"], "name": "Mail Drop Box"},
"amenity/post_depot": {"icon": "fas-mail-bulk", "fields": ["name", "operator", "address", "building_area", "phone"], "moreFields": ["email", "fax", "gnis/feature_id", "opening_hours", "opening_hours/covid19", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["mail processing and distribution center", "post depot"], "tags": {"amenity": "post_depot"}, "name": "Post Sorting Office"},
"amenity/post_office": {"icon": "maki-post", "fields": ["name", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["brand", "email", "fax", "gnis/feature_id", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "payment_multi", "phone", "polling_station", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["letter", "mail"], "tags": {"amenity": "post_office"}, "name": "Post Office"},
"amenity/prep_school": {"icon": "temaki-school", "fields": ["name", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["email", "fax", "gnis/feature_id", "level", "payment_multi", "phone", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["academic", "ACT", "SAT", "homework", "math", "reading", "test prep", "tutoring", "writing"], "tags": {"amenity": "prep_school"}, "name": "Test Prep / Tutoring School"},
@@ -395,7 +395,7 @@
"craft": {"icon": "temaki-tools", "fields": ["name", "craft", "operator", "address", "building_area", "opening_hours", "opening_hours/covid19"], "moreFields": ["air_conditioning", "building/levels_building", "ele", "email", "fax", "gnis/feature_id", "height_building", "internet_access", "internet_access/fee", "internet_access/ssid", "level", "phone", "product", "ref/vatin", "website", "wheelchair"], "geometry": ["point", "area"], "tags": {"craft": "*"}, "terms": [], "name": "Craft"},
"craft/locksmith": {"icon": "maki-marker-stroked", "geometry": ["point", "area"], "tags": {"craft": "locksmith"}, "reference": {"key": "shop", "value": "locksmith"}, "name": "Locksmith", "searchable": false},
"craft/tailor": {"icon": "temaki-needle_and_spool", "geometry": ["point", "area"], "tags": {"craft": "tailor"}, "reference": {"key": "shop", "value": "tailor"}, "name": "Tailor", "searchable": false},
"craft/agricultural_engines": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "agricultural_engines"}, "name": "Argricultural Engines Mechanic"},
"craft/agricultural_engines": {"icon": "temaki-tools", "geometry": ["point", "area"], "tags": {"craft": "agricultural_engines"}, "terms": ["combines", "farm equipment", "harvesters", "tractors"], "name": "Agricultural Engines Mechanic"},
"craft/basket_maker": {"icon": "temaki-vase", "geometry": ["point", "area"], "tags": {"craft": "basket_maker"}, "name": "Basket Maker"},
"craft/beekeeper": {"icon": "maki-farm", "geometry": ["point", "area"], "tags": {"craft": "beekeeper"}, "name": "Beekeeper"},
"craft/blacksmith": {"icon": "temaki-anvil_and_hammer", "geometry": ["point", "area"], "tags": {"craft": "blacksmith"}, "name": "Blacksmith"},
@@ -1040,7 +1040,7 @@
"railway/tram": {"icon": "temaki-tram", "fields": ["{railway/light_rail}"], "moreFields": ["{railway/light_rail}"], "geometry": ["line"], "tags": {"railway": "tram"}, "terms": ["electric street railway", "light rail", "streetcar", "tramway", "trolley"], "name": "Tram Track"},
"railway/yard": {"icon": "temaki-freight_car", "fields": ["name", "operator"], "moreFields": ["gnis/feature_id"], "geometry": ["point"], "tags": {"railway": "yard"}, "terms": ["freight car stop", "freight train station", "rail freight station", "railroad yard", "railway yard"], "name": "Rail Yard"},
"relation": {"icon": "iD-relation", "fields": ["name", "relation"], "geometry": ["relation"], "tags": {}, "name": "Relation"},
"route/ferry": {"icon": "temaki-ferry", "geometry": ["line"], "fields": ["name", "operator", "duration", "access", "toll", "from", "to"], "moreFields": ["charge_toll", "distance", "dog", "interval", "maxheight", "maxweight", "network", "opening_hours", "opening_hours/covid19", "ref_route", "roundtrip", "wheelchair"], "tags": {"route": "ferry"}, "terms": ["boat", "merchant vessel", "ship", "water bus", "water shuttle", "water taxi"], "name": "Ferry Route"},
"route/ferry": {"icon": "temaki-ferry", "geometry": ["line"], "fields": ["name", "operator", "duration", "access", "toll", "from", "to"], "moreFields": ["charge_toll", "distance", "dog", "email", "interval", "maxheight", "maxweight", "network", "opening_hours", "opening_hours/covid19", "phone", "ref_route", "reservation", "roundtrip", "vhf", "website", "wheelchair"], "tags": {"route": "ferry"}, "terms": ["boat", "merchant vessel", "ship", "water bus", "water shuttle", "water taxi"], "name": "Ferry Route"},
"seamark/beacon_isolated_danger": {"fields": ["ref", "operator", "seamark/beacon_isolated_danger/shape", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["beacon isolated danger", "isolated danger beacon", "iala"], "tags": {"seamark:type": "beacon_isolated_danger"}, "name": "Danger Beacon"},
"seamark/beacon_lateral": {"fields": ["ref", "operator", "seamark/beacon_lateral/colour", "seamark/beacon_lateral/category", "seamark/beacon_lateral/shape", "seamark/beacon_lateral/system", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["lateral beacon", "beacon lateral", "cevni", "channel marker", "iala", "lateral mark"], "tags": {"seamark:type": "beacon_lateral"}, "name": "Channel Beacon"},
"seamark/buoy_lateral": {"icon": "temaki-buoy", "fields": ["ref", "operator", "seamark/buoy_lateral/colour", "seamark/buoy_lateral/category", "seamark/buoy_lateral/shape", "seamark/buoy_lateral/system", "seamark/type"], "geometry": ["point", "vertex"], "terms": ["lateral buoy", "buoy lateral", "cevni", "channel marker", "iala", "lateral mark"], "tags": {"seamark:type": "buoy_lateral"}, "name": "Channel Buoy"},
@@ -1098,7 +1098,7 @@
"shop/copyshop": {"icon": "fas-print", "geometry": ["point", "area"], "tags": {"shop": "copyshop"}, "terms": ["print", "scan"], "name": "Copy Store"},
"shop/cosmetics": {"icon": "temaki-lipstick", "geometry": ["point", "area"], "tags": {"shop": "cosmetics"}, "terms": ["make-up", "makeup"], "name": "Cosmetics Store"},
"shop/country_store": {"icon": "fas-hat-cowboy-side", "geometry": ["point", "area"], "tags": {"shop": "country_store"}, "name": "Country Store"},
"shop/craft": {"icon": "fas-cut", "geometry": ["point", "area"], "tags": {"shop": "craft"}, "terms": ["art*", "paint*", "frame"], "name": "Arts & Crafts Store"},
"shop/craft": {"icon": "fas-cut", "geometry": ["point", "area"], "tags": {"shop": "craft"}, "terms": ["art*", "paint*", "frame", "hobby"], "name": "Arts & Crafts Store"},
"shop/curtain": {"icon": "temaki-curtains", "geometry": ["point", "area"], "terms": ["drape*", "window"], "tags": {"shop": "curtain"}, "name": "Curtain Store"},
"shop/dairy": {"icon": "fas-cheese", "geometry": ["point", "area"], "terms": ["milk", "egg", "cheese"], "tags": {"shop": "dairy"}, "name": "Dairy Store"},
"shop/deli": {"icon": "temaki-meat", "geometry": ["point", "area"], "terms": ["lunch", "meat", "sandwich"], "tags": {"shop": "deli"}, "name": "Deli"},
@@ -1155,6 +1155,7 @@
"shop/medical_supply": {"icon": "fas-crutch", "geometry": ["point", "area"], "tags": {"shop": "medical_supply"}, "name": "Medical Supply Store"},
"shop/military_surplus": {"icon": "temaki-military", "geometry": ["point", "area"], "terms": ["armor", "army-navy store", "army surplus", "navy surplus", "tactical gear", "war surplus shop", "weapons"], "tags": {"shop": "military_surplus"}, "name": "Military Surplus Store"},
"shop/mobile_phone": {"icon": "fas-mobile-alt", "geometry": ["point", "area"], "tags": {"shop": "mobile_phone"}, "name": "Mobile Phone Store"},
"shop/model": {"icon": "maki-shop", "geometry": ["point", "area"], "tags": {"shop": "model"}, "terms": ["hobby", "model building", "model figures", "model kits", "model store", "scale models"], "name": "Model Shop"},
"shop/money_lender": {"icon": "temaki-money_hand", "fields": ["{shop}", "currency_multi"], "geometry": ["point", "area"], "tags": {"shop": "money_lender"}, "name": "Money Lender"},
"shop/motorcycle_repair": {"icon": "temaki-motorcycle_repair", "fields": ["{shop}", "service/vehicle"], "geometry": ["point", "area"], "terms": ["auto", "bike", "garage", "motorcycle", "repair", "service"], "tags": {"shop": "motorcycle_repair"}, "name": "Motorcycle Repair Shop"},
"shop/motorcycle": {"icon": "fas-motorcycle", "fields": ["name", "brand", "{shop}"], "geometry": ["point", "area"], "terms": ["bike"], "tags": {"shop": "motorcycle"}, "name": "Motorcycle Dealership"},
@@ -1322,7 +1323,7 @@
"waterway/dock": {"icon": "maki-harbor", "fields": ["name", "dock", "operator"], "geometry": ["area", "vertex", "point"], "terms": ["boat", "ship", "vessel", "marine"], "tags": {"waterway": "dock"}, "name": "Wet Dock / Dry Dock"},
"waterway/drain": {"icon": "iD-waterway-ditch", "fields": ["structure_waterway", "intermittent"], "moreFields": ["covered"], "geometry": ["line"], "tags": {"waterway": "drain"}, "name": "Drain"},
"waterway/fish_pass": {"icon": "temaki-fish_ladder", "fields": ["name", "structure_waterway", "width", "seasonal"], "moreFields": ["covered", "gnis/feature_id", "salt"], "geometry": ["line"], "terms": ["eel ladder", "eel pass", "fish ladder", "fish migration", "fish passage", "fish siphon", "fish steps", "fish way", "fishladder", "fishpass", "fishsteps", "fishway"], "tags": {"waterway": "fish_pass"}, "name": "Fish Pass"},
"waterway/fuel": {"icon": "maki-fuel", "fields": ["name", "operator", "address", "opening_hours", "opening_hours/covid19", "fuel_multi"], "moreFields": ["brand", "building", "email", "fax", "payment_multi", "phone", "seamark/type", "website", "wheelchair"], "geometry": ["point", "area"], "terms": ["petrol", "gas", "diesel", "boat"], "tags": {"waterway": "fuel"}, "name": "Marine Fuel Station"},
"waterway/fuel": {"icon": "maki-fuel", "fields": ["name", "operator", "address", "opening_hours", "opening_hours/covid19", "fuel_multi"], "moreFields": ["brand", "building", "email", "fax", "payment_multi", "phone", "seamark/type", "website", "wheelchair"], "geometry": ["point", "vertex", "area"], "terms": ["petrol", "gas", "diesel", "boat"], "tags": {"waterway": "fuel"}, "name": "Marine Fuel Station"},
"waterway/lock_gate": {"icon": "maki-dam", "geometry": ["vertex", "line"], "fields": ["name", "ref", "height", "material"], "tags": {"waterway": "lock_gate"}, "addTags": {"waterway": "lock_gate", "seamark:type": "gate"}, "terms": ["canal"], "name": "Lock Gate"},
"waterway/milestone": {"icon": "temaki-milestone", "fields": ["distance", "direction_vertex"], "moreFields": ["seamark/type"], "geometry": ["point", "vertex"], "tags": {"waterway": "milestone"}, "terms": ["milestone", "marker"], "name": "Waterway Milestone"},
"waterway/river": {"icon": "iD-waterway-river", "fields": ["name", "structure_waterway", "width", "intermittent", "tidal"], "moreFields": ["covered", "fishing", "gnis/feature_id", "salt"], "geometry": ["line"], "terms": ["beck", "branch", "brook", "course", "creek", "estuary", "rill", "rivulet", "run", "runnel", "stream", "tributary", "watercourse"], "tags": {"waterway": "river"}, "name": "River"},
@@ -1,14 +1,10 @@
{
"icon": "maki-hospital",
"fields": [
"kneipp_water_cure_multi",
"fields": [
"kneipp_water_cure_multi",
"opening_hours",
"opening_hours/covid19",
"fee"
],
"geometry": [
"point",
@@ -17,7 +13,6 @@
"terms": [],
"tags": {
"amenity": "kneipp_water_cure"
},
"reference": {
"key": "amenity",
@@ -9,12 +9,15 @@
"moreFields": [
"access_simple",
"brand",
"colour",
"covered",
"gnis/feature_id",
"height",
"indoor",
"level",
"manufacturer",
"material",
"support",
"wheelchair"
],
"geometry": [
@@ -7,5 +7,11 @@
"tags": {
"craft": "agricultural_engines"
},
"name": "Argricultural Engines Mechanic"
"terms": [
"combines",
"farm equipment",
"harvesters",
"tractors"
],
"name": "Agricultural Engines Mechanic"
}
+5
View File
@@ -16,14 +16,19 @@
"charge_toll",
"distance",
"dog",
"email",
"interval",
"maxheight",
"maxweight",
"network",
"opening_hours",
"opening_hours/covid19",
"phone",
"ref_route",
"reservation",
"roundtrip",
"vhf",
"website",
"wheelchair"
],
"tags": {
+4 -3
View File
@@ -1,7 +1,7 @@
{
"icon": "fas-cut",
"geometry": [
"point",
"point",
"area"
],
"tags": {
@@ -10,7 +10,8 @@
"terms": [
"art*",
"paint*",
"frame"
],
"frame",
"hobby"
],
"name": "Arts & Crafts Store"
}
+19
View File
@@ -0,0 +1,19 @@
{
"icon": "maki-shop",
"geometry": [
"point",
"area"
],
"tags": {
"shop": "model"
},
"terms": [
"hobby",
"model building",
"model figures",
"model kits",
"model store",
"scale models"
],
"name": "Model Shop"
}
+1
View File
@@ -21,6 +21,7 @@
],
"geometry": [
"point",
"vertex",
"area"
],
"terms": [
+3 -3
View File
@@ -107,7 +107,7 @@
"text": "shortcuts.browsing.selecting.title"
},
{
"shortcuts": ["Left-click", "shortcuts.key.space"],
"shortcuts": ["Left-click", "Tap", "shortcuts.key.space"],
"text": "shortcuts.browsing.selecting.select_one"
},
{
@@ -131,7 +131,7 @@
"text": "shortcuts.browsing.with_selected.title"
},
{
"shortcuts": ["Right-click", "☰"],
"shortcuts": ["Right-click", "Long-press", "☰"],
"text": "shortcuts.browsing.with_selected.edit_menu"
},
{
@@ -193,7 +193,7 @@
"text": "shortcuts.editing.drawing.add_note"
},
{
"shortcuts": ["Left-click", "shortcuts.key.space"],
"shortcuts": ["Left-click", "Tap", "shortcuts.key.space"],
"text": "shortcuts.editing.drawing.place_point"
},
{
+8 -1
View File
@@ -391,7 +391,7 @@
{"key": "craft", "description": "🄿 Craft, 🄵 Type", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/tools.svg"},
{"key": "craft", "value": "locksmith", "description": "🄿 Locksmith (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/marker-stroked-15.svg"},
{"key": "craft", "value": "tailor", "description": "🄿 Tailor (unsearchable)", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/needle_and_spool.svg"},
{"key": "craft", "value": "agricultural_engines", "description": "🄿 Argricultural Engines Mechanic", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/tools.svg"},
{"key": "craft", "value": "agricultural_engines", "description": "🄿 Agricultural Engines Mechanic", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/tools.svg"},
{"key": "craft", "value": "basket_maker", "description": "🄿 Basket Maker", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/vase.svg"},
{"key": "craft", "value": "beekeeper", "description": "🄿 Beekeeper", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/farm-15.svg"},
{"key": "craft", "value": "blacksmith", "description": "🄿 Blacksmith", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/anvil_and_hammer.svg"},
@@ -1100,6 +1100,7 @@
{"key": "shop", "value": "medical_supply", "description": "🄿 Medical Supply Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@develop/svg/fontawesome/fas-crutch.svg"},
{"key": "shop", "value": "military_surplus", "description": "🄿 Military Surplus Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/military.svg"},
{"key": "shop", "value": "mobile_phone", "description": "🄿 Mobile Phone Store", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@develop/svg/fontawesome/fas-mobile-alt.svg"},
{"key": "shop", "value": "model", "description": "🄿 Model Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/mapbox/maki/icons/shop-15.svg"},
{"key": "shop", "value": "money_lender", "description": "🄿 Money Lender", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/money_hand.svg"},
{"key": "shop", "value": "motorcycle_repair", "description": "🄿 Motorcycle Repair Shop", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/ideditor/temaki/icons/motorcycle_repair.svg"},
{"key": "shop", "value": "motorcycle", "description": "🄿 Motorcycle Dealership", "object_types": ["node", "area"], "icon_url": "https://cdn.jsdelivr.net/gh/openstreetmap/iD@develop/svg/fontawesome/fas-motorcycle.svg"},
@@ -2005,6 +2006,7 @@
{"key": "windings:configuration", "value": "leblanc", "description": "🄵 Windings Configuration"},
{"key": "aerialway", "value": "canopy", "description": "🄳 ➜ aerialway=zip_line"},
{"key": "aeroway", "value": "aerobridge", "description": "🄳 ➜ aeroway=jet_bridge + highway=corridor"},
{"key": "access", "value": "customer", "description": "🄳 ➜ access=customers"},
{"key": "access", "value": "public", "description": "🄳 ➜ access=yes"},
{"key": "aerodrome", "value": "military", "description": "🄳 ➜ military=airfield"},
{"key": "aerodrome:type", "value": "military", "description": "🄳 ➜ military=airfield"},
@@ -2060,6 +2062,7 @@
{"key": "building", "value": "family_house", "description": "🄳 ➜ building=house"},
{"key": "building", "value": "home", "description": "🄳 ➜ building=house"},
{"key": "building", "value": "household", "description": "🄳 ➜ building=house"},
{"key": "building", "value": "pavillion", "description": "🄳 ➜ building=pavilion"},
{"key": "building:color", "description": "🄳 ➜ building:colour=*"},
{"key": "building:height", "description": "🄳 ➜ height=*"},
{"key": "building:material", "value": "Brick", "description": "🄳 ➜ building:material=brick"},
@@ -2313,6 +2316,10 @@
{"key": "TODO", "description": "🄳 ➜ fixme=*"},
{"key": "toilets:disposal", "value": "longdrop", "description": "🄳 ➜ toilets:disposal=pitlatrine"},
{"key": "toilets:disposal", "value": "pit_latrine", "description": "🄳 ➜ toilets:disposal=pitlatrine"},
{"key": "toilets:type", "value": "flush", "description": "🄳 ➜ toilets:disposal=flush"},
{"key": "toilets:type", "value": "pit", "description": "🄳 ➜ toilets:disposal=pitlatrine"},
{"key": "toilets:type", "value": "pitlatrine", "description": "🄳 ➜ toilets:disposal=pitlatrine"},
{"key": "toilets:type", "value": "pit latrine", "description": "🄳 ➜ toilets:disposal=pitlatrine"},
{"key": "tourism", "value": "bed_and_breakfast", "description": "🄳 ➜ tourism=guest_house + guest_house=bed_and_breakfast"},
{"key": "tower:type", "value": "power", "description": "🄳 ➜ power=tower"},
{"key": "tower:type", "value": "anchor", "description": "🄳 ➜ line_attachment=anchor"},
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"ar-AA":{"modes":{"add_area":{"title":"مساحة","description":".أضف المنتزهات أو المباني أو البحيرات أو مساحات أخرى إلى الخريطة"},"add_line":{"title":"خط","description":"أضف الطرق السريعة أوالشوارع أوممرات المشاة أوالقنوات أو خطوط أخرى إلى الخريطة."},"add_point":{"title":"نقطة","description":".إضف المطاعم أوالمعالم أوصناديق البريد أو نقاط أخرى إلى الخريطة"},"browse":{"title":"تصفح","description":".تحرك عموديا و أفقيا أو كبر الخريطة"}},"operations":{"add":{"annotation":{"point":".أضاف نقطة","vertex":".أظاف عقدة إلى الطريق"}},"start":{"annotation":{"line":".بدأ خط","area":".بدأ المساحة"}},"continue":{"annotation":{"line":".مواصلة خط","area":".مواصلة مساحة"}},"cancel_draw":{"annotation":".إلغاء الرسم"},"change_tags":{"annotation":".العلامات المتغيرة"},"orthogonalize":{"title":"مربع"},"delete":{"title":"حذف","annotation":{"point":".حذف نقطة","vertex":".حذف عقدة من الطريق","line":".حذف خط","area":".حذف مساحة","relation":".حذف علاقة"}},"disconnect":{"title":".غير متصل"},"merge":{"title":"دمج"},"move":{"title":"نقل","annotation":{"point":".نقل نقطة","vertex":".نقل عقدة في طريق","line":".نقل خط","area":".نقل مساحة"}},"rotate":{"title":"تدوير","annotation":{"line":".استدارة خط","area":".استدارة مساحة"}},"reverse":{"title":"عكس"},"split":{"title":"تقسيم"}},"commit":{"upload_explanation":"التغييرات التي قمتم بتحميلها ستكون مرئية على جميع الخرائط التي تستخدم بيانات خريطة الشارع المفتوح.","cancel":"إلغاء","warnings":"تحذيرات","modified":"تم التغيير","deleted":"تم الحذف","created":"تم الإنشاء"},"contributors":{"list":"{users} تعديلات من قبل","truncated_list":"تعديلات من قبل {users} و {count} آخرين"},"geolocate":{"title":"أظهر مكاني"},"inspector":{"view_on_osm":"openstreetmap.org شاهد على","choose":"حدد نوع الميزة","results":"{n} نتائج {search}"},"background":{"title":"الخلفية","description":"إعدادات الخلفية","reset":"أعد للوضع السابق"},"save":{"title":"حفظ","no_changes":".لا تغييرات للحفظ"},"intro":{"graph":{"block_number":"<value for addr:block_number>","city":"ثلاثة الأنهار","county":"<value for addr:county>","district":"<value for addr:district>","hamlet":"<value for addr:hamlet>","neighbourhood":"<value for addr:neighbourhood>","province":"<value for addr:province>","quarter":"<value for addr:quarter>","state":"<value for addr:state>","subdistrict":"<value for addr:subdistrict>","suburb":"<value for addr:suburb>","countrycode":"sa"}}}}
{"ar-AA":{"modes":{"add_area":{"title":"مساحة","description":".أضف المنتزهات أو المباني أو البحيرات أو مساحات أخرى إلى الخريطة"},"add_line":{"title":"خط","description":"أضف الطرق السريعة أوالشوارع أوممرات المشاة أوالقنوات أو خطوط أخرى إلى الخريطة."},"add_point":{"title":"نقطة","description":".إضف المطاعم أوالمعالم أوصناديق البريد أو نقاط أخرى إلى الخريطة"},"browse":{"title":"تصفح","description":".تحرك عموديا و أفقيا أو كبر الخريطة"}},"operations":{"add":{"annotation":{"point":".أضاف نقطة","vertex":".أظاف عقدة إلى الطريق"}},"start":{"annotation":{"line":".بدأ خط","area":".بدأ المساحة"}},"continue":{"annotation":{"line":".مواصلة خط","area":".مواصلة مساحة"}},"cancel_draw":{"annotation":".إلغاء الرسم"},"change_tags":{"annotation":".العلامات المتغيرة"},"orthogonalize":{"title":"مربع"},"delete":{"title":"حذف","annotation":{"point":".حذف نقطة","vertex":".حذف عقدة من الطريق","line":".حذف خط","area":".حذف مساحة","relation":".حذف علاقة"}},"disconnect":{"title":".غير متصل"},"merge":{"title":"دمج"},"move":{"title":"نقل","annotation":{"point":".نقل نقطة","vertex":".نقل عقدة في طريق","line":".نقل خط","area":".نقل مساحة"}},"rotate":{"title":"تدوير","annotation":{"line":".استدارة خط","area":".استدارة مساحة"}},"reverse":{"title":"عكس"},"split":{"title":"تقسيم"}},"commit":{"upload_explanation":"التغييرات التي قمتم بتحميلها ستكون مرئية على جميع الخرائط التي تستخدم بيانات خريطة الشارع المفتوح.","cancel":"إلغاء","warnings":"تحذيرات","modified":"تم التغيير","deleted":"تم الحذف","created":"تم الإنشاء"},"contributors":{"list":"{users} تعديلات من قبل","truncated_list":"تعديلات من قبل {users} و {count} آخرين"},"geolocate":{"title":"أظهر مكاني"},"inspector":{"view_on_osm":"openstreetmap.org شاهد على","choose":"حدد نوع الميزة","results":"{n} نتائج {search}"},"background":{"title":"الخلفية","reset":"أعد للوضع السابق"},"save":{"title":"حفظ","no_changes":".لا تغييرات للحفظ"},"intro":{"graph":{"block_number":"<value for addr:block_number>","city":"ثلاثة الأنهار","county":"<value for addr:county>","district":"<value for addr:district>","hamlet":"<value for addr:hamlet>","neighbourhood":"<value for addr:neighbourhood>","province":"<value for addr:province>","quarter":"<value for addr:quarter>","state":"<value for addr:state>","subdistrict":"<value for addr:subdistrict>","suburb":"<value for addr:suburb>","countrycode":"sa"}}}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+179 -127
View File
@@ -88,7 +88,7 @@
"title": "Continue",
"description": "Continue this line.",
"not_eligible": "No line can be continued here.",
"multiple": "Several lines can be continued here. To choose a line, press the Shift key and click on it to select it.",
"multiple": "Several lines can be continued here. Add one to the selection to continue.",
"annotation": {
"line": "Continued a line.",
"area": "Continued an area."
@@ -231,7 +231,7 @@
},
"too_bendy": {
"single": "This can't be straightened because it bends too much.",
"multiple": "These can't be straighted because they bend too much."
"multiple": "These can't be straightened because they bend too much."
},
"connected_to_hidden": {
"single": "This can't be straightened because it is connected to a hidden feature.",
@@ -411,6 +411,7 @@
"vertex": "Moved a node in a way.",
"line": "Moved a line.",
"area": "Moved an area.",
"relation": "Moved a relation.",
"multiple": "Moved multiple features."
},
"incomplete_relation": {
@@ -486,7 +487,8 @@
"annotation": {
"line": "Rotated a line.",
"area": "Rotated an area.",
"multiple": "Rotated multiple features."
"multiple": "Rotated multiple features.",
"relation": "Rotated a relation."
},
"incomplete_relation": {
"single": "This feature can't be rotated because it hasn't been fully downloaded.",
@@ -617,10 +619,12 @@
}
},
"undo": {
"title": "Undo",
"tooltip": "Undo: {action}",
"nothing": "Nothing to undo."
},
"redo": {
"title": "Redo",
"tooltip": "Redo: {action}",
"nothing": "Nothing to redo."
},
@@ -768,10 +772,11 @@
"view_on_keepRight": "View on keepright.at",
"feature_type": "Feature Type",
"fields": "Fields",
"tags_count": "Tags ({count})",
"members_count": "Members ({count})",
"relations_count": "Relations ({count})",
"features_count": "Features ({count})",
"tags": "Tags",
"members": "Members",
"relations": "Relations",
"features": "Features",
"title_count": "{title} ({count})",
"add_to_relation": "Add to a relation",
"new_relation": "New relation...",
"choose_relation": "Choose a parent relation",
@@ -1091,7 +1096,7 @@
"delete": "Leave Deleted",
"download_changes": "Or download osmChange file",
"done": "All conflicts resolved!",
"help": "Another user changed some of the same map features you changed.\nClick on each feature below for more details about the conflict, and choose whether to keep\nyour changes or the other user's changes.\n"
"help": "Another user changed some of the same map features you changed. Click on each feature below for more details about the conflict, and choose whether to keep your changes or the other user's changes."
}
},
"merge_remote_changes": {
@@ -1535,7 +1540,6 @@
"mapillary_map_features": {
"title": "Map Features",
"tooltip": "Map features from Mapillary",
"request_data": "Request Data",
"construction": {
"flat": {
"crosswalk_plain": "plain crosswalk"
@@ -1628,7 +1632,7 @@
"open_data_h": "Open Data",
"open_data": "Edits that you make on this map will be visible to everyone who uses OpenStreetMap. Your edits can be based on personal knowledge, on-the-ground surveying, or imagery collected from aerial or street level photos. Copying from commercial sources, like Google Maps, [is strictly forbidden](https://www.openstreetmap.org/copyright).",
"before_start_h": "Before you start",
"before_start": "You should be familiar with OpenStreetMap and this editor before you start editing. iD contains a walkthrough to teach you the basics of editing OpenStreetMap. Click \"Start the Walkthrough\" on this screen to take the tutorial - it takes only about 15 minutes.",
"before_start": "You should be familiar with OpenStreetMap and this editor before you start editing. iD contains a walkthrough to teach you the basics of editing OpenStreetMap. Press the \"{start_the_walkthrough}\" button on this screen to start the tutorialit takes only about 15 minutes.",
"open_source_h": "Open Source",
"open_source": "The iD editor is a collaborative open source project, and you are using version {version} now. The source code is available [on GitHub](https://github.com/openstreetmap/iD).",
"open_source_help": "You can help iD by [translating](https://github.com/openstreetmap/iD/blob/develop/CONTRIBUTING.md#translating) or [reporting bugs](https://github.com/openstreetmap/iD/issues)."
@@ -1636,8 +1640,8 @@
"overview": {
"title": "Overview",
"navigation_h": "Navigation",
"navigation_drag": "You can drag the map by pressing and holding down the {leftclick} left mouse button and moving the mouse around. You can also use the `↓`, `↑`, `←`, `→` arrow keys on your keyboard.",
"navigation_zoom": "You can zoom in or out by scrolling with the mouse wheel or trackpad, or by clicking the {plus} / {minus} buttons along the side of the map. You can also use the `+`, `-` keys on your keyboard.",
"navigation_drag": "You can drag the map by holding down the {leftclick} left mouse button and moving the mouse around, or by {touchdrag_icon} dragging on a touchscreen. You can also use the `↓`, `↑`, `←`, `→` arrow keys on a keyboard.",
"navigation_zoom": "You can zoom in or out by scrolling with a {mousewheel_icon} mouse wheel or trackpad, or by {pinch_icon} pinching with two fingers on a touchscreen. You can also press the {plus} / {minus} buttons along the side of the map or the `+`, `-` keys on a keyboard.",
"features_h": "Map Features",
"features": "We use the word *features* to describe things that appear on the map, such as roads, buildings, or points of interest. Anything in the real world can be mapped as a feature on OpenStreetMap. Map features are represented on the map using *points*, *lines*, or *areas*.",
"nodes_ways": "In OpenStreetMap, points are sometimes called *nodes*, and lines and areas are sometimes called *ways*."
@@ -1645,73 +1649,76 @@
"editing": {
"title": "Editing & Saving",
"select_h": "Select",
"select_left_click": "{leftclick} Left-click on a feature to select it. This will highlight it with a pulsing glow, and the sidebar will display details about that feature, such as its name or address.",
"select_right_click": "{rightclick} Right-click on a feature to display the editing menu, which shows the commands that are available, such as rotating, moving, and deleting.",
"select_left_click": "{leftclick} Left-click or {tap_icon} tap a feature to select it. This will highlight it with a pulsing glow and display further details about it in the sidebar.",
"select_right_click": "{rightclick} Right-click or {longpress_icon} long-press a feature to display the edit menu, which provides commands such as copy, rotate, and delete.",
"select_space": "The `{space}` key can also be used instead of left-click when selecting and drawing.",
"multiselect_h": "Multiselect",
"multiselect_shift_click": "`{shift}`+{leftclick} left-click to select several features together. This makes it easier to move or delete multiple items.",
"multiselect": "Selecting multiple features together lets you quickly edit them all at once.",
"multiselect_shift_click": "With a mouse and keyboard, hold `{shift}` and {leftclick} left-click features to add them to the selection. On a touchscreen, {longpress_icon} tap-and-hold one feature while {tap_icon} tapping additional features with another finger.",
"multiselect_lasso": "Another way to select multiple features is to hold down the `{shift}` key, then press and hold down the {leftclick} left mouse button and drag the mouse to draw a selection lasso. All of the points inside the lasso area will be selected.",
"undo_redo_h": "Undo & Redo",
"undo_redo": "Your edits are stored locally in your browser until you choose to save them to the OpenStreetMap server. You can undo edits by clicking the {undo} **Undo** button, and redo them by clicking the {redo} **Redo** button.",
"undo_redo": "Your edits are stored locally in your browser until you choose to save them to the OpenStreetMap server. You can undo edits by pressing the {undo_icon} **{undo}** button, and redo them by pressing the {redo_icon} **{redo}** button.",
"save_h": "Save",
"save": "Click {save} **Save** to finish your edits and send them to OpenStreetMap. You should remember to save your work frequently!",
"save": "Press the {save_icon} **{save}** button to finish your edits and send them to OpenStreetMap. You should remember to save your work frequently!",
"save_validation": "On the save screen, you'll have a chance to review what you've done. iD will also perform some basic checks for missing data and may offer helpful suggestions and warnings if something doesn't seem right.",
"upload_h": "Upload",
"upload": "Before uploading your changes you must enter a [changeset comment](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Then click **Upload** to send your changes to OpenStreetMap, where they will be merged into the map and publicly visible to everyone.",
"upload": "Before uploading your changes you must enter a [changeset comment](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Then press **{upload}** to send your changes to OpenStreetMap, where they will be merged into the map and publicly visible to everyone.",
"backups_h": "Automatic Backups",
"backups": "If you can't finish your edits in one sitting, for example if your computer crashes or you close the browser tab, your edits are still saved in your browser's storage. You can come back later (on the same browser and computer), and iD will offer to restore your work.",
"backups": "If you happen to close the browser before saving, your edits are still stored locally. iD will offer to restore your work when you come back later on the same browser and device.",
"keyboard_h": "Keyboard Shortcuts",
"keyboard": "You can view a list of keyboard shortcuts by pressing the `?` key."
"keyboard": "You can view a list of keyboard shortcuts by pressing the `{shortcuts_key}` key."
},
"feature_editor": {
"title": "Feature Editor",
"intro": "The *feature editor* appears alongside the map, and allows you to see and edit all of the information for the selected feature.",
"definitions": "The top section displays the feature's type. The middle section contains *fields* showing the feature's attributes, such as its name or address.",
"type_h": "Feature Type",
"type": "You can click on the feature type to change the feature to a different type. Everything that exists in the real world can be added to OpenStreetMap, so there are thousands of feature types to choose from.",
"type_picker": "The type picker displays the most common feature types, such as parks, hospitals, restaurants, roads, and buildings. You can search for anything by typing what you're looking for in the search box. You can also click the {inspect} **Info** icon next to the feature type to learn more about it.",
"type": "You can press the feature type to change the feature to a different type. Everything that exists in the real world can be added to OpenStreetMap, so there are thousands of feature types to choose from.",
"type_picker": "The type picker displays the most common feature types, such as parks, hospitals, restaurants, roads, and buildings. You can search for anything by typing what you're looking for in the search box. You can also press the {inspect} **Info** icon next to the feature type to learn more about it.",
"fields_h": "Fields",
"fields_all_fields": "The \"Fields\" section contains all of the feature's details that you may edit. In OpenStreetMap, all of the fields are optional, and it's OK to leave a field blank if you are unsure.",
"fields_all_fields": "The \"{fields}\" section contains all of the feature's details that you may edit. In OpenStreetMap, all of the fields are optional, and it's OK to leave a field blank if you are unsure.",
"fields_example": "Each feature type will display different fields. For example, a road may display fields for its surface and speed limit, but a restaurant may display fields for the type of food it serves and the hours it is open.",
"fields_add_field": "You can also click the \"Add field\" dropdown to add more fields, such as a description, Wikipedia link, wheelchair access, and more.",
"fields_add_field": "You can also use the \"Add field\" dropdown to add more fields, such as a description, Wikipedia link, wheelchair access, and more.",
"tags_h": "Tags",
"tags_all_tags": "Below the fields section, you can expand the \"Tags\" section to edit any of the OpenStreetMap *tags* for the selected feature. Each tag consists of a *key* and *value*, data elements that define all of the features stored in OpenStreetMap.",
"tags_all_tags": "Below the fields section, you can expand the \"{tags}\" section to edit any of the OpenStreetMap *tags* for the selected feature. Each tag consists of a *key* and *value*, data elements that define all of the features stored in OpenStreetMap.",
"tags_resources": "Editing a feature's tags requires intermediate knowledge about OpenStreetMap. You should consult resources like the [OpenStreetMap Wiki](https://wiki.openstreetmap.org/wiki/Main_Page) or [Taginfo](https://taginfo.openstreetmap.org/) to learn more about accepted OpenStreetMap tagging practices."
},
"points": {
"title": "Points",
"intro": "*Points* can be used to represent features such as shops, restaurants, and monuments. They mark a specific location, and describe what's there.",
"add_point_h": "Adding Points",
"add_point": "To add a point, click the {point} **Point** button on the toolbar above the map, or press the shortcut key `1`. This will change the mouse cursor to a cross symbol.",
"add_point_finish": "To place the new point on the map, position the mouse cursor where the point should go, then {leftclick} left-click or press `Space`.",
"add_point": "To add a point, press the {point_icon} **{point}** button on the toolbar above the map, or press the shortcut key `1`.",
"add_point_finish": "Next, place the new point on the map. With a mouse, position the cursor where the point should go and {leftclick} left-click. On a touchscreen, {tap_icon} tap the location.",
"move_point_h": "Moving Points",
"move_point": "To move a point, place the mouse cursor over the point, then press and hold the {leftclick} left mouse button while dragging the point to its new location.",
"move_point": "To move a point, {leftclick} left-click and drag it with a mouse or {touchdrag_icon} tap-and-drag it on a touchscreen.",
"delete_point_h": "Deleting Points",
"delete_point": "It's OK to delete features that don't exist in the real world. Deleting a feature from OpenStreetMap removes it from the map that everyone uses, so you should make sure a feature is really gone before you delete it.",
"delete_point_command": "To delete a point, {rightclick} right-click on the point to select it and show the edit menu, then use the {delete} **Delete** command."
"delete_point_command": "To delete a point, {rightclick} right-click or {longpress_icon} long-press the point to show the edit menu, then use the {delete_icon} **{delete}** command."
},
"lines": {
"title": "Lines",
"intro": "*Lines* are used to represent features such as roads, railroads, and rivers. Lines should be drawn down the center of the feature that they represent.",
"add_line_h": "Adding Lines",
"add_line": "To add a line, click the {line} **Line** button on the toolbar above the map, or press the shortcut key `2`. This will change the mouse cursor to a cross symbol.",
"add_line_draw": "Next, position the mouse cursor where the line should begin and {leftclick} left-click or press `Space` to begin placing nodes along the line. Continue placing more nodes by clicking or pressing `Space`. While drawing, you can zoom in or drag the map in order to add more detail.",
"add_line_finish": "To finish a line, press `{return}` or click again on the last node.",
"add_line": "To add a line, press the {line_icon} **{line}** button on the toolbar above the map, or press the shortcut key `2`.",
"add_line_draw": "Next, mark the line's starting location. With a mouse, position the cursor where the line should begin and {leftclick} left-click to place a node. On a touchscreen, {tap_icon} tap the location.",
"add_line_continue": "Continue placing nodes by {leftclick} clicking or {tap_icon} tapping along the shape of the line. While drawing, you can zoom in or drag the map in order to add more detail.",
"add_line_finish": "To finish a line, click or tap on the last node again or press `{return}`.",
"modify_line_h": "Modifying Lines",
"modify_line_dragnode": "Often you'll see lines that aren't shaped correctly, for example a road that does not match up with the background imagery. To adjust the shape of a line, first {leftclick} left-click to select it. All nodes of the line will be drawn as small circles. You can then drag the nodes to better locations.",
"modify_line_addnode": "You can also create new nodes along a line either by {leftclick}**x2** double-clicking on the line or by dragging the small triangles at the midpoints between nodes.",
"modify_line_dragnode": "Often you'll see lines that aren't shaped correctly, for example a road that does not match up with the background imagery. To adjust the shape of a line, first select it. All nodes of the line will be drawn as small circles. You can then drag the nodes to better locations.",
"modify_line_addnode": "You can also create new nodes along a line by {leftclick}**x2** double-clicking or {doubletap_icon} double-tapping the line, or by dragging the small triangles at the midpoints between nodes.",
"connect_line_h": "Connecting Lines",
"connect_line": "Having roads connected properly is important for the map and essential for providing driving directions.",
"connect_line_display": "The connections between roads are drawn with gray circles. The endpoints of a line are drawn with larger white circles if they don't connect to anything.",
"connect_line_drag": "To connect a line to another feature, drag one of the line's nodes onto the other feature until both features snap together. Tip: You can hold down the `{alt}` key to prevent nodes from connecting to other features.",
"connect_line_tag": "If you know that the connection has traffic lights or crosswalks, you can add them by selecting the connecting node and using the feature editor to select the correct feature's type.",
"disconnect_line_h": "Disconnecting Lines",
"disconnect_line_command": "To disconnect a road from another feature, {rightclick} right-click the connecting node and select the {disconnect} **Disconnect** command from the editing menu.",
"disconnect_line_command": "To disconnect a road from another feature, {rightclick} right-click or {longpress_icon} long-press the connecting node and select the {disconnect_icon} **{disconnect}** command from the edit menu.",
"move_line_h": "Moving Lines",
"move_line_command": "To move an entire line, {rightclick} right-click the line and select the {move} **Move** command from the editing menu. Then move the mouse, and {leftclick} left-click to place the line in a new location.",
"move_line_command": "To move an entire line, {rightclick} right-click the line and select the {move_icon} **{move}** command from the edit menu. Then move the mouse, and {leftclick} left-click to place the line in a new location.",
"move_line_connected": "Lines that are connected to other features will stay connected as you move the line to a new location. iD may prevent you from moving a line across another connected line.",
"delete_line_h": "Deleting Lines",
"delete_line": "If a line is entirely incorrect, for example a road that doesn't exist in the real world, it's OK to delete it. Be careful when deleting features: the background imagery you are using might be outdated, and a road that looks wrong could simply be newly built.",
"delete_line_command": "To delete a line, {rightclick} right-click on the line to select it and show the edit menu, then use the {delete} **Delete** command."
"delete_line_command": "To delete a line, {rightclick} right-click or {longpress_icon} long-press the line to show the edit menu, then use the {delete_icon} **{delete}** command."
},
"areas": {
"title": "Areas",
@@ -1719,88 +1726,90 @@
"point_or_area_h": "Points or Areas?",
"point_or_area": "Many features can be represented as points or areas. You should map buildings and property outlines as areas whenever possible. Place points inside a building area to represent businesses, amenities, and other features located inside the building.",
"add_area_h": "Adding Areas",
"add_area_command": "To add an area, click the {area} **Area** button on the toolbar above the map, or press the shortcut key `3`. This will change the mouse cursor to a cross symbol.",
"add_area_draw": "Next, position the mouse cursor at one of the corners of the feature and {leftclick} left-click or press `Space` to begin placing nodes around the outer edge of the area. Continue placing more nodes by clicking or pressing `Space`. While drawing, you can zoom in or drag the map in order to add more detail.",
"add_area_finish": "To finish an area, press `{return}` or click again on either the first or last node.",
"add_area_command": "To add an area, press the {area_icon} **{area}** button on the toolbar above the map, or press the shortcut key `3`.",
"add_area_draw": "Next, place the first corner of the area. With a mouse, position the cursor over any corner and {leftclick} left-click to place a node. On a touchscreen, {tap_icon} tap the location.",
"add_area_continue": "Continue placing nodes by {leftclick} clicking or {tap_icon} tapping along the edge of the area. While drawing, you can zoom in or drag the map in order to add more detail.",
"add_area_finish": "To finish an area, click or tap on the first or last node again or press `{return}`.",
"square_area_h": "Square Corners",
"square_area_command": "Many area features like buildings have square corners. To square the corners of an area, {rightclick} right-click the edge of the area and select the {orthogonalize} **Square** command from the editing menu.",
"square_area_command": "Many area features like buildings have square corners. To square the corners of an area, {rightclick} right-click or {longpress_icon} long-press the edge of the area and select the {orthogonalize_icon} **{orthogonalize}** command from the edit menu.",
"modify_area_h": "Modifying Areas",
"modify_area_dragnode": "Often you'll see areas that aren't shaped correctly, for example a building that does not match up with the background imagery. To adjust the shape of an area, first {leftclick} left-click to select it. All nodes of the area will be drawn as small circles. You can then drag the nodes to better locations.",
"modify_area_addnode": "You can also create new nodes along an area either by {leftclick}**x2** double-clicking on the edge of the area or by dragging the small triangles at the midpoints between nodes.",
"modify_area_dragnode": "Often you'll see areas that aren't shaped correctly, for example a building that does not match up with the background imagery. To adjust the shape of an area, first select it. All nodes of the area will be drawn as small circles. You can then drag the nodes to better locations.",
"modify_area_addnode": "You can also create new nodes along an area by {leftclick}**x2** double-clicking or {doubletap_icon} double-tapping an edge, or by dragging the small triangles at the midpoints between nodes.",
"delete_area_h": "Deleting Areas",
"delete_area": "If an area is entirely incorrect, for example a building that doesn't exist in the real world, it's OK to delete it. Be cautious when deleting features - the background imagery you are using might be outdated, and a building that looks wrong could simply be newly built.",
"delete_area_command": "To delete an area, {rightclick} right-click on the area to select it and show the edit menu, then use the {delete} **Delete** command."
"delete_area_command": "To delete an area, {rightclick} right-click or {longpress_icon} long-press the area to show the edit menu, then use the {delete_icon} **{delete}** command."
},
"relations": {
"title": "Relations",
"intro": "A *relation* is a special type of feature in OpenStreetMap that groups together other features. The features that belong to a relation are called *members*, and each member can have a *role* in the relation.",
"edit_relation_h": "Editing Relations",
"edit_relation": "At the bottom of the feature editor, you can expand the \"Relations\" section to see if the selected feature is a member of any relations. You can then click on the relation to select and edit it.",
"edit_relation_add": "To add a feature to a relation, select the feature, then click the {plus} add button in the \"Relations\" section of the feature editor. You can choose from a list of nearby relations, or choose the \"New relation...\" option.",
"edit_relation_delete": "You can also click the {delete} **Delete** button to remove the selected feature from the relation. If you remove all of the members from a relation, the relation will be deleted automatically.",
"edit_relation": "At the bottom of the feature editor, you can expand the \"{relations}\" section to see if the selected feature is a member of any relations. You can then select a relation to edit it.",
"edit_relation_add": "To add a feature to a relation, select the feature, then press the {plus} add button in the \"{relations}\" section of the feature editor. You can choose from a list of nearby relations, or choose the \"{new_relation}\" option.",
"edit_relation_delete": "You can also press the {delete_icon} **{delete}** button to remove the selected feature from the relation. If you remove all of the members from a relation, the relation will be deleted automatically.",
"maintain_relation_h": "Maintaining Relations",
"maintain_relation": "For the most part, iD will maintain relations automatically as you edit. You should take care when replacing features that might be members of relations. For example if you delete a section of road and draw a new section of road to replace it, you should add the new section to the same relations (routes, turn restrictions, etc.) as the original.",
"relation_types_h": "Relation Types",
"multipolygon_h": "Multipolygons",
"multipolygon": "A *multipolygon* relation is a group of one or more *outer* features and one or more inner features. The outer features define the outer edges of the multipolygon, and the inner features define sub-areas or holes cut out from the inside of the multipolygon.",
"multipolygon_create": "To create a multipolygon, for example a building with a hole in it, draw the outer edge as an area and the inner edge as a line or different kind of area. Then `{shift}`+{leftclick} left-click to select both features, {rightclick} right-click to show the edit menu, and select the {merge} **Merge** command.",
"multipolygon_create": "To create a multipolygon, for example a building with a hole in it, draw the outer edge as an area and the inner edge as a line or different kind of area. Then `{shift}`+{leftclick} left-click to select both features, {rightclick} right-click to show the edit menu, and select the {merge_icon} **{merge}** command.",
"multipolygon_merge": "Merging several lines or areas will create a new multipolygon relation with all selected areas as members. iD will choose the inner and outer roles automatically, based on which features are contained inside other features.",
"turn_restriction_h": "Turn restrictions",
"turn_restriction": "A *turn restriction* relation is a group of several road segments in an intersection. Turn restrictions consist of a *from* road, *via* node or roads, and a *to* road.",
"turn_restriction_field": "To edit turn restrictions, select a junction node where two or more roads meet. The feature editor will display a special \"Turn Restrictions\" field containing a model of the intersection.",
"turn_restriction_editing": "In the \"Turn Restrictions\" field, click to select a \"from\" road, and see whether turns are allowed or restricted to any of the \"to\" roads. You can click on the turn icons to toggle them between allowed and restricted. iD will create relations automatically and set the from, via, and to roles based on your choices.",
"turn_restriction_field": "To edit turn restrictions, select a junction node where two or more roads meet. The feature editor will display a special \"{turn_restrictions}\" field containing a model of the intersection.",
"turn_restriction_editing": "In the \"{turn_restrictions}\" field, select a \"from\" road, and see whether turns are allowed or restricted to any of the \"to\" roads. You can press the turn icons to toggle them between allowed and restricted. iD will create relations automatically and set the from, via, and to roles based on your choices.",
"route_h": "Routes",
"route": "A *route* relation is a group of one or more line features that together form a route network, like a bus route, train route, or highway route.",
"route_add": "To add a feature to a route relation, select the feature and scroll down to the \"Relations\" section of the feature editor, then click the {plus} add button to add this feature to a nearby existing relation or a new relation.",
"route_add": "To add a feature to a route relation, select the feature and scroll down to the \"{relations}\" section of the feature editor, then press the {plus} add button to add this feature to a nearby existing relation or a new relation.",
"boundary_h": "Boundaries",
"boundary": "A *boundary* relation is a group of one or more line features that together form an administrative boundary.",
"boundary_add": "To add a feature to a boundary relation, select the feature and scroll down to the \"Relations\" section of the feature editor, then click the {plus} add button to add this feature to a nearby existing relation or a new relation."
"boundary_add": "To add a feature to a boundary relation, select the feature and scroll down to the \"{relations}\" section of the feature editor, then press the {plus} add button to add this feature to a nearby existing relation or a new relation."
},
"notes": {
"title": "Notes",
"intro": "*Notes* are used to alert other users that a feature requires fixing or attention. Notes mark a specific location on the map. To view existing notes or add new ones, click the {data} **Map data** panel to enable the OpenStreetMap notes layer.",
"intro": "*Notes* are used to alert other users that a feature requires fixing or attention. Notes mark a specific location on the map. To view existing notes or add new ones, open the {data_icon} **{map_data}** panel and enable the {osm_notes} layer.",
"add_note_h": "Adding Notes",
"add_note": "To add a new note, click the {note} **Note** button on the toolbar above the map, or press the shortcut key `4`. This will change the mouse cursor to a cross symbol. To place the new note on the map, position the mouse cursor where the note should go, then {leftclick} left-click or press `Space`.",
"move_note": "Only new notes can be moved. To move a note, place the mouse cursor over the new note, then press and hold the {leftclick} left mouse button while dragging the note to its new location.",
"add_note": "To add a new note, press the {note_icon} **{note}** button on the toolbar above the map, or press the shortcut key `{add_note_key}`.",
"place_note": "Next, place the new note on the map. With a mouse, position the cursor where the note should go and {leftclick} left-click. On a touchscreen, {tap_icon} tap the location.",
"move_note": "To move a note, {leftclick} left-click and drag it with a mouse or {touchdrag_icon} tap-and-drag it on a touchscreen. Only new notes can be moved.",
"update_note_h": "Closing, Reopening, and Commenting",
"update_note": "An existing note can be updated by closing it, reopening it, or adding a comment to it. Closing a note indicates that the problem has been resolved. Reopening a note indicates that the original issue is not resolved.",
"save_note_h": "Saving Notes",
"save_note": "You must save any note edits individually by clicking the buttons below the note comments. Note edits are **not** included in changesets that you upload to OpenStreetMap."
"save_note": "You must save any note edits individually by pressing the buttons below the note comments. Note edits are **not** included in changesets that you upload to OpenStreetMap."
},
"imagery": {
"title": "Background Imagery",
"intro": "The background imagery that appears beneath the map data is an important resource for mapping. This imagery can be aerial photos collected from satellites, airplanes, and drones, or it can be scanned historical maps or other freely available source data.",
"sources_h": "Imagery Sources",
"choosing": "To see which imagery sources are available for editing, click the {layers} **Background Settings** button on the side of the map.",
"choosing": "To see which imagery sources are available for editing, open the {layers_icon} **{background_settings}** panel on the side of the map.",
"sources": "By default, a [Bing Maps](https://www.bing.com/maps/) satellite layer is chosen as the background image. Depending on where you are editing, other imagery sources will be available. Some may be newer or have higher resolution, so it is always useful to check and see which layer is the best one to use as a mapping reference.",
"offsets_h": "Adjusting Imagery Offset",
"offset": "Imagery is sometimes offset slightly from accurate map data. If you see a lot of roads or buildings shifted from the background imagery, it may be the imagery that's incorrect, so don't move them all to match the background. Instead, you can adjust the background so that it matches the existing data by expanding the \"Imagery Offset\" section at the bottom of the Background Settings pane.",
"offset_change": "Click on the small triangles to adjust the imagery offset in small steps, or hold the {leftclick} left mouse button and drag within the gray square to slide the imagery into alignment."
"offset": "Imagery is sometimes offset slightly from accurate map data. If you see a lot of roads or buildings shifted from the background imagery, it may be the imagery that's incorrect, so don't move them all to match the background. Instead, you can adjust the background so that it matches the existing data by expanding the \"{imagery_offset}\" section at the bottom of the Background Settings pane.",
"offset_change": "Press the small triangle buttons to adjust the imagery offset in small steps, or hold the {leftclick} left mouse button and drag within the gray square to slide the imagery into alignment."
},
"streetlevel": {
"title": "Street Level Photos",
"intro": "Street level photos are useful for mapping traffic signs, businesses, and other details that you can't see from satellite and aerial images. The iD editor supports street level photos from [Bing Streetside](https://www.microsoft.com/en-us/maps/streetside), [Mapillary](https://www.mapillary.com), and [OpenStreetCam](https://www.openstreetcam.org).",
"using_h": "Using Street Level Photos",
"using": "To use street level photos for mapping, click the {data} **Map data** panel on the side of the map to enable or disable the available photo layers.",
"using": "To use street level photos for mapping, open the {data_icon} **{map_data}** panel on the side of the map to enable or disable the available photo layers.",
"photos": "When enabled, the photo layer displays a line along the sequence of photos. At higher zoom levels, a circle marks at each photo location, and at even higher zoom levels, a cone indicates the direction the camera was facing when the photo was taken.",
"viewer": "When you click on one of the photo locations, a photo viewer appears in the bottom corner of the map. The photo viewer contains controls to step forward and backward in the image sequence. It also shows the username of the person who captured the image, the date it was captured, and a link to view the image on the original site."
"viewer": "When you select one of the photo locations, a photo viewer appears in the bottom corner of the map. The photo viewer contains controls to step forward and backward in the image sequence. It also shows the username of the person who captured the image, the date it was captured, and a link to view the image on the original site."
},
"gps": {
"title": "GPS Traces",
"intro": "Collected GPS traces are a valuable source of data for OpenStreetMap. This editor supports *.gpx*, *.geojson*, and *.kml* files on your local computer. You can collect GPS traces with a smartphone, sports watch, or other GPS device.",
"intro": "Collected GPS traces are a valuable source of data for OpenStreetMap. This editor supports *.gpx*, *.geojson*, and *.kml* files on your local device. You can collect GPS traces with a smartphone, sports watch, or other GPS device.",
"survey": "For information on how to perform a GPS survey, read [Mapping with a smartphone, GPS, or paper](http://learnosm.org/en/mobile-mapping/).",
"using_h": "Using GPS Traces",
"using": "To use a GPS trace for mapping, drag and drop the data file onto the map editor. If it's recognized, it will be drawn on the map as a bright purple line. Click the {data} **Map data** panel on the side of the map to enable, disable, or zoom to your GPS data.",
"using": "To use a GPS trace for mapping, drag and drop the data file onto the map editor. If it's recognized, it will be drawn on the map as a bright purple line. Open the {data_icon} **{map_data}** panel on the side of the map to enable, disable, or zoom to your GPS data.",
"tracing": "The GPS track isn't sent 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.",
"upload": "You can also [upload your GPS data to OpenStreetMap](https://www.openstreetmap.org/trace/create) for other users to use."
},
"qa": {
"title": "Quality Assurance",
"intro": "*Quality Assurance* (Q/A) tools can find improper tags, disconnected roads, and other issues with OpenStreetMap, which mappers can then fix. To view existing Q/A issues, click the {data} **Map data** panel to enable a specific Q/A layer.",
"intro": "*Quality Assurance* (Q/A) tools can find improper tags, disconnected roads, and other issues with OpenStreetMap, which mappers can then fix. To view existing Q/A issues, open the {data_icon} **{map_data}** panel and enable a specific Q/A layer.",
"tools_h": "Tools",
"tools": "The following tools are currently supported: [KeepRight](https://www.keepright.at/), [ImproveOSM](https://improveosm.org/en/) and [Osmose](https://osmose.openstreetmap.fr/).",
"issues_h": "Handling Issues",
"issues": "Handling Q/A issues is similar to handling notes. Click on a marker to view the issue details in the sidebar. Each tool has its own capabilities, but generally you can comment and/or close an issue."
"issues": "Handling Q/A issues is similar to handling notes. Select a marker to view the issue details in the sidebar. Each tool has its own capabilities, but generally you can comment and/or close an issue."
},
"field": {
"restrictions": {
@@ -2402,117 +2411,155 @@
},
"navigation": {
"title": "Navigation",
"drag": "The main map area shows OpenStreetMap data on top of a background.{br}You can click-and-drag or tap-and-drag the map to move it around. You can also use the arrow keys on a keyboard. **Drag the map!**",
"zoom": "You can zoom in or out by scrolling with a mouse wheel, pinching on a touchscreen, or pressing the {plus} / {minus} buttons. **Zoom the map!**",
"map_info": "The main map area shows OpenStreetMap data on top of a background.",
"drag": "You can click-and-drag the map with the {leftclick} left mouse button to move it around. You can also use the arrow keys on a keyboard. **Drag the map!**",
"drag_touch": "You can {touchdrag_icon} tap-and-drag the map to move it around. You can also use the arrow keys on a keyboard. **Drag the map!**",
"zoom": "You can zoom the map by scrolling with a {mousewheel_icon} mouse wheel or trackpad, or by pressing the {plus} / {minus} buttons. **Zoom the map!**",
"zoom_touch": "You can zoom the map by {pinch_icon} pinching it with two fingers, {doubletap_icon} double-tapping a location, or pressing the {plus} / {minus} buttons. **Zoom the map!**",
"features": "We use the word *features* to describe the things that appear on the map. Anything in the real world can be mapped as a feature on OpenStreetMap.",
"points_lines_areas": "Map features are represented using *points, lines, or areas.*",
"nodes_ways": "In OpenStreetMap, points are sometimes called *nodes*, and lines and areas are sometimes called *ways*.",
"click_townhall": "All features on the map can be selected by clicking or tapping on them. **Select the point.**",
"click_townhall": "All features on the map can be selected by {leftclick} clicking on them. **Click the point to select it.**",
"tap_townhall": "All features on the map can be selected by {tap_icon} tapping on them. **Tap the point to select it.**",
"selected_townhall": "Great! The point is now selected. Selected features are drawn with a pulsing glow.",
"editor_townhall": "When a feature is selected, the *feature editor* is displayed alongside the map.",
"preset_townhall": "The top part of the feature editor shows the feature's type. This point is a {preset}.",
"fields_townhall": "The middle part of the feature editor contains *fields* showing the feature's attributes, such as its name and address.",
"close_townhall": "**Close the feature editor by hitting escape or pressing the {button} button in the upper corner.**",
"close_townhall": "**Close the feature editor by pressing the {button} button in the upper corner or `{esc}`.**",
"search_street": "You can also search for features in the current view, or worldwide. **Search for '{name}'.**",
"choose_street": "**Choose {name} from the list to select it.**",
"selected_street": "Great! {name} is now selected.",
"editor_street": "The fields shown for a street are different than the fields that were shown for the town hall.{br}For this selected street, the feature editor shows fields like '{field1}' and '{field2}'. **Close the feature editor by hitting escape or pressing the {button} button.**",
"street_different_fields": "The fields shown for a street are different than the fields that were shown for the town hall.",
"editor_street": "For this selected street, the feature editor shows fields like '{field1}' and '{field2}'. **Close the feature editor by pressing the {button} button or `{esc}`.**",
"play": "Try exploring the map and selecting some other features to see what kinds of things can be added to OpenStreetMap. **When you are ready to continue to the next chapter, press '{next}'.**"
},
"points": {
"title": "Points",
"add_point": "*Points* can be used to represent features such as shops, restaurants, and monuments.{br}They mark a specific location, and describe what's there. **Click the {button} Point button to add a new point.**",
"place_point": "To place the new point on the map, position your mouse cursor where the point should go, then left-click or press the spacebar. **Move the mouse pointer over this building, then left-click or press the spacebar.**",
"points_info": "*Points* can be used to represent features such as shops, restaurants, and monuments.",
"add_point": "They mark a specific location, and describe what's there. **Press the {point_icon} {point} button to add a new point.**",
"place_point": "To place the new point on the map, position your mouse cursor where the point should go, then {leftclick} left-click or press `{space}`. **Move the mouse pointer over this building, then left-click or press `{space}`.**",
"place_point_touch": "To place the new point on the map, {tap_icon} tap the location where it should go. **Tap the center of this building.**",
"search_cafe": "There are many different features that can be represented by points. The point you just added is a cafe. **Search for '{preset}'.**",
"choose_cafe": "**Choose {preset} from the list.**",
"feature_editor": "The point is now marked as a cafe. Using the feature editor, we can add more information about the cafe.",
"add_name": "In OpenStreetMap, all of the fields are optional, and it's OK to leave a field blank if you are unsure.{br}Let's pretend that you have local knowledge of this cafe, and you know its name. **Add a name for the cafe.**",
"add_close": "The feature editor will remember all of your changes automatically. **When you are finished adding the name, hit escape, enter, or click the {button} button to close the feature editor.**",
"reselect": "Often points will already exist, but have mistakes or be incomplete. We can edit existing points. **Click to select the cafe you just created.**",
"fields_info": "In OpenStreetMap, all of the fields are optional, and it's OK to leave a field blank if you are unsure.",
"add_name": "Let's pretend that you have local knowledge of this cafe, and you know its name. **Add a name for the cafe.**",
"add_close": "The feature editor will remember all of your changes automatically. **When you are finished adding the name, press the {button} button or `{esc}` to close the feature editor.**",
"reselect": "Often points will already exist, but have mistakes or be incomplete. We can edit existing points. **Select the cafe you just created.**",
"update": "Let's fill in some more details for this cafe. You can change its name, add a cuisine, or add an address. **Change the cafe details.**",
"update_close": "**When you are finished updating the cafe, hit escape, enter, or click the {button} button to close the feature editor.**",
"rightclick": "You can right-click on any feature to see the *edit menu*, which shows a list of editing operations that can be performed. **Right-click to select the point you created and show the edit menu.**",
"delete": "It's OK to delete features that don't exist in the real world.{br}Deleting a feature from OpenStreetMap removes it from the map that everyone uses, so you should make sure a feature is really gone before you delete it. **Click on the {button} button to delete the point.**",
"undo": "You can always undo any changes up until you save your edits to OpenStreetMap. **Click on the {button} button to undo the delete and get the point back.**",
"play": "Now that you know how to create and edit points, try creating a few more points for practice! **When you are ready to continue to the next chapter, click '{next}'.**"
"update_close": "**When you are finished updating the cafe, press the {button} button or `{esc}` to close the feature editor.**",
"rightclick": "You can {rightclick} right-click on any feature to see the *edit menu*, which shows a list of editing operations that can be performed.{br}A right-click might be the same as a control-click or two-finger click. **Right-click to select the point you created and show the edit menu.**",
"edit_menu_touch": "You can {longpress_icon} long-press on any feature to see the *edit menu*, which shows a list of editing operations that can be performed. **Press-and-hold the point you created to show the edit menu.**",
"delete": "It's OK to delete features that don't exist in the real world.{br}Deleting a feature from OpenStreetMap removes it from the map that everyone uses, so you should make sure a feature is really gone before you delete it. **Press the {delete_icon} {delete} button to remove the point.**",
"undo": "You can always undo any changes up until you save your edits to OpenStreetMap. **Press the {undo_icon} {undo} button to get the point back.**",
"play": "Now that you know how to create and edit points, try creating a few more points for practice! **When you are ready to continue to the next chapter, press '{next}'.**"
},
"areas": {
"title": "Areas",
"add_playground": "*Areas* are used to show the boundaries of features like lakes, buildings, and residential areas.{br}They can also be used for more detailed mapping of many features you might normally map as points. **Click the {button} Area button to add a new area.**",
"start_playground": "Let's add this playground to the map by drawing an area. Areas are drawn by placing *nodes* along the outer edge of the feature. **Click or press spacebar to place a starting node on one of the corners of the playground.**",
"continue_playground": "Continue drawing the area by placing more nodes along the playground's edge. It is OK to connect the area to the existing walking paths.{br}Tip: You can hold down the '{alt}' key to prevent nodes from connecting to other features. **Continue drawing an area for the playground.**",
"finish_playground": "Finish the area by pressing enter, or clicking again on either the first or last node. **Finish drawing an area for the playground.**",
"add_playground": "*Areas* are used to show the boundaries of features like lakes, buildings, and residential areas.{br}They can also be used for more detailed mapping of many features you might normally map as points. **Press the {area_icon} {area} button to add a new area.**",
"start_playground": "Let's add this playground to the map by drawing an area. Areas are drawn by placing *nodes* along the outer edge of the feature.",
"starting_node_click": "**Click or press `{space}` to place a starting node on one of the corners of the playground.**",
"starting_node_tap": "**{tap_icon} Tap to place a starting node on one of the corners of the playground.**",
"continue_playground": "Continue drawing the area by placing more nodes along the playground's edge. It is OK to connect the area to the existing walking paths.{br}Tip: You can hold down the `{alt}` key to prevent nodes from connecting to other features. **Continue drawing an area for the playground.**",
"finish_area_click": "Finish the area by pressing `{return}`, or clicking again on either the first or last node.",
"finish_area_tap": "Finish the area by {tap_icon} tapping again on either the first or last node, or by pressing `{return}` on a keyboard.",
"finish_playground": "**Finish drawing an area for the playground.**",
"search_playground": "**Search for '{preset}'.**",
"choose_playground": "**Choose {preset} from the list.**",
"add_field": "This playground doesn't have an official name, so we won't add anything in the Name field.{br}Instead let's add some additional details about the playground to the Description field. **Open the Add Field list.**",
"add_field": "This playground doesn't have an official name, so we won't add anything in the {name} field.{br}Instead let's add some additional details about the playground to the {description} field. **Open the Add Field list.**",
"choose_field": "**Choose {field} from the list.**",
"retry_add_field": "You didn't select the {field} field. Let's try again.",
"describe_playground": "**Add a description, then click the {button} button to close the feature editor.**",
"play": "Good job! Try drawing a few more areas, and see what other kinds of area features you can add to OpenStreetMap. **When you are ready to continue to the next chapter, click '{next}'.**"
"describe_playground": "**Add a description, then press the {button} button to close the feature editor.**",
"play": "Good job! Try drawing a few more areas, and see what other kinds of area features you can add to OpenStreetMap. **When you are ready to continue to the next chapter, press '{next}'.**"
},
"lines": {
"title": "Lines",
"add_line": "*Lines* are used to represent features such as roads, railroads, and rivers. **Click the {button} Line button to add a new line.**",
"start_line": "Here is a road that is missing. Let's add it!{br}In OpenStreetMap, lines should be drawn down the center of the road. You can drag and zoom the map while drawing if necessary. **Start a new line by clicking at the top end of this missing road.**",
"intersect": "Click or press spacebar to add more nodes to the line.{br}Roads, and many other types of lines, are part of a larger network. It is important for these lines to be connected properly in order for routing applications to work. **Click on {name} to create an intersection connecting the two lines.**",
"add_line": "*Lines* are used to represent features such as roads, railroads, and rivers. **Press the {line_icon} {line} button to add a new line.**",
"missing_road": "Here is a road that is missing. Let's add it!",
"line_draw_info": "In OpenStreetMap, lines should be drawn down the center of the road. You can drag and zoom the map while drawing if necessary.",
"start_line": "**Start a new line by clicking at the top end of this missing road.**",
"start_line_tap": "**Start a new line by {tap_icon} tapping at the top end of this missing road.**",
"intersect": "Continue drawing the line by placing more nodes along the road.{br}Roads, along with paths and ferry routes, must be properly connected to each other for navigation apps to work. **Place an intersection node on {name} to connect the two lines.**",
"retry_intersect": "The road needs to intersect {name}. Let's try again!",
"continue_line": "Continue drawing the line for the new road. Remember that you can drag and zoom the map if needed.{br}When you are finished drawing, click on the last node again. **Finish drawing the road.**",
"continue_line": "Continue drawing the line for the new road. Remember that you can drag and zoom the map if needed.",
"finish_line_click": "When you're finished, click the last node again or press `{return}`.",
"finish_line_tap": "When you're finished, {tap_icon} tap the last node again or press `{return}` on a keyboard.",
"finish_road": "**Finish drawing the road.**",
"choose_category_road": "**Select {category} from the list.**",
"choose_preset_residential": "There are many different types of roads, but this one is a residential road. **Choose the {preset} type.**",
"retry_preset_residential": "You didn't select the {preset} type. **Click here to choose again.**",
"name_road": "**Give this road a name, then hit escape, enter, or click the {button} button to close the feature editor.**",
"retry_preset_residential": "You didn't select the {preset} type. **Press this button to choose again.**",
"name_road": "**Give this road a name, then press the {button} button or `{esc}` to close the feature editor.**",
"did_name_road": "Looks good! Next we will learn how to update the shape of a line.",
"update_line": "Sometimes you will need to change the shape of an existing line. Here is a road that doesn't look quite right.",
"add_node": "We can add some nodes to this line to improve its shape. One way to add a node is to double-click the line where you want to add a node. **Double-click on the line to create a new node.**",
"start_drag_endpoint": "When a line is selected, you can drag any of its nodes by clicking and holding down the left mouse button while you drag. **Drag the endpoint to the place where these roads should intersect.**",
"finish_drag_endpoint": "This spot looks good. **Release the left mouse button to finish dragging.**",
"add_node_touch": "We can add some nodes to this line to improve its shape. One way to add a node is to {doubletap_icon} double-tap the line where you want to add a node. **Double-tap on the line to create a new node.**",
"start_drag_endpoint": "When a line is selected, you can adjust any of its nodes by clicking and holding down the {leftclick} left mouse button while you drag.",
"start_drag_endpoint_touch": "When a line is selected, you can {touchdrag_icon} tap-and-drag any of its nodes to adjust them.",
"drag_to_intersection": "**Drag the endpoint to the place where these roads should intersect.**",
"spot_looks_good": "This spot looks good.",
"finish_drag_endpoint": "**Release the mouse button to finish dragging.**",
"finish_drag_endpoint_touch": "**Let go of the node to finish dragging.**",
"start_drag_midpoint": "Small triangles are drawn at the *midpoints* between nodes. Another way to create a new node is to drag a midpoint to a new location. **Drag the midpoint triangle to create a new node along the curve of the road.**",
"continue_drag_midpoint": "This line is looking much better! Continue to adjust this line by double-clicking or dragging midpoints until the curve matches the road shape. **When you're happy with how the line looks, click OK.**",
"continue_drag_midpoint": "This line is looking much better! Continue to adjust this line until the curve matches the road shape. **When you're happy with how the line looks, press {ok}.**",
"delete_lines": "It's OK to delete lines for roads that don't exist in the real world.{br}Here's an example where the city planned a {street} but never built it. We can improve this part of the map by deleting the extra lines.",
"rightclick_intersection": "The last real street is {street1}, so we will *split* {street2} at this intersection and remove everything above it. **Right click on the intersection node.**",
"split_intersection": "**Click on the {button} button to split {street}.**",
"retry_split": "You didn't click the Split button. Try again.",
"did_split_multi": "Good job! {street1} is now split into two pieces. The top part can be removed. **Click the top part of {street2} to select it.**",
"did_split_single": "**Click the top part of {street2} to select it.**",
"multi_select": "{selected} is now selected. Let's also select {other1}. You can shift-click to select multiple things. **Shift-click on {other2}.**",
"multi_rightclick": "Good! Both lines to delete are now selected. **Right-click on one of the lines to show the edit menu.**",
"multi_delete": "**Click on the {button} button to delete the extra lines.**",
"retry_delete": "You didn't click the Delete button. Try again.",
"play": "Great! Use the skills that you've learned in this chapter to practice editing some more lines. **When you are ready to continue to the next chapter, click '{next}'.**"
"split_street": "The last real street is {street1}, so we will *split* {street2} at this intersection and remove everything above it.",
"rightclick_intersection": "**{rightclick} Right-click on the intersection node.**",
"edit_menu_intersection_touch": "**{longpress_icon} Long-press on the intersection node.**",
"split_intersection": "**Press the {split_icon} {split} button to divide {street}.**",
"retry_split": "You didn't press the {split_icon} {split} button. Try again.",
"did_split_multi": "Good job! {street1} is now split into two pieces. The top part can be removed. **Select the top part of {street2}.**",
"did_split_single": "**Select the top part of {street2}.**",
"multi_select": "{selected} is now selected. Let's also select {other1}.",
"add_to_selection_click": "You can hold `{shift}` while clicking to select multiple things. **Shift-click on {other2}.**",
"add_to_selection_touch": "**{longpress_icon} Tap-and-hold {selected} and then {tap_icon} tap {other2} with another finger to select both.**",
"multi_select_success": "Good! Both lines to delete are now selected.",
"multi_rightclick": "**{rightclick} Right-click on one of the lines to show the edit menu.**",
"multi_edit_menu_touch": "**{longpress_icon} Long-press on one of the lines to show the edit menu.**",
"multi_delete": "**Press the {delete_icon} {delete} button to remove the extra lines.**",
"retry_delete": "You didn't press the {delete_icon} {delete} button. Try again.",
"play": "Great! Use the skills that you've learned in this chapter to practice editing some more lines. **When you are ready to continue to the next chapter, press '{next}'.**"
},
"buildings": {
"title": "Buildings",
"add_building": "OpenStreetMap is the world's largest database of buildings.{br}You can help improve this database by tracing buildings that aren't already mapped. **Click the {button} Area button to add a new area.**",
"start_building": "Let's add this house to the map by tracing its outline.{br}Buildings should be traced around their footprint as accurately as possible. **Click or press spacebar to place a starting node on one of the corners of the building.**",
"continue_building": "Continue adding more nodes to trace the outline of the building. Remember that you can zoom in if you want to add more details.{br}Finish the building by pressing enter, or clicking again on either the first or last node. **Finish tracing the building.**",
"add_building": "OpenStreetMap is the world's largest database of buildings.{br}You can help improve this database by tracing buildings that aren't already mapped. **Press the {area_icon} {area} button to add a new area.**",
"start_building": "Let's add this house to the map by tracing its outline.{br}Buildings should be traced around their footprint as accurately as possible.",
"building_corner_click": "**Click or press `{space}` to place a starting node on one of the corners of the building.**",
"building_corner_tap": "**{tap_icon} Tap one of the corners of the building to place a starting node.**",
"continue_building": "Continue placing nodes to trace the outline of the building. Remember that you can zoom in if you want to add more details.",
"finish_building": "**Finish tracing the building.**",
"retry_building": "It looks like you had some trouble placing the nodes at the building corners. Try again!",
"choose_category_building": "**Choose {category} from the list.**",
"choose_preset_house": "There are many different types of buildings, but this one is clearly a house.{br}If you're not sure of the type, it's OK to just choose the generic Building type. **Choose the {preset} type.**",
"close": "**Hit escape or click the {button} button to close the feature editor.**",
"rightclick_building": "**Right-click to select the building you created and show the edit menu.**",
"square_building": "The house that you just added will look even better with perfectly square corners. **Click on the {button} button to square the building shape.**",
"retry_square": "You didn't click the Square button. Try again.",
"close": "**Press the {button} button or `{esc}` to close the feature editor.**",
"rightclick_building": "**{rightclick} Right-click to select the building you created and show the edit menu.**",
"edit_menu_building_touch": "**{longpress_icon} Long-press the building you created to show the edit menu.**",
"square_building": "The house that you just added will look even better with perfectly square corners. **Press the {orthogonalize_icon} {orthogonalize} button to tidy up the building's shape.**",
"retry_square": "You didn't press the {orthogonalize_icon} {orthogonalize} button. Try again.",
"done_square": "See how the corners of the building moved into place? Let's learn another useful trick.",
"add_tank": "Next we'll trace this circular storage tank. **Click the {button} Area button to add a new area.**",
"start_tank": "Don't worry, you won't need to draw a perfect circle. Just draw an area inside the tank that touches its edge. **Click or press spacebar to place a starting node on the edge of the tank.**",
"continue_tank": "Add a few more nodes around the edge. The circle will be created outside the nodes that you draw.{br}Finish the area by pressing enter, or clicking again on either the first or last node. **Finish tracing the tank.**",
"add_tank": "Next we'll trace this circular storage tank. **Press the {area_icon} {area} button to add a new area.**",
"start_tank": "Don't worry, you won't need to draw a perfect circle. Just draw an area inside the tank that touches its edge.",
"tank_edge_click": "**Click or press `{space}` to place a starting node on the edge of the tank.**",
"tank_edge_tap": "**{tap_icon} Tap the edge of the tank to place a starting node.**",
"continue_tank": "Add a few more nodes around the edge. The circle will be created outside the nodes that you draw.",
"finish_tank": "**Finish tracing the tank.**",
"search_tank": "**Search for '{preset}'.**",
"choose_tank": "**Choose {preset} from the list.**",
"rightclick_tank": "**Right-click to select the storage tank you created and show the edit menu.**",
"circle_tank": "**Click on the {button} button to make the tank a circle.**",
"retry_circle": "You didn't click the Circularize button. Try again.",
"play": "Great Job! Practice tracing a few more buildings, and try some of the other commands on the edit menu. **When you are ready to continue to the next chapter, click '{next}'.**"
"rightclick_tank": "**{rightclick} Right-click to select the storage tank you created and show the edit menu.**",
"edit_menu_tank_touch": "**{longpress_icon} Long-press the storage tank you created to show the edit menu.**",
"circle_tank": "**Press the {circularize_icon} {circularize} button to make the tank a circle.**",
"retry_circle": "You didn't press the {circularize_icon} {circularize} button. Try again.",
"play": "Great Job! Practice tracing a few more buildings, and try some of the other commands on the edit menu. **When you are ready to continue to the next chapter, press '{next}'.**"
},
"startediting": {
"title": "Start Editing",
"help": "You're now ready to edit OpenStreetMap!{br}You can replay this walkthrough anytime or view more documentation by clicking the {button} Help button or pressing the '{key}' key.",
"shortcuts": "You can view a list of commands along with their keyboard shortcuts by pressing the '{key}' key.",
"help": "You're now ready to edit OpenStreetMap!{br}You can replay this walkthrough anytime or view more documentation by pressing the {help_icon} {help} button or the `{help_key}` key.",
"shortcuts": "You can view a list of commands along with their keyboard shortcuts by pressing the `{shortcuts_key}` key.",
"save": "Don't forget to regularly save your changes!",
"start": "Start mapping!"
}
},
"shortcuts": {
"title": "Keyboard shortcuts",
"title": "Keyboard Shortcuts",
"tooltip": "Show the keyboard shortcuts screen.",
"toggle": {
"key": "?"
@@ -4815,7 +4862,8 @@
"terms": "guarded,manned"
},
"support": {
"label": "Support"
"label": "Support",
"terms": ""
},
"surface": {
"label": "Surface",
@@ -6704,8 +6752,8 @@
"name": "Tailor"
},
"craft/agricultural_engines": {
"name": "Argricultural Engines Mechanic",
"terms": ""
"name": "Agricultural Engines Mechanic",
"terms": "combines,farm equipment,harvesters,tractors"
},
"craft/basket_maker": {
"name": "Basket Maker",
@@ -9475,7 +9523,7 @@
},
"shop/craft": {
"name": "Arts & Crafts Store",
"terms": "art*,paint*,frame"
"terms": "art*,paint*,frame,hobby"
},
"shop/curtain": {
"name": "Curtain Store",
@@ -9701,6 +9749,10 @@
"name": "Mobile Phone Store",
"terms": ""
},
"shop/model": {
"name": "Model Shop",
"terms": "hobby,model building,model figures,model kits,model store,scale models"
},
"shop/money_lender": {
"name": "Money Lender",
"terms": ""
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"sat":{"icons":{"download":"ᱟᱹᱛᱩᱨ ᱟᱬᱜᱚ","information":"ᱞᱟᱹᱭ ᱥᱚᱫᱚᱨ","remove":"ᱚᱰᱚᱠ","undo":"ᱯᱟᱪᱷᱞᱟᱭ ᱢᱮ","copy":"ᱱᱚᱠᱚᱞ","favorite":"ᱠᱩᱥᱤᱠᱚ","list":"ᱛᱟᱞᱠᱟ","text":"ᱚᱞ ᱠᱚ"},"toolbar":{"recent":"ᱱᱤᱛᱚᱜᱼᱟ","favorites":"ᱠᱩᱥᱤᱠᱚ","add_feature":"ᱯᱷᱤᱪᱚᱨ ᱮᱢ ᱥᱮᱞᱣᱫ ᱢᱮ"}}}
{"sat":{"icons":{"download":"ᱟᱹᱛᱩᱨ ᱟᱬᱜᱚ","information":"ᱞᱟᱹᱭ ᱥᱚᱫᱚᱨ","remove":"ᱚᱰᱚᱠ","undo":"ᱯᱟᱪᱷᱞᱟᱭ ᱢᱮ","zoom_to":"ᱡᱩᱢ ᱛᱮ","copy":"ᱱᱚᱠᱚᱞ","view_on":"{domain} ᱨᱮ ᱫᱮᱠᱷᱟᱣᱢᱮ","favorite":"ᱠᱩᱥᱤᱠᱚ","list":"ᱛᱟᱞᱠᱟ","text":"ᱚᱞ ᱠᱚ","deselect":"ᱟᱞᱚ ᱪᱚᱭᱚᱱ"},"toolbar":{"inspect":"ᱯᱟᱱᱛᱮ","undo_redo":"ᱢᱟᱲᱟᱝ / ᱨᱩᱟᱹᱲ ᱟᱹᱜᱩ","recent":"ᱱᱤᱛᱚᱜᱼᱟ","favorites":"ᱠᱩᱥᱤᱠᱚ","add_feature":"ᱯᱷᱤᱪᱚᱨ ᱮᱢ ᱥᱮᱞᱮᱫ ᱢᱮ"},"title":{"format":{"context":"{base} {context}","changes":"({changes}) {base}","changes_context":"({changes}) {base} {context}"},"labeled_and_more":"{labeled} ᱟᱨ {count} ᱟᱨᱦᱚᱸ"},"modes":{"add_feature":{"title":"ᱯᱷᱤᱪᱚᱨ ᱥᱮᱞᱮᱫ ᱢᱮ","description":"ᱱᱚᱠᱥᱟ ᱨᱮ ᱯᱷᱤᱪᱨᱚ ᱥᱮᱞᱮᱫ ᱞᱟᱹᱜᱤᱫ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ ᱾","key":"ᱴᱮᱵ","result":"{count} ᱚᱨᱡᱚ","results":"{count} ᱚᱨᱡᱚ ᱠᱚ"},"add_area":{"title":"ᱴᱚᱴᱷᱟ","description":"ᱯᱟᱨᱠ, ᱯᱟᱠᱟ ᱚᱲᱟᱜ, ᱫᱚᱨᱮᱭᱟ ᱟᱨ ᱵᱟᱝ ᱚᱞᱜᱟ ᱡᱟᱭᱜᱟ ᱱᱚᱠᱥᱟ ᱨᱮ ᱥᱮᱞᱮᱫ ᱢᱮ ᱾","filter_tooltip":"ᱴᱚᱴᱷᱟ"},"add_line":{"title":"ᱜᱟᱨ","filter_tooltip":"ᱜᱟᱨ"},"add_point":{"title":"ᱵᱤᱸᱫᱩ","filter_tooltip":"ᱵᱤᱸᱫᱩ ᱠᱚ"},"add_note":{"title":"ᱱᱚᱴ","label":"ᱱᱚᱴ ᱥᱮᱞᱮᱫ ᱢᱮ"}},"operations":{"add":{"annotation":{"note":"ᱠᱷᱟᱴᱚ ᱠᱟᱛᱷᱟ ᱥᱮᱞᱮᱫ ᱮᱱᱟ ᱾"}},"paste":{"title":"ᱞᱟᱴᱷᱟ","annotation":{"single":"ᱯᱷᱤᱪᱚᱨ ᱞᱟᱴᱷᱟ ᱮᱱᱟ ","multiple":"ᱞᱟᱴᱷᱟᱠᱟᱱ {n} ᱯᱷᱤᱪᱚᱨ ᱾"}},"straighten":{"key":"S","annotation":{"points":"ᱟᱹᱰᱤᱜᱟᱱ ᱴᱤᱰᱟᱹᱜ ᱥᱤᱫᱷᱟᱭ ᱢᱮ ᱾","line":"ᱜᱟᱨ ᱥᱤᱫᱷᱟ ᱮᱱᱟ ᱾","lines":"ᱟᱹᱰᱤᱜᱟᱱ ᱜᱟᱨ ᱥᱤᱫᱷᱟᱮᱱᱟ ᱾"},"too_bendy":{"single":"ᱱᱚᱶᱟ ᱫᱚ ᱵᱟᱭ ᱥᱤᱫᱷᱟᱫ ᱜᱟᱸᱚᱜ-ᱟ ᱪᱮᱫᱟᱜ ᱱᱚᱣᱟ ᱫᱚ ᱟᱹᱰᱤ ᱠᱟᱹᱲᱵᱝ ᱠᱟᱱᱟ ᱾","multiple":"ᱱᱚᱶᱟ ᱫᱚ ᱵᱟᱭ ᱥᱤᱫᱷᱟᱹ ᱜᱟᱸᱚᱜ-ᱟ ᱪᱮᱫᱟᱜ ᱱᱚᱶᱟ ᱫᱚ ᱟᱹᱰᱤ ᱠᱟᱹᱲᱵᱩᱝ ᱠᱟᱱᱟ ᱾"}},"delete":{"title":"ᱜᱮᱫ ᱜᱤᱰᱤ"}},"commit":{"cancel":"ᱵᱟᱰ","changes":"ᱵᱚᱫᱚᱞᱠᱩ ({count})","errors":"ᱵᱷᱩᱞ"},"map_data":{"layers":{"notes":{"title":"OpenStreetMap ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ"}}},"help":{"notes":{"title":"ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ","add_note_h":"ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱥᱮᱞᱮᱫ","save_note_h":"ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱥᱟᱱᱪᱟᱣ"}},"issues":{"errors":{"list_title":"ᱵᱷᱩᱞ ({count})"}},"intro":{"ok":"ᱴᱷᱤᱠ"}}}
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+5 -2
View File
@@ -45,7 +45,10 @@ export function actionExtract(entityID) {
var keysToRetain = ['area'];
var buildingKeysToRetain = ['architect', 'building', 'height', 'layer'];
var centroid = d3_geoCentroid(entity.asGeoJSON(graph));
var extractedLoc = d3_geoCentroid(entity.asGeoJSON(graph));
if (!extractedLoc || !isFinite(extractedLoc[0]) || !isFinite(extractedLoc[1])) {
extractedLoc = entity.extent(graph).center();
}
var isBuilding = entity.tags.building && entity.tags.building !== 'no';
@@ -87,7 +90,7 @@ export function actionExtract(entityID) {
entityTags.area = 'yes';
}
var replacement = osmNode({ loc: centroid, tags: pointTags });
var replacement = osmNode({ loc: extractedLoc, tags: pointTags });
graph = graph.replace(replacement);
extractedNodeID = replacement.id;
+28 -3
View File
@@ -1,6 +1,6 @@
import { geoPolygonContainsPolygon } from '../geo';
import { osmJoinWays, osmRelation } from '../osm';
import { utilArrayGroupBy, utilObjectOmit } from '../util';
import { utilArrayGroupBy, utilArrayIntersection, utilObjectOmit } from '../util';
export function actionMergePolygon(ids, newRelationId) {
@@ -114,10 +114,35 @@ export function actionMergePolygon(ids, newRelationId) {
action.disabled = function(graph) {
var entities = groupEntities(graph);
if (entities.other.length > 0 ||
entities.closedWay.length + entities.multipolygon.length < 2)
entities.closedWay.length + entities.multipolygon.length < 2) {
return 'not_eligible';
if (!entities.multipolygon.every(function(r) { return r.isComplete(graph); }))
}
if (!entities.multipolygon.every(function(r) { return r.isComplete(graph); })) {
return 'incomplete_relation';
}
if (!entities.multipolygon.length) {
var sharedMultipolygons = [];
entities.closedWay.forEach(function(way, i) {
if (i === 0) {
sharedMultipolygons = graph.parentMultipolygons(way);
} else {
sharedMultipolygons = utilArrayIntersection(sharedMultipolygons, graph.parentMultipolygons(way));
}
});
sharedMultipolygons = sharedMultipolygons.filter(function(relation) {
return relation.members.length === entities.closedWay.length;
});
if (sharedMultipolygons.length) {
// don't create a new multipolygon if it'd be redundant
return 'not_eligible';
}
} else if (entities.closedWay.some(function(way) {
return utilArrayIntersection(graph.parentMultipolygons(way), entities.multipolygon).length;
})) {
// don't add a way to a multipolygon again if it's already a member
return 'not_eligible';
}
};
+2 -2
View File
@@ -78,7 +78,7 @@ export function behaviorHover(context) {
.on(_pointerPrefix + 'down.hover', pointerover);
d3_select(window)
.on(_pointerPrefix + 'up.hover', pointerout, true)
.on(_pointerPrefix + 'up.hover pointercancel.hover', pointerout, true)
.on('keydown.hover', keydown)
.on('keyup.hover', keyup);
@@ -208,7 +208,7 @@ export function behaviorHover(context) {
.on(_pointerPrefix + 'down.hover', null);
d3_select(window)
.on(_pointerPrefix + 'up.hover', null, true)
.on(_pointerPrefix + 'up.hover pointercancel.hover', null, true)
.on('keydown.hover', null)
.on('keyup.hover', null);
};
+2
View File
@@ -95,6 +95,8 @@ export function behaviorSelect(context) {
if (d3_event.buttons && d3_event.buttons !== 1) return;
context.ui().closeEditMenu();
_longPressTimeout = window.setTimeout(didLongPress, 500, id, 'longdown-' + (d3_event.pointerType || 'mouse'));
_downPointers[id] = {
+17 -4
View File
@@ -26,7 +26,7 @@ export function coreContext() {
let context = utilRebind({}, dispatch, 'on');
let _deferred = new Set();
context.version = '2.17.3';
context.version = '2.18.5-dev';
context.privacyVersion = '20200407';
// iD will alter the hash so cache the parameters intended to setup the session
@@ -80,6 +80,7 @@ export function coreContext() {
/* User interface and keybinding */
let _ui;
context.ui = () => _ui;
context.lastPointerType = () => _ui.lastPointerType();
let _keybinding = utilKeybinding('context');
context.keybinding = () => _keybinding;
@@ -87,7 +88,9 @@ export function coreContext() {
/* Straight accessors. Avoid using these if you can. */
let _connection;
// Instantiate the connection here because it doesn't require passing in
// `context` and it's needed for pre-init calls like `preauth`
let _connection = services.osm;
let _history;
let _validator;
let _uploader;
@@ -113,6 +116,14 @@ export function coreContext() {
};
// A string or array or locale codes to prefer over the browser's settings
context.locale = function(locale) {
if (!arguments.length) return localizer.localeCode();
localizer.preferredLocaleCodes(locale);
return context;
};
function afterLoad(cid, callback) {
return (err, result) => {
if (err) {
@@ -520,8 +531,6 @@ export function coreContext() {
_photos = rendererPhotos(context);
_ui = uiInit(context);
_connection = services.osm;
}
// Set up objects that might need to access properties of `context`. The order
@@ -532,6 +541,10 @@ export function coreContext() {
presetManager.addablePresetIDs(new Set(context.initialHashParams.presets.split(',')));
}
if (context.initialHashParams.locale) {
localizer.preferredLocaleCodes(context.initialHashParams.locale);
}
// kick off some async work
localizer.ensureLoaded();
_background.ensureLoaded();
+32 -24
View File
@@ -53,6 +53,21 @@ export function coreLocalizer() {
localizer.scriptNames = () => _scriptNames;
// The client app may want to manually set the locale, regardless of the
// settings provided by the browser
let _preferredLocaleCodes = [];
localizer.preferredLocaleCodes = function(codes) {
if (!arguments.length) return _preferredLocaleCodes;
if (typeof codes === 'string') {
// be generous and accept delimited strings as input
_preferredLocaleCodes = codes.split(/,|;| /gi).filter(Boolean);
} else {
_preferredLocaleCodes = codes;
}
return localizer;
};
var _loadPromise;
localizer.ensureLoaded = () => {
@@ -70,15 +85,10 @@ export function coreLocalizer() {
_dataLocales = results[1];
})
.then(() => {
const hash = utilStringQs(window.location.hash);
if (hash.locale && _dataLocales[hash.locale]) {
// the locale can be manually set in the URL hash
_localeCode = hash.locale;
} else {
// otherwise use the locale specified by the browser
_localeCode = supportedBrowserLocale();
}
let requestedLocales = (_preferredLocaleCodes || [])
// list of locales preferred by the browser in priority order
.concat(utilDetect().browserLocales);
_localeCode = bestSupportedLocale(requestedLocales);
return Promise.all([
// always load the English locale strings as fallbacks
@@ -93,34 +103,32 @@ export function coreLocalizer() {
.catch(err => console.error(err)); // eslint-disable-line
};
// Returns the best locale requested by the browser supported by iD, if any
function supportedBrowserLocale() {
// list of locales preferred by the browser in priority order
let browserLocales = utilDetect().browserLocales;
// Returns the best locale from `locales` supported by iD, if any
function bestSupportedLocale(locales) {
let supportedLocales = _dataLocales;
for (let i in browserLocales) {
let browserLocale = browserLocales[i];
if (browserLocale.includes('-')) { // full locale ('es-ES')
for (let i in locales) {
let locale = locales[i];
if (locale.includes('-')) { // full locale ('es-ES')
if (supportedLocales[browserLocale]) return browserLocale;
if (supportedLocales[locale]) return locale;
// If full locale not supported ('es-FAKE'), fallback to the base ('es')
let langPart = browserLocale.split('-')[0];
let langPart = locale.split('-')[0];
if (supportedLocales[langPart]) return langPart;
} else { // base locale ('es')
// prefer a lower-priority full locale with this base ('es' < 'es-ES')
let fullLocale = browserLocales.find((locale, index) => {
let fullLocale = locales.find((locale2, index) => {
return index > i &&
locale !== browserLocale &&
locale.split('-')[0] === browserLocale &&
supportedLocales[locale];
locale2 !== locale &&
locale2.split('-')[0] === locale &&
supportedLocales[locale2];
});
if (fullLocale) return fullLocale;
if (supportedLocales[browserLocale]) return browserLocale;
if (supportedLocales[locale]) return locale;
}
}
@@ -147,7 +155,7 @@ export function coreLocalizer() {
_languageNames = currentData && currentData.languageNames;
_scriptNames = currentData && currentData.scriptNames;
_usesMetric = _localeCode.toLowerCase() !== 'en-us';
_usesMetric = _localeCode.slice(-3).toLowerCase() !== '-us';
}
+4
View File
@@ -284,6 +284,8 @@ export function modeSelect(context, selectedIDs) {
var loc = extent.center();
context.map().centerEase(loc);
// we could enter the mode multiple times, so reset follow for next time
_follow = false;
}
@@ -487,6 +489,8 @@ export function modeSelect(context, selectedIDs) {
mode.exit = function() {
_newFeature = false;
_operations.forEach(function(operation) {
if (operation.behavior) {
context.uninstall(operation.behavior);
+2 -3
View File
@@ -21,10 +21,9 @@ export function operationExtract(context, selectedIDs) {
if (entity.type === 'node' && graph.parentWays(entity).length === 0) return;
var geometry = graph.geometry(entityID);
if (geometry === 'area' || geometry === 'line') {
if (entity.type !== 'node') {
var preset = presetManager.match(entity, graph);
// only allow extraction from ways/multipolygons if the preset supports points
// only allow extraction from ways/relations if the preset supports points
if (preset.geometry.indexOf('point') === -1) return;
}
+14 -9
View File
@@ -14,19 +14,24 @@ export function operationMerge(context, selectedIDs) {
var _action = getAction();
function getAction() {
// prefer a non-disabled action first
var join = actionJoin(selectedIDs);
if (join.disabled(context.graph()) !== 'not_eligible') {
return join;
}
if (!join.disabled(context.graph())) return join;
var merge = actionMerge(selectedIDs);
if (merge.disabled(context.graph()) !== 'not_eligible') {
return merge;
}
if (!merge.disabled(context.graph())) return merge;
var mergePolygon = actionMergePolygon(selectedIDs);
if (mergePolygon.disabled(context.graph()) !== 'not_eligible') {
return mergePolygon;
}
if (!mergePolygon.disabled(context.graph())) return mergePolygon;
var mergeNodes = actionMergeNodes(selectedIDs);
if (!mergeNodes.disabled(context.graph())) return mergeNodes;
// otherwise prefer an action with an interesting disabled reason
if (join.disabled(context.graph()) !== 'not_eligible') return join;
if (merge.disabled(context.graph()) !== 'not_eligible') return merge;
if (mergePolygon.disabled(context.graph()) !== 'not_eligible') return mergePolygon;
return mergeNodes;
}
+17 -10
View File
@@ -112,7 +112,7 @@ export function rendererBackgroundSource(data) {
// Guess a type based on the tokens present in the template
// (This is for 'custom' source, where we don't know)
if (!source.type) {
if (/\{(proj|wkid|bbox)\}/.test(_template)) {
if (/SERVICE=WMS|\{(proj|wkid|bbox)\}/.test(_template)) {
source.type = 'wms';
source.projection = 'EPSG:3857'; // guess
} else if (/\{(x|y)\}/.test(_template)) {
@@ -159,23 +159,30 @@ export function rendererBackgroundSource(data) {
switch (key) {
case 'width':
case 'height':
return tileSize;
return tileSize;
case 'proj':
return projection;
return projection;
case 'wkid':
return projection.replace(/^EPSG:/, '');
return projection.replace(/^EPSG:/, '');
case 'bbox':
return minXmaxY.x + ',' + maxXminY.y + ',' + maxXminY.x + ',' + minXmaxY.y;
// WMS 1.3 flips x/y for some coordinate systems including EPSG:4326 - #7557
if (projection === 'EPSG:4326' &&
// The CRS parameter implies version 1.3 (prior versions use SRS)
/VERSION=1.3|CRS={proj}/.test(source.template())) {
return maxXminY.y + ',' + minXmaxY.x + ',' + minXmaxY.y + ',' + maxXminY.x;
} else {
return minXmaxY.x + ',' + maxXminY.y + ',' + maxXminY.x + ',' + minXmaxY.y;
}
case 'w':
return minXmaxY.x;
return minXmaxY.x;
case 's':
return maxXminY.y;
return maxXminY.y;
case 'n':
return maxXminY.x;
return maxXminY.x;
case 'e':
return minXmaxY.y;
return minXmaxY.y;
default:
return token;
return token;
}
});

Some files were not shown because too many files have changed in this diff Show More