diff --git a/Docs/BuiltinIndex.md b/Docs/BuiltinIndex.md index 13ed450b2..20939dddb 100644 --- a/Docs/BuiltinIndex.md +++ b/Docs/BuiltinIndex.md @@ -72,6 +72,8 @@ + [toilet.toilet-changing_table:location](#toilettoilet-changing_table:location) + [toilet.toilet-handwashing](#toilettoilet-handwashing) + [toilet.toilet-has-paper](#toilettoilet-has-paper) + + [toilet.menstrual_products](#toiletmenstrual_products) + + [toilet.menstrual_products_location](#toiletmenstrual_products_location) @@ -1099,6 +1101,28 @@ + - toilet_at_amenity + + + + +### toilet.menstrual_products + + + + + + - toilet_at_amenity + + + + +### toilet.menstrual_products_location + + + + + - toilet_at_amenity diff --git a/Docs/Layers/banks_with_atm.md b/Docs/Layers/banks_with_atm.md index 5436146aa..c5f5062fe 100644 --- a/Docs/Layers/banks_with_atm.md +++ b/Docs/Layers/banks_with_atm.md @@ -15,7 +15,6 @@ A financial institution to deposit money - This layer is shown at zoomlevel **14** and higher - - Not visible in the layer selection by default. If you want to make this layer toggable, override `name` diff --git a/Docs/Layers/bicycle_rental_non_docking.md b/Docs/Layers/bicycle_rental_non_docking.md index 246e51550..9cc0fd715 100644 --- a/Docs/Layers/bicycle_rental_non_docking.md +++ b/Docs/Layers/bicycle_rental_non_docking.md @@ -15,7 +15,6 @@ Bicycle rental stations - This layer is shown at zoomlevel **14** and higher - - Not visible in the layer selection by default. If you want to make this layer toggable, override `name` diff --git a/Docs/Layers/ghost_bike.md b/Docs/Layers/ghost_bike.md index aa05d6355..c14349e66 100644 --- a/Docs/Layers/ghost_bike.md +++ b/Docs/Layers/ghost_bike.md @@ -154,6 +154,18 @@ This rendering asks information about the property [start_date](https://wiki.op +### wikidata + + + +This tagrendering has no question and is thus read-only + + + +This tagrendering is only visible in the popup if the following condition is met: `subject:wikidata~.+` + + + ### leftover-questions diff --git a/Docs/Layers/toilet.md b/Docs/Layers/toilet.md index 042b069c3..19460db3e 100644 --- a/Docs/Layers/toilet.md +++ b/Docs/Layers/toilet.md @@ -68,6 +68,9 @@ attribute | type | values which are supported by this layer [](https://taginfo.openstreetmap.org/keys/wheelchair#values) [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [](https://taginfo.openstreetmap.org/keys/door:width#values) [door:width](https://wiki.openstreetmap.org/wiki/Key:door:width) | [pfloat](../SpecialInputElements.md#pfloat) | [](https://taginfo.openstreetmap.org/keys/toilets:position#values) [toilets:position](https://wiki.openstreetmap.org/wiki/Key:toilets:position) | Multiple choice | [seated](https://wiki.openstreetmap.org/wiki/Tag:toilets:position%3Dseated) [urinal](https://wiki.openstreetmap.org/wiki/Tag:toilets:position%3Durinal) [squat](https://wiki.openstreetmap.org/wiki/Tag:toilets:position%3Dsquat) [seated;urinal](https://wiki.openstreetmap.org/wiki/Tag:toilets:position%3Dseated;urinal) +[](https://taginfo.openstreetmap.org/keys/gender_segregated#values) [gender_segregated](https://wiki.openstreetmap.org/wiki/Key:gender_segregated) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:gender_segregated%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:gender_segregated%3Dno) +[](https://taginfo.openstreetmap.org/keys/toilets:menstrual_products#values) [toilets:menstrual_products](https://wiki.openstreetmap.org/wiki/Key:toilets:menstrual_products) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products%3Dno) +[](https://taginfo.openstreetmap.org/keys/toilets:menstrual_products:location#values) [toilets:menstrual_products:location](https://wiki.openstreetmap.org/wiki/Key:toilets:menstrual_products:location) | [string](../SpecialInputElements.md#string) | [female_toilet](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products:location%3Dfemale_toilet) [male_toilet](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products:location%3Dmale_toilet) [wheelchair_toilet](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products:location%3Dwheelchair_toilet) [](https://taginfo.openstreetmap.org/keys/changing_table#values) [changing_table](https://wiki.openstreetmap.org/wiki/Key:changing_table) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:changing_table%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:changing_table%3Dno) [](https://taginfo.openstreetmap.org/keys/changing_table:location#values) [changing_table:location](https://wiki.openstreetmap.org/wiki/Key:changing_table:location) | [string](../SpecialInputElements.md#string) | [female_toilet](https://wiki.openstreetmap.org/wiki/Tag:changing_table:location%3Dfemale_toilet) [male_toilet](https://wiki.openstreetmap.org/wiki/Tag:changing_table:location%3Dmale_toilet) [wheelchair_toilet](https://wiki.openstreetmap.org/wiki/Tag:changing_table:location%3Dwheelchair_toilet) [dedicated_room](https://wiki.openstreetmap.org/wiki/Tag:changing_table:location%3Ddedicated_room) [](https://taginfo.openstreetmap.org/keys/toilets:handwashing#values) [toilets:handwashing](https://wiki.openstreetmap.org/wiki/Key:toilets:handwashing) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:handwashing%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:handwashing%3Dno) @@ -305,6 +308,58 @@ This tagrendering has labels `relevant-questions` +### gender_segregated + + + +The question is *Are these toilets gender-segregated?* + + + + + + - *There is a separate, signposted area for men and women* corresponds with gender_segregated=yes + - *There is no separate, signposted area for men and women* corresponds with gender_segregated=no + + + + +### menstrual_products + + + +The question is *Are free, menstrual products distributed here?* + + + + + + - *Free menstrual products are available to all visitors of these toilets* corresponds with toilets:menstrual_products=yes + - *Free menstrual products are available to some visitors of these toilets* corresponds with toilets:menstrual_products=limited + - *No free menstrual products are available here* corresponds with toilets:menstrual_products=no + + + + +### menstrual_products_location + + + +The question is *Where are the free menstrual products located?* + +This rendering asks information about the property [toilets:menstrual_products:location](https://wiki.openstreetmap.org/wiki/Key:toilets:menstrual_products:location) This is rendered with `The menstrual products are located in {toilets:menstrual_products:location}` + + + + - *The free, menstrual products are located in the toilet for women* corresponds with toilets:menstrual_products:location=female_toilet + - *The free, menstrual products are located in the toilet for men* corresponds with toilets:menstrual_products:location=male_toilet + - *The free, menstrual products are located in the toilet for wheelchair users* corresponds with toilets:menstrual_products:location=wheelchair_toilet + + +This tagrendering is only visible in the popup if the following condition is met: `toilets:menstrual_products=limited | toilets:menstrual_products:location~.+` + + + ### toilets-changing-table diff --git a/Docs/Layers/toilet_at_amenity.md b/Docs/Layers/toilet_at_amenity.md index e90f7f9a8..37708c0fd 100644 --- a/Docs/Layers/toilet_at_amenity.md +++ b/Docs/Layers/toilet_at_amenity.md @@ -68,6 +68,8 @@ attribute | type | values which are supported by this layer [](https://taginfo.openstreetmap.org/keys/changing_table:location#values) [changing_table:location](https://wiki.openstreetmap.org/wiki/Key:changing_table:location) | [string](../SpecialInputElements.md#string) | [female_toilet](https://wiki.openstreetmap.org/wiki/Tag:changing_table:location%3Dfemale_toilet) [male_toilet](https://wiki.openstreetmap.org/wiki/Tag:changing_table:location%3Dmale_toilet) [wheelchair_toilet](https://wiki.openstreetmap.org/wiki/Tag:changing_table:location%3Dwheelchair_toilet) [dedicated_room](https://wiki.openstreetmap.org/wiki/Tag:changing_table:location%3Ddedicated_room) [](https://taginfo.openstreetmap.org/keys/toilets:handwashing#values) [toilets:handwashing](https://wiki.openstreetmap.org/wiki/Key:toilets:handwashing) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:handwashing%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:handwashing%3Dno) [](https://taginfo.openstreetmap.org/keys/toilets:paper_supplied#values) [toilets:paper_supplied](https://wiki.openstreetmap.org/wiki/Key:toilets:paper_supplied) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:paper_supplied%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:paper_supplied%3Dno) +[](https://taginfo.openstreetmap.org/keys/toilets:menstrual_products#values) [toilets:menstrual_products](https://wiki.openstreetmap.org/wiki/Key:toilets:menstrual_products) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products%3Dyes) [limited](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products%3Dlimited) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products%3Dno) +[](https://taginfo.openstreetmap.org/keys/toilets:menstrual_products:location#values) [toilets:menstrual_products:location](https://wiki.openstreetmap.org/wiki/Key:toilets:menstrual_products:location) | [string](../SpecialInputElements.md#string) | [female_toilet](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products:location%3Dfemale_toilet) [male_toilet](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products:location%3Dmale_toilet) [wheelchair_toilet](https://wiki.openstreetmap.org/wiki/Tag:toilets:menstrual_products:location%3Dwheelchair_toilet) [](https://taginfo.openstreetmap.org/keys/toilets:description#values) [toilets:description](https://wiki.openstreetmap.org/wiki/Key:toilets:description) | [string](../SpecialInputElements.md#string) | @@ -326,6 +328,42 @@ This tagrendering has labels `relevant-questions` +### menstrual_products + + + +The question is *Are free, menstrual products distributed here?* + + + + + + - *Free menstrual products are available to all visitors of these toilets* corresponds with toilets:menstrual_products=yes + - *Free menstrual products are available to some visitors of these toilets* corresponds with toilets:menstrual_products=limited + - *No free menstrual products are available here* corresponds with toilets:menstrual_products=no + + + + +### menstrual_products_location + + + +The question is *Where are the free menstrual products located?* + +This rendering asks information about the property [toilets:menstrual_products:location](https://wiki.openstreetmap.org/wiki/Key:toilets:menstrual_products:location) This is rendered with `The menstrual products are located in {toilets:menstrual_products:location}` + + + + - *The free, menstrual products are located in the toilet for women* corresponds with toilets:menstrual_products:location=female_toilet + - *The free, menstrual products are located in the toilet for men* corresponds with toilets:menstrual_products:location=male_toilet + - *The free, menstrual products are located in the toilet for wheelchair users* corresponds with toilets:menstrual_products:location=wheelchair_toilet + + +This tagrendering is only visible in the popup if the following condition is met: `toilets:menstrual_products=limited | toilets:menstrual_products:location~.+` + + + ### description diff --git a/Docs/SpecialRenderings.md b/Docs/SpecialRenderings.md index b236b0f55..154d443b0 100644 --- a/Docs/SpecialRenderings.md +++ b/Docs/SpecialRenderings.md @@ -172,6 +172,8 @@ In other words: use `{ "before": ..., "after": ..., "special": {"type": ..., "ar * [Example usage of direction_absolute](#example-usage-of-direction_absolute) + [compare_data](#compare_data) * [Example usage of compare_data](#example-usage-of-compare_data) + + [login_button](#login_button) + * [Example usage of login_button](#example-usage-of-login_button) + [auto_apply](#auto_apply) * [Example usage of auto_apply](#example-usage-of-auto_apply) @@ -982,6 +984,7 @@ image | confirm | Image to show message_confirm | _undefined_ | What to show when the task is closed, either by the user or was already closed. status | 1 | A statuscode to apply when the button is clicked. 1 = `close`, 2 = `false_positive`, 3 = `skip`, 4 = `deleted`, 5 = `already fixed` (on the map, e.g. for duplicates), 6 = `too hard` maproulette_id | mr_taskId | The property name containing the maproulette id +ask_feedback | _empty string_ | If not an empty string, this will be used as question to ask some additional feedback. A text field will be added #### Example usage of maproulette_set_status @@ -1041,9 +1044,9 @@ button_text | _undefined_ | The text shown on the button in the UI name | default | description ------ | --------- | ------------- text | _undefined_ | Text to be shown -href | _undefined_ | The URL to link to +href | _undefined_ | The URL to link to. Note that this will be URI-encoded before class | _undefined_ | CSS-classes to add to the element -download | _undefined_ | If set, this link will act as a download-button. The contents of `href` will be offered for download; this parameter will act as the proposed filename +download | _undefined_ | Expects a string which denotes the filename to download the contents of `href` into. If set, this link will act as a download-button. arialabel | _undefined_ | If set, this text will be used as aria-label @@ -1240,6 +1243,16 @@ readonly | _undefined_ | If 'yes', will not show 'apply'-buttons +### login_button + + Show a login button + +#### Example usage of login_button + + `{login_button()}` + + + ### auto_apply A button to run many actions for many features at once. To effectively use this button, you'll need some ingredients: diff --git a/Docs/TagInfo/mapcomplete_atm.json b/Docs/TagInfo/mapcomplete_atm.json index 6a3b152db..99bb1b582 100644 --- a/Docs/TagInfo/mapcomplete_atm.json +++ b/Docs/TagInfo/mapcomplete_atm.json @@ -132,6 +132,11 @@ "description": "The MapComplete theme ATM Machines has a layer Banks showing features with this tag", "value": "bank" }, + { + "key": "atm", + "description": "The MapComplete theme ATM Machines has a layer Banks showing features with this tag", + "value": "yes" + }, { "key": "id", "description": "Layer 'Banks' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'ATM Machines') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" @@ -340,179 +345,6 @@ "description": "Layer 'Post offices' shows atm=no with a fixed text, namely 'This post office does not have an ATM' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", "value": "no" }, - { - "key": "atm", - "description": "Layer 'Post offices' shows atm=separate with a fixed text, namely 'This post office does have an ATM, but it is mapped as a different icon' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "separate" - }, - { - "key": "amenity", - "description": "The MapComplete theme ATM Machines has a layer Post offices showing features with this tag", - "value": "post_office" - }, - { - "key": "post_office", - "description": "The MapComplete theme ATM Machines has a layer Post offices showing features with this tag", - "value": "post_partner" - }, - { - "key": "id", - "description": "Layer 'Post offices' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'ATM Machines') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" - }, - { - "key": "image", - "description": "The layer 'Post offices allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "mapillary", - "description": "The layer 'Post offices allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "wikidata", - "description": "The layer 'Post offices allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "wikipedia", - "description": "The layer 'Post offices allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "opening_hours", - "description": "Layer 'Post offices' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'ATM Machines')" - }, - { - "key": "post_office", - "description": "Layer 'Post offices' shows post_office=post_partner with a fixed text, namely 'This shop is a post partner' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "post_partner" - }, - { - "key": "post_office", - "description": "Layer 'Post offices' shows post_office= with a fixed text, namely 'This shop is not a post partner' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') Picking this answer will delete the key post_office. (This is only shown if post_office=post_partner)", - "value": "" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:brand' (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows post_office:brand=DHL with a fixed text, namely 'This location offers services for DHL' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "DHL" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows post_office:brand=DPD with a fixed text, namely 'This location offers services for DPD' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "DPD" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows post_office:brand=GLS with a fixed text, namely 'This location offers services for GLS' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "GLS" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows post_office:brand=UPS with a fixed text, namely 'This location offers services for UPS' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "UPS" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows post_office:brand=DHL Paketshop with a fixed text, namely 'This location is a DHL Paketshop' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "DHL Paketshop" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows post_office:brand=Hermes PaketShop with a fixed text, namely 'This location is a Hermes PaketShop' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "Hermes PaketShop" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows post_office:brand=PostNL with a fixed text, namely 'This location is a PostNL-point' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "PostNL" - }, - { - "key": "post_office:brand", - "description": "Layer 'Post offices' shows post_office:brand=bpost with a fixed text, namely 'This location offers services for bpost' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines') (This is only shown if post_office=post_partner)", - "value": "bpost" - }, - { - "key": "post_office:letter_from", - "description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:letter_from' (in the mapcomplete.org theme 'ATM Machines')" - }, - { - "key": "post_office:letter_from", - "description": "Layer 'Post offices' shows post_office:letter_from=yes with a fixed text, namely 'You can post letters here' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "yes" - }, - { - "key": "post_office:letter_from", - "description": "Layer 'Post offices' shows post_office:letter_from=no with a fixed text, namely 'You can't post letters here' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "no" - }, - { - "key": "post_office:parcel_from", - "description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:parcel_from' (in the mapcomplete.org theme 'ATM Machines')" - }, - { - "key": "post_office:parcel_from", - "description": "Layer 'Post offices' shows post_office:parcel_from=yes with a fixed text, namely 'You can send parcels here' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "yes" - }, - { - "key": "post_office:parcel_from", - "description": "Layer 'Post offices' shows post_office:parcel_from=no with a fixed text, namely 'You can't send parcels here' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "no" - }, - { - "key": "post_office:parcel_pickup", - "description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:parcel_pickup' (in the mapcomplete.org theme 'ATM Machines')" - }, - { - "key": "post_office:parcel_pickup", - "description": "Layer 'Post offices' shows post_office:parcel_pickup=yes with a fixed text, namely 'You can pick up missed parcels here' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "yes" - }, - { - "key": "post_office:parcel_pickup", - "description": "Layer 'Post offices' shows post_office:parcel_pickup=no with a fixed text, namely 'You can't pick up missed parcels here' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "no" - }, - { - "key": "post_office:parcel_to", - "description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:parcel_to' (in the mapcomplete.org theme 'ATM Machines')" - }, - { - "key": "post_office:parcel_to", - "description": "Layer 'Post offices' shows post_office:parcel_to=yes with a fixed text, namely 'You can send parcels to here for pickup' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "yes" - }, - { - "key": "post_office:parcel_to", - "description": "Layer 'Post offices' shows post_office:parcel_to=no with a fixed text, namely 'You can't send parcels to here for pickup' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "no" - }, - { - "key": "post_office:stamps", - "description": "Layer 'Post offices' shows and asks freeform values for key 'post_office:stamps' (in the mapcomplete.org theme 'ATM Machines')" - }, - { - "key": "post_office:stamps", - "description": "Layer 'Post offices' shows post_office:stamps=yes with a fixed text, namely 'You can buy stamps here' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "yes" - }, - { - "key": "post_office:stamps", - "description": "Layer 'Post offices' shows post_office:stamps=no with a fixed text, namely 'You can't buy stamps here' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "no" - }, - { - "key": "atm", - "description": "Layer 'Post offices' shows atm=yes with a fixed text, namely 'This post office has an ATM' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "yes" - }, - { - "key": "atm", - "description": "Layer 'Post offices' shows atm=no with a fixed text, namely 'This post office does not have an ATM' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", - "value": "no" - }, { "key": "atm", "description": "Layer 'Post offices' shows atm=separate with a fixed text, namely 'This post office does have an ATM, but it is mapped as a different icon' and allows to pick this as a default answer (in the mapcomplete.org theme 'ATM Machines')", diff --git a/Docs/TagInfo/mapcomplete_climbing.json b/Docs/TagInfo/mapcomplete_climbing.json index cdb2fd8c8..dacabc91d 100644 --- a/Docs/TagInfo/mapcomplete_climbing.json +++ b/Docs/TagInfo/mapcomplete_climbing.json @@ -1784,1134 +1784,6 @@ "description": "Layer 'Shop' shows diet:lactose_free=no with a fixed text, namely 'No lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", "value": "no" }, - { - "key": "shop", - "description": "The MapComplete theme Climbing gyms, clubs and spots has a layer Shop showing features with this tag" - }, - { - "key": "craft", - "description": "The MapComplete theme Climbing gyms, clubs and spots has a layer Shop showing features with this tag", - "value": "shoe_repair" - }, - { - "key": "craft", - "description": "The MapComplete theme Climbing gyms, clubs and spots has a layer Shop showing features with this tag", - "value": "key_cutter" - }, - { - "key": "service:climbing_shoes:repair", - "description": "Layer 'Shop' shows service:climbing_shoes:repair=yes with a fixed text, namely 'This shop repairs climbing shoes' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "yes" - }, - { - "key": "service:climbing_shoes:repair", - "description": "Layer 'Shop' shows service:climbing_shoes:repair=no with a fixed text, namely 'This shop does not repair climbing shoes' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "no" - }, - { - "key": "id", - "description": "Layer 'Shop' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" - }, - { - "key": "image", - "description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "mapillary", - "description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "wikidata", - "description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "wikipedia", - "description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "name", - "description": "Layer 'Shop' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows and asks freeform values for key 'shop' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=vacant with a fixed text, namely 'Vacant Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "vacant" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=agrarian with a fixed text, namely 'Farm Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "agrarian" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=alcohol with a fixed text, namely 'Liquor Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "alcohol" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=anime with a fixed text, namely 'Anime / Manga Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "anime" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=antiques with a fixed text, namely 'Antique Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "antiques" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=appliance with a fixed text, namely 'Appliance Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "appliance" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=art with a fixed text, namely 'Art Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "art" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=baby_goods with a fixed text, namely 'Baby Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "baby_goods" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bag with a fixed text, namely 'Bag/Luggage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "bag" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bakery with a fixed text, namely 'Bakery' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "bakery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bathroom_furnishing with a fixed text, namely 'Bathroom Furnishing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "bathroom_furnishing" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=beauty with a fixed text, namely 'Beauty Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "beauty" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bed with a fixed text, namely 'Bedding/Mattress Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "bed" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=beverages with a fixed text, namely 'Beverage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "beverages" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bicycle with a fixed text, namely 'Bicycle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "bicycle" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=boat with a fixed text, namely 'Boat Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "boat" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bookmaker with a fixed text, namely 'Bookmaker' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "bookmaker" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=books with a fixed text, namely 'Bookstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "books" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=brewing_supplies with a fixed text, namely 'Brewing Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "brewing_supplies" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=butcher with a fixed text, namely 'Butcher' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "butcher" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=camera with a fixed text, namely 'Camera Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "camera" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=candles with a fixed text, namely 'Candle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "candles" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=cannabis with a fixed text, namely 'Cannabis Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "cannabis" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=car with a fixed text, namely 'Car Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "car" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=car_parts with a fixed text, namely 'Car Parts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "car_parts" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=car_repair with a fixed text, namely 'Car Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "car_repair" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=caravan with a fixed text, namely 'RV Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "caravan" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=carpet with a fixed text, namely 'Carpet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "carpet" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=catalogue with a fixed text, namely 'Catalog Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "catalogue" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=charity with a fixed text, namely 'Charity Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "charity" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=cheese with a fixed text, namely 'Cheese Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "cheese" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=chemist with a fixed text, namely 'Drugstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "chemist" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=chocolate with a fixed text, namely 'Chocolate Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "chocolate" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=clothes with a fixed text, namely 'Clothing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "clothes" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=coffee with a fixed text, namely 'Coffee Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "coffee" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=collector with a fixed text, namely 'Collectibles Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "collector" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=computer with a fixed text, namely 'Computer Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "computer" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=confectionery with a fixed text, namely 'Candy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "confectionery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=convenience with a fixed text, namely 'Convenience Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "convenience" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=copyshop with a fixed text, namely 'Copy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "copyshop" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=cosmetics with a fixed text, namely 'Cosmetics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "cosmetics" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=country_store with a fixed text, namely 'Rural Supplies Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "country_store" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=craft with a fixed text, namely 'Arts & Crafts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "craft" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=curtain with a fixed text, namely 'Curtain Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "curtain" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=dairy with a fixed text, namely 'Dairy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "dairy" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=deli with a fixed text, namely 'Delicatessen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "deli" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=department_store with a fixed text, namely 'Department Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "department_store" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=doityourself with a fixed text, namely 'DIY Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "doityourself" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=doors with a fixed text, namely 'Door Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "doors" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=dry_cleaning with a fixed text, namely 'Dry Cleaner' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "dry_cleaning" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=e-cigarette with a fixed text, namely 'E-Cigarette Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "e-cigarette" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=electrical with a fixed text, namely 'Electrical Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "electrical" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=electronics with a fixed text, namely 'Electronics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "electronics" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=erotic with a fixed text, namely 'Erotic Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "erotic" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fabric with a fixed text, namely 'Fabric Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "fabric" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=farm with a fixed text, namely 'Produce Stand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "farm" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fashion_accessories with a fixed text, namely 'Fashion Accessories Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "fashion_accessories" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fireplace with a fixed text, namely 'Fireplace Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "fireplace" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fishing with a fixed text, namely 'Fishing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "fishing" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=flooring with a fixed text, namely 'Flooring Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "flooring" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=florist with a fixed text, namely 'Florist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "florist" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=frame with a fixed text, namely 'Framing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "frame" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=frozen_food with a fixed text, namely 'Frozen Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "frozen_food" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fuel with a fixed text, namely 'Fuel Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "fuel" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=funeral_directors with a fixed text, namely 'Funeral Home' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "funeral_directors" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=furniture with a fixed text, namely 'Furniture Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "furniture" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=games with a fixed text, namely 'Tabletop Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "games" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=garden_centre with a fixed text, namely 'Garden Center' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "garden_centre" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=gas with a fixed text, namely 'Bottled Gas Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "gas" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=general with a fixed text, namely 'General Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "general" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=gift with a fixed text, namely 'Gift Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "gift" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=greengrocer with a fixed text, namely 'Greengrocer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "greengrocer" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hairdresser with a fixed text, namely 'Hairdresser' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "hairdresser" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hairdresser_supply with a fixed text, namely 'Hairdresser Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "hairdresser_supply" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hardware with a fixed text, namely 'Hardware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "hardware" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=health_food with a fixed text, namely 'Health Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "health_food" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hearing_aids with a fixed text, namely 'Hearing Aids Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "hearing_aids" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=herbalist with a fixed text, namely 'Herbalist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "herbalist" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hifi with a fixed text, namely 'Hifi Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "hifi" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=honey with a fixed text, namely 'Honey Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "honey" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=household_linen with a fixed text, namely 'Household Linen Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "household_linen" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=houseware with a fixed text, namely 'Houseware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "houseware" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hunting with a fixed text, namely 'Hunting Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "hunting" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=interior_decoration with a fixed text, namely 'Interior Decoration Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "interior_decoration" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=jewelry with a fixed text, namely 'Jewelry Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "jewelry" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=kiosk with a fixed text, namely 'Kiosk' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "kiosk" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=kitchen with a fixed text, namely 'Kitchen Design Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "kitchen" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=laundry with a fixed text, namely 'Laundry' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "laundry" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=leather with a fixed text, namely 'Leather Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "leather" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=lighting with a fixed text, namely 'Lighting Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "lighting" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=locksmith with a fixed text, namely 'Locksmith' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "locksmith" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=lottery with a fixed text, namely 'Lottery Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "lottery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=mall with a fixed text, namely 'Mall' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "mall" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=massage with a fixed text, namely 'Massage Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "massage" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=medical_supply with a fixed text, namely 'Medical Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "medical_supply" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=military_surplus with a fixed text, namely 'Military Surplus Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "military_surplus" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=mobile_phone with a fixed text, namely 'Mobile Phone Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "mobile_phone" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=model with a fixed text, namely 'Model Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "model" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=money_lender with a fixed text, namely 'Money Lender' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "money_lender" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=motorcycle with a fixed text, namely 'Motorcycle Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "motorcycle" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=motorcycle_repair with a fixed text, namely 'Motorcycle Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "motorcycle_repair" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=music with a fixed text, namely 'Music Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "music" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=musical_instrument with a fixed text, namely 'Musical Instrument Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "musical_instrument" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=newsagent with a fixed text, namely 'Newsstand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "newsagent" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=nutrition_supplements with a fixed text, namely 'Nutrition Supplements Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "nutrition_supplements" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=nuts with a fixed text, namely 'Nuts Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "nuts" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=optician with a fixed text, namely 'Optician' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "optician" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=outdoor with a fixed text, namely 'Outdoors Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "outdoor" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=outpost with a fixed text, namely 'Online Retailer Outpost' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "outpost" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=paint with a fixed text, namely 'Paint Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "paint" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=party with a fixed text, namely 'Party Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "party" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pasta with a fixed text, namely 'Pasta Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "pasta" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pastry with a fixed text, namely 'Pastry Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "pastry" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pawnbroker with a fixed text, namely 'Pawnshop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "pawnbroker" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=perfumery with a fixed text, namely 'Perfume Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "perfumery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pet with a fixed text, namely 'Pet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "pet" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pet_grooming with a fixed text, namely 'Pet Groomer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "pet_grooming" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=photo with a fixed text, namely 'Photography Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "photo" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pottery with a fixed text, namely 'Pottery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "pottery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=printer_ink with a fixed text, namely 'Printer Ink Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "printer_ink" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=psychic with a fixed text, namely 'Psychic' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "psychic" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pyrotechnics with a fixed text, namely 'Fireworks Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "pyrotechnics" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=radiotechnics with a fixed text, namely 'Radio/Electronic Component Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "radiotechnics" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=religion with a fixed text, namely 'Religious Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "religion" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=rental with a fixed text, namely 'Rental Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "rental" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=repair with a fixed text, namely 'Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "repair" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=rice with a fixed text, namely 'Rice Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "rice" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=scuba_diving with a fixed text, namely 'Scuba Diving Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "scuba_diving" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=seafood with a fixed text, namely 'Seafood Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "seafood" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=second_hand with a fixed text, namely 'Thrift Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "second_hand" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=sewing with a fixed text, namely 'Sewing Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "sewing" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=shoe_repair with a fixed text, namely 'Shoe Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "shoe_repair" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=shoes with a fixed text, namely 'Shoe Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "shoes" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=spices with a fixed text, namely 'Spice Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "spices" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=sports with a fixed text, namely 'Sporting Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "sports" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=stationery with a fixed text, namely 'Stationery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "stationery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=storage_rental with a fixed text, namely 'Storage Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "storage_rental" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=supermarket with a fixed text, namely 'Supermarket' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "supermarket" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=swimming_pool with a fixed text, namely 'Pool Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "swimming_pool" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tailor with a fixed text, namely 'Tailor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "tailor" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tattoo with a fixed text, namely 'Tattoo Parlor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "tattoo" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tea with a fixed text, namely 'Tea Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "tea" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=telecommunication with a fixed text, namely 'Telecom Retail Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "telecommunication" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=ticket with a fixed text, namely 'Ticket Seller' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "ticket" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tiles with a fixed text, namely 'Tile Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "tiles" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tobacco with a fixed text, namely 'Tobacco Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "tobacco" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tool_hire with a fixed text, namely 'Tool Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "tool_hire" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=toys with a fixed text, namely 'Toy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "toys" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=trade with a fixed text, namely 'Trade Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "trade" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=travel_agency with a fixed text, namely 'Travel Agency' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "travel_agency" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=trophy with a fixed text, namely 'Trophy Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "trophy" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tyres with a fixed text, namely 'Tire Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "tyres" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=vacuum_cleaner with a fixed text, namely 'Vacuum Cleaner Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "vacuum_cleaner" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=variety_store with a fixed text, namely 'Discount Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "variety_store" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=video with a fixed text, namely 'Video Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "video" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=video_games with a fixed text, namely 'Video Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "video_games" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=watches with a fixed text, namely 'Watches Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "watches" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=water with a fixed text, namely 'Drinking Water Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "water" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=water_sports with a fixed text, namely 'Watersport/Swim Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "water_sports" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=weapons with a fixed text, namely 'Weapon Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "weapons" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=wholesale with a fixed text, namely 'Wholesale Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "wholesale" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=wigs with a fixed text, namely 'Wig Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "wigs" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=window_blind with a fixed text, namely 'Window Blind Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "window_blind" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=wine with a fixed text, namely 'Wine Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if craft=)", - "value": "wine" - }, - { - "key": "second_hand", - "description": "Layer 'Shop' shows second_hand=only with a fixed text, namely 'This shop sells second-hand items only' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=clothes | shop=car | shop=books | shop=charity | shop=car_repair | shop=furniture | shop=bicycle | shop=bicycle | shop=mobile_phone | shop=computer | shop=toys)", - "value": "only" - }, - { - "key": "second_hand", - "description": "Layer 'Shop' shows second_hand=yes with a fixed text, namely 'This shop sells second-hand items along with new items' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=clothes | shop=car | shop=books | shop=charity | shop=car_repair | shop=furniture | shop=bicycle | shop=bicycle | shop=mobile_phone | shop=computer | shop=toys)", - "value": "yes" - }, - { - "key": "second_hand", - "description": "Layer 'Shop' shows second_hand=no with a fixed text, namely 'This shop only sells brand-new items' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=clothes | shop=car | shop=books | shop=charity | shop=car_repair | shop=furniture | shop=bicycle | shop=bicycle | shop=mobile_phone | shop=computer | shop=toys)", - "value": "no" - }, - { - "key": "opening_hours", - "description": "Layer 'Shop' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')" - }, - { - "key": "website", - "description": "Layer 'Shop' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')" - }, - { - "key": "contact:website", - "description": "Layer 'Shop' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')" - }, - { - "key": "email", - "description": "Layer 'Shop' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')" - }, - { - "key": "contact:email", - "description": "Layer 'Shop' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')" - }, - { - "key": "phone", - "description": "Layer 'Shop' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')" - }, - { - "key": "contact:phone", - "description": "Layer 'Shop' shows contact:phone~.+ with a fixed text, namely '{contact:phone}' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')" - }, - { - "key": "payment:cash", - "description": "Layer 'Shop' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "yes" - }, - { - "key": "payment:cards", - "description": "Layer 'Shop' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "yes" - }, - { - "key": "payment:qr_code", - "description": "Layer 'Shop' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "yes" - }, - { - "key": "level", - "description": "Layer 'Shop' shows and asks freeform values for key 'level' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if repeat_on=)" - }, - { - "key": "location", - "description": "Layer 'Shop' shows location=underground with a fixed text, namely 'Located underground' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if repeat_on=)", - "value": "underground" - }, - { - "key": "level", - "description": "Layer 'Shop' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if repeat_on=)", - "value": "0" - }, - { - "key": "level", - "description": "Layer 'Shop' shows level= with a fixed text, namely 'Located on the ground floor' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') Picking this answer will delete the key level. (This is only shown if repeat_on=)", - "value": "" - }, - { - "key": "level", - "description": "Layer 'Shop' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if repeat_on=)", - "value": "1" - }, - { - "key": "level", - "description": "Layer 'Shop' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if repeat_on=)", - "value": "-1" - }, - { - "key": "service:print:A4", - "description": "Layer 'Shop' shows service:print:A4=yes with a fixed text, namely 'This shop can print on papers of size A4' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "service:print:A3", - "description": "Layer 'Shop' shows service:print:A3=yes with a fixed text, namely 'This shop can print on papers of size A3' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "service:print:A2", - "description": "Layer 'Shop' shows service:print:A2=yes with a fixed text, namely 'This shop can print on papers of size A2' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "service:print:A1", - "description": "Layer 'Shop' shows service:print:A1=yes with a fixed text, namely 'This shop can print on papers of size A1' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "service:print:A0", - "description": "Layer 'Shop' shows service:print:A0=yes with a fixed text, namely 'This shop can print on papers of size A0' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "craft", - "description": "Layer 'Shop' shows craft=key_cutter with a fixed text, namely 'This shop is also specialized in key cutting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=shoe_repair | service:key_cutting~.+ | craft=key_cutting | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair)", - "value": "key_cutter" - }, - { - "key": "service:key_cutting", - "description": "Layer 'Shop' shows service:key_cutting=yes with a fixed text, namely 'This shop offers key cutting as a service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=shoe_repair | service:key_cutting~.+ | craft=key_cutting | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair)", - "value": "yes" - }, - { - "key": "craft", - "description": "Layer 'Shop' shows craft= & service:key_cutting=no with a fixed text, namely 'This shops does not offer key cutting as a service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') Picking this answer will delete the key craft. (This is only shown if shop=shoe_repair | service:key_cutting~.+ | craft=key_cutting | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair)", - "value": "" - }, - { - "key": "service:key_cutting", - "description": "Layer 'Shop' shows craft= & service:key_cutting=no with a fixed text, namely 'This shops does not offer key cutting as a service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=shoe_repair | service:key_cutting~.+ | craft=key_cutting | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair)", - "value": "no" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=wlan with a fixed text, namely 'This place offers wireless internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "wlan" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=no with a fixed text, namely 'This place does not offer internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "no" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=yes with a fixed text, namely 'This place offers internet access' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "yes" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=terminal with a fixed text, namely 'This place offers internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "terminal" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", - "value": "wired" - }, - { - "key": "internet_access:fee", - "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if internet_access!=no & internet_access~.+)", - "value": "yes" - }, - { - "key": "internet_access:fee", - "description": "Layer 'Shop' shows internet_access:fee=no with a fixed text, namely 'Internet access is free at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if internet_access!=no & internet_access~.+)", - "value": "no" - }, - { - "key": "internet_access:fee", - "description": "Layer 'Shop' shows internet_access:fee=customers with a fixed text, namely 'Internet access is free at this place, for customers only' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if internet_access!=no & internet_access~.+)", - "value": "customers" - }, - { - "key": "internet_access:ssid", - "description": "Layer 'Shop' shows and asks freeform values for key 'internet_access:ssid' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if internet_access=wlan)" - }, - { - "key": "internet_access:ssid", - "description": "Layer 'Shop' shows internet_access:ssid=Telekom with a fixed text, namely 'Telekom' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if internet_access=wlan)", - "value": "Telekom" - }, - { - "key": "organic", - "description": "Layer 'Shop' shows organic=yes with a fixed text, namely 'This shop offers organic products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=clothes | shop=shoes | shop=butcher | shop=cosmetics | shop=deli | shop=bakery | shop=alcohol | shop=seafood | shop=beverages | shop=florist)", - "value": "yes" - }, - { - "key": "organic", - "description": "Layer 'Shop' shows organic=only with a fixed text, namely 'This shop only offers organic products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=clothes | shop=shoes | shop=butcher | shop=cosmetics | shop=deli | shop=bakery | shop=alcohol | shop=seafood | shop=beverages | shop=florist)", - "value": "only" - }, - { - "key": "organic", - "description": "Layer 'Shop' shows organic=no with a fixed text, namely 'This shop does not offer organic products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=clothes | shop=shoes | shop=butcher | shop=cosmetics | shop=deli | shop=bakery | shop=alcohol | shop=seafood | shop=beverages | shop=florist)", - "value": "no" - }, - { - "key": "diet:sugar_free", - "description": "Layer 'Shop' shows diet:sugar_free=only with a fixed text, namely 'This shop only sells sugar free products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "only" - }, - { - "key": "diet:sugar_free", - "description": "Layer 'Shop' shows diet:sugar_free=yes with a fixed text, namely 'This shop has a big sugar free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "yes" - }, - { - "key": "diet:sugar_free", - "description": "Layer 'Shop' shows diet:sugar_free=limited with a fixed text, namely 'This shop has a limited sugar free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "limited" - }, - { - "key": "diet:sugar_free", - "description": "Layer 'Shop' shows diet:sugar_free=no with a fixed text, namely 'This shop has no sugar free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "no" - }, - { - "key": "diet:gluten_free", - "description": "Layer 'Shop' shows diet:gluten_free=only with a fixed text, namely 'This shop only sells gluten free products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "only" - }, - { - "key": "diet:gluten_free", - "description": "Layer 'Shop' shows diet:gluten_free=yes with a fixed text, namely 'This shop has a big gluten free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "yes" - }, - { - "key": "diet:gluten_free", - "description": "Layer 'Shop' shows diet:gluten_free=limited with a fixed text, namely 'This shop has a limited gluten free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "limited" - }, - { - "key": "diet:gluten_free", - "description": "Layer 'Shop' shows diet:gluten_free=no with a fixed text, namely 'This shop has no gluten free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "no" - }, - { - "key": "diet:lactose_free", - "description": "Layer 'Shop' shows diet:lactose_free=only with a fixed text, namely 'Only sells lactose free products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "only" - }, - { - "key": "diet:lactose_free", - "description": "Layer 'Shop' shows diet:lactose_free=yes with a fixed text, namely 'Big lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "yes" - }, - { - "key": "diet:lactose_free", - "description": "Layer 'Shop' shows diet:lactose_free=limited with a fixed text, namely 'Limited lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "limited" - }, - { - "key": "diet:lactose_free", - "description": "Layer 'Shop' shows diet:lactose_free=no with a fixed text, namely 'No lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "no" - }, { "key": "amenity", "description": "The MapComplete theme Climbing gyms, clubs and spots has a layer Toilets showing features with this tag", @@ -3092,6 +1964,50 @@ "description": "Layer 'Toilets' shows toilets:position=seated;urinal with a fixed text, namely 'Both seated toilets and urinals are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", "value": "seated;urinal" }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=yes with a fixed text, namely 'There is a separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if toilets:position!=urinal)", + "value": "yes" + }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=no with a fixed text, namely 'There is no separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if toilets:position!=urinal)", + "value": "no" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=yes with a fixed text, namely 'Free menstrual products are available to all visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", + "value": "yes" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=limited with a fixed text, namely 'Free menstrual products are available to some visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", + "value": "limited" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=no with a fixed text, namely 'No free menstrual products are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", + "value": "no" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows and asks freeform values for key 'toilets:menstrual_products:location' (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=female_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "female_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=male_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for men' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "male_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=wheelchair_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "wheelchair_toilet" + }, { "key": "changing_table", "description": "Layer 'Toilets' shows changing_table=yes with a fixed text, namely 'A changing table is available' and allows to pick this as a default answer (in the mapcomplete.org theme 'Climbing gyms, clubs and spots')", diff --git a/Docs/TagInfo/mapcomplete_healthcare.json b/Docs/TagInfo/mapcomplete_healthcare.json index 1ca1f4a10..2ff609ed7 100644 --- a/Docs/TagInfo/mapcomplete_healthcare.json +++ b/Docs/TagInfo/mapcomplete_healthcare.json @@ -1479,1124 +1479,6 @@ "description": "Layer 'Shop' shows diet:lactose_free=limited with a fixed text, namely 'Limited lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", "value": "limited" }, - { - "key": "diet:lactose_free", - "description": "Layer 'Shop' shows diet:lactose_free=no with a fixed text, namely 'No lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "no" - }, - { - "key": "shop", - "description": "The MapComplete theme Healthcare has a layer Shop showing features with this tag" - }, - { - "key": "craft", - "description": "The MapComplete theme Healthcare has a layer Shop showing features with this tag", - "value": "shoe_repair" - }, - { - "key": "craft", - "description": "The MapComplete theme Healthcare has a layer Shop showing features with this tag", - "value": "key_cutter" - }, - { - "key": "id", - "description": "Layer 'Shop' shows id~.+ with a fixed text, namely 'You just created this element! Thanks for sharing this info with the world and helping people worldwide.' (in the mapcomplete.org theme 'Healthcare') (This is only shown if _backend~.+ & _last_edit:passed_time<300 & (_version_number= | _version_number=1))" - }, - { - "key": "image", - "description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "mapillary", - "description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "wikidata", - "description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "wikipedia", - "description": "The layer 'Shop allows to upload images and adds them under the 'image'-tag (and image:0, image:1, ... for multiple images). Furhtermore, this layer shows images based on the keys image, wikidata, wikipedia, wikimedia_commons and mapillary" - }, - { - "key": "name", - "description": "Layer 'Shop' shows and asks freeform values for key 'name' (in the mapcomplete.org theme 'Healthcare')" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows and asks freeform values for key 'shop' (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=vacant with a fixed text, namely 'Vacant Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "vacant" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=agrarian with a fixed text, namely 'Farm Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "agrarian" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=alcohol with a fixed text, namely 'Liquor Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "alcohol" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=anime with a fixed text, namely 'Anime / Manga Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "anime" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=antiques with a fixed text, namely 'Antique Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "antiques" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=appliance with a fixed text, namely 'Appliance Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "appliance" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=art with a fixed text, namely 'Art Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "art" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=baby_goods with a fixed text, namely 'Baby Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "baby_goods" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bag with a fixed text, namely 'Bag/Luggage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "bag" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bakery with a fixed text, namely 'Bakery' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "bakery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bathroom_furnishing with a fixed text, namely 'Bathroom Furnishing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "bathroom_furnishing" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=beauty with a fixed text, namely 'Beauty Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "beauty" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bed with a fixed text, namely 'Bedding/Mattress Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "bed" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=beverages with a fixed text, namely 'Beverage Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "beverages" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bicycle with a fixed text, namely 'Bicycle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "bicycle" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=boat with a fixed text, namely 'Boat Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "boat" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=bookmaker with a fixed text, namely 'Bookmaker' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "bookmaker" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=books with a fixed text, namely 'Bookstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "books" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=brewing_supplies with a fixed text, namely 'Brewing Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "brewing_supplies" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=butcher with a fixed text, namely 'Butcher' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "butcher" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=camera with a fixed text, namely 'Camera Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "camera" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=candles with a fixed text, namely 'Candle Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "candles" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=cannabis with a fixed text, namely 'Cannabis Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "cannabis" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=car with a fixed text, namely 'Car Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "car" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=car_parts with a fixed text, namely 'Car Parts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "car_parts" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=car_repair with a fixed text, namely 'Car Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "car_repair" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=caravan with a fixed text, namely 'RV Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "caravan" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=carpet with a fixed text, namely 'Carpet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "carpet" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=catalogue with a fixed text, namely 'Catalog Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "catalogue" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=charity with a fixed text, namely 'Charity Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "charity" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=cheese with a fixed text, namely 'Cheese Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "cheese" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=chemist with a fixed text, namely 'Drugstore' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "chemist" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=chocolate with a fixed text, namely 'Chocolate Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "chocolate" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=clothes with a fixed text, namely 'Clothing Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "clothes" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=coffee with a fixed text, namely 'Coffee Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "coffee" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=collector with a fixed text, namely 'Collectibles Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "collector" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=computer with a fixed text, namely 'Computer Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "computer" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=confectionery with a fixed text, namely 'Candy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "confectionery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=convenience with a fixed text, namely 'Convenience Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "convenience" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=copyshop with a fixed text, namely 'Copy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "copyshop" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=cosmetics with a fixed text, namely 'Cosmetics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "cosmetics" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=country_store with a fixed text, namely 'Rural Supplies Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "country_store" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=craft with a fixed text, namely 'Arts & Crafts Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "craft" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=curtain with a fixed text, namely 'Curtain Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "curtain" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=dairy with a fixed text, namely 'Dairy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "dairy" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=deli with a fixed text, namely 'Delicatessen' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "deli" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=department_store with a fixed text, namely 'Department Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "department_store" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=doityourself with a fixed text, namely 'DIY Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "doityourself" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=doors with a fixed text, namely 'Door Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "doors" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=dry_cleaning with a fixed text, namely 'Dry Cleaner' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "dry_cleaning" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=e-cigarette with a fixed text, namely 'E-Cigarette Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "e-cigarette" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=electrical with a fixed text, namely 'Electrical Equipment Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "electrical" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=electronics with a fixed text, namely 'Electronics Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "electronics" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=erotic with a fixed text, namely 'Erotic Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "erotic" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fabric with a fixed text, namely 'Fabric Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "fabric" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=farm with a fixed text, namely 'Produce Stand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "farm" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fashion_accessories with a fixed text, namely 'Fashion Accessories Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "fashion_accessories" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fireplace with a fixed text, namely 'Fireplace Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "fireplace" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fishing with a fixed text, namely 'Fishing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "fishing" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=flooring with a fixed text, namely 'Flooring Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "flooring" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=florist with a fixed text, namely 'Florist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "florist" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=frame with a fixed text, namely 'Framing Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "frame" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=frozen_food with a fixed text, namely 'Frozen Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "frozen_food" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=fuel with a fixed text, namely 'Fuel Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "fuel" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=funeral_directors with a fixed text, namely 'Funeral Home' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "funeral_directors" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=furniture with a fixed text, namely 'Furniture Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "furniture" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=games with a fixed text, namely 'Tabletop Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "games" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=garden_centre with a fixed text, namely 'Garden Center' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "garden_centre" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=gas with a fixed text, namely 'Bottled Gas Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "gas" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=general with a fixed text, namely 'General Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "general" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=gift with a fixed text, namely 'Gift Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "gift" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=greengrocer with a fixed text, namely 'Greengrocer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "greengrocer" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hairdresser with a fixed text, namely 'Hairdresser' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "hairdresser" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hairdresser_supply with a fixed text, namely 'Hairdresser Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "hairdresser_supply" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hardware with a fixed text, namely 'Hardware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "hardware" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=health_food with a fixed text, namely 'Health Food Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "health_food" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hearing_aids with a fixed text, namely 'Hearing Aids Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "hearing_aids" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=herbalist with a fixed text, namely 'Herbalist' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "herbalist" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hifi with a fixed text, namely 'Hifi Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "hifi" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=honey with a fixed text, namely 'Honey Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "honey" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=household_linen with a fixed text, namely 'Household Linen Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "household_linen" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=houseware with a fixed text, namely 'Houseware Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "houseware" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=hunting with a fixed text, namely 'Hunting Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "hunting" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=interior_decoration with a fixed text, namely 'Interior Decoration Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "interior_decoration" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=jewelry with a fixed text, namely 'Jewelry Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "jewelry" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=kiosk with a fixed text, namely 'Kiosk' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "kiosk" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=kitchen with a fixed text, namely 'Kitchen Design Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "kitchen" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=laundry with a fixed text, namely 'Laundry' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "laundry" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=leather with a fixed text, namely 'Leather Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "leather" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=lighting with a fixed text, namely 'Lighting Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "lighting" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=locksmith with a fixed text, namely 'Locksmith' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "locksmith" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=lottery with a fixed text, namely 'Lottery Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "lottery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=mall with a fixed text, namely 'Mall' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "mall" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=massage with a fixed text, namely 'Massage Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "massage" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=medical_supply with a fixed text, namely 'Medical Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "medical_supply" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=military_surplus with a fixed text, namely 'Military Surplus Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "military_surplus" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=mobile_phone with a fixed text, namely 'Mobile Phone Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "mobile_phone" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=model with a fixed text, namely 'Model Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "model" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=money_lender with a fixed text, namely 'Money Lender' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "money_lender" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=motorcycle with a fixed text, namely 'Motorcycle Dealership' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "motorcycle" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=motorcycle_repair with a fixed text, namely 'Motorcycle Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "motorcycle_repair" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=music with a fixed text, namely 'Music Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "music" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=musical_instrument with a fixed text, namely 'Musical Instrument Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "musical_instrument" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=newsagent with a fixed text, namely 'Newsstand' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "newsagent" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=nutrition_supplements with a fixed text, namely 'Nutrition Supplements Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "nutrition_supplements" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=nuts with a fixed text, namely 'Nuts Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "nuts" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=optician with a fixed text, namely 'Optician' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "optician" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=outdoor with a fixed text, namely 'Outdoors Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "outdoor" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=outpost with a fixed text, namely 'Online Retailer Outpost' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "outpost" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=paint with a fixed text, namely 'Paint Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "paint" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=party with a fixed text, namely 'Party Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "party" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pasta with a fixed text, namely 'Pasta Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "pasta" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pastry with a fixed text, namely 'Pastry Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "pastry" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pawnbroker with a fixed text, namely 'Pawnshop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "pawnbroker" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=perfumery with a fixed text, namely 'Perfume Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "perfumery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pet with a fixed text, namely 'Pet Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "pet" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pet_grooming with a fixed text, namely 'Pet Groomer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "pet_grooming" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=photo with a fixed text, namely 'Photography Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "photo" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pottery with a fixed text, namely 'Pottery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "pottery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=printer_ink with a fixed text, namely 'Printer Ink Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "printer_ink" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=psychic with a fixed text, namely 'Psychic' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "psychic" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=pyrotechnics with a fixed text, namely 'Fireworks Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "pyrotechnics" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=radiotechnics with a fixed text, namely 'Radio/Electronic Component Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "radiotechnics" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=religion with a fixed text, namely 'Religious Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "religion" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=rental with a fixed text, namely 'Rental Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "rental" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=repair with a fixed text, namely 'Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "repair" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=rice with a fixed text, namely 'Rice Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "rice" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=scuba_diving with a fixed text, namely 'Scuba Diving Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "scuba_diving" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=seafood with a fixed text, namely 'Seafood Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "seafood" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=second_hand with a fixed text, namely 'Thrift Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "second_hand" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=sewing with a fixed text, namely 'Sewing Supply Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "sewing" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=shoe_repair with a fixed text, namely 'Shoe Repair Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "shoe_repair" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=shoes with a fixed text, namely 'Shoe Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "shoes" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=spices with a fixed text, namely 'Spice Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "spices" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=sports with a fixed text, namely 'Sporting Goods Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "sports" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=stationery with a fixed text, namely 'Stationery Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "stationery" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=storage_rental with a fixed text, namely 'Storage Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "storage_rental" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=supermarket with a fixed text, namely 'Supermarket' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "supermarket" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=swimming_pool with a fixed text, namely 'Pool Supply Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "swimming_pool" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tailor with a fixed text, namely 'Tailor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "tailor" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tattoo with a fixed text, namely 'Tattoo Parlor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "tattoo" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tea with a fixed text, namely 'Tea Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "tea" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=telecommunication with a fixed text, namely 'Telecom Retail Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "telecommunication" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=ticket with a fixed text, namely 'Ticket Seller' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "ticket" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tiles with a fixed text, namely 'Tile Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "tiles" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tobacco with a fixed text, namely 'Tobacco Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "tobacco" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tool_hire with a fixed text, namely 'Tool Rental' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "tool_hire" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=toys with a fixed text, namely 'Toy Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "toys" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=trade with a fixed text, namely 'Trade Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "trade" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=travel_agency with a fixed text, namely 'Travel Agency' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "travel_agency" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=trophy with a fixed text, namely 'Trophy Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "trophy" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=tyres with a fixed text, namely 'Tire Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "tyres" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=vacuum_cleaner with a fixed text, namely 'Vacuum Cleaner Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "vacuum_cleaner" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=variety_store with a fixed text, namely 'Discount Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "variety_store" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=video with a fixed text, namely 'Video Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "video" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=video_games with a fixed text, namely 'Video Game Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "video_games" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=watches with a fixed text, namely 'Watches Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "watches" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=water with a fixed text, namely 'Drinking Water Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "water" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=water_sports with a fixed text, namely 'Watersport/Swim Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "water_sports" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=weapons with a fixed text, namely 'Weapon Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "weapons" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=wholesale with a fixed text, namely 'Wholesale Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "wholesale" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=wigs with a fixed text, namely 'Wig Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "wigs" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=window_blind with a fixed text, namely 'Window Blind Store' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "window_blind" - }, - { - "key": "shop", - "description": "Layer 'Shop' shows shop=wine with a fixed text, namely 'Wine Shop' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if craft=)", - "value": "wine" - }, - { - "key": "second_hand", - "description": "Layer 'Shop' shows second_hand=only with a fixed text, namely 'This shop sells second-hand items only' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=clothes | shop=car | shop=books | shop=charity | shop=car_repair | shop=furniture | shop=bicycle | shop=bicycle | shop=mobile_phone | shop=computer | shop=toys)", - "value": "only" - }, - { - "key": "second_hand", - "description": "Layer 'Shop' shows second_hand=yes with a fixed text, namely 'This shop sells second-hand items along with new items' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=clothes | shop=car | shop=books | shop=charity | shop=car_repair | shop=furniture | shop=bicycle | shop=bicycle | shop=mobile_phone | shop=computer | shop=toys)", - "value": "yes" - }, - { - "key": "second_hand", - "description": "Layer 'Shop' shows second_hand=no with a fixed text, namely 'This shop only sells brand-new items' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=clothes | shop=car | shop=books | shop=charity | shop=car_repair | shop=furniture | shop=bicycle | shop=bicycle | shop=mobile_phone | shop=computer | shop=toys)", - "value": "no" - }, - { - "key": "opening_hours", - "description": "Layer 'Shop' shows and asks freeform values for key 'opening_hours' (in the mapcomplete.org theme 'Healthcare')" - }, - { - "key": "website", - "description": "Layer 'Shop' shows and asks freeform values for key 'website' (in the mapcomplete.org theme 'Healthcare')" - }, - { - "key": "contact:website", - "description": "Layer 'Shop' shows contact:website~.+ with a fixed text, namely '{contact:website}' (in the mapcomplete.org theme 'Healthcare')" - }, - { - "key": "email", - "description": "Layer 'Shop' shows and asks freeform values for key 'email' (in the mapcomplete.org theme 'Healthcare')" - }, - { - "key": "contact:email", - "description": "Layer 'Shop' shows contact:email~.+ with a fixed text, namely '{contact:email}' (in the mapcomplete.org theme 'Healthcare')" - }, - { - "key": "phone", - "description": "Layer 'Shop' shows and asks freeform values for key 'phone' (in the mapcomplete.org theme 'Healthcare')" - }, - { - "key": "contact:phone", - "description": "Layer 'Shop' shows contact:phone~.+ with a fixed text, namely '{contact:phone}' (in the mapcomplete.org theme 'Healthcare')" - }, - { - "key": "payment:cash", - "description": "Layer 'Shop' shows payment:cash=yes with a fixed text, namely 'Cash is accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", - "value": "yes" - }, - { - "key": "payment:cards", - "description": "Layer 'Shop' shows payment:cards=yes with a fixed text, namely 'Payment cards are accepted here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", - "value": "yes" - }, - { - "key": "payment:qr_code", - "description": "Layer 'Shop' shows payment:qr_code=yes with a fixed text, namely 'Payment by QR-code is possible here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", - "value": "yes" - }, - { - "key": "level", - "description": "Layer 'Shop' shows and asks freeform values for key 'level' (in the mapcomplete.org theme 'Healthcare') (This is only shown if repeat_on=)" - }, - { - "key": "location", - "description": "Layer 'Shop' shows location=underground with a fixed text, namely 'Located underground' (in the mapcomplete.org theme 'Healthcare') (This is only shown if repeat_on=)", - "value": "underground" - }, - { - "key": "level", - "description": "Layer 'Shop' shows level=0 with a fixed text, namely 'Located on the ground floor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if repeat_on=)", - "value": "0" - }, - { - "key": "level", - "description": "Layer 'Shop' shows level= with a fixed text, namely 'Located on the ground floor' (in the mapcomplete.org theme 'Healthcare') Picking this answer will delete the key level. (This is only shown if repeat_on=)", - "value": "" - }, - { - "key": "level", - "description": "Layer 'Shop' shows level=1 with a fixed text, namely 'Located on the first floor' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if repeat_on=)", - "value": "1" - }, - { - "key": "level", - "description": "Layer 'Shop' shows level=-1 with a fixed text, namely 'Located on the first basement level' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if repeat_on=)", - "value": "-1" - }, - { - "key": "service:print:A4", - "description": "Layer 'Shop' shows service:print:A4=yes with a fixed text, namely 'This shop can print on papers of size A4' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "service:print:A3", - "description": "Layer 'Shop' shows service:print:A3=yes with a fixed text, namely 'This shop can print on papers of size A3' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "service:print:A2", - "description": "Layer 'Shop' shows service:print:A2=yes with a fixed text, namely 'This shop can print on papers of size A2' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "service:print:A1", - "description": "Layer 'Shop' shows service:print:A1=yes with a fixed text, namely 'This shop can print on papers of size A1' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "service:print:A0", - "description": "Layer 'Shop' shows service:print:A0=yes with a fixed text, namely 'This shop can print on papers of size A0' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop~^(.*copyshop.*)$ | shop~^(.*stationery.*)$ | service:print=yes)", - "value": "yes" - }, - { - "key": "craft", - "description": "Layer 'Shop' shows craft=key_cutter with a fixed text, namely 'This shop is also specialized in key cutting' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=shoe_repair | service:key_cutting~.+ | craft=key_cutting | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair)", - "value": "key_cutter" - }, - { - "key": "service:key_cutting", - "description": "Layer 'Shop' shows service:key_cutting=yes with a fixed text, namely 'This shop offers key cutting as a service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=shoe_repair | service:key_cutting~.+ | craft=key_cutting | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair)", - "value": "yes" - }, - { - "key": "craft", - "description": "Layer 'Shop' shows craft= & service:key_cutting=no with a fixed text, namely 'This shops does not offer key cutting as a service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') Picking this answer will delete the key craft. (This is only shown if shop=shoe_repair | service:key_cutting~.+ | craft=key_cutting | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair)", - "value": "" - }, - { - "key": "service:key_cutting", - "description": "Layer 'Shop' shows craft= & service:key_cutting=no with a fixed text, namely 'This shops does not offer key cutting as a service' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=shoe_repair | service:key_cutting~.+ | craft=key_cutting | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair)", - "value": "no" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=wlan with a fixed text, namely 'This place offers wireless internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", - "value": "wlan" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=no with a fixed text, namely 'This place does not offer internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", - "value": "no" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=yes with a fixed text, namely 'This place offers internet access' (in the mapcomplete.org theme 'Healthcare')", - "value": "yes" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=terminal with a fixed text, namely 'This place offers internet access via a terminal or computer' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", - "value": "terminal" - }, - { - "key": "internet_access", - "description": "Layer 'Shop' shows internet_access=wired with a fixed text, namely 'This place offers wired internet access' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare')", - "value": "wired" - }, - { - "key": "internet_access:fee", - "description": "Layer 'Shop' shows internet_access:fee=yes with a fixed text, namely 'There is a fee for the internet access at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if internet_access!=no & internet_access~.+)", - "value": "yes" - }, - { - "key": "internet_access:fee", - "description": "Layer 'Shop' shows internet_access:fee=no with a fixed text, namely 'Internet access is free at this place' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if internet_access!=no & internet_access~.+)", - "value": "no" - }, - { - "key": "internet_access:fee", - "description": "Layer 'Shop' shows internet_access:fee=customers with a fixed text, namely 'Internet access is free at this place, for customers only' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if internet_access!=no & internet_access~.+)", - "value": "customers" - }, - { - "key": "internet_access:ssid", - "description": "Layer 'Shop' shows and asks freeform values for key 'internet_access:ssid' (in the mapcomplete.org theme 'Healthcare') (This is only shown if internet_access=wlan)" - }, - { - "key": "internet_access:ssid", - "description": "Layer 'Shop' shows internet_access:ssid=Telekom with a fixed text, namely 'Telekom' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if internet_access=wlan)", - "value": "Telekom" - }, - { - "key": "organic", - "description": "Layer 'Shop' shows organic=yes with a fixed text, namely 'This shop offers organic products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=clothes | shop=shoes | shop=butcher | shop=cosmetics | shop=deli | shop=bakery | shop=alcohol | shop=seafood | shop=beverages | shop=florist)", - "value": "yes" - }, - { - "key": "organic", - "description": "Layer 'Shop' shows organic=only with a fixed text, namely 'This shop only offers organic products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=clothes | shop=shoes | shop=butcher | shop=cosmetics | shop=deli | shop=bakery | shop=alcohol | shop=seafood | shop=beverages | shop=florist)", - "value": "only" - }, - { - "key": "organic", - "description": "Layer 'Shop' shows organic=no with a fixed text, namely 'This shop does not offer organic products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=clothes | shop=shoes | shop=butcher | shop=cosmetics | shop=deli | shop=bakery | shop=alcohol | shop=seafood | shop=beverages | shop=florist)", - "value": "no" - }, - { - "key": "diet:sugar_free", - "description": "Layer 'Shop' shows diet:sugar_free=only with a fixed text, namely 'This shop only sells sugar free products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "only" - }, - { - "key": "diet:sugar_free", - "description": "Layer 'Shop' shows diet:sugar_free=yes with a fixed text, namely 'This shop has a big sugar free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "yes" - }, - { - "key": "diet:sugar_free", - "description": "Layer 'Shop' shows diet:sugar_free=limited with a fixed text, namely 'This shop has a limited sugar free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "limited" - }, - { - "key": "diet:sugar_free", - "description": "Layer 'Shop' shows diet:sugar_free=no with a fixed text, namely 'This shop has no sugar free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "no" - }, - { - "key": "diet:gluten_free", - "description": "Layer 'Shop' shows diet:gluten_free=only with a fixed text, namely 'This shop only sells gluten free products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "only" - }, - { - "key": "diet:gluten_free", - "description": "Layer 'Shop' shows diet:gluten_free=yes with a fixed text, namely 'This shop has a big gluten free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "yes" - }, - { - "key": "diet:gluten_free", - "description": "Layer 'Shop' shows diet:gluten_free=limited with a fixed text, namely 'This shop has a limited gluten free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "limited" - }, - { - "key": "diet:gluten_free", - "description": "Layer 'Shop' shows diet:gluten_free=no with a fixed text, namely 'This shop has no gluten free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "no" - }, - { - "key": "diet:lactose_free", - "description": "Layer 'Shop' shows diet:lactose_free=only with a fixed text, namely 'Only sells lactose free products' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "only" - }, - { - "key": "diet:lactose_free", - "description": "Layer 'Shop' shows diet:lactose_free=yes with a fixed text, namely 'Big lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "yes" - }, - { - "key": "diet:lactose_free", - "description": "Layer 'Shop' shows diet:lactose_free=limited with a fixed text, namely 'Limited lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", - "value": "limited" - }, { "key": "diet:lactose_free", "description": "Layer 'Shop' shows diet:lactose_free=no with a fixed text, namely 'No lactose free offering' and allows to pick this as a default answer (in the mapcomplete.org theme 'Healthcare') (This is only shown if shop=supermarket | shop=convenience | shop=farm | shop=greengrocer | shop=health_food | shop=deli | shop=bakery | shop=beverages | shop=beverages | shop=pastry | shop=chocolate | shop=frozen_food | shop=ice_cream)", diff --git a/Docs/TagInfo/mapcomplete_nature.json b/Docs/TagInfo/mapcomplete_nature.json index aa622e186..488fa0c92 100644 --- a/Docs/TagInfo/mapcomplete_nature.json +++ b/Docs/TagInfo/mapcomplete_nature.json @@ -1189,6 +1189,50 @@ "description": "Layer 'Toilets' shows toilets:position=seated;urinal with a fixed text, namely 'Both seated toilets and urinals are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature')", "value": "seated;urinal" }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=yes with a fixed text, namely 'There is a separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature') (This is only shown if toilets:position!=urinal)", + "value": "yes" + }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=no with a fixed text, namely 'There is no separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature') (This is only shown if toilets:position!=urinal)", + "value": "no" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=yes with a fixed text, namely 'Free menstrual products are available to all visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature')", + "value": "yes" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=limited with a fixed text, namely 'Free menstrual products are available to some visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature')", + "value": "limited" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=no with a fixed text, namely 'No free menstrual products are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature')", + "value": "no" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows and asks freeform values for key 'toilets:menstrual_products:location' (in the mapcomplete.org theme 'Into nature') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=female_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "female_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=male_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for men' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "male_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=wheelchair_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "wheelchair_toilet" + }, { "key": "changing_table", "description": "Layer 'Toilets' shows changing_table=yes with a fixed text, namely 'A changing table is available' and allows to pick this as a default answer (in the mapcomplete.org theme 'Into nature')", diff --git a/Docs/TagInfo/mapcomplete_onwheels.json b/Docs/TagInfo/mapcomplete_onwheels.json index dd84e7b68..cb25b60b9 100644 --- a/Docs/TagInfo/mapcomplete_onwheels.json +++ b/Docs/TagInfo/mapcomplete_onwheels.json @@ -2608,6 +2608,50 @@ "description": "Layer 'Toilets' shows toilets:position=seated;urinal with a fixed text, namely 'Both seated toilets and urinals are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", "value": "seated;urinal" }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=yes with a fixed text, namely 'There is a separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if toilets:position!=urinal)", + "value": "yes" + }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=no with a fixed text, namely 'There is no separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if toilets:position!=urinal)", + "value": "no" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=yes with a fixed text, namely 'Free menstrual products are available to all visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "yes" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=limited with a fixed text, namely 'Free menstrual products are available to some visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "limited" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=no with a fixed text, namely 'No free menstrual products are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", + "value": "no" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows and asks freeform values for key 'toilets:menstrual_products:location' (in the mapcomplete.org theme 'OnWheels') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=female_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for women' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "female_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=male_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for men' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "male_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=wheelchair_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "wheelchair_toilet" + }, { "key": "changing_table", "description": "Layer 'Toilets' shows changing_table=yes with a fixed text, namely 'A changing table is available' and allows to pick this as a default answer (in the mapcomplete.org theme 'OnWheels')", diff --git a/Docs/TagInfo/mapcomplete_personal.json b/Docs/TagInfo/mapcomplete_personal.json index 8716bcaa4..5f1249212 100644 --- a/Docs/TagInfo/mapcomplete_personal.json +++ b/Docs/TagInfo/mapcomplete_personal.json @@ -14828,6 +14828,50 @@ "description": "Layer 'Toilets' shows toilets:position=seated;urinal with a fixed text, namely 'Both seated toilets and urinals are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", "value": "seated;urinal" }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=yes with a fixed text, namely 'There is a separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:position!=urinal)", + "value": "yes" + }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=no with a fixed text, namely 'There is no separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:position!=urinal)", + "value": "no" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=yes with a fixed text, namely 'Free menstrual products are available to all visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "yes" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=limited with a fixed text, namely 'Free menstrual products are available to some visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "limited" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=no with a fixed text, namely 'No free menstrual products are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "no" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows and asks freeform values for key 'toilets:menstrual_products:location' (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=female_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "female_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=male_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for men' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "male_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=wheelchair_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "wheelchair_toilet" + }, { "key": "changing_table", "description": "Layer 'Toilets' shows changing_table=yes with a fixed text, namely 'A changing table is available' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", @@ -15080,6 +15124,40 @@ "description": "Layer 'Toilets at other amenities' shows toilets:paper_supplied=no with a fixed text, namely 'You have to bring your own toilet paper to this toilet' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:position!=urinal)", "value": "no" }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products=yes with a fixed text, namely 'Free menstrual products are available to all visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "yes" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products=limited with a fixed text, namely 'Free menstrual products are available to some visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "limited" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products=no with a fixed text, namely 'No free menstrual products are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme')", + "value": "no" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'toilets:menstrual_products:location' (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products:location=female_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "female_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products:location=male_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for men' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "male_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products:location=wheelchair_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Personal theme') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "wheelchair_toilet" + }, { "key": "toilets:description", "description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'toilets:description' (in the mapcomplete.org theme 'Personal theme')" diff --git a/Docs/TagInfo/mapcomplete_ski.json b/Docs/TagInfo/mapcomplete_ski.json index dc0575bd7..36a7a944d 100644 --- a/Docs/TagInfo/mapcomplete_ski.json +++ b/Docs/TagInfo/mapcomplete_ski.json @@ -565,6 +565,50 @@ "description": "Layer 'Toilets' shows toilets:position=seated;urinal with a fixed text, namely 'Both seated toilets and urinals are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", "value": "seated;urinal" }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=yes with a fixed text, namely 'There is a separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') (This is only shown if toilets:position!=urinal)", + "value": "yes" + }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=no with a fixed text, namely 'There is no separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') (This is only shown if toilets:position!=urinal)", + "value": "no" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=yes with a fixed text, namely 'Free menstrual products are available to all visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "yes" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=limited with a fixed text, namely 'Free menstrual products are available to some visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "limited" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=no with a fixed text, namely 'No free menstrual products are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", + "value": "no" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows and asks freeform values for key 'toilets:menstrual_products:location' (in the mapcomplete.org theme 'Ski pistes and aerialways') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=female_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "female_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=male_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for men' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "male_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=wheelchair_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "wheelchair_toilet" + }, { "key": "changing_table", "description": "Layer 'Toilets' shows changing_table=yes with a fixed text, namely 'A changing table is available' and allows to pick this as a default answer (in the mapcomplete.org theme 'Ski pistes and aerialways')", diff --git a/Docs/TagInfo/mapcomplete_toilets.json b/Docs/TagInfo/mapcomplete_toilets.json index bb85aae32..47d5b4426 100644 --- a/Docs/TagInfo/mapcomplete_toilets.json +++ b/Docs/TagInfo/mapcomplete_toilets.json @@ -190,6 +190,50 @@ "description": "Layer 'Toilets' shows toilets:position=seated;urinal with a fixed text, namely 'Both seated toilets and urinals are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets')", "value": "seated;urinal" }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=yes with a fixed text, namely 'There is a separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:position!=urinal)", + "value": "yes" + }, + { + "key": "gender_segregated", + "description": "Layer 'Toilets' shows gender_segregated=no with a fixed text, namely 'There is no separate, signposted area for men and women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:position!=urinal)", + "value": "no" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=yes with a fixed text, namely 'Free menstrual products are available to all visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets')", + "value": "yes" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=limited with a fixed text, namely 'Free menstrual products are available to some visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets')", + "value": "limited" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets' shows toilets:menstrual_products=no with a fixed text, namely 'No free menstrual products are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets')", + "value": "no" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows and asks freeform values for key 'toilets:menstrual_products:location' (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=female_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "female_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=male_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for men' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "male_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets' shows toilets:menstrual_products:location=wheelchair_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "wheelchair_toilet" + }, { "key": "changing_table", "description": "Layer 'Toilets' shows changing_table=yes with a fixed text, namely 'A changing table is available' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets')", @@ -442,6 +486,40 @@ "description": "Layer 'Toilets at other amenities' shows toilets:paper_supplied=no with a fixed text, namely 'You have to bring your own toilet paper to this toilet' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:position!=urinal)", "value": "no" }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products=yes with a fixed text, namely 'Free menstrual products are available to all visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets')", + "value": "yes" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products=limited with a fixed text, namely 'Free menstrual products are available to some visitors of these toilets' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets')", + "value": "limited" + }, + { + "key": "toilets:menstrual_products", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products=no with a fixed text, namely 'No free menstrual products are available here' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets')", + "value": "no" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'toilets:menstrual_products:location' (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products:location=female_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for women' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "female_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products:location=male_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for men' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "male_toilet" + }, + { + "key": "toilets:menstrual_products:location", + "description": "Layer 'Toilets at other amenities' shows toilets:menstrual_products:location=wheelchair_toilet with a fixed text, namely 'The free, menstrual products are located in the toilet for wheelchair users' and allows to pick this as a default answer (in the mapcomplete.org theme 'Public toilets') (This is only shown if toilets:menstrual_products=limited | toilets:menstrual_products:location~.+)", + "value": "wheelchair_toilet" + }, { "key": "toilets:description", "description": "Layer 'Toilets at other amenities' shows and asks freeform values for key 'toilets:description' (in the mapcomplete.org theme 'Public toilets')" diff --git a/Docs/Themes/disaster_response.md b/Docs/Themes/disaster_response.md index 8ead3b498..87c6aed1e 100644 --- a/Docs/Themes/disaster_response.md +++ b/Docs/Themes/disaster_response.md @@ -30,6 +30,8 @@ Available languages: - en - it + - de + - es This document is autogenerated from [assets/themes/disaster_response/disaster_response.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/disaster_response/disaster_response.json) diff --git a/Docs/Themes/mapcomplete-changes.md b/Docs/Themes/mapcomplete-changes.md index ca2539a56..3709a80fb 100644 --- a/Docs/Themes/mapcomplete-changes.md +++ b/Docs/Themes/mapcomplete-changes.md @@ -28,6 +28,8 @@ Available languages: - en + - de + - es This document is autogenerated from [assets/themes/mapcomplete-changes/mapcomplete-changes.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/mapcomplete-changes/mapcomplete-changes.json) diff --git a/Docs/Themes/openlovemap.md b/Docs/Themes/openlovemap.md index a79109ea0..1af054275 100644 --- a/Docs/Themes/openlovemap.md +++ b/Docs/Themes/openlovemap.md @@ -36,6 +36,8 @@ Available languages: - en + - de + - es This document is autogenerated from [assets/themes/openlovemap/openlovemap.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/openlovemap/openlovemap.json) diff --git a/Docs/Themes/ski.md b/Docs/Themes/ski.md index 7f84ae57d..9d5611fd6 100644 --- a/Docs/Themes/ski.md +++ b/Docs/Themes/ski.md @@ -37,6 +37,8 @@ Available languages: - en + - de + - es This document is autogenerated from [assets/themes/ski/ski.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/ski/ski.json) diff --git a/Docs/Themes/walkingnodes.md b/Docs/Themes/walkingnodes.md index 505ff66b4..fe6efe0b0 100644 --- a/Docs/Themes/walkingnodes.md +++ b/Docs/Themes/walkingnodes.md @@ -33,6 +33,7 @@ Available languages: - en - nl - de + - es This document is autogenerated from [assets/themes/walkingnodes/walkingnodes.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/walkingnodes/walkingnodes.json) diff --git a/Docs/URL_Parameters.md b/Docs/URL_Parameters.md index 9329423ba..e6232f6a3 100644 --- a/Docs/URL_Parameters.md +++ b/Docs/URL_Parameters.md @@ -464,7 +464,7 @@ This documentation is defined in the source code at [FilteredLayer.ts](/src/Mode The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics' -This documentation is defined in the source code at [generateDocs.ts](ervdvn/git2/MapComplete/scripts/generateDocs.ts#L420) +This documentation is defined in the source code at [generateDocs.ts](ervdvn/git/MapComplete/scripts/generateDocs.ts#L420) The default value is _map_ diff --git a/Docs/wikiIndex.txt b/Docs/wikiIndex.txt index 382891adc..1660111fd 100644 --- a/Docs/wikiIndex.txt +++ b/Docs/wikiIndex.txt @@ -238,7 +238,7 @@ {{service_item |name= [https://mapcomplete.org/disaster_response disaster_response] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:it|en}} +|lang= {{#language:en|en}}, {{#language:it|en}}, {{#language:de|en}}, {{#language:es|en}} |descr= A MapComplete theme: This map contains elements meant for disaster preparedness and response |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png @@ -474,7 +474,7 @@ The position of a signpost can be used by a hiker/biker/rider/s… {{service_item |name= [https://mapcomplete.org/ski ski] |region= Worldwide -|lang= {{#language:en|en}} +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:es|en}} |descr= A MapComplete theme: Everything you need to go skiing |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png diff --git a/assets/layers/address/address.json b/assets/layers/address/address.json index 4767f2451..9b50f5828 100644 --- a/assets/layers/address/address.json +++ b/assets/layers/address/address.json @@ -21,7 +21,8 @@ "zgh": "ⴰⵏⵙⵉⵡⵏ ⵉⵜⵜⵡⴰⵙⵙⵏⵏ ⴳ OSM", "pt_BR": "Endereços conhecidos no OSM", "eu": "OSMko helbide ezagunak", - "pl": "Znane adresy w OSM" + "pl": "Znane adresy w OSM", + "it": "Indirizzo presente su OSM" }, "description": { "en": "Addresses", @@ -45,7 +46,8 @@ "zgh": "ⴰⵏⵙⵉⵡⵏ", "pt_BR": "Endereços", "he": "כתובות", - "eu": "Helbideak" + "eu": "Helbideak", + "it": "Indirizzi" }, "source": { "osmTags": { @@ -81,7 +83,8 @@ "pt": "Endereço conhecido", "pt_BR": "Endereço conhecido", "he": "כתובת ידועה", - "eu": "Helbide ezaguna" + "eu": "Helbide ezaguna", + "it": "Indirizzo conosciuto" } }, "pointRendering": [ @@ -166,7 +169,8 @@ "ca": "El número de porta és {addr:housenumber}", "pt_BR": "O número da casa é {addr:housenumber}", "he": "מספר הבית הוא {addr:housenumber}", - "eu": "Etxearen zenbakia {addr:housenumber} da" + "eu": "Etxearen zenbakia {addr:housenumber} da", + "it": "Il numero civico della casa è {addr:housenumber}" }, "question": { "en": "What is the number of this house?", @@ -186,7 +190,8 @@ "ca": "Quin és el número d'aquesta casa?", "pt_BR": "Qual é o número desta casa?", "he": "מה המספר של הבית הזה?", - "eu": "Zein da etxe honen zenbakia?" + "eu": "Zein da etxe honen zenbakia?", + "it": "Qual è il numero civico di questa casa?" }, "freeform": { "key": "addr:housenumber", @@ -223,7 +228,8 @@ "ca": "Aquest edifici no té número", "pt_BR": "Este prédio não tem número", "he": "למבנה זה אין מספר בית", - "eu": "Eraikin honek ez du etxe zenbakirik" + "eu": "Eraikin honek ez du etxe zenbakirik", + "it": "Questo edificio non ha indirizzo" } } ] @@ -246,7 +252,8 @@ "pt": "Este endereço é na rua {addr:street}", "pt_BR": "Este endereço fica na rua {addr:street}", "he": "כתובת זו נמצאת ברחוב {addr:street}", - "eu": "Helbide hau {addr:street} kalean dago" + "eu": "Helbide hau {addr:street} kalean dago", + "it": "L’indirizzo è in via {addr:street}" }, "question": { "en": "What street is this address located in?", @@ -265,7 +272,8 @@ "pt": "Em que rua fica esse endereço?", "pt_BR": "Em que rua fica esse endereço?", "he": "באיזה רחוב נמצאת הכתובת הזו?", - "eu": "Zein kaletan dago helbide hori?" + "eu": "Zein kaletan dago helbide hori?", + "it": "Qual è la via in cui si trova?" }, "freeform": { "key": "addr:street" @@ -314,7 +322,8 @@ "ca": "Què s’hauria de corregir aquí? Exposa-ho", "pt_BR": "O que deve ser corrigido aqui? Explique", "he": "מה צריך לתקן כאן? אנא הסבר", - "eu": "Zer konpondu behar da hemen? Azaldu mesedez" + "eu": "Zer konpondu behar da hemen? Azaldu mesedez", + "it": "Indica cosa deve essere corretto qui" }, "freeform": { "key": "fixme" diff --git a/assets/layers/advertising/advertising.json b/assets/layers/advertising/advertising.json index c6e9f2fbe..0fd455cc9 100644 --- a/assets/layers/advertising/advertising.json +++ b/assets/layers/advertising/advertising.json @@ -12,7 +12,8 @@ "eu": "Iragarri", "pl": "Reklama", "pt_BR": "Anunciar", - "zh_Hans": "广告" + "zh_Hans": "广告", + "it": "Pubblicità" }, "description": { "ca": "Completarem les dades dels elements publicitaris amb referència, operador i il·luminació", @@ -23,7 +24,8 @@ "pt": "Iremos completar os dados das funcionalidades publicitárias com referência, operador e iluminado", "eu": "Publizitate-ezaugarrien datuak osatuko ditugu erreferentziarekin, operadorearekin eta argiztatuarekin.", "pl": "Uzupełnimy dane z obiektów reklamowych o referencję, operatora i oświetlenie", - "pt_BR": "Completaremos os dados das características de publicidade com referência, operador e iluminação" + "pt_BR": "Completaremos os dados das características de publicidade com referência, operador e iluminação", + "it": "Completeremo i dati da caratteristiche pubblicitarie, con referenza, operatore e illuminazione" }, "source": { "osmTags": "advertising~*" @@ -395,7 +397,8 @@ "eu": "iragarki panela", "pl": "bilbord", "pt_BR": "um outdoor", - "zh_Hans": "一块广告牌" + "zh_Hans": "一块广告牌", + "it": "un cartellone" }, "description": { "en": "A large outdoor advertising structure, typically found in high-traffic areas such as alongside busy roads", @@ -408,7 +411,8 @@ "he": "מבנה פרסום חוצות גדול, שנמצא בדרך כלל באזורים עתירי תנועה כמו לצד כבישים סואנים", "eu": "Atari zabaleko publizitate-egitura handia, trafiko handiko eremuetan egon ohi dena, adibidez errepideen ondoan", "pl": "Duża struktura reklamowa na dworze, zwykle znajdująca się w obszarach z dużym ruchem, np. w pobliżu ruchliwych dróg", - "pt_BR": "Uma grande estrutura de publicidade outdoor, geralmente encontrada em áreas com alto tráfego, como ao longo de estradas movimentadas" + "pt_BR": "Uma grande estrutura de publicidade outdoor, geralmente encontrada em áreas com alto tráfego, como ao longo de estradas movimentadas", + "it": "Grande struttura pubblicitaria all'aperto, trovata normalmente in aree ad alto traffico come accanto a strade molto trafficate" }, "exampleImages": [ "./assets/themes/advertising/KFC_Billboard.jpg", @@ -429,7 +433,8 @@ "pt": "uma caixa de pôster independente", "fr": "un panneau à affiches scellé au sol", "pl": "wolnostojąca skrzynka plakatowa", - "pt_BR": "uma caixa expositora independente" + "pt_BR": "uma caixa expositora independente", + "it": "un cartellone pubblicitario fissato a terra" }, "exampleImages": [ "./assets/themes/advertising/Mupi_spain.jpg", @@ -450,7 +455,8 @@ "fr": "un panneau à affiches monté sur un mur", "pl": "skrzynka plakatowa montowana na ścianie", "pt_BR": "uma caixa de pôster montada em uma parede", - "zh_Hans": "安装在墙上的海报盒子" + "zh_Hans": "安装在墙上的海报盒子", + "it": "un cartellone pubblicitario fissato al muro" }, "snapToLayer": [ "walls_and_buildings" @@ -470,7 +476,8 @@ "fr": "un petit panneau", "pt": "a bordo", "pl": "tablica", - "pt_BR": "um painel publicitário" + "pt_BR": "um painel publicitário", + "it": "un piccolo pannello" }, "description": { "en": "Small billboard for neighbourhood advertising, generally intended for pedestrians", @@ -482,7 +489,8 @@ "nl": "Een klein uithangbord voor buurtadvertenties, meestal gericht op voetgangers", "pt": "Pequeno outdoor para publicidade de bairro, geralmente destinado a pedestres", "pl": "Mały bilbord dla reklam lokalnych, przeznaczony głównie dla pieszych", - "pt_BR": "Pequeno outdoor para publicidade local, geralmente destinado a pedestres" + "pt_BR": "Pequeno outdoor para publicidade local, geralmente destinado a pedestres", + "it": "PIccolo pannello per la pubblicità di vicinanza, generalmente destinato ai pedoni" }, "exampleImages": [ "./assets/themes/advertising/local_Board.jpg", @@ -504,7 +512,8 @@ "fr": "une colonne", "pt": "uma coluna", "pl": "kolumna", - "pt_BR": "uma coluna" + "pt_BR": "uma coluna", + "it": "una colonna" }, "description": { "en": "A cylindrical outdoor structure which shows advertisements", @@ -516,7 +525,8 @@ "nl": "Een cylindervormige structuur die buiten staat waarop advertenties staan", "pt": "Uma estrutura exterior cilíndrica que mostra anúncios", "pl": "Cylindryczna konstrukcja zewnętrzna, na której pokazywane są reklamy", - "pt_BR": "Uma estrutura cilíndrica ao ar livre que exibe anúncios" + "pt_BR": "Uma estrutura cilíndrica ao ar livre que exibe anúncios", + "it": "Una struttura cilindrica all'esterno con affissa della pubblicità" }, "exampleImages": [ "./assets/themes/advertising/AdvertisingColumn_001.jpg", @@ -539,7 +549,8 @@ "pt": "uma bandeira", "pl": "flaga", "pt_BR": "uma bandeira", - "zh_Hans": "一个旗子" + "zh_Hans": "一个旗子", + "it": "una bandiera" }, "exampleImages": [ "./assets/themes/advertising/Advertising_flag.jpg", @@ -561,7 +572,8 @@ "pt": "uma tela", "pl": "ekran", "pt_BR": "uma tela", - "zh_Hans": "一块屏幕" + "zh_Hans": "一块屏幕", + "it": "uno schermo" }, "exampleImages": [ "./assets/themes/advertising/Screen_poster_box.jpg", @@ -583,7 +595,8 @@ "pt": "uma tela montada em uma parede", "pl": "ekran zamontowany na ścianie", "pt_BR": "uma tela montada em uma parede", - "zh_Hans": "一块挂在墙上的屏幕" + "zh_Hans": "一块挂在墙上的屏幕", + "it": "uno schermo fissato al muro" }, "exampleImages": [ "./assets/themes/advertising/Subway_screen.jpg", @@ -610,7 +623,8 @@ "pt": "uma lona", "pl": "plandeka", "pt_BR": "uma lona", - "zh_Hans": "防水布" + "zh_Hans": "防水布", + "it": "un telone" }, "description": { "en": "A piece of waterproof textile with a printed message, permanently anchored on a wall", @@ -622,7 +636,8 @@ "pt": "Uma peça de tecido impermeável com uma mensagem impressa, permanentemente ancorada na parede", "fr": "Une pièce de textile imperméable avec un message imprimé, ancrée de façon permanente sur un mur.", "pl": "Kawałek wodoodpornej tkaniny z nadrukowanym przesłaniem, trwale przymocowany do ściany", - "pt_BR": "Um pedaço de tecido impermeável com uma mensagem impressa, permanentemente fixado a uma parede" + "pt_BR": "Um pedaço de tecido impermeável com uma mensagem impressa, permanentemente fixado a uma parede", + "it": "Un telo impermeabile con un messaggio stampato, fissato in modo permanente al muro" }, "exampleImages": [ "./assets/themes/advertising/tarp_feder.jpg", @@ -647,7 +662,8 @@ "pt": "um totem", "pl": "totem", "pt_BR": "um totem", - "zh_Hans": "图腾" + "zh_Hans": "图腾", + "it": "un totem" }, "exampleImages": [ "./assets/themes/advertising/AdvertisingTotem_004.jpg", @@ -670,7 +686,8 @@ "pt_BR": "uma placa", "eu": "letrero bat", "pl": "znak", - "zh_Hans": "标志" + "zh_Hans": "标志", + "it": "un'insegna" }, "description": { "en": "Used for advertising signs, neon signs, logos & institutional entrance signs", @@ -682,7 +699,8 @@ "pt": "Usado para sinais publicitários, sinais de néon, logotipos e sinais de entrada institucionais", "eu": "Iragarki publizitarioetarako, neon-karteletarako, logotipoetarako eta erakundeen sarrera-seinaleetarako erabiltzen da", "pl": "Używany do znaków reklamowych, neonów, logo i znaków wejściowych do instytucji", - "pt_BR": "Usado para placas de publicidade, letreiros de neon, logotipos e placas de entrada institucionais" + "pt_BR": "Usado para placas de publicidade, letreiros de neon, logotipos e placas de entrada institucionais", + "it": "Utilizzato per insegna pubblicitaria, un'insegna al neon, i loghi o le indicazioni d'entrata" }, "exampleImages": [ "./assets/themes/advertising/Waitrose_sign.jpg", @@ -709,7 +727,8 @@ "eu": "eskultura bat", "pl": "rzeźba", "pt_BR": "uma escultura", - "zh_Hans": "雕像" + "zh_Hans": "雕像", + "it": "una scultura" }, "exampleImages": [ "./assets/themes/advertising/Aircraft_Sculpture.jpg", @@ -733,7 +752,8 @@ "eu": "pareta margotu bat", "pl": "mural ścienny", "pt_BR": "uma pintura mural", - "zh_Hans": "墙上的画" + "zh_Hans": "墙上的画", + "it": "un murales" }, "exampleImages": [ "./assets/themes/advertising/Capitol_wall.jpg", @@ -1490,7 +1510,8 @@ "eu": "Objektu honek iragarkiak ditu alde bakar batean", "pl": "Ten obiekt ma reklamy po jednej stronie", "pt_BR": "Este objeto tem anúncios em um único lado", - "zh_Hans": "该物体单面有广告" + "zh_Hans": "该物体单面有广告", + "it": "Questo oggetto ha la pubblicità solo da un lato" } }, { diff --git a/assets/layers/aerialway/aerialway.json b/assets/layers/aerialway/aerialway.json index 0b5944c70..f03116be1 100644 --- a/assets/layers/aerialway/aerialway.json +++ b/assets/layers/aerialway/aerialway.json @@ -18,7 +18,8 @@ ], "label": { "render": { - "en": "{name}" + "en": "{name}", + "de": "{name}" }, "condition": "name~*", "classes": "bg-white p-1 px-2 rounded" @@ -30,78 +31,90 @@ "images", { "question": { - "en": "What type of aerialway is this?" + "en": "What type of aerialway is this?", + "de": "Um welchen Seilbahntyp handelt es sich?" }, "id": "type", "mappings": [ { "if": "aerialway=cable_car", "then": { - "en": "This is a cable car where the car goes up and down again on the same cable." + "en": "This is a cable car where the car goes up and down again on the same cable.", + "de": "Es handelt sich um eine Seilbahn, bei der die Kabine auf demselben Seil nach oben und wieder nach unten fährt." }, "icon": "./assets/layers/aerialway/cable_car.svg" }, { "if": "aerialway=gondola", "then": { - "en": "This is a gondola where the cars go around in continuous circles" + "en": "This is a gondola where the cars go around in continuous circles", + "de": "Es handelt sich um eine Seilbahn, bei der die Kabinen in ständigen Kreisen fahren" }, "icon": "./assets/layers/aerialway/gondola_lift.svg" }, { "if": "aerialway=chair_lift", "then": { - "en": "An open chairlift with seats to sit on and open to the outside air." + "en": "An open chairlift with seats to sit on and open to the outside air.", + "de": "Ein offener Sessellift mit Sitzgelegenheiten und Zugang zur Außenluft." }, "icon": "./assets/layers/aerialway/chair_lift.svg" }, { "if": "aerialway=mixed", "then": { - "en": "An aerialway which has both chairs and gondolas in the same continuous track" + "en": "An aerialway which has both chairs and gondolas in the same continuous track", + "de": "Eine Seilbahn, die sowohl offene Sessel als auch geschlossene Gondeln auf einer durchgehenden Bahn hat" } }, { "if": "aerialway=drag_lift", "then": { - "en": "A drag lift" + "en": "A drag lift", + "de": "Ein Schlepplift" }, "hideInAnswer": true }, { "if": "aerialway=t-bar", "then": { - "en": "A drag lift with T-shaped carriers for two passengers at a time" + "en": "A drag lift with T-shaped carriers for two passengers at a time", + "de": "Ein Schlepplift mit T-förmigen Trägern für jeweils zwei Passagiere" } }, { "if": "aerialway=j-bar", "then": { - "en": "A drag lift with L-shaped bars for a single passenger at a time" + "en": "A drag lift with L-shaped bars for a single passenger at a time", + "de": "Ein Schlepplift mit L-förmigen Trägern für jeweils einen Passagier" } }, { "if": "aerialway=platter", "then": { - "en": "A drag lift with a platter to drag a single passenger at a time" + "en": "A drag lift with a platter to drag a single passenger at a time", + "de": "Ein Schlepplift mit einem Teller für jeweils einen Passagier" } }, { "if": "aerialway=rope_tow", "then": { - "en": "A tow line which which drags skieers" + "en": "A tow line which which drags skieers", + "de": "Eine Schleppleine, die Skifahrer mit sich zieht" } }, { "if": "aerialway=magic_carpet", "then": { - "en": "A magic carpet (a conveyor belt on the ground)" + "en": "A magic carpet (a conveyor belt on the ground)", + "de": "Ein magic carpet (ein Förderband auf dem Boden)" } }, { "if": "aerialway=zip_line", "then": { - "en": "A zip line. (A touristical attraction where adventurous people go down at high speeds) " + "en": "A zip line. (A touristical attraction where adventurous people go down at high speeds) ", + "de": "Eine Seilrutsche. (Eine Touristenattraktion, bei der abenteuerlustige Menschen mit hoher Geschwindigkeit hinunterfahren) " } } ] @@ -109,16 +122,19 @@ { "id": "duration", "question": { - "en": "How long takes a single journey with this elevator?" + "en": "How long takes a single journey with this elevator?", + "de": "Wie lange dauert eine Fahrt mit diesem Aufzug?" }, "questionHint": { - "en": "This excludes the waiting time." + "en": "This excludes the waiting time.", + "de": "Dies schließt die Wartezeit aus." }, "freeform": { "key": "duration" }, "render": { - "en": "A single journey takes {duration} minutes" + "en": "A single journey takes {duration} minutes", + "de": "Eine Fahrt dauert {duration} Minuten" } }, { @@ -127,10 +143,12 @@ "key": "aerialway:occupancy" }, "question": { - "en": "How many people fit a single carriage?" + "en": "How many people fit a single carriage?", + "de": "Wie viele Leute passen in eine Kabine?" }, "render": { - "en": "{aerialway:occupancy} people fit a single carriage" + "en": "{aerialway:occupancy} people fit a single carriage", + "de": "{aerialway:occupancy} Leute passen in eine Kabine" } }, "opening_hours", @@ -151,14 +169,15 @@ "if": "oneway=no", "then": { "en": "This aerialway can be taken in both directions" - } + } } ] }, { "id": "length", "render": { - "en": "This aerialway is {_length:km} kilometer long" + "en": "This aerialway is {_length:km} kilometer long", + "de": "Die Seilbahn hat eine Länge von {_length:km} km" } } ], @@ -166,27 +185,31 @@ { "width": "4", "color": "black", - "imageAlongWay": [ { - "if": "oneway=no", - "then": "./assets/png/twoway.png" - },{ - "if": { - "or": [ - "oneway=yes", - "oneway=" - ] + "imageAlongWay": [ + { + "if": "oneway=no", + "then": "./assets/png/twoway.png" }, - "then": "./assets/png/oneway.png" - } + { + "if": { + "or": [ + "oneway=yes", + "oneway=" + ] + }, + "then": "./assets/png/oneway.png" + } ] } ], "id": "aerialway", "name": { - "en": "Aerialways" + "en": "Aerialways", + "de": "Seilbahnen" }, "description": { - "en": "Various forms of transport for passengers and goods that use wires, including cable cars, gondolas, chair lifts, drag lifts, and zip lines. " + "en": "Various forms of transport for passengers and goods that use wires, including cable cars, gondolas, chair lifts, drag lifts, and zip lines. ", + "de": "Alle Arten von seil- oder drahtgestütztem Personen- oder Gütertransport, wie Seilbahnen, Gondeln, Sessellifte, Schlepplifte. " }, "source": { "osmTags": { @@ -199,7 +222,8 @@ }, "title": { "render": { - "en": "Aerialway {name}" + "en": "Aerialway {name}", + "de": "Seilbahn {name}" } } } diff --git a/assets/layers/assembly_point/assembly_point.json b/assets/layers/assembly_point/assembly_point.json index 9ed7fcaa7..974cdd01e 100644 --- a/assets/layers/assembly_point/assembly_point.json +++ b/assets/layers/assembly_point/assembly_point.json @@ -5,11 +5,13 @@ }, "name": { "en": "Emergency assembly points", - "it": "Punti di raccolta per emergenze" + "it": "Punti di raccolta per emergenze", + "de": "Notfallsammelplätze" }, "description": { "en": "This layer contains assembly points and waiting areas where all employees, passengers or a large crowd assemble in case of an emergency.", - "it": "Questo livello contiene punti di raccolta e aree di attesa in cui tutti i dipendenti, i passeggeri o una grande folla si riuniscono in caso di emergenza." + "it": "Questo livello contiene punti di raccolta e aree di attesa in cui tutti i dipendenti, i passeggeri o una grande folla si riuniscono in caso di emergenza.", + "de": "Diese Ebene enthält Sammelplätze und Wartebereiche, in denen sich alle Mitarbeiter, Fahrgäste oder eine große Menschenmenge im Notfall versammeln." }, "docs": "https://wiki.openstreetmap.org/wiki/Tag:emergency%3Dassembly_point", "id": "assembly_point", @@ -40,7 +42,8 @@ { "title": { "en": "an assembly point", - "it": "un punto di raccolta" + "it": "un punto di raccolta", + "de": "ein Sammelplatz" }, "tags": [ "emergency=assembly_point" @@ -49,7 +52,8 @@ ], "title": { "render": { - "en": "Assembly point during emergencies" + "en": "Assembly point during emergencies", + "de": "Sammelplatz bei Notfällen" } }, "tagRenderings": [ @@ -61,22 +65,26 @@ }, "question": { "en": "What is the name of this assembly point?", - "it": "Qual è il nome di questo punto di raccolta?" + "it": "Qual è il nome di questo punto di raccolta?", + "de": "Wie lautet der Name dieser Sammelstelle?" }, "render": { "en": "This assembly point is named {name}", - "it": "Questo punto di raccolta si chiama {name}" + "it": "Questo punto di raccolta si chiama {name}", + "de": "Diese Sammelstelle hat den Namen {name}" } }, { "id": "assembly_point_operator", "render": { "en": "This assembly point is operated by {operator}", - "it": "Questo punto di raccolta è gestita da {operator}" + "it": "Questo punto di raccolta è gestita da {operator}", + "de": "Diese Sammelstelle wird von {operator} betrieben" }, "question": { "en": "What organization operates this assembly point?", - "it": "Quale organizzazione gestisce questo punto di raccolta?" + "it": "Quale organizzazione gestisce questo punto di raccolta?", + "de": "Welche Organisation betreibt diese Sammelstelle?" }, "freeform": { "key": "operator", @@ -87,7 +95,8 @@ "id": "disaster_type", "question": { "en": "For which disaster type is this assembly point meant?", - "it": "Per quali tipi di disastro è pensato questo punto di raccolta?" + "it": "Per quali tipi di disastro è pensato questo punto di raccolta?", + "de": "Für welche Art von Katastrophe ist diese Sammelstelle gedacht?" }, "multiAnswer": true, "mappings": [ @@ -96,7 +105,8 @@ "ifnot": "assembly_point:earthquake=", "then": { "en": "Earthquake", - "it": "Terremoto" + "it": "Terremoto", + "de": "Erdbeben" }, "icon": { "path": "./assets/layers/assembly_point/earthquake.svg", @@ -108,7 +118,8 @@ "ifnot": "assembly_point:flood=", "then": { "en": "Flood", - "it": "Alluvione" + "it": "Alluvione", + "de": "Flut" }, "icon": { "path": "./assets/layers/assembly_point/flood.svg", @@ -120,7 +131,8 @@ "ifnot": "assembly_point:fire=", "then": { "en": "Fire", - "it": "Incendio" + "it": "Incendio", + "de": "Feuer" }, "icon": { "path": "./assets/layers/assembly_point/fire.svg", @@ -132,7 +144,8 @@ "ifnot": "assembly_point:landslide=", "then": { "en": "Landslide", - "it": "Frana" + "it": "Frana", + "de": "Erdrutsch" }, "icon": { "path": "./assets/layers/assembly_point/landslide.svg", diff --git a/assets/layers/bike_parking/bike_parking.json b/assets/layers/bike_parking/bike_parking.json index 6fe4ad904..ff7183254 100644 --- a/assets/layers/bike_parking/bike_parking.json +++ b/assets/layers/bike_parking/bike_parking.json @@ -64,7 +64,8 @@ "iconSize": "40,40", "location": [ "point", - "centroid" + "projected_centerpoint", + "polygon_centroid" ], "anchor": "bottom", "marker": [ @@ -638,14 +639,16 @@ "id": "fee", "question": { "en": "Are these bicycle parkings free to use?", - "nl": "Is deze fietsenstalling gratis te gebruiken?" + "nl": "Is deze fietsenstalling gratis te gebruiken?", + "de": "Sind die Fahrradparkplätze kostenlos zu benutzen?" }, "mappings": [ { "if": "fee=yes", "then": { "en": "One has to pay to use this bicycle parking", - "nl": "Betalende fietsparking" + "nl": "Betalende fietsparking", + "de": "Man muss zahlen, um den Fahrradparkplatz zu nutzen" } }, { @@ -653,7 +656,8 @@ "alsoShowIf": "fee=", "then": { "en": "Free to use", - "nl": "Gratis te gebruiken" + "nl": "Gratis te gebruiken", + "de": "Die Nutzung ist kostenlos" } } ] @@ -672,11 +676,13 @@ "id": "operator_phone", "question": { "en": "What is the phone number of the operator of this bicycle parking?", - "nl": "Wat is het telefoonnummer van de operator van deze fietsenstalling?" + "nl": "Wat is het telefoonnummer van de operator van deze fietsenstalling?", + "de": "Wie lautet die Telefonnummer des Betreibers dieses Fahrradparkplatzes?" }, "questionHint": { "en": "One might be able to call this number in case of problems, e.g. to remove unmaintained bicycles", - "nl": "Men kan dit nummer bellen om bv. fietswrakken of defecten te melden" + "nl": "Men kan dit nummer bellen om bv. fietswrakken of defecten te melden", + "de": "Man könnte diese Nummer anrufen, wenn es Probleme gibt, z. B. um nicht gewartete Fahrräder zu entfernen" }, "icon": "./assets/layers/questions/phone.svg", "freeform": { diff --git a/assets/layers/brothel/brothel.json b/assets/layers/brothel/brothel.json index d8abcce37..40c3406bd 100644 --- a/assets/layers/brothel/brothel.json +++ b/assets/layers/brothel/brothel.json @@ -1,10 +1,12 @@ { "id": "brothel", "name": { - "en": "Brothels" + "en": "Brothels", + "de": "Bordelle" }, "description": { - "en": "An establishment specifically dedicated to prostitution. " + "en": "An establishment specifically dedicated to prostitution. ", + "de": "Eine Einrichtung, die speziell der Prostitution gewidmet ist. " }, "source": { "osmTags": "amenity=brothel" @@ -12,7 +14,8 @@ "minzoom": 6, "title": { "render": { - "en": "Brothel" + "en": "Brothel", + "de": "Bordell" }, "mappings": [ { @@ -57,7 +60,8 @@ "presets": [ { "title": { - "en": "a brothel" + "en": "a brothel", + "de": "ein Bordell" }, "tags": [ "amenity=brothel" @@ -75,10 +79,12 @@ "key": "name" }, "question": { - "en": "What is the name of this brothel?" + "en": "What is the name of this brothel?", + "de": "Wie lautet der Name des Bordells?" }, "render": { - "en": "This brothel is named {name}" + "en": "This brothel is named {name}", + "de": "Der Name des Bordells lautet {name}" } }, "opening_hours", diff --git a/assets/layers/cinema/cinema.json b/assets/layers/cinema/cinema.json index fc781267e..144e1e672 100644 --- a/assets/layers/cinema/cinema.json +++ b/assets/layers/cinema/cinema.json @@ -1,10 +1,12 @@ { "id": "cinema", "name": { - "en": "Cinema" + "en": "Cinema", + "de": "Kino" }, "description": { - "en": " A place showing movies (films), generally open to the public for a fee. Commonly referred to as a movie theater in the US" + "en": " A place showing movies (films), generally open to the public for a fee. Commonly referred to as a movie theater in the US", + "de": " Ein Ort, an dem Filme gezeigt werden, die der Öffentlichkeit gegen Gebühr zugänglich sind" }, "source": { "osmTags": "amenity=cinema" @@ -20,7 +22,8 @@ } ], "render": { - "en": "Cinema" + "en": "Cinema", + "de": "Kino" } }, "pointRendering": [ @@ -49,19 +52,22 @@ { "id": "cinema_type", "question": { - "en": "What type of cinema is this?" + "en": "What type of cinema is this?", + "de": "Um welche Art von Kino handelt es sich?" }, "mappings": [ { "if": "cinema=", "then": { - "en": "This is a normal cinema showing movies for all ages" + "en": "This is a normal cinema showing movies for all ages", + "de": "Dies ist ein normales Kino, das Filme für alle Altersgruppen zeigt" } }, { "if": "cinema=erotic", "then": { - "en": "This is an erotic cinema showing adult movies" + "en": "This is an erotic cinema showing adult movies", + "de": "Dies ist ein Sex-Kino, das Erwachsenenfilme zeigt" } } ] diff --git a/assets/layers/clock/clock.json b/assets/layers/clock/clock.json index 09423842b..ee92d7604 100644 --- a/assets/layers/clock/clock.json +++ b/assets/layers/clock/clock.json @@ -15,7 +15,8 @@ "ca": "Capa amb rellotges públics", "fr": "Couche avec les horloges publiques", "cs": "Vrstva s veřejnými hodinami", - "pl": "Warstwa z zegarami publicznymi" + "pl": "Warstwa z zegarami publicznymi", + "es": "Capa con relojes públicos" }, "source": { "osmTags": "amenity=clock" diff --git a/assets/layers/cycleways_and_roads/cycleways_and_roads.json b/assets/layers/cycleways_and_roads/cycleways_and_roads.json index edddd13a4..619c00611 100644 --- a/assets/layers/cycleways_and_roads/cycleways_and_roads.json +++ b/assets/layers/cycleways_and_roads/cycleways_and_roads.json @@ -343,7 +343,7 @@ "then": { "en": "There is a lane next to the road (separated with paint)", "nl": "Er is een fietspad aangrenzend aan de weg (gescheiden met verf)", - "de": "Es gibt eine Spur neben der Straße (getrennt durch eine Straßenmarkierung)", + "de": "Es gibt einen Radfahrstreifen neben der Straße (getrennt durch eine Straßenmarkierung)", "es": "Hay un carril a lado de la carretera (separado con pintura)", "fr": "Il y a une piste cyclable separée de la route", "ca": "Hi ha un carril al costat de la carretera (separat amb pintura)", diff --git a/assets/layers/disaster_response/disaster_response.json b/assets/layers/disaster_response/disaster_response.json index f12bd7ee4..dfecff37f 100644 --- a/assets/layers/disaster_response/disaster_response.json +++ b/assets/layers/disaster_response/disaster_response.json @@ -3,15 +3,18 @@ "title": { "render": { "en": "Disaster response organization", - "it": "Organizzazione per la risposta ai disastri" + "it": "Organizzazione per la risposta ai disastri", + "de": "Katastrophenschutzorganisation" } }, "name": { - "en": "Disaster response organizations" + "en": "Disaster response organizations", + "de": "Katastrophenschutzorganisationen" }, "description": { "en": "This layer contains organizations that have the main objective to help the civil population during and after natural or anthropogenic disasters by working in the affected area.", - "it": "Questo livello contiene organizzazioni che hanno come obiettivo principale quello di aiutare la popolazione civile durante e dopo disastri naturali o antropogenici, lavorando nell'area colpita." + "it": "Questo livello contiene organizzazioni che hanno come obiettivo principale quello di aiutare la popolazione civile durante e dopo disastri naturali o antropogenici, lavorando nell'area colpita.", + "de": "Diese Ebene umfasst Organisationen, deren Hauptziel es ist, der Zivilbevölkerung während und nach Natur- oder anthropogenen Katastrophen zu helfen, indem sie in dem betroffenen Gebiet tätig sind." }, "docs": "https://wiki.openstreetmap.org/wiki/Tag:emergency%3Ddisaster_response", "minzoom": 10, @@ -25,7 +28,8 @@ { "title": { "en": "a disaster response organization", - "it": "un'organizzazione per la risposta ai disastri" + "it": "un'organizzazione per la risposta ai disastri", + "de": "eine Katastrophenschutzorganisation" }, "tags": [ "emergency=disaster_response" @@ -64,11 +68,13 @@ }, "question": { "en": "What is the name of this organization?", - "it": "Qual è il nome di questa organizzazione?" + "it": "Qual è il nome di questa organizzazione?", + "de": "Wie lautet der Name dieser Organisation?" }, "render": { "en": "This organization is named {name}", - "it": "Questa organizzazione si chiama {name}" + "it": "Questa organizzazione si chiama {name}", + "de": "Diese Organisation heißt {name}" } } ] diff --git a/assets/layers/ghost_bike/ghost_bike.json b/assets/layers/ghost_bike/ghost_bike.json index c1ffc2e77..e263a09ca 100644 --- a/assets/layers/ghost_bike/ghost_bike.json +++ b/assets/layers/ghost_bike/ghost_bike.json @@ -300,6 +300,19 @@ "type": "date" }, "id": "ghost_bike-start_date" + }, + { + "id": "wikidata", + "render": { + "special": { + "type": "wikipedia", + "keyToShowWikipediaFor": "subject:wikidata" + }, + "before": { + "en": "

Wikipedia page about the deceased person

" + } + }, + "condition": "subject:wikidata~*" } ], "deletion": { diff --git a/assets/layers/hackerspace/hackerspace.json b/assets/layers/hackerspace/hackerspace.json index 1553fe78c..43236fb2d 100644 --- a/assets/layers/hackerspace/hackerspace.json +++ b/assets/layers/hackerspace/hackerspace.json @@ -433,7 +433,8 @@ "if": "service:device-key=limited", "then": { "en": "There is a limited {negative-name} available at this hackerspace", - "nl": "Er is een beperkte {negative-name} beschikbaar in deze hackerspace" + "nl": "Er is een beperkte {negative-name} beschikbaar in deze hackerspace", + "de": "Es gibt einen limitierten {negative-name} in diesem Hackerspace" }, "hideInAnswer": "{hide_limited}" } diff --git a/assets/layers/icons/icons.json b/assets/layers/icons/icons.json index 6219db9e5..fb302d55c 100644 --- a/assets/layers/icons/icons.json +++ b/assets/layers/icons/icons.json @@ -204,6 +204,35 @@ } ] }, + { + "id": "dogicon", + "labels": [ + "defaults", + "in_favourite" + ], + "mappings": [ + { + "if": "dog=no", + "#": "ignore-image-in-then", + "then": "no_dogs" + }, + { + "if": "dog=leashed", + "#": "ignore-image-in-then", + "then": "dogs are allowed but leashed" + }, + { + "if": { + "or": [ + "dog=yes", + "dog=unleashed" + ] + }, + "#": "ignore-image-in-then", + "then": "dogs are allowed" + } + ] + }, { "id": "sharelink", "labels": [ @@ -263,35 +292,6 @@ ], "condition": "id~(node|way|relation)/[0-9]*" }, - { - "id": "dogicon", - "labels": [ - "defaults", - "in_favourite" - ], - "mappings": [ - { - "if": "dog=no", - "#": "ignore-image-in-then", - "then": "no_dogs" - }, - { - "if": "dog=leashed", - "#": "ignore-image-in-then", - "then": "dogs are allowed but leashed" - }, - { - "if": { - "or": [ - "dog=yes", - "dog=unleashed" - ] - }, - "#": "ignore-image-in-then", - "then": "dogs are allowed" - } - ] - }, { "id": "rating", "icon": { diff --git a/assets/layers/indoors/indoors.json b/assets/layers/indoors/indoors.json index 730c07b40..763093bbf 100644 --- a/assets/layers/indoors/indoors.json +++ b/assets/layers/indoors/indoors.json @@ -14,7 +14,8 @@ "nl": "Een basis voor indoor-navigatie: toont binnenruimtes", "cs": "Základní mapování interiérů: zobrazuje obrysy místností", "ca": "Mapeig interior bàsic: mostra els contorns de les habitacions", - "pl": "Podstawowe mapowanie wnętrz: pokazuje kontury pomieszczeń" + "pl": "Podstawowe mapowanie wnętrz: pokazuje kontury pomieszczeń", + "es": "Cartografía básica en interiores: muestra esquemas de espacio" }, "source": { "osmTags": { diff --git a/assets/layers/item_with_image/camera.svg b/assets/layers/item_with_image/camera.svg new file mode 100644 index 000000000..a29853276 --- /dev/null +++ b/assets/layers/item_with_image/camera.svg @@ -0,0 +1,64 @@ + + + Adwaita Icon Template + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/layers/item_with_image/camera.svg.license b/assets/layers/item_with_image/camera.svg.license new file mode 100644 index 000000000..0d0e69f2e --- /dev/null +++ b/assets/layers/item_with_image/camera.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: https://gitlab.gnome.org/jimmac +SPDX-License-Identifier: GPL3 \ No newline at end of file diff --git a/assets/layers/item_with_image/item_with_image.json b/assets/layers/item_with_image/item_with_image.json new file mode 100644 index 000000000..27c6ac1b3 --- /dev/null +++ b/assets/layers/item_with_image/item_with_image.json @@ -0,0 +1,47 @@ +{ + "id": "item_with_image", + "description": "All items with an image. All alone, not a layer which is relevant for any MapComplete theme, as it is a random collection of items. However, when put into the databank, this allows to quickly fetch (the URL of) pictures nearby a different object, to quickly link this", + "minzoom": 14, + "source": { + "osmTags": { + "or": [ + "image~*", + "image:0~*", + "image:1~*", + "image:2~*", + "image:3~*", + "image:4~*", + "image:5~*" + ] + } + }, + "tagRenderings": [ + "images" + ], + "title": { + "render": { + "en": "POI with image" + }, + "mappings": [{ + "if": "name~*", + "then": {"*": "name"} + }] + }, + "name": { + "en": "Items with at least one image" + }, + "lineRendering": [], + "pointRendering": [ + { + "marker": [ + { + "icon": "./assets/layers/item_with_image/camera.svg" + } + ], + "location": [ + "centroid", + "point" + ] + } + ] +} diff --git a/assets/layers/item_with_image/license_info.json b/assets/layers/item_with_image/license_info.json new file mode 100644 index 000000000..a5dbb5204 --- /dev/null +++ b/assets/layers/item_with_image/license_info.json @@ -0,0 +1,12 @@ +[ + { + "path": "camera.svg", + "license": "GPL3", + "authors": [ + "https://gitlab.gnome.org/jimmac" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:GNOME_Photos_icon_2018.svg" + ] + } +] \ No newline at end of file diff --git a/assets/layers/love_hotel/love_hotel.json b/assets/layers/love_hotel/love_hotel.json index 1d8df35b8..6d0418285 100644 --- a/assets/layers/love_hotel/love_hotel.json +++ b/assets/layers/love_hotel/love_hotel.json @@ -1,10 +1,12 @@ { "id": "love_hotel", "name": { - "en": "Love hotels" + "en": "Love hotels", + "de": "Love Hotels" }, "description": { - "en": "A love hotel is a type of short-stay hotel found around the world operated primarily for the purpose of allowing guests privacy for sexual activities" + "en": "A love hotel is a type of short-stay hotel found around the world operated primarily for the purpose of allowing guests privacy for sexual activities", + "de": "Ein Love Hotel ist eine Art Kurzzeithotel, das in erster Linie zu dem Zweck betrieben wird, den Gästen Privatsphäre für sexuelle Aktivitäten zu bieten" }, "source": { "osmTags": "amenity=love_hotel" @@ -12,7 +14,8 @@ "minzoom": 10, "title": { "render": { - "en": "Love Hotel {name}" + "en": "Love Hotel {name}", + "de": "Love Hotel {name}" } }, "pointRendering": [ @@ -49,10 +52,12 @@ "presets": [ { "title": { - "en": "a love hotel" + "en": "a love hotel", + "de": "ein Love Hotel" }, "description": { - "en": "A love hotel is a type of short-stay hotel found around the world operated primarily for the purpose of allowing guests privacy for sexual activities." + "en": "A love hotel is a type of short-stay hotel found around the world operated primarily for the purpose of allowing guests privacy for sexual activities.", + "de": "Ein Love Hotel ist eine Art Kurzzeithotel, das in erster Linie zu dem Zweck betrieben wird, den Gästen Privatsphäre für sexuelle Aktivitäten zu bieten" }, "tags": [ "amenity=love_hotel" @@ -65,10 +70,12 @@ { "id": "name", "question": { - "en": "What is the name of this love hotel?" + "en": "What is the name of this love hotel?", + "de": "Wie lautet der Name des Love Hotels?" }, "render": { - "en": "This love hotel is named {name}" + "en": "This love hotel is named {name}", + "de": "Der Name des Love Hotels lautet {name}" }, "freeform": { "key": "name" diff --git a/assets/layers/maproulette/maproulette.json b/assets/layers/maproulette/maproulette.json index a536c73e7..7e5718700 100644 --- a/assets/layers/maproulette/maproulette.json +++ b/assets/layers/maproulette/maproulette.json @@ -14,7 +14,8 @@ "nl": "Laag met alle taken uit MapRoulette", "ca": "Capa que mostra totes les tasques de MapRoulette", "pl": "Warstwa pokazująca wszystkie zadania w MapRoulette", - "cs": "Vrstva zobrazující všechny úlohy v MapRoulette" + "cs": "Vrstva zobrazující všechny úlohy v MapRoulette", + "es": "Capa mostrando todas las tareas en MapRoulette" }, "source": { "geoJson": "https://maproulette.org/api/v2/tasks/box/{x_min}/{y_min}/{x_max}/{y_max}", diff --git a/assets/layers/maxspeed/maxspeed.json b/assets/layers/maxspeed/maxspeed.json index 378a0cd39..f9664272f 100644 --- a/assets/layers/maxspeed/maxspeed.json +++ b/assets/layers/maxspeed/maxspeed.json @@ -17,7 +17,8 @@ "cs": "Zobrazuje povolenou rychlost pro každou silnici", "ca": "Mostra la velocitat permesa per a cada carretera", "fr": "Affiche les vitesses autorisées sur toutes les routes", - "pl": "Pokazuje dozwoloną prędkość na każdej drodze" + "pl": "Pokazuje dozwoloną prędkość na każdej drodze", + "es": "Muestra la velocidad permitida para cada carretera" }, "source": { "osmTags": { diff --git a/assets/layers/postboxes/postboxes.json b/assets/layers/postboxes/postboxes.json index ea67f8518..82f2f9cae 100644 --- a/assets/layers/postboxes/postboxes.json +++ b/assets/layers/postboxes/postboxes.json @@ -21,7 +21,7 @@ "id": "Layer yang memperlihatkan kotak pos.", "hu": "Postaládákat megjelenítő réteg.", "nl": "Deze laag toont brievenbussen.", - "es": "La capa que mostrando buzones de correo.", + "es": "La capa muestra buzones de correo.", "fr": "Le calque montrant les boîtes à lettres.", "ca": "La capa que mostra bústies de correus.", "cs": "Vrstva zobrazující poštovní schránky.", diff --git a/assets/layers/rainbow_crossings/rainbow_crossings.json b/assets/layers/rainbow_crossings/rainbow_crossings.json index ba7d92e27..9c95b7c99 100644 --- a/assets/layers/rainbow_crossings/rainbow_crossings.json +++ b/assets/layers/rainbow_crossings/rainbow_crossings.json @@ -13,7 +13,8 @@ "fr": "Une couche affichant les passages piétons avec des peintures arc-en-ciel", "ca": "Una capa que mostra els passos de vianants pintats amb de l'arc de Sant Martí", "cs": "Vrstva zobrazující přechody pro chodce s duhovými malbami", - "pl": "Warstwa przedstawiająca przejścia dla pieszych z tęczowym malowaniem" + "pl": "Warstwa przedstawiająca przejścia dla pieszych z tęczowym malowaniem", + "es": "Una capa que muestra cruces peatonales con pinturas arco iris" }, "source": { "osmTags": { diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json index e0bb68ecd..aaa1a7b9b 100644 --- a/assets/layers/shops/shops.json +++ b/assets/layers/shops/shops.json @@ -218,7 +218,7 @@ "cs": "Přidat nový obchod", "de": "Sie können später angeben, was das Geschäft verkauft.", "eo": "Enmeti novan butikon", - "es": "Añadir una nueva tienda", + "es": "Puedes especificar más adelante lo que vende esta tienda.", "fr": "Ajouter un nouveau magasin", "ja": "新しい店を追加する", "nl": "Voeg een nieuwe winkel toe", diff --git a/assets/layers/ski_piste/ski_piste.json b/assets/layers/ski_piste/ski_piste.json index b2063eab1..1f2d5ee30 100644 --- a/assets/layers/ski_piste/ski_piste.json +++ b/assets/layers/ski_piste/ski_piste.json @@ -16,7 +16,8 @@ "images", { "question": { - "en": "What is the difficulty of this piste?" + "en": "What is the difficulty of this piste?", + "de": "Was ist der Schwierigkeitsgrad der Piste?" }, "id": "piste_difficulty", "condition": "piste:type!=connection", @@ -24,37 +25,43 @@ { "if": "piste:difficulty=novice", "then": { - "en": "Novice (green)" + "en": "Novice (green)", + "de": "Anfänger (grün)" } }, { "if": "piste:difficulty=easy", "then": { - "en": "Easy (blue)" + "en": "Easy (blue)", + "de": "Einfach (blau)" } }, { "if": "piste:difficulty=intermediate", "then": { - "en": "Intermediate (red)" + "en": "Intermediate (red)", + "de": "Mittel (rot)" } }, { "if": "piste:difficulty=advanced", "then": { - "en": "Advanced (black)" + "en": "Advanced (black)", + "de": "Fortgeschritten (schwarz)" } }, { "if": "piste:difficulty=expert", "then": { - "en": "Expert (orange/double black)" + "en": "Expert (orange/double black)", + "de": "Experte (orange/doppel schwarz)" } }, { "if": "piste:difficulty=freeride", "then": { - "en": "Freeride" + "en": "Freeride", + "de": "Freeride" } } ] @@ -62,7 +69,8 @@ { "id": "length", "render": { - "en": "This part of the ski piste is {_length:km} kilometer long" + "en": "This part of the ski piste is {_length:km} kilometer long", + "de": "Dieser Teil der Skipiste hat eine Länge von {_length:km} km" } } ], @@ -102,10 +110,12 @@ ], "id": "ski_piste", "name": { - "en": "Ski and snowboard pistes" + "en": "Ski and snowboard pistes", + "de": "Ski- und Snowboardpisten" }, "description": { - "en": "Ski and snowboard pistes" + "en": "Ski and snowboard pistes", + "de": "Ski- und Snowboardpisten" }, "source": { "osmTags": { @@ -122,7 +132,8 @@ }, "title": { "render": { - "en": "Ski piste {name}" + "en": "Ski piste {name}", + "de": "Skipiste {name}" } } } diff --git a/assets/layers/sports_centre/sports_centre.json b/assets/layers/sports_centre/sports_centre.json index ff1cbb60c..421564a61 100644 --- a/assets/layers/sports_centre/sports_centre.json +++ b/assets/layers/sports_centre/sports_centre.json @@ -21,7 +21,8 @@ "en": "Sports centre", "de": "Sportzentrum", "ca": "Centre esportiu", - "cs": "Sportovní centrum" + "cs": "Sportovní centrum", + "id": "Pusat olahraga" }, "mappings": [ { @@ -65,7 +66,8 @@ "en": "a sports centre", "de": "ein Sportzentrum", "ca": "un centre esportiu", - "cs": "sportovní centra" + "cs": "sportovní centra", + "id": "pusat olahraga" }, "tags": [ "leisure=sports_centre" diff --git a/assets/layers/stairs/stairs.json b/assets/layers/stairs/stairs.json index c51fbf6a5..4e81a02bb 100644 --- a/assets/layers/stairs/stairs.json +++ b/assets/layers/stairs/stairs.json @@ -5,14 +5,16 @@ "nl": "Trappen", "de": "Treppen", "ca": "Escales", - "cs": "Schody" + "cs": "Schody", + "id": "Tangga" }, "description": { "en": "Layer showing stairs and escalators", "de": "Ebene mit Treppen und Rolltreppen", "nl": "Laag met trappen en roltrappen", "ca": "Capa que mostra escales i escales mecàniques", - "cs": "Vrstva zobrazující schody a eskalátory" + "cs": "Vrstva zobrazující schody a eskalátory", + "id": "Lapisan ini menunjukkan tangga dan eskalator" }, "source": { "osmTags": "highway=steps" @@ -93,7 +95,8 @@ "nl": "Dit is een roltrap", "de": "Das ist eine Rolltreppe", "ca": "Açò és una escala mecànica", - "cs": "Jedná se o eskalátor" + "cs": "Jedná se o eskalátor", + "id": "Ini adalah eskalator" } }, { @@ -103,7 +106,8 @@ "nl": "Dit is geen roltrap", "de": "Das ist keine Rolltreppe", "ca": "Açò no és una escala mecànica", - "cs": "Nejedná se o eskalátor" + "cs": "Nejedná se o eskalátor", + "id": "Ini bukan eskalator" } }, { @@ -113,7 +117,8 @@ "nl": "Dit is geen roltrap", "de": "Das ist keine Rolltreppe", "ca": "Això no és una escala mecànica", - "cs": "Nejedná se o eskalátor" + "cs": "Nejedná se o eskalátor", + "id": "Ini bukan eskalator" }, "hideInAnswer": true } @@ -126,7 +131,8 @@ "nl": "Heeft deze trap een leuning?", "de": "Hat die Treppe einen Handlauf?", "ca": "Aquestes escales tenen un passamà?", - "cs": "Má toto schodiště zábradlí?" + "cs": "Má toto schodiště zábradlí?", + "id": "Apakah tangga ini memiliki pegangan?" }, "mappings": [ { @@ -136,7 +142,8 @@ "nl": "Deze trap heeft een leuning", "de": "Die Treppe hat einen Handlauf", "ca": "Aquestes escales tenen barana", - "cs": "Tyto schody mají zábradlí" + "cs": "Tyto schody mají zábradlí", + "id": "Tangga ini memiliki pegangan tangan" } }, { @@ -146,7 +153,8 @@ "nl": "Deze trap heeft geen leuning", "de": "Die Treppe hat keinen Handlauf", "ca": "Aquestes escales no tenen un passamà", - "cs": "Tyto schody nemají zábradlí" + "cs": "Tyto schody nemají zábradlí", + "id": "Tangga ini tidak memiliki pegangan tangan" } } ], @@ -295,7 +303,8 @@ "render": { "en": "These stairs have an incline of {incline}", "ca": "Aquestes escales tenen una inclinació de {incline}", - "de": "Die Treppe hat eine Steigung von {incline}" + "de": "Die Treppe hat eine Steigung von {incline}", + "id": "Tangga ini memiliki kemiringan sebesar {incline}" }, "freeform": { "key": "incline", @@ -304,7 +313,8 @@ "question": { "en": "What is the incline of these stairs?", "ca": "Quina és la inclinació d'aquestes escales?", - "de": "Welche Steigung hat die Treppe?" + "de": "Welche Steigung hat die Treppe?", + "id": "Berapa kemiringan tangga ini?" }, "mappings": [ { @@ -312,7 +322,8 @@ "then": { "en": "The upward direction is {direction_absolute()}", "ca": "La direcció ascendent és {direction_absolute()}", - "de": "Die Aufwärtsrichtung ist {direction_absolute()}" + "de": "Die Aufwärtsrichtung ist {direction_absolute()}", + "id": "Arah ke atas adalah {direction_absolute()}" }, "hideInAnswer": true }, @@ -321,7 +332,8 @@ "then": { "en": "The downward direction is {direction_absolute()}", "ca": "La direcció descendent és {direction_absolute()}", - "de": "Die Abwärtsrichtung ist {direction_absolute()}" + "de": "Die Abwärtsrichtung ist {direction_absolute()}", + "id": "Arah ke bawah adalah {direction_absolute()}" }, "hideInAnswer": true } diff --git a/assets/layers/stripclub/stripclub.json b/assets/layers/stripclub/stripclub.json index ca99c1100..0b92c6c9f 100644 --- a/assets/layers/stripclub/stripclub.json +++ b/assets/layers/stripclub/stripclub.json @@ -1,10 +1,12 @@ { "id": "stripclub", "name": { - "en": "Stripclubs" + "en": "Stripclubs", + "de": "Stripclubs" }, "description": { - "en": "A venue where erotic dance, striptease, or lap dances are performed commercially. " + "en": "A venue where erotic dance, striptease, or lap dances are performed commercially. ", + "de": "Ein Ort, an dem erotische Tanz-, Striptease- oder Lapdances kommerziell durchgeführt werden. " }, "source": { "osmTags": "amenity=stripclub", @@ -13,7 +15,8 @@ "minzoom": 6, "title": { "render": { - "en": "Stripclub" + "en": "Stripclub", + "de": "Stripclub" }, "mappings": [ { @@ -56,7 +59,8 @@ "presets": [ { "title": { - "en": "a stripclub" + "en": "a stripclub", + "de": "ein Stripclub" }, "tags": [ "amenity=stripclub" @@ -74,10 +78,12 @@ "key": "name" }, "question": { - "en": "What is the name of this stripclub?" + "en": "What is the name of this stripclub?", + "de": "Wie lautet der Name des Stripclubs?" }, "render": { - "en": "This stripclub is named {name}" + "en": "This stripclub is named {name}", + "de": "Der Name des Stripclubs lautet {name}" } }, "opening_hours", diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json index 4e528c901..99346baac 100644 --- a/assets/layers/toilet/toilet.json +++ b/assets/layers/toilet/toilet.json @@ -548,6 +548,115 @@ } ] }, + { + "condition": "toilets:position!=urinal", + "id": "gender_segregated", + "question": { + "en": "Are these toilets gender-segregated?", + "nl": "Zijn deze toiletten gescheiden op basis van geslacht?" + }, + "questionHint": { + "en": "Are there separate stalls or separate areas for men and women and are they signposted as such?", + "nl": "Is er een aparte ruimte voor mannen en vrouwen en zijn deze ruimtes ook expliciet aangegeven?" + }, + "mappings": [ + { + "if": "gender_segregated=yes", + "then": { + "en": "There is a separate, signposted area for men and women", + "nl": "Er zijn aparte ruimtes of toiletten voor mannen en vrouwen" + } + }, + { + "if": "gender_segregated=no", + "then": { + "en": "There is no separate, signposted area for men and women", + "nl": "Mannen en vrouwen gebruiken dezelfde ruimtes en toiletten" + } + } + ] + }, + { + "id": "menstrual_products", + "question": { + "en": "Are free, menstrual products distributed here?", + "nl": "Zijn er gratis menstruatieproducten beschikbaar?" + }, + "questionHint": { + "en": "This is only about menstrual products that are free of charge. If e.g. a vending machine is available which charges for menstrual products, ignore it for this question.", + "nl": "Dit gaat enkel over menstruatieproducten die gratis geschikbaar zijn. Indien er bv. een verkoopautomaat met menstruatieproducten is, negeer deze dan" + }, + "mappings": [ + { + "if": "toilets:menstrual_products=yes", + "then": { + "en": "Free menstrual products are available to all visitors of these toilets", + "nl": "Er zijn gratis menstruatieprocten beschikbaar voor alle bezoekers van deze toiletten" + } + }, + { + "if": "toilets:menstrual_products=limited", + "then": { + "en": "Free menstrual products are available to some visitors of these toilets", + "nl": "De gratis menstruatieproducten zijn enkel beschikbaar in een deel van de toiletten" + }, + "hideInAnswer": "gender_segregated=yes" + }, + { + "if": "toilets:menstrual_products=no", + "alsoShowIf": "toilets:menstrual_products=", + "then": { + "en": "No free menstrual products are available here", + "nl": "Er zijn geen gratis menstruatieproducten beschikbaar" + } + } + ] + }, + { + "id": "menstrual_products_location", + "question": { + "en": "Where are the free menstrual products located?", + "nl": "Waar bevinden de gratis menstruatieproducten zich?" + }, + "condition": { + "or": [ + "toilets:menstrual_products=limited", + "toilets:menstrual_products:location~*" + ] + }, + "render": { + "en": "The menstrual products are located in {toilets:menstrual_products:location}", + "nl": "De menstruatieproducten bevinden zich in {toilets:menstrual_products:location}" + }, + "freeform": { + "key": "toilets:menstrual_products:location", + "inline": true + }, + "mappings": [ + { + "then": { + "en": "The free, menstrual products are located in the toilet for women", + "nl": "De gratis menstruatieproducten bevinden zich in het vrouwentoilet" + }, + "if": "toilets:menstrual_products:location=female_toilet", + "alsoShowIf": "toilets:menstrual_products:location=" + }, + { + "then": { + "en": "The free, menstrual products are located in the toilet for men", + "nl": "De gratis menstruatieproducten bevinden zich in het mannentoilet" + }, + "if": "toilets:menstrual_products:location=male_toilet" + }, + { + "if": "toilets:menstrual_products:location=wheelchair_toilet", + "then": { + "en": "The free, menstrual products are located in the toilet for wheelchair users", + "nl": "De gratis menstruatieproducten bevinden zich in het rolstoeltoegankelijke toilet" + } + } + ] + }, { "id": "toilets-changing-table", "labels": [ @@ -677,7 +786,7 @@ "fr": "La table à langer est dans un espace dédié. ", "nl": "Er bevindt zich een luiertafel in een daartoe voorziene kamer ", "it": "Il fasciatoio è in una stanza dedicata. ", - "es": "El cambiador está en una habitación dedicada ", + "es": "El cambiador está en una habitación dedicada", "da": "Vuggestuen står i et særligt rum. ", "ca": "El canviador està en una habitació dedicada. ", "cs": "Přebalovací pult je ve vyhrazené místnosti. " diff --git a/assets/layers/toilet_at_amenity/toilet_at_amenity.json b/assets/layers/toilet_at_amenity/toilet_at_amenity.json index cd4172bfc..e02da56a3 100644 --- a/assets/layers/toilet_at_amenity/toilet_at_amenity.json +++ b/assets/layers/toilet_at_amenity/toilet_at_amenity.json @@ -409,6 +409,8 @@ "toilet.toilet-changing_table:location", "toilet.toilet-handwashing", "toilet.toilet-has-paper", + "toilet.menstrual_products", + "toilet.menstrual_products_location", { "builtin": "description", "override": { diff --git a/assets/layers/usersettings/usersettings.json b/assets/layers/usersettings/usersettings.json index 3e6673971..bd032dc05 100644 --- a/assets/layers/usersettings/usersettings.json +++ b/assets/layers/usersettings/usersettings.json @@ -509,6 +509,21 @@ } } }, + { + "id": "mangrove-key-import", + "render": { + "special": { + "type": "import_mangrove_key", + "text": { + "en": "Import a mangrove private key from backup", + "nl": "Herstel een Mangrove Private sleutel van backup" + } + }, + "after": { + "en": "Uploading a private key erases your current private key. If you made reviews with it, download your current private key first" + } + } + }, { "id": "translations-title", "label": [ diff --git a/assets/png/twoway.png.license b/assets/png/twoway.png.license index 2452bee1e..ed0288300 100644 --- a/assets/png/twoway.png.license +++ b/assets/png/twoway.png.license @@ -1,2 +1,2 @@ SPDX-FileCopyrightText: Pieter Vander Vennet -SPDX-License-Identifier: CC0 \ No newline at end of file +SPDX-License-Identifier: CC0-1.0 \ No newline at end of file diff --git a/assets/png/twoway.svg.license b/assets/png/twoway.svg.license index 2452bee1e..ed0288300 100644 --- a/assets/png/twoway.svg.license +++ b/assets/png/twoway.svg.license @@ -1,2 +1,2 @@ SPDX-FileCopyrightText: Pieter Vander Vennet -SPDX-License-Identifier: CC0 \ No newline at end of file +SPDX-License-Identifier: CC0-1.0 \ No newline at end of file diff --git a/assets/themes/disaster_response/disaster_response.json b/assets/themes/disaster_response/disaster_response.json index 58e787aa8..d7ba9d0b0 100644 --- a/assets/themes/disaster_response/disaster_response.json +++ b/assets/themes/disaster_response/disaster_response.json @@ -1,7 +1,9 @@ { "description": { "en": "This map contains elements meant for disaster preparedness and response.", - "it": "Questa mappa contiene elementi pensati per la preparazione e risposta ai disastri." + "it": "Questa mappa contiene elementi pensati per la preparazione e risposta ai disastri.", + "de": "Diese Karte enthält Elemente, die der Katastrophenvorsorge und dem Katastrophenschutz dienen.", + "es": "Este mapa contiene elementos destinados a la preparación y respuesta ante desastres." }, "docs": "https://wiki.openstreetmap.org/wiki/Emergency_facilities_and_amenities", "icon": "./assets/themes/disaster_response/CivilDefence.svg", @@ -9,7 +11,9 @@ "socialImage": "./assets/themes/disaster_response/social.svg", "title": { "en": "Disaster response", - "it": "Risposta ai disastri" + "it": "Risposta ai disastri", + "de": "Katastrophenschutz", + "es": "Respuesta ante desastres" }, "layers": [ "hospital", diff --git a/assets/themes/hackerspaces/hackerspaces.json b/assets/themes/hackerspaces/hackerspaces.json index 48ed9347b..24d72b104 100644 --- a/assets/themes/hackerspaces/hackerspaces.json +++ b/assets/themes/hackerspaces/hackerspaces.json @@ -13,7 +13,7 @@ "ca": "Espai per a hackers", "pa_PK": "ہیکر دے تھاں", "cs": "Hackerspaces", - "es": "Hackerspaces and makerspaces", + "es": "Hackerspaces y makerspaces", "eu": "Hackerspace", "pl": "Hackerspace'y" }, diff --git a/assets/themes/items_with_image/items_with_image.json b/assets/themes/items_with_image/items_with_image.json new file mode 100644 index 000000000..17ca1a320 --- /dev/null +++ b/assets/themes/items_with_image/items_with_image.json @@ -0,0 +1,14 @@ +{ + "id": "items_with_image", + "hideFromOverview": true, + "title": { + "en": "All items with images" + }, + "description": { + "en": "A map showing all items on OSM which have an image. This theme is a very bad fit for MapComplete as someone is not able to directly add a picture. However, this theme is mostly here to include this all into the database, which'll allow this to quickly fetch images nearby for other features" + }, + "icon": "./assets/layers/item_with_image/camera.svg", + "layers": [ + "item_with_image" + ] +} diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index b5286c2f9..9d03f8832 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -1,13 +1,19 @@ { "id": "mapcomplete-changes", "title": { - "en": "Changes made with MapComplete" + "en": "Changes made with MapComplete", + "de": "Änderungen mit MapComplete", + "es": "Cambios hechos con MapComplete" }, "shortDescription": { - "en": "Shows changes made by MapComplete" + "en": "Shows changes made by MapComplete", + "de": "Änderungen von MapComplete anzeigen", + "es": "Muestra los cambios hechos por MapComplete" }, "description": { - "en": "This maps shows all the changes made with MapComplete" + "en": "This maps shows all the changes made with MapComplete", + "de": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen", + "es": "Este mapa muestra todos los cambios hechos con MapComplete" }, "icon": "./assets/svg/logo.svg", "hideFromOverview": true, @@ -20,7 +26,9 @@ { "id": "mapcomplete-changes", "name": { - "en": "Changeset centers" + "en": "Changeset centers", + "de": "Zentrum der Änderungssätze", + "es": "Centro del conjunto de cambios" }, "minzoom": 0, "source": { @@ -31,41 +39,55 @@ }, "title": { "render": { - "en": "Changeset for {theme}" + "en": "Changeset for {theme}", + "de": "Änderungssatz für {theme}", + "es": "Conjunto de cambios para {theme}" } }, "description": { - "en": "Shows all MapComplete changes" + "en": "Shows all MapComplete changes", + "de": "Alle MapComplete-Änderungen anzeigen", + "es": "Muestra todos los cambios de MapComplete" }, "tagRenderings": [ { "id": "show_changeset_id", "render": { - "en": "Changeset {id}" + "en": "Changeset {id}", + "de": "Änderungssatz {id}", + "es": "Conjunto de cambios {id}" } }, { "id": "contributor", "question": { - "en": "What contributor did make this change?" + "en": "What contributor did make this change?", + "de": "Wer hat diese Änderung vorgenommen?", + "es": "¿Quién realizó este cambio?" }, "freeform": { "key": "user" }, "render": { - "en": "Change made by {user}" + "en": "Change made by {user}", + "de": "Änderung von {user}", + "es": "Cambio hecho por {user}" } }, { "id": "theme-id", "question": { - "en": "What theme was used to make this change?" + "en": "What theme was used to make this change?", + "de": "Welches Thema wurde für die Änderung verwendet?", + "es": "¿Qué tema se utilizó para realizar este cambio?" }, "freeform": { "key": "theme" }, "render": { - "en": "Change with theme {theme}" + "en": "Change with theme {theme}", + "de": "Geändert mit Thema {theme}", + "es": "Cambio con el tema {theme}" } }, { @@ -74,19 +96,27 @@ "key": "locale" }, "question": { - "en": "What locale (language) was this change made in?" + "en": "What locale (language) was this change made in?", + "de": "In welcher Benutzersprache wurde die Änderung vorgenommen?", + "es": "¿En qué configuración regional (idioma) se realizó este cambio?" }, "render": { - "en": "User locale is {locale}" + "en": "User locale is {locale}", + "de": "Benutzersprache {locale}", + "es": "La configuración regional del usuario es {locale}" } }, { "id": "host", "render": { - "en": "Change with with {host}" + "en": "Change with with {host}", + "de": "Änderung über {host}", + "es": "Cambio con {host}" }, "question": { - "en": "What host (website) was this change made with?" + "en": "What host (website) was this change made with?", + "de": "Über welchen Host (Webseite) wurde diese Änderung vorgenommen?", + "es": "¿Con qué host (página web) se realizó este cambio?" }, "freeform": { "key": "host" @@ -107,10 +137,14 @@ { "id": "version", "question": { - "en": "What version of MapComplete was used to make this change?" + "en": "What version of MapComplete was used to make this change?", + "de": "Mit welcher MapComplete Version wurde die Änderung vorgenommen?", + "es": "¿Qué versión de MapComplete se usó para realizar este cambio?" }, "render": { - "en": "Made with {editor}" + "en": "Made with {editor}", + "de": "Erstellt mit {editor}", + "es": "Hecho con {editor}" }, "freeform": { "key": "editor" @@ -284,6 +318,10 @@ "if": "theme=indoors", "then": "./assets/layers/entrance/entrance.svg" }, + { + "if": "theme=items_with_image", + "then": "./assets/layers/item_with_image/camera.svg" + }, { "if": "theme=kerbs_and_crossings", "then": "./assets/layers/kerbs/KerbIcon.svg" @@ -476,7 +514,9 @@ } ], "question": { - "en": "Themename contains {search}" + "en": "Themename contains {search}", + "de": "Themename enthält {search}", + "es": "El nombre del tema contiene {search}" } } ] @@ -492,7 +532,9 @@ } ], "question": { - "en": "Themename does not contain {search}" + "en": "Themename does not contain {search}", + "de": "Der Name enthält nicht {search}", + "es": "El nombre del tema no contiene {search}" } } ] @@ -508,7 +550,9 @@ } ], "question": { - "en": "Made by contributor {search}" + "en": "Made by contributor {search}", + "de": "Erstellt vom Mitwirkenden {search}", + "es": "Hecho por el colaborador {search}" } } ] @@ -524,7 +568,9 @@ } ], "question": { - "en": "Not made by contributor {search}" + "en": "Not made by contributor {search}", + "de": "Nicht erstellt von Mitwirkendem {search}", + "es": "No hecho por el colaborador {search}" } } ] @@ -541,7 +587,9 @@ } ], "question": { - "en": "Made before {search}" + "en": "Made before {search}", + "de": "Erstellt vor {search}", + "es": "Hecho antes de {search}" } } ] @@ -558,7 +606,9 @@ } ], "question": { - "en": "Made after {search}" + "en": "Made after {search}", + "de": "Erstellt nach {search}", + "es": "Hecho después de {search}" } } ] @@ -574,7 +624,9 @@ } ], "question": { - "en": "User language (iso-code) {search}" + "en": "User language (iso-code) {search}", + "de": "Benutzersprache (ISO-Code) {search}", + "es": "Idioma del usuario (código ISO) {search}" } } ] @@ -590,7 +642,9 @@ } ], "question": { - "en": "Made with host {search}" + "en": "Made with host {search}", + "de": "Erstellt mit host {search}", + "es": "Hecho con el host {search}" } } ] @@ -601,7 +655,9 @@ { "osmTags": "add-image>0", "question": { - "en": "Changeset added at least one image" + "en": "Changeset added at least one image", + "de": "Im Änderungssatz wurde mindestens ein Bild hinzugefügt", + "es": "El conjunto de cambios ha añadido al menos una imagen" } } ] @@ -612,7 +668,9 @@ { "osmTags": "theme!=grb", "question": { - "en": "Exclude GRB theme" + "en": "Exclude GRB theme", + "de": "GRB-Thema ausschließen", + "es": "Excluir el tema del GRB" } } ] @@ -623,7 +681,9 @@ { "osmTags": "theme!=etymology", "question": { - "en": "Exclude etymology theme" + "en": "Exclude etymology theme", + "de": "Etymologie-Thema ausschließen", + "es": "Excluir el tema de la etimología" } } ] @@ -638,7 +698,9 @@ { "id": "link_to_more", "render": { - "en": "More statistics can be found here" + "en": "More statistics can be found here", + "de": "Weitere Statistiken gibt es hier", + "es": "Puede encontrar más estadísticas aquí" } }, { diff --git a/assets/themes/openlovemap/openlovemap.json b/assets/themes/openlovemap/openlovemap.json index d7a1a42df..135a77be4 100644 --- a/assets/themes/openlovemap/openlovemap.json +++ b/assets/themes/openlovemap/openlovemap.json @@ -1,10 +1,14 @@ { "id": "openlovemap", "title": { - "en": "Open Love Map" + "en": "Open Love Map", + "de": "Open Love Map", + "es": "Open Love Map" }, "description": { - "en": "

Love in the palm of your hand

Open Love Map lists various adult entries, such as brothels, erotic stores and stripclubs." + "en": "

Love in the palm of your hand

Open Love Map lists various adult entries, such as brothels, erotic stores and stripclubs.", + "de": "

Liebe in der Hand

Open Love Map listet verschiedene Einträge für Erwachsene, wie Bordelle, Erotikshops und Stripclubs.", + "es": "

Amor en la palma de tu mano

Open Love Map lista varias entradas para adultos, como burdeles, tiendas eróticas y clubs de striptease." }, "icon": "./assets/layers/stripclub/stripclub.svg", "hideFromOverview": true, @@ -23,12 +27,16 @@ "open_now" ], "name": { - "en": "Erotic shops" + "en": "Erotic shops", + "de": "Erotikgeschäfte", + "es": "Tiendas eróticas" }, "=presets": [ { "title": { - "en": "an erotic shop" + "en": "an erotic shop", + "de": "ein Erotikgeschäft", + "es": "una tienda erótica" }, "tags": [ "shop=erotic" @@ -100,7 +108,9 @@ "=presets": [ { "title": { - "en": "a condom vending machine" + "en": "a condom vending machine", + "de": "ein Kondomautomat", + "es": "una máquina de venta de condones" }, "tags": [ "amenity=vending_machine", @@ -176,7 +186,9 @@ "=presets": [ { "title": { - "en": "an erotic cinema" + "en": "an erotic cinema", + "de": "Ein Sex-Kino", + "es": "un cine erótico" }, "tags": [ "amenity=cinema", @@ -203,7 +215,9 @@ { "id": "hotel-type", "question": { - "en": "What type of hotel is this?" + "en": "What type of hotel is this?", + "de": "Welche Art von Hotel ist das?", + "es": "¿Qué tipo de hotel es este?" }, "mappings": [ { @@ -232,10 +246,14 @@ { "id": "has_video_booth", "question": { - "en": "Does {title()} have a private video booth?" + "en": "Does {title()} have a private video booth?", + "de": "Hat {title()} eine private Videokabine?", + "es": "¿Este {title()} tiene una cabina de video privada?" }, "questionHint": { - "en": "This is for use by a single person." + "en": "This is for use by a single person.", + "de": "Dies ist für die Nutzung durch eine einzelne Person vorgesehen.", + "es": "Esto es para uso de una sola persona." }, "mappings": [ { diff --git a/assets/themes/ski/ski.json b/assets/themes/ski/ski.json index 1209804a7..6ce871f33 100644 --- a/assets/themes/ski/ski.json +++ b/assets/themes/ski/ski.json @@ -1,10 +1,14 @@ { "id": "ski", "title": { - "en": "Ski pistes and aerialways" + "en": "Ski pistes and aerialways", + "de": "Skipisten und Seilbahnen", + "es": "Pistas de esquí y vías aéreas" }, "description": { - "en": "Everything you need to go skiing" + "en": "Everything you need to go skiing", + "de": "Alles, was Sie zum Skifahren brauchen", + "es": "Todo lo que necesitas para esquiar" }, "icon": "./assets/layers/aerialway/chair_lift.svg", "enableTerrain": true, diff --git a/assets/themes/velopark/velopark.json b/assets/themes/velopark/velopark.json index bd94f04f3..2d43fdcbb 100644 --- a/assets/themes/velopark/velopark.json +++ b/assets/themes/velopark/velopark.json @@ -11,6 +11,9 @@ "en": "

Velopark.be is a website collecting data about bicycle parkings in a semi-crowdsourced way. However, only 'authorized' instances are allowed to make changes there, in practice the operator of the bicycle parking such as SNCB, de Lijn or the municipality. They have now decided to synchronize their dataset with OpenStreetMap, and this MapComplete-instance is set up to help link and import their data into OpenStreetMap.

How to use: That's it! Thanks for helping to import this!", "nl": "

Velopark.be is een website die data verzamelt over fietsenstallingen in een semi-crowdsource manier. Hierbij kunnen enkel geautorizeerde gebruikers data bijdragen, in de praktijk de uitbaters van de fietsenstallingen zoals de bevoegde gemeentebesturen, de NMBS of de Lijn. Velopark.be heeft nu beslist om hun data met OpenStreetMap te synchronizeren. Deze website is de tool om van Velopark.be naar OpenStreetMap te gaan en hun data te importeren.

Hoe te gebruiken? Dat is het! Bedankt om mee te helpen!" }, + "descriptionTail": { + "*": "

Maintainer tools

" + }, "hideFromOverview": true, "icon": "./assets/themes/velopark/velopark.svg", "mustHaveLanguage": [ @@ -30,6 +33,7 @@ "startLon": 3.71025, "startZoom": 18, "defaultBackgroundId": "photo", + "enableNoteImports": false, "layers": [ { "id": "velopark_maproulette", @@ -94,6 +98,14 @@ } } }, + { + "id": "login", + "render": { + "special": { + "type": "login_button" + } + } + }, { "id": "closest_parkings", "render": { @@ -137,7 +149,7 @@ "type": "maproulette_set_status", "message": { "en": "Mark this item as linked manually. Use this if you did apply the reference via copy-paste or via another editor", - "nl": "Markeer als gelinkt. Gebruik deze optie indien je de ID plakte in een fietsenstalling of via een andere editor toevoegdemap" + "nl": "Markeer als gelinkt. Gebruik deze optie indien je de ID plakte in een fietsenstalling of via een andere editor toevoegd" }, "status": 1 } @@ -150,10 +162,14 @@ "type": "maproulette_set_status", "message": { "en": "Mark this item as incorrect or too hard to solve (duplicate, does not exist anymore, contradictory data, not placeable from aerial imagery)", - "nl": "Markeer dit object als incorrect of te moeillijk (duplicaat, incorrect of tegenstrijdige data, niet eenduidig te plaatsen adhv luchtfoto's, ...)" + "nl": "Markeer dit object als incorrecte velopark data of te moeillijk (duplicaat, incorrect of tegenstrijdige data, niet eenduidig te plaatsen adhv luchtfoto's, ...)" }, "image": "invalid", - "status": 6 + "status": 6, + "ask_feedback": { + "en": "Is this point incorrect or is it difficult to solve? Please provide some feedback below", + "nl": "Is dit punt foutief of te moeilijk? Gelieve wat feedback te geven" + } } } }, @@ -248,7 +264,7 @@ { "marker": [ { - "color": "#0088ff" + "color": "#2cf200" } ] } diff --git a/assets/themes/walkingnodes/walkingnodes.json b/assets/themes/walkingnodes/walkingnodes.json index e20ffb727..cd1f73bf8 100644 --- a/assets/themes/walkingnodes/walkingnodes.json +++ b/assets/themes/walkingnodes/walkingnodes.json @@ -3,13 +3,15 @@ "title": { "en": "Walking Node Networks", "nl": "Wandelknooppuntnetwerken", - "de": "Netzwerke von Wanderknoten" + "de": "Netzwerke von Wanderknoten", + "es": "Redes de nodos de senderismo" }, "description": { "en": "This map shows walking node networks and allows you to add new nodes easily", "nl": "Deze kaart toont wandelknooppunten en laat je toe om eenvoudigweg nieuwe knooppunten toe te voegen", "de": "Diese Karte zeigt Wandernetzwerke und ermöglicht es Ihnen, einfach neue Knoten hinzuzufügen", - "cs": "Tato mapa zobrazuje sítě uzlových bodů a umožňuje snadné přidávání nových uzlů" + "cs": "Tato mapa zobrazuje sítě uzlových bodů a umožňuje snadné přidávání nových uzlů", + "es": "Este mapa muestra las redes de nodos de senderismo y le permite añadir nuevos nodos fácilmente" }, "icon": "./assets/themes/walkingnodes/logo.svg", "startZoom": 11, @@ -168,7 +170,8 @@ "render": { "en": "Walking node", "nl": "Wandelknooppunt", - "de": "Wanderknoten" + "de": "Wanderknoten", + "es": "Nodo de senderismo" }, "mappings": [ { @@ -176,7 +179,8 @@ "then": { "en": "Walking node {rwn_ref}", "nl": "Wandelknooppunt {rwn_ref}", - "de": "Wanderknoten {rwn_ref}" + "de": "Wanderknoten {rwn_ref}", + "es": "Nodo de senderismo {rwn_ref}" } }, { @@ -184,7 +188,8 @@ "then": { "en": "Proposed walking node {proposed:rwn_ref}", "nl": "Voorgesteld wandelknooppunt {proposed:rwn_ref}", - "de": "Vorgeschlagener Wanderknoten {proposed:rwn_ref}" + "de": "Vorgeschlagener Wanderknoten {proposed:rwn_ref}", + "es": "Nodo de senderismo propuesto {proposed:rwn_ref}" } } ] @@ -196,7 +201,8 @@ "en": "What is the reference number of this walking node?", "nl": "Wat is het referentienummer van dit wandelknooppunt?", "de": "Was ist die Referenznummer dieses Wanderknotens?", - "cs": "Jaké je referenční číslo tohoto pěšího uzlu?" + "cs": "Jaké je referenční číslo tohoto pěšího uzlu?", + "es": "¿Cuál es el número de referencia de este nodo de senderismo?" }, "freeform": { "key": "rwn_ref", @@ -205,13 +211,15 @@ "en": "e.g. 1", "nl": "bijv. 1", "de": "z.B. 1", - "cs": "e.g. 1" + "cs": "e.g. 1", + "es": "Por ejemplo, 1" } }, "render": { "en": "This walking node has reference number {rwn_ref}", "nl": "Dit wandelknooppunt heeft referentienummer {rwn_ref}", - "de": "Dieser Wanderknoten hat die Referenznummer {rwn_ref}" + "de": "Dieser Wanderknoten hat die Referenznummer {rwn_ref}", + "es": "Este nodo de senderismo tiene la referencia número {rwn_ref}" }, "condition": "rwn_ref~*" }, @@ -221,12 +229,14 @@ "question": { "en": "When was this walking node last surveyed?", "nl": "Wanneer is dit wandelknooppunt het laatst gesurveyed?", - "de": "Wann wurde dieser Wanderknoten zuletzt überprüft?" + "de": "Wann wurde dieser Wanderknoten zuletzt überprüft?", + "es": "¿Cuándo fue la última revisión de este nodo de senderismo?" }, "render": { "en": "This walking node was last surveyed on {survey:date}", "nl": "Dit wandelknooppunt werd het laatst gesurveyed op {survey:date}", - "de": "Dieser Wanderknoten wurde zuletzt am {survey:date} überprüft" + "de": "Dieser Wanderknoten wurde zuletzt am {survey:date} überprüft", + "es": "Este nodo de senderismo fue revisado por última vez en {survey:date}" } } }, @@ -235,12 +245,14 @@ "en": "How many other walking nodes does this node link to?", "nl": "Met hoeveel andere wandelknooppunten heeft dit knooppunt een verbinding?", "de": "Mit wie vielen anderen Wanderknoten ist dieser Knoten verbunden?", - "cs": "S kolika dalšími pěšími uzly je tento uzel propojen?" + "cs": "S kolika dalšími pěšími uzly je tento uzel propojen?", + "es": "¿A cuántos otros nodos de senderismo conecta este nodo?" }, "render": { "en": "This node links to {expected_rwn_route_relations} other walking nodes.", "nl": "Dit knooppunt verbindt met {expected_rwn_route_relations} andere wandelknooppunten.", - "de": "Dieser Knoten ist mit {expected_rwn_route_relations} anderen Wanderknoten verbunden." + "de": "Dieser Knoten ist mit {expected_rwn_route_relations} anderen Wanderknoten verbunden.", + "es": "Este nodo se vincula a {expected_rwn_route_relations} otros nodos de senderismo." }, "freeform": { "key": "expected_rwn_route_relations", @@ -249,7 +261,8 @@ "en": "e.g. 3", "nl": "bijv. 3", "de": "z.B. 3", - "cs": "e.g. 3" + "cs": "e.g. 3", + "es": "Por ejemplo, 3" } }, "id": "node-expected_rwn_route_relations" @@ -265,7 +278,8 @@ "title": { "en": "a walking node", "nl": "een wandelknooppunt", - "de": "ein Wanderknoten" + "de": "ein Wanderknoten", + "es": "un nodo de senderismo" }, "snapToLayer": [ "cycleways_and_roads" @@ -298,12 +312,14 @@ ], "name": { "en": "Hiking guideposts", - "de": "Wanderwegweiser" + "de": "Wanderwegweiser", + "es": "Postes guías de senderismo" }, "title": { "render": { "en": "Hiking guidepost", - "de": "Wanderwegweiser" + "de": "Wanderwegweiser", + "es": "Poste guía de senderismo" } } }, @@ -334,7 +350,8 @@ ], "title": { "en": "a route marker for a node to node link", - "de": "Eine Routenmarkierung für eine Verbindung von Knoten zu Knoten" + "de": "Eine Routenmarkierung für eine Verbindung von Knoten zu Knoten", + "es": "un marcador de ruta para un enlace de nodo a nodo" }, "=exampleImages": [ "./assets/layers/route_marker/walking_route_marker.jpg" diff --git a/langs/de.json b/langs/de.json index 53c2325db..eb655bc19 100644 --- a/langs/de.json +++ b/langs/de.json @@ -65,7 +65,7 @@ "intro": "Du hast {length} Orte als Favorit markiert.", "introPrivacy": "Diese Liste ist nur für dich sichtbar", "loginToSeeList": "Melde dich an, um die Liste der Orte zu sehen, die du als Favoriten markiert hast", - "tab": "Deine Favoriten", + "tab": "Deine Favoriten und Bewertungen", "title": "Ausgewählte Orte" }, "flyer": { @@ -113,7 +113,7 @@ "404": "Diese Seite existiert nicht", "about": "OpenStreetMap für ein bestimmtes Thema einfach bearbeiten und hinzufügen", "aboutMapComplete": { - "intro": "Nutze MapComplete, um Daten zu einem bestimmten Thema auf OpenStreetMap einzutragen. Beantworte Fragen, und in wenigen Minuten sind deine Beiträge überall verfügbar. In den meisten Themen kannst Du Bilder hinzufügen oder sogar eine Bewertung hinterlassen. Die Themen-Ersteller definieren Objekte, Fragen und Begriffe für das jeweilige Thema." + "intro": "Nutze MapComplete, um Daten zu einem bestimmten Thema auf OpenStreetMap einzutragen. Beantworte Fragen, und in wenigen Minuten sind deine Beiträge überall verfügbar. In den meisten Themen kannst Du Bilder hinzufügen oder sogar eine Bewertung hinterlassen. Die Themen-Verwalter definieren Objekte, Fragen und Begriffe für das jeweilige Thema." }, "add": { "addNew": "{category} hinzufügen", @@ -145,7 +145,7 @@ "title": "Neues Objekt hinzufügen", "warnVisibleForEveryone": "Ihre Ergänzung wird für alle sichtbar sein", "wrongType": "Dieses Objekt ist weder ein Punkt noch ein Weg und kann nicht importiert werden", - "zoomInFurther": "Ausschnitt vergrößern, um ein Objekt hinzuzufügen.", + "zoomInFurther": "Ausschnitt vergrößern, um ein Objekt hinzuzufügen", "zoomInMore": "Ansicht vergrößern, um dieses Element zu importieren" }, "apply_button": { @@ -671,13 +671,17 @@ "reviewPlaceholder": "Beschreibe deine Erfahrung…", "reviewing_as": "Als {nickname} bewerten", "reviewing_as_anonymous": "Anonym bewerten", + "reviews_bug": "Mehr Bewertungen erwartet? Einige Bewertungen werden aufgrund eines Fehlers nicht angezeigt.", "save": "Bewertung speichern", "saved": "Bewertung gespeichert. Danke fürs Teilen!", "saving_review": "Speichern…", "title": "{count} Rezensionen", "title_singular": "Eine Rezension", + "too_long": "Maximal {max} Zeichen sind erlaubt. Ihre Bewertung hat {amount} Zeichen.", "tos": "Mit der Bewertung stimmen Sie den AGB und den Datenschutzrichtlinien von Mangrove.reviews zu", - "write_a_comment": "Bewertung schreiben…" + "write_a_comment": "Bewertung schreiben…", + "your_reviews": "Deine vorherigen Bewertungen", + "your_reviews_empty": "Wir konnten keine deiner vorherigen Bewertungen finden" }, "split": { "cancel": "Abbrechen", diff --git a/langs/en.json b/langs/en.json index b2a5760c3..02f158baa 100644 --- a/langs/en.json +++ b/langs/en.json @@ -27,6 +27,7 @@ "selectReason": "Please, select why this feature should be deleted", "softDelete": "This feature will be updated and hidden from this application. {reason}" }, + "isChanged": "This feature has been changed and no longer matches this layer", "isDeleted": "This feature is deleted", "isntAPoint": "Only nodes can be deleted, the selected feature is a way, area or relation.", "loading": "Inspecting properties to check if this feature can be deleted.", @@ -65,7 +66,7 @@ "intro": "You marked {length} locations as a favourite location.", "introPrivacy": "This list is only visible to you", "loginToSeeList": "Login to see the list of locations you marked as favourite", - "tab": "Your favourites", + "tab": "Your favourites and reviews", "title": "Your favourite locations" }, "flyer": { @@ -145,7 +146,7 @@ "title": "Add a new feature", "warnVisibleForEveryone": "Your addition will be visible for everyone", "wrongType": "This feature is not a node or a way and can not be imported", - "zoomInFurther": "Zoom in further to add a feature.", + "zoomInFurther": "Zoom in further to add a feature", "zoomInMore": "Zoom in more to import this feature" }, "apply_button": { @@ -222,6 +223,10 @@ "example": "Example", "examples": "Examples", "fewChangesBefore": "Please, answer a few questions of existing features before adding a new feature.", + "filterPanel": { + "disableAll": "Disable all", + "enableAll": "Enable all" + }, "geopermissionDenied": "Using the geolocation was denied", "getStartedLogin": "Log in with OpenStreetMap to get started", "getStartedNewAccount": " or create a new account", @@ -671,6 +676,7 @@ "reviewPlaceholder": "Describe your experience…", "reviewing_as": "Reviewing as {nickname}", "reviewing_as_anonymous": "Reviewing as anonymous", + "reviews_bug": "Expected more reviews? Some reviews are not displayed due to a bug.", "save": "Save review", "saved": "Review saved. Thanks for sharing!", "saving_review": "Saving…", @@ -678,7 +684,9 @@ "title_singular": "One review", "too_long": "At most {max} characters are allowed. Your review has {amount} characters.", "tos": "If you create a review, you agree to the TOS and privacy policy of Mangrove.reviews", - "write_a_comment": "Leave a review…" + "write_a_comment": "Leave a review…", + "your_reviews": "Your previous reviews", + "your_reviews_empty": "We couldn't find any of your previous reviews" }, "split": { "cancel": "Cancel", diff --git a/langs/es.json b/langs/es.json index cc9c2882f..da0488303 100644 --- a/langs/es.json +++ b/langs/es.json @@ -50,6 +50,24 @@ "panelIntro": "

Tu tema personal

Activa tus capas favoritas de todas los temas oficiales", "reload": "Recargar datos" }, + "favouritePoi": { + "button": { + "isFavourite": "Esta ubicación está marcada como favorita y aparecerá en todos los mapas temáticos visitados de MapComplete.", + "isMarkedShort": "Marcada como ubicación favorita", + "isNotMarkedShort": "No marcada como favorito", + "markAsFavouriteTitle": "Marcar esta ubicación como favorita", + "markDescription": "Añadir esta ubicación a una lista personal de tus favoritos", + "unmark": "Quitar de la lista personal de favoritos", + "unmarkNotDeleted": "Este punto no será borrado y todavía será visible en el mapa apropiado para ti y otros" + }, + "downloadGeojson": "Descarga tus favoritos como geojson", + "downloadGpx": "Descarga tus favoritos como GPX", + "intro": "Has marcado {length} ubicaciones como favoritas.", + "introPrivacy": "Esta lista sólo es visible para ti", + "loginToSeeList": "Inicia sesión para ver la lista de ubicaciones marcadas como favoritas", + "tab": "Tus favoritos y opiniones", + "title": "Tus ubicaciones favoritas" + }, "flyer": { "aerial": "Este mapa utiliza un fondo diferente, concretamente imagines aéreas por Agentschap Informatie Vlaanderen", "callToAction": "Pruebalo en mapcomplete.org", @@ -66,7 +84,8 @@ "attributes": "Muestra atributos de una manera amistosa", "edit": "Información incorrecta o anticuada? El botón de edición está justo ahí.", "question": "Si un atributo aún no se conoce, MapComplete muestra una pregunta", - "see_images": "Muestra imágenes de colaboradores anteriores, Wikipedia, Mapillary, …" + "see_images": "Muestra imágenes de colaboradores anteriores, Wikipedia, Mapillary, …", + "wikipedia": "Se muestran artículos relacionados con Wikipedia" }, "frontParagraph": "MapComplete es una aplicación web fácil de usar para recopilar geodata en OpenStreetMap, lo que permite recopilar y gestionar datos relevantes de forma abierta, con recursos de multitud y reutilizable.\n\nSe pueden añadir nuevas categorías y atributos a petición.", "lines_too": "También se muestran líneas y polígonos. Los atributos y imágenes también se pueden añadir y actualizar en esos objetos.", @@ -84,14 +103,24 @@ "title": "Qué es MapComplete?" }, "onwheels": "Mapas interiores para usuarios de silla de ruedas también están disponibles.", - "osm": "OpenStreetMapa es un mapa en línea que puede ser editado y reutilizado por cualquiera para cualquier propósito mientras se da la atribución y los datos se mantienen abiertos.\n\nEs la base de datos geoespacial más grande del mundo y es reutilizada por miles de aplicaciones y sitios web." + "osm": "OpenStreetMapa es un mapa en línea que puede ser editado y reutilizado por cualquiera para cualquier propósito mientras se da la atribución y los datos se mantienen abiertos.\n\nEs la base de datos geoespacial más grande del mundo y es reutilizada por miles de aplicaciones y sitios web.", + "tagline": "Recolectar geodata con OpenStreetMap", + "title": "mapcomplete.org", + "toerisme_vlaanderen": "Para un proyecto conjunto con Visit Flanders, se creó «Fijar tu punto». Más de 160 colaboradores añadieron varios miles de bancos y mesas de picnic y localizaron 100 estaciones de carga para bicicletas.", + "whatIsOsm": "¿Qué es OpenStreetMap?" }, "general": { + "404": "Esta página no existe", "about": "Edita OpenStreetMap fácilmente y añade puntos sobre un tema concreto", + "aboutMapComplete": { + "intro": "Usa MapComplete para añadir información de OpenStreetMap en un único tema. Responde a las preguntas y en pocos minutos tus contribuciones estarán disponibles en todas partes. En la mayoría de los temas pueden añadirse imágenes o incluso dejar una reseña. El mantenedor del tema define elementos, preguntas e idiomas para él." + }, "add": { "addNew": "Añadir {category}", "backToSelect": "Selecciones una categoría distinta", "confirmButton": "Añade una {category}
Tu adición es visible para todos
", + "confirmLocation": "Confirmar esta ubicación", + "confirmTitle": "¿Añadir un {title}?", "disableFilters": "Desactivar todos los filtros", "disableFiltersExplanation": "Algunas características pueden estar ocultas por un filtro", "hasBeenImported": "Este elemento ya ha sido importado", @@ -110,10 +139,10 @@ "pleaseLogin": "Por favor inicia sesión para añadir un nuevo elemento", "presetInfo": "El nuevo POI tendrá {tags}", "stillLoading": "Los datos se siguen cargando. Espera un poco antes de añadir una nueva función.", - "title": "¿Quieres añadir un elemento?", + "title": "Añadir un elemento nuevo", "warnVisibleForEveryone": "Su adición será visible para todos", "wrongType": "Este elemento no es un nodo o una vía y no puede ser importado", - "zoomInFurther": "Acércate más para añadir un elemento.", + "zoomInFurther": "Acércate más para añadir un elemento", "zoomInMore": "Aumente el zoom para importar este elemento" }, "apply_button": { @@ -147,7 +176,7 @@ "backgroundMap": "Seleccione una capa de fondo", "cancel": "Cancelar", "confirm": "Confirmar", - "customThemeIntro": "

Temas personalizados

Estos son los temas generados por los usuarios que han sido visitados previamente.", + "customThemeIntro": "Estos son los temas generados por los usuarios que han sido visitados previamente.", "download": { "downloadAsPdf": "Descargar un PDF del mapa actual", "downloadAsPdfHelper": "Ideal para imprimir el mapa actual", @@ -233,7 +262,7 @@ "generatedWith": "Generado como mapcomplete.org/{layoutid}", "versionInfo": "v{version} - generado el {date}" }, - "pickLanguage": "Escoge idioma: ", + "pickLanguage": "Elige el idioma", "questions": { "emailIs": "La dirección de correo de {category} es {email}", "emailOf": "¿Qué dirección de correu tiene {category}?", @@ -422,7 +451,7 @@ "affiliated_reviewer_warning": "(Revisión afiliada)", "name_required": "Se requiere un nombre para mostrar y crear comentarios", "no_reviews_yet": "Aún no hay reseñas. ¡Sé el primero en escribir una y ayuda a los datos abiertos y a los negocios!", - "saved": "Reseña guardada. ¡Gracias por compartir!", + "saved": "Reseña guardada. ¡Gracias por compartir!", "saving_review": "Guardando…", "title": "{count} comentarios", "title_singular": "Un comentario", diff --git a/langs/hu.json b/langs/hu.json index 625a81515..f25e5f8bb 100644 --- a/langs/hu.json +++ b/langs/hu.json @@ -128,7 +128,6 @@ "title": "Rétegek kijelölése", "zoomInToSeeThisLayer": "Nagyíts a réteg megtekintéséhez" }, - "levelSelection": {}, "loading": "Betöltés…", "loadingTheme": "{theme} betöltése…", "loginFailed": "Az OpenStreetMap-be való bejelentkezés nem sikerült", @@ -224,7 +223,6 @@ "wednesday": "Szerda" }, "welcomeBack": "Be vagy jelentkezve, üdv ismét!", - "welcomeExplanation": {}, "wikipedia": { "createNewWikidata": "Új Wikidata-elem létrehozása", "doSearch": "Keress fent az eredmények megtekintéséhez", @@ -232,7 +230,6 @@ "loading": "Wikipédia betöltése…", "noResults": "Nincs találat erre: {search}", "noWikipediaPage": "Ennek a Wikidata-elemnek még nincs megfelelő Wikipédia-oldala.", - "previewbox": {}, "searchWikidata": "Keresés a Wikidatán", "wikipediaboxTitle": "Wikipédia" } @@ -251,8 +248,6 @@ "uploadingMultiple": "{count} kép feltöltése folyamatban…", "uploadingPicture": "Kép feltöltése folyamatban…" }, - "importInspector": {}, - "importLayer": {}, "index": { "#": "Ezek a szövegek akkor jelennek meg a témagombok felett, ha nincs betöltve téma", "featuredThemeTitle": "Kiemelt ezen a héten", @@ -289,7 +284,6 @@ "multi_apply": { "autoApply": "A(z) {attr_names} tulajdonságok módosításával ezek a tulajdonságok automatikusan módosulnak {count} további objektumon is" }, - "notes": {}, "privacy": { "geodata": "Amikor a MapComplete lekéri a földrajzi helyed meghatározását, az – a korábban meglátogatott helyekkel együtt – az eszközödön marad. Helyadatokat soha nem küldünk el automatikusan máshová – kivéve, ha bizonyos funkciók egyértelműen másként rendelkeznek.", "geodataTitle": "Földrajzi helyed", @@ -318,24 +312,5 @@ "loginToSplit": "Egy út szétvágásához be kell jelentkezni", "split": "Szétvágás", "splitTitle": "Válaszd ki a térképen, hogy az út hol legyen elvágva" - }, - "translations": {}, - "validation": { - "color": {}, - "date": {}, - "direction": {}, - "distance": {}, - "email": {}, - "float": {}, - "int": {}, - "nat": {}, - "opening_hours": {}, - "pfloat": {}, - "phone": {}, - "pnat": {}, - "string": {}, - "text": {}, - "url": {}, - "wikidata": {} } } diff --git a/langs/it.json b/langs/it.json index 365672221..9fd491d52 100644 --- a/langs/it.json +++ b/langs/it.json @@ -50,6 +50,24 @@ "panelIntro": "

Il tuo tema personale

Attiva i tuoi livelli preferiti fra tutti i temi ufficiali", "reload": "Ricarica i dati" }, + "favouritePoi": { + "button": { + "isFavourite": "Questa posizione è attualmente contrassegnata come preferita e verrà mostrata in tutte le mappe tematiche di MapComplete che visiterai.", + "isMarkedShort": "Contrassegnato come posizione preferita", + "isNotMarkedShort": "Non contrassegnato come preferito", + "markAsFavouriteTitle": "Contrassegna questa posizione come posizione preferita", + "markDescription": "Aggiungi questa posizione all'elenco personale dei preferiti", + "unmark": "Rimuovi dall'elenco dei tuoi preferiti", + "unmarkNotDeleted": "Questo punto non verrà cancellato e sarà visibile nella mappa corrispondente per te per gli altri" + }, + "downloadGeojson": "Scarica i preferiti come geojson", + "downloadGpx": "Scarica i preferiti come GPX", + "intro": "Hai contrassegnato {length} posizione come posizione preferita.", + "introPrivacy": "Questo elenco è visibile solo a te", + "loginToSeeList": "Autenticati per vedere l'elenco delle posizioni che hai contrassegnato come preferite", + "tab": "Le recensioni e I tuoi preferiti", + "title": "I tuoi luoghi preferiti" + }, "flyer": { "aerial": "Questa mappa usa uno sfondo differente, cioè immagini aeree di Agentschap Informatie Vlaanderen", "callToAction": "Provalo su mapcomplete.org", @@ -70,13 +88,34 @@ "wikipedia": "Vengono mostrati gli articoli collegati di Wikipedia" }, "frontParagraph": "MapComplete è un’applicazione web facile da usare che permette di raccogliere dati geografici su OpenStreetMap, permettendo così di ottenere e gestire dati rilevanti in una maniera open, crowdsource e riutilizzabile.\n\nA richiesta possono essere aggiunti nuove categorie e attributi.", - "lines_too": "Vengono anche mostrati linee e poligoni. Anche su questi oggetti si possono aggiungere e aggiornare gli attributi e le immagini." + "lines_too": "Vengono anche mostrati linee e poligoni. Anche su questi oggetti si possono aggiungere e aggiornare gli attributi e le immagini.", + "mapcomplete": { + "customize": "MapComplete può essere adattato alle tue esigenze, con nuovi livelli di mappa, nuove funzionalità o stili con colori e font della tua organizzazione.\nAbbiamo anche esperienza con l'avvio di campagne di crowdsource di geodata.\nContatta pietervdvn@posteo.net per un preventivo.", + "intro": "MapComplete è un sito web che ha {mapCount} mappe interattive. Ogni singola mappa permette di aggiungere o aggiornare le informazioni. Ha numerose caratteristiche:", + "li0": "Mostra dove sono i POI", + "li1": "Aggiungi nuovi punti e aggiorna le informazioni in quelli già esistenti", + "li2": "Aggiungi facilmente le informazioni di contatto e gli orari di apertura", + "li3": "Può essere inserita in altri siti web come iFrame", + "li4": "Integrato nell'ecosistema di OpenStreetMap, che ha numerosi strumenti disponibili", + "li5": "Funzione per importare i dataset esistenti", + "li6": "Molte funzionalità avanzate, come il rilevamento degli alberi e metodi avanzati di input", + "li7": "Software libero copyleft (rilasciato con licenza GPL) e ad uso gratuito", + "title": "Che cos'è MapComplete?" + }, + "onwheels": "Sono disponibili mappe di interno per utenti con sedia a rotelle.", + "osm": "OpenStreetMap è una mappa online che può essere modificata e riutilizzata da ognuno per qualsiasi scopo con la corretta attribuzione e con i dati mantenuti aperti.\n\nÈ il più grande database geospaziale nel mondo ed è utilizzato da migliaia di applicazioni e di siti web.", + "tagline": "Raccogli i geodati con OpenStreetMap", + "title": "mapcomplete.org", + "whatIsOsm": "Che cos'è OpenStreetMap?" }, "general": { + "404": "Questa pagina non esiste", "about": "Modifica e aggiungi con semplicità OpenStreetMap per un certo tema", "add": { "addNew": "Aggiungi {category} qua", + "backToSelect": "Seleziona una categoria differente", "confirmButton": "Aggiungi una {category} qua.
La tua aggiunta è visibile a chiunque
", + "confirmTitle": "Aggiungi un {title}?", "disableFilters": "Disabilita tutti i filtri", "disableFiltersExplanation": "Alcuni oggetti potrebbero essere nascosti da un filtro", "hasBeenImported": "Questo elemento è stato già importato", @@ -125,10 +164,14 @@ "openIssueTracker": "Segnala un problema", "openMapillary": "Apri Mapillary qui", "openOsmcha": "Vedi le ultime modifiche effettuate con {theme}", + "seeOnMapillary": "Guarda questa immagine su Mapillary", "themeBy": "Tema manutenuto da {author}", + "title": "Copyright e attribuzione", "translatedBy": "MapComplete è stata tradotta da {contributors} e da {hiddenCount} contributori aggiuntivi" }, "back": "Indietro", + "backToIndex": "Ritorna alla panoramica con tutte le mappe tematiche", + "backToMap": "Torna alla mappa", "backgroundMap": "Mappa di sfondo", "cancel": "Annulla", "confirm": "Conferma", @@ -136,6 +179,7 @@ "download": { "downloadAsPdf": "Scarica un PDF della mappa corrente", "downloadAsPdfHelper": "Ideale per stampare la mappa corrente", + "downloadAsPng": "Scarca come immagine", "downloadAsSvg": "Scarica una SVG dalla mappa corrente", "downloadAsSvgHelper": "Compatible con Inkscape o Adobe Illustrator; necessita di ulteriori processamenti ", "downloadCSV": "Scarica i dati visibili come CSV", @@ -153,6 +197,7 @@ "title": "Scarica i dati visibili", "uploadGpx": "Carica la tua traccia su OpenStreetMap" }, + "eraseValue": "Cancella questo valore", "error": "Qualcosa è andato storto", "example": "Esempio", "examples": "Esempi", @@ -163,6 +208,10 @@ "histogram": { "error_loading": "Impossibile caricare l'istogramma" }, + "labels": { + "background": "Cambia lo sfondo", + "menu": "Menu" + }, "layerSelection": { "title": "Seleziona livelli", "zoomInToSeeThisLayer": "Ingrandisci la mappa per vedere questo livello" @@ -174,6 +223,9 @@ "loginToStart": "Accedi per rispondere alla domanda", "loginWithOpenStreetMap": "Accedi con OpenStreetMap", "logout": "Esci", + "menu": { + "aboutMapComplete": "Info su MapComplete" + }, "morescreen": { "createYourOwnTheme": "Crea il tuo tema di MapComplete personalizzato da zero", "hiddenExplanation": "Questi temi sono solo accessibili se si dispone del collegamento. Hai scoperto {hidden_discovered} su {total_hidden} temi nascosti.", @@ -206,7 +258,15 @@ "ph_closed": "chiuso", "ph_not_known": " ", "ph_open": "aperto", - "ph_open_as_usual": "aperto come di consueto" + "ph_open_as_usual": "aperto, come al solito", + "ranges": "da {starttime} a {endtime}", + "rangescombined": "{range0} e {range1}", + "saturday": "Di sabato {ranges}", + "sunday": "Di domenica {ranges}", + "thursday": "Di giovedì {ranges}", + "tuesday": "Di martedì {ranges}", + "unknown": "L'orario di apertura è sconosciuto", + "wednesday": "Di mercoledì {ranges}" }, "osmLinkTooltip": "Visita questo oggetto su OpenStreetMap per la cronologia o altre opzioni di modifica", "pdf": { @@ -215,8 +275,13 @@ "generatedWith": "Generato con mapcomplete.org/{layoutid}", "versionInfo": "v{version} - generato il {date}" }, - "pickLanguage": "Scegli una lingua: ", + "pickLanguage": "Scegli una lingua:", "poweredByOsm": "Basato su OpenStreetMap", + "questionBox": { + "answeredMultiple": "Hai risposto a {answered} domande", + "answeredOne": "Hai risposto a una domanda", + "done": "Non ci sono più domande! Grazie!" + }, "questions": { "emailIs": "L’indirizzo email di questa {category} è {email}", "emailOf": "Qual è l’indirizzo email di {category}?", @@ -234,6 +299,7 @@ "error": "Qualcosa è andato storto…", "nothing": "Non è stato trovato nulla…", "search": "Cerca un luogo", + "searchShort": "Cerca…", "searching": "Ricerca…" }, "sharescreen": { @@ -242,10 +308,39 @@ "fsUserbadge": "Abilita il pulsante di accesso", "fsWelcomeMessage": "Mostra il messaggio di benvenuto e le schede associate", "intro": "

Condividi questa mappa

Condividi questa mappa copiando il collegamento qua sotto e inviandolo ad amici o parenti:", - "thanksForSharing": "Grazie per la condivisione!" + "thanksForSharing": "Grazie per la condivisione!", + "title": "Condividi questa mappa" }, "skip": "Salta questa domanda", "testing": "Prova (le modifiche non verranno salvate)", + "uploadGpx": { + "confirm": "Conferma caricamento", + "meta": { + "title": "Titolo e descrizione" + }, + "modes": { + "private": { + "name": "Anonimo" + } + } + }, + "uploadingChanges": "Caricamento modifiche…", + "visualFeedback": { + "directionsAbsolute": { + "E": "est", + "N": "nord", + "NE": "nord est", + "NW": "nord ovest", + "S": "sud", + "SE": "sud est", + "SW": "sud ovest", + "W": "ovest" + }, + "directionsRelative": { + "left": "sinistra", + "right": "destra" + } + }, "weekdays": { "abbreviations": { "friday": "Ven", @@ -264,12 +359,13 @@ "tuesday": "Martedì", "wednesday": "Mercoledì" }, - "welcomeBack": "Hai effettuato l’accesso. Bentornato/a!", + "welcomeBack": "Bentornato/a!", "welcomeExplanation": { "addNew": "Tocca la mappa per aggiungere un nuovo punto di interesse.", "general": "Su questa mappa puoi vedere, modificare ed aggiungere punti di interesse. Esplora per trovare il punto di interesse, toccane uno per vedere o modificarne le informazioni. Tutti i dati sono raccolti e salvati su OpenStreetMap, e potranno essere riutilizzati liberamente." }, "wikipedia": { + "addEntry": "Aggiungi un'altra pagina di Wikipedia", "createNewWikidata": "Crea un nuovo elemento Wikidata", "doSearch": "Cerca qui sopra per vedere i risultati", "failed": "Caricamento della voce Wikipedia fallito", @@ -281,6 +377,7 @@ "born": "Nascita: {value}", "died": "Morte: {value}" }, + "readMore": "Leggi il resto dell'articolo", "searchToShort": "La tua ricerca è troppo breve, inserisci un testo più completo", "searchWikidata": "Cerca su Wikidata", "wikipediaboxTitle": "Wikipedia" diff --git a/langs/layers/ca.json b/langs/layers/ca.json index c715e0989..45913b423 100644 --- a/langs/layers/ca.json +++ b/langs/layers/ca.json @@ -8422,6 +8422,23 @@ "render": "Arbre" } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "S'accepten monedes de 50 cèntims" + }, + "1": { + "then": "S'accepten monedes de 1 euro" + }, + "2": { + "then": "S'accepten monedes de 2 euros" + } + } + } + } + }, "unit": { "units": { "0": { diff --git a/langs/layers/cs.json b/langs/layers/cs.json index 78ec8281c..5699ef26a 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -8711,6 +8711,23 @@ "render": "Strom" } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "Jsou přijímány mince v hodnotě 50 centů" + }, + "1": { + "then": "Jsou přijímány mince v hodnotě 1 eura" + }, + "2": { + "then": "Jsou přijímány mince v hodnotě 2 euro" + } + } + } + } + }, "unit": { "units": { "0": { diff --git a/langs/layers/de.json b/langs/layers/de.json index 332375090..e6447452e 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -35,16 +35,6 @@ "1": { "title": "eine freistehende Posterbox" }, - "10": { - "description": "Verwendet für Werbeschilder, Leuchtreklamen, Logos und institutionelle Eingangsschilder", - "title": "ein Schild" - }, - "11": { - "title": "eine Skulptur" - }, - "12": { - "title": "eine Wandmalerei" - }, "2": { "title": "eine wandmontierte Posterbox" }, @@ -71,6 +61,16 @@ }, "9": { "title": "ein Totem" + }, + "10": { + "description": "Verwendet für Werbeschilder, Leuchtreklamen, Logos und institutionelle Eingangsschilder", + "title": "ein Schild" + }, + "11": { + "title": "eine Skulptur" + }, + "12": { + "title": "eine Wandmalerei" } }, "tagRenderings": { @@ -165,9 +165,6 @@ "1": { "then": "Dies ist ein Brett" }, - "10": { - "then": "Dies ist eine Wandmalerei" - }, "2": { "then": "Dies ist eine Litfaßsäule" }, @@ -191,6 +188,9 @@ }, "9": { "then": "Dies ist ein Totem" + }, + "10": { + "then": "Dies ist eine Wandmalerei" } }, "question": "Welche Art von Werbung ist das?", @@ -205,9 +205,6 @@ "1": { "then": "Brett" }, - "10": { - "then": "Wandmalerei" - }, "2": { "then": "Posterbox" }, @@ -231,6 +228,9 @@ }, "9": { "then": "Totem" + }, + "10": { + "then": "Wandmalerei" } } } @@ -266,9 +266,6 @@ "1": { "then": "Es handelt sich um eine Seilbahn, bei der die Kabinen in ständigen Kreisen fahren" }, - "10": { - "then": "Eine Seilrutsche. (Eine Touristenattraktion, bei der abenteuerlustige Menschen mit hoher Geschwindigkeit hinunterfahren) " - }, "2": { "then": "Ein offener Sessellift mit Sitzgelegenheiten und Zugang zur Außenluft." }, @@ -292,6 +289,9 @@ }, "9": { "then": "Ein magic carpet (ein Förderband auf dem Boden)" + }, + "10": { + "then": "Eine Seilrutsche. (Eine Touristenattraktion, bei der abenteuerlustige Menschen mit hoher Geschwindigkeit hinunterfahren) " } }, "question": "Um welchen Seilbahntyp handelt es sich?" @@ -419,15 +419,6 @@ "1": { "then": "Wandbild" }, - "10": { - "then": "Azulejo (spanische dekorative Fliesenarbeit)" - }, - "11": { - "then": "Fliesenarbeit" - }, - "12": { - "then": "Holzschnitzerei" - }, "2": { "then": "Malerei" }, @@ -451,6 +442,15 @@ }, "9": { "then": "Relief" + }, + "10": { + "then": "Azulejo (spanische dekorative Fliesenarbeit)" + }, + "11": { + "then": "Fliesenarbeit" + }, + "12": { + "then": "Holzschnitzerei" } }, "question": "Um welche Art Kunstwerk handelt es sich?", @@ -2080,27 +2080,6 @@ "1": { "question": "Verfügt über einen
Schuko-Stecker ohne Erdungsstift (CEE7/4 Typ F)
" }, - "10": { - "question": "Hat einen
Typ 2 (Mennekes)
Anschluss mit Kabel" - }, - "11": { - "question": "Hat einen
Tesla Supercharger CCS (Typ 2 CSS vonTesla)
Anschluss" - }, - "12": { - "question": "Hat einen
Tesla Supercharger (Destination)
Anschluss" - }, - "13": { - "question": "Hat einen
Tesla Supercharger (Destination) (Typ 2 von Tesla)
Anschluss mit Kabel" - }, - "14": { - "question": "Hat einen
USB-Anschluss zum Aufladen von Telefonen und kleinen Elektrogeräten
" - }, - "15": { - "question": "Hat einen
Bosch Active Connect Anschluss mit 3 Pins
und Kabel" - }, - "16": { - "question": "Hat einen
Bosch Active Connect Anschluss mit 5 Pins
und Kabel" - }, "2": { "question": "Verfügt über einen
europäischen Netzstecker mit Erdungsstift (CEE7/4 Typ E)
Anschluss" }, @@ -2124,6 +2103,27 @@ }, "9": { "question": "Hat einen
Typ 2 CCS (Mennekes)
Anschluss" + }, + "10": { + "question": "Hat einen
Typ 2 (Mennekes)
Anschluss mit Kabel" + }, + "11": { + "question": "Hat einen
Tesla Supercharger CCS (Typ 2 CSS vonTesla)
Anschluss" + }, + "12": { + "question": "Hat einen
Tesla Supercharger (Destination)
Anschluss" + }, + "13": { + "question": "Hat einen
Tesla Supercharger (Destination) (Typ 2 von Tesla)
Anschluss mit Kabel" + }, + "14": { + "question": "Hat einen
USB-Anschluss zum Aufladen von Telefonen und kleinen Elektrogeräten
" + }, + "15": { + "question": "Hat einen
Bosch Active Connect Anschluss mit 3 Pins
und Kabel" + }, + "16": { + "question": "Hat einen
Bosch Active Connect Anschluss mit 5 Pins
und Kabel" } } } @@ -2179,6 +2179,30 @@ "1": { "then": "Schuko-Stecker ohne Erdungsstift (CEE7/4 Typ F)" }, + "2": { + "then": "Europäischer Netzstecker mit Erdungsstift (CEE7/4 Typ E)" + }, + "3": { + "then": "Europäischer Netzstecker mit Erdungsstift (CEE7/4 Typ E)" + }, + "4": { + "then": "Chademo-Anschluss" + }, + "5": { + "then": "Chademo-Anschluss" + }, + "6": { + "then": "Typ 1 mit Kabel (J1772)" + }, + "7": { + "then": "Typ 1 mit Kabel (J1772)" + }, + "8": { + "then": "Typ 1 ohne Kabel (J1772)" + }, + "9": { + "then": " Typ 1 ohne Kabel (J1772)" + }, "10": { "then": "Typ 1 CCS (Typ 1 Combo)" }, @@ -2209,9 +2233,6 @@ "19": { "then": "Typ 2 mit Kabel (mennekes)" }, - "2": { - "then": "Europäischer Netzstecker mit Erdungsstift (CEE7/4 Typ E)" - }, "20": { "then": "Tesla Supercharger CCS (Typ 2 CSS von Tesla)" }, @@ -2242,32 +2263,11 @@ "29": { "then": " Bosch Active Connect mit 3 Pins und Kabel" }, - "3": { - "then": "Europäischer Netzstecker mit Erdungsstift (CEE7/4 Typ E)" - }, "30": { "then": "Bosch Active Connect mit 5 Pins und Kabel" }, "31": { "then": " Bosch Active Connect mit 5 Pins und Kabel" - }, - "4": { - "then": "Chademo-Anschluss" - }, - "5": { - "then": "Chademo-Anschluss" - }, - "6": { - "then": "Typ 1 mit Kabel (J1772)" - }, - "7": { - "then": "Typ 1 mit Kabel (J1772)" - }, - "8": { - "then": "Typ 1 ohne Kabel (J1772)" - }, - "9": { - "then": " Typ 1 ohne Kabel (J1772)" } }, "question": "Welche Ladeanschlüsse gibt es hier?" @@ -2461,24 +2461,6 @@ "1": { "2": "Europäischer Netzstecker mit Erdungsstift (CEE7/4 Typ E)" }, - "10": { - "2": "Tesla Supercharger CCS (Typ 2 CSS von Tesla)" - }, - "11": { - "2": "Tesla Supercharger (Destination)" - }, - "12": { - "2": "Tesla Supercharger (Destination) (Typ 2 mit Kabel von Tesla)" - }, - "13": { - "2": "USB zum Aufladen von Handys und kleinen Elektrogeräten" - }, - "14": { - "2": " Bosch Active Connect mit 3 Pins und Kabel" - }, - "15": { - "2": " Bosch Active Connect mit 5 Pins und Kabel" - }, "2": { "2": "Chademo-Stecker" }, @@ -2502,6 +2484,24 @@ }, "9": { "2": "Typ 2 mit Kabel (Mennekes)" + }, + "10": { + "2": "Tesla Supercharger CCS (Typ 2 CSS von Tesla)" + }, + "11": { + "2": "Tesla Supercharger (Destination)" + }, + "12": { + "2": "Tesla Supercharger (Destination) (Typ 2 mit Kabel von Tesla)" + }, + "13": { + "2": "USB zum Aufladen von Handys und kleinen Elektrogeräten" + }, + "14": { + "2": " Bosch Active Connect mit 3 Pins und Kabel" + }, + "15": { + "2": " Bosch Active Connect mit 5 Pins und Kabel" } } } @@ -3299,15 +3299,6 @@ "1": { "then": "Dieser Radweg hat einen festen Belag" }, - "10": { - "then": "Dieser Radweg besteht aus feinem Schotter" - }, - "11": { - "then": "Der Radweg ist aus Kies" - }, - "12": { - "then": "Dieser Radweg besteht aus Rohboden" - }, "2": { "then": "Der Radweg ist aus Asphalt" }, @@ -3331,6 +3322,15 @@ }, "9": { "then": "Der Radweg ist aus Schotter" + }, + "10": { + "then": "Dieser Radweg besteht aus feinem Schotter" + }, + "11": { + "then": "Der Radweg ist aus Kies" + }, + "12": { + "then": "Dieser Radweg besteht aus Rohboden" } }, "question": "Was ist der Belag dieses Radwegs?", @@ -3379,15 +3379,6 @@ "1": { "then": "Dieser Radweg hat einen festen Belag" }, - "10": { - "then": "Dieser Radweg besteht aus feinem Schotter" - }, - "11": { - "then": "Der Radweg ist aus Kies" - }, - "12": { - "then": "Dieser Radweg besteht aus Rohboden" - }, "2": { "then": "Der Radweg ist aus Asphalt" }, @@ -3411,6 +3402,15 @@ }, "9": { "then": "Der Radweg ist aus Schotter" + }, + "10": { + "then": "Dieser Radweg besteht aus feinem Schotter" + }, + "11": { + "then": "Der Radweg ist aus Kies" + }, + "12": { + "then": "Dieser Radweg besteht aus Rohboden" } }, "question": "Was ist der Belag dieser Straße?", @@ -4383,54 +4383,6 @@ } } }, - "10": { - "options": { - "0": { - "question": "Keine Bevorzugung von Hunden" - }, - "1": { - "question": "Hunde erlaubt" - }, - "2": { - "question": "Keine Hunde erlaubt" - } - } - }, - "11": { - "options": { - "0": { - "question": "Internetzugang vorhanden" - } - } - }, - "12": { - "options": { - "0": { - "question": "Stromanschluss vorhanden" - } - } - }, - "13": { - "options": { - "0": { - "question": "Hat zuckerfreie Angebote" - } - } - }, - "14": { - "options": { - "0": { - "question": "Hat glutenfreie Angebote" - } - } - }, - "15": { - "options": { - "0": { - "question": "Hat laktosefreie Angebote" - } - } - }, "2": { "options": { "0": { @@ -4501,6 +4453,54 @@ "question": "Nutzung kostenlos" } } + }, + "10": { + "options": { + "0": { + "question": "Keine Bevorzugung von Hunden" + }, + "1": { + "question": "Hunde erlaubt" + }, + "2": { + "question": "Keine Hunde erlaubt" + } + } + }, + "11": { + "options": { + "0": { + "question": "Internetzugang vorhanden" + } + } + }, + "12": { + "options": { + "0": { + "question": "Stromanschluss vorhanden" + } + } + }, + "13": { + "options": { + "0": { + "question": "Hat zuckerfreie Angebote" + } + } + }, + "14": { + "options": { + "0": { + "question": "Hat glutenfreie Angebote" + } + } + }, + "15": { + "options": { + "0": { + "question": "Hat laktosefreie Angebote" + } + } } } }, @@ -4620,6 +4620,30 @@ "1": { "then": "Die Fitness-Station hat ein Schild mit Anweisungen für eine bestimmte Übung." }, + "2": { + "then": "Die Fitness-Station hat eine Einrichtung für Sit-ups." + }, + "3": { + "then": "Die Fitness-Station hat eine Vorrichtung für Liegestütze. In der Regel eine oder mehrere niedrige Reckstangen." + }, + "4": { + "then": "Die Fitness-Station hat Stangen zum Dehnen." + }, + "5": { + "then": "Die Fitness-Station hat eine Vorrichtung für Rückenstrecker (Hyperextensions)." + }, + "6": { + "then": "Die Fitness-Station hat Ringe für Gymnastikübungen." + }, + "7": { + "then": "Die Fitness-Station hat eine horizontale Leiter (Monkey Bars)." + }, + "8": { + "then": "Die Fitness-Station hat eine Sprossenwand zum Klettern." + }, + "9": { + "then": "Die Fitness-Station hat Pfosten für Slalomübungen." + }, "10": { "then": "Die Fitness-Station hat Trittsteine." }, @@ -4650,9 +4674,6 @@ "19": { "then": "Die Fitness-Station hat Kampfseile (battle ropes)." }, - "2": { - "then": "Die Fitness-Station hat eine Einrichtung für Sit-ups." - }, "20": { "then": "Die Fitness-Station hat ein Fahrradergometer." }, @@ -4667,27 +4688,6 @@ }, "24": { "then": "Die Fitness-Station hat eine Slackline." - }, - "3": { - "then": "Die Fitness-Station hat eine Vorrichtung für Liegestütze. In der Regel eine oder mehrere niedrige Reckstangen." - }, - "4": { - "then": "Die Fitness-Station hat Stangen zum Dehnen." - }, - "5": { - "then": "Die Fitness-Station hat eine Vorrichtung für Rückenstrecker (Hyperextensions)." - }, - "6": { - "then": "Die Fitness-Station hat Ringe für Gymnastikübungen." - }, - "7": { - "then": "Die Fitness-Station hat eine horizontale Leiter (Monkey Bars)." - }, - "8": { - "then": "Die Fitness-Station hat eine Sprossenwand zum Klettern." - }, - "9": { - "then": "Die Fitness-Station hat Pfosten für Slalomübungen." } }, "question": "Welche Übungsgeräte gibt es an dieser Fitness-Station?" @@ -4807,21 +4807,6 @@ "1": { "then": "Dies ist eine Pommesbude" }, - "10": { - "then": "Hier werden chinesische Gerichte serviert" - }, - "11": { - "then": "Hier werden griechische Gerichte serviert" - }, - "12": { - "then": "Hier werden indische Gerichte serviert" - }, - "13": { - "then": "Hier werden türkische Gerichte serviert" - }, - "14": { - "then": "Hier werden thailändische Gerichte serviert" - }, "2": { "then": "Bietet vorwiegend Pastagerichte an" }, @@ -4845,6 +4830,21 @@ }, "9": { "then": "Hier werden französische Gerichte serviert" + }, + "10": { + "then": "Hier werden chinesische Gerichte serviert" + }, + "11": { + "then": "Hier werden griechische Gerichte serviert" + }, + "12": { + "then": "Hier werden indische Gerichte serviert" + }, + "13": { + "then": "Hier werden türkische Gerichte serviert" + }, + "14": { + "then": "Hier werden thailändische Gerichte serviert" } }, "question": "Was für Essen gibt es hier?", @@ -5539,6 +5539,30 @@ "1": { "then": "Dies ist ein Auditorium" }, + "2": { + "then": "Dies ist ein Schlafzimmer" + }, + "3": { + "then": "Dies ist eine Kapelle" + }, + "4": { + "then": "Dies ist ein Klassenzimmer" + }, + "5": { + "then": "Dies ist ein Klassenzimmer" + }, + "6": { + "then": "Dies ist ein Computerraum" + }, + "7": { + "then": "Dies ist ein Konferenzraum" + }, + "8": { + "then": "Dies ist eine Krypta" + }, + "9": { + "then": "Dies ist eine Küche" + }, "10": { "then": "Dies ist ein Labor" }, @@ -5569,9 +5593,6 @@ "19": { "then": "Dies ist ein Lagerraum" }, - "2": { - "then": "Dies ist ein Schlafzimmer" - }, "20": { "then": "Dies ist ein Technikraum" }, @@ -5580,27 +5601,6 @@ }, "22": { "then": "Dies ist ein Wartezimmer" - }, - "3": { - "then": "Dies ist eine Kapelle" - }, - "4": { - "then": "Dies ist ein Klassenzimmer" - }, - "5": { - "then": "Dies ist ein Klassenzimmer" - }, - "6": { - "then": "Dies ist ein Computerraum" - }, - "7": { - "then": "Dies ist ein Konferenzraum" - }, - "8": { - "then": "Dies ist eine Krypta" - }, - "9": { - "then": "Dies ist eine Küche" } }, "question": "Wie wird dieser Raum genutzt?" @@ -6246,19 +6246,6 @@ } } }, - "10": { - "options": { - "0": { - "question": "Alle Notizen" - }, - "1": { - "question": "Importnotizen ausblenden" - }, - "2": { - "question": "Nur Importnotizen anzeigen" - } - } - }, "2": { "options": { "0": { @@ -6314,6 +6301,19 @@ "question": "Nur offene Notizen anzeigen" } } + }, + "10": { + "options": { + "0": { + "question": "Alle Notizen" + }, + "1": { + "question": "Importnotizen ausblenden" + }, + "2": { + "question": "Nur Importnotizen anzeigen" + } + } } }, "name": "OpenStreetMap-Hinweise", @@ -6638,21 +6638,6 @@ "1": { "then": "Dies ist ein normaler Stellplatz." }, - "10": { - "then": "Dies ist ein Stellplatz, der für Eltern mit Kindern reserviert ist." - }, - "11": { - "then": "Dies ist ein Stellplatz, der für das Personal reserviert ist." - }, - "12": { - "then": "Dies ist ein Stellplatz, der für Taxis reserviert ist." - }, - "13": { - "then": "Dies ist ein Stellplatz, der für Fahrzeuge mit Anhänger reserviert ist." - }, - "14": { - "then": "Dies ist ein Stellplatz, der für Carsharing reserviert ist." - }, "2": { "then": "Dies ist ein Behindertenstellplatz." }, @@ -6676,6 +6661,21 @@ }, "9": { "then": "Dies ist ein Stellplatz, der für Motorräder reserviert ist." + }, + "10": { + "then": "Dies ist ein Stellplatz, der für Eltern mit Kindern reserviert ist." + }, + "11": { + "then": "Dies ist ein Stellplatz, der für das Personal reserviert ist." + }, + "12": { + "then": "Dies ist ein Stellplatz, der für Taxis reserviert ist." + }, + "13": { + "then": "Dies ist ein Stellplatz, der für Fahrzeuge mit Anhänger reserviert ist." + }, + "14": { + "then": "Dies ist ein Stellplatz, der für Carsharing reserviert ist." } }, "question": "Welche Art von Stellplatz ist dies?" @@ -7273,21 +7273,6 @@ "1": { "then": "2-Cent-Münzen werden akzeptiert" }, - "10": { - "then": "20-Centime-Münzen werden akzeptiert" - }, - "11": { - "then": "½-Schweizer Franken-Münzen werden akzeptiert" - }, - "12": { - "then": "1-Schweizer Franken-Münzen werden akzeptiert" - }, - "13": { - "then": "2-Schweizer Franken-Münzen werden akzeptiert" - }, - "14": { - "then": "5-Schweizer Franken-Münzen werden akzeptiert" - }, "2": { "then": "5-Cent-Münzen werden akzeptiert" }, @@ -7311,6 +7296,21 @@ }, "9": { "then": "10-Centime-Münzen werden akzeptiert" + }, + "10": { + "then": "20-Centime-Münzen werden akzeptiert" + }, + "11": { + "then": "½-Schweizer Franken-Münzen werden akzeptiert" + }, + "12": { + "then": "1-Schweizer Franken-Münzen werden akzeptiert" + }, + "13": { + "then": "2-Schweizer Franken-Münzen werden akzeptiert" + }, + "14": { + "then": "5-Schweizer Franken-Münzen werden akzeptiert" } }, "question": "Mit welchen Münzen kann man hier bezahlen?" @@ -7323,15 +7323,6 @@ "1": { "then": "10-Euro-Scheine werden angenommen" }, - "10": { - "then": "100-Schweizer Franken-Scheine werden akzeptiert" - }, - "11": { - "then": "200-Schweizer Franken-Scheine werden akzeptiert" - }, - "12": { - "then": "1000-Schweizer Franken-Scheine werden akzeptiert" - }, "2": { "then": "20-Euro-Scheine werden angenommen" }, @@ -7355,6 +7346,15 @@ }, "9": { "then": "50-Schweizer Franken-Scheine werden akzeptiert" + }, + "10": { + "then": "100-Schweizer Franken-Scheine werden akzeptiert" + }, + "11": { + "then": "200-Schweizer Franken-Scheine werden akzeptiert" + }, + "12": { + "then": "1000-Schweizer Franken-Scheine werden akzeptiert" } }, "question": "Mit welchen Banknoten kann man hier bezahlen?" @@ -7808,6 +7808,30 @@ "1": { "question": "Recycling von Batterien" }, + "2": { + "question": "Recycling von Getränkekartons" + }, + "3": { + "question": "Recycling von Dosen" + }, + "4": { + "question": "Recycling von Kleidung" + }, + "5": { + "question": "Recycling von Speiseöl" + }, + "6": { + "question": "Recycling von Motoröl" + }, + "7": { + "question": "Recycling von Leuchtstoffröhren" + }, + "8": { + "question": "Recycling von Grünabfällen" + }, + "9": { + "question": "Recycling von Glasflaschen" + }, "10": { "question": "Recycling von Glas" }, @@ -7838,35 +7862,11 @@ "19": { "question": "Recycling von Restabfällen" }, - "2": { - "question": "Recycling von Getränkekartons" - }, "20": { "question": "Recycling von Druckerpatronen" }, "21": { "question": "Recycling von Fahrrädern" - }, - "3": { - "question": "Recycling von Dosen" - }, - "4": { - "question": "Recycling von Kleidung" - }, - "5": { - "question": "Recycling von Speiseöl" - }, - "6": { - "question": "Recycling von Motoröl" - }, - "7": { - "question": "Recycling von Leuchtstoffröhren" - }, - "8": { - "question": "Recycling von Grünabfällen" - }, - "9": { - "question": "Recycling von Glasflaschen" } } }, @@ -7934,6 +7934,30 @@ "1": { "then": "Getränkekartons können hier recycelt werden" }, + "2": { + "then": "Dosen können hier recycelt werden" + }, + "3": { + "then": "Kleidung kann hier recycelt werden" + }, + "4": { + "then": "Speiseöl kann hier recycelt werden" + }, + "5": { + "then": "Motoröl kann hier recycelt werden" + }, + "6": { + "then": "Hier können Leuchtstoffröhren recycelt werden" + }, + "7": { + "then": "Grünabfälle können hier recycelt werden" + }, + "8": { + "then": "Bio-Abfall kann hier recycelt werden" + }, + "9": { + "then": "Glasflaschen können hier recycelt werden" + }, "10": { "then": "Glas kann hier recycelt werden" }, @@ -7964,9 +7988,6 @@ "19": { "then": "Schuhe können hier recycelt werden" }, - "2": { - "then": "Dosen können hier recycelt werden" - }, "20": { "then": "Elektrokleingeräte können hier recycelt werden" }, @@ -7981,27 +8002,6 @@ }, "24": { "then": "Fahrräder können hier recycelt werden" - }, - "3": { - "then": "Kleidung kann hier recycelt werden" - }, - "4": { - "then": "Speiseöl kann hier recycelt werden" - }, - "5": { - "then": "Motoröl kann hier recycelt werden" - }, - "6": { - "then": "Hier können Leuchtstoffröhren recycelt werden" - }, - "7": { - "then": "Grünabfälle können hier recycelt werden" - }, - "8": { - "then": "Bio-Abfall kann hier recycelt werden" - }, - "9": { - "then": "Glasflaschen können hier recycelt werden" } }, "question": "Was kann hier recycelt werden?" @@ -8944,12 +8944,6 @@ "1": { "then": "Diese Straßenlaterne verwendet LEDs" }, - "10": { - "then": "Diese Straßenlaterne verwendet Hochdruck-Natriumdampflampen (orange mit weiß)" - }, - "11": { - "then": "Diese Straßenlaterne wird mit Gas beleuchtet" - }, "2": { "then": "Diese Straßenlaterne verwendet Glühlampenlicht" }, @@ -8973,6 +8967,12 @@ }, "9": { "then": "Diese Straßenlaterne verwendet Niederdruck-Natriumdampflampen (einfarbig orange)" + }, + "10": { + "then": "Diese Straßenlaterne verwendet Hochdruck-Natriumdampflampen (orange mit weiß)" + }, + "11": { + "then": "Diese Straßenlaterne wird mit Gas beleuchtet" } }, "question": "Mit welcher Art von Beleuchtung arbeitet diese Straßenlaterne?" @@ -9924,6 +9924,23 @@ "render": "Baum" } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "50-Cent-Münzen werden akzeptiert" + }, + "1": { + "then": "1-Euro-Münzen werden akzeptiert" + }, + "2": { + "then": "2-Euro-Münzen werden akzeptiert" + } + } + } + } + }, "unit": { "description": "Bibliotheksebene mit allen gängigen Einrichtungen. Einrichtungen können _nur_ aus dieser Datei importiert werden.", "units": { @@ -10240,6 +10257,30 @@ "1": { "question": "Verkauf von Getränken" }, + "2": { + "question": "Verkauf von Süßigkeiten" + }, + "3": { + "question": "Verkauf von Lebensmitteln" + }, + "4": { + "question": "Verkauf von Zigaretten" + }, + "5": { + "question": "Verkauf von Kondomen" + }, + "6": { + "question": "Verkauf von Kaffee" + }, + "7": { + "question": "Verkauf von Trinkwasser" + }, + "8": { + "question": "Verkauf von Zeitungen" + }, + "9": { + "question": "Verkauf von Fahrradschläuchen" + }, "10": { "question": "Verkauf von Milch" }, @@ -10270,9 +10311,6 @@ "19": { "question": "Verkauf von Blumen" }, - "2": { - "question": "Verkauf von Süßigkeiten" - }, "20": { "question": "Verkauf von Parkscheinen" }, @@ -10296,27 +10334,6 @@ }, "27": { "question": "Verkauf von Fahrradschlössern" - }, - "3": { - "question": "Verkauf von Lebensmitteln" - }, - "4": { - "question": "Verkauf von Zigaretten" - }, - "5": { - "question": "Verkauf von Kondomen" - }, - "6": { - "question": "Verkauf von Kaffee" - }, - "7": { - "question": "Verkauf von Trinkwasser" - }, - "8": { - "question": "Verkauf von Zeitungen" - }, - "9": { - "question": "Verkauf von Fahrradschläuchen" } } } @@ -10363,6 +10380,30 @@ "1": { "then": "Süßigkeiten werden verkauft" }, + "2": { + "then": "Lebensmittel werden verkauft" + }, + "3": { + "then": "Zigaretten werden verkauft" + }, + "4": { + "then": "Kondome werden verkauft" + }, + "5": { + "then": "Kaffee wird verkauft" + }, + "6": { + "then": "Trinkwasser wird verkauft" + }, + "7": { + "then": "Zeitungen werden verkauft" + }, + "8": { + "then": "Fahrradschläuche werden verkauft" + }, + "9": { + "then": "Milch wird verkauft" + }, "10": { "then": "Brot wird verkauft" }, @@ -10393,9 +10434,6 @@ "19": { "then": "Parkscheine werden verkauft" }, - "2": { - "then": "Lebensmittel werden verkauft" - }, "20": { "then": "Souvenirmünzen werden verkauft" }, @@ -10416,27 +10454,6 @@ }, "26": { "then": "Fahrradschlösser werden verkauft" - }, - "3": { - "then": "Zigaretten werden verkauft" - }, - "4": { - "then": "Kondome werden verkauft" - }, - "5": { - "then": "Kaffee wird verkauft" - }, - "6": { - "then": "Trinkwasser wird verkauft" - }, - "7": { - "then": "Zeitungen werden verkauft" - }, - "8": { - "then": "Fahrradschläuche werden verkauft" - }, - "9": { - "then": "Milch wird verkauft" } }, "question": "Was wird in diesem Automaten verkauft?", @@ -10728,4 +10745,4 @@ "render": "Windrad" } } -} +} \ No newline at end of file diff --git a/langs/layers/en.json b/langs/layers/en.json index 49bc5ddbe..816acb92f 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -258,6 +258,17 @@ "question": "How many people fit a single carriage?", "render": "{aerialway:occupancy} people fit a single carriage" }, + "oneway": { + "mappings": { + "0": { + "then": "This aerialway can only be taken to the top" + }, + "1": { + "then": "This aerialway can be taken in both directions" + } + }, + "question": "In what direction can this aerialway be taken?" + }, "type": { "mappings": { "0": { @@ -5101,6 +5112,11 @@ "ghost_bike-start_date": { "question": "When was this Ghost bike installed?", "render": "Placed on {start_date}" + }, + "wikidata": { + "render": { + "before": "

Wikipedia page about the deceased person

" + } } }, "title": { @@ -6108,6 +6124,18 @@ "render": "Memorial plaque" } }, + "mountain_rescue": { + "description": "A building where first aid responders store material and might be on watch", + "name": "Mountain rescue stations", + "presets": { + "0": { + "title": "a mountain rescue station" + } + }, + "title": { + "render": "Mountain rescue station" + } + }, "nature_reserve": { "description": "A nature reserve is an area where nature can take its course", "filter": { @@ -6685,6 +6713,9 @@ "mappings": { "0": { "then": "Disabled Parking Space" + }, + "1": { + "then": "Electric Vehicle Charging Parking Space" } }, "render": "Parking Space" @@ -9327,6 +9358,48 @@ } }, "tagRenderings": { + "gender_segregated": { + "mappings": { + "0": { + "then": "There is a separate, signposted area for men and women" + }, + "1": { + "then": "There is no separate, signposted area for men and women" + } + }, + "question": "Are these toilets gender-segregated?", + "questionHint": "Are there separate stalls or separate areas for men and women and are they signposted as such?" + }, + "menstrual_products": { + "mappings": { + "0": { + "then": "Free menstrual products are available to all visitors of these toilets" + }, + "1": { + "then": "Free menstrual products are available to some visitors of these toilets" + }, + "2": { + "then": "No free menstrual products are available here" + } + }, + "question": "Are free, menstrual products distributed here?", + "questionHint": "This is only about menstrual products that are free of charge. If e.g. a vending machine is available which charges for menstrual products, ignore it for this question." + }, + "menstrual_products_location": { + "mappings": { + "0": { + "then": "The free, menstrual products are located in the toilet for women" + }, + "1": { + "then": "The free, menstrual products are located in the toilet for men" + }, + "2": { + "then": "The free, menstrual products are located in the toilet for wheelchair users" + } + }, + "question": "Where are the free menstrual products located?", + "render": "The menstrual products are located in {toilets:menstrual_products:location}" + }, "opening_hours_24_7": { "override": { "question": "When are these toilets opened?" @@ -9924,6 +9997,78 @@ "render": "Tree" } }, + "trolley_bay": { + "description": "Find trolley bays for shopping trolleys.", + "name": "Trolley Bays", + "presets": { + "0": { + "description": "A trolley bay for parking shopping carts.", + "title": "a trolley bay" + } + }, + "tagRenderings": { + "cart_types": { + "mappings": { + "0": { + "then": "Trolleys with a magnifier are available" + }, + "1": { + "then": "Trolleys for wheelchair users are available" + }, + "2": { + "then": "Trolleys for children are available" + }, + "3": { + "then": "Trolleys with seats for children are available" + }, + "4": { + "then": "Trolleys with a flatbed are available" + }, + "5": { + "then": "Vertical trolleys for sheet-like goods are available" + } + }, + "question": "What kind of special trolleys are available?" + }, + "covered": { + "mappings": { + "0": { + "then": "This trolley bay is covered" + }, + "1": { + "then": "This trolley bay is not covered" + } + }, + "question": "Is this trolley bay covered?" + }, + "denominations": { + "mappings": { + "0": { + "then": "50 cent coins are accepted" + }, + "1": { + "then": "1 euro coins are accepted" + }, + "2": { + "then": "2 euro coins are accepted" + } + }, + "question": "What coins are accepted for the deposit?" + }, + "deposit": { + "mappings": { + "0": { + "then": "A deposit is required for the trolleys" + }, + "1": { + "then": "No deposit is required for the trolleys" + } + }, + "question": "Is a deposit (e.g. a coin) required for the trolleys?" + } + }, + "title": "Trolley Bay" + }, "unit": { "description": "Library layer with all common units. Units can _only_ be imported from this file.", "units": { @@ -10110,6 +10255,14 @@ } } }, + "mangrove-key-import": { + "render": { + "after": "Uploading a private key erases your current private key. If you made reviews with it, download your current private key first", + "special": { + "text": "Import a mangrove private key from backup" + } + } + }, "mangrove-keys": { "render": { "after": "Anyone possessing this file can make reviews with your identity", diff --git a/langs/layers/es.json b/langs/layers/es.json index 9b5540526..1297516d2 100644 --- a/langs/layers/es.json +++ b/langs/layers/es.json @@ -1776,6 +1776,9 @@ } } }, + "clock": { + "description": "Capa con relojes públicos" + }, "crossings": { "description": "Pasos para peatones y ciclistas", "name": "Pasos", @@ -2927,6 +2930,9 @@ "render": "Boca de incendios" } }, + "indoors": { + "description": "Cartografía básica en interiores: muestra esquemas de espacio" + }, "information_board": { "description": "Una capa que muestra paneles informativos turísticos (ej. informan sobre el paisaje, una construcción, una característica, un mapa, ...)", "name": "Paneles informativos", @@ -2992,7 +2998,11 @@ "render": "Mapa" } }, + "maproulette": { + "description": "Capa mostrando todas las tareas en MapRoulette" + }, "maxspeed": { + "description": "Muestra la velocidad permitida para cada carretera", "name": "Velocidad", "tagRenderings": { "maxspeed-maxspeed": { @@ -3365,7 +3375,7 @@ } }, "postboxes": { - "description": "La capa que mostrando buzones de correo.", + "description": "La capa muestra buzones de correo.", "name": "Buzones de correo", "presets": { "0": { @@ -3748,6 +3758,9 @@ } } }, + "rainbow_crossings": { + "description": "Una capa que muestra cruces peatonales con pinturas arco iris" + }, "recycling": { "description": "Una capa con contenedores y centros de reciclaje", "filter": { @@ -3959,7 +3972,7 @@ "name": "Tienda", "presets": { "0": { - "description": "Añadir una nueva tienda", + "description": "Puedes especificar más adelante lo que vende esta tienda.", "title": "una tienda" } }, @@ -4451,7 +4464,7 @@ "toilet-changing_table:location": { "mappings": { "3": { - "then": "El cambiador está en una habitación dedicada " + "then": "El cambiador está en una habitación dedicada" } }, "question": "¿Dónde está el cambiador?", @@ -4699,6 +4712,23 @@ "render": "Árbol" } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "Se aceptan monedas de 50 céntimos" + }, + "1": { + "then": "Se aceptan monedas de 1 euro" + }, + "2": { + "then": "Se aceptan monedas de 2 euros" + } + } + } + } + }, "unit": { "units": { "3": { diff --git a/langs/layers/fr.json b/langs/layers/fr.json index 8774d006b..d9c150f98 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -6278,6 +6278,23 @@ "render": "Arbre" } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "Les pièces de 50 cents sont acceptées" + }, + "1": { + "then": "Les pièces de 1 euro sont acceptées" + }, + "2": { + "then": "Les pièces de 2 euros sont acceptées" + } + } + } + } + }, "unit": { "units": { "0": { diff --git a/langs/layers/id.json b/langs/layers/id.json index 460c5a17e..5daff07d9 100644 --- a/langs/layers/id.json +++ b/langs/layers/id.json @@ -54,9 +54,6 @@ "1": { "then": "Mural" }, - "10": { - "then": "Azulejo (ubin dekoratif Spanyol)" - }, "2": { "then": "Lukisan" }, @@ -74,6 +71,9 @@ }, "9": { "then": "Relief" + }, + "10": { + "then": "Azulejo (ubin dekoratif Spanyol)" } }, "question": "Apa jenis karya seni ini?", @@ -191,15 +191,6 @@ "1": { "then": "Jalur sepeda ini diaspal" }, - "10": { - "then": "Jalur sepeda ini terbuat dari kerikil halus" - }, - "11": { - "then": "Jalur sepeda ini terbuat dari batu kerikil" - }, - "12": { - "then": "Jalur sepeda ini terbuat dari tanah alami" - }, "2": { "then": "Jalur sepeda ini terbuat dari aspal" }, @@ -220,6 +211,15 @@ }, "9": { "then": "Jalur sepeda ini terbuat dari kerikil" + }, + "10": { + "then": "Jalur sepeda ini terbuat dari kerikil halus" + }, + "11": { + "then": "Jalur sepeda ini terbuat dari batu kerikil" + }, + "12": { + "then": "Jalur sepeda ini terbuat dari tanah alami" } }, "question": "Permukaan jalannya terbuat dari apa?", @@ -733,6 +733,17 @@ } } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "Koin 50 sen diterima" + } + } + } + } + }, "unit": { "units": { "0": { @@ -931,4 +942,4 @@ "render": "turbin angin" } } -} +} \ No newline at end of file diff --git a/langs/layers/it.json b/langs/layers/it.json index 6ba9467b0..4b1201ce9 100644 --- a/langs/layers/it.json +++ b/langs/layers/it.json @@ -1,4 +1,88 @@ { + "address": { + "description": "Indirizzi", + "name": "Indirizzo presente su OSM", + "tagRenderings": { + "fixme": { + "question": "Indica cosa deve essere corretto qui" + }, + "housenumber": { + "mappings": { + "0": { + "then": "Questo edificio non ha indirizzo" + } + }, + "question": "Qual è il numero civico di questa casa?", + "render": "Il numero civico della casa è {addr:housenumber}" + }, + "street": { + "question": "Qual è la via in cui si trova?", + "render": "L’indirizzo è in via {addr:street}" + } + }, + "title": { + "render": "Indirizzo conosciuto" + } + }, + "advertising": { + "description": "Completeremo i dati da caratteristiche pubblicitarie, con referenza, operatore e illuminazione", + "name": "Pubblicità", + "presets": { + "0": { + "description": "Grande struttura pubblicitaria all'aperto, trovata normalmente in aree ad alto traffico come accanto a strade molto trafficate", + "title": "un cartellone" + }, + "1": { + "title": "un cartellone pubblicitario fissato a terra" + }, + "2": { + "title": "un cartellone pubblicitario fissato al muro" + }, + "3": { + "description": "PIccolo pannello per la pubblicità di vicinanza, generalmente destinato ai pedoni", + "title": "un piccolo pannello" + }, + "4": { + "description": "Una struttura cilindrica all'esterno con affissa della pubblicità", + "title": "una colonna" + }, + "5": { + "title": "una bandiera" + }, + "6": { + "title": "uno schermo" + }, + "7": { + "title": "uno schermo fissato al muro" + }, + "8": { + "description": "Un telo impermeabile con un messaggio stampato, fissato in modo permanente al muro", + "title": "un telone" + }, + "9": { + "title": "un totem" + }, + "10": { + "description": "Utilizzato per insegna pubblicitaria, un'insegna al neon, i loghi o le indicazioni d'entrata", + "title": "un'insegna" + }, + "11": { + "title": "una scultura" + }, + "12": { + "title": "un murales" + } + }, + "tagRenderings": { + "Sides": { + "mappings": { + "0": { + "then": "Questo oggetto ha la pubblicità solo da un lato" + } + } + } + } + }, "ambulancestation": { "description": "La stazione delle ambulanze è un’area per lo stoccaggio delle ambulanze, dell’equipaggiamento medico, dei dispositivi di protezione individuale e di altre forniture medicali.", "name": "Carta delle stazioni delle ambulanze", diff --git a/langs/layers/nb_NO.json b/langs/layers/nb_NO.json index 2d3e6f05d..5d33f4964 100644 --- a/langs/layers/nb_NO.json +++ b/langs/layers/nb_NO.json @@ -802,6 +802,23 @@ } } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "50-cent mynter aksepteres" + }, + "1": { + "then": "1-euro mynter aksepteres" + }, + "2": { + "then": "2-euro mynter aksepteres" + } + } + } + } + }, "unit": { "units": { "0": { diff --git a/langs/layers/nl.json b/langs/layers/nl.json index c61361831..cc396f8f5 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -5770,6 +5770,9 @@ "mappings": { "0": { "then": "Parkeerplek voor gehandicapten" + }, + "1": { + "then": "Parkeerplek voor opladen van elektrische voertuigen" } }, "render": "Parkeerplek" @@ -7954,6 +7957,48 @@ } }, "tagRenderings": { + "gender_segregated": { + "mappings": { + "0": { + "then": "Er zijn aparte ruimtes of toiletten voor mannen en vrouwen" + }, + "1": { + "then": "Mannen en vrouwen gebruiken dezelfde ruimtes en toiletten" + } + }, + "question": "Zijn deze toiletten gescheiden op basis van geslacht?", + "questionHint": "Is er een aparte ruimte voor mannen en vrouwen en zijn deze ruimtes ook expliciet aangegeven?" + }, + "menstrual_products": { + "mappings": { + "0": { + "then": "Er zijn gratis menstruatieprocten beschikbaar voor alle bezoekers van deze toiletten" + }, + "1": { + "then": "De gratis menstruatieproducten zijn enkel beschikbaar in een deel van de toiletten" + }, + "2": { + "then": "Er zijn geen gratis menstruatieproducten beschikbaar" + } + }, + "question": "Zijn er gratis menstruatieproducten beschikbaar?", + "questionHint": "Dit gaat enkel over menstruatieproducten die gratis geschikbaar zijn. Indien er bv. een verkoopautomaat met menstruatieproducten is, negeer deze dan" + }, + "menstrual_products_location": { + "mappings": { + "0": { + "then": "De gratis menstruatieproducten bevinden zich in het vrouwentoilet" + }, + "1": { + "then": "De gratis menstruatieproducten bevinden zich in het mannentoilet" + }, + "2": { + "then": "De gratis menstruatieproducten bevinden zich in het rolstoeltoegankelijke toilet" + } + }, + "question": "Waar bevinden de gratis menstruatieproducten zich?", + "render": "De menstruatieproducten bevinden zich in {toilets:menstrual_products:location}" + }, "opening_hours_24_7": { "override": { "question": "Wanneer zijn deze toiletten open?" @@ -8499,6 +8544,23 @@ "render": "Boom" } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "Munten van 50 cent worden geaccepteerd" + }, + "1": { + "then": "Munten van 1 euro worden geaccepteerd" + }, + "2": { + "then": "Munten van 2 euro worden geaccepteerd" + } + } + } + } + }, "unit": { "units": { "0": { @@ -8684,6 +8746,13 @@ } } }, + "mangrove-key-import": { + "render": { + "special": { + "text": "Herstel een Mangrove Private sleutel van backup" + } + } + }, "mangrove-keys": { "render": { "after": "Iedereen die dit bestand bezit, kan met jouw identiteit wijzigingen maken", diff --git a/langs/layers/pl.json b/langs/layers/pl.json index 7b9258b57..d2b1fc38a 100644 --- a/langs/layers/pl.json +++ b/langs/layers/pl.json @@ -2633,6 +2633,23 @@ "render": "Szkoła {name}" } }, + "trolley_bay": { + "tagRenderings": { + "denominations": { + "mappings": { + "0": { + "then": "Akceptowane są monety 50-centowe" + }, + "1": { + "then": "Akceptowane są monety 1 euro" + }, + "2": { + "then": "Akceptowane są monety 2 euro" + } + } + } + } + }, "unit": { "units": { "3": { diff --git a/langs/nl.json b/langs/nl.json index aab374b6b..78a2a1efb 100644 --- a/langs/nl.json +++ b/langs/nl.json @@ -54,7 +54,8 @@ "button": { "isMarkedShort": "Als favoriet gemarkeerd", "isNotMarkedShort": "Niet als favoriet gemarkeerd" - } + }, + "tab": "Jouw favorieten en beoordelingen" }, "flyer": { "aerial": "Deze kaart gebruikt luchtfoto's van het Agentschap Informatie Vlaanderen als achtergrond.\nOok het GRB is beschikbaar als achtergrondlaag.", diff --git a/langs/pt.json b/langs/pt.json index 37f0f8c73..cf62cb4e0 100644 --- a/langs/pt.json +++ b/langs/pt.json @@ -1,13 +1,20 @@ { + "advanced": { + "title": "Elementos avançados" + }, "centerMessage": { + "allFilteredAway": "Nenhum elemento em vista corresponde a todos os filtros", "loadingData": "A carregar os dados…", + "noData": "Não existem elementos relevantes na vista atual", "ready": "Concluído!", "retrying": "Surgiu uma falha ao carregar os dados. A tentar novamente dentro de {count} segundos…", "zoomIn": "Amplie para ver ou editar os dados" }, "communityIndex": { "available": "Esta comunidade fala {native}", - "intro": "Entre em contato com outras pessoas para conhecê-las, aprender com elas,..." + "intro": "Entre em contato com outras pessoas para conhecê-las, aprender com elas, …", + "notAvailable": "Esta comunidade não fala {native}", + "title": "Entre em contato com outros" }, "delete": { "cancel": "Cancelar", @@ -43,12 +50,32 @@ "panelIntro": "

O seu tema pessoal

Ative as suas camadas favoritas a partir de todos os temas oficiais", "reload": "Recarregar dados" }, + "favouritePoi": { + "button": { + "isFavourite": "Esta localização está marcada como favorito e irá estar presente em todos os mapas temáticos que visite do MapComplete.", + "isMarkedShort": "Marcado como localização favorita", + "isNotMarkedShort": "Não marcado como favorito", + "markAsFavouriteTitle": "Marcar esta localização como favorito", + "markDescription": "Adicionar esta localização a uma lista pessoal de favoritos", + "unmark": "Remover da lista pessoal de favoritos", + "unmarkNotDeleted": "Este nó não irá ser eliminado e continuará a estar visível no mapa apropriado para si e outros" + }, + "downloadGeojson": "Transferir favoritos em formato geojson", + "downloadGpx": "Transferir favoritos em formato GPX", + "intro": "Marcou {length} localizações como favoritos.", + "introPrivacy": "Esta lista é só visível para si", + "loginToSeeList": "Inicie sessão para visualizar a lista de localizações favoritas", + "tab": "Os seus favoritos e avaliações", + "title": "As suas localizações favoritas" + }, "flyer": { + "aerial": "Este mapa utiliza uma camada diferente, nomeadamente imagens áreas fornecidas por Agentschap Informatie Vlaanderen", "callToAction": "Teste em mapcomplete.org", "cyclofix": "Bombas de bicicleta, estações de reparação, água potável e lojas de bicicletas estão na CycloFix", + "description": "Um flyer horizontal A4 para promover o MapComplete", "editing": { "ex": "Um exemplo simplificado de como isso se parece para uma reserva natural é mostrado abaixo.", - "intro": "O usuário é recebido por um mapa com características. Ao selecionar um, as informações sobre esse recurso são mostradas.", + "intro": "O utilizador é recebido por um mapa com características. Ao selecionar uma, as informações sobre esse recurso são mostradas.", "title": "Como é a interface?" }, "examples": "Existem muitos mapas temáticos disponíveis, alguns deles impressos aqui.\n\nExistem muitos outros mapas temáticos online: sobre cuidados de saúde, navegação interior, acessibilidade para cadeiras de rodas, instalações de resíduos, estantes públicas, passagens para peões com uma pintura de arco-íris,... Descubra todos eles em mapcomplete.org", @@ -57,32 +84,46 @@ "attributes": "Mostra atributos de forma amigável", "edit": "Informações erradas ou desatualizadas? O botão de edição está ali.", "question": "Se um atributo ainda não for conhecido, MapComplete mostra uma pergunta", - "see_images": "Mostra imagens de contribuidores anteriores, Wikipedia, Mapillary, ... ", + "see_images": "Mostra imagens de contribuidores anteriores, Wikipedia, Mapillary, …", "wikipedia": "Os artigos vinculados da Wikipédia são exibidos" }, - "frontParagraph": "O MapComplete é um aplicativo da Web fácil de usar para coletar dados geográficos no OpenStreetMap, permitindo coletar e gerenciar dados relevantes de maneira aberta, colaborativa e reutilizável.\n\nNovas categorias e atributos podem ser adicionados mediante solicitação.", + "frontParagraph": "O MapComplete é uma aplicação web fácil de usar para recolher dados geográficos no OpenStreetMap, permitindo recolher e gerir dados relevantes de maneira aberta, colaborativa e reutilizável.\n\nNovas categorias e atributos podem ser adicionados mediante pedido.", + "lines_too": "Linhas e polígonos são também mostrados. Atributos e imagens podem ser adicionados ou adicionados também nesses objetos.", "mapcomplete": { + "customize": "O MapComplete pode ser ajustado conforme as suas necessidades, com novas camadas, funcionalidades ou estilizados com as cores e fontes da sua organização. Nós também temos experiência a começar campanhas para recolha coletiva de geodados. Contate pietervdvn@posteo.net para um orçamento.", + "intro": "O MapComplete é um site que contêm {mapCount} mapas interativos. Todos os mapas permitem adicionar ou atualizar informação. Tem muitas funcionalidades:", "li0": "Mostrar onde estão os POI", "li1": "Adicione novos pontos e atualize as informações dos existentes", "li2": "Adicione informações de contato e horário de funcionamento facilmente", "li3": "Pode ser colocado em outros sites como iFrame", "li4": "Incorporado no ecossistema OpenStreetMap, que tem muitas ferramentas disponíveis", "li5": "Funcionalidade para importar conjuntos de dados existentes", - "li6": "Muitos recursos avançados, como detecção de árvores e métodos de entrada avançados", - "li7": "Software livre com copyleft (licença GPL) e de uso gratuito", + "li6": "Muitos recursos avançados, como deteção de árvores e métodos de entrada avançados", + "li7": "Software livre copyleft (licença GPL) e de uso gratuito", "title": "O que é o MapComplete?" }, - "onwheels": "Mapas internos para usuários de cadeira de rodas também estão disponíveis.", - "osm": "OpenStreetMap é um mapa on-line que pode ser editado e reutilizado por qualquer pessoa para qualquer finalidade, desde que a atribuição seja dada e os dados sejam mantidos abertos.\nÉ o maior banco de dados geoespacial do mundo e é reutilizado por milhares de aplicativos e sites." + "onwheels": "Mapas internos para utilizadores de cadeira de rodas também estão disponíveis.", + "osm": "OpenStreetMap é um mapa online que pode ser editado e reutilizado por qualquer pessoa para qualquer finalidade, desde que a atribuição seja dada e os dados sejam mantidos abertos.\n\nÉ a maior base de dados geoespacial do mundo e é reutilizado por milhares de aplicações e sites.", + "tagline": "Recolher geodados com o OpenStreetMap", + "title": "mapcomplete.org", + "whatIsOsm": "O que é o OpenStreetMap?" }, "general": { + "404": "Esta página não existe", "about": "Edite e adicione facilmente o OpenStreetMap para um determinado tema", + "aboutMapComplete": { + "intro": "Utilize o MapComplete para adicionar informação OpenStreetMap num único tema . Responda questões e dentro de alguns minutos, as suas contribuições estão disponíveis para todos. Na maior parte dos temas, poderá adicionar fotografias ou mesmo deixar uma avaliação. O responsável pelo tema define os elementos, questões e linguagens." + }, "add": { "addNew": "Adicionar {category} aqui", "backToSelect": "Selecione uma categoria diferente", - "confirmButton": "Adicione uma {category} aqui.
Esta adição será visível a todos
", + "confirmButton": "Adicione uma {category} aqui.
Esta adição será visível a todos
", + "confirmLocation": "Confirmar esta localização", + "confirmTitle": "Adicionar um {title}?", + "confirmWarning": "O elemento que criar aqui vai ser visível a todos. Por favor, apenas adicione elementos no mapa se eles realmente exisitirem. Várias aplicações utilizam estes dados.", "disableFilters": "Desativar todos os filtros", "disableFiltersExplanation": "Alguns elementos podem estar escondidos por um filtro", + "enableLayer": "Ativar camada {name}", "hasBeenImported": "Este elemento já foi importado", "import": { "hasBeenImported": "Este objeto foi importado", @@ -94,13 +135,13 @@ "zoomInMore": "Amplie mais para importar este elemento" }, "importTags": "Este elemento irá receber {tags}", - "intro": "Clicou em algum lugar onde ainda não há dados conhecidos.
", - "layerNotEnabled": "A camada {layer} não está ativada. Ative esta camada para adicionar um elemento", + "intro": "Clicou em algum lugar onde ainda não há dados conhecidos.
", + "layerNotEnabled": "A camada {layer} não está ativa. Ative esta camada para adicionar um elemento", "openLayerControl": "Abra a caixa de controlo da camada", - "pleaseLogin": "Por favor, inicie a sessão para adicionar um novo elemento", + "pleaseLogin": "Por favor, inicie sessão para adicionar um novo elemento", "presetInfo": "O novo POI terá {tags}", "stillLoading": "Os dados ainda estão a ser carregados. Aguarde um pouco antes de adicionar um novo elemento.", - "title": "Adicionar um novo elemento?", + "title": "Adicionar um novo elemento", "warnVisibleForEveryone": "A sua adição será visível para todos", "wrongType": "Este elemento não é um nó nem uma linha e não pode ser importado", "zoomInFurther": "Amplie mais para adicionar um elemento.", @@ -111,9 +152,11 @@ "isApplied": "As alterações são aplicadas" }, "attribution": { - "attributionContent": "

Todos os dados são fornecidos pelo OpenStreetMap e são livremente reutilizáveis sob a licença the Open DataBase License.

", + "attributionBackgroundLayer": "A camada de fundo corrente é {name}", + "attributionBackgroundLayerWithCopyright": "A camada de fundo corrente é {name}: {copyright}", + "attributionContent": "

Todos os dados são fornecidos pelo OpenStreetMap e são livremente reutilizáveis sob a licença Open DataBase License.

", "attributionTitle": "Aviso de atribuição", - "codeContributionsBy": "O MapComplete foi construído por {contributors} e _blank{hiddenCount} mais contribuintes", + "codeContributionsBy": "O MapComplete foi construído por {contributors} e _blank{hiddenCount} mais contribuidores", "donate": "Apoie o MapComplete financeiramente", "editId": "Editar aqui com o editor online OpenStreetMap", "editJosm": "Editar aqui com JOSM", @@ -125,22 +168,29 @@ "josmOpened": "O JOSM está em execução", "mapContributionsBy": "Os dados visíveis atuais têm edições feitas por {contributors}", "mapContributionsByAndHidden": "Os dados visíveis atuais têm edições feitas por {contributors} e mais {hiddenCount} contribuidores", + "mapDataByOsm": "Dados do mapa: OpenStreetMap", "mapillaryHelp": "O Mapillary é um serviço online que reúne imagens ao nível da rua e as disponibiliza sob uma licença gratuita. Os utilizadores podem usar estas imagens para melhorar o OpenStreetMap", "openIssueTracker": "Reportar um erro", "openMapillary": "Abrir o Mapillary aqui", "openOsmcha": "Ver as últimas edições feitas com {theme}", + "seeOnMapillary": "Ver esta imagem no Mapillary", "themeBy": "Tema gerido por {author}", + "title": "Direitos de autor e atribuição", "translatedBy": "O MapComplete foi traduzido por {contributors} e {hiddenCount} mais utilizadores" }, "back": "Voltar", "backToIndex": "Volte para a visão geral com todos os mapas temáticos", - "backgroundMap": "Mapa de fundo", + "backToMap": "Voltar ao mapa", + "backgroundMap": "Camada de fundo", + "backgroundSwitch": "Alterar camada de fundo", "cancel": "Cancelar", "confirm": "Confirmar", "customThemeIntro": "

Temas personalizados

São temas visitados anteriormente criados pelos utilizadores.", + "customThemeTitle": "Temas customizados", "download": { "downloadAsPdf": "Descarregar um PDF do mapa atual", "downloadAsPdfHelper": "Ideal para imprimir o mapa atual", + "downloadAsPng": "Transferir como imagem", "downloadAsSvg": "Descarregar um SVG do mapa atual", "downloadAsSvgHelper": "Compatível com Inkscape ou Adobe Illustrator; vai precisar de mais processamento ", "downloadCSV": "Descarregar dados visíveis como CSV", diff --git a/langs/themes/de.json b/langs/themes/de.json index f5ac20371..a21471ea5 100644 --- a/langs/themes/de.json +++ b/langs/themes/de.json @@ -922,13 +922,6 @@ } } }, - "10": { - "options": { - "0": { - "question": "Etymologie-Thema ausschließen" - } - } - }, "2": { "options": { "0": { @@ -984,6 +977,13 @@ "question": "GRB-Thema ausschließen" } } + }, + "10": { + "options": { + "0": { + "question": "Etymologie-Thema ausschließen" + } + } } }, "name": "Zentrum der Änderungssätze", @@ -1060,33 +1060,6 @@ "onwheels": { "description": "Auf dieser Karte können Sie öffentlich zugängliche Orte für Rollstuhlfahrer ansehen, bearbeiten oder hinzufügen", "layers": { - "19": { - "override": { - "=title": { - "render": "Statistik" - } - } - }, - "20": { - "override": { - "+tagRenderings": { - "0": { - "render": { - "special": { - "text": "Import" - } - } - }, - "1": { - "render": { - "special": { - "message": "Alle vorgeschlagenen Tags hinzufügen" - } - } - } - } - } - }, "4": { "override": { "filter": { @@ -1129,6 +1102,33 @@ "override": { "name": "Barrierefreie Parkplätze" } + }, + "19": { + "override": { + "=title": { + "render": "Statistik" + } + } + }, + "20": { + "override": { + "+tagRenderings": { + "0": { + "render": { + "special": { + "text": "Import" + } + } + }, + "1": { + "render": { + "special": { + "message": "Alle vorgeschlagenen Tags hinzufügen" + } + } + } + } + } } }, "title": "Auf Rädern" @@ -1344,6 +1344,10 @@ "stations": { "description": "Bahnhofsdetails ansehen, bearbeiten und hinzufügen", "layers": { + "3": { + "description": "Ebene mit Bahnhöfen", + "name": "Bahnhöfe" + }, "16": { "description": "Anzeigen der Züge, die von diesem Bahnhof abfahren", "name": "Abfahrtstafeln", @@ -1375,10 +1379,6 @@ "title": { "render": "Abfahrtstafel" } - }, - "3": { - "description": "Ebene mit Bahnhöfen", - "name": "Bahnhöfe" } }, "title": "Bahnhöfe" @@ -1557,4 +1557,4 @@ "shortDescription": "Eine Karte mit Abfalleimern", "title": "Abfalleimer" } -} +} \ No newline at end of file diff --git a/langs/themes/es.json b/langs/themes/es.json index 796941f9f..a775514bd 100644 --- a/langs/themes/es.json +++ b/langs/themes/es.json @@ -631,6 +631,10 @@ "description": "El objetivo de este mapa es presentar a los ciclistas con una solución fácil de utilizar para encontrar la infraestructura apropiada para sus necesidades.

Puedes seguir tu localización precisa (móvil solo) y seleccionar las capas que son relevantes para ti en la esquina inferior izquierda. Tgambién puedes utilizar esta herramienta para editar o añadir pines (puntos de interés) al mapa y proveer más datos respondiendo a preguntas.

Todos los cambios que hagas se guardarán de manera automática en la base de datos global de OpenStreetMap y podrán ser utilizados libremente por otros.

Para más información sobre el proyecto cyclofix, ve a cyclofix.osm.be.", "title": "Cyclofix - un mapa para ciclistas" }, + "disaster_response": { + "description": "Este mapa contiene elementos destinados a la preparación y respuesta ante desastres.", + "title": "Respuesta ante desastres" + }, "drinking_water": { "description": "En este mapa, se muestran los puntos de agua potable accesibles públicamente y pueden añadirse fácilmente", "title": "Agua Potable" @@ -842,7 +846,7 @@ "hackerspaces": { "description": "En este mapa puedes ver hackerspaces, añadir un nuevo hackerspace o actualizar datos directamente", "shortDescription": "Un mapa de hackerspaces", - "title": "Hackerspaces and makerspaces" + "title": "Hackerspaces y makerspaces" }, "hailhydrant": { "description": "En este mapa puedes encontrar y actualizar hidrantes contra incendios, estaciones de bomberos, estaciones de ambulancias y extintores en tus vecindarios favoritos.", @@ -898,6 +902,133 @@ }, "title": "Bordillos y cruces" }, + "mapcomplete-changes": { + "description": "Este mapa muestra todos los cambios hechos con MapComplete", + "layers": { + "0": { + "description": "Muestra todos los cambios de MapComplete", + "filter": { + "0": { + "options": { + "0": { + "question": "El nombre del tema contiene {search}" + } + } + }, + "1": { + "options": { + "0": { + "question": "El nombre del tema no contiene {search}" + } + } + }, + "2": { + "options": { + "0": { + "question": "Hecho por el colaborador {search}" + } + } + }, + "3": { + "options": { + "0": { + "question": "No hecho por el colaborador {search}" + } + } + }, + "4": { + "options": { + "0": { + "question": "Hecho antes de {search}" + } + } + }, + "5": { + "options": { + "0": { + "question": "Hecho después de {search}" + } + } + }, + "6": { + "options": { + "0": { + "question": "Idioma del usuario (código ISO) {search}" + } + } + }, + "7": { + "options": { + "0": { + "question": "Hecho con el host {search}" + } + } + }, + "8": { + "options": { + "0": { + "question": "El conjunto de cambios ha añadido al menos una imagen" + } + } + }, + "9": { + "options": { + "0": { + "question": "Excluir el tema del GRB" + } + } + }, + "10": { + "options": { + "0": { + "question": "Excluir el tema de la etimología" + } + } + } + }, + "name": "Centro del conjunto de cambios", + "tagRenderings": { + "contributor": { + "question": "¿Quién realizó este cambio?", + "render": "Cambio hecho por {user}" + }, + "host": { + "question": "¿Con qué host (página web) se realizó este cambio?", + "render": "Cambio con {host}" + }, + "locale": { + "question": "¿En qué configuración regional (idioma) se realizó este cambio?", + "render": "La configuración regional del usuario es {locale}" + }, + "show_changeset_id": { + "render": "Conjunto de cambios {id}" + }, + "theme-id": { + "question": "¿Qué tema se utilizó para realizar este cambio?", + "render": "Cambio con el tema {theme}" + }, + "version": { + "question": "¿Qué versión de MapComplete se usó para realizar este cambio?", + "render": "Hecho con {editor}" + } + }, + "title": { + "render": "Conjunto de cambios para {theme}" + } + }, + "1": { + "override": { + "tagRenderings+": { + "0": { + "render": "Puede encontrar más estadísticas aquí" + } + } + } + } + }, + "shortDescription": "Muestra los cambios hechos por MapComplete", + "title": "Cambios hechos con MapComplete" + }, "maproulette": { "description": "Tema que muestra las tareas de MapRoulette, permitiendo buscarlas, filtrarlas y arreglarlas.", "title": "Tareas de MapRoulette" @@ -1002,6 +1133,57 @@ }, "title": "Sobre ruedas" }, + "openlovemap": { + "description": "

Amor en la palma de tu mano

Open Love Map lista varias entradas para adultos, como burdeles, tiendas eróticas y clubs de striptease.", + "layers": { + "2": { + "override": { + "=presets": { + "0": { + "title": "una tienda erótica" + } + }, + "name": "Tiendas eróticas" + } + }, + "4": { + "override": { + "=presets": { + "0": { + "title": "una máquina de venta de condones" + } + } + } + }, + "6": { + "override": { + "=presets": { + "0": { + "title": "un cine erótico" + } + } + } + }, + "9": { + "override": { + "+tagRenderings": { + "0": { + "question": "¿Qué tipo de hotel es este?" + } + } + } + } + }, + "overrideAll": { + "tagRenderings+": { + "0": { + "question": "¿Este {title()} tiene una cabina de video privada?", + "questionHint": "Esto es para uso de una sola persona." + } + } + }, + "title": "Open Love Map" + }, "openwindpowermap": { "description": "Mapa para mostrar y editar turbinas de viento.", "title": "Generadores de energía eólica" @@ -1133,6 +1315,10 @@ "shortDescription": "Mapeo de aceras", "title": "Aceras" }, + "ski": { + "description": "Todo lo que necesitas para esquiar", + "title": "Pistas de esquí y vías aéreas" + }, "sport_pitches": { "description": "Una pista de deportes es una área donde se practican deportes", "shortDescription": "Un mapa que muestra pistas de deportes", @@ -1276,6 +1462,7 @@ "title": "Máquinas expendedoras" }, "walkingnodes": { + "description": "Este mapa muestra las redes de nodos de senderismo y le permite añadir nuevos nodos fácilmente", "layers": { "0": { "name": "enlaces nodo a nodo", @@ -1297,9 +1484,65 @@ } }, "1": { - "name": "nodos" + "name": "nodos", + "presets": { + "0": { + "title": "un nodo de senderismo" + } + }, + "tagRenderings": { + "node-expected_rwn_route_relations": { + "freeform": { + "placeholder": "Por ejemplo, 3" + }, + "question": "¿A cuántos otros nodos de senderismo conecta este nodo?", + "render": "Este nodo se vincula a {expected_rwn_route_relations} otros nodos de senderismo." + }, + "node-rwn_ref": { + "freeform": { + "placeholder": "Por ejemplo, 1" + }, + "question": "¿Cuál es el número de referencia de este nodo de senderismo?", + "render": "Este nodo de senderismo tiene la referencia número {rwn_ref}" + }, + "survey_date": { + "override": { + "question": "¿Cuándo fue la última revisión de este nodo de senderismo?", + "render": "Este nodo de senderismo fue revisado por última vez en {survey:date}" + } + } + }, + "title": { + "mappings": { + "0": { + "then": "Nodo de senderismo {rwn_ref}" + }, + "1": { + "then": "Nodo de senderismo propuesto {proposed:rwn_ref}" + } + }, + "render": "Nodo de senderismo" + } + }, + "2": { + "override": { + "name": "Postes guías de senderismo", + "title": { + "render": "Poste guía de senderismo" + } + } + }, + "3": { + "override": { + "presets": { + "0": { + "title": "un marcador de ruta para un enlace de nodo a nodo" + } + } + } } - } + }, + "title": "Redes de nodos de senderismo" }, "walls_and_buildings": { "description": "Capa especial incorporada que proporciona todas las paredes y edificios. Esta capa es útil en los preajustes para objetos que pueden colocarse contra las paredes (por ejemplo: AEDs, buzones de correos, entradas, direcciones, cámaras de vigilancia, ...). Esta capa es invisible por defecto y no puede ser activada por el usuario.", diff --git a/package-lock.json b/package-lock.json index 66c7d3901..571e8ef66 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mapcomplete", - "version": "0.37.2", + "version": "0.38.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mapcomplete", - "version": "0.37.2", + "version": "0.38.0", "license": "GPL-3.0-or-later", "dependencies": { "@rgossiaux/svelte-headlessui": "^1.0.2", @@ -5357,9 +5357,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001579", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", - "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", + "version": "1.0.30001588", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz", + "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==", "dev": true, "funding": [ { @@ -17690,9 +17690,9 @@ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" }, "caniuse-lite": { - "version": "1.0.30001579", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", - "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", + "version": "1.0.30001588", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001588.tgz", + "integrity": "sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==", "dev": true }, "canvg": { @@ -24014,4 +24014,4 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 313e533b0..8eeef3fea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapcomplete", - "version": "0.37.5", + "version": "0.38.0", "repository": "https://github.com/pietervdvn/MapComplete", "description": "A small website to edit OSM easily", "bugs": "https://github.com/pietervdvn/MapComplete/issues", @@ -92,7 +92,8 @@ "weblate-merge": "git remote update weblate-github; git merge weblate-github/weblate-mapcomplete-core weblate-github/weblate-mapcomplete-layers weblate-github/weblate-mapcomplete-layer-translations", "weblate-fix-heavy": "git fetch weblate-hosted-layers; git fetch weblate-hosted-core; git merge weblate-hosted-layers/master weblate-hosted-core/master ", "housekeeping": "git pull && npx update-browserslist-db@latest && npm run weblate-fix-heavy && npm run generate && npm run generate:docs && npm run generate:contributor-list && vite-node scripts/fetchLanguages.ts && npm run format && git add assets/ langs/ Docs/ **/*.ts Docs/* src/* && git commit -m 'chore: automated housekeeping...'", - "reuse-compliance": "reuse lint" + "reuse-compliance": "reuse lint", + "backup:images": "vite-node scripts/generateImageAnalysis.ts -- ~/data/imgur-image-backup/" }, "keywords": [ "OpenStreetMap", diff --git a/scripts/fixSchemas.ts b/scripts/fixSchemas.ts index 8d26dc720..be59de023 100644 --- a/scripts/fixSchemas.ts +++ b/scripts/fixSchemas.ts @@ -205,7 +205,7 @@ function extractHintsFrom( layers: AllSharedLayers.sharedLayers, themes: AllKnownLayouts.allKnownLayouts, validators: Validators, - Constants: Constants + Constants: Constants, }) } return hints diff --git a/scripts/generateImageAnalysis.ts b/scripts/generateImageAnalysis.ts index 87f876d52..b83f08c6b 100644 --- a/scripts/generateImageAnalysis.ts +++ b/scripts/generateImageAnalysis.ts @@ -451,6 +451,9 @@ export default class GenerateImageAnalysis extends Script { args = args.filter((a) => a !== "--cached") const datapath = args[1] ?? "../../git/MapComplete-data/ImageLicenseInfo" const imageBackupPath = args[0] + if(imageBackupPath === "" || imageBackupPath === undefined){ + throw "No imageBackup path specified" + } await this.downloadData(datapath, cached) // await this.downloadViews(datapath) diff --git a/scripts/generateLayouts.ts b/scripts/generateLayouts.ts index 9c2bfe8aa..7242d3888 100644 --- a/scripts/generateLayouts.ts +++ b/scripts/generateLayouts.ts @@ -289,15 +289,21 @@ async function generateCsp( apiUrls.push(...(sv.needsUrls ?? [])) }) - const usedSpecialVisualisations = [].concat(...layoutJson.layers.map(l => ValidationUtils.getAllSpecialVisualisations( (l).tagRenderings ?? []))) + const usedSpecialVisualisations = [].concat( + ...layoutJson.layers.map((l) => + ValidationUtils.getAllSpecialVisualisations( + (l).tagRenderings ?? [] + ) + ) + ) for (const usedSpecialVisualisation of usedSpecialVisualisations) { if (typeof usedSpecialVisualisation === "string") { continue } const neededUrls = usedSpecialVisualisation.func.needsUrls ?? [] if (typeof neededUrls === "function") { - let needed: string | string[] = neededUrls(usedSpecialVisualisation.args) - if(typeof needed === "string"){ + let needed: string | string[] = neededUrls(usedSpecialVisualisation.args) + if (typeof needed === "string") { needed = [needed] } apiUrls.push(...needed) @@ -317,8 +323,8 @@ async function generateCsp( continue } try { - if(!connectSource.startsWith("http")){ - connectSource = "https://"+connectSource + if (!connectSource.startsWith("http")) { + connectSource = "https://" + connectSource } const url = new URL(connectSource) hosts.add("https://" + url.host) @@ -349,7 +355,7 @@ async function generateCsp( "default-src": "'self'", "child-src": "'self' blob: ", "img-src": "* data:", // maplibre depends on 'data:' to load - "connect-src": "'self' "+connectSrc.join(" "), + "connect-src": "'self' " + connectSrc.join(" "), "report-to": "https://report.mapcomplete.org/csp", "worker-src": "'self' blob:", // Vite somehow loads the worker via a 'blob' "style-src": "'self' 'unsafe-inline'", // unsafe-inline is needed to change the default background pin colours diff --git a/scripts/velopark/compare.ts b/scripts/velopark/compare.ts new file mode 100644 index 000000000..c6dde281d --- /dev/null +++ b/scripts/velopark/compare.ts @@ -0,0 +1,86 @@ +import Script from "../Script" +import fs from "fs" +import { Feature, FeatureCollection } from "geojson" +import { GeoOperations } from "../../src/Logic/GeoOperations" +import * as os from "os" +// vite-node scripts/velopark/compare.ts -- scripts/velopark/velopark_all_2024-02-14T12\:18\:41.772Z.geojson ~/Projecten/OSM/Fietsberaad/2024-02-02\ Fietsenstallingen_OSM_met_velopark_ref.geojson +class Compare extends Script { + compare( + veloId: string, + osmParking: Feature, + veloParking: Feature + ): { + distance: number + ref: string + osmid: string + diffs: { + osm: string + velopark: string + key: string + }[] + } { + const osmCenterpoint = GeoOperations.centerpointCoordinates(osmParking) + const veloparkCenterpoint = GeoOperations.centerpointCoordinates(veloParking) + const distance = Math.round( + GeoOperations.distanceBetween(osmCenterpoint, veloparkCenterpoint) + ) + const diffs: { osm: string; velopark: string; key: string }[] = [] + + const allKeys = new Set( + Object.keys(osmParking.properties).concat(Object.keys(veloParking.properties)) + ) + for (const key of allKeys) { + if (osmParking.properties[key] === veloParking.properties[key]) { + continue + } + if (Number(osmParking.properties[key]) === veloParking.properties[key]) { + continue + } + if (veloParking.properties[key] === undefined) { + continue + } + diffs.push({ + key, + osm: osmParking.properties[key], + velopark: veloParking.properties[key], + }) + } + return { + ref: veloId, + osmid: osmParking.properties["@id"], + distance, + diffs, + } + } + async main(args: string[]): Promise { + let [velopark, osm, key] = args + key ??= "ref:velopark" + const veloparkData: FeatureCollection = JSON.parse(fs.readFileSync(velopark, "utf-8")) + const osmData: FeatureCollection = JSON.parse(fs.readFileSync(osm, "utf-8")) + + const veloparkById: Record = {} + for (const parking of veloparkData.features) { + veloparkById[parking.properties[key]] = parking + } + + const diffs = [] + for (const parking of osmData.features) { + const veloId = parking.properties[key] + const veloparking = veloparkById[veloId] + if (veloparking === undefined) { + console.error("No velopark entry found for", veloId) + continue + } + diffs.push(this.compare(veloId, parking, veloparking)) + } + + fs.writeFileSync("report_diff.json", JSON.stringify(diffs)) + } + constructor() { + super( + "Compares a velopark geojson with OSM geojson. Usage: `compare velopark.geojson osm.geojson [key-to-compare-on]`. If key-to-compare-on is not given, `ref:velopark` will be used" + ) + } +} + +new Compare().run() diff --git a/scripts/velopark/veloParkToGeojson.ts b/scripts/velopark/veloParkToGeojson.ts index 0157e9b1f..6e7a5582c 100644 --- a/scripts/velopark/veloParkToGeojson.ts +++ b/scripts/velopark/veloParkToGeojson.ts @@ -15,6 +15,20 @@ class VeloParkToGeojson extends Script { ) } + exportTo(filename: string, features) { + fs.writeFileSync( + filename + "_" + new Date().toISOString() + ".geojson", + JSON.stringify( + { + type: "FeatureCollection", + features, + }, + null, + " " + ) + ) + } + async main(args: string[]): Promise { console.log("Downloading velopark data") // Download data for NIS-code 1000. 1000 means: all of belgium @@ -38,12 +52,15 @@ class VeloParkToGeojson extends Script { ) console.log("OpenStreetMap contains", seenIds.size, "bicycle parkings with a velopark ref") const allVelopark = data.map((f) => VeloparkLoader.convert(f)) + this.exportTo("velopark_all", allVelopark) + const features = allVelopark.filter((f) => !seenIds.has(f.properties["ref:velopark"])) const allProperties = new Set() for (const feature of features) { Object.keys(feature.properties).forEach((k) => allProperties.add(k)) } + this.exportTo("velopark_noncynced", features) allProperties.delete("ref:velopark") for (const feature of features) { allProperties.forEach((k) => { @@ -51,17 +68,7 @@ class VeloParkToGeojson extends Script { }) } - fs.writeFileSync( - "velopark_id_only_export_" + new Date().toISOString() + ".geojson", - JSON.stringify( - { - type: "FeatureCollection", - features, - }, - null, - " " - ) - ) + this.exportTo("velopark_nonsynced_id_only", features) } } diff --git a/src/Logic/FeatureSource/Sources/LayoutSource.ts b/src/Logic/FeatureSource/Sources/LayoutSource.ts index 87546015d..c9377cfca 100644 --- a/src/Logic/FeatureSource/Sources/LayoutSource.ts +++ b/src/Logic/FeatureSource/Sources/LayoutSource.ts @@ -45,12 +45,7 @@ export default class LayoutSource extends FeatureSourceMerger { }) ) - const overpassSource = LayoutSource.setupOverpass( - osmLayers, - bounds, - zoom, - featureSwitches - ) + const overpassSource = LayoutSource.setupOverpass(osmLayers, bounds, zoom, featureSwitches) const osmApiSource = LayoutSource.setupOsmApiSource( osmLayers, diff --git a/src/Logic/GeoOperations.ts b/src/Logic/GeoOperations.ts index 571a1c400..2b0294641 100644 --- a/src/Logic/GeoOperations.ts +++ b/src/Logic/GeoOperations.ts @@ -345,15 +345,18 @@ export class GeoOperations { return way } - public static toCSV(features: Feature[] | FeatureCollection, options?: { - ignoreTags?: RegExp - }): string { + public static toCSV( + features: Feature[] | FeatureCollection, + options?: { + ignoreTags?: RegExp + } + ): string { const headerValuesSeen = new Set() const headerValuesOrdered: string[] = [] function addH(key: string) { - if(options?.ignoreTags){ - if(key.match(options.ignoreTags)){ + if (options?.ignoreTags) { + if (key.match(options.ignoreTags)) { return } } @@ -746,7 +749,14 @@ export class GeoOperations { */ public static featureToCoordinateWithRenderingType( feature: Feature, - location: "point" | "centroid" | "start" | "end" | "projected_centerpoint" | string + location: + | "point" + | "centroid" + | "start" + | "end" + | "projected_centerpoint" + | "polygon_centerpoint" + | string ): [number, number] | undefined { switch (location) { case "point": @@ -759,6 +769,11 @@ export class GeoOperations { return undefined } return GeoOperations.centerpointCoordinates(feature) + case "polygon_centroid": + if (feature.geometry.type === "Polygon") { + return GeoOperations.centerpointCoordinates(feature) + } + return undefined case "projected_centerpoint": if ( feature.geometry.type === "LineString" || @@ -783,7 +798,7 @@ export class GeoOperations { } return undefined default: - throw "Unkown location type: " + location + throw "Unkown location type: " + location+" for feature "+feature.properties.id } } diff --git a/src/Logic/ImageProviders/AllImageProviders.ts b/src/Logic/ImageProviders/AllImageProviders.ts index 5fc9c1ec7..ae56d267b 100644 --- a/src/Logic/ImageProviders/AllImageProviders.ts +++ b/src/Logic/ImageProviders/AllImageProviders.ts @@ -10,6 +10,8 @@ import { WikidataImageProvider } from "./WikidataImageProvider" * A generic 'from the interwebz' image picker, without attribution */ export default class AllImageProviders { + private static dontLoadFromPrefixes = ["https://photos.app.goo.gl/"] + public static ImageAttributionSource: ImageProvider[] = [ Imgur.singleton, Mapillary.singleton, @@ -19,7 +21,8 @@ export default class AllImageProviders { [].concat( ...Imgur.defaultValuePrefix, ...WikimediaImageProvider.commonsPrefixes, - ...Mapillary.valuePrefixes + ...Mapillary.valuePrefixes, + ...AllImageProviders.dontLoadFromPrefixes ) ), ] diff --git a/src/Logic/MetaTagging.ts b/src/Logic/MetaTagging.ts index 6477bbac7..da5ac32fa 100644 --- a/src/Logic/MetaTagging.ts +++ b/src/Logic/MetaTagging.ts @@ -25,7 +25,7 @@ export default class MetaTagging { >() constructor(state: { - readonly selectedElementAndLayer: Store<{ feature: Feature; layer: LayerConfig }> + readonly selectedElement: Store readonly layout: LayoutConfig readonly osmObjectDownloader: OsmObjectDownloader readonly perLayer: ReadonlyMap @@ -61,7 +61,8 @@ export default class MetaTagging { }) } - state.selectedElementAndLayer.addCallbackAndRunD(({ feature, layer }) => { + state.selectedElement.addCallbackAndRunD((feature) => { + const layer = state.layout.getMatchingLayer(feature.properties) // Force update the tags of the currently selected element MetaTagging.addMetatags( [feature], diff --git a/src/Logic/State/UserRelatedState.ts b/src/Logic/State/UserRelatedState.ts index 5cfe3416d..7892f2691 100644 --- a/src/Logic/State/UserRelatedState.ts +++ b/src/Logic/State/UserRelatedState.ts @@ -73,7 +73,6 @@ export default class UserRelatedState { constructor( osmConnection: OsmConnection, - availableLanguages?: string[], layout?: LayoutConfig, featureSwitches?: FeatureSwitchState, mapProperties?: MapProperties @@ -115,7 +114,8 @@ export default class UserRelatedState { ) this.mangroveIdentity = new MangroveIdentity( - this.osmConnection.GetLongPreference("identity", "mangrove") + this.osmConnection.GetLongPreference("identity", "mangrove"), + this.osmConnection.GetPreference("identity-creation-date", "mangrove") ) this.preferredBackgroundLayer = this.osmConnection.GetPreference( "preferred-background-layer", @@ -365,6 +365,11 @@ export default class UserRelatedState { [translationMode] ) + this.mangroveIdentity.getKeyId().addCallbackAndRun((kid) => { + amendedPrefs.data["mangrove_kid"] = kid + amendedPrefs.ping() + }) + const usersettingMetaTagging = new ThemeMetaTagging() osmConnection.userDetails.addCallback((userDetails) => { for (const k in userDetails) { diff --git a/src/Logic/Tags/And.ts b/src/Logic/Tags/And.ts index 6654ac99e..88be5afcc 100644 --- a/src/Logic/Tags/And.ts +++ b/src/Logic/Tags/And.ts @@ -432,6 +432,6 @@ export class And extends TagsFilter { } asMapboxExpression(): ExpressionSpecification { - return ["all", ...this.and.map(t => t.asMapboxExpression())] + return ["all", ...this.and.map((t) => t.asMapboxExpression())] } } diff --git a/src/Logic/Tags/ComparingTag.ts b/src/Logic/Tags/ComparingTag.ts index 56da517ee..861507c95 100644 --- a/src/Logic/Tags/ComparingTag.ts +++ b/src/Logic/Tags/ComparingTag.ts @@ -13,7 +13,7 @@ export default class ComparingTag implements TagsFilter { key: string, predicate: (value: string | undefined) => boolean, representation: "<" | ">" | "<=" | ">=", - boundary: string, + boundary: string ) { this._key = key this._predicate = predicate diff --git a/src/Logic/Tags/Or.ts b/src/Logic/Tags/Or.ts index 2bda9681c..bd19c0794 100644 --- a/src/Logic/Tags/Or.ts +++ b/src/Logic/Tags/Or.ts @@ -291,6 +291,6 @@ export class Or extends TagsFilter { } asMapboxExpression(): ExpressionSpecification { - return ["any", ...this.or.map(t => t.asMapboxExpression())] + return ["any", ...this.or.map((t) => t.asMapboxExpression())] } } diff --git a/src/Logic/Tags/RegexTag.ts b/src/Logic/Tags/RegexTag.ts index 4f3c82f9b..804913039 100644 --- a/src/Logic/Tags/RegexTag.ts +++ b/src/Logic/Tags/RegexTag.ts @@ -360,8 +360,8 @@ export class RegexTag extends TagsFilter { } asMapboxExpression(): ExpressionSpecification { - if(typeof this.key=== "string" && typeof this.value === "string" ) { - return [this.invert ? "!=" : "==", ["get",this.key], this.value] + if (typeof this.key === "string" && typeof this.value === "string") { + return [this.invert ? "!=" : "==", ["get", this.key], this.value] } throw "TODO" } diff --git a/src/Logic/Tags/Tag.ts b/src/Logic/Tags/Tag.ts index cd8146ccd..67a93efdb 100644 --- a/src/Logic/Tags/Tag.ts +++ b/src/Logic/Tags/Tag.ts @@ -65,7 +65,7 @@ export class Tag extends TagsFilter { asOverpass(): string[] { if (this.value === "") { // NOT having this key - return ["[!\"" + this.key + "\"]"] + return ['[!"' + this.key + '"]'] } return [`["${this.key}"="${this.value}"]`] } @@ -83,7 +83,7 @@ export class Tag extends TagsFilter { asHumanString( linkToWiki?: boolean, shorten?: boolean, - currentProperties?: Record, + currentProperties?: Record ) { let v = this.value if (typeof v !== "string") { @@ -170,12 +170,7 @@ export class Tag extends TagsFilter { asMapboxExpression(): ExpressionSpecification { if (this.value === "") { - return [ - "any", - ["!", ["has", this.key]], - ["==", ["get", this.key], ""], - ] - + return ["any", ["!", ["has", this.key]], ["==", ["get", this.key], ""]] } return ["==", ["get", this.key], this.value] } diff --git a/src/Logic/UIEventSource.ts b/src/Logic/UIEventSource.ts index ed48130ff..70aa5da87 100644 --- a/src/Logic/UIEventSource.ts +++ b/src/Logic/UIEventSource.ts @@ -306,7 +306,8 @@ export abstract class Store implements Readable { export class ImmutableStore extends Store { public readonly data: T - + static FALSE = new ImmutableStore(false) + static TRUE = new ImmutableStore(true) constructor(data: T) { super() this.data = data diff --git a/src/Logic/Web/MangroveReviews.ts b/src/Logic/Web/MangroveReviews.ts index 3aa9582f6..3fa410389 100644 --- a/src/Logic/Web/MangroveReviews.ts +++ b/src/Logic/Web/MangroveReviews.ts @@ -5,10 +5,17 @@ import { Feature, Position } from "geojson" import { GeoOperations } from "../GeoOperations" export class MangroveIdentity { - public readonly keypair: Store - public readonly key_id: Store + private readonly keypair: Store + /** + * Same as the one in the user settings + */ + public readonly mangroveIdentity: UIEventSource + private readonly key_id: Store + private readonly _mangroveIdentityCreationDate: UIEventSource - constructor(mangroveIdentity: UIEventSource) { + constructor(mangroveIdentity: UIEventSource, mangroveIdentityCreationDate: UIEventSource) { + this.mangroveIdentity = mangroveIdentity + this._mangroveIdentityCreationDate = mangroveIdentityCreationDate const key_id = new UIEventSource(undefined) this.key_id = key_id const keypairEventSource = new UIEventSource(undefined) @@ -22,14 +29,6 @@ export class MangroveIdentity { const pem = await MangroveReviews.publicToPem(keypair.publicKey) key_id.setData(pem) }) - - try { - if (!Utils.runningFromConsole && (mangroveIdentity.data ?? "") === "") { - MangroveIdentity.CreateIdentity(mangroveIdentity).then((_) => {}) - } - } catch (e) { - console.error("Could not create identity: ", e) - } } /** @@ -37,14 +36,71 @@ export class MangroveIdentity { * Is written into the UIEventsource, which was passed into the constructor * @constructor */ - private static async CreateIdentity(identity: UIEventSource): Promise { + private async CreateIdentity(): Promise { const keypair = await MangroveReviews.generateKeypair() const jwk = await MangroveReviews.keypairToJwk(keypair) - if ((identity.data ?? "") !== "") { + if ((this.mangroveIdentity.data ?? "") !== "") { // Identity has been loaded via osmPreferences by now - we don't overwrite return } - identity.setData(JSON.stringify(jwk)) + console.log("Creating a new Mangrove identity!") + this.mangroveIdentity.setData(JSON.stringify(jwk)) + this._mangroveIdentityCreationDate.setData(new Date().toISOString()) + } + + /** + * Only called to create a review. + */ + async getKeypair(): Promise { + if (this.keypair.data ?? "" === "") { + // We want to create a review, but it seems like no key has been setup at this moment + // We create the key + try { + if (!Utils.runningFromConsole && (this.mangroveIdentity.data ?? "") === "") { + await this.CreateIdentity() + } + } catch (e) { + console.error("Could not create identity: ", e) + } + } + return this.keypair.data + } + + getKeyId(): Store { + return this.key_id + } + + private allReviewsById: UIEventSource<(Review & { kid: string; signature: string })[]> = + undefined + + /** + * Gets all reviews that are made for the current identity. + */ + public getAllReviews(): Store<(Review & { kid: string; signature: string })[]> { + if (this.allReviewsById !== undefined) { + return this.allReviewsById + } + this.allReviewsById = new UIEventSource([]) + this.key_id.map((pem) => { + if (pem === undefined) { + return [] + } + MangroveReviews.getReviews({ + kid: pem, + }).then((allReviews) => { + this.allReviewsById.setData( + allReviews.reviews.map((r) => ({ + ...r, + ...r.payload, + })) + ) + }) + }) + return this.allReviewsById + } + + addReview(review: Review & { kid; signature }) { + this.allReviewsById?.setData(this.allReviewsById?.data?.concat([review])) } } @@ -73,7 +129,7 @@ export default class FeatureReviews { private constructor( feature: Feature, tagsSource: UIEventSource>, - mangroveIdentity?: MangroveIdentity, + mangroveIdentity: MangroveIdentity, options?: { nameKey?: "name" | string fallbackName?: string @@ -82,8 +138,7 @@ export default class FeatureReviews { ) { const centerLonLat = GeoOperations.centerpointCoordinates(feature) ;[this._lon, this._lat] = centerLonLat - this._identity = - mangroveIdentity ?? new MangroveIdentity(new UIEventSource(undefined)) + this._identity = mangroveIdentity const nameKey = options?.nameKey ?? "name" if (feature.geometry.type === "Point") { @@ -176,24 +231,33 @@ export default class FeatureReviews { * The given review is uploaded to mangrove.reviews and added to the list of known reviews */ public async createReview(review: Omit): Promise { - if(review.opinion.length > FeatureReviews .REVIEW_OPINION_MAX_LENGTH){ - throw "Opinion too long, should be at most "+FeatureReviews.REVIEW_OPINION_MAX_LENGTH+" characters long" + if ( + review.opinion !== undefined && + review.opinion.length > FeatureReviews.REVIEW_OPINION_MAX_LENGTH + ) { + throw ( + "Opinion too long, should be at most " + + FeatureReviews.REVIEW_OPINION_MAX_LENGTH + + " characters long" + ) } const r: Review = { sub: this.subjectUri.data, ...review, } - const keypair: CryptoKeyPair = this._identity.keypair.data + const keypair: CryptoKeyPair = await this._identity.getKeypair() const jwt = await MangroveReviews.signReview(keypair, r) const kid = await MangroveReviews.publicToPem(keypair.publicKey) await MangroveReviews.submitReview(jwt) - this._reviews.data.push({ + const reviewWithKid = { ...r, kid, signature: jwt, madeByLoggedInUser: new ImmutableStore(true), - }) + } + this._reviews.data.push(reviewWithKid) this._reviews.ping() + this._identity.addReview(reviewWithKid) } /** @@ -235,7 +299,7 @@ export default class FeatureReviews { ...review, kid: reviewData.kid, signature: reviewData.signature, - madeByLoggedInUser: this._identity.key_id.map((user_key_id) => { + madeByLoggedInUser: this._identity.getKeyId().map((user_key_id) => { return reviewData.kid === user_key_id }), }) diff --git a/src/Logic/Web/ThemeViewStateHashActor.ts b/src/Logic/Web/ThemeViewStateHashActor.ts index 129de09ce..817d7173a 100644 --- a/src/Logic/Web/ThemeViewStateHashActor.ts +++ b/src/Logic/Web/ThemeViewStateHashActor.ts @@ -115,7 +115,6 @@ export default class ThemeViewStateHashActor { "" ) selectedElement.setData(found) - state.selectedLayer.setData(layer) return true } diff --git a/src/Models/RasterLayers.ts b/src/Models/RasterLayers.ts index 39adfd847..8ce528bde 100644 --- a/src/Models/RasterLayers.ts +++ b/src/Models/RasterLayers.ts @@ -52,7 +52,9 @@ export class AvailableRasterLayers { type: "Feature", properties: { name: "MapTiler", - url: "https://api.maptiler.com/maps/15cc8f61-0353-4be6-b8da-13daea5f7432/style.json?key="+Constants.maptilerApiKey, + url: + "https://api.maptiler.com/maps/15cc8f61-0353-4be6-b8da-13daea5f7432/style.json?key=" + + Constants.maptilerApiKey, category: "osmbasedmap", id: "maptiler", type: "vector", diff --git a/src/Models/ThemeConfig/Conversion/Conversion.ts b/src/Models/ThemeConfig/Conversion/Conversion.ts index 7603e5685..d9c4eeece 100644 --- a/src/Models/ThemeConfig/Conversion/Conversion.ts +++ b/src/Models/ThemeConfig/Conversion/Conversion.ts @@ -156,7 +156,7 @@ export class On extends DesugaringStep { convert(json: T, context: ConversionContext): T { const key = this.key - const value: P = json[key] + const value: P = json?.[key] if (value === undefined || value === null) { return json } diff --git a/src/Models/ThemeConfig/Conversion/PrepareTheme.ts b/src/Models/ThemeConfig/Conversion/PrepareTheme.ts index 6a8127fe8..92585607d 100644 --- a/src/Models/ThemeConfig/Conversion/PrepareTheme.ts +++ b/src/Models/ThemeConfig/Conversion/PrepareTheme.ts @@ -366,7 +366,7 @@ class AddDependencyLayersToTheme extends DesugaringStep { themeId: string ): { config: LayerConfigJson; reason: string }[] { const dependenciesToAdd: { config: LayerConfigJson; reason: string }[] = [] - const loadedLayerIds: Set = new Set(alreadyLoaded.map((l) => l.id)) + const loadedLayerIds: Set = new Set(alreadyLoaded.map((l) => l?.id)) // Verify cross-dependencies let unmetDependencies: { @@ -565,25 +565,39 @@ class PostvalidateTheme extends DesugaringStep { convert(json: LayoutConfigJson, context: ConversionContext): LayoutConfigJson { for (const l of json.layers) { - const layer = l - const basedOn = layer["_basedOn"] + const layer = l + const basedOn = layer["_basedOn"] const basedOnDef = this._state.sharedLayers.get(basedOn) - if(!basedOn){ + if (!basedOn) { continue } - if(layer["name"] === null){ + if (layer["name"] === null) { continue } - const sameBasedOn = json.layers.filter(l => l["_basedOn"] === layer["_basedOn"] && l["id"] !== layer.id) - const minZoomAll = Math.min(...sameBasedOn.map(sbo => sbo.minzoom)) + const sameBasedOn = ( + json.layers.filter( + (l) => l["_basedOn"] === layer["_basedOn"] && l["id"] !== layer.id + ) + ) + const minZoomAll = Math.min(...sameBasedOn.map((sbo) => sbo.minzoom)) - const sameNameDetected = sameBasedOn.some( same => JSON.stringify(layer["name"]) === JSON.stringify(same["name"])) - if(!sameNameDetected){ + const sameNameDetected = sameBasedOn.some( + (same) => JSON.stringify(layer["name"]) === JSON.stringify(same["name"]) + ) + if (!sameNameDetected) { // The name is unique, so it'll won't be confusing continue } - if(minZoomAll < layer.minzoom){ - context.err("There are multiple layers based on "+basedOn+". The layer with id "+layer.id+" has a minzoom of "+layer.minzoom+", and has a name set. Another similar layer has a lower minzoom. As such, the layer selection might show 'zoom in to see features' even though some of the features are already visible. Set `\"name\": null` for this layer and eventually remove the 'name':null for the other layer.") + if (minZoomAll < layer.minzoom) { + context.err( + "There are multiple layers based on " + + basedOn + + ". The layer with id " + + layer.id + + " has a minzoom of " + + layer.minzoom + + ", and has a name set. Another similar layer has a lower minzoom. As such, the layer selection might show 'zoom in to see features' even though some of the features are already visible. Set `\"name\": null` for this layer and eventually remove the 'name':null for the other layer." + ) } } diff --git a/src/Models/ThemeConfig/Conversion/Validation.ts b/src/Models/ThemeConfig/Conversion/Validation.ts index bbf306ce1..589f11a17 100644 --- a/src/Models/ThemeConfig/Conversion/Validation.ts +++ b/src/Models/ThemeConfig/Conversion/Validation.ts @@ -907,8 +907,12 @@ class MiscTagRenderingChecks extends DesugaringStep { ) } - if(json.icon?.["size"]){ - context.enters("icon","size").err("size is not a valid attribute. Did you mean 'class'? Class can be one of `small`, `medium` or `large`") + if (json.icon?.["size"]) { + context + .enters("icon", "size") + .err( + "size is not a valid attribute. Did you mean 'class'? Class can be one of `small`, `medium` or `large`" + ) } if (json.freeform) { diff --git a/src/Models/ThemeConfig/Json/LineRenderingConfigJson.ts b/src/Models/ThemeConfig/Json/LineRenderingConfigJson.ts index fd75122af..8294a0618 100644 --- a/src/Models/ThemeConfig/Json/LineRenderingConfigJson.ts +++ b/src/Models/ThemeConfig/Json/LineRenderingConfigJson.ts @@ -82,5 +82,5 @@ export default interface LineRenderingConfigJson { * suggestions: [{if: "./assets/png/oneway.png", then: "Show a oneway error"}] * type: image */ - imageAlongWay?: {if: TagConfigJson, then: string}[] | string + imageAlongWay?: { if: TagConfigJson; then: string }[] | string } diff --git a/src/Models/ThemeConfig/Json/PointRenderingConfigJson.ts b/src/Models/ThemeConfig/Json/PointRenderingConfigJson.ts index 96e94481b..e423ffcdb 100644 --- a/src/Models/ThemeConfig/Json/PointRenderingConfigJson.ts +++ b/src/Models/ThemeConfig/Json/PointRenderingConfigJson.ts @@ -28,9 +28,17 @@ export default interface PointRenderingConfigJson { /** * question: At what location should this icon be shown? * multianswer: true - * suggestions: return [{if: "value=point",then: "Show an icon for point (node) objects"},{if: "value=centroid",then: "Show an icon for line or polygon (way) objects at their centroid location"}, {if: "value=start",then: "Show an icon for line (way) objects at the start"},{if: "value=end",then: "Show an icon for line (way) object at the end"},{if: "value=projected_centerpoint",then: "Show an icon for line (way) object near the centroid location, but moved onto the line"}] + * suggestions: return [{if: "value=point",then: "Show an icon for point (node) objects"},{if: "value=centroid",then: "Show an icon for line or polygon (way) objects at their centroid location"}, {if: "value=start",then: "Show an icon for line (way) objects at the start"},{if: "value=end",then: "Show an icon for line (way) object at the end"},{if: "value=projected_centerpoint",then: "Show an icon for line (way) object near the centroid location, but moved onto the line. Does not show an item on polygons"}, ,{if: "value=polygon_centroid",then: "Show an icon at a polygon centroid (but not if it is a way)"}] */ - location: ("point" | "centroid" | "start" | "end" | "projected_centerpoint" | string)[] + location: ( + | "point" + | "centroid" + | "start" + | "end" + | "projected_centerpoint" + | "polygon_centroid" + | string + )[] /** * The marker for an element. diff --git a/src/Models/ThemeConfig/LayerConfig.ts b/src/Models/ThemeConfig/LayerConfig.ts index caf7d4393..b42bc7855 100644 --- a/src/Models/ThemeConfig/LayerConfig.ts +++ b/src/Models/ThemeConfig/LayerConfig.ts @@ -467,7 +467,7 @@ export default class LayerConfig extends WithContextLoader { new Link( Utils.runningFromConsole ? "" - : new SvelteUIElement(Statistics, {class: "w-4 h-4 mr-2"}), + : new SvelteUIElement(Statistics, { class: "w-4 h-4 mr-2" }), "https://taginfo.openstreetmap.org/keys/" + values.key + "#values", true ), diff --git a/src/Models/ThemeConfig/LineRenderingConfig.ts b/src/Models/ThemeConfig/LineRenderingConfig.ts index bb52e2cff..260ab6414 100644 --- a/src/Models/ThemeConfig/LineRenderingConfig.ts +++ b/src/Models/ThemeConfig/LineRenderingConfig.ts @@ -13,7 +13,7 @@ export default class LineRenderingConfig extends WithContextLoader { public readonly fill: TagRenderingConfig public readonly fillColor: TagRenderingConfig public readonly leftRightSensitive: boolean - public readonly imageAlongWay: { if?: TagsFilter, then: string }[] + public readonly imageAlongWay: { if?: TagsFilter; then: string }[] constructor(json: LineRenderingConfigJson, context: string) { super(json, context) @@ -33,15 +33,13 @@ export default class LineRenderingConfig extends WithContextLoader { for (let i = 0; i < json.imageAlongWay.length; i++) { const imgAlong = json.imageAlongWay[i] const ctx = context + ".imageAlongWay[" + i + "]" - if(!imgAlong.then.endsWith(".png")){ + if (!imgAlong.then.endsWith(".png")) { throw "An imageAlongWay should always be a PNG image" } - this.imageAlongWay.push( - { - if: TagUtils.Tag(imgAlong.if, ctx), - then: imgAlong.then, - }, - ) + this.imageAlongWay.push({ + if: TagUtils.Tag(imgAlong.if, ctx), + then: imgAlong.then, + }) } } } diff --git a/src/Models/ThemeConfig/PointRenderingConfig.ts b/src/Models/ThemeConfig/PointRenderingConfig.ts index 4f83499c5..ca3cd22f5 100644 --- a/src/Models/ThemeConfig/PointRenderingConfig.ts +++ b/src/Models/ThemeConfig/PointRenderingConfig.ts @@ -38,9 +38,16 @@ export default class PointRenderingConfig extends WithContextLoader { "start", "end", "projected_centerpoint", + "polygon_centroid", ]) public readonly location: Set< - "point" | "centroid" | "start" | "end" | "projected_centerpoint" | string + | "point" + | "centroid" + | "start" + | "end" + | "projected_centerpoint" + | "polygon_centroid" + | string > public readonly marker: IconConfig[] diff --git a/src/Models/ThemeViewState.ts b/src/Models/ThemeViewState.ts index 4895ee1aa..911c4700d 100644 --- a/src/Models/ThemeViewState.ts +++ b/src/Models/ThemeViewState.ts @@ -84,7 +84,6 @@ export default class ThemeViewState implements SpecialVisualizationState { readonly osmConnection: OsmConnection readonly selectedElement: UIEventSource - readonly selectedElementAndLayer: Store<{ feature: Feature; layer: LayerConfig }> readonly mapProperties: MapLibreAdaptor & MapProperties & ExportableMap readonly osmObjectDownloader: OsmObjectDownloader @@ -112,7 +111,6 @@ export default class ThemeViewState implements SpecialVisualizationState { readonly perLayerFiltered: ReadonlyMap readonly availableLayers: Store - readonly selectedLayer: UIEventSource readonly userRelatedState: UserRelatedState readonly geolocation: GeoLocationHandler readonly geolocationControl: GeolocationControlState @@ -171,7 +169,6 @@ export default class ThemeViewState implements SpecialVisualizationState { }) this.userRelatedState = new UserRelatedState( this.osmConnection, - layout?.language, layout, this.featureSwitches, this.mapProperties @@ -180,18 +177,6 @@ export default class ThemeViewState implements SpecialVisualizationState { this.mapProperties.allowRotating.setData(fixated !== "yes") }) this.selectedElement = new UIEventSource(undefined, "Selected element") - this.selectedLayer = new UIEventSource(undefined, "Selected layer") - - this.selectedElementAndLayer = this.selectedElement.mapD( - (feature) => { - const layer = this.selectedLayer.data - if (!layer) { - return undefined - } - return { layer, feature } - }, - [this.selectedLayer] - ) this.geolocation = new GeoLocationHandler( geolocationState, @@ -435,7 +420,6 @@ export default class ThemeViewState implements SpecialVisualizationState { doShowLayer, metaTags: this.userRelatedState.preferencesAsTags, selectedElement: this.selectedElement, - selectedLayer: this.selectedLayer, fetchStore: (id) => this.featureProperties.getStore(id), }) }) @@ -443,14 +427,12 @@ export default class ThemeViewState implements SpecialVisualizationState { } public openNewDialog() { - this.selectedLayer.setData(undefined) this.selectedElement.setData(undefined) const { lon, lat } = this.mapProperties.location.data const feature = this.lastClickObject.createFeature(lon, lat) this.featureProperties.trackFeature(feature) this.selectedElement.setData(feature) - this.selectedLayer.setData(this.newPointDialog.layerDef) } /** @@ -515,14 +497,12 @@ export default class ThemeViewState implements SpecialVisualizationState { } const layer = this.layout.getMatchingLayer(toSelect.properties) this.selectedElement.setData(undefined) - this.selectedLayer.setData(layer) this.selectedElement.setData(toSelect) }) return } const layer = this.layout.getMatchingLayer(toSelect.properties) this.selectedElement.setData(undefined) - this.selectedLayer.setData(layer) this.selectedElement.setData(toSelect) } @@ -752,7 +732,6 @@ export default class ThemeViewState implements SpecialVisualizationState { layer: flayer.layerDef, metaTags: this.userRelatedState.preferencesAsTags, selectedElement: this.selectedElement, - selectedLayer: this.selectedLayer, }) }) } @@ -766,7 +745,6 @@ export default class ThemeViewState implements SpecialVisualizationState { console.trace("Unselected") // We did _unselect_ an item - we always remove the lastclick-object this.lastClickObject.features.setData([]) - this.selectedLayer.setData(undefined) this.focusOnMap() } }) diff --git a/src/Sensors/Orientation.ts b/src/Sensors/Orientation.ts index ca71cf2b5..9a634e87f 100644 --- a/src/Sensors/Orientation.ts +++ b/src/Sensors/Orientation.ts @@ -77,6 +77,9 @@ export class Orientation { } private update(event: DeviceOrientationEvent) { + if (event.alpha === null || event.beta === null || event.gamma === null) { + return + } this.gotMeasurement.setData(true) // IF the phone is lying flat, then: // alpha is the compass direction (but not absolute) diff --git a/src/UI/AllThemesGui.svelte b/src/UI/AllThemesGui.svelte index 15464fd27..5c1694fb4 100644 --- a/src/UI/AllThemesGui.svelte +++ b/src/UI/AllThemesGui.svelte @@ -56,7 +56,11 @@ .filter((key) => key.startsWith(prefix)) .map((key) => key.substring(prefix.length, key.length - "-enabled".length)) ) - return hiddenThemes.filter((theme) => knownIds.has(theme.id) || state.osmConnection.userDetails.data.name === "Pieter Vander Vennet") + return hiddenThemes.filter( + (theme) => + knownIds.has(theme.id) || + state.osmConnection.userDetails.data.name === "Pieter Vander Vennet" + ) }) } diff --git a/src/UI/Base/Checkbox.svelte b/src/UI/Base/Checkbox.svelte index b2efcb578..6580aeeb1 100644 --- a/src/UI/Base/Checkbox.svelte +++ b/src/UI/Base/Checkbox.svelte @@ -6,10 +6,14 @@ */ export let selected: UIEventSource let _c: boolean = selected.data ?? true + let id = `checkbox-input-${Math.round(Math.random()*100000000)}` $: selected.set(_c) + selected.addCallbackD(s => { + _c = s + }) diff --git a/src/UI/Base/DirectionIndicator.svelte b/src/UI/Base/DirectionIndicator.svelte index d636ef5a7..200684353 100644 --- a/src/UI/Base/DirectionIndicator.svelte +++ b/src/UI/Base/DirectionIndicator.svelte @@ -39,9 +39,9 @@ let relativeDirections = Translations.t.general.visualFeedback.directionsRelative let absoluteDirections = Translations.t.general.visualFeedback.directionsAbsolute - - function round10(n :number){ - if(n < 50){ + + function round10(n: number) { + if (n < 50) { return n } return Math.round(n / 10) * 10 @@ -132,7 +132,10 @@ so we use a 'div' and add on:click manually -->
focusMap()} use:ariaLabelStore={label} > @@ -140,18 +143,18 @@
{:else}
focusMap()} use:ariaLabelStore={label} >
{$label} @@ -170,11 +173,11 @@ diff --git a/src/UI/Base/FileSelector.svelte b/src/UI/Base/FileSelector.svelte index 8e9b203a4..9caaeca60 100644 --- a/src/UI/Base/FileSelector.svelte +++ b/src/UI/Base/FileSelector.svelte @@ -16,19 +16,22 @@ if (e.target["id"] == id) { return } - if(formElement.contains(e.target) || document.getElementsByClassName("selected-element-view")[0]?.contains(e.target)){ + if ( + formElement.contains(e.target) || + document.getElementsByClassName("selected-element-view")[0]?.contains(e.target) + ) { e.preventDefault() - - if(e.type === "drop"){ + + if (e.type === "drop") { console.log("Got a 'drop'", e) drawAttention = false dispatcher("submit", e.dataTransfer.files) return } - + drawAttention = true e.dataTransfer.dropEffect = "copy" - + return /* drawAttention = false @@ -50,7 +53,6 @@ window.removeEventListener("dragover", handleDragEvent) window.removeEventListener("drop", handleDragEvent) }) -
-
{}}> +
{}}>
diff --git a/src/UI/Base/LoginButton.svelte b/src/UI/Base/LoginButton.svelte index d582684ef..1524e2a89 100644 --- a/src/UI/Base/LoginButton.svelte +++ b/src/UI/Base/LoginButton.svelte @@ -9,7 +9,7 @@ + +
+ {#each layout.tileLayerSources as tilesource} - import type { SpecialVisualizationState } from "../SpecialVisualization" - import LocationInput from "../InputElement/Helpers/LocationInput.svelte" - import { UIEventSource } from "../../Logic/UIEventSource" - import { Tiles } from "../../Models/TileRange" - import { Map as MlMap } from "maplibre-gl" - import { BBox } from "../../Logic/BBox" - import type { MapProperties } from "../../Models/MapProperties" - import ShowDataLayer from "../Map/ShowDataLayer" - import type { - FeatureSource, - FeatureSourceForLayer, - } from "../../Logic/FeatureSource/FeatureSource" - import SnappingFeatureSource from "../../Logic/FeatureSource/Sources/SnappingFeatureSource" - import FeatureSourceMerger from "../../Logic/FeatureSource/Sources/FeatureSourceMerger" - import LayerConfig from "../../Models/ThemeConfig/LayerConfig" - import { Utils } from "../../Utils" - import { createEventDispatcher } from "svelte" - import Move_arrows from "../../assets/svg/Move_arrows.svelte" + import type { SpecialVisualizationState } from "../SpecialVisualization" + import LocationInput from "../InputElement/Helpers/LocationInput.svelte" + import { UIEventSource } from "../../Logic/UIEventSource" + import { Tiles } from "../../Models/TileRange" + import { Map as MlMap } from "maplibre-gl" + import { BBox } from "../../Logic/BBox" + import type { MapProperties } from "../../Models/MapProperties" + import ShowDataLayer from "../Map/ShowDataLayer" + import type { + FeatureSource, + FeatureSourceForLayer, + } from "../../Logic/FeatureSource/FeatureSource" + import SnappingFeatureSource from "../../Logic/FeatureSource/Sources/SnappingFeatureSource" + import FeatureSourceMerger from "../../Logic/FeatureSource/Sources/FeatureSourceMerger" + import LayerConfig from "../../Models/ThemeConfig/LayerConfig" + import { Utils } from "../../Utils" + import { createEventDispatcher } from "svelte" + import Move_arrows from "../../assets/svg/Move_arrows.svelte" - /** - * An advanced location input, which has support to: - * - Show more layers - * - Snap to layers - * - * This one is mostly used to insert new points, including when importing - */ - export let state: SpecialVisualizationState - /** - * The start coordinate - */ - export let coordinate: { lon: number; lat: number } + /** + * An advanced location input, which has support to: + * - Show more layers + * - Snap to layers + * + * This one is mostly used to insert new points, including when importing + */ + export let state: SpecialVisualizationState + /** + * The start coordinate + */ + export let coordinate: { lon: number; lat: number } - /** - * The center of the map at all times - * If undefined at the beginning, 'coordinate' will be used - */ - export let value: UIEventSource<{ lon: number; lat: number }> - if (value.data === undefined) { - value.setData(coordinate) + /** + * The center of the map at all times + * If undefined at the beginning, 'coordinate' will be used + */ + export let value: UIEventSource<{ lon: number; lat: number }> + if (value.data === undefined) { + value.setData(coordinate) + } + if (coordinate === undefined) { + coordinate = value.data + } + export let snapToLayers: string[] | undefined + export let targetLayer: LayerConfig | undefined + export let maxSnapDistance: number = undefined + + export let snappedTo: UIEventSource + + let preciseLocation: UIEventSource<{ lon: number; lat: number }> = new UIEventSource<{ + lon: number + lat: number + }>(undefined) + + const dispatch = createEventDispatcher<{ click: { lon: number; lat: number } }>() + + const xyz = Tiles.embedded_tile(coordinate.lat, coordinate.lon, 16) + const map: UIEventSource = new UIEventSource(undefined) + let initialMapProperties: Partial & { location } = { + zoom: new UIEventSource(19), + maxbounds: new UIEventSource(undefined), + /*If no snapping needed: the value is simply the map location; + * If snapping is needed: the value will be set later on by the snapping feature source + * */ + location: + snapToLayers?.length > 0 + ? new UIEventSource<{ lon: number; lat: number }>(coordinate) + : value, + bounds: new UIEventSource(undefined), + allowMoving: new UIEventSource(true), + allowZooming: new UIEventSource(true), + minzoom: new UIEventSource(18), + rasterLayer: UIEventSource.feedFrom(state.mapProperties.rasterLayer), + } + + if (targetLayer) { + const featuresForLayer = state.perLayer.get(targetLayer.id) + if (featuresForLayer) { + new ShowDataLayer(map, { + layer: targetLayer, + features: featuresForLayer, + }) } - if (coordinate === undefined) { - coordinate = value.data + } + + if (snapToLayers?.length > 0) { + const snapSources: FeatureSource[] = [] + for (const layerId of snapToLayers ?? []) { + const layer: FeatureSourceForLayer = state.perLayer.get(layerId) + snapSources.push(layer) + if (layer.features === undefined) { + continue + } + new ShowDataLayer(map, { + layer: layer.layer.layerDef, + zoomToFeatures: false, + features: layer, + }) } - export let snapToLayers: string[] | undefined - export let targetLayer: LayerConfig | undefined - export let maxSnapDistance: number = undefined + const snappedLocation = new SnappingFeatureSource( + new FeatureSourceMerger(...Utils.NoNull(snapSources)), + // We snap to the (constantly updating) map location + initialMapProperties.location, + { + maxDistance: maxSnapDistance ?? 15, + allowUnsnapped: true, + snappedTo, + snapLocation: value, + } + ) - export let snappedTo: UIEventSource - - let preciseLocation: UIEventSource<{ lon: number; lat: number }> = new UIEventSource<{ - lon: number - lat: number - }>(undefined) - - const dispatch = createEventDispatcher<{ click: { lon: number; lat: number } }>() - - const xyz = Tiles.embedded_tile(coordinate.lat, coordinate.lon, 16) - const map: UIEventSource = new UIEventSource(undefined) - let initialMapProperties: Partial & {location} = { - zoom: new UIEventSource(19), - maxbounds: new UIEventSource(undefined), - /*If no snapping needed: the value is simply the map location; - * If snapping is needed: the value will be set later on by the snapping feature source - * */ - location: - snapToLayers?.length > 0 - ? new UIEventSource<{ lon: number; lat: number }>(coordinate) - : value, - bounds: new UIEventSource(undefined), - allowMoving: new UIEventSource(true), - allowZooming: new UIEventSource(true), - minzoom: new UIEventSource(18), - rasterLayer: UIEventSource.feedFrom(state.mapProperties.rasterLayer), - } - - if (targetLayer) { - const featuresForLayer = state.perLayer.get(targetLayer.id) - if (featuresForLayer) { - new ShowDataLayer(map, { - layer: targetLayer, - features: featuresForLayer, - }) - } - } - - if (snapToLayers?.length > 0) { - const snapSources: FeatureSource[] = [] - for (const layerId of snapToLayers ?? []) { - const layer: FeatureSourceForLayer = state.perLayer.get(layerId) - snapSources.push(layer) - if (layer.features === undefined) { - continue - } - new ShowDataLayer(map, { - layer: layer.layer.layerDef, - zoomToFeatures: false, - features: layer, - }) - } - const snappedLocation = new SnappingFeatureSource( - new FeatureSourceMerger(...Utils.NoNull(snapSources)), - // We snap to the (constantly updating) map location - initialMapProperties.location, - { - maxDistance: maxSnapDistance ?? 15, - allowUnsnapped: true, - snappedTo, - snapLocation: value, - } - ) - - new ShowDataLayer(map, { - layer: targetLayer, - features: snappedLocation, - }) - } + new ShowDataLayer(map, { + layer: targetLayer, + features: snappedLocation, + }) + } {t.noMatchingThemes.toString()}
diff --git a/src/UI/BigComponents/ReverseGeocoding.svelte b/src/UI/BigComponents/ReverseGeocoding.svelte index 451999722..2674fa2be 100644 --- a/src/UI/BigComponents/ReverseGeocoding.svelte +++ b/src/UI/BigComponents/ReverseGeocoding.svelte @@ -20,7 +20,7 @@ let result = await Geocoding.reverse( mapProperties.location.data, mapProperties.zoom.data, - Locale.language.data, + Locale.language.data ) let properties = result.features[0].properties currentLocation = properties.display_name @@ -44,7 +44,7 @@ () => { displayLocation() }, - [Translations.t.hotkeyDocumentation.shakePhone], + [Translations.t.hotkeyDocumentation.shakePhone] ) Motion.singleton.startListening() diff --git a/src/UI/BigComponents/SelectedElementTitle.svelte b/src/UI/BigComponents/SelectedElementTitle.svelte index cc36901a7..be5aeaf32 100644 --- a/src/UI/BigComponents/SelectedElementTitle.svelte +++ b/src/UI/BigComponents/SelectedElementTitle.svelte @@ -13,7 +13,7 @@ export let layer: LayerConfig export let selectedElement: Feature let tags: UIEventSource> = state.featureProperties.getStore( - selectedElement.properties.id, + selectedElement.properties.id ) $: { tags = state.featureProperties.getStore(selectedElement.properties.id) @@ -25,9 +25,9 @@ {#if $tags._deleted === "yes"} {:else} -
-
-
+
+
+

@@ -39,7 +39,7 @@ class="no-weblate title-icons links-as-button mr-2 flex flex-row flex-wrap items-center gap-x-0.5 pt-0.5 sm:pt-1" > {#each layer.titleIcons as titleIconConfig} - {#if (titleIconConfig.condition?.matchesProperties($tags) ?? true) && (titleIconConfig.metacondition?.matchesProperties({ ...$metatags, ...$tags }) ?? true) && titleIconConfig.IsKnown($tags)} + {#if (titleIconConfig.condition?.matchesProperties($tags) ?? true) && (titleIconConfig.metacondition?.matchesProperties( { ...$metatags, ...$tags } ) ?? true) && titleIconConfig.IsKnown($tags)}
state.selectedElement.setData(undefined)} use:ariaLabel={Translations.t.general.backToMap} - class="rounded-full border-none p-0 shrink-0 h-fit mt-2" + class="mt-2 h-fit shrink-0 rounded-full border-none p-0" style="border: 0 !important; padding: 0 !important;" > -
{/if} diff --git a/src/UI/BigComponents/SelectedElementView.svelte b/src/UI/BigComponents/SelectedElementView.svelte index 4fc37b11d..c9b1afd7b 100644 --- a/src/UI/BigComponents/SelectedElementView.svelte +++ b/src/UI/BigComponents/SelectedElementView.svelte @@ -17,6 +17,9 @@ export let tags: UIEventSource> = state.featureProperties.getStore( selectedElement.properties.id ) + + + let stillMatches = tags.map(tags => !layer?.source?.osmTags || layer.source.osmTags?.matchesProperties(tags)) let _metatags: Record onDestroy( @@ -35,7 +38,11 @@ ) -{#if $tags._deleted === "yes"} +{#if !$stillMatches} +
+ +
+{:else if $tags._deleted === "yes"}
@@ -43,7 +50,10 @@ {:else} -
+
{#each $knownTagRenderings as config (config.id)} {#if typeof navigator?.share === "function"} {/if} {#if navigator.clipboard !== undefined} diff --git a/src/UI/BigComponents/ThemeButton.svelte b/src/UI/BigComponents/ThemeButton.svelte index c5bea027f..d3c9d9b2f 100644 --- a/src/UI/BigComponents/ThemeButton.svelte +++ b/src/UI/BigComponents/ThemeButton.svelte @@ -92,7 +92,7 @@ {#if selected} -