diff --git a/Docs/ELI-overview.md b/Docs/ELI-overview.md index 13440a692..ac5753bdd 100644 --- a/Docs/ELI-overview.md +++ b/Docs/ELI-overview.md @@ -412,11 +412,12 @@ This table gives a summary of ids, names and other metainformation. [See the onl | osm-hr-knin-2007 | osm-hr: Knin 2007 Aerial imagery | historicphoto | | | | osm-hr-zagreb-2012 | osm-hr: Zagreb 2012 Aerial imagery | historicphoto | | Grad Zagreb, Gradski ured za strategijsko planiranje i razvoj Grada | | osm-hr-zagreb-2018 | osm-hr: Zagreb 2018 Aerial imagery | photo | ⭐ | Grad Zagreb, Gradski ured za strategijsko planiranje i razvoj Grada | -| Budapest_XI_2015 | Budapest district XI orthophoto 2015 | historicphoto | | Budapest XI. kerület önkormányzata | -| Budapest_XI_2017 | Budapest district XI orthophoto 2017 | historicphoto | | Budapest XI. kerület önkormányzata | -| Budapest_XI_2019 | Budapest district XI orthophoto 2019 | historicphoto | | Budapest XI. kerület önkormányzata | -| Budapest_XI_2021 | Budapest district XI orthophoto 2021 | historicphoto | | Budapest XI. kerület önkormányzata | -| Budapest_XI_2023 | Budapest district XI orthophoto 2023 | photo | ⭐ | Budapest XI. kerület önkormányzata | +| Budapest_XI_2015 | Budapest district XI orthophoto 2015 | historicphoto | | Budapest Főváros XI. Kerület Újbuda Önkormányzata | +| Budapest_XI_2017 | Budapest district XI orthophoto 2017 | historicphoto | | Budapest Főváros XI. Kerület Újbuda Önkormányzata | +| Budapest_XI_2019 | Budapest district XI orthophoto 2019 | historicphoto | | Budapest Főváros XI. Kerület Újbuda Önkormányzata | +| Budapest_XI_2021 | Budapest district XI orthophoto 2021 | historicphoto | | Budapest Főváros XI. Kerület Újbuda Önkormányzata | +| Budapest_XI_2023 | Budapest district XI orthophoto 2023 | photo | ⭐ | Budapest Főváros XI. Kerület Újbuda Önkormányzata | +| Budapest_XI_2025 | Budapest district XI orthophoto 2025 | photo | ⭐ | Budapest Főváros XI. Kerület Újbuda Önkormányzata | | FOMI_2015_leafoff_20cm | FÖMI orthophoto 2015 leaf-off 20cm (webp) | photo | | Lechner Tudásközpont | | OpenStreetMap-turistautak | OpenStreetMap (turistautak) | osmbasedmap | | © OpenStreetMap contributors | | Torokbalint-orthophoto-2013 | Törökbálint orthophoto 2013 | historicphoto | | Törökbálint | @@ -527,9 +528,13 @@ This table gives a summary of ids, names and other metainformation. [See the onl | UkraineVinnytsiaTG2021 | Ukraine - Vinnytsia TG 2021 | photo | | © Вінницька міська рада | | Canvec_French | Canvec - French | map | | | | Canvec | Canvec - English | map | | | -| Toronto-Imagery-Most-Current-Year | Toronto Latest Orthoimagery | photo | | Contains information licensed under the Open Government Licence – Toronto | | Geobase_Roads_French | Geobase Roads - French | other | | | | Geobase_Roads | Geobase Roads - English | other | | | +| NRCan-HRDEM-DSM | High Resolution Digital Elevation Model Mosaic (DSM) | elevation | | Contains information licensed under the Open Government Licence – Canada | +| NRCan-HRDEM-DTM | High Resolution Digital Elevation Model Mosaic (DTM) | elevation | | Contains information licensed under the Open Government Licence – Canada | +| Toronto-Imagery-Most-Current-Year | Toronto Latest Orthoimagery | photo | | Contains information licensed under the Open Government Licence – Toronto | +| Ontario_Mosaic_2018-2022_CIR | Ontario Orthophotography Mosaic 2018-2022 (CIR) | photo | | Contains information licensed under the Open Government Licence – Ontario | +| Ontario_Mosaic_2018-2022_RGB | Ontario Orthophotography Mosaic 2018-2022 (RGB) | photo | | Contains information licensed under the Open Government Licence – Ontario | | canaan_drone_red_cross_201712 | Canaan - American Red Cross, Dec-2017 | photo | | American Red Cross | | inegi-wms | INEGI Digital Map of Mexico (WMS) | other | | Instituto Nacional de Estadísticas y Geografía | | NOAA_East_2023 | NOAA NGS East Coast Imagery (2023) | historicphoto | | NOAA National Geodetic Survey | diff --git a/Docs/Layers/address.md b/Docs/Layers/address.md index 8699192c8..dcd45bc66 100644 --- a/Docs/Layers/address.md +++ b/Docs/Layers/address.md @@ -60,67 +60,52 @@ Elements must match **any** of the following expressions: | [unit](#unit) | What is the unit number or letter?
_The unit number is {addr:unit}_
1 options | address, hidden | *[addr:unit](https://wiki.osm.org/wiki/Key:addr:unit)* ([string](../SpecialInputElements.md#string)) | | [fixme](#fixme) | What should be fixed here? Please explain
_Fixme description{fixme}_
1 options | | *[fixme](https://wiki.osm.org/wiki/Key:fixme)* ([string](../SpecialInputElements.md#string)) | | [address-questions](#address-questions) | _{questions(address,,)}_ | address, hidden | _Multiple choice only_ | -| [leftover-questions](#leftover-questions) | _{questions( ,address;hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | +| [leftover-questions](#leftover-questions) | _{questions( ,hidden;address)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | | [lod](#lod)
_(Original in [questions](./BuiltinQuestions.md#lod))_ | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ | ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### fixme - The question is `What should be fixed here? Please explain` *Fixme description{fixme}* is shown if `fixme` is set. @@ -128,39 +113,30 @@ The question is `What should be fixed here? Please explain` - *No fixme - write something here to explain complicated cases* is shown if with fixme= ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### leftover-questions - _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{questions( ,hidden;address)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` This document is autogenerated from [assets/layers/address/address.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/layers/address/address.json) diff --git a/Docs/Layers/building.md b/Docs/Layers/building.md index 22f15ae9f..66c6c63cd 100644 --- a/Docs/Layers/building.md +++ b/Docs/Layers/building.md @@ -60,12 +60,11 @@ Elements must match the expression **building~.+** | [street](#street)
_(Original in [address](./address.md#street))_ | What street is this address located in?
_This address is in street {addr:street}_ | address, hidden | *[addr:street](https://wiki.osm.org/wiki/Key:addr:street)* ([string](../SpecialInputElements.md#string)) | | [unit](#unit)
_(Original in [address](./address.md#unit))_ | What is the unit number or letter?
_The unit number is {addr:unit}_
1 options | address, hidden | *[addr:unit](https://wiki.osm.org/wiki/Key:addr:unit)* ([string](../SpecialInputElements.md#string)) | | [address-questions](#address-questions)
_(Original in [address](./address.md#address-questions))_ | _{questions(address,,)}_ | address, hidden | _Multiple choice only_ | -| [leftover-questions](#leftover-questions) | _{questions( ,address;hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | +| [leftover-questions](#leftover-questions) | _{questions( ,hidden;address)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | | [lod](#lod)
_(Original in [questions](./BuiltinQuestions.md#lod))_ | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ | ### architecture - The question is `What is the architectural style of this building?` *{building:architecture}* is shown if `building:architecture` is set. @@ -106,100 +105,76 @@ The question is `What is the architectural style of this building?` - *Contemporary architecture* is shown if with building:architecture=contemporary ### construction_date - The question is `When was this built?` *Built in {construction_date}* is shown if `construction_date` is set. ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### leftover-questions - _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{questions( ,hidden;address)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` This document is autogenerated from [assets/layers/building/building.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/layers/building/building.json) diff --git a/Docs/Layers/buildings_with_architecture.md b/Docs/Layers/buildings_with_architecture.md index 957a4b1a4..bf3a7522c 100644 --- a/Docs/Layers/buildings_with_architecture.md +++ b/Docs/Layers/buildings_with_architecture.md @@ -64,12 +64,11 @@ Elements must match **all** of the following expressions: | [street](#street)
_(Original in [address](./address.md#street))_ | What street is this address located in?
_This address is in street {addr:street}_ | address, hidden | *[addr:street](https://wiki.osm.org/wiki/Key:addr:street)* ([string](../SpecialInputElements.md#string)) | | [unit](#unit)
_(Original in [address](./address.md#unit))_ | What is the unit number or letter?
_The unit number is {addr:unit}_
1 options | address, hidden | *[addr:unit](https://wiki.osm.org/wiki/Key:addr:unit)* ([string](../SpecialInputElements.md#string)) | | [address-questions](#address-questions)
_(Original in [address](./address.md#address-questions))_ | _{questions(address,,)}_ | address, hidden | _Multiple choice only_ | -| [leftover-questions](#leftover-questions) | _{questions( ,address;hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | +| [leftover-questions](#leftover-questions) | _{questions( ,hidden;address)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | | [lod](#lod)
_(Original in [questions](./BuiltinQuestions.md#lod))_ | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ | ### architecture - The question is `What is the architectural style of this building?` *{building:architecture}* is shown if `building:architecture` is set. @@ -110,100 +109,76 @@ The question is `What is the architectural style of this building?` - *Contemporary architecture* is shown if with building:architecture=contemporary ### construction_date - The question is `When was this built?` *Built in {construction_date}* is shown if `construction_date` is set. ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### leftover-questions - _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{questions( ,hidden;address)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` This document is autogenerated from [assets/themes/architecture/architecture.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/themes/architecture/architecture.json) diff --git a/Docs/Layers/dentist.md b/Docs/Layers/dentist.md index 9b5c70267..a9e0cfd9d 100644 --- a/Docs/Layers/dentist.md +++ b/Docs/Layers/dentist.md @@ -82,7 +82,7 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone - The question is `What is the phone number of {title()}?` *{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### email - The question is `What is the email address of {title()}?` *{email}* is shown if `email` is set. @@ -121,121 +117,93 @@ The question is `What is the email address of {title()}?` - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### website - The question is `What is the website of {title()}?` *{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### name - The question is `What is the name of this dentist?` *This dentist is called {name}* is shown if `name` is set. ### leftover-questions - _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{questions( ,hidden;address)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### delete-button - _This tagrendering has no question and is thus read-only_ *{delete_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` ## Filters diff --git a/Docs/Layers/doctors.md b/Docs/Layers/doctors.md index bfd2f80d5..24f586923 100644 --- a/Docs/Layers/doctors.md +++ b/Docs/Layers/doctors.md @@ -5,6 +5,7 @@ This layer shows doctor offices - This layer is shown at zoomlevel **10** and higher + - This layer will automatically load [toilet](./toilet.md) into the layout as it depends on it: tagrendering has_toilets needs this layer (has_toilets) ## Table of contents @@ -28,6 +29,49 @@ This layer shows doctor offices - [unit](#unit) - [address-questions](#address-questions) - [specialty](#specialty) + - [toilets-group](#toilets-group) + - [grouptitle](#grouptitle) + - [has_toilets](#has_toilets) + - [images_toilet](#images_toilet) + - [toilets_repeated](#toilets_repeated) + - [toilets_single_level](#toilets_single_level) + - [toilets_toilet-access](#toilets_toilet-access) + - [toilets_toilets-fee](#toilets_toilets-fee) + - [toilets_toilet-charge](#toilets_toilet-charge) + - [toilets_payment-options-split](#toilets_payment-options-split) + - [toilets_gender_segregated](#toilets_gender_segregated) + - [toilets_toilet-supervised](#toilets_toilet-supervised) + - [toilets_description](#toilets_description) + - [toilets_toilets-wheelchair](#toilets_toilets-wheelchair) + - [toilets-type](#toilets-type) + - [toilets-disposal](#toilets-disposal) + - [menstrual_products](#menstrual_products) + - [menstrual_products_location](#menstrual_products_location) + - [toilets-changing-table](#toilets-changing-table) + - [toilet-changing_table:location](#toilet-changing_tablelocation) + - [toilet-has-paper](#toilet-has-paper) + - [toilet-handwashing](#toilet-handwashing) + - [toilet-drying](#toilet-drying) + - [wheelchair-group](#wheelchair-group) + - [wheelchair-picture-carousel](#wheelchair-picture-carousel) + - [wheelchair-picture](#wheelchair-picture) + - [wheelchair-title](#wheelchair-title) + - [toilet-wheelchair-access](#toilet-wheelchair-access) + - [toilets_wheelchair_has_grab_rail_lr](#toilets_wheelchair_has_grab_rail_lr) + - [toilets_wheelchair_has_grab_rail_behind](#toilets_wheelchair_has_grab_rail_behind) + - [toilets_wheelchair_is_foldable_left](#toilets_wheelchair_is_foldable_left) + - [toilets_wheelchair_is_foldable_right](#toilets_wheelchair_is_foldable_right) + - [wheelchair-door-width](#wheelchair-door-width) + - [questions-wheelchair](#questions-wheelchair) + - [adult_changing_table_title](#adult_changing_table_title) + - [adult-changing-table](#adult-changing-table) + - [changing_table_adult_height](#changing_table_adult_height) + - [changing_table_adult_adult-changing-table-min_height](#changing_table_adult_adult-changing-table-min_height) + - [changing_table_adult_adult-changing-table-max_height](#changing_table_adult_adult-changing-table-max_height) + - [changing_table_adult_adult-changing-table-mechanism](#changing_table_adult_adult-changing-table-mechanism) + - [changing_table_adult_adult-changing-table-support](#changing_table_adult_adult-changing-table-support) + - [questions-adult-changing-table](#questions-adult-changing-table) + - [toilet-question-box](#toilet-question-box) - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [delete-button](#delete-button) @@ -69,6 +113,37 @@ Elements must match the expression ** [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | | | [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) | | [healthcare:speciality](https://wiki.openstreetmap.org/wiki/Key:healthcare:speciality) | [string](../SpecialInputElements.md#string) | [general](https://wiki.openstreetmap.org/wiki/Tag:healthcare:speciality%3Dgeneral) [gynaecology](https://wiki.openstreetmap.org/wiki/Tag:healthcare:speciality%3Dgynaecology) [psychiatry](https://wiki.openstreetmap.org/wiki/Tag:healthcare:speciality%3Dpsychiatry) [paediatrics](https://wiki.openstreetmap.org/wiki/Tag:healthcare:speciality%3Dpaediatrics) | +| [toilets](https://wiki.openstreetmap.org/wiki/Key:toilets) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dno) | +| [toilets](https://wiki.openstreetmap.org/wiki/Key:toilets) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dno) [separate](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dseparate) | +| [toilets:level](https://wiki.openstreetmap.org/wiki/Key:toilets:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:toilets:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:toilets:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:toilets:level%3D-1) | +| [toilets:access](https://wiki.openstreetmap.org/wiki/Key:toilets:access) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dyes) [customers](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dcustomers) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dno) [key](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dkey) | +| [toilets:fee](https://wiki.openstreetmap.org/wiki/Key:toilets:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:fee%3Dno) | +| [toilets:charge](https://wiki.openstreetmap.org/wiki/Key:toilets:charge) | [string](../SpecialInputElements.md#string) | | +| [toilets:gender_segregated](https://wiki.openstreetmap.org/wiki/Key:toilets:gender_segregated) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:gender_segregated%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:gender_segregated%3Dno) | +| [toilets:supervised](https://wiki.openstreetmap.org/wiki/Key:toilets:supervised) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:supervised%3Dyes) [interval](https://wiki.openstreetmap.org/wiki/Tag:toilets:supervised%3Dinterval) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:supervised%3Dno) | +| [toilets:description](https://wiki.openstreetmap.org/wiki/Key:toilets:description) | [text](../SpecialInputElements.md#text) | | +| [toilets:wheelchair](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Dno) [designated](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Ddesignated) | +| [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) | +| [toilets:disposal](https://wiki.openstreetmap.org/wiki/Key:toilets:disposal) | Multiple choice | [flush](https://wiki.openstreetmap.org/wiki/Tag:toilets:disposal%3Dflush) [pitlatrine](https://wiki.openstreetmap.org/wiki/Tag:toilets:disposal%3Dpitlatrine) [bucket](https://wiki.openstreetmap.org/wiki/Tag:toilets:disposal%3Dbucket) | +| [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) | +| [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) | +| [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) | +| [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) | +| [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) | +| [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) | +| [toilets:hands_drying](https://wiki.openstreetmap.org/wiki/Key:toilets:hands_drying) | Multiple choice | [electric_hand_dryer](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Delectric_hand_dryer) [paper_towel](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Dpaper_towel) [towel_cabinet](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Dtowel_cabinet) [towel](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Dtowel) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Dno) | +| [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | +| [toilets:wheelchair:grab_rail:left](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair:grab_rail:left) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:left%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:left%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:left%3Dno) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:left%3Dno) | +| [toilets:wheelchair:grab_rail:behind](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair:grab_rail:behind) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:behind%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:behind%3Dno) | +| [toilets:wheelchair:is_foldable:left](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair:is_foldable:left) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:is_foldable:left%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:is_foldable:left%3Dno) | +| [toilets:wheelchair:is_foldable:right](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair:is_foldable:right) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:is_foldable:right%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:is_foldable:right%3Dno) | +| [door:width](https://wiki.openstreetmap.org/wiki/Key:door:width) | [pfloat](../SpecialInputElements.md#pfloat) | | +| [changing_table:adult](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult%3Dno) | +| [changing_table:adult:height](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:height) | [pfloat](../SpecialInputElements.md#pfloat) | [adjustable](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:height%3Dadjustable) | +| [changing_table:adult:min_height](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:min_height) | [pfloat](../SpecialInputElements.md#pfloat) | | +| [changing_table:adult:max_height](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:max_height) | [pfloat](../SpecialInputElements.md#pfloat) | | +| [changing_table:adult:height:mechanism](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:height:mechanism) | Multiple choice | [manual](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:height:mechanism%3Dmanual) [electric](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:height:mechanism%3Delectric) | +| [changing_table:adult:support](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:support) | Multiple choice | [wall_mounted](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:support%3Dwall_mounted) [legs](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:support%3Dlegs) [wheels](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:support%3Dwheels) | ## Featureview elements and TagRenderings @@ -87,7 +162,50 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone - The question is `What is the phone number of {title()}?` *{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### email - The question is `What is the email address of {title()}?` *{email}* is shown if `email` is set. @@ -134,87 +247,66 @@ The question is `What is the email address of {title()}?` - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### website - The question is `What is the website of {title()}?` *{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### specialty - The question is `What is this doctor specialized in?` *This doctor is specialized in {healthcare:speciality}* is shown if `healthcare:speciality` is set. @@ -224,36 +316,446 @@ The question is `What is this doctor specialized in?` - *This is a psychiatrist* is shown if with healthcare:speciality=psychiatry - *This is a paediatrician* is shown if with healthcare:speciality=paediatrics -### leftover-questions - +### toilets-group _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `all` + +### grouptitle +_This tagrendering has no question and is thus read-only_ + +*Toilet information* + + - *Does not have toilets* is shown if with toilets=no + +This tagrendering has labels `all` `hidden` + +### has_toilets +The question is `Has {title()} toilets?` + + - *Has toilets* is shown if with toilets=yes + - *Has no toilets* is shown if with toilets=no + - *The toilets are marked separately on the map* is shown if with toilets=separate + +This tagrendering has labels `toilet-questions` `hidden` `all` + +### images_toilet +_This tagrendering has no question and is thus read-only_ + +*{image_carousel(toilets:panoramax;toilets:mapillary;toilets:images)}{image_upload(toilets:panoramax,Add a picture of the toilets,)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_repeated +_This tagrendering has no question and is thus read-only_ + +*Multiple, identical objects can be found on floors {toilets:repeat_on}.* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ +This tagrendering has labels `level` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_single_level +The question is `On what level is this feature located?` + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. + + - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ + - *Located on the ground floor* is shown if with toilets:level=0 + - *Located on the ground floor* is shown if with toilets:level=. _This option cannot be chosen as answer_ + - *Located on the first floor* is shown if with toilets:level=1 + - *Located on the first basement level* is shown if with toilets:level=-1 + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on= +This tagrendering has labels `level` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilet-access +The question is `Are these toilets publicly accessible?` + +*Access is {toilets:access}* is shown if `toilets:access` is set. + + - *Public access* is shown if with toilets:access=yes + - *Only access to customers* is shown if with toilets:access=customers + - *Not accessible* is shown if with toilets:access=no + - *Accessible, but one has to ask a key to enter* is shown if with toilets:access=key + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilets-fee +The question is `Are these toilets free to use?` + + - *These are paid toilets* is shown if with toilets:fee=yes + - *Free to use* is shown if with toilets:fee=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:access!=no +This tagrendering has labels `relevant-questions` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilet-charge +The question is `How much does one have to pay for these toilets?` + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes +This tagrendering has labels `relevant-questions` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_payment-options-split +The question is `Which methods of payment are accepted here?` + + - *Cash is accepted here* is shown if with toilets:payment:cash=yes. _This option cannot be chosen as answer_. Unselecting this answer will add toilets:payment:cash= + - *Payment cards are accepted here* is shown if with toilets:payment:cards=yes. _This option cannot be chosen as answer_. Unselecting this answer will add toilets:payment:cards= + - *Payment by QR-code is possible here* is shown if with toilets:payment:qr_code=yes. Unselecting this answer will add toilets:payment:qr_code=no + - *Coins are accepted here* is shown if with toilets:payment:coins=yes. Unselecting this answer will add toilets:payment:coins=no + - *Bank notes are accepted here* is shown if with toilets:payment:notes=yes. Unselecting this answer will add toilets:payment:notes=no + - *Debit cards are accepted here* is shown if with toilets:payment:debit_cards=yes. Unselecting this answer will add toilets:payment:debit_cards=no + - *Credit cards are accepted here* is shown if with toilets:payment:credit_cards=yes. Unselecting this answer will add toilets:payment:credit_cards=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes +This tagrendering has labels `relevant-questions` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_gender_segregated +The question is `Are these toilets gender-segregated?` + + - *There is a separate, signposted area for men and women* is shown if with toilets:gender_segregated=yes + - *There is no separate, signposted area for men and women* is shown if with toilets:gender_segregated=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:toilets:position!=urinal +This tagrendering has labels `relevant-questions` `no-prefix` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilet-supervised +The question is `Is this toilets supervised by a person?` + + - *There is a person supervising these toilets during (most of) the opening hours* is shown if with toilets:supervised=yes + - *There is a person supervising these toilets, but they are present only during certain times of the opening hours* is shown if with toilets:supervised=interval + - *These toilets are not supervised* is shown if with toilets:supervised=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:access=yes | toilets:access=) +This tagrendering has labels `relevant-questions` `no-prefix` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_description +The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` + +*{toilets:description}* is shown if `toilets:description` is set. + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `amenity-no-prefix` `no-prefix` `relevant-questions` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilets-wheelchair +The question is `Is there a dedicated toilet for wheelchair users?` + + - *There is a dedicated toilet for wheelchair users* is shown if with toilets:wheelchair=yes + - *No wheelchair access* is shown if with toilets:wheelchair=no + - *There is only a dedicated toilet for wheelchair users* is shown if with toilets:wheelchair=designated + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `wheelchair` `hidden` `no-prefix` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets-type +The question is `Which kind of toilets are these?` + + - *There are only seated toilets* is shown if with toilets:position=seated + - *There are only urinals here* is shown if with toilets:position=urinal + - *There are only squat toilets here* is shown if with toilets:position=squat + - *Both seated toilets and urinals are available here* is shown if with toilets:position=seated;urinal + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets-disposal +The question is `How is the waste handled?` + + - *The waste is moved away by flushing the toilet with water* is shown if with toilets:disposal=flush + - *The waste falls into a pit* is shown if with toilets:disposal=pitlatrine + - *The waste is collected in a bucket or similar container, which is regularly removed* is shown if with toilets:disposal=bucket + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### menstrual_products +The question is `Are free, menstrual products distributed here?` + + - *Free menstrual products are available to all visitors of these toilets* is shown if with toilets:menstrual_products=yes + - *Free menstrual products are available to some visitors of these toilets* is shown if with toilets:menstrual_products=limited + - *No free menstrual products are available here* is shown if with toilets:menstrual_products=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### menstrual_products_location +The question is `Where are the free menstrual products located?` + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. + + - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet + - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet + - *The free, menstrual products are located in the toilet for wheelchair users* is shown if with toilets:menstrual_products:location=wheelchair_toilet + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:menstrual_products=limited | toilets:menstrual_products:location~.+) +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets-changing-table +The question is `Is a changing table (to change diapers) available?` + + - *A changing table is available* is shown if with changing_table=yes + - *No changing table is available* is shown if with changing_table=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `no-prefix` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-changing_table:location +The question is `Where is the changing table located?` + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. + + - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet + - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet + - *A changing table is in the toilet for wheelchair users* is shown if with changing_table:location=wheelchair_toilet + - *A changing table is in a dedicated room* is shown if with changing_table:location=dedicated_room + +This tagrendering is only visible in the popup if the following condition is met: changing_table=yes & toilets=yes +This tagrendering has labels `relevant-questions` `no-prefix` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-has-paper +The question is `Does one have to bring their own toilet paper to this toilet?` + + - *This toilet is equipped with toilet paper* is shown if with toilets:paper_supplied=yes + - *You have to bring your own toilet paper to this toilet* is shown if with toilets:paper_supplied=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:position!=urinal +This tagrendering has labels `relevant-questions` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-handwashing +The question is `Do these toilets have a sink to wash your hands?` + + - *These toilets have a sink to wash your hands* is shown if with toilets:handwashing=yes + - *These toilets don't have a sink to wash your hands* is shown if with toilets:handwashing=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-drying +The question is `Do these toilets have a device to dry your hands?` + + - *Electric hand dryers are available for drying hands.* is shown if with toilets:hands_drying=electric_hand_dryer + - *Paper towels are available for drying hands.* is shown if with toilets:hands_drying=paper_towel + - *A towel roll cabinet is available for drying hands* is shown if with toilets:hands_drying=towel_cabinet + - *A fabric towel available to dry your hands.* is shown if with toilets:hands_drying=towel + - *There are no hand drying facilities available.* is shown if with toilets:hands_drying=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:handwashing=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-group +_This tagrendering has no question and is thus read-only_ + +*{group(wheelchair-title,wheelchair;adult-changing-table,)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-picture-carousel +_This tagrendering has no question and is thus read-only_ + +*{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `wheelchair` `hidden` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-picture +_This tagrendering has no question and is thus read-only_ + +*{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `wheelchair` `hidden` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-title +_This tagrendering has no question and is thus read-only_ + +*Wheelchair accessible toilet* + + - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated + - *No wheelchair accessible toilet* is shown if with wheelchair=no | toilets:wheelchair=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `hidden` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-wheelchair-access +The question is `Is the wheelchair-accessible toilet locked?` + + - *The wheelchair accessible toilets are freely accessible* is shown if with toilets:wheelchair:access=yes + - *One needs to ask permission to access wheelchair-accessible toilet, e.g. by asking a key* is shown if with toilets:wheelchair:access=key + - *One can use a Master Locksmiths Access Key (MLAK) to access this bathroom* is shown if with centralkey=mlak + - *One can use a RADAR Key to access this bathroom* is shown if with centralkey=nks + - *One can use a EuroKey to access this bathroom* is shown if with centralkey=eurokey + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) & (access=yes | access=public | access=customers | access=) +This tagrendering has labels `hidden` `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_wheelchair_has_grab_rail_lr +The question is `Is there a grab rail?` + + - *Grab rails on both sides* is shown if with toilets:wheelchair:grab_rail:left=yes & toilets:wheelchair:grab_rail:right=yes + - *Only grab rails on the left side* is shown if with toilets:wheelchair:grab_rail:left=yes & toilets:wheelchair:grab_rail:right=no + - *Grab rails on the right side* is shown if with toilets:wheelchair:grab_rail:left=no & toilets:wheelchair:grab_rail:right=yes + - *No grab rails at all* is shown if with toilets:wheelchair:grab_rail:left=no & toilets:wheelchair:grab_rail:right=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_wheelchair_has_grab_rail_behind +The question is `Does the toilet have a grab rail behind the toilet?` + + - *Has a grab rail behind the toilet* is shown if with toilets:wheelchair:grab_rail:behind=yes + - *No grab rail behind the toilet* is shown if with toilets:wheelchair:grab_rail:behind=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_wheelchair_is_foldable_left +The question is `Is the left grab rail foldable?` + + - *The left grab rail is foldable* is shown if with toilets:wheelchair:is_foldable:left=yes + - *The left grab rail is not foldable* is shown if with toilets:wheelchair:is_foldable:left=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:wheelchair:grab_rail:left=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `generic_questions` `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_wheelchair_is_foldable_right +The question is `Is the right grab rail foldable?` + + - *The right grab rail is foldable* is shown if with toilets:wheelchair:is_foldable:right=yes + - *The right grab rail is not foldable* is shown if with toilets:wheelchair:is_foldable:right=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:wheelchair:grab_rail:right=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `generic_questions` `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-door-width +The question is `What is the width of the door to the wheelchair accessible toilet?` + +*The door to the wheelchair-accessible toilet is {canonical(door:width)} wide* is shown if `door:width` is set. + +The allowed input is of type pfloat and is in range 0.4 until 4 (both inclusive). A warning will appear if the value is outside of 0.6 and 2. + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=designated | (amenity=toilet & wheelchair~^(yes|designated)$)) +This tagrendering has labels `relevant-questions` `wheelchair` `hidden` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### questions-wheelchair +_This tagrendering has no question and is thus read-only_ + +*{questions(wheelchair,,)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `wheelchair` `hidden` `relevant-questions` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### adult_changing_table_title +_This tagrendering has no question and is thus read-only_ + +*Adult changing table* + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes +This tagrendering has labels `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### adult-changing-table +The question is `Does this toilet have an adult changing table?` + + - *Has a changing table for adults* is shown if with changing_table:adult=yes + - *No changing table for adults* is shown if with changing_table:adult=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `prefixed` `hidden` `relevant-questions` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_height +The question is `What is the height of the adult changing table?` + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. + + - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_adult-changing-table-min_height +The question is `What is the lowest height the adult changing table can be moved to?` + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_adult-changing-table-max_height +The question is `What is the highest height the adult changing table can be moved to?` + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_adult-changing-table-mechanism +The question is `How is the height of the changing table adjusted?` + + - *The height of the adult changing table is adjusted manually* is shown if with changing_table:adult:height:mechanism=manual + - *The height of the adult changing table is adjusted electrically* is shown if with changing_table:adult:height:mechanism=electric + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_adult-changing-table-support +The question is `How is the adult changing table supported?` + + - *The changing table is mounted to the wall* is shown if with changing_table:adult:support=wall_mounted + - *The changing table stands on table legs* is shown if with changing_table:adult:support=legs + - *The changing table stands on table legs with wheels and can be moved* is shown if with changing_table:adult:support=wheels + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### questions-adult-changing-table +_This tagrendering has no question and is thus read-only_ + +*{questions(adult-changing-table,,yes)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `hidden` `relevant-questions` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-question-box +_This tagrendering has no question and is thus read-only_ + +*{questions(toilet-questions,wheelchair;adult-changing-table,)}* + +This tagrendering has labels `toilet-questions` `all` `hidden` + +### leftover-questions +_This tagrendering has no question and is thus read-only_ + +*{questions( ,hidden;address;wheelchair;adult-changing-table;toilet-questions)}* + +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### delete-button - _This tagrendering has no question and is thus read-only_ *{delete_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` ## Filters diff --git a/Docs/Layers/hospital.md b/Docs/Layers/hospital.md index 0b1eb3a43..72b9f8905 100644 --- a/Docs/Layers/hospital.md +++ b/Docs/Layers/hospital.md @@ -79,36 +79,31 @@ Elements must match **any** of the following expressions: | [unit](#unit)
_(Original in [address](./address.md#unit))_ | What is the unit number or letter?
_The unit number is {addr:unit}_
1 options | address, hidden | *[addr:unit](https://wiki.osm.org/wiki/Key:addr:unit)* ([string](../SpecialInputElements.md#string)) | | [address-questions](#address-questions)
_(Original in [address](./address.md#address-questions))_ | _{questions(address,,)}_ | address, hidden | _Multiple choice only_ | | [oh-visitor](#oh-visitor) | When are visitors allowed to visit?
_

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors,,)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

_ | | *[opening_hours:visitors](https://wiki.osm.org/wiki/Key:opening_hours:visitors)* ([opening_hours](../SpecialInputElements.md#opening_hours)) | -| [leftover-questions](#leftover-questions) | _{questions( ,address;hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | +| [leftover-questions](#leftover-questions) | _{questions( ,hidden;address)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | | [lod](#lod)
_(Original in [questions](./BuiltinQuestions.md#lod))_ | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ | ### name - The question is `What is the name of this hospital?` *This hospital is called {name}* is shown if `name` is set. ### inpatient - The question is `Does this facility admit inpatients?` - *This is a clinic - patients can not stay overnight* is shown if with amenity=clinic - *This is a hospital - patients can be admitted here for multiple days* is shown if with amenity=hospital ### phone - The question is `What is the phone number of {title()}?` *{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### email - The question is `What is the email address of {title()}?` *{email}* is shown if `email` is set. @@ -116,115 +111,88 @@ The question is `What is the email address of {title()}?` - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### website - The question is `What is the website of {title()}?` *{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### oh-visitor - The question is `When are visitors allowed to visit?` *

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors,,)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

* is shown if `opening_hours:visitors` is set. ### leftover-questions - _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{questions( ,hidden;address)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` This document is autogenerated from [assets/layers/hospital/hospital.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/layers/hospital/hospital.json) diff --git a/Docs/Layers/pharmacy.md b/Docs/Layers/pharmacy.md index e0282973d..4a30e233a 100644 --- a/Docs/Layers/pharmacy.md +++ b/Docs/Layers/pharmacy.md @@ -5,6 +5,7 @@ A layer showing pharmacies, which (probably) dispense prescription drugs - This layer is shown at zoomlevel **13** and higher + - This layer will automatically load [toilet](./toilet.md) into the layout as it depends on it: tagrendering has_toilets needs this layer (has_toilets) ## Table of contents @@ -30,6 +31,49 @@ A layer showing pharmacies, which (probably) dispense prescription drugs - [address-questions](#address-questions) - [payment-options](#payment-options) - [wheelchair](#wheelchair) + - [toilets-group](#toilets-group) + - [grouptitle](#grouptitle) + - [has_toilets](#has_toilets) + - [images_toilet](#images_toilet) + - [toilets_repeated](#toilets_repeated) + - [toilets_single_level](#toilets_single_level) + - [toilets_toilet-access](#toilets_toilet-access) + - [toilets_toilets-fee](#toilets_toilets-fee) + - [toilets_toilet-charge](#toilets_toilet-charge) + - [toilets_payment-options-split](#toilets_payment-options-split) + - [toilets_gender_segregated](#toilets_gender_segregated) + - [toilets_toilet-supervised](#toilets_toilet-supervised) + - [toilets_description](#toilets_description) + - [toilets_toilets-wheelchair](#toilets_toilets-wheelchair) + - [toilets-type](#toilets-type) + - [toilets-disposal](#toilets-disposal) + - [menstrual_products](#menstrual_products) + - [menstrual_products_location](#menstrual_products_location) + - [toilets-changing-table](#toilets-changing-table) + - [toilet-changing_table:location](#toilet-changing_tablelocation) + - [toilet-has-paper](#toilet-has-paper) + - [toilet-handwashing](#toilet-handwashing) + - [toilet-drying](#toilet-drying) + - [wheelchair-group](#wheelchair-group) + - [wheelchair-picture-carousel](#wheelchair-picture-carousel) + - [wheelchair-picture](#wheelchair-picture) + - [wheelchair-title](#wheelchair-title) + - [toilet-wheelchair-access](#toilet-wheelchair-access) + - [toilets_wheelchair_has_grab_rail_lr](#toilets_wheelchair_has_grab_rail_lr) + - [toilets_wheelchair_has_grab_rail_behind](#toilets_wheelchair_has_grab_rail_behind) + - [toilets_wheelchair_is_foldable_left](#toilets_wheelchair_is_foldable_left) + - [toilets_wheelchair_is_foldable_right](#toilets_wheelchair_is_foldable_right) + - [wheelchair-door-width](#wheelchair-door-width) + - [questions-wheelchair](#questions-wheelchair) + - [adult_changing_table_title](#adult_changing_table_title) + - [adult-changing-table](#adult-changing-table) + - [changing_table_adult_height](#changing_table_adult_height) + - [changing_table_adult_adult-changing-table-min_height](#changing_table_adult_adult-changing-table-min_height) + - [changing_table_adult_adult-changing-table-max_height](#changing_table_adult_adult-changing-table-max_height) + - [changing_table_adult_adult-changing-table-mechanism](#changing_table_adult_adult-changing-table-mechanism) + - [changing_table_adult_adult-changing-table-support](#changing_table_adult_adult-changing-table-support) + - [questions-adult-changing-table](#questions-adult-changing-table) + - [toilet-question-box](#toilet-question-box) - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [delete-button](#delete-button) @@ -71,6 +115,37 @@ Elements must match the expression ** [addr:housenumber](https://wiki.openstreetmap.org/wiki/Key:addr:housenumber) | [string](../SpecialInputElements.md#string) | | | [addr:street](https://wiki.openstreetmap.org/wiki/Key:addr:street) | [string](../SpecialInputElements.md#string) | | | [addr:unit](https://wiki.openstreetmap.org/wiki/Key:addr:unit) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:addr:unit%3D) | +| [toilets](https://wiki.openstreetmap.org/wiki/Key:toilets) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dno) | +| [toilets](https://wiki.openstreetmap.org/wiki/Key:toilets) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dno) [separate](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dseparate) | +| [toilets:level](https://wiki.openstreetmap.org/wiki/Key:toilets:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:toilets:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:toilets:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:toilets:level%3D-1) | +| [toilets:access](https://wiki.openstreetmap.org/wiki/Key:toilets:access) | [string](../SpecialInputElements.md#string) | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dyes) [customers](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dcustomers) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dno) [key](https://wiki.openstreetmap.org/wiki/Tag:toilets:access%3Dkey) | +| [toilets:fee](https://wiki.openstreetmap.org/wiki/Key:toilets:fee) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:fee%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:fee%3Dno) | +| [toilets:charge](https://wiki.openstreetmap.org/wiki/Key:toilets:charge) | [string](../SpecialInputElements.md#string) | | +| [toilets:gender_segregated](https://wiki.openstreetmap.org/wiki/Key:toilets:gender_segregated) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:gender_segregated%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:gender_segregated%3Dno) | +| [toilets:supervised](https://wiki.openstreetmap.org/wiki/Key:toilets:supervised) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:supervised%3Dyes) [interval](https://wiki.openstreetmap.org/wiki/Tag:toilets:supervised%3Dinterval) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:supervised%3Dno) | +| [toilets:description](https://wiki.openstreetmap.org/wiki/Key:toilets:description) | [text](../SpecialInputElements.md#text) | | +| [toilets:wheelchair](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Dno) [designated](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair%3Ddesignated) | +| [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) | +| [toilets:disposal](https://wiki.openstreetmap.org/wiki/Key:toilets:disposal) | Multiple choice | [flush](https://wiki.openstreetmap.org/wiki/Tag:toilets:disposal%3Dflush) [pitlatrine](https://wiki.openstreetmap.org/wiki/Tag:toilets:disposal%3Dpitlatrine) [bucket](https://wiki.openstreetmap.org/wiki/Tag:toilets:disposal%3Dbucket) | +| [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) | +| [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) | +| [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) | +| [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) | +| [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) | +| [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) | +| [toilets:hands_drying](https://wiki.openstreetmap.org/wiki/Key:toilets:hands_drying) | Multiple choice | [electric_hand_dryer](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Delectric_hand_dryer) [paper_towel](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Dpaper_towel) [towel_cabinet](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Dtowel_cabinet) [towel](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Dtowel) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:hands_drying%3Dno) | +| [wheelchair](https://wiki.openstreetmap.org/wiki/Key:wheelchair) | Multiple choice | [designated](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Ddesignated) [no](https://wiki.openstreetmap.org/wiki/Tag:wheelchair%3Dno) | +| [toilets:wheelchair:grab_rail:left](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair:grab_rail:left) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:left%3Dyes) [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:left%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:left%3Dno) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:left%3Dno) | +| [toilets:wheelchair:grab_rail:behind](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair:grab_rail:behind) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:behind%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:grab_rail:behind%3Dno) | +| [toilets:wheelchair:is_foldable:left](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair:is_foldable:left) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:is_foldable:left%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:is_foldable:left%3Dno) | +| [toilets:wheelchair:is_foldable:right](https://wiki.openstreetmap.org/wiki/Key:toilets:wheelchair:is_foldable:right) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:is_foldable:right%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets:wheelchair:is_foldable:right%3Dno) | +| [door:width](https://wiki.openstreetmap.org/wiki/Key:door:width) | [pfloat](../SpecialInputElements.md#pfloat) | | +| [changing_table:adult](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult%3Dno) | +| [changing_table:adult:height](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:height) | [pfloat](../SpecialInputElements.md#pfloat) | [adjustable](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:height%3Dadjustable) | +| [changing_table:adult:min_height](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:min_height) | [pfloat](../SpecialInputElements.md#pfloat) | | +| [changing_table:adult:max_height](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:max_height) | [pfloat](../SpecialInputElements.md#pfloat) | | +| [changing_table:adult:height:mechanism](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:height:mechanism) | Multiple choice | [manual](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:height:mechanism%3Dmanual) [electric](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:height:mechanism%3Delectric) | +| [changing_table:adult:support](https://wiki.openstreetmap.org/wiki/Key:changing_table:adult:support) | Multiple choice | [wall_mounted](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:support%3Dwall_mounted) [legs](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:support%3Dlegs) [wheels](https://wiki.openstreetmap.org/wiki/Tag:changing_table:adult:support%3Dwheels) | ## Featureview elements and TagRenderings @@ -91,7 +166,50 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone - The question is `What is the phone number of {title()}?` *{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### email - The question is `What is the email address of {title()}?` *{email}* is shown if `email` is set. @@ -142,87 +255,66 @@ The question is `What is the email address of {title()}?` - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### website - The question is `What is the website of {title()}?` *{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### payment-options - The question is `Which methods of payment are accepted here?` - *Cash is accepted here* is shown if with payment:cash=yes. Unselecting this answer will add payment:cash=no @@ -230,41 +322,450 @@ The question is `Which methods of payment are accepted here?` - *Payment by QR-code is possible here* is shown if with payment:qr_code=yes. Unselecting this answer will add payment:qr_code=no ### wheelchair - _This tagrendering has no question and is thus read-only_ *wheelchair* -### leftover-questions - +### toilets-group _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `all` + +### grouptitle +_This tagrendering has no question and is thus read-only_ + +*Toilet information* + + - *Does not have toilets* is shown if with toilets=no + +This tagrendering has labels `all` `hidden` + +### has_toilets +The question is `Has {title()} toilets?` + + - *Has toilets* is shown if with toilets=yes + - *Has no toilets* is shown if with toilets=no + - *The toilets are marked separately on the map* is shown if with toilets=separate + +This tagrendering has labels `toilet-questions` `hidden` `all` + +### images_toilet +_This tagrendering has no question and is thus read-only_ + +*{image_carousel(toilets:panoramax;toilets:mapillary;toilets:images)}{image_upload(toilets:panoramax,Add a picture of the toilets,)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_repeated +_This tagrendering has no question and is thus read-only_ + +*Multiple, identical objects can be found on floors {toilets:repeat_on}.* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ +This tagrendering has labels `level` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_single_level +The question is `On what level is this feature located?` + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. + + - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ + - *Located on the ground floor* is shown if with toilets:level=0 + - *Located on the ground floor* is shown if with toilets:level=. _This option cannot be chosen as answer_ + - *Located on the first floor* is shown if with toilets:level=1 + - *Located on the first basement level* is shown if with toilets:level=-1 + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on= +This tagrendering has labels `level` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilet-access +The question is `Are these toilets publicly accessible?` + +*Access is {toilets:access}* is shown if `toilets:access` is set. + + - *Public access* is shown if with toilets:access=yes + - *Only access to customers* is shown if with toilets:access=customers + - *Not accessible* is shown if with toilets:access=no + - *Accessible, but one has to ask a key to enter* is shown if with toilets:access=key + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilets-fee +The question is `Are these toilets free to use?` + + - *These are paid toilets* is shown if with toilets:fee=yes + - *Free to use* is shown if with toilets:fee=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:access!=no +This tagrendering has labels `relevant-questions` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilet-charge +The question is `How much does one have to pay for these toilets?` + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes +This tagrendering has labels `relevant-questions` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_payment-options-split +The question is `Which methods of payment are accepted here?` + + - *Cash is accepted here* is shown if with toilets:payment:cash=yes. _This option cannot be chosen as answer_. Unselecting this answer will add toilets:payment:cash= + - *Payment cards are accepted here* is shown if with toilets:payment:cards=yes. _This option cannot be chosen as answer_. Unselecting this answer will add toilets:payment:cards= + - *Payment by QR-code is possible here* is shown if with toilets:payment:qr_code=yes. Unselecting this answer will add toilets:payment:qr_code=no + - *Coins are accepted here* is shown if with toilets:payment:coins=yes. Unselecting this answer will add toilets:payment:coins=no + - *Bank notes are accepted here* is shown if with toilets:payment:notes=yes. Unselecting this answer will add toilets:payment:notes=no + - *Debit cards are accepted here* is shown if with toilets:payment:debit_cards=yes. Unselecting this answer will add toilets:payment:debit_cards=no + - *Credit cards are accepted here* is shown if with toilets:payment:credit_cards=yes. Unselecting this answer will add toilets:payment:credit_cards=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes +This tagrendering has labels `relevant-questions` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_gender_segregated +The question is `Are these toilets gender-segregated?` + + - *There is a separate, signposted area for men and women* is shown if with toilets:gender_segregated=yes + - *There is no separate, signposted area for men and women* is shown if with toilets:gender_segregated=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:toilets:position!=urinal +This tagrendering has labels `relevant-questions` `no-prefix` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilet-supervised +The question is `Is this toilets supervised by a person?` + + - *There is a person supervising these toilets during (most of) the opening hours* is shown if with toilets:supervised=yes + - *There is a person supervising these toilets, but they are present only during certain times of the opening hours* is shown if with toilets:supervised=interval + - *These toilets are not supervised* is shown if with toilets:supervised=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:access=yes | toilets:access=) +This tagrendering has labels `relevant-questions` `no-prefix` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_description +The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` + +*{toilets:description}* is shown if `toilets:description` is set. + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `amenity-no-prefix` `no-prefix` `relevant-questions` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_toilets-wheelchair +The question is `Is there a dedicated toilet for wheelchair users?` + + - *There is a dedicated toilet for wheelchair users* is shown if with toilets:wheelchair=yes + - *No wheelchair access* is shown if with toilets:wheelchair=no + - *There is only a dedicated toilet for wheelchair users* is shown if with toilets:wheelchair=designated + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `wheelchair` `hidden` `no-prefix` `amenity-no-prefix` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets-type +The question is `Which kind of toilets are these?` + + - *There are only seated toilets* is shown if with toilets:position=seated + - *There are only urinals here* is shown if with toilets:position=urinal + - *There are only squat toilets here* is shown if with toilets:position=squat + - *Both seated toilets and urinals are available here* is shown if with toilets:position=seated;urinal + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets-disposal +The question is `How is the waste handled?` + + - *The waste is moved away by flushing the toilet with water* is shown if with toilets:disposal=flush + - *The waste falls into a pit* is shown if with toilets:disposal=pitlatrine + - *The waste is collected in a bucket or similar container, which is regularly removed* is shown if with toilets:disposal=bucket + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### menstrual_products +The question is `Are free, menstrual products distributed here?` + + - *Free menstrual products are available to all visitors of these toilets* is shown if with toilets:menstrual_products=yes + - *Free menstrual products are available to some visitors of these toilets* is shown if with toilets:menstrual_products=limited + - *No free menstrual products are available here* is shown if with toilets:menstrual_products=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### menstrual_products_location +The question is `Where are the free menstrual products located?` + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. + + - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet + - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet + - *The free, menstrual products are located in the toilet for wheelchair users* is shown if with toilets:menstrual_products:location=wheelchair_toilet + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:menstrual_products=limited | toilets:menstrual_products:location~.+) +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets-changing-table +The question is `Is a changing table (to change diapers) available?` + + - *A changing table is available* is shown if with changing_table=yes + - *No changing table is available* is shown if with changing_table=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `no-prefix` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-changing_table:location +The question is `Where is the changing table located?` + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. + + - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet + - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet + - *A changing table is in the toilet for wheelchair users* is shown if with changing_table:location=wheelchair_toilet + - *A changing table is in a dedicated room* is shown if with changing_table:location=dedicated_room + +This tagrendering is only visible in the popup if the following condition is met: changing_table=yes & toilets=yes +This tagrendering has labels `relevant-questions` `no-prefix` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-has-paper +The question is `Does one have to bring their own toilet paper to this toilet?` + + - *This toilet is equipped with toilet paper* is shown if with toilets:paper_supplied=yes + - *You have to bring your own toilet paper to this toilet* is shown if with toilets:paper_supplied=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:position!=urinal +This tagrendering has labels `relevant-questions` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-handwashing +The question is `Do these toilets have a sink to wash your hands?` + + - *These toilets have a sink to wash your hands* is shown if with toilets:handwashing=yes + - *These toilets don't have a sink to wash your hands* is shown if with toilets:handwashing=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-drying +The question is `Do these toilets have a device to dry your hands?` + + - *Electric hand dryers are available for drying hands.* is shown if with toilets:hands_drying=electric_hand_dryer + - *Paper towels are available for drying hands.* is shown if with toilets:hands_drying=paper_towel + - *A towel roll cabinet is available for drying hands* is shown if with toilets:hands_drying=towel_cabinet + - *A fabric towel available to dry your hands.* is shown if with toilets:hands_drying=towel + - *There are no hand drying facilities available.* is shown if with toilets:hands_drying=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:handwashing=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-group +_This tagrendering has no question and is thus read-only_ + +*{group(wheelchair-title,wheelchair;adult-changing-table,)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-picture-carousel +_This tagrendering has no question and is thus read-only_ + +*{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `wheelchair` `hidden` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-picture +_This tagrendering has no question and is thus read-only_ + +*{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `wheelchair` `hidden` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-title +_This tagrendering has no question and is thus read-only_ + +*Wheelchair accessible toilet* + + - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated + - *No wheelchair accessible toilet* is shown if with wheelchair=no | toilets:wheelchair=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `hidden` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-wheelchair-access +The question is `Is the wheelchair-accessible toilet locked?` + + - *The wheelchair accessible toilets are freely accessible* is shown if with toilets:wheelchair:access=yes + - *One needs to ask permission to access wheelchair-accessible toilet, e.g. by asking a key* is shown if with toilets:wheelchair:access=key + - *One can use a Master Locksmiths Access Key (MLAK) to access this bathroom* is shown if with centralkey=mlak + - *One can use a RADAR Key to access this bathroom* is shown if with centralkey=nks + - *One can use a EuroKey to access this bathroom* is shown if with centralkey=eurokey + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) & (access=yes | access=public | access=customers | access=) +This tagrendering has labels `hidden` `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_wheelchair_has_grab_rail_lr +The question is `Is there a grab rail?` + + - *Grab rails on both sides* is shown if with toilets:wheelchair:grab_rail:left=yes & toilets:wheelchair:grab_rail:right=yes + - *Only grab rails on the left side* is shown if with toilets:wheelchair:grab_rail:left=yes & toilets:wheelchair:grab_rail:right=no + - *Grab rails on the right side* is shown if with toilets:wheelchair:grab_rail:left=no & toilets:wheelchair:grab_rail:right=yes + - *No grab rails at all* is shown if with toilets:wheelchair:grab_rail:left=no & toilets:wheelchair:grab_rail:right=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_wheelchair_has_grab_rail_behind +The question is `Does the toilet have a grab rail behind the toilet?` + + - *Has a grab rail behind the toilet* is shown if with toilets:wheelchair:grab_rail:behind=yes + - *No grab rail behind the toilet* is shown if with toilets:wheelchair:grab_rail:behind=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_wheelchair_is_foldable_left +The question is `Is the left grab rail foldable?` + + - *The left grab rail is foldable* is shown if with toilets:wheelchair:is_foldable:left=yes + - *The left grab rail is not foldable* is shown if with toilets:wheelchair:is_foldable:left=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:wheelchair:grab_rail:left=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `generic_questions` `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilets_wheelchair_is_foldable_right +The question is `Is the right grab rail foldable?` + + - *The right grab rail is foldable* is shown if with toilets:wheelchair:is_foldable:right=yes + - *The right grab rail is not foldable* is shown if with toilets:wheelchair:is_foldable:right=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:wheelchair:grab_rail:right=yes & (toilets:wheelchair=yes | (amenity=toilets & wheelchair=yes)) +This tagrendering has labels `generic_questions` `wheelchair` `relevant-questions` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### wheelchair-door-width +The question is `What is the width of the door to the wheelchair accessible toilet?` + +*The door to the wheelchair-accessible toilet is {canonical(door:width)} wide* is shown if `door:width` is set. + +The allowed input is of type pfloat and is in range 0.4 until 4 (both inclusive). A warning will appear if the value is outside of 0.6 and 2. + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=designated | (amenity=toilet & wheelchair~^(yes|designated)$)) +This tagrendering has labels `relevant-questions` `wheelchair` `hidden` `prefixed` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### questions-wheelchair +_This tagrendering has no question and is thus read-only_ + +*{questions(wheelchair,,)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `wheelchair` `hidden` `relevant-questions` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### adult_changing_table_title +_This tagrendering has no question and is thus read-only_ + +*Adult changing table* + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes +This tagrendering has labels `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### adult-changing-table +The question is `Does this toilet have an adult changing table?` + + - *Has a changing table for adults* is shown if with changing_table:adult=yes + - *No changing table for adults* is shown if with changing_table:adult=no + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `prefixed` `hidden` `relevant-questions` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_height +The question is `What is the height of the adult changing table?` + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. + + - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_adult-changing-table-min_height +The question is `What is the lowest height the adult changing table can be moved to?` + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_adult-changing-table-max_height +The question is `What is the highest height the adult changing table can be moved to?` + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_adult-changing-table-mechanism +The question is `How is the height of the changing table adjusted?` + + - *The height of the adult changing table is adjusted manually* is shown if with changing_table:adult:height:mechanism=manual + - *The height of the adult changing table is adjusted electrically* is shown if with changing_table:adult:height:mechanism=electric + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### changing_table_adult_adult-changing-table-support +The question is `How is the adult changing table supported?` + + - *The changing table is mounted to the wall* is shown if with changing_table:adult:support=wall_mounted + - *The changing table stands on table legs* is shown if with changing_table:adult:support=legs + - *The changing table stands on table legs with wheels and can be moved* is shown if with changing_table:adult:support=wheels + +This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes +This tagrendering has labels `relevant_questions` `hidden` `prefixed` `adult-changing-table` `hidden` `prefixed` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### questions-adult-changing-table +_This tagrendering has no question and is thus read-only_ + +*{questions(adult-changing-table,,yes)}* + +This tagrendering is only visible in the popup if the following condition is met: toilets=yes +This tagrendering has labels `hidden` `relevant-questions` `adult-changing-table` `amenity-prefixed` `relevant_questions` `toilet-questions` `hidden` `all` + +### toilet-question-box +_This tagrendering has no question and is thus read-only_ + +*{questions(toilet-questions,wheelchair;adult-changing-table,)}* + +This tagrendering has labels `toilet-questions` `all` `hidden` + +### leftover-questions +_This tagrendering has no question and is thus read-only_ + +*{questions( ,hidden;address;wheelchair;adult-changing-table;toilet-questions)}* + +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### delete-button - _This tagrendering has no question and is thus read-only_ *{delete_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` ## Filters diff --git a/Docs/Layers/physiotherapist.md b/Docs/Layers/physiotherapist.md index 0bb55cd66..dcc2f5eda 100644 --- a/Docs/Layers/physiotherapist.md +++ b/Docs/Layers/physiotherapist.md @@ -82,7 +82,7 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone - The question is `What is the phone number of {title()}?` *{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### email - The question is `What is the email address of {title()}?` *{email}* is shown if `email` is set. @@ -129,115 +124,88 @@ The question is `What is the email address of {title()}?` - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### website - The question is `What is the website of {title()}?` *{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### leftover-questions - _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{questions( ,hidden;address)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### delete-button - _This tagrendering has no question and is thus read-only_ *{delete_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` ## Filters diff --git a/Docs/Layers/school.md b/Docs/Layers/school.md index 050994169..58d68fbdc 100644 --- a/Docs/Layers/school.md +++ b/Docs/Layers/school.md @@ -113,7 +113,7 @@ Elements must match **any** of the following expressions: | [school-language](#school-language) | _{language_chooser(language,What is the main language of this school?
What language is spoken with the students in non-language related courses and with the administration?
,,&LBRACElanguage&LPARENS&RPARENS&RBRACE is the main language of this school,The following languages are used in this school:&LBRACElist&LPARENS&RPARENS&RBRACE,The main language of this school is unknown)}_ | | _Multiple choice only_ | | [uniform](#uniform) | Do pupils have to wear a uniform or obey a dresscode?
_{dress_code}_
7 options | | *[dress_code](https://wiki.osm.org/wiki/Key:dress_code)* ([string](../SpecialInputElements.md#string)) | | [wikipedia](#wikipedia)
_(Original in [questions](./BuiltinQuestions.md#wikipedia))_ | What is the corresponding Wikidata entity?
_{wikipedia():max-height:25rem}_
2 options | | *[wikidata](https://wiki.osm.org/wiki/Key:wikidata)* ([wikidata](../SpecialInputElements.md#wikidata)) | -| [leftover-questions](#leftover-questions) | _{questions( ,address;hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | +| [leftover-questions](#leftover-questions) | _{questions( ,hidden;address)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | | [lod](#lod)
_(Original in [questions](./BuiltinQuestions.md#lod))_ | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ | @@ -124,24 +124,20 @@ _This tagrendering has no question and is thus read-only_ *{image_carousel()}{image_upload()}* ### school-name - The question is `What is the name of this school?` *This school is named {name}* is shown if `name` is set. ### phone - The question is `What is the phone number of {title()}?` *{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### email - The question is `What is the email address of {title()}?` *{email}* is shown if `email` is set. @@ -149,93 +145,71 @@ The question is `What is the email address of {title()}?` - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### website - The question is `What is the website of {title()}?` *{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ -This tagrendering has labels -`contact` +This tagrendering has labels `contact` ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### capacity - The question is `How much students can at most enroll in this school?` *This school can enroll at most {capacity} students* is shown if `capacity` is set. ### education-level-belgium - The question is `What level of education is given on this school?` - *This is a school with a kindergarten section where young kids receive some education which prepares reading and writing.* is shown if with school=kindergarten @@ -249,7 +223,6 @@ The question is `What level of education is given on this school?` This tagrendering is only visible in the popup if the following condition is met: _country=be ### is_special_needs - The question is `Does this school target students with a special need?` - *This school is only for special need students; a certificate is needed to enroll* is shown if with school:special_needs=only @@ -260,7 +233,6 @@ The question is `Does this school target students with a special need?` - *This school is for special need students.* is shown if with school:special_needs=yes. _This option cannot be chosen as answer_ ### orientation_belgium - The question is `What does this school train pupils for?` - *Prepares for an academic study at university* is shown if with school:orientation=academic @@ -270,7 +242,6 @@ The question is `What does this school train pupils for?` This tagrendering is only visible in the popup if the following condition is met: (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=no | school:special_needs= | school:special_needs=limited) ### orientation_belgium_special_needs - The question is `What does this school train pupils for?` - *Training type 1: trains elementary life skills to live in an institution. There is no intention to do a (paid) job after training* is shown if with school:orientation=care_institution @@ -281,7 +252,6 @@ The question is `What does this school train pupils for?` This tagrendering is only visible in the popup if the following condition is met: (school~^((.+;)?upper_secondary(;.+)?)$ | school~^((.+;)?secondary(;.+)?)$) & (school:special_needs=yes | school:special_needs=only) ### gender - The question is `Which genders can enroll at this school?` - *Both boys and girls can enroll here and have classes together* is shown if with school:gender=mixed @@ -290,7 +260,6 @@ The question is `Which genders can enroll at this school?` - *This is a girls-only school* is shown if with school:gender=female ### pedagogy - The question is `What educational theory is applied on this school?` *This school uses {pedagogy}* is shown if `pedagogy` is set. @@ -306,7 +275,6 @@ The question is `What educational theory is applied on this school?` - *This school uses the Sudbury system* is shown if with pedagogy=sudbury ### special_needs_categories_be - The question is `What type of special needs are given here?` - *For students with an intellectual disability (type 2)* is shown if with special_needs:intellectual_disability=yes. Unselecting this answer will add special_needs:intellectual_disability=no @@ -321,13 +289,11 @@ The question is `What type of special needs are given here?` This tagrendering is only visible in the popup if the following condition is met: _country=be & school:special_needs!~^(no)$ & school:special_needs~.+ ### school-language - _This tagrendering has no question and is thus read-only_ *{language_chooser(language,What is the main language of this school?
What language is spoken with the students in non-language related courses and with the administration?
,,&LBRACElanguage&LPARENS&RPARENS&RBRACE is the main language of this school,The following languages are used in this school:&LBRACElist&LPARENS&RPARENS&RBRACE,The main language of this school is unknown)}* ### uniform - The question is `Do pupils have to wear a uniform or obey a dresscode?` *{dress_code}* is shown if `dress_code` is set. @@ -350,29 +316,23 @@ The question is `What is the corresponding Wikidata entity?` - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ ### leftover-questions - _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{questions( ,hidden;address)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` ## Filters diff --git a/Docs/Layers/tactile_model.md b/Docs/Layers/tactile_model.md index f6475b0ea..441deaf10 100644 --- a/Docs/Layers/tactile_model.md +++ b/Docs/Layers/tactile_model.md @@ -14,12 +14,13 @@ Layer showing tactile models, three-dimensional models of the surrounding area. 4. [Supported attributes](#supported-attributes) 5. [Featureview elements and TagRenderings](#featureview-elements-and-tagrenderings) - [images](#images) - - [description](#description) + - [subject](#subject) - [braille](#braille) - [braille_languages](#braille_languages) - [embossed_letters](#embossed_letters) - [embossed_letters_languages](#embossed_letters_languages) - [scale](#scale) + - [description](#description) - [website](#website) - [leftover-questions](#leftover-questions) - [move-button](#move-button) @@ -50,10 +51,11 @@ Elements must match the expression ** [blind:description:en](https://wiki.openstreetmap.org/wiki/Key:blind:description:en) | [string](../SpecialInputElements.md#string) | | +| [subject:wikidata](https://wiki.openstreetmap.org/wiki/Key:subject:wikidata) | [wikidata](../SpecialInputElements.md#wikidata) | | | [braille](https://wiki.openstreetmap.org/wiki/Key:braille) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:braille%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:braille%3Dno) | | [embossed_letters](https://wiki.openstreetmap.org/wiki/Key:embossed_letters) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:embossed_letters%3Dno) | | [scale](https://wiki.openstreetmap.org/wiki/Key:scale) | [string](../SpecialInputElements.md#string) | | +| [blind:description:en](https://wiki.openstreetmap.org/wiki/Key:blind:description:en) | [string](../SpecialInputElements.md#string) | | | [website](https://wiki.openstreetmap.org/wiki/Key:website) | [url](../SpecialInputElements.md#url) | | ## Featureview elements and TagRenderings @@ -61,12 +63,13 @@ Elements must match the expression **{website}_
1 options | contact | *[website](https://wiki.osm.org/wiki/Key:website)* ([url](../SpecialInputElements.md#url)) | | [leftover-questions](#leftover-questions) | _{questions( ,hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | @@ -79,10 +82,10 @@ _This tagrendering has no question and is thus read-only_ *{image_carousel()}{image_upload()}* -### description -The question is `What does this tactile model show?` +### subject +The question is `What is depicted by this model?` -*Description: {blind:description:en}.* is shown if `blind:description:en` is set. +*{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. ### braille The question is `Is there a braille description?` @@ -115,6 +118,11 @@ The question is `What scale is the model?` *The scale of this model is {scale}.* is shown if `scale` is set. +### description +The question is `What does this tactile model show?` + +*Description: {blind:description:en}.* is shown if `blind:description:en` is set. + ### website The question is `What is the website of {title()}?` diff --git a/Docs/TagInfo/mapcomplete_blind_osm.json b/Docs/TagInfo/mapcomplete_blind_osm.json index b20c57879..0ba4be61c 100644 --- a/Docs/TagInfo/mapcomplete_blind_osm.json +++ b/Docs/TagInfo/mapcomplete_blind_osm.json @@ -1984,9 +1984,9 @@ "icon_url": "./assets/layers/tactile_model/tactile_model.svg" }, { - "key": "blind:description:en", - "description": "Values of `blind:description:en` are shown with \"Description: {blind:description:en}.\" and can be updated. The question is \"What does this tactile model show?\" by layer Tactile Models", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/tactile_model.md#description", + "key": "subject:wikidata", + "description": "Values of `subject:wikidata` are shown with \"{wikipedia(subject:wikidata)}\" and can be updated. The question is \"What is depicted by this model?\" by layer Tactile Models", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/tactile_model.md#subject", "icon_url": "./assets/layers/tactile_model/tactile_model.svg" }, { @@ -2022,6 +2022,12 @@ "description": "Values of `scale` are shown with \"The scale of this model is {scale}.\" and can be updated. The question is \"What scale is the model?\" by layer Tactile Models", "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/tactile_model.md#scale", "icon_url": "./assets/layers/tactile_model/tactile_model.svg" + }, + { + "key": "blind:description:en", + "description": "Values of `blind:description:en` are shown with \"Description: {blind:description:en}.\" and can be updated. The question is \"What does this tactile model show?\" by layer Tactile Models", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/tactile_model.md#description", + "icon_url": "./assets/layers/tactile_model/tactile_model.svg" } ] } \ No newline at end of file diff --git a/Docs/TagInfo/mapcomplete_hotels.json b/Docs/TagInfo/mapcomplete_hotels.json index 492b259fb..799355c70 100644 --- a/Docs/TagInfo/mapcomplete_hotels.json +++ b/Docs/TagInfo/mapcomplete_hotels.json @@ -314,13 +314,13 @@ "value": "love_hotel", "description": "Features with this tag are displayed by layer Love hotels", "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/love_hotel.md", - "icon_url": "ring" + "icon_url": "./assets/layers/love_hotel/hotel.svg" }, { "key": "name", "description": "Values of `name` are shown with \"This love hotel is named {name}\" and can be updated. The question is \"What is the name of this love hotel?\" by layer Love hotels", "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/love_hotel.md#name", - "icon_url": "ring" + "icon_url": "./assets/layers/love_hotel/hotel.svg" } ] } \ No newline at end of file diff --git a/Docs/TagInfo/mapcomplete_maps.json b/Docs/TagInfo/mapcomplete_maps.json index c396cfe1f..3dc2da9d5 100644 --- a/Docs/TagInfo/mapcomplete_maps.json +++ b/Docs/TagInfo/mapcomplete_maps.json @@ -238,9 +238,9 @@ "icon_url": "./assets/layers/tactile_model/tactile_model.svg" }, { - "key": "blind:description:en", - "description": "Values of `blind:description:en` are shown with \"Description: {blind:description:en}.\" and can be updated. The question is \"What does this tactile model show?\" by layer Tactile Models", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/tactile_model.md#description", + "key": "subject:wikidata", + "description": "Values of `subject:wikidata` are shown with \"{wikipedia(subject:wikidata)}\" and can be updated. The question is \"What is depicted by this model?\" by layer Tactile Models", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/tactile_model.md#subject", "icon_url": "./assets/layers/tactile_model/tactile_model.svg" }, { @@ -276,6 +276,12 @@ "description": "Values of `scale` are shown with \"The scale of this model is {scale}.\" and can be updated. The question is \"What scale is the model?\" by layer Tactile Models", "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/tactile_model.md#scale", "icon_url": "./assets/layers/tactile_model/tactile_model.svg" + }, + { + "key": "blind:description:en", + "description": "Values of `blind:description:en` are shown with \"Description: {blind:description:en}.\" and can be updated. The question is \"What does this tactile model show?\" by layer Tactile Models", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/tactile_model.md#description", + "icon_url": "./assets/layers/tactile_model/tactile_model.svg" } ] } \ No newline at end of file diff --git a/Docs/Themes/architecture.md b/Docs/Themes/architecture.md index 4b4d36414..7788b454c 100644 --- a/Docs/Themes/architecture.md +++ b/Docs/Themes/architecture.md @@ -86,12 +86,11 @@ Elements must match **all** of the following expressions: | [street](#street)
_(Original in [address](./address.md#street))_ | What street is this address located in?
_This address is in street {addr:street}_ | address, hidden | *[addr:street](https://wiki.osm.org/wiki/Key:addr:street)* ([string](../SpecialInputElements.md#string)) | | [unit](#unit)
_(Original in [address](./address.md#unit))_ | What is the unit number or letter?
_The unit number is {addr:unit}_
1 options | address, hidden | *[addr:unit](https://wiki.osm.org/wiki/Key:addr:unit)* ([string](../SpecialInputElements.md#string)) | | [address-questions](#address-questions)
_(Original in [address](./address.md#address-questions))_ | _{questions(address,,)}_ | address, hidden | _Multiple choice only_ | -| [leftover-questions](#leftover-questions) | _{questions( ,address;hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | +| [leftover-questions](#leftover-questions) | _{questions( ,hidden;address)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | | [lod](#lod)
_(Original in [questions](./BuiltinQuestions.md#lod))_ | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ | ### architecture - The question is `What is the architectural style of this building?` *{building:architecture}* is shown if `building:architecture` is set. @@ -132,100 +131,76 @@ The question is `What is the architectural style of this building?` - *Contemporary architecture* is shown if with building:architecture=contemporary ### construction_date - The question is `When was this built?` *Built in {construction_date}* is shown if `construction_date` is set. ### address_joined - _This tagrendering has no question and is thus read-only_ *{group(header,street;housenumber;unit;address-questions,)}* -This tagrendering has labels -`address` +This tagrendering has labels `address` ### header - _This tagrendering has no question and is thus read-only_ *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### housenumber - The question is `What is the number of this house?` *The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### street - The question is `What street is this address located in?` *This address is in street {addr:street}* is shown if `addr:street` is set. -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### unit - The question is `What is the unit number or letter?` *The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### address-questions - _This tagrendering has no question and is thus read-only_ *{questions(address,,)}* -This tagrendering has labels -`address` -`hidden` +This tagrendering has labels `address` `hidden` ### leftover-questions - _This tagrendering has no question and is thus read-only_ -*{questions( ,address;hidden)}* +*{questions( ,hidden;address)}* -This tagrendering has labels -`ignore-docs` -`added_by_default` +This tagrendering has labels `ignore-docs` `added_by_default` ### move-button - _This tagrendering has no question and is thus read-only_ *{move_button()}* ### lod - _This tagrendering has no question and is thus read-only_ *{linked_data_from_website()}* -This tagrendering has labels -`added_by_default` +This tagrendering has labels `added_by_default` This document is autogenerated from [assets/themes/architecture/architecture.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/themes/architecture/architecture.json) diff --git a/Docs/Themes/walkingnodes.md b/Docs/Themes/walkingnodes.md index 0c478389b..641656437 100644 --- a/Docs/Themes/walkingnodes.md +++ b/Docs/Themes/walkingnodes.md @@ -24,6 +24,7 @@ Available languages: - cs - ko - it + - zh_Hant # Table of contents diff --git a/Docs/Themes/wayside_shrines.md b/Docs/Themes/wayside_shrines.md index 869c25787..0569135cc 100644 --- a/Docs/Themes/wayside_shrines.md +++ b/Docs/Themes/wayside_shrines.md @@ -17,6 +17,7 @@ Available languages: - en - it - cs + - zh_Hant # Layers defined in this theme configuration file These layers can not be reused in different themes. diff --git a/Docs/Themes/winter_service.md b/Docs/Themes/winter_service.md index aa55d3d19..5a3c35451 100644 --- a/Docs/Themes/winter_service.md +++ b/Docs/Themes/winter_service.md @@ -16,6 +16,7 @@ Available languages: - en - it - cs + - zh_Hant # Table of contents diff --git a/Docs/URL_Parameters.md b/Docs/URL_Parameters.md index 1f8fadee0..786f04fb4 100644 --- a/Docs/URL_Parameters.md +++ b/Docs/URL_Parameters.md @@ -40,14 +40,15 @@ This document gives an overview of which URL-parameters can be used to influence 29. [z](#z) 30. [lat](#lat) 31. [lon](#lon) -32. [layer-public_bookcase](#layer-public_bookcase) -33. [filter-public_bookcase-kid-books](#filter-public_bookcase-kid-books) -34. [filter-public_bookcase-adult-books](#filter-public_bookcase-adult-books) -35. [filter-public_bookcase-inside](#filter-public_bookcase-inside) -36. [filter-public_bookcase-has_image](#filter-public_bookcase-has_image) -37. [layer-walls_and_buildings](#layer-walls_and_buildings) -38. [mode](#mode) -39. [layer-](#layer-) +32. [geouri](#geouri) +33. [layer-public_bookcase](#layer-public_bookcase) +34. [filter-public_bookcase-kid-books](#filter-public_bookcase-kid-books) +35. [filter-public_bookcase-adult-books](#filter-public_bookcase-adult-books) +36. [filter-public_bookcase-inside](#filter-public_bookcase-inside) +37. [filter-public_bookcase-has_image](#filter-public_bookcase-has_image) +38. [layer-walls_and_buildings](#layer-walls_and_buildings) +39. [mode](#mode) +40. [layer-](#layer-) ## What is a URL parameter? @@ -302,6 +303,7 @@ If one of the following values is used, this parameter will be interpreted as a One can use the [ID of an ELI-layer](./ELI-overview.md) or use one of the global, builtin layers: - protomaps.sunny ⭐ + - protomaps.sunny-self ⭐ - protomaps.white - protomaps.light - protomaps.grayscale @@ -376,6 +378,14 @@ This documentation is defined in the source code at [InitialMapPositioning.ts](/ The default value is _0_ +## geouri + +Alternative format to set lat/lon; but with an entire geouri instead. + +This documentation is defined in the source code at [InitialMapPositioning.ts](/src/Logic/Actors/InitialMapPositioning.ts#L69) + +No default value set + ## layer-public_bookcase Whether or not layer public_bookcase is shown @@ -428,7 +438,7 @@ The default value is _false_ The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics' -This documentation is defined in the source code at [generateDocs.ts](ervdvn/git/MapComplete/scripts/generateDocs.ts#L465) +This documentation is defined in the source code at [generateDocs.ts](ervdvn/git/MapComplete/scripts/generateDocs.ts#L467) The default value is _map_ diff --git a/Docs/wikiIndex.txt b/Docs/wikiIndex.txt index 0675c2fab..696513b93 100644 --- a/Docs/wikiIndex.txt +++ b/Docs/wikiIndex.txt @@ -672,7 +672,7 @@ The position of a signpost can be used by a hiker/biker/rider/s… {{service_item |name= [https://mapcomplete.org/wayside_shrines wayside_shrines] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:it|en}}, {{#language:cs|en}} +|lang= {{#language:en|en}}, {{#language:it|en}}, {{#language:cs|en}}, {{#language:zh_Hant|en}} |descr= A MapComplete theme: This map shows shrines and crosses found on the side of roads and paths, and allows adding new ones |material= {{yes|[https://mapcomplete.org/ Yes]}} |image= MapComplete_Screenshot.png diff --git a/assets/layers/aerialway/aerialway.json b/assets/layers/aerialway/aerialway.json index 08405b158..4fb8bea4f 100644 --- a/assets/layers/aerialway/aerialway.json +++ b/assets/layers/aerialway/aerialway.json @@ -14,7 +14,7 @@ "de": "Alle Arten von seil- oder drahtgestütztem Personen- oder Gütertransport, wie Seilbahnen, Gondeln, Sessellifte, Schlepplifte.", "es": "Varias formas de transporte de pasajeros y mercancías que utilizan cables, incluyendo teleféricos, góndolas, telesillas, remontes y tirolinas. ", "pl": "Różne formy transportu dla pasażerów i dóbr, które używają lin, w tym kolejki gondolowe, wyciągi krzesełkowe i orczykowe oraz tyrolki. ", - "cs": "Různé formy přepravy osob a zboží, které využívají dráty, včetně lanovek, gondol, sedačkových lanovek, vleků a lanových drah. ", + "cs": "Různé formy přepravy osob a zboží, které využívají dráty, včetně lanovek, gondol, sedačkových lanovek, vleků a lanových drah.", "ca": "Diverses formes de transport per a passatgers i mercaderies que utilitzen cables, incloent-hi telefèrics, telecabines, telecadires, teleesquís i tiroleses.", "nl": "Verschillende vormen van passagiers- en goederentransport die gebruikmaken van kabels, waaronder kabelbanen, gondelbanen, sleepliften en tokkelbanen.", "it": "Varie forme di trasporto per passeggeri e merci che utilizzano cavi, inclusi funivie, cabinovie, seggiovie, skilift e zip line." @@ -217,7 +217,7 @@ "then": { "en": "A tow line which skiers hold on to or attach themselves onto", "de": "Eine Zugleine, an der sich Skifahrer festhalten oder sich befestigen können", - "cs": "Vlečné lano, které táhne lyžaře", + "cs": "Vlečné lano, kterého se lyžaři drží nebo se na něj přichytávají", "es": "Un cable de remolque que arrastra a los esquiadores", "nl": "Een sleeplijn waar skiërs zich aan vasthouden of vastmaken", "ca": "Una línia de remolc a la qual els esquiadors s'agafen o s'enganxen", @@ -241,7 +241,7 @@ "en": "A zip line. (A touristic attraction where adventurous people go down at high speeds)", "de": "Eine Seilrutsche. (Eine Touristenattraktion, bei der abenteuerlustige Menschen mit hoher Geschwindigkeit hinunterfahren)", "pl": "Tyrolka. (Atrakcja turystyczna, która pozwala żądnym przygód zjechać z dużą szybkością) ", - "cs": "Lano na visuté dráze. (Turistická atrakce, kde se odvážlivci spouštějí vysokou rychlostí) ", + "cs": "Lano na visuté dráze. (Turistická atrakce, kde se odvážlivci spouštějí vysokou rychlostí)", "es": "Una tirolina. (Una atracción turística donde la gente aventurera baja a altas velocidades) ", "nl": "Een tokkelbaan. (Ook bekend als deathride; een toeristische attractie waarbij avontuurlijk mensen aan hoge snelheid afdalen)", "ca": "Una tirolina. (Una atracció turística on les persones aventureres baixen a altes velocitats)", diff --git a/assets/layers/ambulancestation/ambulancestation.json b/assets/layers/ambulancestation/ambulancestation.json index 1a6b1414e..e1659b7cb 100644 --- a/assets/layers/ambulancestation/ambulancestation.json +++ b/assets/layers/ambulancestation/ambulancestation.json @@ -13,7 +13,7 @@ "id": "Peta stasiun ambulans", "es": "Mapa de estaciones de ambulancias", "da": "Kort over ambulancestationer", - "cs": "Mapa stanic rychlé záchranné služby", + "cs": "Stanice rychlé záchranné služby", "ca": "Mapa d'estacions d'ambulàncies", "nb_NO": "Kart over ambulansestasjoner", "he": "מפת תחנות אמבולנסים", diff --git a/assets/layers/animal_shelter/animal_shelter.json b/assets/layers/animal_shelter/animal_shelter.json index 58c2d2a03..1bbe64b24 100644 --- a/assets/layers/animal_shelter/animal_shelter.json +++ b/assets/layers/animal_shelter/animal_shelter.json @@ -20,7 +20,7 @@ "es": "Un refugio de animales es una instalación donde se traen animales en problemas y el personal de la instalación (voluntarios o no) los alimenta y cuida, rehabilitándolos y curándolos si es necesario. Esta definición incluye perreras para perros abandonados, gaterías para gatos abandonados, refugios para otras mascotas abandonadas y centros de recuperación de fauna silvestre. ", "zh_Hans": "动物收容所是一个设施,将遇到麻烦的动物带到这里,设施的工作人员(志愿者或非志愿者)喂养并照顾它们,并在必要时使它们康复和治愈。该定义包括被遗弃的狗的狗舍、被遗弃的猫的猫舍、其他被遗弃的宠物的庇护所和野生动物恢复中心。 ", "de": "Ein Tierheim ist eine Einrichtung, in die notleidende Tiere gebracht werden und wo das Personal (ob freiwillig oder nicht) sie füttert und pflegt, sie rehabilitiert und bei Bedarf heilt. Diese Definition umfasst Zwinger für ausgesetzte Hunde, Katzenheime für ausgesetzte Katzen, Unterkünfte für andere ausgesetzte Haustiere und Wildtier-Auffangstationen.", - "cs": "Útulek pro zvířata je zařízení, kam se přivážejí zvířata v nesnázích a zaměstnanci zařízení (ať už dobrovolníci, nebo ne) je krmí, starají se o ně a v případě potřeby je rehabilitují a léčí. Tato definice zahrnuje chovné stanice pro opuštěné psy, chovné stanice pro opuštěné kočky, útulky pro jiná opuštěná zvířata a centra pro záchranu volně žijících zvířat. ", + "cs": "Útulek pro zvířata je zařízení, kam se přivážejí zvířata v nesnázích a zaměstnanci zařízení (ať už dobrovolníci, nebo ne) je krmí, starají se o ně a v případě potřeby je rehabilitují a léčí. Tato definice zahrnuje chovné stanice pro opuštěné psy, chovné stanice pro opuštěné kočky, útulky pro jiná opuštěná zvířata a centra pro záchranu volně žijících zvířat.", "nl": "Een dierenasiel is een instelling waar dieren in nood binnengebracht worden en door de medewerkers gevoederd en verzorgd worden, eventueel met het oog op uitzetting. Hieronder vallen asielen voor achtergelaten huisdieren en opvangcentra voor wilde dieren.", "ca": "Un refugi d'animals és una instal·lació on es porten animals en problemes i el personal de la instal·lació (voluntaris o no) els alimenta i cuida, rehabilitant-los i curant-los si cal. Aquesta definició inclou caneres per a gossos abandonats, gateres per a gats abandonats, refugis per a altres mascotes abandonades i centres de recuperació de fauna salvatge.", "it": "Un rifugio per animali è una struttura dove vengono portati animali in difficoltà e il personale della struttura (volontari o meno) li nutre e si prende cura di loro, riabilitandoli e curandoli se necessario. Questa definizione include canili per cani abbandonati, gattili per gatti abbandonati, rifugi per altri animali domestici abbandonati e centri di recupero per la fauna selvatica." diff --git a/assets/layers/assisted_repair/assisted_repair.json b/assets/layers/assisted_repair/assisted_repair.json index e9f742667..2731c07ae 100644 --- a/assets/layers/assisted_repair/assisted_repair.json +++ b/assets/layers/assisted_repair/assisted_repair.json @@ -12,7 +12,7 @@ "description": { "en": "A self-assisted workshop is a location where people can come and repair their goods with help of volunteers and with the tools available at the given location. A repair café is a type of event organized regularly along the same principles.", "de": "Eine Selbsthilfewerkstatt ist ein Ort, an dem Menschen ihre Gegenstände mit Hilfe von Freiwilligen und den vor Ort verfügbaren Werkzeugen reparieren können. Ein Repair-Café ist eine Art von Veranstaltung, die regelmäßig nach denselben Prinzipien organisiert wird.", - "cs": "Svépomocná dílna je místo, kam mohou lidé přijít a opravit si své zboží s pomocí dobrovolníků a nástrojů, které jsou na daném místě k dispozici. Opravárenská kavárna je typ akce, která se pravidelně pořádá na stejných principech.", + "cs": "Svépomocná dílna je místo, kam mohou lidé přijít a opravit si své zboží s pomocí dobrovolníků a nástrojů, které jsou na daném místě k dispozici. Opravárenská kavárna je typ akce, která se pravidelně pořádá na stejných principech.", "es": "Un taller de reparación asistida es un lugar donde la gente puede venir y reparar sus bienes con la ayuda de voluntarios y con las herramientas disponibles en el lugar. Un café de reparación es un tipo de evento organizado regularmente con los mismos principios.", "nl": "Een zelfondersteunde werkplaats is een locatie waar mensen hun spullen kunnen komen repareren met hulp van vrijwilligers en met het gereedschap dat op de locatie beschikbaar is. Een repair café is een soort evenement dat regelmatig wordt georganiseerd volgens dezelfde principes.", "ca": "Un taller autoassistit és un lloc on les persones poden anar i reparar els seus béns amb l'ajuda de voluntaris i amb les eines disponibles en el lloc donat. Un cafè de reparació és un tipus d'esdeveniment organitzat regularment seguint els mateixos principis.", diff --git a/assets/layers/bbq/bbq.json b/assets/layers/bbq/bbq.json index 77ff91157..4d74121d2 100644 --- a/assets/layers/bbq/bbq.json +++ b/assets/layers/bbq/bbq.json @@ -88,7 +88,7 @@ "question": { "en": "Who is allowed to use this barbecue?", "de": "Wer darf diesen Grill benutzen?", - "cs": "Jaký přístup je povolen?", + "cs": "Kdo může používat tento gril?", "es": "¿Cuál es el acceso permitido?", "nl": "Wie mag deze barbecue gebruiken?", "ca": "A qui se li permet utilitzar aquesta barbacoa?", @@ -100,7 +100,7 @@ "then": { "de": "Dieses Grillgerät kann von jedem benutzt werden", "en": "This barbecue can be used by anyone", - "cs": "Veřejné", + "cs": "Tento gril může používat každý", "es": "Público", "nl": "Deze barbecue mag door iedereen worden gebruikt", "ca": "Aquesta barbacoa pot ser utilitzada per qualsevol persona", @@ -112,7 +112,7 @@ "then": { "de": "Dieses Grillgerät darf von niemandem benutzt werden", "en": "This barbecue can't be used by anyone", - "cs": "Zákaz vstupu", + "cs": "Tento gril nemůže používat každý", "es": "Sin acceso", "nl": "Deze barbecue mag door niemand worden gebruikt", "ca": "Aquesta barbacoa no pot ser utilitzada per ningú", @@ -124,7 +124,7 @@ "then": { "de": "Dieses Grillgerät ist privat", "en": "This barbecue is private", - "cs": "Soukromé", + "cs": "Tento gril je soukromý", "es": "Privado", "nl": "Deze barbecue is privé", "ca": "Aquesta barbacoa és privada", @@ -136,7 +136,7 @@ "then": { "de": "Dieses Barbecue kann von jedem benutzt werden, aber der Besitzer kann den Zugang jederzeit widerrufen", "en": "This barbecue can be used by anyone, but the owner can revoke access at any time", - "cs": "Přístup až do odvolání", + "cs": "Tento gril může používat každý, ale vlastník může souhlas kdykoliv odvolat", "es": "Acceso hasta que se revoque", "nl": "Deze barbecue mag door iedereen worden gebruikt, maar de eigenaar kan de toegang op elk moment ontzeggen", "ca": "Aquesta barbacoa pot ser utilitzada per qualsevol persona, però el propietari pot revocar l'accés en qualsevol moment", @@ -148,7 +148,7 @@ "then": { "de": "Dieser Grill kann nur von Kunden genutzt werden", "en": "This barbecue can only be used by customers", - "cs": "Přístup pouze pro zákazníky", + "cs": "Tento gril mohou používat jen zákazníci", "es": "Acceso solo para clientes", "nl": "Deze barbecue mag alleen worden gebruikt door klanten", "ca": "Aquesta barbacoa només pot ser utilitzada pels clients", @@ -160,7 +160,7 @@ "then": { "de": "Dieses Barbecue darf nur von autorisierten Personen benutzt werden", "en": "This barbecue can only be used by authorized persons", - "cs": "Přístup pouze pro oprávněné osoby", + "cs": "Tento gril mohou používat jen oprávněné osoby", "es": "Acceso solo para personas autorizadas", "nl": "Deze barbecue mag alleen worden gebruikt door personen met toestemming", "ca": "Aquesta barbacoa només pot ser utilitzada per persones autoritzades", @@ -174,7 +174,7 @@ "question": { "en": "Is this barbecue covered?", "de": "Ist die Grillstelle überdacht?", - "cs": "Je gril zakrytý?", + "cs": "Je tento gril zakrytý?", "es": "¿Está cubierta la parrilla?", "nl": "Is deze barbecue overdekt?", "ca": "Està coberta aquesta barbacoa?", @@ -186,7 +186,7 @@ "then": { "de": "Die Grillstelle ist nicht überdacht", "en": "This barbecue is not covered", - "cs": "Gril není zakrytý", + "cs": "Tento gril není zakrytý", "es": "La parrilla no está cubierta", "nl": "Deze barbecue is niet overdekt", "ca": "Aquesta barbacoa no està coberta", @@ -198,7 +198,7 @@ "then": { "de": "Die Grillstelle ist überdacht", "en": "This barbecue is covered", - "cs": "Gril je zakrytý", + "cs": "Tento gril je zakrytý", "es": "La parrilla está cubierta", "nl": "Deze barbecue is overdekt", "ca": "Aquesta barbacoa està coberta", @@ -212,7 +212,7 @@ "question": { "en": "How is this barbecue fuelled?", "de": "Womit wird dieser Grill angeheizt?", - "cs": "Jak je gril napájen?", + "cs": "Jak je tento gril napájen?", "es": "¿Cómo se alimenta la parrilla?", "nl": "Wat voor brandstof gebruikt deze barbecue?", "ca": "Com s'alimenta aquesta barbacoa?", @@ -224,7 +224,7 @@ "then": { "de": "Dieser Grill wird mit Holz betrieben", "en": "This barbecue uses wood as fuel", - "cs": "Dřevo", + "cs": "Tento gril používá dřevo jako palivo", "es": "Madera", "nl": "Deze barbecue gebruikt hout als brandstof", "ca": "Aquesta barbacoa utilitza la fusta com a combustible", @@ -236,7 +236,7 @@ "then": { "de": "Dieser Grill wird mit Kohle betrieben", "en": "This barbecue uses charcoal as fuel", - "cs": "Dřevěné uhlí", + "cs": "Tento gril používá dřevěné uhlí jako palivo", "es": "Carbón", "nl": "Deze barbecue gebruikt houtskool als brandstof", "ca": "Aquesta barbacoa utilitza carbó com a combustible", @@ -248,7 +248,7 @@ "then": { "de": "Dieser Grill wird mit Strom betrieben", "en": "This barbecue is powered by electricity", - "cs": "Elektrický", + "cs": "Tento gril je elektrický", "es": "Eléctrica", "nl": "Deze barbecue werkt op elektriciteit", "ca": "Aquesta barbacoa funciona amb electricitat", @@ -260,7 +260,7 @@ "then": { "de": "Dieser Grill wird mit Gas betrieben", "en": "This barbecue uses gas as fuel", - "cs": "Plynový", + "cs": "Tento gril používá plyn jako palivo", "es": "Gas", "nl": "Deze barbecue gebruikt gas als brandstof", "ca": "Aquesta barbacoa utilitza gas com a combustible", diff --git a/assets/layers/bike_cleaning/bike_cleaning.json b/assets/layers/bike_cleaning/bike_cleaning.json index d635f4c04..06e90a814 100644 --- a/assets/layers/bike_cleaning/bike_cleaning.json +++ b/assets/layers/bike_cleaning/bike_cleaning.json @@ -329,7 +329,7 @@ "en": "This is a manual bike washing station - a person still has to point the water hose towards the bicycle", "nl": "Dit is een handmatig fietsschoonmaakpunt - een persoon moet zelf de waterspuit richten naar de fiets", "de": "Dies ist eine manuelle Fahrradwaschanlage", - "cs": "Jedná se o ruční mycí stanici kol", + "cs": "Jedná se o ruční mycí stanici kol – používá se namířením vodní trysky na kolo", "es": "Esta es una estación manual de lavado de bicicletas", "ca": "Es tracta d'una estació manual de rentat de bicicletes", "uk": "Це ручна мийка для велосипедів", @@ -342,7 +342,7 @@ "en": "This is an automated bike wash. Your bicycle is placed in the device and everything happens automatically.", "nl": "Dit is een automatisch fietsschoonmaakpunt - eens je fiets erin geplaats, wordt alles volledig automatisch proper gemaakt", "de": "Dies ist eine automatische Fahrradwaschanlage", - "cs": "Jedná se o mytí kol bez obsluhy", + "cs": "Toto je automatická myčka kol. Své kolo umístíte do zařízení a všechno proběhne automaticky.", "es": "Esta es una estación automática de lavado de bicicletas", "ca": "Es tracta d'un rentat automàtic de bicicletes", "uk": "Це автоматизована мийка для велосипедів", diff --git a/assets/layers/climbing/climbing.json b/assets/layers/climbing/climbing.json index 768925bc2..5d3f69db9 100644 --- a/assets/layers/climbing/climbing.json +++ b/assets/layers/climbing/climbing.json @@ -420,7 +420,8 @@ "nl": "De sportklimroutes hebben maximum {climbing:bolts:max} haken.
Hierbij worden standplaatsen niet meegeteld. Dit geeft aan hoeveel setjes een klimmer nodig heeft.
", "es": "Las vías de escalada deportiva aquí tienen como máximo {climbing:bolts:max} parabolts.
Esto es sin reuniones e indica cuántos cintas exprés necesita un escalador
", "ca": "Les rutes d'escalada esportiva aquí tenen com a màxim {climbing:bolts:max} perns.
Això és sense estacions d'assegurament i indica quantes cintes necessita un escalador.
", - "it": "Le vie di arrampicata sportiva qui hanno al massimo {climbing:bolts:max} spit.
Questo è senza le soste e indica quanti rinvii servono a un arrampicatore.
" + "it": "Le vie di arrampicata sportiva qui hanno al massimo {climbing:bolts:max} spit.
Questo è senza le soste e indica quanti rinvii servono a un arrampicatore.
", + "cs": "Trasy pro sportovní lezení zde mají nejvýše {climbing:bolts:max} šroubů.
Toto je bez jisticích stanic a indikuje to, kolik expresek lezec potřebuje.
" }, "freeform": { "key": "climbing:bolts:max", diff --git a/assets/layers/climbing_gym/climbing_gym.json b/assets/layers/climbing_gym/climbing_gym.json index 82a62434c..888a1cf94 100644 --- a/assets/layers/climbing_gym/climbing_gym.json +++ b/assets/layers/climbing_gym/climbing_gym.json @@ -162,7 +162,7 @@ "fr": "Peut-on louer des chaussures d'escalade ici ?", "de": "Kann man hier Kletterschuhe für die Kletterwand ausleihen?", "pl": "Czy można tutaj wypożyczyć buty do wspinaczki?", - "cs": "Lze si zde půjčit lezeckou obuv?", + "cs": "Lze si zde půjčit lezeckou obuv pro použití v tělocvičně?", "es": "¿Se pueden alquilar zapatillas de escalada aquí?", "ca": "Aquí es poden llogar sabates d'escalada per utilitzar al gimnàs?", "it": "Si possono noleggiare scarpette da arrampicata qui da usare in palestra?" @@ -257,7 +257,7 @@ "nl": "Kan hier een klimgordel gehuurd worden voor gebruik in de zaal?", "fr": "Peut-on louer un baudrier d'escalade ici ?", "de": "Kann man hier einen Klettergurt für die Kletterwand ausleihen?", - "cs": "Lze si zde zapůjčit horolezecký postroj?", + "cs": "Lze si zde zapůjčit horolezecký postroj pro použití v tělocvičně?", "es": "¿Se puede alquilar un arnés de escalada aquí?", "ca": "Aquí es pot llogar un arnès d'escalada per utilitzar al gimnàs?", "it": "Si può noleggiare un'imbragatura da arrampicata qui da usare in palestra?" @@ -368,14 +368,16 @@ "nl": "Zijn hier auto belays voor toprope?", "de": "Gibt es hier Selbstsicherungen für das Toprope-Klettern?", "ca": "Hi ha relleus automàtics per a l'escalada en politja aquí?", - "it": "Ci sono auto-assicuratori per il top rope qui?" + "it": "Ci sono auto-assicuratori per il top rope qui?", + "cs": "Je tu automatické jištění pro lezení s horním jištěním (top roping)?" }, "questionHint": { "en": "Excluding auto belays that are only for speed climbing", "nl": "Autobelays die enkel voor speed zijn, tellen niet mee", "de": "Ausgenommen Selbstsicherungen, die nur für das Speedklettern gedacht sind", "ca": "Excloent els relleus automàtics que només són per a l'escalada de velocitat", - "it": "Esclusi gli auto-assicuratori solo per l'arrampicata velocità" + "it": "Esclusi gli auto-assicuratori solo per l'arrampicata velocità", + "cs": "Kromě automatických jištění, která jsou jen pro lezení na rychlost" }, "condition": { "and": [ @@ -395,7 +397,8 @@ "nl": "Er zijn geen autobelays voor toprope", "de": "Es gibt keine Selbstsicherungen für das Toprope-Klettern", "ca": "No hi ha asseguraments automàtics per a l'escalada en politja", - "it": "Non ci sono auto-assicuratori per il top rope" + "it": "Non ci sono auto-assicuratori per il top rope", + "cs": "Není tu automatické jištění pro lezení s horním jištěním (top roping)" } }, { @@ -405,7 +408,8 @@ "nl": "Er zijn enkele autobelays voor toprope", "de": "Es gibt eine Reihe von Selbstsicherungen für das Toprope-Klettern", "ca": "Hi ha una sèrie d'asseguraments automàtics per a l'escalada en politja", - "it": "C'è un certo numero di auto-assicuratori per il top rope" + "it": "C'è un certo numero di auto-assicuratori per il top rope", + "cs": "Je tu více automatických jištění pro lezení s horním jištěním (top roping)" } }, { @@ -415,7 +419,8 @@ "nl": "Elke toproperoute kan op autobelay geklommen worden maar handmatig zekeren is ook mogelijk", "de": "Für jede Toprope-Route gibt es eine Selbstsicherung , aber auch manuelles Sichern ist möglich", "ca": "Hi ha un assegurament automàtic per a cada ruta d'escalada en politja, però també és possible el relleu manual", - "it": "C'è un auto-assicuratore per ogni via in top rope ma è possibile anche l'assicurazione manuale" + "it": "C'è un auto-assicuratore per ogni via in top rope ma è possibile anche l'assicurazione manuale", + "cs": "Je tu automatické jištění pro každou trasu lezení s horním jištěním (top roping), ale je možné i ruční jištění" } }, { @@ -425,7 +430,8 @@ "nl": "Toproperoutes kunnen enkel op autobelay geklommen worden", "de": "Klettersteige können nur mit Selbstsicherung geklettert werden", "ca": "Les rutes d'escalada en politja només es poden escalar en relleu automàtic", - "it": "Le vie in top rope possono essere scalate solo con auto-assicuratore" + "it": "Le vie in top rope possono essere scalate solo con auto-assicuratore", + "cs": "Trasy pro lezení s horním jištěním lze lézt jen s automatickým jištěním" } } ], @@ -434,7 +440,8 @@ "nl": "Er zijn {climbing:autobelay:toprope} autobelaytoestellen voor toprope", "de": "Es gibt {climbing:autobelay:toprope} Selbstsicherungsgeräte für das Toprope-Klettern", "ca": "Hi ha {climbing:autobelay:toprope} dispositius de relleu automàtic per a l'escalada en politja", - "it": "Ci sono {climbing:autobelay:toprope} dispositivi auto-assicuratori per il top rope" + "it": "Ci sono {climbing:autobelay:toprope} dispositivi auto-assicuratori per il top rope", + "cs": "Je tu {climbing:autobelay:toprope} automatických jištění pro lezení s horním jištěním (top roping)" } }, { @@ -444,7 +451,8 @@ "nl": "Zijn hier autobelays voor voorklimmen?", "de": "Gibt es hier Selbstsicherungen für das Vorstiegsklettern?", "ca": "Hi ha asseguraments automàtics per al cap de corda?", - "it": "Ci sono auto-assicuratori per l'arrampicata da primo qui?" + "it": "Ci sono auto-assicuratori per l'arrampicata da primo qui?", + "cs": "Je tu automatické jištění pro lezení na obtížnost?" }, "condition": { "and": [ @@ -464,7 +472,8 @@ "nl": "Er zijn geen autobelays voor voorklimmen", "de": "Es gibt keine Selbstsicherungen für das Vorstiegsklettern", "ca": "No hi ha asseguraments automàtics per al cap de corda", - "it": "Non ci sono auto-assicuratori per l'arrampicata da primo" + "it": "Non ci sono auto-assicuratori per l'arrampicata da primo", + "cs": "Není tu žádné automatické jištění pro lezení na obtížnost" } }, { @@ -474,7 +483,8 @@ "nl": "Er zijn enkele autobelays voor voorklimmen", "de": "Es gibt eine Reihe von Selbstsicherungen für das Vorstiegsklettern", "ca": "Hi ha una sèrie d'asseguraments automàtics per a cada cap de corda", - "it": "C'è un certo numero di auto-assicuratori per l'arrampicata da primo" + "it": "C'è un certo numero di auto-assicuratori per l'arrampicata da primo", + "cs": "Je tu více automatických jištění pro lezení na obtížnost" } }, { @@ -484,7 +494,8 @@ "nl": "Elke voorklimroute kan op autobelay geklommen worden", "de": "Für jede Vorstiegskletterroute gibt es eine Selbstsicherung", "ca": "Hi ha un assegurament automàtic per a cada cap de corda", - "it": "C'è un auto-assicuratore per ogni via di arrampicata da primo" + "it": "C'è un auto-assicuratore per ogni via di arrampicata da primo", + "cs": "Je to automatické jištění pro každou trasu lezení na obtížnost" } } ], @@ -493,7 +504,8 @@ "nl": "Er zijn {climbing:autobelay:sport} autobelays voor voorklimmen", "de": "Es gibt {climbing:autobelay:sport} Selbstsicherungen für das Vorstiegsklettern", "ca": "Hi ha {climbing:autobelay:sport} asseguraments automàtics per al cap de corda", - "it": "Ci sono {climbing:autobelay:sport} auto-assicuratori per l'arrampicata da primo" + "it": "Ci sono {climbing:autobelay:sport} auto-assicuratori per l'arrampicata da primo", + "cs": "Je tu {climbing:autobelay:sport} automatických jištění pro lezení na obtížnost" } }, { @@ -503,7 +515,7 @@ "nl": "Kan hier een zekeringsapparaat gehuurd worden voor gebruik in de zaal?", "fr": "Peut-on louer un dispositif d'assurage ici ?", "de": "Kann man hier ein Sicherungsgerät für die Kletterwand ausleihen?", - "cs": "Lze si zde půjčit jištění?", + "cs": "Lze si zde půjčit jištění pro použití v tělocvičně?", "es": "¿Se puede alquilar un dispositivo de aseguramiento aquí?", "ca": "Aquí es pot llogar un aparell d'assegurament per utilitzar al gimnàs?", "it": "Si può noleggiare un dispositivo di assicurazione qui da usare in palestra?" @@ -629,7 +641,7 @@ "nl": "Kan hier een klimtouw gehuurd worden voor gebruik in de zaal?", "fr": "Peut-on louer une corde d'escalade ici ?", "de": "Kann man hier ein Kletterseil für die Kletterwand ausleihen?", - "cs": "Lze si zde půjčit lezecké lano?", + "cs": "Lze si zde půjčit lezecké lano pro použití v tělocvičně?", "es": "¿Se puede alquilar una cuerda de escalada aquí?", "ca": "Aquí es pot llogar una corda d'escalada per a utilitzar al gimnàs?", "it": "Si può noleggiare una corda da arrampicata qui da usare in palestra?" diff --git a/assets/layers/climbing_route/climbing_route.json b/assets/layers/climbing_route/climbing_route.json index 0fb51996a..7c95ef216 100644 --- a/assets/layers/climbing_route/climbing_route.json +++ b/assets/layers/climbing_route/climbing_route.json @@ -262,7 +262,8 @@ "it": "Questa via ha {climbing:bolts} spit.
Questo è senza le soste e indica quanti rinvii servono a un arrampicatore.
", "nl": "Deze route heeft {climbing:bolts} haken.
Hierbij wordt de standplaats niet meegeteld. Een klimmer heeft normaal gezien dus minstens {climbing:bolts} setjes nodig.
", "es": "Esta vía tiene {climbing:bolts} parabolts
Esto es sin reuniones e indica cuántos cintas exprés necesita un escalador
", - "ca": "Aquesta ruta té {climbing:bolts} ancoratges d'anella.
Això és sense estacions d'assegurament i indica quantes cintes necessita un escalador.
" + "ca": "Aquesta ruta té {climbing:bolts} ancoratges d'anella.
Això és sense estacions d'assegurament i indica quantes cintes necessita un escalador.
", + "cs": "Tato trasa má {climbing:bolts} šroubů.
Toto je bez jisticích stanic a indikuje to, kolik expresek lezec potřebuje.
" }, "freeform": { "key": "climbing:bolts", diff --git a/assets/layers/extinguisher/extinguisher.json b/assets/layers/extinguisher/extinguisher.json index 9fba18de0..01115b3f6 100644 --- a/assets/layers/extinguisher/extinguisher.json +++ b/assets/layers/extinguisher/extinguisher.json @@ -12,7 +12,7 @@ "es": "Mapa de extintores", "ca": "Mapa d'extintors", "pl": "Mapa gaśnic", - "cs": "Mapa hasicích přístrojů" + "cs": "Hasicí přístroje" }, "description": { "en": "Map layer to show fire extinguishers.", diff --git a/assets/layers/fire_station/fire_station.json b/assets/layers/fire_station/fire_station.json index 4cf34e4f8..417ba3f51 100644 --- a/assets/layers/fire_station/fire_station.json +++ b/assets/layers/fire_station/fire_station.json @@ -11,7 +11,7 @@ "nl": "Brandweerstations", "es": "Mapa de estaciones de bomberos", "ca": "Mapa de parcs de bombers", - "cs": "Mapa požárních stanic" + "cs": "Požární stanice" }, "description": { "en": "Map layer to show fire stations.", diff --git a/assets/layers/hydrant/hydrant.json b/assets/layers/hydrant/hydrant.json index 2896c7184..104fb54ac 100644 --- a/assets/layers/hydrant/hydrant.json +++ b/assets/layers/hydrant/hydrant.json @@ -12,7 +12,7 @@ "nl": "Brandkranen", "es": "Mapa de bocas de incendio", "ca": "Mapa d'hidrants", - "cs": "Mapa hydrantů", + "cs": "Hydranty", "pl": "Mapa hydrantów" }, "description": { diff --git a/assets/layers/note/note.json b/assets/layers/note/note.json index fc58d53f0..62a884e8f 100644 --- a/assets/layers/note/note.json +++ b/assets/layers/note/note.json @@ -398,7 +398,8 @@ "de": "Bearbeitet oder kommentiert von jedem Benutzer mit Namen {search}", "es": "Editado o comentado por cualquier usuario con el nombre {search}", "ca": "Editat o comentat per qualsevol usuari amb el nom {search}", - "it": "Modificata o commentata da qualsiasi utente con nome {search}" + "it": "Modificata o commentata da qualsiasi utente con nome {search}", + "cs": "Upraveno nebo okomentováno jakýmkoli uživatelem se jménem {search}" } } ] diff --git a/assets/layers/questions/questions.json b/assets/layers/questions/questions.json index eee13b256..9e30fa170 100644 --- a/assets/layers/questions/questions.json +++ b/assets/layers/questions/questions.json @@ -3612,7 +3612,9 @@ } } ], - "onSoftDelete": ["reservation="] + "onSoftDelete": [ + "reservation=" + ] }, { "id": "ref", diff --git a/assets/layers/stripclub/stripclub.json b/assets/layers/stripclub/stripclub.json index 383d4a03d..12e86f173 100644 --- a/assets/layers/stripclub/stripclub.json +++ b/assets/layers/stripclub/stripclub.json @@ -53,7 +53,9 @@ "icon": "ring", "color": "#be57b4ff" }, - { "icon": "./assets/layers/stripclub/stripclub.svg"} + { + "icon": "./assets/layers/stripclub/stripclub.svg" + } ] } ], diff --git a/assets/layers/tactile_model/tactile_model.json b/assets/layers/tactile_model/tactile_model.json index 85a75d0e8..d9aa1a6ca 100644 --- a/assets/layers/tactile_model/tactile_model.json +++ b/assets/layers/tactile_model/tactile_model.json @@ -8,7 +8,11 @@ "cs": "Hmatové modely" }, "title": { - "en": "Tactile model" + "en": "Tactile Model", + "de": "Taktiles Modell", + "ca": "Model tàctil", + "it": "Modello tattile", + "cs": "Hmatový model" }, "description": { "en": "Layer showing tactile models, three-dimensional models of the surrounding area.", @@ -21,13 +25,6 @@ "osmTags": "information=tactile_model" }, "minzoom": 10, - "title": { - "en": "Tactile Model", - "de": "Taktiles Modell", - "ca": "Model tàctil", - "it": "Modello tattile", - "cs": "Hmatový model" - }, "pointRendering": [ { "marker": [ @@ -132,11 +129,11 @@ "cs": "Tento model má popis v Braillově písmu v {language()}" }, "render_single_language": { - "en": "This model has a braille description in {language()}", - "de": "Dieses Modell hat eine Beschreibung in Brailleschrift in {language()}", - "ca": "Aquest model té una descripció en braille en {language()}", - "it": "Questo modello ha una descrizione in braille in {language()}", - "cs": "Tento model má popis v Braillově písmu v {language()}" + "en": "This model has a braille description in {language}", + "de": "Dieses Modell hat eine Beschreibung in Brailleschrift in {language}", + "ca": "Aquest model té una descripció en braille en {language}", + "it": "Questo modello ha una descrizione in braille in {language}", + "cs": "Tento model má popis v Braillově písmu v {language}" } } } @@ -198,11 +195,11 @@ "cs": "Tento model má text vystouplými písmeny v {language()}" }, "render_single_language": { - "en": "This model has embossed letters in {language()}", - "de": "Dieses Modell hat geprägte Buchstaben in {language()}", - "ca": "Aquest model té lletres en relleu en {language()}", - "it": "Questo modello ha lettere in rilievo in {language()}", - "cs": "Tento model má text vystouplými písmeny v {language()}" + "en": "This model has embossed letters in {language}", + "de": "Dieses Modell hat geprägte Buchstaben in {language}", + "ca": "Aquest model té lletres en relleu en {language}", + "it": "Questo modello ha lettere in rilievo in {language}", + "cs": "Tento model má text vystouplými písmeny v {language}" } } } @@ -261,7 +258,6 @@ "cs": "Popis: {blind:description:en}." } }, - "website" ], "deletion": true, diff --git a/assets/themes/walkingnodes/walkingnodes.json b/assets/themes/walkingnodes/walkingnodes.json index b1750c18e..adc0fa541 100644 --- a/assets/themes/walkingnodes/walkingnodes.json +++ b/assets/themes/walkingnodes/walkingnodes.json @@ -7,7 +7,8 @@ "es": "Redes de nodos de senderismo", "cs": "Sítě uzlů pro pěší", "ko": "보행 경로 네트워크", - "it": "Reti di Nodi per il Trekking" + "it": "Reti di Nodi per il Trekking", + "zh_Hant": "健行節點網路" }, "description": { "en": "This map shows walking node networks and allows you to add new nodes easily", @@ -199,7 +200,8 @@ "es": "Hito de senderismo", "cs": "Pěší uzel", "ko": "보행 경로", - "it": "Nodo per il trekking" + "it": "Nodo per il trekking", + "zh_Hant": "健行節點" }, "mappings": [ { @@ -211,7 +213,8 @@ "es": "Hito de senderismo {rwn_ref}", "cs": "Pěší uzel {rwn_ref}", "ko": "보행 경로 {rwn_ref}", - "it": "Nodo per il trekking {rwn_ref}" + "it": "Nodo per il trekking {rwn_ref}", + "zh_Hant": "健行節點 {rwn_ref}" } }, { @@ -223,7 +226,8 @@ "es": "Hito de senderismo propuesto {proposed:rwn_ref}", "cs": "Navrhovaný pěší uzel {proposed:rwn_ref}", "ko": "제안된 보행 경로 {proposed:rwn_ref}", - "it": "Nodo per il trekking proposto {proposed:rwn_ref}" + "it": "Nodo per il trekking proposto {proposed:rwn_ref}", + "zh_Hant": "規劃的健行節點{proposed:rwn_ref}" } } ] @@ -263,7 +267,8 @@ "es": "Este nodo de senderismo tiene el número de referencia {rwn_ref}", "cs": "Tento pěší uzel má referenční číslo {rwn_ref}", "ko": "이 보행 경로의 조회번호는 {rwn_ref}입니다", - "it": "Questo nodo per il trekking ha il numero di riferimento {rwn_ref}" + "it": "Questo nodo per il trekking ha il numero di riferimento {rwn_ref}", + "zh_Hant": "健行節點有參照數字 {rwn_ref}" }, "condition": "rwn_ref~*" }, @@ -277,7 +282,8 @@ "es": "¿Cuándo se inspeccionó por última vez este nodo de senderismo?", "cs": "Kdy byl tento pěší uzel naposledy zkontrolován?", "ko": "보행경로가 마지막으로 갱신된 것은 언제입니까?", - "it": "Quando è stato rilevato l'ultimo nodo per il trekking?" + "it": "Quando è stato rilevato l'ultimo nodo per il trekking?", + "zh_Hant": "上次健行節點踏查的時間?" }, "render": { "en": "This walking node was last surveyed on {survey:date}", @@ -286,7 +292,8 @@ "es": "Este hito de senderismo se inspeccionó por última vez el {survey:date}", "cs": "Tento pěší uzel byl naposledy zkontrolován dne {survey:date}", "ko": "이 보행경로의 마지막 갱신은 {survey:date}입니다", - "it": "Questo nodo per il trekking è stato rilevato l'ultima volta il {survey:date}" + "it": "Questo nodo per il trekking è stato rilevato l'ultima volta il {survey:date}", + "zh_Hant": "上次踏查這個健行節點時間是 {survey:date}" } } }, @@ -387,7 +394,8 @@ "cs": "Turistické rozcestníky", "nl": "Wandelwegwijzers", "ko": "등산 안내 표지판", - "it": "Indicazioni per il trekking" + "it": "Indicazioni per il trekking", + "zh_Hant": "登山指標" }, "title": { "render": { @@ -397,7 +405,8 @@ "cs": "Turistický rozcestník", "nl": "Wandelwegwijzer", "ko": "등산 안내 표지판", - "it": "Indicazione per il trekking" + "it": "Indicazione per il trekking", + "zh_Hant": "登山指標" } } }, @@ -448,7 +457,8 @@ "es": "un marcador de ruta para un enlace de nodo a nodo", "cs": "značka trasy pro spojení mezi uzly", "nl": "een knooppuntwegwijzer", - "ko": "경로간 루트 표시" + "ko": "경로간 루트 표시", + "zh_Hant": "節點至節點連結的路線標誌" }, "=exampleImages": [ "./assets/layers/route_marker/walking_route_marker.jpg" diff --git a/assets/themes/wayside_shrines/wayside_shrines.json b/assets/themes/wayside_shrines/wayside_shrines.json index 24a55dcde..b50a1c5d3 100644 --- a/assets/themes/wayside_shrines/wayside_shrines.json +++ b/assets/themes/wayside_shrines/wayside_shrines.json @@ -3,12 +3,14 @@ "title": { "en": "Wayside shrines", "it": "Edicole votive", - "cs": "Kapličky u cest" + "cs": "Kapličky u cest", + "zh_Hant": "路邊小廟" }, "description": { "en": "This map shows shrines and crosses found on the side of roads and paths, and allows adding new ones", "it": "Questa mappa mostra edicole votive e croci trovate ai lati di strade e sentieri, e permette di aggiungerne di nuove", - "cs": "Tato mapa ukazuje kapličky a kříže podél cest a stezek, a umožňuje přidat nové" + "cs": "Tato mapa ukazuje kapličky a kříže podél cest a stezek, a umožňuje přidat nové", + "zh_Hant": "這份地圖顯示路邊或小徑旁的小廟與十字架,並且也能加上新的" }, "icon": "./assets/layers/wayside_shrine/shrine.svg", "layers": [ diff --git a/assets/themes/winter_service/winter_service.json b/assets/themes/winter_service/winter_service.json index 2b14c536a..90d101c3c 100644 --- a/assets/themes/winter_service/winter_service.json +++ b/assets/themes/winter_service/winter_service.json @@ -3,12 +3,14 @@ "title": { "en": "Winter Service", "it": "Servizio Invernale", - "cs": "Zimní údržba" + "cs": "Zimní údržba", + "zh_Hant": "冬季服務" }, "description": { "en": "A map showing roads and whether they're cleared in winter", "it": "Una mappa che mostra le strade e se vengono sgomberate in inverno", - "cs": "Mapa ukazující cesty a zda se v zimě udržují" + "cs": "Mapa ukazující cesty a zda se v zimě udržují", + "zh_Hant": "顯示冬季道路與路況的地圖" }, "icon": "./assets/svg/snowflake.svg", "credits": [ @@ -21,12 +23,14 @@ "name": { "en": "Serviced streets", "it": "Strade servite", - "cs": "Udržované ulice" + "cs": "Udržované ulice", + "zh_Hant": "服務道路" }, "description": { "en": "Streets that have some form of winter service", "it": "Strade che hanno qualche forma di servizio invernale", - "cs": "Ulice, které mají v zimě nějakou formu údržby" + "cs": "Ulice, které mají v zimě nějakou formu údržby", + "zh_Hant": "有一定型式的冬季服務的道路" }, "source": { "osmTags": { @@ -48,7 +52,8 @@ "render": { "en": "Serviced street", "it": "Strada servita", - "cs": "Udržovaná ulice" + "cs": "Udržovaná ulice", + "zh_Hant": "服務道路" }, "mappings": [ { @@ -114,7 +119,8 @@ "question": { "en": "Is this road serviced (e.g. cleared of snow) in winter?", "it": "Questa strada è servita (es. sgomberata dalla neve) in inverno?", - "cs": "Udržuje se tato cesta v zimě (např. odklízením sněhu)?" + "cs": "Udržuje se tato cesta v zimě (např. odklízením sněhu)?", + "zh_Hant": "這條路冬季開放 (積雪已經清除) 嗎?" }, "mappings": [ { @@ -122,7 +128,8 @@ "then": { "en": "This road is serviced in winter", "it": "Questa strada è servita in inverno", - "cs": "Tato cesta se v zimě udržuje" + "cs": "Tato cesta se v zimě udržuje", + "zh_Hant": "這條路在冬季能使用" }, "icon": "snowflake:green" }, @@ -131,7 +138,8 @@ "then": { "en": "This road is serviced in winter, but only to a limited extent. This is often signposted as well.", "it": "Questa strada è servita in inverno, ma solo in misura limitata. Questo è spesso segnalato anche con cartelli.", - "cs": "Tato cesta se v zimě udržuje, ale jen v omezeném rozsahu. Toto je často také uvedeno na značce." + "cs": "Tato cesta se v zimě udržuje, ale jen v omezeném rozsahu. Toto je často také uvedeno na značce.", + "zh_Hant": "這條冬季仍開放,但只有部分的功能,現場會有指標。" }, "icon": "snowflake:yellow" }, @@ -140,7 +148,8 @@ "then": { "en": "This road is not serviced in winter", "it": "Questa strada non è servita in inverno", - "cs": "Tato cesta se v zimě neudržuje" + "cs": "Tato cesta se v zimě neudržuje", + "zh_Hant": "這條路冬季不開放" }, "icon": "snowflake:red" } diff --git a/capacitor.config.ts b/capacitor.config.ts index ea3350695..f70edc7d9 100644 --- a/capacitor.config.ts +++ b/capacitor.config.ts @@ -1,11 +1,9 @@ - -import type { CapacitorConfig } from "@capacitor/cli"; +import type { CapacitorConfig } from "@capacitor/cli" const config: CapacitorConfig = { - appId: "org.mapcomplete", - appName: "MapComplete", - webDir: "dist-full" -}; - -export default config; + appId: "org.mapcomplete", + appName: "MapComplete", + webDir: "dist-full", +} +export default config diff --git a/langs/cs.json b/langs/cs.json index 61b59dc9c..d47fe725f 100644 --- a/langs/cs.json +++ b/langs/cs.json @@ -6,8 +6,8 @@ "back": "Jít zpět do MapComplete", "download": "Stáhnout aplikaci", "intro": "MapComplete je k dispozici jako aplikace pro Android k přímému stažení. Pracujeme na to, aby byla zveřejněna i v repozitáři F-Droid.", - "title": "Aplikace MapComplete pro Android", - "older": "Zobrazit starší verze" + "older": "Zobrazit starší verze", + "title": "Aplikace MapComplete pro Android" }, "centerMessage": { "allFilteredAway": "Žádný objekt v zobrazení nesplňuje všechny filtry", @@ -282,8 +282,8 @@ }, "levelSelection": { "addNewOnLevel": "Je nové umístění bodu na úrovni {level}?", - "confirmLevel": "Ano, přidejte {preset} na úroveň {level}", - "cancel": "Zobrazit všechny vrstvy" + "cancel": "Zobrazit všechny vrstvy", + "confirmLevel": "Ano, přidejte {preset} na úroveň {level}" }, "loading": "Načítání…", "loadingTheme": "Načítání {theme}…", @@ -569,6 +569,7 @@ "seeNearby": "Procházet okolní obrázky", "title": "Blízké obrázky streetview" }, + "openOnWebsite": "Otevřít tento obrázek na {name}", "panoramax": { "deletionRequested": "Zpráva byla odeslána. Za chvíli se na to podívá moderátor", "freeform": "Jsou k dispozici další relevantní údaje?", @@ -614,8 +615,7 @@ "uploading": "Váš obrázek se právě nahrává…" } }, - "uploadFailed": "Obrázek se nepodařilo nahrát. Jste připojeni k internetu a máte povoleno rozhraní API třetích stran? Prohlížeč Brave nebo zásuvný modul uMatrix je mohou blokovat.", - "openOnWebsite": "Otevřít tento obrázek na {name}" + "uploadFailed": "Obrázek se nepodařilo nahrát. Jste připojeni k internetu a máte povoleno rozhraní API třetích stran? Prohlížeč Brave nebo zásuvný modul uMatrix je mohou blokovat." }, "imageQueue": { "confirmDelete": "Trvale smazat tento obrázek", @@ -782,6 +782,7 @@ }, "reviews": { "affiliated_reviewer_warning": "(Recenze od zaměstnance)", + "attribution": "Od Mangrove.reviews", "averageRating": "Průměrné hodnocení {n} hvězdiček", "i_am_affiliated": "Jsem spojen s tímto objektem", "i_am_affiliated_explanation": "Zkontrolujte, zda jste vlastníkem, tvůrcem, zaměstnancem, …", @@ -804,8 +805,7 @@ "too_long": "Povoleno je maximálně {max} znaků. Vaše recenze má {amount} znaků.", "tos": "Zanecháním recenze souhlasíte s podmínkami a zásadami ochrany osobních údajů služby Mangrove.reviews", "your_reviews": "Vaše předchozí recenze", - "your_reviews_empty": "Nenašli jsme žádné z vašich předchozích hodnocení", - "attribution": "Od Mangrove.reviews" + "your_reviews_empty": "Nenašli jsme žádné z vašich předchozích hodnocení" }, "split": { "cancel": "Zrušit", @@ -918,4 +918,4 @@ "startsWithQ": "Identifikátor wikidat začíná písmenem Q a následuje za ním číslo" } } -} +} \ No newline at end of file diff --git a/langs/da.json b/langs/da.json index b4d467b5c..7a98805dd 100644 --- a/langs/da.json +++ b/langs/da.json @@ -2,13 +2,20 @@ "advanced": { "title": "Avancerede egenskaber" }, + "app": { + "back": "Tilbage til MapComplete", + "download": "Download appen", + "intro": "MapComplete er tilgængelig som Android-app som direkte download. Vi arbejder på også at udgive den på FDroid.", + "older": "Se ældre builds", + "title": "MapComplete Android App" + }, "centerMessage": { + "allFilteredAway": "Ingen objekter i visningen opfylder alle filtre", "loadingData": "Indlæser data…", + "noData": "Der er ingen relevante objekter i den aktuelle visning", "ready": "Færdig!", "retrying": "Indlæsning af data fejlede. Prøver igen om {count} sekunder…", - "zoomIn": "Zoom ind for at se og redigere data", - "noData": "Der er ingen relevante objekter i den aktuelle visning", - "allFilteredAway": "Ingen objekter i visningen opfylder alle filtre" + "zoomIn": "Zoom ind for at se og redigere data" }, "communityIndex": { "available": "Dette brugerfællesskab taler {native}", @@ -19,6 +26,7 @@ "cancel": "Afbryd", "cannotBeDeleted": "Dette element kan ikke slettes", "delete": "Slet", + "deletedTitle": "Slet objekt", "explanations": { "hardDelete": "Denne funktion vil blive slettet i OpenStreetMap. Det kan inddrives af en erfaren bidragyder", "softDelete": "Dette element vil blive opdateret og skjult for dette program {reason}" @@ -38,8 +46,21 @@ }, "safeDelete": "Dette punkt kan slettes uden risiko.", "useSomethingElse": "Brug i stedet en anden OpenStreetMap editor til at slette det", - "whyDelete": "Hvorfor skal dette punkt slettes?", - "deletedTitle": "Slet objekt" + "whyDelete": "Hvorfor skal dette punkt slettes?" + }, + "external": { + "allAreApplied": "Alle manglende, eksterne værdier er blevet kopieret ind i OpenStreetMap", + "allIncluded": "Data indlæst fra {source} er indeholdt i OpenStreetMap", + "apply": "Anvend", + "applyAll": "Anvend alle manglende værdier", + "conflicting": { + "intro": "OpenStreetMap har en anden værdi end kildewebstedet for de følgende værdier.", + "title": "Modstridende elementer" + }, + "currentInOsmIs": "I øjeblikket har OpenStreetMap registreret følgende værdi:", + "done": "Færdig", + "error": "Kunne ikke indlæse linkede data fra websitet", + "lastModified": "Eksterne data er sidst blevet ændret {date}" }, "favourite": { "reload": "Genindlæs data" @@ -143,10 +164,10 @@ "openIssueTracker": "Rapporter en fejl", "openMapillary": "Åbn Mapillary her", "openOsmcha": "De de seneste rettelser lavet med {theme}", + "openStatistics": "Se statistikker for {theme}", "openThemeDocumentation": "Åbn dokumentationen for temakortet {name}", "themeBy": "Tema vedligeholdt af {author}", - "translatedBy": "MapComplete er oversat af {contributors} og {hiddenCount} flere bidragsydere", - "openStatistics": "Se statistikker for {theme}" + "translatedBy": "MapComplete er oversat af {contributors} og {hiddenCount} flere bidragsydere" }, "back": "Tilbage", "backToIndex": "Gå tilbage til oversigten med alle temakort", @@ -352,13 +373,13 @@ "addPicture": "Tilføj Billede", "doDelete": "Fjern billede", "isDeleted": "Slettet", + "nearby": { + "seeNearby": "Udforsk nærliggende billeder" + }, "pleaseLogin": "Log venligst ind for at tilføje et billede", "respectPrivacy": "Tag ikke billeder af mennesker eller nummerplader. Upload ikke Google Maps, Google Streetview, eller fra andre ophavsresbeskyttede kilder.", "toBig": "Dit billede er for stort da det er {actual_size}. Brug venligst billeder, der er højst {max_size}", - "uploadFailed": "Kunne ikke uploade dit billede. Er du forbundet til Internettet og tillader du tredieparts API'er. Brave browseren eller uMatrix plugin'et kunne blokerer dem.", - "nearby": { - "seeNearby": "Udforsk nærliggende billeder" - } + "uploadFailed": "Kunne ikke uploade dit billede. Er du forbundet til Internettet og tillader du tredieparts API'er. Brave browseren eller uMatrix plugin'et kunne blokerer dem." }, "importInspector": { "title": "Undersøg og håndter noter" @@ -524,26 +545,5 @@ "wikidata": { "description": "En Wikidata identifier" } - }, - "app": { - "intro": "MapComplete er tilgængelig som Android-app som direkte download. Vi arbejder på også at udgive den på FDroid.", - "back": "Tilbage til MapComplete", - "download": "Download appen", - "older": "Se ældre builds", - "title": "MapComplete Android App" - }, - "external": { - "currentInOsmIs": "I øjeblikket har OpenStreetMap registreret følgende værdi:", - "allAreApplied": "Alle manglende, eksterne værdier er blevet kopieret ind i OpenStreetMap", - "allIncluded": "Data indlæst fra {source} er indeholdt i OpenStreetMap", - "apply": "Anvend", - "applyAll": "Anvend alle manglende værdier", - "conflicting": { - "intro": "OpenStreetMap har en anden værdi end kildewebstedet for de følgende værdier.", - "title": "Modstridende elementer" - }, - "done": "Færdig", - "error": "Kunne ikke indlæse linkede data fra websitet", - "lastModified": "Eksterne data er sidst blevet ændret {date}" } -} +} \ No newline at end of file diff --git a/langs/layers/cs.json b/langs/layers/cs.json index 73474c28b..c8f5c4792 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -3511,6 +3511,40 @@ }, "question": "Je zde rychlostní lezecká stěna?" }, + "auto_belay_lead": { + "mappings": { + "0": { + "then": "Není tu žádné automatické jištění pro lezení na obtížnost" + }, + "1": { + "then": "Je tu více automatických jištění pro lezení na obtížnost" + }, + "2": { + "then": "Je to automatické jištění pro každou trasu lezení na obtížnost" + } + }, + "question": "Je tu automatické jištění pro lezení na obtížnost?", + "render": "Je tu {climbing:autobelay:sport} automatických jištění pro lezení na obtížnost" + }, + "auto_belay_toprope": { + "mappings": { + "0": { + "then": "Není tu automatické jištění pro lezení s horním jištěním (top roping)" + }, + "1": { + "then": "Je tu více automatických jištění pro lezení s horním jištěním (top roping)" + }, + "2": { + "then": "Je tu automatické jištění pro každou trasu lezení s horním jištěním (top roping), ale je možné i ruční jištění" + }, + "3": { + "then": "Trasy pro lezení s horním jištěním lze lézt jen s automatickým jištěním" + } + }, + "question": "Je tu automatické jištění pro lezení s horním jištěním (top roping)?", + "questionHint": "Kromě automatických jištění, která jsou jen pro lezení na rychlost", + "render": "Je tu {climbing:autobelay:toprope} automatických jištění pro lezení s horním jištěním (top roping)" + }, "belay_device_rental": { "mappings": { "0": { @@ -3584,40 +3618,6 @@ } }, "question": "Lze si zde půjčit lezeckou obuv pro použití v tělocvičně?" - }, - "auto_belay_toprope": { - "mappings": { - "1": { - "then": "Je tu více automatických jištění pro lezení s horním jištěním (top roping)" - }, - "2": { - "then": "Je tu automatické jištění pro každou trasu lezení s horním jištěním (top roping), ale je možné i ruční jištění" - }, - "0": { - "then": "Není tu automatické jištění pro lezení s horním jištěním (top roping)" - }, - "3": { - "then": "Trasy pro lezení s horním jištěním lze lézt jen s automatickým jištěním" - } - }, - "question": "Je tu automatické jištění pro lezení s horním jištěním (top roping)?", - "questionHint": "Kromě automatických jištění, která jsou jen pro lezení na rychlost", - "render": "Je tu {climbing:autobelay:toprope} automatických jištění pro lezení s horním jištěním (top roping)" - }, - "auto_belay_lead": { - "mappings": { - "0": { - "then": "Není tu žádné automatické jištění pro lezení na obtížnost" - }, - "2": { - "then": "Je to automatické jištění pro každou trasu lezení na obtížnost" - }, - "1": { - "then": "Je tu více automatických jištění pro lezení na obtížnost" - } - }, - "question": "Je tu automatické jištění pro lezení na obtížnost?", - "render": "Je tu {climbing:autobelay:sport} automatických jištění pro lezení na obtížnost" } }, "title": { diff --git a/langs/layers/en.json b/langs/layers/en.json index f37a77026..e20aa34ac 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -12386,7 +12386,8 @@ "then": "There are no embossed letters describing the model." } }, - "question": "Are there embossed letters describing the model?" + "question": "Are there embossed letters describing the model?", + "questionHint": "Embossed letters are letters as normally read by seeing people, but which are protrude from the surface and might thus also be read by blind people" }, "embossed_letters_languages": { "render": { @@ -12403,6 +12404,9 @@ }, "question": "What scale is the model?", "render": "The scale of this model is {scale}." + }, + "subject": { + "question": "What is depicted by this model?" } }, "title": "Tactile Model" diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 8ae1c019b..53dd3a09f 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -2148,6 +2148,9 @@ }, "title": { "mappings": { + "0": { + "then": "{name}" + }, "1": { "then": "Vogelkijkhut {name}" }, @@ -6851,6 +6854,11 @@ } }, "title": { + "mappings": { + "0": { + "then": "{name}" + } + }, "render": "Natuurgebied" } }, @@ -7385,6 +7393,21 @@ "render": "Picknicktafel" } }, + "play_forest": { + "description": "Een speelbos is een vrij toegankelijke zone in een bos", + "name": "Speelbossen", + "title": { + "mappings": { + "0": { + "then": "{name}" + }, + "1": { + "then": "Speelbos {name}" + } + }, + "render": "Speelbos" + } + }, "playground": { "deletion": { "nonDeleteMappings": { @@ -9133,6 +9156,9 @@ }, "title": { "mappings": { + "0": { + "then": "{name}" + }, "1": { "then": "Voetpad" }, @@ -11382,13 +11408,25 @@ } }, "village_green": { - "description": "Een laag die dorpsgroen toont (gemeenschapsgroen, maar niet echt een park)" + "description": "Een laag die dorpsgroen toont (gemeenschapsgroen, maar niet echt een park)", + "name": "Speelweide", + "title": { + "mappings": { + "0": { + "then": "{name}" + } + }, + "render": "Speelweide" + } }, "visitor_information_centre": { "description": "Een bezoekerscentrum biedt informatie over een specifieke attractie of bezienswaardigheid waar het is gevestigd.", "name": "Bezoekerscentrum", "title": { "mappings": { + "0": { + "then": "{name:nl}" + }, "1": { "then": "{name}" } @@ -11602,4 +11640,4 @@ "render": "windturbine" } } -} +} \ No newline at end of file diff --git a/langs/themes/zh_Hant.json b/langs/themes/zh_Hant.json index 0a1e8330c..9e8551f88 100644 --- a/langs/themes/zh_Hant.json +++ b/langs/themes/zh_Hant.json @@ -531,6 +531,10 @@ "shortDescription": "這地圖顯示立面花園的照片以及其他像是方向、日照以及植栽種類等實用訊息。", "title": "立面花園" }, + "fireplace": { + "description": "室外可以生火的地方或是正式場合的固定烤肉設施。", + "title": "火爐以及烤肉架" + }, "food": { "description": "餐廳與快餐店", "title": "餐廳與快餐店" @@ -589,12 +593,65 @@ "title": "有鬼標誌" }, "glutenfree": { - "title": "無麩質飲食", - "description": "群眾共編無麩質標示地圖" + "description": "群眾共編無麩質標示地圖", + "title": "無麩質飲食" + }, + "grb": { + "description": "這個主題是企圖自動化GRB匯入。", + "layers": { + "0": { + "tagRenderings": { + "building type": { + "question": "這邊是什麼類型的建築?" + }, + "grb-reference": { + "render": "已經從GRB匯入,編號是{source:geometry:ref}" + } + } + }, + "1": { + "tagRenderings": { + "Import-button": { + "mappings": { + "0": { + "then": "還沒有計算中介標籤…再次開啟跳出視窗" + }, + "1": { + "then": "這棟建築有中庭而且用關聯繪製。如果是這樣,並沒有辦法整合,需要透過手動整合建築匯出站 {open_in_josm()}" + } + } + } + } + } + }, + "popup": { + "0": { + "body": { + "0": { + "render": { + "after": "要包括連結 https://wiki.openstreetmap.org/wiki/WikiProject_Belgium/Building_and_address_import", + "special": { + "text": "編輯你的個人檔案" + } + } + }, + "1": { + "render": { + "special": { + "message": "重新載入你的個人檔案" + } + } + } + }, + "title": { + "render": "個人檔案義務" + } + } + } }, "guideposts": { - "title": "指示牌", - "description": "指示牌 (又稱為指標) 常在官方登山、單車或是滑雪還是騎馬路線沿線,指示不同目的地的方向。除此之外,也常以當地名稱或是地點來顯示海拔高度。\n\n指示牌的位置常被登山客/單車騎士/騎馬騎士/滑雪者拿來參考,特別是採用紙本地圖而無GPS接受器的情形。 " + "description": "指示牌 (又稱為指標) 常在官方登山、單車或是滑雪還是騎馬路線沿線,指示不同目的地的方向。除此之外,也常以當地名稱或是地點來顯示海拔高度。\n\n指示牌的位置常被登山客/單車騎士/騎馬騎士/滑雪者拿來參考,特別是採用紙本地圖而無GPS接受器的情形。 ", + "title": "指示牌" }, "hackerspaces": { "description": "在這份地圖上你可以看到駭客空間,新增或直接更新資料", @@ -607,6 +664,7 @@ "title": "消防栓、滅火器、消防局和救護站" }, "healthcare": { + "description": "在這份地圖上,不同的醫療設施會顯示在地圖上", "layers": { "5": { "override": { @@ -624,16 +682,210 @@ } } }, - "title": "醫療保健", - "description": "在這份地圖上,不同的醫療設施會顯示在地圖上" + "title": "醫療保健" + }, + "historic_aircraft": { + "description": "顯示所有歷史物件,永久陳列的飛機。而飛機可以是博物館、藝術品或是紀念碑。", + "title": "歷史飛機" + }, + "historic_rolling_stock": { + "description": "顯示所有歷史,永久安裝的火車,如火車頭與車廂,例如在博物館、公共藝術或是紀念碑型式的地圖。", + "title": "歷史火車" }, "hotels": { - "title": "飯店", - "description": "在這份地圖上,你會找到你所在區域的旅館" + "description": "在這份地圖上,你會找到你所在區域的旅館", + "title": "飯店" + }, + "icecream": { + "description": "顯示冰淇淋小飯與冰淇淋販賣機的地圖", + "title": "冰淇淋" }, "indoors": { - "title": "室內", - "description": "在這份地圖上顯示有公開的室內地點" + "description": "在這份地圖上顯示有公開的室內地點", + "title": "室內" + }, + "insects": { + "description": "昆蟲旅館提供昆蟲的譬護所。", + "title": "昆蟲旅館" + }, + "items_with_image": { + "description": "顯示所有在OSM帶影像的物件的地圖。這個主題並不是最符合MapComplete的主題,因為並沒有辦法直接添加圖片。然而,這個主題卻能包含在資料庫當中,能夠快速截取附近其他圖徵的圖片", + "title": "所有帶影像的物件" + }, + "kerbs_and_crossings": { + "description": "顯示路緣與穿越道的地圖。", + "layers": { + "1": { + "override": { + "=presets": { + "0": { + "description": "行人與/或單車騎士的穿越處", + "title": "穿越道" + } + } + } + } + }, + "title": "路緣與穿越道" + }, + "lactosefree": { + "description": "無麩質商店與餐廳的群眾共編地圖", + "title": "無麩質商冢與餐廳" + }, + "lighthouses": { + "description": "燈塔是高塔最高處有打燈,用光線指引船舶交通。", + "title": "燈塔" + }, + "mapcomplete-changes": { + "description": "這個地圖顯示所有用MapComplete做出的改變", + "layers": { + "0": { + "description": "顯示所有用MapComplete做出的變動", + "filter": { + "0": { + "options": { + "0": { + "question": "含有主題名稱 {search}" + } + } + }, + "1": { + "options": { + "0": { + "question": "主題名稱並不包含 {search}" + } + } + }, + "10": { + "options": { + "0": { + "question": "排除詞源主題" + } + } + }, + "11": { + "options": { + "0": { + "question": "所有平台" + }, + "1": { + "question": "由Android進行" + }, + "2": { + "question": "由網路上進行" + } + } + }, + "2": { + "options": { + "0": { + "question": "由貢獻者進行 {search}" + } + } + }, + "3": { + "options": { + "0": { + "question": "並非由貢獻者進行 {search}" + } + } + }, + "4": { + "options": { + "0": { + "question": "之前進行的 {search}" + } + } + }, + "5": { + "options": { + "0": { + "question": "之後進行的 {search}" + } + } + }, + "6": { + "options": { + "0": { + "question": "使用者語言 (iso-代碼) {search}" + } + } + }, + "7": { + "options": { + "0": { + "question": "由主辦方進行 {search}" + } + } + }, + "8": { + "options": { + "0": { + "question": "變更集必須加至少一張照片" + } + } + }, + "9": { + "options": { + "0": { + "question": "排除GRB主題" + } + } + } + }, + "name": "變更集的中心位置", + "tagRenderings": { + "contributor": { + "question": "貢獻者在這一變動做了什麼?", + "render": "由{user}做的變動" + }, + "host": { + "question": "什麼主辦方 (網站) 做出這一變動?", + "render": "{host}做出的變動" + }, + "locale": { + "question": "這個變動是用什麼當地 (語言)?", + "render": "使用者所在地是 {locale}" + }, + "platform": { + "mappings": { + "0": { + "then": "由網站進行" + }, + "1": { + "then": "由Android app進行" + } + }, + "question": "那個平台進行變動?" + }, + "show_changeset_id": { + "render": "變更集{id}" + }, + "theme-id": { + "question": "那個主題進行變動的?", + "render": "由主題改變{theme}" + }, + "version": { + "question": "那個版本的MapComplete用來進行改變?", + "render": "由 {editor} 進行" + } + }, + "title": { + "render": "{theme} 的變更集" + } + }, + "1": { + "override": { + "tagRenderings+": { + "0": { + "render": "可以在這邊找到更多統計資訊" + } + } + } + } + }, + "shortDescription": "顯示由MapComplete進行的變動", + "title": "由MapComplete進行的變動" }, "maps": { "description": "在這份地圖你可以找到所在在開放街圖上已知的地圖 - 特別是顯示地區、城市、區域的資訊版面上的大型地圖,例如佈告欄背面的旅遊地圖,自然保護區的地圖,區域的單車網路地圖,...)

如果有缺少的地圖,你可以輕易在開放街圖上新增這地圖。", @@ -645,6 +897,10 @@ "shortDescription": "這份地圖顯示每一條道路的法定允許的最高速限。", "title": "最高速限" }, + "memorials": { + "description": "紀念物是在公共場合永久陳列的實體物件,用來紀念個人或是事件。有各種可能的物件,例如雕像、牌匾、繪畫、軍事物件 (例如坦克),...", + "title": "紀念物" + }, "nature": { "description": "在這份地圖,你可以找到觀光客與自然愛好者感興趣的資訊...", "shortDescription": "為了自然愛好者,以及有趣的興趣點的地圖", @@ -660,14 +916,8 @@ "title": "觀景塔" }, "onwheels": { + "description": "在這份地圖上,會顯示公開場所的輪椅可及性,並且能夠直接新增", "layers": { - "20": { - "override": { - "=title": { - "render": "統計數據" - } - } - }, "0": { "description": "所有物件必須在場所本身已經有資料而非僅僅只是加上入口物件" }, @@ -694,6 +944,13 @@ } } }, + "20": { + "override": { + "=title": { + "render": "統計數據" + } + } + }, "7": { "override": { "=filter": { @@ -722,13 +979,90 @@ } } }, - "description": "在這份地圖上,會顯示公開場所的輪椅可及性,並且能夠直接新增", "title": "在輪椅上" }, + "openlovemap": { + "description": "

情色資訊在你手中

開放情色地圖列出不同成人物件,譬如說技院、情趣用品店以及脫衣俱樂部。", + "layers": { + "2": { + "override": { + "=presets": { + "0": { + "title": "情越用品店" + } + }, + "name": "情趣用品店", + "tagRenderings+": { + "0": { + "mappings": { + "0": { + "then": "這間店提供軟性調教道具,例如完整的手銬、完整的格雷的五十道陰影入門款、…" + }, + "1": { + "then": "這間店提供特規調教工具,例如擴張桿、針刺遊戲用品、醫療束縛用品、衝擊工具、枷鎖、金屬色料、袖口、乳頭夾、繩縛配件、…" + }, + "2": { + "then": "這間店提供寵物扮演配件,像是寵物面具、動物面具、馬尾、馬蹄鐵、…" + }, + "3": { + "then": "這間店提供皮革工具,包括日常生活中穿的褲子和襯衫,採用皮革馬具" + }, + "4": { + "then": "這間店提供角色扮演制服,例如護士服、軍服、警察、學生妹、法國女佣、…" + } + }, + "question": "這家商店提供戀物癖裝備嗎?" + } + } + } + }, + "4": { + "override": { + "=presets": { + "0": { + "title": "保險套販賣機" + } + } + } + }, + "6": { + "override": { + "=presets": { + "0": { + "title": "情色電影院" + } + } + } + }, + "9": { + "override": { + "+tagRenderings": { + "0": { + "question": "這間是什麼類型的旅館?" + } + } + } + } + }, + "overrideAll": { + "tagRenderings+": { + "0": { + "question": "這裡 {title()} 有私人視訊亭嗎?", + "questionHint": "這裡只容許單人使用。" + } + } + }, + "title": "開放情趣地圖" + }, "openwindpowermap": { "description": "顯示與編輯風機的地圖。", "title": "風力發電機" }, + "osm_community_index": { + "description": "開放街圖使用者的資源清單。'資源'也許是連結到論壇、聚會、Slack群組、IRC頻道、郵件論壇等等。針對圖客,特別是初學者會覺得有趣或是有幫助的資源。", + "shortDescription": "開放街圖社群資源的索引。", + "title": "OSM社群索引" + }, "parkings": { "description": "這地圖顯示不同的停車空間", "shortDescription": "這地圖顯示不同的停車空間", @@ -739,17 +1073,13 @@ "title": "個人化主題" }, "pets": { + "description": "在這份地圖上,你會找到與寵物有關的有趣地位:獸醫、寵物公園、寵物用品店、寵物友善餐廳、…", "layers": { "4": { "override": { "name": "寵物友善餐廳" } }, - "7": { - "override": { - "name": "寵物友善商家" - } - }, "6": { "override": { "=presets": { @@ -760,14 +1090,18 @@ "name": "寵物用品店" } }, + "7": { + "override": { + "name": "寵物友善商家" + } + }, "9": { "override": { "name=": "帶有糞便袋分配器的垃圾籃" } } }, - "title": "獸醫院、寵物公園以及其他寵物設施", - "description": "在這份地圖上,你會找到與寵物有關的有趣地位:獸醫、寵物公園、寵物用品店、寵物友善餐廳、…" + "title": "獸醫院、寵物公園以及其他寵物設施" }, "playgrounds": { "description": "在這份地圖上,你可以尋找遊樂場以及其相關資訊", @@ -800,8 +1134,6 @@ }, "postboxes": { "description": "在這份地圖你能找到與新增有關郵局與郵筒的資料,你可以用這份地圖找到寄送您下張明信片的地方!:)
發現錯誤或是有郵筒遺漏嗎?你可以用免費的開放街圖帳號來編輯。", - "shortDescription": "顯示郵筒與郵局的地圖", - "title": "郵筒與郵局地圖", "layers": { "3": { "override": { @@ -827,61 +1159,99 @@ "description": "在既有的店家加上其為郵政代辦所" } } - } + }, + "shortDescription": "顯示郵筒與郵局的地圖", + "title": "郵筒與郵局地圖" }, "rainbow_crossings": { - "title": "彩虹人行穿越道", - "description": "在這份地圖上,會顯示彩虹描繪的人行穿越道,並且也很容易添加" + "description": "在這份地圖上,會顯示彩虹描繪的人行穿越道,並且也很容易添加", + "title": "彩虹人行穿越道" + }, + "scouting": { + "description": "童軍團屬於少年社交活動,強調戶外活動,進行的活動有露營、登山、水上活動、背包旅行、探索自然、…", + "layers": { + "1": { + "override": { + "name": "團體露營地" + } + }, + "3": { + "override": { + "=presets": { + "0": { + "title": "專門接待團體的青年旅館" + } + }, + "name": "接待團體與童軍的青年旅館" + } + }, + "4": { + "override": { + "=presets": { + "0": { + "title": "青年旅館" + } + } + } + } + }, + "title": "童軍團" }, "shops": { "description": "這份地圖上,你可以標記商家基本資訊,新增營業時間以及聯絡電話", "shortDescription": "有基本商家資訊的可編輯性的地圖", "title": "商店" }, + "ski": { + "description": "所有有關滑雪的事項", + "title": "滑雪道和空中纜車" + }, "sport_pitches": { "description": "運動場地是進行運動的地方", "shortDescription": "顯示運動場地的地圖", "title": "運動場地" }, "sports": { + "description": "所有運動相關,如運動場所、健身中心等等。", "layers": { "4": { "override": { "presets": { "0": { - "title": "運動用品店", - "description": "新增販售運動用品的店家。" + "description": "新增販售運動用品的店家。", + "title": "運動用品店" } } } } }, "shortDescription": "顯示運動設施的地圖。", - "title": "運動", - "description": "所有運動相關,如運動場所、健身中心等等。" + "title": "運動" }, "stations": { + "description": "檢視、編輯與新增火車站的詳情", "layers": { "17": { + "description": "顯示會從這個車站駛離的班車", "name": "出發板", "presets": { "0": { - "title": "時刻表", - "description": "新增時刻表,也許是電子或是紙本的" + "description": "新增時刻表,也許是電子或是紙本的", + "title": "時刻表" } }, "tagRenderings": { "type": { "mappings": { - "2": { - "then": "這份是紙本時刻表" - }, "0": { "then": "這是未知類型的時刻表" }, "1": { "then": "這是電子式時刻表,即時顯示下班車的資訊" }, + "2": { + "then": "這份是紙本時刻表" + }, "3": { "then": "這個標誌顯示班車的發車頻率" } @@ -891,16 +1261,14 @@ }, "title": { "render": "時刻表" - }, - "description": "顯示會從這個車站駛離的班車" + } }, "3": { "description": "顯示火車站的圖層", "name": "火車站" } }, - "title": "火車站", - "description": "檢視、編輯與新增火車站的詳情" + "title": "火車站" }, "street_lighting": { "description": "在這份地圖你可以找到任何有關路燈的事情", @@ -975,52 +1343,12 @@ "title": "樹木" }, "vending_machine": { - "title": "自動販賣機", - "description": "尋找各式各樣的自動販賣機" + "description": "尋找各式各樣的自動販賣機", + "title": "自動販賣機" }, "walkingnodes": { + "description": "這份地圖顯示健行節點網路,你可以相當輕易新增節點", "layers": { - "1": { - "name": "節點", - "tagRenderings": { - "node-expected_rwn_route_relations": { - "render": "這個節點連結至 {expected_rwn_route_relations} 其他健行節點。", - "freeform": { - "placeholder": "e.g. 3" - }, - "question": "有多少其他健行節點連結至這個節點?" - }, - "node-rwn_ref": { - "freeform": { - "placeholder": "e.g. 1" - }, - "question": "這個健行節點的參考編號是?", - "render": "健行節點有參照數字 {rwn_ref}" - }, - "survey_date": { - "override": { - "question": "上次健行節點踏查的時間?", - "render": "上次踏查這個健行節點時間是 {survey:date}" - } - } - }, - "presets": { - "0": { - "title": "健行節點" - } - }, - "title": { - "mappings": { - "0": { - "then": "健行節點 {rwn_ref}" - }, - "1": { - "then": "規劃的健行節點{proposed:rwn_ref}" - } - }, - "render": "健行節點" - } - }, "0": { "name": "節點至節點連結", "tagRenderings": { @@ -1040,13 +1368,45 @@ "render": "節點至節點連結" } }, - "4": { - "override": { - "presets": { - "0": { - "title": "節點至節點連結的路線標誌" + "1": { + "name": "節點", + "presets": { + "0": { + "title": "健行節點" + } + }, + "tagRenderings": { + "node-expected_rwn_route_relations": { + "freeform": { + "placeholder": "e.g. 3" + }, + "question": "有多少其他健行節點連結至這個節點?", + "render": "這個節點連結至 {expected_rwn_route_relations} 其他健行節點。" + }, + "node-rwn_ref": { + "freeform": { + "placeholder": "e.g. 1" + }, + "question": "這個健行節點的參考編號是?", + "render": "健行節點有參照數字 {rwn_ref}" + }, + "survey_date": { + "override": { + "question": "上次健行節點踏查的時間?", + "render": "上次踏查這個健行節點時間是 {survey:date}" } } + }, + "title": { + "mappings": { + "0": { + "then": "健行節點 {rwn_ref}" + }, + "1": { + "then": "規劃的健行節點{proposed:rwn_ref}" + } + }, + "render": "健行節點" } }, "2": { @@ -1056,9 +1416,17 @@ "render": "登山指標" } } + }, + "4": { + "override": { + "presets": { + "0": { + "title": "節點至節點連結的路線標誌" + } + } + } } }, - "description": "這份地圖顯示健行節點網路,你可以相當輕易新增節點", "title": "健行節點網路" }, "walls_and_buildings": { @@ -1074,374 +1442,6 @@ "shortDescription": "垃圾筒的地圖", "title": "垃圾筒" }, - "grb": { - "layers": { - "1": { - "tagRenderings": { - "Import-button": { - "mappings": { - "0": { - "then": "還沒有計算中介標籤…再次開啟跳出視窗" - }, - "1": { - "then": "這棟建築有中庭而且用關聯繪製。如果是這樣,並沒有辦法整合,需要透過手動整合建築匯出站 {open_in_josm()}" - } - } - } - } - }, - "0": { - "tagRenderings": { - "building type": { - "question": "這邊是什麼類型的建築?" - }, - "grb-reference": { - "render": "已經從GRB匯入,編號是{source:geometry:ref}" - } - } - } - }, - "popup": { - "0": { - "body": { - "0": { - "render": { - "after": "要包括連結 https://wiki.openstreetmap.org/wiki/WikiProject_Belgium/Building_and_address_import", - "special": { - "text": "編輯你的個人檔案" - } - } - }, - "1": { - "render": { - "special": { - "message": "重新載入你的個人檔案" - } - } - } - }, - "title": { - "render": "個人檔案義務" - } - } - }, - "description": "這個主題是企圖自動化GRB匯入。" - }, - "fireplace": { - "description": "室外可以生火的地方或是正式場合的固定烤肉設施。", - "title": "火爐以及烤肉架" - }, - "historic_aircraft": { - "description": "顯示所有歷史物件,永久陳列的飛機。而飛機可以是博物館、藝術品或是紀念碑。", - "title": "歷史飛機" - }, - "items_with_image": { - "description": "顯示所有在OSM帶影像的物件的地圖。這個主題並不是最符合MapComplete的主題,因為並沒有辦法直接添加圖片。然而,這個主題卻能包含在資料庫當中,能夠快速截取附近其他圖徵的圖片", - "title": "所有帶影像的物件" - }, - "kerbs_and_crossings": { - "layers": { - "1": { - "override": { - "=presets": { - "0": { - "description": "行人與/或單車騎士的穿越處", - "title": "穿越道" - } - } - } - } - }, - "description": "顯示路緣與穿越道的地圖。", - "title": "路緣與穿越道" - }, - "mapcomplete-changes": { - "layers": { - "0": { - "tagRenderings": { - "contributor": { - "render": "由{user}做的變動", - "question": "貢獻者在這一變動做了什麼?" - }, - "show_changeset_id": { - "render": "變更集{id}" - }, - "theme-id": { - "render": "由主題改變{theme}", - "question": "那個主題進行變動的?" - }, - "host": { - "question": "什麼主辦方 (網站) 做出這一變動?", - "render": "{host}做出的變動" - }, - "locale": { - "render": "使用者所在地是 {locale}", - "question": "這個變動是用什麼當地 (語言)?" - }, - "version": { - "question": "那個版本的MapComplete用來進行改變?", - "render": "由 {editor} 進行" - }, - "platform": { - "mappings": { - "1": { - "then": "由Android app進行" - }, - "0": { - "then": "由網站進行" - } - }, - "question": "那個平台進行變動?" - } - }, - "filter": { - "11": { - "options": { - "2": { - "question": "由網路上進行" - }, - "0": { - "question": "所有平台" - }, - "1": { - "question": "由Android進行" - } - } - }, - "10": { - "options": { - "0": { - "question": "排除詞源主題" - } - } - }, - "4": { - "options": { - "0": { - "question": "之前進行的 {search}" - } - } - }, - "5": { - "options": { - "0": { - "question": "之後進行的 {search}" - } - } - }, - "8": { - "options": { - "0": { - "question": "變更集必須加至少一張照片" - } - } - }, - "9": { - "options": { - "0": { - "question": "排除GRB主題" - } - } - }, - "0": { - "options": { - "0": { - "question": "含有主題名稱 {search}" - } - } - }, - "6": { - "options": { - "0": { - "question": "使用者語言 (iso-代碼) {search}" - } - } - }, - "2": { - "options": { - "0": { - "question": "由貢獻者進行 {search}" - } - } - }, - "3": { - "options": { - "0": { - "question": "並非由貢獻者進行 {search}" - } - } - }, - "1": { - "options": { - "0": { - "question": "主題名稱並不包含 {search}" - } - } - }, - "7": { - "options": { - "0": { - "question": "由主辦方進行 {search}" - } - } - } - }, - "description": "顯示所有用MapComplete做出的變動", - "name": "變更集的中心位置", - "title": { - "render": "{theme} 的變更集" - } - }, - "1": { - "override": { - "tagRenderings+": { - "0": { - "render": "可以在這邊找到更多統計資訊" - } - } - } - } - }, - "description": "這個地圖顯示所有用MapComplete做出的改變", - "shortDescription": "顯示由MapComplete進行的變動", - "title": "由MapComplete進行的變動" - }, - "memorials": { - "description": "紀念物是在公共場合永久陳列的實體物件,用來紀念個人或是事件。有各種可能的物件,例如雕像、牌匾、繪畫、軍事物件 (例如坦克),...", - "title": "紀念物" - }, - "lighthouses": { - "title": "燈塔", - "description": "燈塔是高塔最高處有打燈,用光線指引船舶交通。" - }, - "historic_rolling_stock": { - "description": "顯示所有歷史,永久安裝的火車,如火車頭與車廂,例如在博物館、公共藝術或是紀念碑型式的地圖。", - "title": "歷史火車" - }, - "icecream": { - "description": "顯示冰淇淋小飯與冰淇淋販賣機的地圖", - "title": "冰淇淋" - }, - "lactosefree": { - "description": "無麩質商店與餐廳的群眾共編地圖", - "title": "無麩質商冢與餐廳" - }, - "insects": { - "description": "昆蟲旅館提供昆蟲的譬護所。", - "title": "昆蟲旅館" - }, - "openlovemap": { - "layers": { - "2": { - "override": { - "=presets": { - "0": { - "title": "情越用品店" - } - }, - "name": "情趣用品店", - "tagRenderings+": { - "0": { - "question": "這家商店提供戀物癖裝備嗎?", - "mappings": { - "0": { - "then": "這間店提供軟性調教道具,例如完整的手銬、完整的格雷的五十道陰影入門款、…" - }, - "1": { - "then": "這間店提供特規調教工具,例如擴張桿、針刺遊戲用品、醫療束縛用品、衝擊工具、枷鎖、金屬色料、袖口、乳頭夾、繩縛配件、…" - }, - "2": { - "then": "這間店提供寵物扮演配件,像是寵物面具、動物面具、馬尾、馬蹄鐵、…" - }, - "3": { - "then": "這間店提供皮革工具,包括日常生活中穿的褲子和襯衫,採用皮革馬具" - }, - "4": { - "then": "這間店提供角色扮演制服,例如護士服、軍服、警察、學生妹、法國女佣、…" - } - } - } - } - } - }, - "6": { - "override": { - "=presets": { - "0": { - "title": "情色電影院" - } - } - } - }, - "9": { - "override": { - "+tagRenderings": { - "0": { - "question": "這間是什麼類型的旅館?" - } - } - } - }, - "4": { - "override": { - "=presets": { - "0": { - "title": "保險套販賣機" - } - } - } - } - }, - "description": "

情色資訊在你手中

開放情色地圖列出不同成人物件,譬如說技院、情趣用品店以及脫衣俱樂部。", - "overrideAll": { - "tagRenderings+": { - "0": { - "question": "這裡 {title()} 有私人視訊亭嗎?", - "questionHint": "這裡只容許單人使用。" - } - } - }, - "title": "開放情趣地圖" - }, - "osm_community_index": { - "description": "開放街圖使用者的資源清單。'資源'也許是連結到論壇、聚會、Slack群組、IRC頻道、郵件論壇等等。針對圖客,特別是初學者會覺得有趣或是有幫助的資源。", - "shortDescription": "開放街圖社群資源的索引。", - "title": "OSM社群索引" - }, - "scouting": { - "title": "童軍團", - "layers": { - "3": { - "override": { - "name": "接待團體與童軍的青年旅館", - "=presets": { - "0": { - "title": "專門接待團體的青年旅館" - } - } - } - }, - "4": { - "override": { - "=presets": { - "0": { - "title": "青年旅館" - } - } - } - }, - "1": { - "override": { - "name": "團體露營地" - } - } - }, - "description": "童軍團屬於少年社交活動,強調戶外活動,進行的活動有露營、登山、水上活動、背包旅行、探索自然、…" - }, - "ski": { - "description": "所有有關滑雪的事項", - "title": "滑雪道和空中纜車" - }, "wayside_shrines": { "description": "這份地圖顯示路邊或小徑旁的小廟與十字架,並且也能加上新的", "title": "路邊小廟" @@ -1477,4 +1477,4 @@ }, "title": "冬季服務" } -} +} \ No newline at end of file diff --git a/scripts/generateDocs.ts b/scripts/generateDocs.ts index fb8038b61..99986d04a 100644 --- a/scripts/generateDocs.ts +++ b/scripts/generateDocs.ts @@ -385,13 +385,11 @@ export class GenerateDocs extends Script { } allLayers.forEach((layer) => { - const element = layer.generateDocumentation( - { - usedInThemes: themesPerLayer.get(layer.id), - layerIsNeededBy: layerIsNeededBy, - dependencies: DependencyCalculator.getLayerDependencies(layer), - }, - ) + const element = layer.generateDocumentation({ + usedInThemes: themesPerLayer.get(layer.id), + layerIsNeededBy: layerIsNeededBy, + dependencies: DependencyCalculator.getLayerDependencies(layer), + }) const inlineSource = inlineLayers.get(layer.id) ScriptUtils.erasableLog("Exporting layer documentation for", layer.id) if (!existsSync("./Docs/Layers")) { @@ -483,13 +481,14 @@ export class GenerateDocs extends Script { "questions.json", true ) - const reusedTagRenderings = DependencyCalculator.tagRenderingImportedBy(qLayer, Array.from(AllSharedLayers.sharedLayers.values())) - const docs = qLayer.generateDocumentation({ reusedTagRenderings }) - this.WriteMarkdownFile( - "./Docs/BuiltinQuestions.md", - docs, - ["assets/layers/questions/questions.json"] + const reusedTagRenderings = DependencyCalculator.tagRenderingImportedBy( + qLayer, + Array.from(AllSharedLayers.sharedLayers.values()) ) + const docs = qLayer.generateDocumentation({ reusedTagRenderings }) + this.WriteMarkdownFile("./Docs/BuiltinQuestions.md", docs, [ + "assets/layers/questions/questions.json", + ]) } private generateForTheme(theme: ThemeConfig): void { @@ -590,15 +589,13 @@ export class GenerateDocs extends Script { ...Utils.NoNull( Constants.priviliged_layers.map((id) => AllSharedLayers.sharedLayers.get(id)) ).map((l) => - l.generateDocumentation( - { - usedInThemes: themesPerLayer.get(l.id), - layerIsNeededBy: layerIsNeededBy, - dependencies: DependencyCalculator.getLayerDependencies(l), - addedByDefault: Constants.added_by_default.indexOf(l.id) >= 0, - canBeIncluded: Constants.no_include.indexOf(l.id) < 0, - }, - ) + l.generateDocumentation({ + usedInThemes: themesPerLayer.get(l.id), + layerIsNeededBy: layerIsNeededBy, + dependencies: DependencyCalculator.getLayerDependencies(l), + addedByDefault: Constants.added_by_default.indexOf(l.id) >= 0, + canBeIncluded: Constants.no_include.indexOf(l.id) < 0, + }) ), "# Normal layers", "The following layers are included in MapComplete:", diff --git a/scripts/generateLayerOverview.ts b/scripts/generateLayerOverview.ts index 85cbd2aa9..85c47f4bf 100644 --- a/scripts/generateLayerOverview.ts +++ b/scripts/generateLayerOverview.ts @@ -14,7 +14,11 @@ import { import { Translation } from "../src/UI/i18n/Translation" import { PrepareLayer } from "../src/Models/ThemeConfig/Conversion/PrepareLayer" import { PrepareTheme } from "../src/Models/ThemeConfig/Conversion/PrepareTheme" -import { Conversion, DesugaringContext, DesugaringStep } from "../src/Models/ThemeConfig/Conversion/Conversion" +import { + Conversion, + DesugaringContext, + DesugaringStep, +} from "../src/Models/ThemeConfig/Conversion/Conversion" import { Utils } from "../src/Utils" import Script from "./Script" import { AllSharedLayers } from "../src/Customizations/AllSharedLayers" @@ -31,7 +35,10 @@ import { Translatable } from "../src/Models/ThemeConfig/Json/Translatable" import { ValidateThemeAndLayers } from "../src/Models/ThemeConfig/Conversion/ValidateThemeAndLayers" import { ExtractImages } from "../src/Models/ThemeConfig/Conversion/FixImages" import { TagRenderingConfigJson } from "../src/Models/ThemeConfig/Json/TagRenderingConfigJson" -import { LayerConfigDependencyGraph, LevelInfo } from "../src/Models/ThemeConfig/LayerConfigDependencyGraph" +import { + LayerConfigDependencyGraph, + LevelInfo, +} from "../src/Models/ThemeConfig/LayerConfigDependencyGraph" // This scripts scans 'src/assets/layers/*.json' for layer definition files and 'src/assets/themes/*.json' for theme definition files. // It spits out an overview of those to be used to load them @@ -106,7 +113,7 @@ class AddIconSummary extends DesugaringStep<{ raw: LayerConfigJson; parsed: Laye static singleton = new AddIconSummary() constructor() { - super("AddIconSummary","Adds an icon summary for quick reference") + super("AddIconSummary", "Adds an icon summary for quick reference") } convert(json: { raw: LayerConfigJson; parsed: LayerConfig }) { diff --git a/scripts/generateLayouts.ts b/scripts/generateLayouts.ts index 4da5d63c0..43262ff50 100644 --- a/scripts/generateLayouts.ts +++ b/scripts/generateLayouts.ts @@ -235,12 +235,12 @@ class GenerateLayouts extends Script { orientation: "portrait-primary, landscape-primary", icons: icons, categories: ["map", "navigation"], - "protocol_handlers": [ + protocol_handlers: [ { - "protocol": "geo", - "url": `/${id.toLowerCase()}.html?geouri=%s` - } - ] + protocol: "geo", + url: `/${id.toLowerCase()}.html?geouri=%s`, + }, + ], } return { manifest, diff --git a/scripts/generateSunnyUnlabeled.ts b/scripts/generateSunnyUnlabeled.ts index 09729d45e..cf670160d 100644 --- a/scripts/generateSunnyUnlabeled.ts +++ b/scripts/generateSunnyUnlabeled.ts @@ -25,7 +25,6 @@ export class GenerateSunnyUnlabeled extends Script { delete hosted.sources.protomaps.url hosted.sources.protomaps["tiles"] = [tilesource] writeFileSync("public/assets/sunny-hosted.json", JSON.stringify(hosted, null, " ")) - } async main(args: string[]): Promise { diff --git a/src/Logic/Actors/InitialMapPositioning.ts b/src/Logic/Actors/InitialMapPositioning.ts index 3a55f746a..78397500c 100644 --- a/src/Logic/Actors/InitialMapPositioning.ts +++ b/src/Logic/Actors/InitialMapPositioning.ts @@ -66,15 +66,19 @@ export default class InitialMapPositioning { defaultLon, "The initial/current longitude of the app" ) - const geouri = QueryParameters.GetQueryParameter("geouri", undefined, "Alternative format to set lat/lon; but with an entire geouri instead. ") - console.log("geouri", geouri.data, !!geouri.data) - if (geouri.data) { + const geouri = QueryParameters.GetQueryParameter( + "geouri", + undefined, + "Alternative format to set lat/lon; but with an entire geouri instead. " + ) + console.log("geouri", geouri.data, !!geouri.data) + if (geouri.data) { try { - const url = new URL("geo:"+decodeURIComponent(geouri.data)) - const [latN, lonN] = url.pathname.split(",").map(n => parseFloat(n)) + const url = new URL("geo:" + decodeURIComponent(geouri.data)) + const [latN, lonN] = url.pathname.split(",").map((n) => parseFloat(n)) lat.set(latN) lon.set(lonN) - if(url.searchParams.has("q")){ + if (url.searchParams.has("q")) { QueryParameters.GetQueryParameter("q", undefined).set(url.searchParams.get("q")) } } catch (e) { diff --git a/src/Logic/ImageProviders/GenericImageProvider.ts b/src/Logic/ImageProviders/GenericImageProvider.ts index 46156d826..e73bd8091 100644 --- a/src/Logic/ImageProviders/GenericImageProvider.ts +++ b/src/Logic/ImageProviders/GenericImageProvider.ts @@ -35,8 +35,9 @@ export default class GenericImageProvider extends ImageProvider { id: value, isSpherical: undefined, originalAttribute: { - key, value - } + key, + value, + }, }, ] } diff --git a/src/Logic/ImageProviders/ImageProvider.ts b/src/Logic/ImageProviders/ImageProvider.ts index 92cef75d3..ab3519651 100644 --- a/src/Logic/ImageProviders/ImageProvider.ts +++ b/src/Logic/ImageProviders/ImageProvider.ts @@ -26,7 +26,7 @@ export interface ProvidedImage { host?: string isSpherical: boolean license?: LicenseInfo - originalAttribute?: {key: string, value: string} + originalAttribute?: { key: string; value: string } } export interface PanoramaView { diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts index 7a0e3b160..4e3345e31 100644 --- a/src/Logic/ImageProviders/ImageUploadManager.ts +++ b/src/Logic/ImageProviders/ImageUploadManager.ts @@ -180,13 +180,13 @@ export class ImageUploadManager { queue = [...queue] while (queue.length > 0) { const currentItem = queue.shift() - if(!currentItem){ + if (!currentItem) { continue } const uploadOk = await this.handleQueueItem(currentItem) - if(uploadOk){ + if (uploadOk) { this._queue.delete(currentItem) - }else{ + } else { // Our local 'queue' is a copy where we've removed the failed item from // A next attempt to 'uploadQueue' will retry the upload } @@ -255,7 +255,7 @@ export class ImageUploadManager { if (properties === undefined) { const downloaded = await new OsmObjectDownloader( this._osmConnection.Backend(), - this._changes, + this._changes ).DownloadObjectAsync(args.featureId) if (downloaded === "deleted") { this._queue.delete(args) @@ -264,16 +264,10 @@ export class ImageUploadManager { this._featureProperties.trackFeature(downloaded.asGeoJson()) properties = this._featureProperties.getStore(args.featureId) } - const action = new LinkImageAction( - args.featureId, - result.key, - result.value, - properties, - { - theme: args.layoutId ?? properties?.data?.["_orig_theme"] ?? this._theme.id, - changeType: "add-image", - }, - ) + const action = new LinkImageAction(args.featureId, result.key, result.value, properties, { + theme: args.layoutId ?? properties?.data?.["_orig_theme"] ?? this._theme.id, + changeType: "add-image", + }) await this._changes.applyAction(action) await this._changes.flushChanges("Image upload completed") return true diff --git a/src/Logic/ImageProviders/Imgur.ts b/src/Logic/ImageProviders/Imgur.ts index 7ec61812f..b1303b080 100644 --- a/src/Logic/ImageProviders/Imgur.ts +++ b/src/Logic/ImageProviders/Imgur.ts @@ -33,7 +33,7 @@ export class Imgur extends ImageProvider { provider: this, id: value, isSpherical: false, - originalAttribute: {key, value} + originalAttribute: { key, value }, }, ] } diff --git a/src/Logic/ImageProviders/Mapillary.ts b/src/Logic/ImageProviders/Mapillary.ts index 8ef7f23c8..811d6a93c 100644 --- a/src/Logic/ImageProviders/Mapillary.ts +++ b/src/Logic/ImageProviders/Mapillary.ts @@ -246,7 +246,7 @@ export class Mapillary extends ImageProvider { response.camera_type === "spherical" || response.camera_type === "equirectangular", lat: geometry.coordinates[1], lon: geometry.coordinates[0], - originalAttribute: {key, value} + originalAttribute: { key, value }, } } @@ -260,14 +260,15 @@ export class Mapillary extends ImageProvider { return Mapillary.createLink(location, 17, image.id) } - /** * Returns true if we are in firefox strict mode (or if we are offline) * @private */ private static async checkStrictMode(): Promise { try { - const result = await fetch("https://scontent-bru2-1.xx.fbcdn.net/m1/v/t6/Xn8-ISUUYQyBD9FyACzPFRGZnBJRqIFmnQ_yd7FU6vxFYwD21fvAcZwDQoMzsScxcQyCWeBviKpWO4nX8yf--neJDvVjC4JlQtfBYb6TrpXQTniyafSFeZeePT_NVx3H6gMjceEvXHyvBqOOcCB_xQ?stp=c2048.2048.2000.988a_s1000x1000&_nc_gid=E2oHnrAtHutVvjaIm9qDLg&_nc_oc=AdkcScR9HuKt1X_K5-GrUeR5Paj8d7MsNFFYEBSmgc0IiBey_wS3RiNJpflWIKaQzNE&ccb=10-5&oh=00_AfNJ1Ki1IeGdUMxdFUc3ZX9VYIVFxVfXZ9MUATU3vj_RJw&oe=686AF002&_nc_sid=201bca") + const result = await fetch( + "https://scontent-bru2-1.xx.fbcdn.net/m1/v/t6/Xn8-ISUUYQyBD9FyACzPFRGZnBJRqIFmnQ_yd7FU6vxFYwD21fvAcZwDQoMzsScxcQyCWeBviKpWO4nX8yf--neJDvVjC4JlQtfBYb6TrpXQTniyafSFeZeePT_NVx3H6gMjceEvXHyvBqOOcCB_xQ?stp=c2048.2048.2000.988a_s1000x1000&_nc_gid=E2oHnrAtHutVvjaIm9qDLg&_nc_oc=AdkcScR9HuKt1X_K5-GrUeR5Paj8d7MsNFFYEBSmgc0IiBey_wS3RiNJpflWIKaQzNE&ccb=10-5&oh=00_AfNJ1Ki1IeGdUMxdFUc3ZX9VYIVFxVfXZ9MUATU3vj_RJw&oe=686AF002&_nc_sid=201bca" + ) console.log("Not blocked, got a forbidden", result.status) return false } catch (e) { diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts index 8bfff3053..b66a8278d 100644 --- a/src/Logic/ImageProviders/Panoramax.ts +++ b/src/Logic/ImageProviders/Panoramax.ts @@ -174,7 +174,7 @@ export default class PanoramaxImageProvider extends ImageProvider { } const providedImage = await this.getInfo(value) providedImage.alt_id = alt_id - providedImage.originalAttribute = {key, value} + providedImage.originalAttribute = { key, value } return [providedImage] } diff --git a/src/Logic/ImageProviders/WikidataImageProvider.ts b/src/Logic/ImageProviders/WikidataImageProvider.ts index baecf8c15..83708fd07 100644 --- a/src/Logic/ImageProviders/WikidataImageProvider.ts +++ b/src/Logic/ImageProviders/WikidataImageProvider.ts @@ -61,9 +61,9 @@ export class WikidataImageProvider extends ImageProvider { allImages.push(promises) } const resolved = await Promise.all(Utils.NoNull(allImages)) - const flattened = resolved.flatMap( x => x) - if(flattened.length === 1){ - flattened[0].originalAttribute = {key, value} + const flattened = resolved.flatMap((x) => x) + if (flattened.length === 1) { + flattened[0].originalAttribute = { key, value } } return flattened } diff --git a/src/Logic/ImageProviders/WikimediaImageProvider.ts b/src/Logic/ImageProviders/WikimediaImageProvider.ts index 0c2759f8c..eee884024 100644 --- a/src/Logic/ImageProviders/WikimediaImageProvider.ts +++ b/src/Logic/ImageProviders/WikimediaImageProvider.ts @@ -221,8 +221,8 @@ export class WikimediaImageProvider extends ImageProvider { id: image, isSpherical: false, } - if(key && value){ - providedImage.originalAttribute = {key, value} + if (key && value) { + providedImage.originalAttribute = { key, value } } return providedImage } diff --git a/src/Logic/State/UserRelatedState.ts b/src/Logic/State/UserRelatedState.ts index 1ee0cee05..88db8ee3a 100644 --- a/src/Logic/State/UserRelatedState.ts +++ b/src/Logic/State/UserRelatedState.ts @@ -269,20 +269,23 @@ export default class UserRelatedState { ) this.language = this.osmConnection.getPreference("language") this.showTags = this.osmConnection.getPreference("show_tags") - this.showTagsB = this.showTags.map(showTags => { - if (showTags === "always" || showTags === "full") { - return true - } - if (showTags === "no") { - return false - } - const userdetails = this.osmConnection.userDetails.data - if (!userdetails) { - return false - } - const csCount = userdetails.csCount - return csCount >= Constants.userJourney.tagsVisibleAt - }, [this.osmConnection.userDetails]) + this.showTagsB = this.showTags.map( + (showTags) => { + if (showTags === "always" || showTags === "full") { + return true + } + if (showTags === "no") { + return false + } + const userdetails = this.osmConnection.userDetails.data + if (!userdetails) { + return false + } + const csCount = userdetails.csCount + return csCount >= Constants.userJourney.tagsVisibleAt + }, + [this.osmConnection.userDetails] + ) this.showCrosshair = this.osmConnection.getPreference("show_crosshair") this.fixateNorth = this.osmConnection.getPreference("fixate-north") this.morePrivacy = this.osmConnection.getPreference("more_privacy", { defaultValue: "no" }) diff --git a/src/Logic/State/UserSettingsMetaTagging.ts b/src/Logic/State/UserSettingsMetaTagging.ts index 33a5ae85b..6e568c5c3 100644 --- a/src/Logic/State/UserSettingsMetaTagging.ts +++ b/src/Logic/State/UserSettingsMetaTagging.ts @@ -1,14 +1,42 @@ import { Utils } from "../../Utils" /** This code is autogenerated - do not edit. Edit ./assets/layers/usersettings/usersettings.json instead */ export class ThemeMetaTagging { - public static readonly themeName = "usersettings" + public static readonly themeName = "usersettings" - public metaTaggging_for_usersettings(feat: {properties: Record}) { - Utils.AddLazyProperty(feat.properties, '_mastodon_candidate_md', () => feat.properties._description.match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/)?.at(1) ) - Utils.AddLazyProperty(feat.properties, '_d', () => feat.properties._description?.replace(/</g,'<')?.replace(/>/g,'>') ?? '' ) - Utils.AddLazyProperty(feat.properties, '_mastodon_candidate_a', () => (feat => {const e = document.createElement('div');e.innerHTML = feat.properties._d;return Array.from(e.getElementsByTagName("a")).filter(a => a.href.match(/mastodon|en.osm.town/) !== null)[0]?.href }) (feat) ) - Utils.AddLazyProperty(feat.properties, '_mastodon_link', () => (feat => {const e = document.createElement('div');e.innerHTML = feat.properties._d;return Array.from(e.getElementsByTagName("a")).filter(a => a.getAttribute("rel")?.indexOf('me') >= 0)[0]?.href})(feat) ) - Utils.AddLazyProperty(feat.properties, '_mastodon_candidate', () => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a ) - feat.properties['__current_backgroun'] = 'initial_value' - } -} \ No newline at end of file + public metaTaggging_for_usersettings(feat: { properties: Record }) { + Utils.AddLazyProperty(feat.properties, "_mastodon_candidate_md", () => + feat.properties._description + .match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/) + ?.at(1) + ) + Utils.AddLazyProperty( + feat.properties, + "_d", + () => feat.properties._description?.replace(/</g, "<")?.replace(/>/g, ">") ?? "" + ) + Utils.AddLazyProperty(feat.properties, "_mastodon_candidate_a", () => + ((feat) => { + const e = document.createElement("div") + e.innerHTML = feat.properties._d + return Array.from(e.getElementsByTagName("a")).filter( + (a) => a.href.match(/mastodon|en.osm.town/) !== null + )[0]?.href + })(feat) + ) + Utils.AddLazyProperty(feat.properties, "_mastodon_link", () => + ((feat) => { + const e = document.createElement("div") + e.innerHTML = feat.properties._d + return Array.from(e.getElementsByTagName("a")).filter( + (a) => a.getAttribute("rel")?.indexOf("me") >= 0 + )[0]?.href + })(feat) + ) + Utils.AddLazyProperty( + feat.properties, + "_mastodon_candidate", + () => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a + ) + feat.properties["__current_backgroun"] = "initial_value" + } +} diff --git a/src/Models/RasterLayers.ts b/src/Models/RasterLayers.ts index d9d67fdc2..6ff3fb41a 100644 --- a/src/Models/RasterLayers.ts +++ b/src/Models/RasterLayers.ts @@ -69,15 +69,13 @@ export class AvailableRasterLayers { console.log("Invalid layers:", JSON.stringify(joined.filter((l) => !l.id))) throw "Detected invalid global layer with invalid id" } - return joined.map( - (properties) => { - return { - type: "Feature", - properties, - geometry: BBox.global.asGeometry(), - } + return joined.map((properties) => { + return { + type: "Feature", + properties, + geometry: BBox.global.asGeometry(), } - ) + }) } /** diff --git a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts index e83c01fa6..3f9c37b09 100644 --- a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts +++ b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts @@ -170,7 +170,10 @@ class DetectInline extends DesugaringStep { export class AddQuestionBox extends DesugaringStep { constructor() { - super("AddQuestionBox", "Adds a 'questions'-object if no question element is added yet. Will ignore all elements which were previously asked for (and questions labeled with 'hidden')") + super( + "AddQuestionBox", + "Adds a 'questions'-object if no question element is added yet. Will ignore all elements which were previously asked for (and questions labeled with 'hidden')" + ) } /** @@ -210,14 +213,12 @@ export class AddQuestionBox extends DesugaringStep { (sp) => sp.args.length === 0 || sp.args[0].trim() === "" ) - if (noLabels.length > 1) { context.err( - "Multiple 'questions'-visualisations found which would show _all_ questions. Don't do this - questions will be shown twice. Did you perhaps import all questions from another layer?", + "Multiple 'questions'-visualisations found which would show _all_ questions. Don't do this - questions will be shown twice. Did you perhaps import all questions from another layer?" ) } - /** * We want to construct a questionbox that shows all leftover questions. * For this, we need to determine what those leftover questions _are_ in the first place. @@ -227,14 +228,14 @@ export class AddQuestionBox extends DesugaringStep { // ALl labels that are used in this layer const allLabels = new Set( - json.tagRenderings.flatMap( - (tr) => (tr).labels ?? [] - ) + json.tagRenderings.flatMap( + (tr) => (tr).labels ?? [] + ) ) /** * The essence of all questionboxes: what is whitelisted, what is blacklisted? */ - const questionBoxes: { blacklist: string[], whitelist: string[] }[] = [] + const questionBoxes: { blacklist: string[]; whitelist: string[] }[] = [] for (const questionSpecial of questionSpecials) { if (typeof questionSpecial === "string") { // Probably a header or something @@ -273,7 +274,7 @@ export class AddQuestionBox extends DesugaringStep { for (const { blacklist, whitelist } of questionBoxes) { if (whitelist.length > 0 && blacklist.length == 0) { // All questions from "whitelist" are guaranteed to be used here - whitelist.forEach(label => usedLabels.add(label)) + whitelist.forEach((label) => usedLabels.add(label)) } } @@ -281,12 +282,14 @@ export class AddQuestionBox extends DesugaringStep { * Can we say that the whitelisted items are fully consumed? */ let needsEvaluation = true - let toEvaluate = questionBoxes.filter(q => q.whitelist.length > 0 && q.blacklist.length > 0) + let toEvaluate = questionBoxes.filter( + (q) => q.whitelist.length > 0 && q.blacklist.length > 0 + ) while (needsEvaluation && toEvaluate.length > 0) { needsEvaluation = false const toReEvaluate = [] for (const { blacklist, whitelist } of toEvaluate) { - const blacklistRest = blacklist.filter(label => !usedLabels.has(label)) + const blacklistRest = blacklist.filter((label) => !usedLabels.has(label)) if (blacklistRest.length == 0) { // All items from the blacklist have been handled by a different questionbox // We can safely say that all whitelisted items are consumed @@ -294,7 +297,7 @@ export class AddQuestionBox extends DesugaringStep { // Even better: this questionbox will show all leftover questions return json } - whitelist.forEach(label => { + whitelist.forEach((label) => { usedLabels.add(label) }) needsEvaluation = true @@ -312,11 +315,12 @@ export class AddQuestionBox extends DesugaringStep { context.err( "Could not calculate a non-ambiguous leftover questions block. A {questions()}-special rendering is found which has both a whitelist and a blacklist; where the blacklist was not fully consumed by other tagRenderings\n\t" + - JSON.stringify(toEvaluate)+"\n\tConsumed labels are: "+Array.from(usedLabels).join(", "), + JSON.stringify(toEvaluate) + + "\n\tConsumed labels are: " + + Array.from(usedLabels).join(", ") ) } - /* At this point, we know which question labels are not yet handled and which already are handled, and we * know there is no previous catch-all questions */ diff --git a/src/Models/ThemeConfig/DependencyCalculator.ts b/src/Models/ThemeConfig/DependencyCalculator.ts index 23519668e..fd196f625 100644 --- a/src/Models/ThemeConfig/DependencyCalculator.ts +++ b/src/Models/ThemeConfig/DependencyCalculator.ts @@ -6,17 +6,24 @@ import SpecialVisualizations from "../../UI/SpecialVisualizations" import { LayerConfigJson } from "./Json/LayerConfigJson" export default class DependencyCalculator { - /** * For every tagRendering in the listed layers, determines in what layers they end up */ - public static tagRenderingImportedBy(questionedLayer: LayerConfig, layers: LayerConfig[]): Map { + public static tagRenderingImportedBy( + questionedLayer: LayerConfig, + layers: LayerConfig[] + ): Map< + string, + { + layer: string + }[] + > { const result: Map = new Map() for (const layer of layers) { - const hasRightContext = layer.tagRenderings.filter(tr => tr._definedIn !== undefined && tr?._definedIn?.[0] === questionedLayer.id) + const hasRightContext = layer.tagRenderings.filter( + (tr) => tr._definedIn !== undefined && tr?._definedIn?.[0] === questionedLayer.id + ) for (const tr of hasRightContext) { const id = tr._definedIn[1] if (!result.has(id)) { diff --git a/src/Models/ThemeConfig/LayerConfig.ts b/src/Models/ThemeConfig/LayerConfig.ts index 3b0d7df45..d27004458 100644 --- a/src/Models/ThemeConfig/LayerConfig.ts +++ b/src/Models/ThemeConfig/LayerConfig.ts @@ -438,17 +438,23 @@ export default class LayerConfig extends WithContextLoader { ) } - public generateDocumentation( - { usedInThemes = [], layerIsNeededBy, dependencies = [], addedByDefault = false, canBeIncluded = true, lang = "en", reusedTagRenderings }: { - usedInThemes?: string[], - layerIsNeededBy?: Map, - dependencies?: { context?: string; reason: string; neededLayer: string }[], - addedByDefault?: boolean, - canBeIncluded?: boolean, - reusedTagRenderings?: Map, - lang?: string - } - ): string { + public generateDocumentation({ + usedInThemes = [], + layerIsNeededBy, + dependencies = [], + addedByDefault = false, + canBeIncluded = true, + lang = "en", + reusedTagRenderings, + }: { + usedInThemes?: string[] + layerIsNeededBy?: Map + dependencies?: { context?: string; reason: string; neededLayer: string }[] + addedByDefault?: boolean + canBeIncluded?: boolean + reusedTagRenderings?: Map + lang?: string + }): string { const extraProps: string[] = [] extraProps.push("This layer is shown at zoomlevel **" + this.minzoom + "** and higher") @@ -669,7 +675,12 @@ export default class LayerConfig extends WithContextLoader { this.generateDocumentationQuickTable(), ...this.tagRenderings .filter((tr) => tr.labels.indexOf("ignore_docs") < 0) - .map((tr) => tr.generateDocumentation(lang, reusedTagRenderings?.get(tr.id)?.map(l => l.layer))), + .map((tr) => + tr.generateDocumentation( + lang, + reusedTagRenderings?.get(tr.id)?.map((l) => l.layer) + ) + ), ...filterDocs, ].join("\n\n") } diff --git a/src/Models/ThemeConfig/TagRenderingConfig.ts b/src/Models/ThemeConfig/TagRenderingConfig.ts index f7055f4d7..0d68c86ec 100644 --- a/src/Models/ThemeConfig/TagRenderingConfig.ts +++ b/src/Models/ThemeConfig/TagRenderingConfig.ts @@ -1020,10 +1020,11 @@ export default class TagRenderingConfig { ...this.labels.map((label) => "`" + label + "`"), ].join(" ") } - let reuse : string = undefined - if(usedInLayers?.length > 0){ - reuse = [`This tagRendering is used in ${usedInLayers.length} layers:`, - ...usedInLayers.map(l => `[${l}](./Layers/${l}.md)`) + let reuse: string = undefined + if (usedInLayers?.length > 0) { + reuse = [ + `This tagRendering is used in ${usedInLayers.length} layers:`, + ...usedInLayers.map((l) => `[${l}](./Layers/${l}.md)`), ].join(" ") } @@ -1038,7 +1039,7 @@ export default class TagRenderingConfig { condition, labels, "", - reuse + reuse, ]).join("\n") } diff --git a/src/Models/ThemeViewState/WithLayoutSourceState.ts b/src/Models/ThemeViewState/WithLayoutSourceState.ts index 763a0d8e1..cb9ceeeac 100644 --- a/src/Models/ThemeViewState/WithLayoutSourceState.ts +++ b/src/Models/ThemeViewState/WithLayoutSourceState.ts @@ -131,8 +131,9 @@ export class WithLayoutSourceState extends WithSelectedElementState { protected setSelectedElement(feature: Feature) { // The given feature might be a partial one from the cache - if(feature !== undefined){ - feature = this.indexedFeatures.featuresById.data?.get(feature?.properties?.id) ?? feature + if (feature !== undefined) { + feature = + this.indexedFeatures.featuresById.data?.get(feature?.properties?.id) ?? feature } super.setSelectedElement(feature) } diff --git a/src/Models/ThemeViewState/WithSearchState.ts b/src/Models/ThemeViewState/WithSearchState.ts index e0f8c085c..5962e617c 100644 --- a/src/Models/ThemeViewState/WithSearchState.ts +++ b/src/Models/ThemeViewState/WithSearchState.ts @@ -17,11 +17,9 @@ export class WithSearchState extends WithVisualFeedbackState { this.searchState = new SearchState(this) this.initHotkeysSearch() this.displaySearchLayer() - } private displaySearchLayer() { - const source = this.searchState.locationResults const flayer = this.layerState.filteredLayers.get("search") this.featureProperties.trackFeatureSource(source) diff --git a/src/UI/Base/LoadingPlaceholder.svelte b/src/UI/Base/LoadingPlaceholder.svelte index c2a97d8b3..4c3efc5db 100644 --- a/src/UI/Base/LoadingPlaceholder.svelte +++ b/src/UI/Base/LoadingPlaceholder.svelte @@ -3,7 +3,7 @@
-
+
diff --git a/src/UI/BigComponents/GpsElementHelper.svelte b/src/UI/BigComponents/GpsElementHelper.svelte index cf321e24d..f2abf504b 100644 --- a/src/UI/BigComponents/GpsElementHelper.svelte +++ b/src/UI/BigComponents/GpsElementHelper.svelte @@ -16,9 +16,8 @@ function showFor(timeoutSeconds: number = 5) { open = true window.setTimeout(() => { - open = false - }, - timeoutSeconds * 1000) + open = false + }, timeoutSeconds * 1000) } mapIsDragged.addCallback(() => { @@ -28,27 +27,30 @@ } }) gpsState.requestMoment.stabilized(50).addCallback(() => { - if(gpsState.gpsAvailable.data && gpsState.allowMoving.data){ + if (gpsState.gpsAvailable.data && gpsState.allowMoving.data) { return } showFor(5) }) let explanation = gpsState.gpsStateExplanation onDestroy( - explanation.stabilized(50).addCallbackD( - expl => { - if (expl) { - showFor(5) - } else { - open = false - } - }, - ), + explanation.stabilized(50).addCallbackD((expl) => { + if (expl) { + showFor(5) + } else { + open = false + } + }) ) - - fade(e, {duration: 150})} bind:open> + fade(e, { duration: 150 })} + bind:open +>
diff --git a/src/UI/BigComponents/WelcomeBack.svelte b/src/UI/BigComponents/WelcomeBack.svelte index 8373c3359..4f6f364e6 100644 --- a/src/UI/BigComponents/WelcomeBack.svelte +++ b/src/UI/BigComponents/WelcomeBack.svelte @@ -1,5 +1,4 @@ - - fade(e, {duration: 150})} bind:open> + fade(e, { duration: 150 })} + bind:open +> {#if $userdetails !== undefined}
{#if $userdetails.img} - profile picture + profile picture {/if}
Welcome back
@@ -35,4 +39,3 @@
{/if} - diff --git a/src/UI/Image/AttributedImage.svelte b/src/UI/Image/AttributedImage.svelte index 7a5702548..22d3902ab 100644 --- a/src/UI/Image/AttributedImage.svelte +++ b/src/UI/Image/AttributedImage.svelte @@ -50,26 +50,21 @@ async function detectErrorReason() { try { - - const response = await fetch( - image.url, - { - headers: { - "Accept": "image/avif,image/webp,*/*", - }, + const response = await fetch(image.url, { + headers: { + Accept: "image/avif,image/webp,*/*", }, - ) + }) if (response.status === 404) { notFound = true } - } catch - (e) { + } catch (e) { console.log("Could not load image while trying to remediate", e) } } async function onError() { - Mapillary.isInStrictMode().addCallbackAndRunD(isStrict => { + Mapillary.isInStrictMode().addCallbackAndRunD((isStrict) => { isInStrictMode.set(isStrict) return true // unregister }) @@ -82,16 +77,16 @@ onDestroy( showBigPreview.addCallbackAndRun((shown) => { state?.guistate?.setPreviewedImage(shown ? image : undefined) - }), + }) ) if (previewedImage) { onDestroy( previewedImage.addCallbackAndRun((previewedImage) => { showBigPreview.set( previewedImage !== undefined && - (previewedImage?.id ?? previewedImage?.url) === (image.id ?? image.url), + (previewedImage?.id ?? previewedImage?.url) === (image.id ?? image.url) ) - }), + }) ) } @@ -135,17 +130,17 @@
{#if error} -
+
{#if notFound}
- + Not found
This image is probably incorrect or deleted. {:else}
- +
{#if image.provider.name.toLowerCase() === "mapillary" && $isInStrictMode} @@ -153,7 +148,7 @@ {:else if $isInStrictMode} {image.provider.name} -
{image.url}
+
{image.url}
{/if} {/if}
@@ -225,10 +220,10 @@
{:else if image.status === "hidden"} -
- +
+ -
diff --git a/src/UI/Image/DeletableImage.svelte b/src/UI/Image/DeletableImage.svelte index 955ba9312..b9185500c 100644 --- a/src/UI/Image/DeletableImage.svelte +++ b/src/UI/Image/DeletableImage.svelte @@ -65,7 +65,7 @@ } async function unlink() { - const {key} = image.originalAttribute + const { key } = image.originalAttribute await state?.changes?.applyAction( new ChangeTagAction(tags.data.id, new Tag(key, ""), tags.data, { changeType: "delete-image", @@ -95,7 +95,7 @@
- +

diff --git a/src/UI/Image/NearbyImages.svelte b/src/UI/Image/NearbyImages.svelte index 98e811210..fea38de50 100644 --- a/src/UI/Image/NearbyImages.svelte +++ b/src/UI/Image/NearbyImages.svelte @@ -157,7 +157,9 @@ type: "Feature", geometry: { type: "Point", coordinates: GeoOperations.centerpointCoordinates(feature) }, properties: { - name: layer.title?.GetRenderValue(feature.properties)?.Subs(feature.properties)?.txt ?? "Feature", + name: + layer.title?.GetRenderValue(feature.properties)?.Subs(feature.properties)?.txt ?? + "Feature", focus: true, }, }, diff --git a/src/UI/InputElement/Helpers/OpeningHoursInput.svelte b/src/UI/InputElement/Helpers/OpeningHoursInput.svelte index 960dd96db..dce268402 100644 --- a/src/UI/InputElement/Helpers/OpeningHoursInput.svelte +++ b/src/UI/InputElement/Helpers/OpeningHoursInput.svelte @@ -31,16 +31,15 @@ const state = new OpeningHoursState(value, prefix, postfix) let expanded = new UIEventSource(false) - -
- +
+
diff --git a/src/UI/Map/MapLibreAdaptor.ts b/src/UI/Map/MapLibreAdaptor.ts index 49b69dcda..bed4cc0e9 100644 --- a/src/UI/Map/MapLibreAdaptor.ts +++ b/src/UI/Map/MapLibreAdaptor.ts @@ -757,10 +757,11 @@ export class MapLibreAdaptor implements MapProperties, ExportableMap { if (!showScale) { if (this.scaleControl) { try { - map.removeControl(this.scaleControl) } catch (e) { - console.warn("Could not remove scale control, underlying map might have had a reset") + console.warn( + "Could not remove scale control, underlying map might have had a reset" + ) } this.scaleControl = undefined } diff --git a/src/UI/NotFound.svelte b/src/UI/NotFound.svelte index 10b733fef..24ec5053d 100644 --- a/src/UI/NotFound.svelte +++ b/src/UI/NotFound.svelte @@ -10,8 +10,7 @@
- - +

diff --git a/src/UI/OpeningHours/OpeningHours.ts b/src/UI/OpeningHours/OpeningHours.ts index f4c81eaab..c4facd9ab 100644 --- a/src/UI/OpeningHours/OpeningHours.ts +++ b/src/UI/OpeningHours/OpeningHours.ts @@ -466,9 +466,8 @@ changes // => [[36000,61200], ["10:00", "17:00"]] */ public static allChangeMoments( ranges: OpeningRange[][], - includeOpenEnds = false, + includeOpenEnds = false ): [number[], string[]] { - const changeHours: number[] = [] const changeHourText: string[] = [] @@ -477,7 +476,6 @@ changes // => [[36000,61200], ["10:00", "17:00"]] for (const weekday of ranges) { for (const range of weekday) { - if (!(range.openEnd || range.isOpen || range.isSpecial)) { continue } @@ -494,7 +492,7 @@ changes // => [[36000,61200], ["10:00", "17:00"]] ) } - if(range.openEnd && !includeOpenEnds){ + if (range.openEnd && !includeOpenEnds) { continue } @@ -572,7 +570,7 @@ changes // => [[36000,61200], ["10:00", "17:00"]] public static createOhObject( tags: Record & { _lat: number; _lon: number; _country?: string }, textToParse: string, - country: string, + country: string ) { return new opening_hours( textToParse, diff --git a/src/UI/OpeningHours/Visualisation/OpeningHoursRangeElement.svelte b/src/UI/OpeningHours/Visualisation/OpeningHoursRangeElement.svelte index a178a52ff..e99aab8f5 100644 --- a/src/UI/OpeningHours/Visualisation/OpeningHoursRangeElement.svelte +++ b/src/UI/OpeningHours/Visualisation/OpeningHoursRangeElement.svelte @@ -14,11 +14,12 @@ let startOfDay: Date = new Date(range.startDate) startOfDay.setHours(0, 0, 0, 0) let startpoint = (range.startDate.getTime() - startOfDay.getTime()) / 1000 - earliestOpen - let width = (100 * (range.endDate.getTime() - range.startDate.getTime()) / 1000) / availableArea + let width = (100 * (range.endDate.getTime() - range.startDate.getTime())) / 1000 / availableArea let startPercentage = (100 * startpoint) / availableArea + {#if range.openEnd} -
+
{:else if !range.isOpen && !range.isSpecial}
{textToShow}
{:else} diff --git a/src/UI/Popup/TagRendering/Questionbox.svelte b/src/UI/Popup/TagRendering/Questionbox.svelte index 234ef93ed..5b4889ae5 100644 --- a/src/UI/Popup/TagRendering/Questionbox.svelte +++ b/src/UI/Popup/TagRendering/Questionbox.svelte @@ -46,7 +46,7 @@ } let baseQuestions = (layer?.tagRenderings ?? [])?.filter( - (tr) => tr.question !== undefined && allowed(tr.labels), + (tr) => tr.question !== undefined && allowed(tr.labels) ) /** @@ -128,16 +128,19 @@
Questionbox debug info: labels (whitelist) : {onlyForLabels?.join(",")}
-
- +
notForLabes (blacklist): {notForLabels?.join(",")} ;
- baseQuestions: {baseQuestions.length === 0 ? "NONE" : baseQuestions.map(q => q.id)?.join(",")} ; + baseQuestions: {baseQuestions.length === 0 + ? "NONE" + : baseQuestions.map((q) => q.id)?.join(",")} ;
- questionsMeetingConditions: {$questionsToAsk.length === 0 ? "NONE" : baseQuestions.map(q => q.id)?.join(",")} + questionsMeetingConditions: {$questionsToAsk.length === 0 + ? "NONE" + : baseQuestions.map((q) => q.id)?.join(",")} ;
diff --git a/src/UI/Popup/TagRendering/SpecialTranslation.svelte b/src/UI/Popup/TagRendering/SpecialTranslation.svelte index 8dd1c19a7..a9d5eff00 100644 --- a/src/UI/Popup/TagRendering/SpecialTranslation.svelte +++ b/src/UI/Popup/TagRendering/SpecialTranslation.svelte @@ -62,7 +62,9 @@ "due to", e ) - return new FixedUiElement("Could not construct visualization "+specpart.func.funcName+" due to "+e) + return new FixedUiElement( + "Could not construct visualization " + specpart.func.funcName + " due to " + e + ) } } } diff --git a/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte b/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte index 354898e8d..44e55b087 100644 --- a/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte +++ b/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte @@ -313,7 +313,7 @@ let featureSwitchIsTesting = state?.featureSwitchIsTesting ?? new ImmutableStore(false) let featureSwitchIsDebugging = state?.featureSwitches?.featureSwitchIsDebugging ?? new ImmutableStore(false) - let showTags : Store = state?.userRelatedState?.showTagsB ?? new ImmutableStore(false) + let showTags: Store = state?.userRelatedState?.showTagsB ?? new ImmutableStore(false) let question = config.question let hideMappingsUnlessSearchedFor = config.mappings.length > 8 && config.mappings.some((m) => m.priorityIf !== undefined) @@ -565,9 +565,7 @@

- +
diff --git a/src/UI/ThemeViewGUI.svelte b/src/UI/ThemeViewGUI.svelte index bfe4ff1f1..f83d79800 100644 --- a/src/UI/ThemeViewGUI.svelte +++ b/src/UI/ThemeViewGUI.svelte @@ -180,16 +180,18 @@ let apiState = state?.osmConnection?.apiIsOnline ?? new ImmutableStore("online") let mapIsDragged: UIEventSource = new UIEventSource(undefined) - function onMapDragged(){ + function onMapDragged() { mapIsDragged.ping() } -
-
onMapDragged()}> +
onMapDragged()} + >
@@ -321,7 +323,7 @@
{/if}
- +
@@ -354,7 +356,7 @@ on:keydown={forwardEventToMap} > - + {}) { - let isDown = false let threshold = 5 let start = null @@ -30,7 +29,6 @@ export function dragDetection(htmlElement: HTMLElement, callback: () => {}) { }) return { - destroy: () => { - }, + destroy: () => {}, } } diff --git a/src/assets/contributors.json b/src/assets/contributors.json index 26d867010..08f31fa90 100644 --- a/src/assets/contributors.json +++ b/src/assets/contributors.json @@ -1,7 +1,7 @@ { "contributors": [ { - "commits": 9857, + "commits": 9968, "contributor": "Pieter Vander Vennet" }, { diff --git a/src/assets/schemas/layerconfigmeta.json b/src/assets/schemas/layerconfigmeta.json index 78b1764cb..3fc92910a 100644 --- a/src/assets/schemas/layerconfigmeta.json +++ b/src/assets/schemas/layerconfigmeta.json @@ -11013,10 +11013,6 @@ "if": "value=hydrant", "then": "hydrant - Map layer to show fire hydrants." }, - { - "if": "value=ice_cream", - "then": "ice_cream - A place where ice cream is sold over the counter" - }, { "if": "value=id_presets", "then": "id_presets - Layer containing various presets and questions generated by ID. These are meant to be reused in other layers by importing the tagRenderings with `id_preset." @@ -11377,10 +11373,6 @@ "if": "value=dentist", "then": "dentist - This layer shows dentist offices" }, - { - "if": "value=doctors", - "then": "doctors - This layer shows doctor offices" - }, { "if": "value=ghostsign", "then": "ghostsign - Layer showing disused signs on buildings" @@ -11389,10 +11381,6 @@ "if": "value=hospital", "then": "hospital - A layer showing hospital grounds" }, - { - "if": "value=pharmacy", - "then": "pharmacy - A layer showing pharmacies, which (probably) dispense prescription drugs" - }, { "if": "value=physiotherapist", "then": "physiotherapist - This layer shows physiotherapists" @@ -11441,10 +11429,22 @@ "if": "value=cafe_pub", "then": "cafe_pub - A layer showing cafés and pubs where one can gather around a drink. The layer asks for some relevant questions" }, + { + "if": "value=doctors", + "then": "doctors - This layer shows doctor offices" + }, { "if": "value=food", "then": "food - A layer showing restaurants and fast-food amenities (with a special rendering for friteries)" }, + { + "if": "value=ice_cream", + "then": "ice_cream - A place where ice cream is sold over the counter" + }, + { + "if": "value=pharmacy", + "then": "pharmacy - A layer showing pharmacies, which (probably) dispense prescription drugs" + }, { "if": "value=shops", "then": "shops - A shop" diff --git a/src/assets/schemas/layoutconfigmeta.json b/src/assets/schemas/layoutconfigmeta.json index 6d5ca7c46..d58a82eac 100644 --- a/src/assets/schemas/layoutconfigmeta.json +++ b/src/assets/schemas/layoutconfigmeta.json @@ -892,10 +892,6 @@ "if": "value=hydrant", "then": "hydrant (builtin) - Map layer to show fire hydrants." }, - { - "if": "value=ice_cream", - "then": "ice_cream (builtin) - A place where ice cream is sold over the counter" - }, { "if": "value=id_presets", "then": "id_presets (builtin) - Layer containing various presets and questions generated by ID. These are meant to be reused in other layers by importing the tagRenderings with `id_preset." @@ -1256,10 +1252,6 @@ "if": "value=dentist", "then": "dentist (builtin) - This layer shows dentist offices" }, - { - "if": "value=doctors", - "then": "doctors (builtin) - This layer shows doctor offices" - }, { "if": "value=ghostsign", "then": "ghostsign (builtin) - Layer showing disused signs on buildings" @@ -1268,10 +1260,6 @@ "if": "value=hospital", "then": "hospital (builtin) - A layer showing hospital grounds" }, - { - "if": "value=pharmacy", - "then": "pharmacy (builtin) - A layer showing pharmacies, which (probably) dispense prescription drugs" - }, { "if": "value=physiotherapist", "then": "physiotherapist (builtin) - This layer shows physiotherapists" @@ -1320,10 +1308,22 @@ "if": "value=cafe_pub", "then": "cafe_pub (builtin) - A layer showing cafés and pubs where one can gather around a drink. The layer asks for some relevant questions" }, + { + "if": "value=doctors", + "then": "doctors (builtin) - This layer shows doctor offices" + }, { "if": "value=food", "then": "food (builtin) - A layer showing restaurants and fast-food amenities (with a special rendering for friteries)" }, + { + "if": "value=ice_cream", + "then": "ice_cream (builtin) - A place where ice cream is sold over the counter" + }, + { + "if": "value=pharmacy", + "then": "pharmacy (builtin) - A layer showing pharmacies, which (probably) dispense prescription drugs" + }, { "if": "value=shops", "then": "shops (builtin) - A shop" @@ -13681,10 +13681,6 @@ "if": "value=hydrant", "then": "hydrant - Map layer to show fire hydrants." }, - { - "if": "value=ice_cream", - "then": "ice_cream - A place where ice cream is sold over the counter" - }, { "if": "value=id_presets", "then": "id_presets - Layer containing various presets and questions generated by ID. These are meant to be reused in other layers by importing the tagRenderings with `id_preset." @@ -14045,10 +14041,6 @@ "if": "value=dentist", "then": "dentist - This layer shows dentist offices" }, - { - "if": "value=doctors", - "then": "doctors - This layer shows doctor offices" - }, { "if": "value=ghostsign", "then": "ghostsign - Layer showing disused signs on buildings" @@ -14057,10 +14049,6 @@ "if": "value=hospital", "then": "hospital - A layer showing hospital grounds" }, - { - "if": "value=pharmacy", - "then": "pharmacy - A layer showing pharmacies, which (probably) dispense prescription drugs" - }, { "if": "value=physiotherapist", "then": "physiotherapist - This layer shows physiotherapists" @@ -14109,10 +14097,22 @@ "if": "value=cafe_pub", "then": "cafe_pub - A layer showing cafés and pubs where one can gather around a drink. The layer asks for some relevant questions" }, + { + "if": "value=doctors", + "then": "doctors - This layer shows doctor offices" + }, { "if": "value=food", "then": "food - A layer showing restaurants and fast-food amenities (with a special rendering for friteries)" }, + { + "if": "value=ice_cream", + "then": "ice_cream - A place where ice cream is sold over the counter" + }, + { + "if": "value=pharmacy", + "then": "pharmacy - A layer showing pharmacies, which (probably) dispense prescription drugs" + }, { "if": "value=shops", "then": "shops - A shop" @@ -35506,10 +35506,6 @@ "if": "value=hydrant", "then": "hydrant - Map layer to show fire hydrants." }, - { - "if": "value=ice_cream", - "then": "ice_cream - A place where ice cream is sold over the counter" - }, { "if": "value=id_presets", "then": "id_presets - Layer containing various presets and questions generated by ID. These are meant to be reused in other layers by importing the tagRenderings with `id_preset." @@ -35870,10 +35866,6 @@ "if": "value=dentist", "then": "dentist - This layer shows dentist offices" }, - { - "if": "value=doctors", - "then": "doctors - This layer shows doctor offices" - }, { "if": "value=ghostsign", "then": "ghostsign - Layer showing disused signs on buildings" @@ -35882,10 +35874,6 @@ "if": "value=hospital", "then": "hospital - A layer showing hospital grounds" }, - { - "if": "value=pharmacy", - "then": "pharmacy - A layer showing pharmacies, which (probably) dispense prescription drugs" - }, { "if": "value=physiotherapist", "then": "physiotherapist - This layer shows physiotherapists" @@ -35934,10 +35922,22 @@ "if": "value=cafe_pub", "then": "cafe_pub - A layer showing cafés and pubs where one can gather around a drink. The layer asks for some relevant questions" }, + { + "if": "value=doctors", + "then": "doctors - This layer shows doctor offices" + }, { "if": "value=food", "then": "food - A layer showing restaurants and fast-food amenities (with a special rendering for friteries)" }, + { + "if": "value=ice_cream", + "then": "ice_cream - A place where ice cream is sold over the counter" + }, + { + "if": "value=pharmacy", + "then": "pharmacy - A layer showing pharmacies, which (probably) dispense prescription drugs" + }, { "if": "value=shops", "then": "shops - A shop" diff --git a/src/assets/translators.json b/src/assets/translators.json index 677c1ce21..d00c9e9c2 100644 --- a/src/assets/translators.json +++ b/src/assets/translators.json @@ -41,7 +41,7 @@ "contributor": "danieldegroot2" }, { - "commits": 67, + "commits": 68, "contributor": "Supaplex" }, { @@ -112,6 +112,10 @@ "commits": 16, "contributor": "macpac" }, + { + "commits": 15, + "contributor": "Lukáš Jelínek" + }, { "commits": 15, "contributor": "Ettore Atalan" @@ -132,10 +136,6 @@ "commits": 14, "contributor": "J. Lavoie" }, - { - "commits": 13, - "contributor": "Lukáš Jelínek" - }, { "commits": 13, "contributor": "Weblate Admin" @@ -604,6 +604,10 @@ "commits": 2, "contributor": "Leo Alcaraz" }, + { + "commits": 1, + "contributor": "ERyPTION" + }, { "commits": 1, "contributor": "POG" diff --git a/test/UI/OpeningHours.spec.ts b/test/UI/OpeningHours.spec.ts index 37ec72f0d..cb5d5bb80 100644 --- a/test/UI/OpeningHours.spec.ts +++ b/test/UI/OpeningHours.spec.ts @@ -6,51 +6,71 @@ import { expect } from "chai" describe("OH", () => { describe("getRanges", () => { - process.env.TZ = 'UTC' + process.env.TZ = "UTC" it("standard opening hours", () => { - const oh_obj = OH.createOhObject({ - "opening_hours": "10:00-18:00", - _lat: 0, _lon: 0, _country: "be", - }, "10:00-18:00", "be") - const ranges = OH.getRanges(oh_obj, new Date("2025-06-10T00:00:00Z"), new Date("2025-06-11T00:00:00Z")) + const oh_obj = OH.createOhObject( + { + opening_hours: "10:00-18:00", + _lat: 0, + _lon: 0, + _country: "be", + }, + "10:00-18:00", + "be" + ) + const ranges = OH.getRanges( + oh_obj, + new Date("2025-06-10T00:00:00Z"), + new Date("2025-06-11T00:00:00Z") + ) // Deep equal compares the dates correctly expect(ranges[1]).to.deep.equal([ { - "comment": undefined, - "endDate": new Date("2025-06-10T18:00:00.000Z"), - "isOpen": true, - "isSpecial": false, - "openEnd": false, - "startDate": new Date("2025-06-10T10:00:00.000Z"), + comment: undefined, + endDate: new Date("2025-06-10T18:00:00.000Z"), + isOpen: true, + isSpecial: false, + openEnd: false, + startDate: new Date("2025-06-10T10:00:00.000Z"), }, ]) }) it("open ended opening hours", () => { - process.env.TZ = 'UTC' - const oh_obj = OH.createOhObject({ - "opening_hours": "10:00-18:00+", - _lat: 0, _lon: 0, _country: "be", - }, "10:00+", "be") - const ranges = OH.getRanges(oh_obj, new Date("2025-06-09T00:00:00Z"), new Date("2025-06-16T00:00:00Z")) + process.env.TZ = "UTC" + const oh_obj = OH.createOhObject( + { + opening_hours: "10:00-18:00+", + _lat: 0, + _lon: 0, + _country: "be", + }, + "10:00+", + "be" + ) + const ranges = OH.getRanges( + oh_obj, + new Date("2025-06-09T00:00:00Z"), + new Date("2025-06-16T00:00:00Z") + ) // Deep equal compares the dates correctly expect(ranges[1]).to.deep.equal([ { - "comment": undefined, - "endDate": new Date("2025-06-10T13:00:00.000Z"), - "isOpen": false, - "isSpecial": true, - "openEnd": true, - "startDate": new Date("2025-06-10T10:00:00.000Z"), + comment: undefined, + endDate: new Date("2025-06-10T13:00:00.000Z"), + isOpen: false, + isSpecial: true, + openEnd: true, + startDate: new Date("2025-06-10T10:00:00.000Z"), }, ]) expect(ranges.at(-1)).to.deep.equal([ { - "comment": undefined, - "endDate": new Date("2025-06-15T13:00:00.000Z"), - "isOpen": false, - "isSpecial": true, - "openEnd": true, - "startDate": new Date("2025-06-15T10:00:00.000Z"), + comment: undefined, + endDate: new Date("2025-06-15T13:00:00.000Z"), + isOpen: false, + isSpecial: true, + openEnd: true, + startDate: new Date("2025-06-15T10:00:00.000Z"), }, ]) })