diff --git a/Docs/Layers/bike_cleaning.md b/Docs/Layers/bike_cleaning.md
index ef9df21e1a..8f06249766 100644
--- a/Docs/Layers/bike_cleaning.md
+++ b/Docs/Layers/bike_cleaning.md
@@ -92,10 +92,8 @@ This is rendered with Using the cleaning service costs {service:bicycle:cleanin
- - The cleaning service is free to use corresponds with `service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge=`
- - Free to use corresponds with `service:bicycle:cleaning:fee=no`
- - This option cannot be chosen as answer
- - The cleaning service has a fee, but the amount is not known corresponds with `service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge=`
+ - The cleaning service is free to use corresponds with `service:bicycle:cleaning:fee=no`
+ - Free to use corresponds with `service:bicycle:cleaning:fee=yes`
- This option cannot be chosen as answer
@@ -115,10 +113,8 @@ This is rendered with Using the cleaning service costs {charge}
- - Free to use cleaning service corresponds with `fee=no&charge=`
- - Free to use corresponds with `fee=no`
- - This option cannot be chosen as answer
- - The cleaning service has a fee corresponds with `fee=yes`
+ - Free to use cleaning service corresponds with `fee=no`
+ - Free to use corresponds with `fee=yes`
Only visible if `amenity=bike_wash|amenity=bicycle_wash` is shown
diff --git a/Docs/Layers/bike_shop.md b/Docs/Layers/bike_shop.md
index fc49e8606b..1a2c3efef5 100644
--- a/Docs/Layers/bike_shop.md
+++ b/Docs/Layers/bike_shop.md
@@ -505,10 +505,8 @@ This is rendered with Using the cleaning service costs {service:bicycle:cleanin
- - The cleaning service is free to use corresponds with `service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge=`
- - Free to use corresponds with `service:bicycle:cleaning:fee=no`
- - This option cannot be chosen as answer
- - The cleaning service has a fee, but the amount is not known corresponds with `service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge=`
+ - The cleaning service is free to use corresponds with `service:bicycle:cleaning:fee=no`
+ - Free to use corresponds with `service:bicycle:cleaning:fee=yes`
- This option cannot be chosen as answer
diff --git a/Docs/Layers/maproulette.md b/Docs/Layers/maproulette.md
index 4a20e0ca80..2f10db60b6 100644
--- a/Docs/Layers/maproulette.md
+++ b/Docs/Layers/maproulette.md
@@ -29,10 +29,10 @@ Elements must have the all of following tags to be shown on this layer:
- - id~^..*$
+ - title~^..*$
-[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22id%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
+[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22title%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
diff --git a/Docs/Layers/maproulette_challenge.md b/Docs/Layers/maproulette_challenge.md
index 9f95374490..f7a7157a41 100644
--- a/Docs/Layers/maproulette_challenge.md
+++ b/Docs/Layers/maproulette_challenge.md
@@ -42,10 +42,10 @@ Elements must have the all of following tags to be shown on this layer:
- - id~^..*$
+ - mr_taskId~^..*$
-[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22id%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
+[Execute on overpass](http://overpass-turbo.eu/?Q=%5Bout%3Ajson%5D%5Btimeout%3A90%5D%3B(%20%20%20%20nwr%5B%22mr_taskId%22%5D(%7B%7Bbbox%7D%7D)%3B%0A)%3Bout%20body%3B%3E%3Bout%20skel%20qt%3B)
diff --git a/Docs/Layers/tree_node.md b/Docs/Layers/tree_node.md
index 6290599681..f4df785e36 100644
--- a/Docs/Layers/tree_node.md
+++ b/Docs/Layers/tree_node.md
@@ -61,10 +61,10 @@ this quick overview is incomplete
attribute | type | values which are supported by this layer
----------- | ------ | ------------------------------------------
[](https://taginfo.openstreetmap.org/keys/height#values) [height](https://wiki.openstreetmap.org/wiki/Key:height) | Multiple choice |
-[
](https://taginfo.openstreetmap.org/keys/leaf_type#values) [leaf_type](https://wiki.openstreetmap.org/wiki/Key:leaf_type) | Multiple choice | [broadleaved](https://wiki.openstreetmap.org/wiki/Tag:leaf_type%3Dbroadleaved) [needleleaved](https://wiki.openstreetmap.org/wiki/Tag:leaf_type%3Dneedleleaved)
-[
](https://taginfo.openstreetmap.org/keys/denotation#values) [denotation](https://wiki.openstreetmap.org/wiki/Key:denotation) | Multiple choice | [landmark](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dlandmark) [natural_monument](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dnatural_monument) [agricultural](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dagricultural) [park](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dpark) [garden](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dgarden) [avenue](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Davenue) [urban](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Durban) [none](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dnone)
-[
](https://taginfo.openstreetmap.org/keys/leaf_cycle#values) [leaf_cycle](https://wiki.openstreetmap.org/wiki/Key:leaf_cycle) | Multiple choice | [deciduous](https://wiki.openstreetmap.org/wiki/Tag:leaf_cycle%3Ddeciduous) [evergreen](https://wiki.openstreetmap.org/wiki/Tag:leaf_cycle%3Devergreen)
[
](https://taginfo.openstreetmap.org/keys/species:wikidata#values) [species:wikidata](https://wiki.openstreetmap.org/wiki/Key:species:wikidata) | [wikidata](../SpecialInputElements.md#wikidata) |
+[
](https://taginfo.openstreetmap.org/keys/denotation#values) [denotation](https://wiki.openstreetmap.org/wiki/Key:denotation) | Multiple choice | [landmark](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dlandmark) [natural_monument](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dnatural_monument) [agricultural](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dagricultural) [park](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dpark) [garden](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dgarden) [avenue](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Davenue) [urban](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Durban) [none](https://wiki.openstreetmap.org/wiki/Tag:denotation%3Dnone)
+[
](https://taginfo.openstreetmap.org/keys/leaf_type#values) [leaf_type](https://wiki.openstreetmap.org/wiki/Key:leaf_type) | Multiple choice | [broadleaved](https://wiki.openstreetmap.org/wiki/Tag:leaf_type%3Dbroadleaved) [needleleaved](https://wiki.openstreetmap.org/wiki/Tag:leaf_type%3Dneedleleaved)
+[
](https://taginfo.openstreetmap.org/keys/leaf_cycle#values) [leaf_cycle](https://wiki.openstreetmap.org/wiki/Key:leaf_cycle) | Multiple choice | [deciduous](https://wiki.openstreetmap.org/wiki/Tag:leaf_cycle%3Ddeciduous) [evergreen](https://wiki.openstreetmap.org/wiki/Tag:leaf_cycle%3Devergreen)
[
](https://taginfo.openstreetmap.org/keys/name#values) [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:name%3D)
[
](https://taginfo.openstreetmap.org/keys/heritage#values) [heritage](https://wiki.openstreetmap.org/wiki/Key:heritage) | Multiple choice | [4](https://wiki.openstreetmap.org/wiki/Tag:heritage%3D4) [4](https://wiki.openstreetmap.org/wiki/Tag:heritage%3D4) [yes](https://wiki.openstreetmap.org/wiki/Tag:heritage%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:heritage%3Dno)
[
](https://taginfo.openstreetmap.org/keys/ref:OnroerendErfgoed#values) [ref:OnroerendErfgoed](https://wiki.openstreetmap.org/wiki/Key:ref:OnroerendErfgoed) | [nat](../SpecialInputElements.md#nat) |
@@ -102,62 +102,16 @@ Only visible if `height~^..*$` is shown
-### tree-leaf_type
+### plantnet
-The question is Is this a broadleaved or needleleaved tree?
+This tagrendering has no question and is thus read-only
- - Broadleaved corresponds with `leaf_type=broadleaved`
- - Needleleaved corresponds with `leaf_type=needleleaved`
- - Permanently leafless corresponds with `leaf_type=leafless`
- - This option cannot be chosen as answer
-
-
-
-
-### tree-denotation
-
-
-
-The question is How significant is this tree? Choose the first answer that applies.
-
-
-
-
-
- - The tree is remarkable due to its size or prominent location. It is useful for navigation. corresponds with `denotation=landmark`
- - The tree is a natural monument, e.g. because it is especially old, or of a valuable species. corresponds with `denotation=natural_monument`
- - The tree is used for agricultural purposes, e.g. in an orchard. corresponds with `denotation=agricultural`
- - The tree is in a park or similar (cemetery, school grounds, …). corresponds with `denotation=park`
- - The tree is in a residential garden. corresponds with `denotation=garden`
- - This is a tree along an avenue. corresponds with `denotation=avenue`
- - The tree is in an urban area. corresponds with `denotation=urban`
- - The tree is outside of an urban area. corresponds with `denotation=none`
-
-
-
-
-### tree-decidouous
-
-
-
-The question is Is this tree evergreen or deciduous?
-
-
-
-
-
- - Deciduous: the tree loses its leaves for some time of the year. corresponds with `leaf_cycle=deciduous`
- - Evergreen. corresponds with `leaf_cycle=evergreen`
-
-
-
-
### tree-species-wikidata
@@ -184,6 +138,62 @@ Only visible if `wikipedia~^..*$|wikidata~^..*$` is shown
+### tree-denotation
+
+
+
+The question is How significant is this tree? Choose the first answer that applies.
+
+
+
+
+
+ - The tree is remarkable due to its size or prominent location. It is useful for navigation. corresponds with `denotation=landmark`
+ - The tree is a natural monument, e.g. because it is especially old, or of a valuable species. corresponds with `denotation=natural_monument`
+ - The tree is used for agricultural purposes, e.g. in an orchard. corresponds with `denotation=agricultural`
+ - The tree is in a park or similar (cemetery, school grounds, …). corresponds with `denotation=park`
+ - The tree is in a residential garden. corresponds with `denotation=garden`
+ - This is a tree along an avenue. corresponds with `denotation=avenue`
+ - The tree is in an urban area. corresponds with `denotation=urban`
+ - The tree is outside of an urban area. corresponds with `denotation=none`
+
+
+
+
+### tree-leaf_type
+
+
+
+The question is Is this a broadleaved or needleleaved tree?
+
+
+
+
+
+ - Broadleaved corresponds with `leaf_type=broadleaved`
+ - Needleleaved corresponds with `leaf_type=needleleaved`
+ - Permanently leafless corresponds with `leaf_type=leafless`
+ - This option cannot be chosen as answer
+
+
+
+
+### tree-decidouous
+
+
+
+The question is Is this tree evergreen or deciduous?
+
+
+
+
+
+ - Deciduous: the tree loses its leaves for some time of the year. corresponds with `leaf_cycle=deciduous`
+ - Evergreen. corresponds with `leaf_cycle=evergreen`
+
+
+
+
### tree_node-name
diff --git a/Docs/SpecialRenderings.md b/Docs/SpecialRenderings.md
index 8570e769a6..87ca2d6f88 100644
--- a/Docs/SpecialRenderings.md
+++ b/Docs/SpecialRenderings.md
@@ -112,6 +112,8 @@ Instead of using `{"render": {"en": "{some_special_visualisation(some_arg, some
* [Example usage of multi](#example-usage-of-multi)
+ [steal](#steal)
* [Example usage of steal](#example-usage-of-steal)
+ + [plantnet_detection](#plantnet_detection)
+ * [Example usage of plantnet_detection](#example-usage-of-plantnet_detection)
+ [auto_apply](#auto_apply)
* [Example usage of auto_apply](#example-usage-of-auto_apply)
@@ -806,6 +808,21 @@ tagRenderingId | _undefined_ | The layer-id and tagRenderingId to render. Can be
+### plantnet_detection
+
+ Sends the images linked to the current object to plantnet.org and asks it what plant species is shown on it. The user can then select the correct species; the corresponding wikidata-identifier will then be added to the object (together with `source:species:wikidata=plantnet.org AI`).
+
+name | default | description
+------ | --------- | -------------
+image_key | image,mapillary,image,wikidata,wikimedia_commons,image,image | The keys given to the images, e.g. if image is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated
+
+
+#### Example usage of plantnet_detection
+
+ `{plantnet_detection(image,mapillary,image,wikidata,wikimedia_commons,image,image)}`
+
+
+
### auto_apply
A button to run many actions for many features at once. To effectively use this button, you'll need some ingredients:
diff --git a/Docs/TagInfo/mapcomplete_cyclofix.json b/Docs/TagInfo/mapcomplete_cyclofix.json
index e2d945d370..e2da62b0b9 100644
--- a/Docs/TagInfo/mapcomplete_cyclofix.json
+++ b/Docs/TagInfo/mapcomplete_cyclofix.json
@@ -590,18 +590,18 @@
},
{
"key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
- "value": "no&service:bicycle:cleaning:charge="
- },
- {
- "key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
+ "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
"value": "no"
},
{
"key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service has a fee, but the amount is not known' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
- "value": "yes&service:bicycle:cleaning:charge="
+ "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
+ "value": "yes"
+ },
+ {
+ "key": "service:bicycle:cleaning:charge",
+ "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists') Picking this answer will delete the key service:bicycle:cleaning:charge.",
+ "value": ""
},
{
"key": "description",
@@ -1209,18 +1209,18 @@
},
{
"key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
- "value": "no&service:bicycle:cleaning:charge="
- },
- {
- "key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
+ "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
"value": "no"
},
{
"key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service has a fee, but the amount is not known' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
- "value": "yes&service:bicycle:cleaning:charge="
+ "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
+ "value": "yes"
+ },
+ {
+ "key": "service:bicycle:cleaning:charge",
+ "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists') Picking this answer will delete the key service:bicycle:cleaning:charge.",
+ "value": ""
},
{
"key": "charge",
@@ -1228,17 +1228,12 @@
},
{
"key": "fee",
- "description": "Layer 'Bike cleaning service' shows fee=no&charge= with a fixed text, namely 'Free to use cleaning service' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
- "value": "no&charge="
- },
- {
- "key": "fee",
- "description": "Layer 'Bike cleaning service' shows fee=no with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
+ "description": "Layer 'Bike cleaning service' shows fee=no with a fixed text, namely 'Free to use cleaning service' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
"value": "no"
},
{
"key": "fee",
- "description": "Layer 'Bike cleaning service' shows fee=yes with a fixed text, namely 'The cleaning service has a fee' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
+ "description": "Layer 'Bike cleaning service' shows fee=yes with a fixed text, namely 'Free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Cyclofix - an open map for cyclists')",
"value": "yes"
},
{
diff --git a/Docs/TagInfo/mapcomplete_personal.json b/Docs/TagInfo/mapcomplete_personal.json
index f72f2767c0..0063da8f14 100644
--- a/Docs/TagInfo/mapcomplete_personal.json
+++ b/Docs/TagInfo/mapcomplete_personal.json
@@ -994,18 +994,18 @@
},
{
"key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
- "value": "no&service:bicycle:cleaning:charge="
- },
- {
- "key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Personal theme')",
+ "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
"value": "no"
},
{
"key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service has a fee, but the amount is not known' (in the MapComplete.osm.be theme 'Personal theme')",
- "value": "yes&service:bicycle:cleaning:charge="
+ "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Personal theme')",
+ "value": "yes"
+ },
+ {
+ "key": "service:bicycle:cleaning:charge",
+ "description": "Layer 'Bike cleaning service' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Personal theme') Picking this answer will delete the key service:bicycle:cleaning:charge.",
+ "value": ""
},
{
"key": "charge",
@@ -1013,17 +1013,12 @@
},
{
"key": "fee",
- "description": "Layer 'Bike cleaning service' shows fee=no&charge= with a fixed text, namely 'Free to use cleaning service' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
- "value": "no&charge="
- },
- {
- "key": "fee",
- "description": "Layer 'Bike cleaning service' shows fee=no with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Personal theme')",
+ "description": "Layer 'Bike cleaning service' shows fee=no with a fixed text, namely 'Free to use cleaning service' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
"value": "no"
},
{
"key": "fee",
- "description": "Layer 'Bike cleaning service' shows fee=yes with a fixed text, namely 'The cleaning service has a fee' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
+ "description": "Layer 'Bike cleaning service' shows fee=yes with a fixed text, namely 'Free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
"value": "yes"
},
{
@@ -1633,18 +1628,18 @@
},
{
"key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
- "value": "no&service:bicycle:cleaning:charge="
- },
- {
- "key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Personal theme')",
+ "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=no with a fixed text, namely 'The cleaning service is free to use' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
"value": "no"
},
{
"key": "service:bicycle:cleaning:fee",
- "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes&service:bicycle:cleaning:charge= with a fixed text, namely 'The cleaning service has a fee, but the amount is not known' (in the MapComplete.osm.be theme 'Personal theme')",
- "value": "yes&service:bicycle:cleaning:charge="
+ "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Personal theme')",
+ "value": "yes"
+ },
+ {
+ "key": "service:bicycle:cleaning:charge",
+ "description": "Layer 'Bike repair/shop' shows service:bicycle:cleaning:fee=yes with a fixed text, namely 'Free to use' (in the MapComplete.osm.be theme 'Personal theme') Picking this answer will delete the key service:bicycle:cleaning:charge.",
+ "value": ""
},
{
"key": "description",
@@ -12583,19 +12578,8 @@
"description": "Layer 'Tree' shows height~^^[0-9.]+$$ with a fixed text, namely 'Height: {height} m' (in the MapComplete.osm.be theme 'Personal theme')"
},
{
- "key": "leaf_type",
- "description": "Layer 'Tree' shows leaf_type=broadleaved with a fixed text, namely 'Broadleaved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
- "value": "broadleaved"
- },
- {
- "key": "leaf_type",
- "description": "Layer 'Tree' shows leaf_type=needleleaved with a fixed text, namely 'Needleleaved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
- "value": "needleleaved"
- },
- {
- "key": "leaf_type",
- "description": "Layer 'Tree' shows leaf_type=leafless with a fixed text, namely 'Permanently leafless' (in the MapComplete.osm.be theme 'Personal theme')",
- "value": "leafless"
+ "key": "species:wikidata",
+ "description": "Layer 'Tree' shows and asks freeform values for key 'species:wikidata' (in the MapComplete.osm.be theme 'Personal theme')"
},
{
"key": "denotation",
@@ -12637,6 +12621,21 @@
"description": "Layer 'Tree' shows denotation=none with a fixed text, namely 'The tree is outside of an urban area.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
"value": "none"
},
+ {
+ "key": "leaf_type",
+ "description": "Layer 'Tree' shows leaf_type=broadleaved with a fixed text, namely 'Broadleaved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
+ "value": "broadleaved"
+ },
+ {
+ "key": "leaf_type",
+ "description": "Layer 'Tree' shows leaf_type=needleleaved with a fixed text, namely 'Needleleaved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
+ "value": "needleleaved"
+ },
+ {
+ "key": "leaf_type",
+ "description": "Layer 'Tree' shows leaf_type=leafless with a fixed text, namely 'Permanently leafless' (in the MapComplete.osm.be theme 'Personal theme')",
+ "value": "leafless"
+ },
{
"key": "leaf_cycle",
"description": "Layer 'Tree' shows leaf_cycle=deciduous with a fixed text, namely 'Deciduous: the tree loses its leaves for some time of the year.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
@@ -12647,10 +12646,6 @@
"description": "Layer 'Tree' shows leaf_cycle=evergreen with a fixed text, namely 'Evergreen.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
"value": "evergreen"
},
- {
- "key": "species:wikidata",
- "description": "Layer 'Tree' shows and asks freeform values for key 'species:wikidata' (in the MapComplete.osm.be theme 'Personal theme')"
- },
{
"key": "name",
"description": "Layer 'Tree' shows and asks freeform values for key 'name' (in the MapComplete.osm.be theme 'Personal theme')"
diff --git a/Docs/TagInfo/mapcomplete_trees.json b/Docs/TagInfo/mapcomplete_trees.json
index a634ffa131..c81845b70b 100644
--- a/Docs/TagInfo/mapcomplete_trees.json
+++ b/Docs/TagInfo/mapcomplete_trees.json
@@ -36,19 +36,8 @@
"description": "Layer 'Tree' shows height~^^[0-9.]+$$ with a fixed text, namely 'Height: {height} m' (in the MapComplete.osm.be theme 'Trees')"
},
{
- "key": "leaf_type",
- "description": "Layer 'Tree' shows leaf_type=broadleaved with a fixed text, namely 'Broadleaved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Trees')",
- "value": "broadleaved"
- },
- {
- "key": "leaf_type",
- "description": "Layer 'Tree' shows leaf_type=needleleaved with a fixed text, namely 'Needleleaved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Trees')",
- "value": "needleleaved"
- },
- {
- "key": "leaf_type",
- "description": "Layer 'Tree' shows leaf_type=leafless with a fixed text, namely 'Permanently leafless' (in the MapComplete.osm.be theme 'Trees')",
- "value": "leafless"
+ "key": "species:wikidata",
+ "description": "Layer 'Tree' shows and asks freeform values for key 'species:wikidata' (in the MapComplete.osm.be theme 'Trees')"
},
{
"key": "denotation",
@@ -90,6 +79,21 @@
"description": "Layer 'Tree' shows denotation=none with a fixed text, namely 'The tree is outside of an urban area.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Trees')",
"value": "none"
},
+ {
+ "key": "leaf_type",
+ "description": "Layer 'Tree' shows leaf_type=broadleaved with a fixed text, namely 'Broadleaved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Trees')",
+ "value": "broadleaved"
+ },
+ {
+ "key": "leaf_type",
+ "description": "Layer 'Tree' shows leaf_type=needleleaved with a fixed text, namely 'Needleleaved' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Trees')",
+ "value": "needleleaved"
+ },
+ {
+ "key": "leaf_type",
+ "description": "Layer 'Tree' shows leaf_type=leafless with a fixed text, namely 'Permanently leafless' (in the MapComplete.osm.be theme 'Trees')",
+ "value": "leafless"
+ },
{
"key": "leaf_cycle",
"description": "Layer 'Tree' shows leaf_cycle=deciduous with a fixed text, namely 'Deciduous: the tree loses its leaves for some time of the year.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Trees')",
@@ -100,10 +104,6 @@
"description": "Layer 'Tree' shows leaf_cycle=evergreen with a fixed text, namely 'Evergreen.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Trees')",
"value": "evergreen"
},
- {
- "key": "species:wikidata",
- "description": "Layer 'Tree' shows and asks freeform values for key 'species:wikidata' (in the MapComplete.osm.be theme 'Trees')"
- },
{
"key": "name",
"description": "Layer 'Tree' shows and asks freeform values for key 'name' (in the MapComplete.osm.be theme 'Trees')"
diff --git a/Logic/Actors/OverpassFeatureSource.ts b/Logic/Actors/OverpassFeatureSource.ts
index f523ce2df2..e292f5b4ea 100644
--- a/Logic/Actors/OverpassFeatureSource.ts
+++ b/Logic/Actors/OverpassFeatureSource.ts
@@ -208,7 +208,6 @@ export default class OverpassFeatureSource implements FeatureSource {
return undefined
}
this.runningQuery.setData(true)
-
;[data, date] = await overpass.queryGeoJson(bounds)
console.log("Querying overpass is done", data)
} catch (e) {
diff --git a/assets/contributors.json b/assets/contributors.json
index b614304008..2b3776ac59 100644
--- a/assets/contributors.json
+++ b/assets/contributors.json
@@ -1,11 +1,11 @@
{
"contributors": [
{
- "commits": 4396,
+ "commits": 4454,
"contributor": "Pieter Vander Vennet"
},
{
- "commits": 183,
+ "commits": 184,
"contributor": "Robin van der Linde"
},
{
@@ -76,6 +76,10 @@
"commits": 15,
"contributor": "ToastHawaii"
},
+ {
+ "commits": 14,
+ "contributor": "Brice Maron"
+ },
{
"commits": 13,
"contributor": "Nicole"
@@ -196,6 +200,10 @@
"commits": 2,
"contributor": "Stanislas Gueniffey"
},
+ {
+ "commits": 1,
+ "contributor": "eMerzh"
+ },
{
"commits": 1,
"contributor": "Reiner Herrmann"
diff --git a/assets/layers/ambulancestation/ambulancestation.json b/assets/layers/ambulancestation/ambulancestation.json
index a249629c18..0658213941 100644
--- a/assets/layers/ambulancestation/ambulancestation.json
+++ b/assets/layers/ambulancestation/ambulancestation.json
@@ -45,7 +45,8 @@
"hu": "A mentőállomás olyan terület, ahol mentőautókat, orvosi felszereléseket, egyéni védőfelszereléseket és egyéb orvosi felszereléseket tárolnak.",
"ru": "Станция скорой помощи это полигон для хранения транспорта, медицинского оборудования, средств индивидуальной защиты и других медицинских принадлежностей.",
"nl": "Een ambulancestation is een plaats waar ambulances, medisch materiaal, persoonlijk beschermingsmateriaal en aanverwanten worden bewaard.",
- "es": "Una estación de ambulancias es una zona para almacenar vehículos de ambulancia, equipamiento médico, equipos de protección personal y otros suministros médicos."
+ "es": "Una estación de ambulancias es una zona para almacenar vehículos de ambulancia, equipamiento médico, equipos de protección personal y otros suministros médicos.",
+ "da": "En ambulancestation er et område til opbevaring af ambulancekøretøjer, medicinsk udstyr, personlige værnemidler og andre medicinske forsyninger."
},
"tagRenderings": [
{
@@ -95,7 +96,7 @@
"hu": "Mi a neve annak az utcának, amelyben az állomás található?",
"nl": "In welke straat ligt dit station?",
"es": "¿Cual es el nombre de la calle en la que se encuentra la estación?",
- "da": " Hvad er vejnavnet, hvor stationen ligger?"
+ "da": "Hvad er vejnavnet, hvor stationen ligger?"
},
"render": {
"en": "This station is along a highway called {addr:street}.",
@@ -121,7 +122,8 @@
"de": "Wo befindet sich die Rettungswache? (z. B. Name von Stadtviertel, Dorf oder Stadt)",
"hu": "Hol található az állomás? (Pl. a falu, kisváros vagy városrész neve.)",
"nl": "Waar ligt het station? (v.b. naam van de buurt, dorp of stad)",
- "es": "¿Dónde se encuentra la estación? (ej. nombre del barrio, pueblo o ciudad)"
+ "es": "¿Dónde se encuentra la estación? (ej. nombre del barrio, pueblo o ciudad)",
+ "da": "Hvor ligger stationen? (f.eks. navn på kvarter, landsby eller by)"
},
"freeform": {
"key": "addr:place"
@@ -149,7 +151,8 @@
"hu": "Milyen szervezet működteti ezt az állomást?",
"ru": "Какая организация управляет этой станцией?",
"nl": "Welke organisatie beheert dit station?",
- "es": "¿Qué agencia opera esta estación?"
+ "es": "¿Qué agencia opera esta estación?",
+ "da": "Hvilket agentur driver denne station?"
},
"render": {
"en": "This station is operated by {operator}.",
@@ -178,7 +181,8 @@
"de": "Wie kann der Betreiber der Rettungswache eingestuft werden?",
"hu": "Hogyan sorolható be az állomás üzemeltetője?",
"nl": "Wat voor een organisatie is de beheerder van dit station?",
- "es": "¿Como está clasificada la operadora de la estación?"
+ "es": "¿Como está clasificada la operadora de la estación?",
+ "da": "Hvordan klassificeres stationsoperatøren?"
},
"render": {
"en": "The operator is a(n) {operator:type} entity.",
@@ -188,7 +192,8 @@
"de": "Der Betreiber ist eine {operator:type}.",
"hu": "Az üzemeltető egy {operator:type} jellegű szervezet.",
"nl": "De beheerder is van het type {operator:type}.",
- "es": "La operador a no es una entidad de tipo {operator:type}."
+ "es": "La operador a no es una entidad de tipo {operator:type}.",
+ "da": "Operatøren er en (n) {operator:type} enhed."
},
"freeform": {
"key": "operator:type"
@@ -228,7 +233,8 @@
"hu": "Mentőállomást egy közösségi vagy nem hivatalos szervezet működteti.",
"ru": "Станция управляется волонтёрами или частной организацией.",
"nl": "Dit station wordt beheerd door een informele of community organisatie.",
- "es": "La estación la opera una organización basada en la comunidad o informal."
+ "es": "La estación la opera una organización basada en la comunidad o informal.",
+ "da": "Stationen drives af en samfundsbaseret eller uformel organisation."
}
},
{
@@ -263,7 +269,8 @@
"de": "Die Rettungswache wird von einer privaten Organisation betrieben.",
"hu": "Az állomást egy magánkézben lévő szervezet működteti.",
"nl": "Dit station wordt beheerd door een privé-organisatie.",
- "es": "La estación se opera privadamente."
+ "es": "La estación se opera privadamente.",
+ "da": "Stationen er privatdrevet."
}
}
]
diff --git a/assets/layers/artwork/artwork.json b/assets/layers/artwork/artwork.json
index b4ae9380b4..5b12c0cf8c 100644
--- a/assets/layers/artwork/artwork.json
+++ b/assets/layers/artwork/artwork.json
@@ -84,7 +84,7 @@
"id": "Beragam karya seni",
"pt": "Diversas obras de arte",
"hu": "Szobrok, mellszobrok, graffitik és egyéb műalkotások nyílt világtérképe",
- "da": "Forskellige kunstværker",
+ "da": "Et åbent kort over statuer, buster, graffitis og andre kunstværker over hele verden",
"ca": "Un mapa obert d'estàtues, busts, grafitis i altres obres d'art del tot el món"
},
"minzoom": 12,
@@ -133,7 +133,8 @@
"id": "Ini adalah {artwork_type}",
"pt": "Isto é um(a) {artwork_type}",
"hu": "Ez egy {artwork_type}",
- "pl": "Jest to {artwork_type}"
+ "pl": "Jest to {artwork_type}",
+ "da": "Dette er en {artwork_type}"
},
"question": {
"en": "What is the type of this artwork?",
@@ -383,7 +384,8 @@
"pt": "Azulejo (azulejo decorativo espanhol e português)",
"hu": "Azulejo (portugál vagy spanyol dekoratív csempe)",
"pl": "Azulejo (hiszpańskie płytka dekoracyjna)",
- "es": "Azulejo (Baldosas decorativas Españolas y Portuguesas)"
+ "es": "Azulejo (Baldosas decorativas Españolas y Portuguesas)",
+ "da": "Azulejo (spansk dekorativt flisebeklædning)"
}
},
{
@@ -402,7 +404,8 @@
"hu": "Csempe",
"pl": "Płyta ceramiczna (fliza)",
"ca": "Enrajolat",
- "es": "Cerámica"
+ "es": "Cerámica",
+ "da": "flisebeklædning"
}
}
],
@@ -518,7 +521,8 @@
"id": "Sesuai dengan {wikidata}",
"pt": "Corresponde a {wikidata}",
"hu": "Ez a megfelelő: {wikidata}",
- "es": "Se corresponde con {wikidata}"
+ "es": "Se corresponde con {wikidata}",
+ "da": "Svarer til {wikidata}"
},
"freeform": {
"key": "wikidata",
diff --git a/assets/layers/barrier/barrier.json b/assets/layers/barrier/barrier.json
index 2620226c84..3034f5fc75 100644
--- a/assets/layers/barrier/barrier.json
+++ b/assets/layers/barrier/barrier.json
@@ -36,7 +36,8 @@
"ru": "Препятствие",
"fr": "Barrière",
"es": "Barrera",
- "ca": "Barrera"
+ "ca": "Barrera",
+ "da": "Barriere"
},
"mappings": [
{
@@ -60,7 +61,8 @@
"de": "Barriere für Radfahrer",
"fr": "Barrière cyclable",
"ca": "Barrera ciclista",
- "es": "Barrera Ciclista"
+ "es": "Barrera Ciclista",
+ "da": "Cykelbarriere"
}
}
]
@@ -137,7 +139,8 @@
"de": "Kann ein Radfahrer das Hindernis passieren?",
"hu": "Át lehet-e menni rajta kerékpárral?",
"fr": "Est-ce qu'un vélo peut franchir cette barrière ?",
- "es": "¿Puede pasar una bicicleta esta barrera?"
+ "es": "¿Puede pasar una bicicleta esta barrera?",
+ "da": "Kan en cykel køre forbi denne barriere?"
},
"mappings": [
{
@@ -190,7 +193,8 @@
"hu": "Ez egy kerékpárakadály, amely lelassítja a kerékpárosokat",
"fr": "C'est une barrière visant à ralentir les vélos",
"de": "Dies ist eine Fahrradbarriere, die Radfahrer abbremst",
- "es": "Esta es una barrera ciclista que ralentiza a los ciclistas"
+ "es": "Esta es una barrera ciclista que ralentiza a los ciclistas",
+ "da": "Dette er en cykelbarriere, der bremser cyklisterne"
}
}
]
@@ -280,7 +284,8 @@
"de": "Um welche Art Fahrradhindernis handelt es sich?",
"hu": "Milyen fajta kerékpárakadály ez?",
"fr": "Quel est ce type de barrière cyclable ?",
- "es": "¿Qué tipo de barrera ciclista es esta?"
+ "es": "¿Qué tipo de barrera ciclista es esta?",
+ "da": "Hvad er det for en cykelbarriere?"
},
"condition": "barrier=cycle_barrier",
"mappings": [
@@ -292,7 +297,8 @@
"de": "Einfach, nur zwei Barrieren mit einem Zwischenraum",
"hu": "Egyszeres: csak két korlát, közöttük térköz",
"fr": "Simple, deux barrières côte à côte",
- "es": "Simple, simplemente dos barreras con un espacio en el medio"
+ "es": "Simple, simplemente dos barreras con un espacio en el medio",
+ "da": "Enkelt, kun to barrierer med et mellemrum"
},
"icon": {
"path": "./assets/themes/cycle_infra/Cycle_barrier_single.png",
@@ -307,7 +313,8 @@
"de": "Doppelt, zwei Barrieren hintereinander",
"hu": "Kétszeres: két, egymáshoz képest eltolt korlát egymás után",
"fr": "Double, deux barrières successives",
- "es": "Doble, dos barreras una detrás de otra"
+ "es": "Doble, dos barreras una detrás de otra",
+ "da": "Dobbelt, to barrierer bag hinanden"
},
"icon": {
"path": "./assets/themes/cycle_infra/Cycle_barrier_double.svg",
@@ -322,7 +329,8 @@
"de": "Dreifach, drei Barrieren hintereinander",
"hu": "Háromszoros: három, egymáshoz képest eltolt korlát egymás után",
"fr": "Triple, trois barrières successives",
- "es": "Triple, tres barreras una detrás de otra"
+ "es": "Triple, tres barreras una detrás de otra",
+ "da": "Tredobbelt, tre barrierer bag hinanden"
},
"icon": {
"path": "./assets/themes/cycle_infra/Cycle_barrier_triple.png",
@@ -337,7 +345,8 @@
"de": "Eine Durchfahrtsbeschränkung, Durchfahrtsbreite ist oben kleiner als unten",
"hu": "Szűkítőkapu: a rés felül keskenyebb, mint alul",
"fr": "Poire, l’espace en hauteur est plus faible qu’au sol",
- "es": "Barrera de seguridad, el espacio es menor en la parte superior que en la inferior"
+ "es": "Barrera de seguridad, el espacio es menor en la parte superior que en la inferior",
+ "da": "Squeeze gate, mellemrummet er mindre i toppen end i bunden"
},
"icon": {
"path": "./assets/themes/cycle_infra/Cycle_barrier_squeeze.png",
@@ -363,7 +372,8 @@
"de": "Welche Durchfahrtsbreite hat das Hindernis?",
"hu": "Milyen széles az akadályon az a rés, amelyen át lehet haladni?",
"fr": "Quelle est la largeur du passage ?",
- "es": "¿Cómo de ancho es el hueco dejado fuera de la barrera?"
+ "es": "¿Cómo de ancho es el hueco dejado fuera de la barrera?",
+ "da": "Hvor stort er mellemrummet udover barrieren?"
},
"condition": {
"and": [
@@ -388,7 +398,8 @@
"de": "Abstand zwischen den Barrieren (entlang der Straße): {width:separation} m",
"hu": "A korlátok közötti távolság (az út irányában): {width:separation} m",
"fr": "Espace entre deux barrières successives : {width:separation} m",
- "es": "Espacio entre barreras (a lo largo de la longitud de la carretera): {width:separation} m"
+ "es": "Espacio entre barreras (a lo largo de la longitud de la carretera): {width:separation} m",
+ "da": "Plads mellem barrierer (langs vejens længde): {width:separation} m"
},
"question": {
"en": "How much space is there between the barriers (along the length of the road)?",
@@ -396,7 +407,8 @@
"de": "Wie groß ist der Abstand zwischen den Barrieren (entlang der Straße)?",
"hu": "Mekkora távolság van a korlátok között (az út irányában)?",
"fr": "Combien d’espace sépare deux barrières successives ?",
- "es": "¿Cuánto espacio hay entre las barreras (a lo largo de la longitud de la carretera)?"
+ "es": "¿Cuánto espacio hay entre las barreras (a lo largo de la longitud de la carretera)?",
+ "da": "Hvor meget plads er der mellem bommene (på langs af vejen)?"
},
"condition": {
"or": [
@@ -430,7 +442,8 @@
"de": "Wie breit ist die kleinste Öffnung neben den Barrieren?",
"hu": "Milyen széles a korlátok melletti legkisebb nyílás?",
"fr": "Quelle est la largeur d'ouverture après la plus petite près de la barrière ?",
- "es": "¿Cómo de año es la apertura más pequeña al lado de las barreras?"
+ "es": "¿Cómo de año es la apertura más pequeña al lado de las barreras?",
+ "da": "Hvor bred er den mindste åbning ved siden af barriererne?"
},
"condition": {
"or": [
@@ -464,7 +477,8 @@
"de": "Wie stark überschneiden sich die Barrieren?",
"hu": "Mekkora a korlátok átfedése?",
"fr": "Quel est le chevauchement des barrières ?",
- "es": "¿Cuánto se solapan las barreras?"
+ "es": "¿Cuánto se solapan las barreras?",
+ "da": "Hvor meget overlap har barriererne?"
},
"condition": {
"or": [
diff --git a/assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json b/assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json
index a8127be68e..df7fcddbf3 100644
--- a/assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json
+++ b/assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json
@@ -95,7 +95,8 @@
"zh_Hant": "運作狀態是 {operational_status}",
"pt_BR": "O estado operacional é: {operational_status}",
"pt": "O estado operacional é: {operational_status}",
- "es": "El estado operacional es {operational_status}"
+ "es": "El estado operacional es {operational_status}",
+ "da": "Driftsstatus er {operational_status}"
},
"freeform": {
"key": "operational_status"
diff --git a/assets/layers/bike_cafe/bike_cafe.json b/assets/layers/bike_cafe/bike_cafe.json
index 10b1871e5f..9e89dcb1b4 100644
--- a/assets/layers/bike_cafe/bike_cafe.json
+++ b/assets/layers/bike_cafe/bike_cafe.json
@@ -123,7 +123,8 @@
"it": "Questo caffè in bici offre una pompa per bici che chiunque può utilizzare?",
"zh_Hans": "这家自行车咖啡为每个使用者提供打气筒吗?",
"ru": "Есть ли в этом велосипедном кафе велосипедный насос для всеобщего использования?",
- "zh_Hant": "這個單車咖啡廳有提供給任何人都能使用的單車打氣甬嗎?"
+ "zh_Hant": "這個單車咖啡廳有提供給任何人都能使用的單車打氣甬嗎?",
+ "da": "Tilbyder denne cykelcafé en cykelpumpe til brug for alle?"
},
"mappings": [
{
@@ -137,7 +138,8 @@
"it": "Questo caffè in bici offre una pompa per bici liberamente utilizzabile",
"zh_Hans": "这家自行车咖啡为每个人提供打气筒",
"zh_Hant": "這個單車咖啡廳有提供給任何人都能使用的單車打氣甬",
- "ru": "В этом велосипедном кафе есть велосипедный насос для всеобщего использования"
+ "ru": "В этом велосипедном кафе есть велосипедный насос для всеобщего использования",
+ "da": "Denne cykelcafé tilbyder en cykelpumpe til enhver"
}
},
{
@@ -151,7 +153,8 @@
"it": "Questo caffè in bici non offre una pompa per bici liberamente utilizzabile",
"zh_Hans": "这家自行车咖啡不为每个人提供打气筒",
"zh_Hant": "這個單車咖啡廳並沒有為所有人提供單車打氣甬",
- "ru": "В этом велосипедном кафе нет велосипедного насоса для всеобщего использования"
+ "ru": "В этом велосипедном кафе нет велосипедного насоса для всеобщего использования",
+ "da": "Denne cykelcafé tilbyder ikke en cykelpumpe til nogen"
}
}
]
@@ -342,7 +345,8 @@
"ru": "Каков режим работы этого велосипедного кафе?",
"pt_BR": "Quando este café de bicicleta abre?",
"de": "Wann ist dieses Fahrradcafé geöffnet?",
- "pt": "Quando este café de bicicleta abre?"
+ "pt": "Quando este café de bicicleta abre?",
+ "da": "Hvornår er denne cykelcafé åbent?"
},
"render": "{opening_hours_table(opening_hours)}",
"freeform": {
diff --git a/assets/layers/bike_cleaning/bike_cleaning.json b/assets/layers/bike_cleaning/bike_cleaning.json
index a0e2b9666c..2b61889560 100644
--- a/assets/layers/bike_cleaning/bike_cleaning.json
+++ b/assets/layers/bike_cleaning/bike_cleaning.json
@@ -24,7 +24,8 @@
"pt_BR": "Serviço de limpeza de bicicletas",
"pt": "Serviço de limpeza de bicicletas",
"ru": "Услуги по чистке велосипедов",
- "es": "Servicio de limpieza de bicis"
+ "es": "Servicio de limpieza de bicis",
+ "da": "Cykel rengøringsservice"
},
"mappings": [
{
@@ -38,7 +39,8 @@
"zh_Hant": "單車清理服務 {name}",
"pt_BR": "Serviço de limpeza de bicicletas {name}",
"pt": "Serviço de limpeza de bicicletas {name}",
- "es": "Servicio de limpieza de bicis {name}"
+ "es": "Servicio de limpieza de bicis {name}",
+ "da": "Cykelrengøringstjeneste {name}"
}
}
]
@@ -66,7 +68,8 @@
"pt_BR": "uma serviço de limpeza de bicicletas",
"pt": "uma serviço de limpeza de bicicletas",
"ru": "Услуги по чистке велосипедов",
- "es": "un servicio de limpieza de bicis"
+ "es": "un servicio de limpieza de bicis",
+ "da": "en cykelrengøring"
},
"tags": [
"amenity=bicycle_wash"
@@ -81,14 +84,16 @@
"de": "Wie viel kostet die Nutzung des Reinigungsdienstes?",
"nl": "Hoeveel kost het gebruik van het fietsschoonmaakpunt?",
"es": "¿Cuánto cuesta utilizar el servicio de limpieza?",
- "fr": "Combien coûte le service de nettoyage ?"
+ "fr": "Combien coûte le service de nettoyage ?",
+ "da": "Hvor meget koster det at bruge rengøringsservicen?"
},
"render": {
"en": "Using the cleaning service costs {service:bicycle:cleaning:charge}",
"de": "Nutzung des Reinigungsservice kostet {service:bicycle:cleaning:charge}",
"nl": "Het gebruik van het fietsschoonmaakpunt kost {service:bicycle:cleaning:charge}",
"es": "Utilizar el servicio de limpieza cuesta {service:bicycle:cleaning:charge}",
- "fr": "Le service de nettoyage coûte {service:bicycle:cleaning:charge}"
+ "fr": "Le service de nettoyage coûte {service:bicycle:cleaning:charge}",
+ "da": "Brug af rengøringsservice koster {service:bicycle:cleaning:charge}"
},
"condition": {
"and": [
@@ -111,20 +116,27 @@
"de": "Der Reinigungsservice ist kostenlos",
"nl": "Het fietsschoonmaakpunt is gratis",
"es": "El servicio de limpieza es gratis",
- "fr": "Le service de nettoyage est gratuit"
+ "fr": "Le service de nettoyage est gratuit",
+ "da": "Rengøringsservicen er gratis at bruge"
},
- "addExtraTags": ["service:bicycle:cleaning:charge="]
+ "addExtraTags": [
+ "service:bicycle:cleaning:charge="
+ ]
},
{
"if": {
- "and":["service:bicycle:cleaning:fee=yes","service:bicycle:cleaning:charge="]
+ "and": [
+ "service:bicycle:cleaning:fee=yes",
+ "service:bicycle:cleaning:charge="
+ ]
},
"then": {
- "en": "The cleaning service has a fee, but the amount is not known",
- "de": "Der Reinigungsdienst ist kostenpflichtig, aber der Betrag ist nicht bekannt",
- "nl": "Het fietsschoonmaakpunt is betalend, maar de prijs is onbekend",
- "es": "El servicio de limpieza tiene una tasa, pero la cantidad se desconoce",
- "fr": "Le coût du service de nettoyage n’est pas connu"
+ "en": "Free to use",
+ "de": "Kostenlose Nutzung",
+ "nl": "Gratis te gebruiken",
+ "es": "Gratis",
+ "fr": "Utilisation gratuite",
+ "da": "Gratis at bruge"
},
"hideInAnswer": true
}
@@ -137,14 +149,16 @@
"de": "Wie viel kostet die Nutzung des Reinigungsdienstes?",
"nl": "Hoeveel kost het gebruik van het fietsschoonmaakpunt?",
"es": "¿Cuánto cuesta utilizar el servicio de limpieza?",
- "fr": "Combien cela coûte-t-il d'utiliser le service de nettoyage ?"
+ "fr": "Combien cela coûte-t-il d'utiliser le service de nettoyage ?",
+ "da": "Hvor meget koster det at bruge rengøringsservicen?"
},
"render": {
"en": "Using the cleaning service costs {charge}",
"de": "Die Nutzung des Reinigungsdienstes kostet {charge}",
"nl": "Het gebruik van het fietsschoonmaakpunt kost {charge}",
"es": "Utilizar el servicio de limpieza cuesta {charge}",
- "fr": "L’utilisation du service de nettoyage coûte {charge}"
+ "fr": "L’utilisation du service de nettoyage coûte {charge}",
+ "da": "Brug af rengøringsservice koster {charge}"
},
"condition": {
"or": [
@@ -166,18 +180,22 @@
"de": "Kostenloser Reinigungsservice",
"nl": "Gratis fietsschoonmaakpunt",
"es": "Un servicio de limpieza gratis",
- "fr": "Service de nettoyage gratuit"
+ "fr": "Service de nettoyage gratuit",
+ "da": "Gratis at bruge rengøringsservice"
},
- "addExtraTags": ["charge="]
+ "addExtraTags": [
+ "charge="
+ ]
},
{
"if": "fee=yes",
"then": {
- "en": "The cleaning service has a fee",
- "de": "Der Reinigungsservice ist kostenpflichtig",
- "nl": "Je moet betalen voor het fietsschoonmaakpunt",
- "es": "El servicio de limpieza tiene una tarifa",
- "fr": "Le service de nettoyage est payant"
+ "en": "Free to use",
+ "de": "Kostenlose Nutzung",
+ "nl": "Gratis te gebruiken",
+ "es": "Gratis",
+ "fr": "Libre d'utilisation",
+ "da": "Gratis at bruge"
}
}
],
diff --git a/assets/layers/bike_parking/bike_parking.json b/assets/layers/bike_parking/bike_parking.json
index 7e7a451076..deaac7c2d9 100644
--- a/assets/layers/bike_parking/bike_parking.json
+++ b/assets/layers/bike_parking/bike_parking.json
@@ -120,7 +120,8 @@
"hu": "Korlát",
"it": "Archetti",
"zh_Hant": "單車架",
- "ca": "Bastidors de grapes"
+ "ca": "Bastidors de grapes",
+ "da": "Hæftestativer"
},
"icon": {
"path": "./assets/layers/bike_parking/staple.svg",
@@ -138,7 +139,8 @@
"hu": "Kerékbefogó hurok",
"it": "Scolapiatti",
"zh_Hant": "車輪架/圓圈",
- "ca": "Portarodes/bucles"
+ "ca": "Portarodes/bucles",
+ "da": "Hjulstativ/løkker"
},
"icon": {
"path": "./assets/layers/bike_parking/wall_loops.svg",
@@ -194,7 +196,8 @@
"zh_Hant": "兩層",
"it": "A due piani",
"ru": "Двухуровневая",
- "ca": "De dos nivells"
+ "ca": "De dos nivells",
+ "da": "To-lags"
},
"icon": {
"path": "./assets/layers/bike_parking/two_tier.svg",
diff --git a/assets/layers/cafe_pub/cafe_pub.json b/assets/layers/cafe_pub/cafe_pub.json
index 22250d79f6..647d759326 100644
--- a/assets/layers/cafe_pub/cafe_pub.json
+++ b/assets/layers/cafe_pub/cafe_pub.json
@@ -119,7 +119,7 @@
"nl": "Een nachtclub met dansvloer, DJ met bijhorende lichteffecten en bar waar men (alcoholische) dranken kan nuttigen",
"de": "Ein Club oder eine Diskothek mit Fokus auf Tanzen, Musik von einem DJ mit begleitender Lichtshow und einer Bar, an der man (alkoholische) Getränke bekommt",
"es": "Un club nocturno o discoteca centrada en bailar, la música de un DJ acompañado por un espectáculo de luces y un bar donde conseguir bebidas (alcohólicas)",
- "fr": "Une boîte de nuit ou discothèque pour danser sur de la musique de DJ accompagnée de jeux de lumière et un bar pour prendre une une boisson (alcoolisée)"
+ "fr": "Une boîte de nuit ou discothèque pour danser sur de la musique de DJ accompagnée de jeux de lumière et un bar pour prendre une boisson (alcoolisée)"
},
"preciseInput": {
"preferredBackground": "map"
diff --git a/assets/layers/charging_station/charging_station.json b/assets/layers/charging_station/charging_station.json
index b47d96fb9e..451a3a7e84 100644
--- a/assets/layers/charging_station/charging_station.json
+++ b/assets/layers/charging_station/charging_station.json
@@ -4382,7 +4382,7 @@
"title": {
"en": "a charging station for cars",
"nl": "een oplaadstation voor elektrische auto's",
- "de": "eine ladestation für e-bikes",
+ "de": "Eine Ladestation für Elektrofahrzeuge",
"es": "una estación de carga para coches"
},
"preciseInput": {
diff --git a/assets/layers/climbing_area/climbing_area.json b/assets/layers/climbing_area/climbing_area.json
index 200cbd670b..32a8842ea0 100644
--- a/assets/layers/climbing_area/climbing_area.json
+++ b/assets/layers/climbing_area/climbing_area.json
@@ -199,7 +199,8 @@
"en": "A climbing boulder - a single rock or cliff with one or a few climbing routes which can be climbed safely without rope",
"fr": "Rocher d’escalade, rocher avec une ou peu de voie permettant d’escalader sans corde",
"de": "Ein Kletterfelsen - ein einzelner Felsen oder eine Klippe mit einer oder wenigen Kletterrouten, die ohne Seil sicher bestiegen werden können",
- "it": "Un masso per arrampicata (una singola roccia o falesia con una o poche vie di arrampicata che possono essere scalate in sicurezza senza una corda)"
+ "it": "Un masso per arrampicata (una singola roccia o falesia con una o poche vie di arrampicata che possono essere scalate in sicurezza senza una corda)",
+ "nl": "Een klimboulder- eenn enkele rots of klif met één of enkele klimroutes die veilig zonder touw kunnen worden beklommen"
}
},
{
diff --git a/assets/layers/cycleways_and_roads/cycleways_and_roads.json b/assets/layers/cycleways_and_roads/cycleways_and_roads.json
index 00b4fbee35..eeb0c190df 100644
--- a/assets/layers/cycleways_and_roads/cycleways_and_roads.json
+++ b/assets/layers/cycleways_and_roads/cycleways_and_roads.json
@@ -737,7 +737,7 @@
"en": "This cycleway is unhardened",
"nl": "Dit fietspad is onverhard",
"de": "Dieser Radweg ist nicht befestigt",
- "fr": "Cette piste cycable est non durcie"
+ "fr": "Cette piste cycable est non durcie"
},
"hideInAnswer": true
},
diff --git a/assets/layers/defibrillator/defibrillator.json b/assets/layers/defibrillator/defibrillator.json
index 79bacd7b55..158a732b6a 100644
--- a/assets/layers/defibrillator/defibrillator.json
+++ b/assets/layers/defibrillator/defibrillator.json
@@ -408,7 +408,7 @@
},
"question": {
"en": "Please give some explanation on where the defibrillator can be found (in French)",
- "ca": "Dóna detalls d'on es pot trobar el desfibril·lador",
+ "ca": "Dóna detalls d'on es pot trobar el desfibril·lador (en francés)",
"es": "Da detalles de dónde se puede encontrar el desfibrilador (en frances)",
"fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (en français)",
"nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in het Frans)",
@@ -583,7 +583,8 @@
"it": "Questo defibrillatore è stato verificato per l‘ultima volta in data {survey:date}",
"de": "Dieser Defibrillator wurde zuletzt am {survey:date} überprüft",
"sl": "Ta defibrilator je bil nazadnje opažen {survey:date}",
- "es": "Este desfibrilador se sondeó por última vez el {survey:date}"
+ "es": "Este desfibrilador se sondeó por última vez el {survey:date}",
+ "ca": "El desfibrilador és va sondejar per ultima vegada el {survey:date}"
},
"freeform": {
"key": "survey:date",
diff --git a/assets/layers/etymology/etymology.json b/assets/layers/etymology/etymology.json
index 45a7f2c2d9..f014ef726b 100644
--- a/assets/layers/etymology/etymology.json
+++ b/assets/layers/etymology/etymology.json
@@ -12,7 +12,10 @@
"osmTags": {
"and": [
{
- "or": ["name:etymology:wikidata~*", "name:etymology~*"]
+ "or": [
+ "name:etymology:wikidata~*",
+ "name:etymology~*"
+ ]
}
]
}
@@ -53,7 +56,10 @@
"helperArgs": [
"name",
{
- "notInstanceOf": ["Q79007", "Q22698"],
+ "notInstanceOf": [
+ "Q79007",
+ "Q22698"
+ ],
"removePrefixes": {
"#": "no-translations",
"fr": [
@@ -283,7 +289,9 @@
"weg",
"wegel"
],
- "fr": ["parque"],
+ "fr": [
+ "parque"
+ ],
"de": [
"straße",
"platz",
@@ -293,7 +301,13 @@
"gymnasium",
"schule"
],
- "en": ["street", "path", "plaza", "square", "church"]
+ "en": [
+ "street",
+ "path",
+ "plaza",
+ "square",
+ "church"
+ ]
}
}
]
@@ -347,7 +361,10 @@
}
],
"condition": {
- "or": ["name:etymology~*", "name:etymology:wikidata="]
+ "or": [
+ "name:etymology~*",
+ "name:etymology:wikidata="
+ ]
}
},
"questions",
@@ -394,7 +411,10 @@
"mappings": [
{
"if": {
- "and": ["name:etymology=", "name:etymology:wikidata="]
+ "and": [
+ "name:etymology=",
+ "name:etymology:wikidata="
+ ]
},
"then": "pin:#fcca05aa"
}
@@ -403,7 +423,9 @@
"iconSize": {
"render": "40,40,center"
},
- "location": ["point"]
+ "location": [
+ "point"
+ ]
},
{
"color": {
@@ -411,7 +433,10 @@
"mappings": [
{
"if": {
- "and": ["name:etymology=", "name:etymology:wikidata="]
+ "and": [
+ "name:etymology=",
+ "name:etymology:wikidata="
+ ]
},
"then": "#fcca05aa"
}
@@ -429,4 +454,4 @@
}
}
]
-}
+}
\ No newline at end of file
diff --git a/assets/layers/surveillance_camera/surveillance_camera.json b/assets/layers/surveillance_camera/surveillance_camera.json
index eb6b521367..abc17f8c9a 100644
--- a/assets/layers/surveillance_camera/surveillance_camera.json
+++ b/assets/layers/surveillance_camera/surveillance_camera.json
@@ -32,7 +32,8 @@
"fr": "Caméra de surveillance",
"it": "Videocamera di sorveglianza",
"de": "Überwachungskamera",
- "ca": "Càmera de videovigilància"
+ "ca": "Càmera de videovigilància",
+ "da": "Overvågningskamera"
}
},
"tagRenderings": [
@@ -100,14 +101,16 @@
"nl": "In welke geografische richting filmt deze camera?",
"fr": "Dans quelle direction géographique cette caméra filme-t-elle ?",
"it": "In quale direzione geografica punta questa videocamera?",
- "de": "In welche Himmelsrichtung filmt diese Kamera?"
+ "de": "In welche Himmelsrichtung filmt diese Kamera?",
+ "da": "I hvilken geografisk retning filmer dette kamera?"
},
"render": {
"en": "Films to a compass heading of {camera:direction}",
"nl": "Filmt in kompasrichting {camera:direction}",
"fr": "Filme dans une direction {camera:direction}",
"it": "Punta in direzione {camera:direction}",
- "de": "filmt in Himmelsrichtung {camera:direction}"
+ "de": "filmt in Himmelsrichtung {camera:direction}",
+ "da": "Filmer til en kompasretning af {camera:direction}"
},
"condition": {
"or": [
@@ -139,7 +142,8 @@
"nl": "Filmt in kompasrichting {direction}",
"fr": "Filme dans une direction {direction}",
"it": "Punta in direzione {direction}",
- "de": "filmt in Himmelsrichtung {direction}"
+ "de": "filmt in Himmelsrichtung {direction}",
+ "da": "Filmer til en kompasretning af {direction}"
},
"hideInAnswer": true
}
@@ -172,7 +176,8 @@
"nl": "Wat soort bewaking wordt hier uitgevoerd?",
"fr": "De quel genre de surveillance cette caméra est-elle ?",
"it": "Che cosa sorveglia questa videocamera?",
- "de": "Was überwacht diese Kamera?"
+ "de": "Was überwacht diese Kamera?",
+ "da": "Hvilken form for overvågning er dette kamera?"
},
"mappings": [
{
@@ -186,7 +191,8 @@
"nl": "Bewaking van de publieke ruilmte, dus een straat, een brug, een park, een plein, een stationsgebouw, een publiek toegankelijke gang of tunnel…",
"fr": "Une zone publique est surveillée, telle qu'une rue, un pont, une place, un parc, une gare, un couloir, un tunnel public…",
"it": "Sorveglia un'area pubblica, come una strada, un ponte, una piazza, un parco, una stazione, un passaggio o un sottopasso pubblico, ...",
- "de": "Die Kamera überwacht einen öffentlichen Bereich, z. B. Straßen, Brücken, Plätze, Parks, Bahnhöfe, öffentliche Gänge oder Tunnel, …"
+ "de": "Die Kamera überwacht einen öffentlichen Bereich, z. B. Straßen, Brücken, Plätze, Parks, Bahnhöfe, öffentliche Gänge oder Tunnel, …",
+ "da": "Et offentligt område overvåges, f.eks. en gade, en bro, et torv, en park, en togstation, en offentlig korridor eller en tunnel, …"
}
},
{
@@ -200,7 +206,8 @@
"nl": "Een buitenruimte met privaat karakter (zoals een privé-oprit, een parking, tankstation, …)",
"fr": "Une zone extérieure, mais privée, est surveillée (par exemple, un parking, une station-service, une cour, une entrée, une allée privée…)",
"it": "Sorveglia un'area esterna di proprietà privata (un parcheggio, una stazione di servizio, un cortile, un ingresso, un vialetto privato, ...)",
- "de": "Die Kamera überwacht einen privaten Außenbereich (z.B. Parkplätze, Tankstellen, Innenhöfe, Eingänge, private Einfahrten, …)"
+ "de": "Die Kamera überwacht einen privaten Außenbereich (z.B. Parkplätze, Tankstellen, Innenhöfe, Eingänge, private Einfahrten, …)",
+ "da": "Et udendørs, men privat område overvåges (f.eks. en parkeringsplads, en tankstation, en gårdsplads, en indgang, en privat indkørsel, ...)"
}
},
{
@@ -214,7 +221,8 @@
"en": "A private indoor area is surveilled, e.g. a shop, a private underground parking, …",
"fr": "Une zone intérieure privée est surveillée, par exemple un magasin, un parking souterrain privé…",
"it": "Sorveglia un ambiente interno di proprietà privata, per esempio un negozio, un parcheggio sotterraneo privato, ...",
- "de": "Die Kamera überwacht einen privaten Innenbereich, z. B. Geschäfte, private Tiefgaragen, …"
+ "de": "Die Kamera überwacht einen privaten Innenbereich, z. B. Geschäfte, private Tiefgaragen, …",
+ "da": "Et privat indendørs område overvåges, f.eks. en butik, en privat parkeringskælder, …"
}
}
],
@@ -226,7 +234,8 @@
"nl": "Bevindt de bewaakte publieke ruimte camera zich binnen of buiten?",
"fr": "L'espace public surveillé par cette caméra est-il un espace intérieur ou extérieur ?",
"it": "Lo spazio pubblico sorvegliato da questa videocamera è all'aperto o al chiuso?",
- "de": "Handelt es sich bei dem von dieser Kamera überwachten öffentlichen Raum um einen Innen- oder Außenbereich?"
+ "de": "Handelt es sich bei dem von dieser Kamera überwachten öffentlichen Raum um einen Innen- oder Außenbereich?",
+ "da": "Er det offentlige rum, der overvåges af dette kamera, et indendørs eller udendørs rum?"
},
"condition": {
"and": [
@@ -241,7 +250,8 @@
"nl": "Deze camera bevindt zich binnen",
"fr": "Cette caméra est située à l'intérieur",
"it": "Questa videocamera si trova al chiuso",
- "de": "Diese Kamera befindet sich im Innenraum"
+ "de": "Diese Kamera befindet sich im Innenraum",
+ "da": "Dette kamera er placeret indendørs"
}
},
{
@@ -252,7 +262,8 @@
"fr": "Cette caméra est située à l'extérieur",
"it": "Questa videocamera si trova all'aperto",
"ru": "Эта камера расположена снаружи",
- "de": "Diese Kamera befindet sich im Freien"
+ "de": "Diese Kamera befindet sich im Freien",
+ "da": "Dette kamera er placeret udendørs"
}
},
{
@@ -263,7 +274,8 @@
"fr": "Cette caméra est probablement située à l'extérieur",
"it": "Questa videocamera si trova probabilmente all'esterno",
"ru": "Возможно, эта камера расположена снаружи",
- "de": "Diese Kamera ist möglicherweise im Freien"
+ "de": "Diese Kamera ist möglicherweise im Freien",
+ "da": "Dette kamera er sandsynligvis placeret udendørs"
},
"hideInAnswer": true
}
@@ -303,7 +315,8 @@
"nl": "Wat wordt hier precies bewaakt?",
"fr": "Qu'est-ce qui est surveillé ici ?",
"it": "Che cosa è sorvegliato qui?",
- "de": "Was genau wird hier überwacht?"
+ "de": "Was genau wird hier überwacht?",
+ "da": "Hvad er det præcist, der overvåges her?"
},
"freeform": {
"key": "surveillance:zone"
@@ -313,7 +326,8 @@
"nl": "Bewaakt een {surveillance:zone}",
"fr": "Surveille un(e) {surveillance:zone}",
"it": " Sorveglia una {surveillance:zone}",
- "de": "Überwacht ein/e {surveillance:zone}"
+ "de": "Überwacht ein/e {surveillance:zone}",
+ "da": "Overvåger en {surveillance:zone}"
},
"mappings": [
{
@@ -327,7 +341,8 @@
"nl": "Bewaakt een parking",
"fr": "Surveille un parking",
"it": "Sorveglia un parcheggio",
- "de": "Überwacht einen Parkplatz"
+ "de": "Überwacht einen Parkplatz",
+ "da": "Overvåger en parkeringsplads"
}
},
{
@@ -341,7 +356,8 @@
"nl": "Bewaakt het verkeer",
"fr": "Surveille la circulation",
"it": "Sorveglia il traffico",
- "de": "Überwacht den Verkehr"
+ "de": "Überwacht den Verkehr",
+ "da": "Overvåger trafikken"
}
},
{
@@ -355,7 +371,8 @@
"nl": "Bewaakt een ingang",
"fr": "Surveille une entrée",
"it": "Sorveglia un ingresso",
- "de": "Überwacht einen Eingang"
+ "de": "Überwacht einen Eingang",
+ "da": "Overvåger en indgang"
}
},
{
@@ -369,7 +386,8 @@
"nl": "Bewaakt een gang",
"fr": "Surveille un couloir",
"it": "Sorveglia un corridoio",
- "de": "Überwacht einen Gang"
+ "de": "Überwacht einen Gang",
+ "da": "Overvåger en korridor"
}
},
{
@@ -383,7 +401,8 @@
"nl": "Bewaakt een perron of bushalte",
"fr": "Surveille un quai de transport public",
"it": "Sorveglia una pensilina del trasporto pubblico",
- "de": "Überwacht eine Haltestelle"
+ "de": "Überwacht eine Haltestelle",
+ "da": "Overvejer en offentlig transportplatform"
}
},
{
@@ -397,7 +416,8 @@
"nl": "Bewaakt een winkel",
"fr": "Surveille un magasin",
"it": "Sorveglia un negozio",
- "de": "Überwacht ein Geschäft"
+ "de": "Überwacht ein Geschäft",
+ "da": "Overvåger en butik"
}
}
],
@@ -410,14 +430,16 @@
"fr": "Comment cette caméra est-elle placée ?",
"it": "Com'è posizionata questa telecamera?",
"ru": "Как расположена эта камера?",
- "de": "Woran ist diese Kamera befestigt?"
+ "de": "Woran ist diese Kamera befestigt?",
+ "da": "Hvordan er dette kamera placeret?"
},
"render": {
"en": "Mounting method: {camera:mount}",
"nl": "Ophanging: {camera:mount}",
"fr": "Méthode de montage : {camera:mount}",
"it": "Metodo di montaggio: {camera:mount}",
- "de": "Montageart: {camera:mount}"
+ "de": "Montageart: {camera:mount}",
+ "da": "Monteringsmetode: {camera:mount}"
},
"freeform": {
"key": "camera:mount"
@@ -430,7 +452,8 @@
"nl": "Deze camera hangt aan een muur",
"fr": "Cette caméra est placée contre un mur",
"it": "Questa telecamera è posizionata contro un muro",
- "de": "Diese Kamera ist an einer Wand befestigt"
+ "de": "Diese Kamera ist an einer Wand befestigt",
+ "da": "Dette kamera er placeret op ad en væg"
}
},
{
@@ -440,7 +463,8 @@
"nl": "Deze camera staat op een paal",
"fr": "Cette caméra est placée sur un poteau",
"it": "Questa telecamera è posizionata su un palo",
- "de": "Diese Kamera ist an einer Stange befestigt"
+ "de": "Diese Kamera ist an einer Stange befestigt",
+ "da": "Dette kamera er placeret på en stang"
}
},
{
@@ -450,7 +474,8 @@
"nl": "Deze camera hangt aan het plafond",
"fr": "Cette caméra est placée au plafond",
"it": "Questa telecamera è posizionata sul soffitto",
- "de": "Diese Kamera ist an der Decke befestigt"
+ "de": "Diese Kamera ist an der Decke befestigt",
+ "da": "Dette kamera er placeret i loftet"
}
},
{
@@ -460,7 +485,8 @@
"nl": "Deze camera staat op een straatlantaarn",
"fr": "Cette caméra est placée sur un lampadaire",
"it": "Questa telecamera è posizionata su un lampione",
- "de": "Diese Kamera ist an einer Laterne befestigt"
+ "de": "Diese Kamera ist an einer Laterne befestigt",
+ "da": "Dette kamera er placeret på en gadelampe"
}
},
{
@@ -470,7 +496,8 @@
"nl": "Deze camera staat op een boom",
"fr": "Cette caméra est placée sur un arbre",
"it": "Questa telecamera è posizionata su un albero",
- "de": "Diese Kamera ist an einem Baum befestigt"
+ "de": "Diese Kamera ist an einem Baum befestigt",
+ "da": "Dette kamera er placeret på et træ"
}
}
],
diff --git a/assets/layers/tertiary_education/tertiary_education.json b/assets/layers/tertiary_education/tertiary_education.json
index f8e9715deb..eaaf54aa7a 100644
--- a/assets/layers/tertiary_education/tertiary_education.json
+++ b/assets/layers/tertiary_education/tertiary_education.json
@@ -4,7 +4,8 @@
"en": "Colleges and universities",
"nl": "Universiteiten en hogescholen",
"de": "Hochschulen und Universitäten",
- "fr": "Collèges et universités"
+ "fr": "Collèges et universités",
+ "da": "Gymnasier og universiteter"
},
"description": "Layer with all tertiary education institutes (ISCED:2011 levels 6,7 and 8)",
"source": {
@@ -49,7 +50,8 @@
"en": "University",
"nl": "Universiteit",
"de": "Universität",
- "fr": "Universitée"
+ "fr": "Universitée",
+ "da": "Universitet"
}
},
{
@@ -58,7 +60,8 @@
"en": "School providing tertiary education",
"nl": "Onderwijsinstelling die tertiair onderwijs geeft",
"de": "Schule mit tertiärem Bildungsangebot",
- "fr": "École dispensant un enseignement supérieur"
+ "fr": "École dispensant un enseignement supérieur",
+ "da": "Skole, der udbyder videregående uddannelser"
}
}
]
@@ -70,7 +73,8 @@
"en": "What kind of institution is this?",
"nl": "Wat voor onderwijsinstelling is dit?",
"de": "Was für eine Art von Institution ist das?",
- "fr": "De quel type d'établissement s'agit-il ?"
+ "fr": "De quel type d'établissement s'agit-il ?",
+ "da": "Hvad er det for en institution?"
},
"mappings": [
{
@@ -79,7 +83,8 @@
"en": "This is an institution of post-secondary, non-tertiary education. One has to have completed secondary education to enroll here, but no bachelor (or higher) degrees are awarded here",
"nl": "Dit is een onderwijsinstelling waar post-secundair, niet-tertiair onderwijs wordt gegeven. Om dit onderwijs te volgen, moet je je secundair onderwijs afgewerkt hebben maar de opleiding behaalt niet het niveau van van een bachelor.",
"de": "Es handelt sich um eine postsekundäre, nicht-tertiäre Bildungseinrichtung. Man muss die Sekundarstufe abgeschlossen haben, um sich hier einzuschreiben, aber es werden keine Bachelor-Abschlüsse (oder höhere Abschlüsse) verliehen",
- "fr": "Il s'agit d'un établissement d'enseignement post-secondaire, non tertiaire. Il faut avoir terminé l'enseignement secondaire pour s'inscrire ici, mais aucun baccalauréat (ou diplôme supérieur) n'est délivré ici"
+ "fr": "Il s'agit d'un établissement d'enseignement post-secondaire, non tertiaire. Il faut avoir terminé l'enseignement secondaire pour s'inscrire ici, mais aucun baccalauréat (ou diplôme supérieur) n'est délivré ici",
+ "da": "Dette er en institution for post-gymnasial, ikke-tertiær uddannelse. Man skal have gennemført en ungdomsuddannelse for at tilmelde sig her, men her uddeles ingen bachelor (eller højere) grader"
}
},
{
@@ -88,7 +93,8 @@
"en": "This is a university, an institution of tertiary education where bachelor degrees or higher are awarded.",
"nl": "Dit is een universiteit (of hogeschool), een onderwijsinstelling van tertaire educatie. De gegeven opleidingen halen het niveau van een bachelor-opleiding of hoger.",
"de": "Dies ist eine Universität, eine Einrichtung des tertiären Bildungsbereichs, an der Bachelor-Abschlüsse oder höhere Abschlüsse verliehen werden.",
- "fr": "Il s'agit d'une université, d'un établissement d'enseignement supérieur où sont délivrés des diplômes de bachelor ou plus."
+ "fr": "Il s'agit d'une université, d'un établissement d'enseignement supérieur où sont délivrés des diplômes de bachelor ou plus.",
+ "da": "Dette er et universitet, en institution for videregående uddannelse, hvor der tildeles bachelorgrader eller højere."
}
}
]
@@ -99,7 +105,8 @@
"en": "What level of education is given here?",
"nl": "Wat is het niveau van onderwijs?",
"de": "Welche Bildungsabschlüsse werden hier verliehen?",
- "fr": "Quel niveau d'éducation est donné ici ?"
+ "fr": "Quel niveau d'éducation est donné ici ?",
+ "da": "Hvilket uddannelsesniveau gives her?"
},
"multiAnswer": true,
"mappings": [
@@ -109,7 +116,8 @@
"en": "Bachelor degrees are awarded here",
"nl": "Bacheloropleidingen (of equivalent) worden hier gegeven",
"de": "Bachelor-Abschlüsse werden hier verliehen",
- "fr": "Les diplômes de bachelor y sont décernés"
+ "fr": "Les diplômes de bachelor y sont décernés",
+ "da": "Her udstedes bachelorgrader"
}
},
{
@@ -118,7 +126,8 @@
"en": "Master degrees are awarded here",
"nl": "Masteropleidingen (of equivalent) worden hier gegeven",
"de": "Hier werden Master-Abschlüsse verliehen",
- "fr": "Des masters y sont décernés"
+ "fr": "Des masters y sont décernés",
+ "da": "Mastergrader udstedes her"
}
},
{
@@ -177,7 +186,8 @@
"en": "a university",
"nl": "een universiteit",
"de": "eine Universität",
- "fr": "une université"
+ "fr": "une université",
+ "da": "et universitet"
},
"description": {
"en": "An institute where tertiary education is given (at the level equivalent of a bachelors degree or higher). A single point per campus is enough - buildings and faculties should not be mapped with different university points.",
diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json
index f56cb68497..ed4ff2f2d9 100644
--- a/assets/layers/toilet/toilet.json
+++ b/assets/layers/toilet/toilet.json
@@ -8,7 +8,8 @@
"ru": "Туалеты",
"it": "Servizi igienici",
"ca": "Lavabos",
- "es": "Baños"
+ "es": "Baños",
+ "da": "Toiletter"
},
"minzoom": 12,
"source": {
@@ -23,7 +24,8 @@
"ru": "Туалет",
"it": "Servizi igienici",
"ca": "Lavabo",
- "es": "Baño"
+ "es": "Baño",
+ "da": "Toilet"
}
},
"presets": [
@@ -35,7 +37,8 @@
"nl": "een publiek toilet",
"ru": "общественный туалет ",
"it": "una servizi igienici aperti al pubblico",
- "es": "un baño público"
+ "es": "un baño público",
+ "da": "et offentligt toilet"
},
"tags": [
"amenity=toilets"
@@ -48,7 +51,8 @@
"fr": "une toilettes accessible aux personnes à mobilité réduite",
"nl": "een rolstoeltoegankelijke, publiek toilet",
"it": "una servizi igienici accessibili per persone in sedia a rotelle",
- "ru": "tуалет с доступом для пользователей кресел-колясок"
+ "ru": "tуалет с доступом для пользователей кресел-колясок",
+ "da": "et toilet med kørestolsvenligt toilet"
},
"tags": [
"amenity=toilets",
@@ -59,7 +63,8 @@
"de": "Eine Toilettenanlage mit mindestens einer rollstuhlgerechten Toilette",
"fr": "Toilettes avec au moins un WC accessible aux personnes à mobilité réduite",
"nl": "Deze toiletten hebben op zijn minst één rolstoeltoegankelijke WC",
- "it": "Servizi igienici che hanno almeno una toilette accessibile a persone in sedia a rotelle"
+ "it": "Servizi igienici che hanno almeno una toilette accessibile a persone in sedia a rotelle",
+ "da": "Et toilet, der har mindst et kørestolsvenligt toilet"
}
}
],
@@ -73,7 +78,8 @@
"fr": "Ces toilettes sont-elles accessibles au public ?",
"nl": "Zijn deze toiletten publiek toegankelijk?",
"it": "Questi servizi igienici sono aperti al pubblico?",
- "ru": "Есть ли свободный доступ к этим туалетам?"
+ "ru": "Есть ли свободный доступ к этим туалетам?",
+ "da": "Er disse toiletter offentligt tilgængelige?"
},
"render": {
"en": "Access is {access}",
@@ -81,7 +87,8 @@
"fr": "L'accès est {access}",
"nl": "Toegankelijkheid is {access}",
"it": "L'accesso è {access}",
- "es": "El acceso es {access}"
+ "es": "El acceso es {access}",
+ "da": "Adgang er {access}"
},
"freeform": {
"key": "access",
@@ -99,7 +106,8 @@
"nl": "Publiek toegankelijk",
"it": "Accesso pubblico",
"ru": "Свободный доступ",
- "es": "Acceso públic"
+ "es": "Acceso públic",
+ "da": "Offentlig adgang"
}
},
{
@@ -110,7 +118,8 @@
"fr": "Accès réservé aux clients",
"nl": "Enkel toegang voor klanten",
"it": "Accesso riservato ai clienti e alle clienti",
- "es": "Solo accesible a clientes"
+ "es": "Solo accesible a clientes",
+ "da": "Kun adgang til kunder"
}
},
{
@@ -122,7 +131,8 @@
"nl": "Niet toegankelijk",
"ru": "Недоступно",
"it": "Non accessibile",
- "es": "No accesible"
+ "es": "No accesible",
+ "da": "Ikke tilgængelig"
}
},
{
@@ -133,7 +143,8 @@
"fr": "Accessible, mais vous devez demander la clé",
"nl": "Toegankelijk na het vragen van de sleutel",
"it": "Accessibile, ma occorre chiedere una chiave per accedere",
- "es": "Accesible, pero hay que pedir la llave para entrar"
+ "es": "Accesible, pero hay que pedir la llave para entrar",
+ "da": "Tilgængelig, men man skal bede om en nøgle for at komme ind"
}
},
{
@@ -145,7 +156,8 @@
"nl": "Publiek toegankelijk",
"it": "Accesso pubblico",
"ru": "Свободный доступ",
- "es": "De acceso público"
+ "es": "De acceso público",
+ "da": "Offentlig adgang"
},
"hideInAnswer": true
}
@@ -160,7 +172,8 @@
"de": "Können diese Toiletten kostenlos benutzt werden?",
"fr": "Ces toilettes sont-elles payantes ?",
"nl": "Zijn deze toiletten gratis te gebruiken?",
- "it": "Questi servizi igienici sono gratuiti?"
+ "it": "Questi servizi igienici sono gratuiti?",
+ "da": "Er det gratis at benytte disse toiletter?"
},
"mappings": [
{
@@ -171,7 +184,8 @@
"nl": "Men moet betalen om deze toiletten te gebruiken",
"ru": "Это платные туалеты",
"it": "Questi servizi igienici sono a pagamento",
- "es": "Estos son baños de pago"
+ "es": "Estos son baños de pago",
+ "da": "Det er betalingstoiletter"
},
"if": "fee=yes"
},
@@ -182,7 +196,8 @@
"de": "Die Nutzung ist kostenlos",
"fr": "Toilettes gratuites",
"nl": "Gratis te gebruiken",
- "it": "Gratis"
+ "it": "Gratis",
+ "da": "Gratis at bruge"
}
}
]
@@ -195,7 +210,8 @@
"nl": "Hoeveel moet men betalen om deze toiletten te gebruiken?",
"it": "Quanto costa l'accesso a questi servizi igienici?",
"ru": "Сколько стоит посещение туалета?",
- "es": "¿Cuánto hay que pagar para estos baños?"
+ "es": "¿Cuánto hay que pagar para estos baños?",
+ "da": "Hvor meget skal man betale for disse toiletter?"
},
"render": {
"en": "The fee is {charge}",
@@ -204,7 +220,8 @@
"nl": "De toiletten gebruiken kost {charge}",
"it": "La tariffa è {charge}",
"ru": "Стоимость {charge}",
- "es": "La tasa es {charge}"
+ "es": "La tasa es {charge}",
+ "da": "Gebyret er {charge}"
},
"condition": "fee=yes",
"freeform": {
@@ -227,7 +244,8 @@
"nl": "Wanneer zijn deze toiletten open?",
"de": "Wann sind diese Toiletten geöffnet?",
"es": "",
- "fr": "Quand ces toilettes sont-elles ouvertes ?"
+ "fr": "Quand ces toilettes sont-elles ouvertes ?",
+ "da": "Hvornår åbnes disse toiletter?"
},
"render": "{opening_hours_table()}",
"freeform": {
@@ -242,7 +260,8 @@
"nl": "Altijd open",
"de": "Durchgehend geöffnet",
"es": "Abierto 24/7",
- "fr": "Ouvert 24h/24 et 7j/7"
+ "fr": "Ouvert 24h/24 et 7j/7",
+ "da": "Åbent 24/7"
}
}
]
@@ -254,7 +273,8 @@
"de": "Können Rollstuhlfahrer die Toilette benutzen?",
"fr": "Y a-t-il des toilettes réservées aux personnes en fauteuil roulant ?",
"nl": "Is er een rolstoeltoegankelijke toilet voorzien?",
- "it": "C'è un WC riservato alle persone in sedia a rotelle"
+ "it": "C'è un WC riservato alle persone in sedia a rotelle",
+ "da": "Er der et særligt toilet til kørestolsbrugere?"
},
"mappings": [
{
@@ -264,7 +284,8 @@
"fr": "Il y a des toilettes réservées pour les personnes à mobilité réduite",
"nl": "Er is een toilet voor rolstoelgebruikers",
"it": "C'è un WC riservato alle persone in sedia a rotelle",
- "es": "Hay un baño dedicado para usuarios con sillas de ruedas"
+ "es": "Hay un baño dedicado para usuarios con sillas de ruedas",
+ "da": "Der er et særligt toilet til kørestolsbrugere"
},
"if": "wheelchair=yes"
},
@@ -277,7 +298,8 @@
"nl": "Niet toegankelijk voor rolstoelgebruikers",
"it": "Non accessibile in sedia a rotelle",
"ru": "Недоступно пользователям кресел-колясок",
- "es": "Sin acceso para sillas de ruedas"
+ "es": "Sin acceso para sillas de ruedas",
+ "da": "Ingen kørestolsadgang"
}
},
{
@@ -285,7 +307,8 @@
"then": {
"en": "There is only a dedicated toilet for wheelchair users",
"nl": "Er is alleen een toilet voor rolstoelgebruikers",
- "de": "Es gibt nur eine barrierefreie Toilette für Rollstuhlfahrer"
+ "de": "Es gibt nur eine barrierefreie Toilette für Rollstuhlfahrer",
+ "da": "Der er kun et særligt toilet til kørestolsbrugere"
}
}
]
@@ -296,13 +319,15 @@
"en": "What is the width of the door to the wheelchair accessible toilet?",
"nl": "Hoe breed is de deur van de rolstoeltoegankelijke toilet?",
"fr": "Quelle est la largeur de la porte des toilettes accessibles aux fauteuils roulants ?",
- "de": "Wie breit ist die Tür zur rollstuhlgerechten Toilette?"
+ "de": "Wie breit ist die Tür zur rollstuhlgerechten Toilette?",
+ "da": "Hvad er bredden på døren til det kørestolsvenlige toilet?"
},
"render": {
"en": "The door to the wheelchair-accessible toilet is {canonical(door:width)} wide",
"nl": "De deur naar de rolstoeltoegankelijke toilet is {canonical(door:width)} wide",
"fr": "La porte des toilettes accessibles aux fauteuils roulants a une large de {canonical(door:width)}",
- "de": "Die Tür zur rollstuhlgerechten Toilette ist {canonical(door:width)} breit"
+ "de": "Die Tür zur rollstuhlgerechten Toilette ist {canonical(door:width)} breit",
+ "da": "Døren til det kørestolsvenlige toilet er {canonical(door:width)} bred"
},
"freeform": {
"key": "door:width",
@@ -318,7 +343,8 @@
"nl": "Welke toiletten zijn dit?",
"it": "Di che tipo di servizi igienici si tratta?",
"ru": "Какие это туалеты?",
- "es": "¿Qué tipo de baños son estos?"
+ "es": "¿Qué tipo de baños son estos?",
+ "da": "Hvilken slags toiletter er det?"
},
"mappings": [
{
@@ -339,7 +365,8 @@
"fr": "Il y a uniquement des urinoirs",
"nl": "Er zijn enkel urinoirs",
"it": "Ci sono solo urinali",
- "es": "Aquí solo hay orinales"
+ "es": "Aquí solo hay orinales",
+ "da": "Her er kun urinaler"
}
},
{
@@ -349,7 +376,8 @@
"de": "Hier gibt es nur Toiletten zum Hocken",
"fr": "Il y a uniquement des toilettes turques",
"nl": "Er zijn enkel hurktoiletten",
- "it": "Ci sono solo turche"
+ "it": "Ci sono solo turche",
+ "da": "Der er kun squat-toiletter her"
}
},
{
@@ -360,7 +388,8 @@
"fr": "Il y a des sièges de toilettes et des urinoirs",
"nl": "Er zijn zowel urinoirs als zittoiletten",
"it": "Ci sono sia sedili, sia urinali",
- "es": "Aquí hay tanto váteres de sentarse como orinales"
+ "es": "Aquí hay tanto váteres de sentarse como orinales",
+ "da": "Både siddende toiletter og urinaler er tilgængelige her"
}
}
]
@@ -372,7 +401,8 @@
"de": "Ist hier ein Wickeltisch (zum Wechseln von Babywindeln) vorhanden?",
"fr": "Ces toilettes disposent-elles d'une table à langer ?",
"nl": "Is er een luiertafel beschikbaar?",
- "it": "È disponibile un fasciatoio (per cambiare i pannolini)?"
+ "it": "È disponibile un fasciatoio (per cambiare i pannolini)?",
+ "da": "Findes der puslebord (til bleskift)?"
},
"mappings": [
{
@@ -382,7 +412,8 @@
"fr": "Une table à langer est disponible",
"nl": "Er is een luiertafel",
"it": "È disponibile un fasciatoio",
- "es": "Hay un cambiador"
+ "es": "Hay un cambiador",
+ "da": "Et puslebord er tilgængeligt"
},
"if": "changing_table=yes"
},
@@ -394,7 +425,8 @@
"fr": "Aucune table à langer",
"nl": "Geen luiertafel",
"it": "Non è disponibile un fasciatoio",
- "es": "No hay cambiador"
+ "es": "No hay cambiador",
+ "da": "Der er ikke noget puslebord til rådighed"
}
}
]
@@ -406,7 +438,8 @@
"fr": "Où se situe la table à langer ?",
"nl": "Waar bevindt de luiertafel zich?",
"it": "Dove si trova il fasciatoio?",
- "es": "¿Dónde está el cambiador?"
+ "es": "¿Dónde está el cambiador?",
+ "da": "Hvor er puslebordet placeret?"
},
"render": {
"en": "The changing table is located at {changing_table:location}",
@@ -414,7 +447,8 @@
"fr": "Emplacement de la table à langer : {changing_table:location}",
"nl": "De luiertafel bevindt zich in {changing_table:location}",
"it": "Il fasciatoio si trova presso {changing_table:location}",
- "es": "El cambiador está en {changing_table:location}"
+ "es": "El cambiador está en {changing_table:location}",
+ "da": "Puslebordet er placeret på {changing_table:location}"
},
"condition": "changing_table=yes",
"freeform": {
@@ -428,7 +462,8 @@
"de": "Der Wickeltisch befindet sich in der Damentoilette. ",
"fr": "La table à langer est dans les toilettes pour femmes. ",
"nl": "De luiertafel bevindt zich in de vrouwentoiletten ",
- "it": "Il fasciatoio è nei servizi igienici femminili. "
+ "it": "Il fasciatoio è nei servizi igienici femminili. ",
+ "da": "Puslebordet er på toilettet til kvinder. "
},
"if": "changing_table:location=female_toilet"
},
@@ -449,7 +484,8 @@
"de": "Der Wickeltisch befindet sich in der Toilette für Rollstuhlfahrer. ",
"fr": "La table à langer est dans les toilettes pour personnes à mobilité réduite. ",
"nl": "De luiertafel bevindt zich in de rolstoeltoegankelijke toilet ",
- "it": "Il fasciatoio è nei servizi igienici per persone in sedia a rotelle. "
+ "it": "Il fasciatoio è nei servizi igienici per persone in sedia a rotelle. ",
+ "da": "Puslebordet er på toilettet for kørestolsbrugere. "
}
},
{
@@ -460,7 +496,8 @@
"fr": "La table à langer est dans un espace dédié. ",
"nl": "De luiertafel bevindt zich in een daartoe voorziene kamer ",
"it": "Il fasciatoio è in una stanza dedicata. ",
- "es": "El cambiador está en una habitación dedicada "
+ "es": "El cambiador está en una habitación dedicada ",
+ "da": "Vuggestuen står i et særligt rum. "
}
}
],
@@ -473,7 +510,8 @@
"nl": "Hebben deze toiletten een lavabo om de handen te wassen?",
"de": "Gibt es hier ein Handwaschbecken?",
"es": "¿Esto baños tienen una pileta para lavarte los baños?",
- "fr": "Ces toilettes ont-ils un lavabo pour se laver les mains ?"
+ "fr": "Ces toilettes ont-ils un lavabo pour se laver les mains ?",
+ "da": "Har disse toiletter en håndvask til at vaske hænder?"
},
"mappings": [
{
@@ -483,7 +521,8 @@
"nl": "Deze toiletten hebben een lavabo waar men de handen kan wassen",
"de": "Die Toilette hat ein Handwaschbecken",
"es": "Estos baños tienen una pileta para lavarse las manos",
- "fr": "Ces toilettes ont un lavabo pour se laver les mains"
+ "fr": "Ces toilettes ont un lavabo pour se laver les mains",
+ "da": "Dette toilet har en vask til at vaske dine hænder"
}
},
{
@@ -493,7 +532,8 @@
"nl": "Deze toiletten hebben geen lavabo waar men de handen kan wassen",
"de": "Die Toilette hat kein Handwaschbecken",
"es": "Estos baños no tienen una pileta para lavarse las manos",
- "fr": "Ces toilettes n'ont pas de lavabo pour se laver les mains"
+ "fr": "Ces toilettes n'ont pas de lavabo pour se laver les mains",
+ "da": "Disse toiletter har ikke en vask til at vaske dine hænder"
}
}
]
@@ -505,7 +545,8 @@
"nl": "Moet je je eigen toiletpapier meenemen naar deze toilet?",
"de": "Ist Toilettenpapier vorhanden?",
"es": "¿Hay que traer tu propio papel higiénico a este baño?",
- "fr": "Est-ce qu'il faut apporter son propre papier toilette ?"
+ "fr": "Est-ce qu'il faut apporter son propre papier toilette ?",
+ "da": "Skal man selv medbringe toiletpapir til dette toilet?"
},
"mappings": [
{
@@ -515,7 +556,8 @@
"nl": "Deze toilet is voorzien van toiletpapier",
"de": "Die Toilette ist in der Regel mit Toilettenpapier ausgestattet",
"es": "Este baño esta equipado con papel higiénico",
- "fr": "Ces toilettes sont équipés de papier toilette"
+ "fr": "Ces toilettes sont équipés de papier toilette",
+ "da": "Dette toilet er udstyret med toiletpapir"
}
},
{
@@ -525,7 +567,8 @@
"nl": "Je moet je eigen toiletpapier meebrengen naar deze toilet",
"de": "Die Toilette ist nicht mit Toilettenpapier ausgestattet, man muss es selbst mitbringen",
"es": "Tienes que traer tu propio papel higiénico a este baño",
- "fr": "Vous devez apporter votre propre papier toilette ici"
+ "fr": "Vous devez apporter votre propre papier toilette ici",
+ "da": "Du skal selv medbringe toiletpapir til dette toilet"
}
}
],
@@ -548,7 +591,8 @@
"nl": "Rolstoel toegankelijk",
"de": "Rollstuhlgerecht",
"es": "Accesible con sillas de ruedas",
- "fr": "Accessible aux fauteuils roulants"
+ "fr": "Accessible aux fauteuils roulants",
+ "da": "Tilgængelig for kørestolsbrugere"
},
"osmTags": {
"or": [
@@ -568,7 +612,8 @@
"nl": "Heeft een luiertafel",
"de": "Mit Wickeltisch",
"es": "Tiene un cambiador",
- "fr": "A une table à langer"
+ "fr": "A une table à langer",
+ "da": "Har et puslebord"
},
"osmTags": "changing_table=yes"
}
@@ -582,7 +627,8 @@
"en": "Free to use",
"nl": "Gratis toegankelijk",
"de": "Nutzung kostenlos",
- "fr": "Utilisation gratuite"
+ "fr": "Utilisation gratuite",
+ "da": "Gratis at bruge"
},
"osmTags": {
"or": [
@@ -603,7 +649,8 @@
"en": "Opened now",
"de": "Derzeit geöffnet",
"es": "Abierto ahora",
- "fr": "Ouvert maintenant"
+ "fr": "Ouvert maintenant",
+ "da": "Åbnet nu"
},
"osmTags": {
"or": [
@@ -670,7 +717,8 @@
"nl": "Een laag die publieke toiletten toont",
"de": "Eine Ebene mit (öffentlichen) Toiletten",
"es": "Una capa que muestra baños (públicos)",
- "fr": "Un calque montrant les toilettes (publiques)"
+ "fr": "Un calque montrant les toilettes (publiques)",
+ "da": "Et lag, der viser (offentlige) toiletter"
},
"units": [
{
@@ -687,7 +735,8 @@
"en": "meter",
"nl": "meter",
"fr": "mètre",
- "de": "Meter"
+ "de": "Meter",
+ "da": "meter"
}
},
{
@@ -700,7 +749,8 @@
"en": "centimeter",
"nl": "centimeter",
"fr": "centimètre",
- "de": "Zentimeter"
+ "de": "Zentimeter",
+ "da": "centimeter"
}
}
]
diff --git a/assets/layers/trail/trail.json b/assets/layers/trail/trail.json
index 03fac58ee4..e204135c1b 100644
--- a/assets/layers/trail/trail.json
+++ b/assets/layers/trail/trail.json
@@ -6,7 +6,8 @@
"ru": "Тропы",
"de": "Wanderwege",
"fr": "Sentiers",
- "ca": "Camins"
+ "ca": "Camins",
+ "da": "Stier"
},
"minzoom": 12,
"source": {
@@ -30,7 +31,8 @@
"ru": "Тропа",
"de": "Wanderweg",
"fr": "Sentier",
- "ca": "Camí"
+ "ca": "Camí",
+ "da": "Sti"
},
"mappings": [
{
@@ -47,7 +49,8 @@
"en": "The trail is {_length:km} kilometers long",
"nl": "Deze wandeling is {_length:km} kilometer lang",
"de": "Der Wanderweg ist {_length:km} Kilometer lang",
- "fr": "Le sentier fait {_length:km} kilomètres de long"
+ "fr": "Le sentier fait {_length:km} kilomètres de long",
+ "da": "Stien er {_length:km} kilometer lang"
}
},
{
@@ -123,7 +126,8 @@
"nl": "Blauwe wandeling",
"en": "Blue trail",
"de": "Blauer Weg",
- "fr": "Sentier bleu"
+ "fr": "Sentier bleu",
+ "da": "Blå sti"
}
},
{
@@ -132,7 +136,8 @@
"nl": "Rode wandeling",
"en": "Red trail",
"de": "Roter Weg",
- "fr": "Sentier rouge"
+ "fr": "Sentier rouge",
+ "da": "Rød sti"
}
},
{
@@ -141,7 +146,8 @@
"nl": "Groene wandeling",
"en": "Green trail",
"de": "Grüner Weg",
- "fr": "Sentier vert"
+ "fr": "Sentier vert",
+ "da": "Grøn sti"
}
},
{
@@ -150,7 +156,8 @@
"nl": "Gele wandeling",
"en": "Yellow trail",
"de": "Gelber Weg",
- "fr": "Sentier jaune"
+ "fr": "Sentier jaune",
+ "da": "Gul sti"
}
}
],
diff --git a/assets/layers/transit_routes/transit_routes.json b/assets/layers/transit_routes/transit_routes.json
index b0a66e60eb..ee2be25d7e 100644
--- a/assets/layers/transit_routes/transit_routes.json
+++ b/assets/layers/transit_routes/transit_routes.json
@@ -3,12 +3,14 @@
"name": {
"en": "Bus lines",
"de": "Buslinien",
- "nl": "Buslijnen"
+ "nl": "Buslijnen",
+ "da": "Buslinjer"
},
"description": {
"en": "Layer showing bus lines",
"de": "Ebene mit Buslinien",
- "nl": "Laag met buslijnen"
+ "nl": "Laag met buslijnen",
+ "da": "Lag, der viser buslinjer"
},
"source": {
"osmTags": {
@@ -23,14 +25,16 @@
"render": {
"en": "Bus line",
"de": "Buslinie",
- "nl": "Buslijn"
+ "nl": "Buslijn",
+ "da": "Buslinje"
},
"mappings": [
{
"if": "name~*",
"then": {
"en": "{name}",
- "de": "{name}"
+ "de": "{name}",
+ "da": "{name}"
}
}
]
@@ -40,7 +44,8 @@
"color": {
"render": {
"en": "#ff0000",
- "de": "#ff0000"
+ "de": "#ff0000",
+ "da": "#ff0000"
},
"mappings": [
{
@@ -76,12 +81,14 @@
"render": {
"en": "This bus line begins at {from}",
"de": "Die Buslinie startet von {from}",
- "nl": "Deze buslijn begint bij {from}"
+ "nl": "Deze buslijn begint bij {from}",
+ "da": "Denne buslinje starter kl. {from}"
},
"question": {
"en": "What is the starting point for this bus line?",
"de": "Wo ist der Startpunkt dieser Buslinie?",
- "nl": "Wat is het beginpunt van deze buslijn?"
+ "nl": "Wat is het beginpunt van deze buslijn?",
+ "da": "Hvad er udgangspunktet for denne buslinje?"
}
},
{
@@ -94,7 +101,8 @@
"render": {
"en": "This bus line goes via {via}",
"de": "Die Buslinie fährt über {via}",
- "nl": "Deze buslijn gaat via {via}"
+ "nl": "Deze buslijn gaat via {via}",
+ "da": "Denne buslinje går via {via}"
},
"question": {
"en": "What is the via point for this bus line?",
@@ -112,12 +120,14 @@
"render": {
"en": "This bus line ends at {to}",
"de": "Der Endpunkt der Buslinie ist {to}",
- "nl": "Deze buslijn eindigt bij {to}"
+ "nl": "Deze buslijn eindigt bij {to}",
+ "da": "Denne buslinje slutter ved {to}"
},
"question": {
"en": "What is the ending point for this bus line?",
"de": "Wo ist der Endpunkt der Buslinie?",
- "nl": "Wat is het eindpunt van deze buslijn?"
+ "nl": "Wat is het eindpunt van deze buslijn?",
+ "da": "Hvad er endestationen for denne buslinje?"
}
},
{
@@ -129,12 +139,14 @@
"render": {
"en": "This bus line has the color {colour}",
"de": "Die Buslinie hat die Farbe {colour}",
- "nl": "Deze buslijn heeft de kleur {colour}"
+ "nl": "Deze buslijn heeft de kleur {colour}",
+ "da": "Denne buslinje har farven {colour}"
},
"question": {
"en": "What is the colour for this bus line?",
"de": "Welche Farbe hat diese Buslinie?",
- "nl": "Wat is de kleur van deze buslijn?"
+ "nl": "Wat is de kleur van deze buslijn?",
+ "da": "Hvad er farven på denne buslinje?"
}
},
{
@@ -151,7 +163,8 @@
"question": {
"en": "What network does this bus line belong to?",
"de": "Zu welchem Verkehrsverbund gehört die Buslinie?",
- "nl": "Bij welk netwerk hoort deze buslijn?"
+ "nl": "Bij welk netwerk hoort deze buslijn?",
+ "da": "Hvilket netværk tilhører denne buslinje?"
}
},
{
@@ -163,12 +176,14 @@
"render": {
"en": "This bus line is operated by {operator}",
"de": "Die Buslinie wird betrieben von {operator}",
- "nl": "Deze buslijn wordt geëxploiteerd door {operator}"
+ "nl": "Deze buslijn wordt geëxploiteerd door {operator}",
+ "da": "Denne buslinje drives af {operator}"
},
"question": {
"en": "What company operates this bus line?",
"de": "Welches Unternehmen betreibt die Buslinie?",
- "nl": "Welk bedrijf exploiteert deze buslijn?"
+ "nl": "Welk bedrijf exploiteert deze buslijn?",
+ "da": "Hvilket selskab driver denne buslinje?"
}
}
]
diff --git a/assets/layers/transit_stops/transit_stops.json b/assets/layers/transit_stops/transit_stops.json
index 2bc3e2f68b..47b48f6f79 100644
--- a/assets/layers/transit_stops/transit_stops.json
+++ b/assets/layers/transit_stops/transit_stops.json
@@ -2,11 +2,13 @@
"id": "transit_stops",
"name": {
"en": "Transit Stops",
- "de": "Haltestellen"
+ "de": "Haltestellen",
+ "da": "Transitstationer"
},
"description": {
"en": "Layer showing different types of transit stops.",
- "de": "Ebene mit verschiedenen Arten von Haltestellen."
+ "de": "Ebene mit verschiedenen Arten von Haltestellen.",
+ "da": "Lag, der viser forskellige typer transitstop."
},
"source": {
"osmTags": {
@@ -19,14 +21,16 @@
"title": {
"render": {
"en": "Transit Stop",
- "de": "Haltestelle"
+ "de": "Haltestelle",
+ "da": "Transit Stop"
},
"mappings": [
{
"if": "name~*",
"then": {
"en": "Stop {name}",
- "de": "Haltestelle {name}"
+ "de": "Haltestelle {name}",
+ "da": "Stop {name}"
}
}
]
@@ -56,7 +60,8 @@
"id": "stop_name",
"render": {
"en": "This stop is called {name}",
- "de": "Der Name der Haltestelle lautet {name}"
+ "de": "Der Name der Haltestelle lautet {name}",
+ "da": "Dette stop hedder {name}"
},
"freeform": {
"key": "name",
@@ -66,7 +71,8 @@
],
"placeholder": {
"en": "Name of the stop",
- "de": "Name der Haltestelle"
+ "de": "Name der Haltestelle",
+ "da": "Navn på stoppestedet"
}
},
"mappings": [
@@ -79,13 +85,15 @@
},
"then": {
"en": "This stop has no name",
- "de": "Die Haltestelle hat keinen Namen"
+ "de": "Die Haltestelle hat keinen Namen",
+ "da": "Dette stop har intet navn"
}
}
],
"question": {
"en": "What is the name of this stop?",
- "de": "Wie lautet der Name der Haltestelle?"
+ "de": "Wie lautet der Name der Haltestelle?",
+ "da": "Hvad er navnet på dette stop?"
},
"placeholder": "Name of the stop"
},
@@ -97,14 +105,16 @@
"if": "shelter=yes",
"then": {
"en": "This stop has a shelter",
- "de": "Die Haltestelle hat einen Unterstand"
+ "de": "Die Haltestelle hat einen Unterstand",
+ "da": "Dette stop har et ly"
}
},
{
"if": "shelter=no",
"then": {
"en": "This stop does not have a shelter",
- "de": "Die Haltestelle hat keinen Unterstand"
+ "de": "Die Haltestelle hat keinen Unterstand",
+ "da": "Dette stop har ikke et ly"
}
},
{
@@ -118,7 +128,8 @@
],
"question": {
"en": "Does this stop have a shelter?",
- "de": "Hat die Haltestelle einen Unterstand?"
+ "de": "Hat die Haltestelle einen Unterstand?",
+ "da": "Har dette stop et ly?"
}
},
{
@@ -128,14 +139,16 @@
"if": "bench=yes",
"then": {
"en": "This stop has a bench",
- "de": "Die Haltestelle hat eine Bank"
+ "de": "Die Haltestelle hat eine Bank",
+ "da": "Dette stop har en bænk"
}
},
{
"if": "bench=no",
"then": {
"en": "This stop does not have a bench",
- "de": "Die Haltestelle hat keine Bank"
+ "de": "Die Haltestelle hat keine Bank",
+ "da": "Dette stoppested har ingen bænk"
}
},
{
@@ -149,7 +162,8 @@
],
"question": {
"en": "Does this stop have a bench?",
- "de": "Gibt es an der Haltestelle eine Sitzbank?"
+ "de": "Gibt es an der Haltestelle eine Sitzbank?",
+ "da": "Har dette stop en bænk?"
}
},
{
@@ -159,14 +173,16 @@
"if": "bin=yes",
"then": {
"en": "This stop has a bin",
- "de": "Die Haltestelle hat einen Mülleimer"
+ "de": "Die Haltestelle hat einen Mülleimer",
+ "da": "Dette stop har en skraldespand"
}
},
{
"if": "bin=no",
"then": {
"en": "This stop does not have a bin",
- "de": "Die Haltestelle hat keinen Mülleimer"
+ "de": "Die Haltestelle hat keinen Mülleimer",
+ "da": "Dette stoppested har ikke en skraldespand"
}
},
{
@@ -180,7 +196,8 @@
],
"question": {
"en": "Does this stop have a bin?",
- "de": "Hat die Haltestelle einen Mülleimer?"
+ "de": "Hat die Haltestelle einen Mülleimer?",
+ "da": "Har dette stop en skraldespand?"
}
},
"wheelchair-access",
@@ -221,7 +238,8 @@
"if": "lit=no",
"then": {
"en": "This stop is not lit",
- "de": "Die Haltestelle ist nicht beleuchtet"
+ "de": "Die Haltestelle ist nicht beleuchtet",
+ "da": "Dette stop lyser ikke"
}
}
],
@@ -237,7 +255,8 @@
"if": "departures_board=yes",
"then": {
"en": "This stop has a departures board of unknown type",
- "de": "Die Haltestelle hat einen Fahrplan, der nicht näher definiert ist"
+ "de": "Die Haltestelle hat einen Fahrplan, der nicht näher definiert ist",
+ "da": "Dette stoppested har en afgangstavle af ukendt type"
},
"hideInAnswer": true
},
@@ -245,14 +264,16 @@
"if": "departures_board=realtime",
"then": {
"en": "This stop has a board showing realtime departure information",
- "de": "Die Haltestelle hat einen Fahrplan, der Abfahrtszeiten in Echtzeit anzeigt"
+ "de": "Die Haltestelle hat einen Fahrplan, der Abfahrtszeiten in Echtzeit anzeigt",
+ "da": "Dette stop har en tavle med oplysninger om afgang i realtid"
}
},
{
"if": "passenger_information_display=yes",
"then": {
"en": "This stop has a board showing realtime departure information",
- "de": "Die Haltestelle hat einen Fahrplan, der Abfahrtszeiten in Echtzeit anzeigt"
+ "de": "Die Haltestelle hat einen Fahrplan, der Abfahrtszeiten in Echtzeit anzeigt",
+ "da": "Dette stop har en tavle med oplysninger om afgang i realtid"
},
"hideInAnswer": true
},
@@ -260,21 +281,24 @@
"if": "departures_board=timetable",
"then": {
"en": "This stop has a timetable showing regular departures",
- "de": "Die Haltestelle hat einen Fahrplan, der die regulären Abfahrtszeiten anzeigt"
+ "de": "Die Haltestelle hat einen Fahrplan, der die regulären Abfahrtszeiten anzeigt",
+ "da": "Dette stop har en køreplan, der viser regelmæssige afgange"
}
},
{
"if": "departures_board=interval",
"then": {
"en": "This stop has a timetable containing just the interval between departures",
- "de": "Die Haltestelle hat einen Fahrplan, der den Abstand zwischen Abfahrten anzeigt"
+ "de": "Die Haltestelle hat einen Fahrplan, der den Abstand zwischen Abfahrten anzeigt",
+ "da": "Dette stop har en køreplan, der kun indeholder intervallet mellem afgangene"
}
},
{
"if": "departures_board=no",
"then": {
"en": "This stop does not have a departures board",
- "de": "Die Haltestelle hat keinen Fahrplan"
+ "de": "Die Haltestelle hat keinen Fahrplan",
+ "da": "Dette stop har ikke en afgangstavle"
}
}
]
@@ -282,7 +306,8 @@
{
"render": {
"en": "
Utilisable et éditable librement. Une seule et unique plateforme regroupant toutes les informations géographiques ? Toutes ces différentes cartes isolées, incompatibles et obsolètes ne sont plus utiles.
OpenStreetMap n’est pas un énième concurrent. Toutes les données de cette carte peuvent être utilisé librement (avec attribution et publication des changements de données). De plus tout le monde est libre d'ajouter de nouvelles données et corriger les erreurs. Ce site utilise également OpenStreetMap. Toutes les données en proviennent et tous les ajouts et modifications y seront également ajoutés.
De nombreux individus et applications utilisent déjà OpenStreetMap : Maps.me, OsmAnd, mais aussi les cartes de Facebook, Instagram, Apple Maps et Bing Maps sont (en partie) alimentées par OpenStreetMap
", @@ -194,8 +200,10 @@ "websiteOf": "Quel est le site internet de {category} ?" }, "readYourMessages": "Merci de lire tous vos messages sur OpenStreetMap avant d'ajouter un nouveau point.", + "removeLocationHistory": "Supprimer l'historique des positions", "returnToTheMap": "Retourner sur la carte", "save": "Sauvegarder", + "screenToSmall": "Ouvrir {theme} dans une nouvelle fenêtre", "search": { "error": "Quelque chose n'a pas marché…", "nothing": "Rien n'a été trouvé…", @@ -205,6 +213,8 @@ "sharescreen": { "addToHomeScreen": "所有資料由開放街圖提供,在開放資料庫授權條款之下自由再利用。
", "attributionTitle": "署名通知", "codeContributionsBy": "MapComplete 是由 {contributors} 和其他 {hiddenCount} 位貢獻者構建而成", + "donate": "財務上支援 MapComplete", + "editId": "開啟開放街圖線上編輯器", + "editJosm": "採用 JOSM 編輯", + "followBridge": "已經連結 Mastodon 與 Twitter 帳號", + "followOnMastodon": "在 Mastodon 追蹤 MapComplete", + "followOnTwitter": "在 Twitter 追蹤 MapComplete", "iconAttribution": { "title": "使用的圖示" }, + "josmNotOpened": "無法連到 JOSM,請確認 JOSM 已經開啟並且啟用遠端控制選項", + "josmOpened": "已經開啟 JOSM", "mapContributionsBy": "目前檢視的資料由 {contributors} 貢獻編輯", "mapContributionsByAndHidden": "目前顯到的資料是由 {contributors} 和其他 {hiddenCount} 位貢獻者編輯貢獻", - "themeBy": "由 {author} 維護主題", - "editJosm": "採用 JOSM 編輯", - "josmOpened": "已經開啟 JOSM", - "openMapillary": "開啟 Mapillary", - "donate": "財務上支援 MapComplete", - "editId": "開啟開放街圖線上編輯器", + "mapillaryHelp": "線上服務 Mapillary 能夠以開放授權提供收集到的街景照片。貢獻者能夠採用 Mapillary 照片來改進開放街圖", "openIssueTracker": "提出臭蟲報告", - "followBridge": "已經連結 Mastodon 與 Twitter 帳號", + "openMapillary": "開啟 Mapillary", "openOsmcha": "請見 {theme} 的最新編輯", - "translatedBy": "MapComplete 由 {contributors} 翻譯,而且還有 {hiddenCount} 更多貢獻者", - "josmNotOpened": "無法連到 JOSM,請確認 JOSM 已經開啟並且啟用遠端控制選項", - "followOnTwitter": "在 Twitter 追蹤 MapComplete", - "followOnMastodon": "在 Mastodon 追蹤 MapComplete", - "mapillaryHelp": "線上服務 Mapillary 能夠以開放授權提供收集到的街景照片。貢獻者能夠採用 Mapillary 照片來改進開放街圖" + "themeBy": "由 {author} 維護主題", + "translatedBy": "MapComplete 由 {contributors} 翻譯,而且還有 {hiddenCount} 更多貢獻者" }, + "back": "回去", + "backToMapcomplete": "回到主題總覽", "backgroundMap": "背景地圖", "cancel": "取消", "confirm": "確認", @@ -104,48 +110,59 @@ "downloadAsPdf": "下載目前地圖的 PDF 檔", "downloadAsPdfHelper": "列印當前地圖相當理想", "downloadAsSvg": "下載當前地圖的 SVG", + "downloadAsSvgHelper": "與 Inkscape 或是 Adobe Illustrator 相容,仍需要進一步的處理 ", "downloadCSV": "下載可視資料為 CSV", "downloadCSVHelper": "與 LibreOffice Calc、Excel 等相容", - "downloadGeoJsonHelper": "與 QGIS、ArcGIS、ESRI 等相容", - "downloadGeojson": "下載可視資料為 GeoJSON", - "exporting": "匯出…", - "includeMetaData": "包括 metadata (上次編輯者、計算數值等)", - "title": "下載可視的資料", - "noDataLoaded": "還未載入資料,之後能夠下載。", "downloadFeatureAsGeojson": "下載為 GeoJSON 檔案", "downloadFeatureAsGpx": "下載為 GPX 檔案", - "licenseInfo": "如果有一份地圖,任何人都能使用與自由編輯,單一的地圖能夠儲存所有地理相關資訊。不同的、範圍小的,不相容甚至過時不再被需要的地圖。
開放街圖不是敵人的地圖,人人都能自由使用這些圖資, (只要署名與公開變動這資料)。任何人都能新增新資料與修正錯誤,這些網站也用開放街圖,資料也都來自開放街圖,你的答案與修正也會加被用到/p>
許多人與應用程式已經採用開放街圖了:Organic Maps、OsmAnd,還有 Facebook、Instagram,蘋果地圖、Bing 地圖(部分)採用開放街圖。
", @@ -154,6 +171,7 @@ "closed_permanently": "不清楚關閉多久了", "closed_until": "{date} 起關閉", "error_loading": "錯誤:無法視覺化開放時間。", + "loadingCountry": "決定國家…", "not_all_rules_parsed": "這間店的開放時間相當複雜,在輸入元素時忽略接下來的規則:", "openTill": "結束時間", "open_24_7": "24小時營業", @@ -162,7 +180,6 @@ "ph_closed": "無營業", "ph_not_known": " ", "ph_open": "有營業", - "loadingCountry": "決定國家…", "ph_open_as_usual": "如同先前狀況開啟" }, "osmLinkTooltip": "在開放街圖歷史和更多編輯選項下面來瀏覽這物件", @@ -173,6 +190,7 @@ "versionInfo": "v{version} - {date} 產生的" }, "pickLanguage": "選擇語言: ", + "poweredByOsm": "由開放街圖資料驅動", "questions": { "emailIs": "{category} 的電子郵件地址是{email}", "emailOf": "{category} 的電子郵件地址是?", @@ -182,8 +200,10 @@ "websiteOf": "{category} 的網站網址是?" }, "readYourMessages": "請先閱讀開放街圖訊息之前再來新增新圖徵。", + "removeLocationHistory": "刪除位置歷史", "returnToTheMap": "回到地圖", "save": "儲存", + "screenToSmall": "在新視窗開啟 {theme}", "search": { "error": "有狀況發生了…", "nothing": "沒有找到…", @@ -193,6 +213,8 @@ "sharescreen": { "addToHomeScreen": "{cmd}
時出現錯誤",
+ "commandNotFound": "我無法理解你的請求,你也許意思是類別 {0}、{1}、{2} 或 {2}? Type help
來查看所有指令
help
來察看所有指令",
+ "docs": "執行指令然後傳送輸出結果給別人",
+ "executing": "執行{_}
然後結果給 {to}…",
+ "failed": "我因為 {message} 無法執行 {cmd}
",
+ "noDm": "我無法與 {to} 創建房間",
+ "receipt": "我傳送訊息給 {to}",
+ "selectValidCommand": "指定有效的指令",
+ "selectValidUser": "執定有效的目標使用者",
+ "sendReason": "我傳給你這個訊息是因為 {sender} 要求我以 {cmd}
傳送"
+ },
+ "documentation": {
+ "argid": "{list} 或是 {list_end} 編號需要文件,另外,撰寫 {coded_list} 的其中一個來察看能用的編號。",
+ "didYouMean": "你的意思是",
+ "docs": "取得關於 MapComplete 圖層、主題或是網站參數的文件",
+ "file": {
+ "plural": "檔案",
+ "singular": "檔案"
+ },
+ "inputElement": {
+ "plural": "輸入元素",
+ "singular": "輸入元素"
+ },
+ "layer": {
+ "plural": "圖層",
+ "singular": "圖層"
+ }
+ },
+ "wiki": {
+ "searching": "在 {backend} 搜尋…"
+ }
+ },
+ "decryptionFailed": "抱歉,我無法解碼你的訊息,請先離開頻道然後再次連線",
+ "noSufficientRights": "這個指令只有管理員或使用者角色才有的權限",
+ "subcommanNotFound": "我無法理解你的請求,這個指令需要動詞才能執行,但是 {verb}
不是我們所知道的動詞,但我知道動詞 {known_verbs}",
+ "subcommandNotGiven": "我無法理解你的要求,這個指令需要動詞才能執行,但你沒有說,請試一個 {known_verbs}",
+ "tooLongForPublic": "抱歉,這個指令對公開房間太長 - 請傳送私訊給我代替"
+ },
+ "move": {
+ "cancel": "取消動作",
+ "cannotBeMoved": "這個圖徵無法移動。",
+ "confirmMove": "移動到這裡",
+ "inviteToMove": {
+ "generic": "移動這個點",
+ "reasonInaccurate": "改進這個點的精確度",
+ "reasonRelocation": "移動這個物件到其他地方,因為已經搬遷了"
+ },
+ "inviteToMoveAgain": "再次移動這個點",
+ "isRelation": "這個圖徵是關聯並無法被移除",
+ "isWay": "這個圖徵是路徑,請用其他開放街圖編輯器來移動。",
+ "loginToMove": "你必須登入才能移動點",
+ "moveTitle": "移動這個點",
+ "partOfAWay": "這個圖徵是其他路徑的一部分,請用其他編輯器來移動。",
+ "partOfRelation": "這個圖徵是關聯的一部分,請用其他編輯器來移動。",
+ "pointIsMoved": "這個點已經被移動了",
+ "reasons": {
+ "reasonInaccurate": "這個物件的位置並不準確,應該移動個幾公尺"
+ },
+ "selectReason": "為什麼你移動這個物件?",
+ "whyMove": "為什麼你想要移動這個點?",
+ "zoomInFurther": "放更大來確認移動"
+ },
+ "multi_apply": {
+ "autoApply": "當改變屬性 {attr_names} 時,這些屬性也會自動 {count} 套用到其他物件"
+ },
+ "notes": {
+ "addAComment": "新增評論",
+ "addComment": "新增評論",
+ "addCommentAndClose": "新增評論並且關閉",
+ "addCommentPlaceholder": "新增評論…",
+ "anonymous": "暱名用戶",
+ "closeNote": "關閉註解",
+ "createNote": "新增新註解",
+ "createNoteIntro": "地圖有什麼錯誤或缺漏的嗎?這裡新增註解,之後會由志工來檢查。",
+ "createNoteTitle": "在這裡新增註解",
+ "disableAllNoteFilters": "關閉所有篩選",
+ "isClosed": "這個註解已經解決了",
+ "isCreated": "你的註解已經創建了!",
+ "loginToAddComment": "登入來新增評論",
+ "loginToAddPicture": "登入來新增圖片",
+ "loginToClose": "登入來關閉註解",
+ "noteIsPublic": "這大家都看得到",
+ "noteLayerDoEnable": "啟用圖層來顯示註解",
+ "noteLayerHasFilters": "有些註解會被篩選掉而隱藏",
+ "noteLayerNotEnabled": "顯示註解的圖層無法啟用,這個圖層必須啟用才能新增註解",
+ "notesLayerMustBeEnabled": "'notes' 圖層已經關閉,請啟用來新增註解",
+ "reopenNote": "再開啟註解",
+ "reopenNoteAndComment": "再開啟註解與評論",
+ "textNeeded": "輸入描述性的文字來新增註解",
+ "typeText": "輸入些文字來新增評論",
+ "warnAnonymous": "你還未登入,我們無法聯繫你來解決你的問題。"
+ },
+ "privacy": {
+ "editing": "當你對地圖變動時,這些變動會存在開放街圖並且是公開給所有人。採用 MapComplete 的編輯變動包括以下資料:在開放街圖開啟資料,你也許會想要使用這些資料。你的 MapComplete 主題能有個方便匯出按鈕,能夠在 QGis、ArcGis、Excel、LibreOffce-calc 等開啟的多種開放格式
。只要有基本的試算表技巧就能相當簡單製作資料圖表與洞察,而你組織的 GIS 專家則能用他們習慣的應用程式處理資料。如果你需要自動設定,也有免費使用,社群維護的 API 能夠使用。", + "title": "在內部流程使用資料" + }, + "layers": { + "intro": "
MapComplete 有相當強大的模版系統,能夠快速顯示你想要顯示的圖徵,以及在跳出視窗中出現相關的屬性。
資料則是直接從開放街圖截取,但是 MapComplete 也可以採用外部資料集 - 例如為了比較開放街圖與其他資料集,或是顯示不適合用在開放街的資料 (計畫的活動、統計等)", + "title": "那些資料能夠顯示在 MapComplete?" + }, + "survey": { + "intro": "
MapComplete 是相當易用的踏查工具,能夠在桌面以及行動裝置上都能點幾下來收集必要的資料。收集到的資料會直接進到開放街圖資料庫裡。
我們能設定客製化的踏查工具,詢問精確的資料來證明。
你有資料集想要(重新)踏查嗎?這是相當完美時間來切換到開放街圖。MapComplete 能夠同時顯示你的資料集與開放街圖資料,更為方便造訪所有地點,以及察看社群已經貢獻了什麼。\n", + "title": "踏查可能性" + }, + "text0": "如果有既有的 MapComplete 主題,直接使用或是內嵌到你的網站,內嵌公共主題是免費的,而且一直都會是免費。", + "text1": "你需要其他資料,但該主題還沒有存在嗎?MapComplete 開發者能夠以適當的成本為你建造。請以email、github或是在 osm.org 寄送訊息", + "text2": "如果你仍然不確定,可能性仍然在那邊。除此之外,有些共同的問題已經解答了", + "title": "在你的組織使用 MapComplete" + }, + "aboutOsm": { + "aboutOsm": { + "intro": "開放街圖是個由志工打造,分享、全球性的資料庫。所有地理資料都能貢獻到開放街圖,只要他們一直以實地能夠證實。例如說,你可以依據開放街圖上的長椅資料,建某個地方一個有所有長椅的地圖。這份印刷地圖必須清楚標示地圖資料來自開放街圖。你可以販售這份地圖。如果地圖繪製者意識到一些區域長椅有缺漏,然後加到地圖上,遺漏的長椅的資料也會自動變成開放資料。這意味著開放街圖貢獻者允許能夠用紙本地圖,然後新增遺漏的長椅到開放街圖。
貢獻者也有權利要求缺漏長椅的資料集,也應當一併提供。
如果地圖製造者注意到有些地方遺漏長椅然後加到紙本地圖,遺漏長椅的資料也自動成為開放資料。這意味著開放街圖貢獻者能拿著紙本地圖,然後將遺漏的長椅加到開放街圖。這個貢獻者也可以要求資料集加上遺漏的長椅,也應當提供。
當然,只有長椅的地圖很無聊,地圖製作者也可以加有商家的圖層,也許是其他地理資料提供者以其他授權方式適出的資料。這是允許的,如果地圖清楚表示長椅從 OSM 來的 (以ODBL釋出),商家則有不同來源 (最終是保留所有權利)。
然而,將兩份資料集混成一份無法區分的圖層並不被允許。例如說,地圖製作者發現 OSM 在一部分城市的長椅資料相當好,而閉源提供者則是在城市其他部分有相當好的資料,那混合這些資料將會出問題:
", + "li0": "開放授權意味著變動將被開放發佈…", + "li1": "...即更是所有權利保留的授權條款都會阻止這件事情。", + "outro": "結果來說,這種混合方式並不允許", + "title": "從不同來源創建地圖" + } + }, + "title": "有些缺點要謹記在心", + "unsuitedData": { + "intro": "開放街圖的基本規則是所有資料必須能夠在地驗證,而且 還是永久的。這意味著有些資料無法直接傳送到開放街圖 - 但還是存在繞過的方式。", + "li0": "主觀性資料 (像是評論) 並不適合開放街圖。然而,MapComplete 整合開放授權的評論網站Mangrove.review", + "li1": "活動不能記錄,只存在幾天的道路活動也不能記錄。", + "li2": "時間性資料 (例如空氣品質統計、交通狀況,...) 無法儲存到開放街圖,因為無法以志工力量來核實。注意,如果其他地方有資料的話,仍然有可能透過在 MapComplete 的額外圖層來視覺化。", + "title": "資料類型並不適合開放街圖" + } + }, + "indexPage": { + "button": "發現我們的服務", + "hook": "需要專業支援嗎?", + "hookMore": "我們能協助建立踏查,資料匯入與開放街圖顧問服務" + }, + "intro": "MapComplete 開發者提供專業支援,這份文件列出幾種可能性,常見問題與 MapComplete 的範圍", + "osmTitle": "開放街圖與 MapComplete 可以為你的組織做什麼?", + "services": { + "intro": "MapComplete 的開發者能協助以下服務:", + "li0": "設定符合你需求的主題", + "li1": "幫助設定內部資料流程來整合開放街圖", + "li2": "訓練怎麼用 MapComplete 來貢獻資料", + "li3": "進階訓練 (例如針對 GIS 團隊) 如何新增進階資料到開放街圖", + "li4": "訓練怎麼從開放街圖下載篩選過的資料", + "outro": "這些服務以相當有競爭性的價格來提供,單純設立主題不用額外支援的話只要 €2000,以及小額的每年託管服務價錢。", + "title": "MapComplete 服務" + }, + "text0": "維護一份即時的地理資料相當難,會有錯而且昂貴。
而讓事情更糟的是,許多組織最後獨自收集相同的資料 - 導致重覆效率,非標準化的資料格式與不完整,無法維護的資料集。
而在同一時間,有個相當龐大的社群收集很多地理資料,變成一個分享、全球性而且標準化的資料庫 - 被叫做 OpenStreetMap.org。
", + "text1": "MapComplete 是讓貢獻資料到開放街圖更簡單的編輯器。
", + "title": "MapComplete 的專業服務" }, "reviews": { "affiliated_reviewer_warning": "(關係者審核)", @@ -343,299 +694,50 @@ "split": "分開", "splitTitle": "請在地圖選擇要在那裡分割道路" }, - "importHelper": { - "confirmProcess": { - "titleLong": "你已經完成匯入的程序嗎?", - "readImportGuidelines": "我已經閱讀過 OSM wiki 的匯入指南了", - "wikipageIsMade": "匯入程序已經記錄到 OSM-wiki (之後你會需要這個連結)", - "licenseIsCompatible": "要雇入的資料其授權允許其被匯入 OSM,這資料能夠在商業上被再發散佈,只要最低限制的署名", - "contactedCommunity": "你需要聯繫 (在地) 社群告知這次匯入", - "title": "授權與社群" - }, - "title": "匯入幫手", - "askMetadata": { - "giveSource": "這個資料的來源是那邊?如果圖徵已經加了 'source',則填入的值會被忽略", - "intro": "在新增 {count} 註解之前,請提供更多額外資訊。", - "giveDescription": "請為看到註解的人撰寫簡短的描述,好的註解能夠描述貢獻者想做什麼,例如說這裡可能有長椅,如果你在附近的話,可以檢查或是確認是否存在? (連到 MapComplete 的連結會自動加上去)", - "shouldBeUrl": "無效的網址", - "shouldBeOsmWikilink": "預期會有連到 wiki.openstreetmap.org 的連結", - "downloadGeojson": "下載 GeoJSON", - "orDownload": "另外的方式,你可以下載資料集來直接匯入", - "shouldNotBeHomepage": "沒有,首頁也並不允許,請輸入適當記錄匯入的 wiki 頁面連結", - "giveWikilink": "在那個 wiki 頁面能找到這次匯入的資訊?", - "title": "設定 metadata" - }, - "compareToAlreadyExistingNotes": { - "nothingNearby": "預計的點附近沒有匯入的註解", - "titleLong": "與既有存在的 'to-import' 註解比對", - "mapExplanation": "在下一份地圖的紅色元素全都是你的資料集的資料點,你的資料集總共有 {length} 元素。", - "someNearby": "{hasNearby} 點已經在附近 {distance} 公尺有存在匯入的註解", - "wontBeImported": "這些資料點不會匯入,而且會在下面的地圖以紅點顯示", - "completelyImported": "所有的計畫點都已經有匯入註解了", - "loading": "從 OSM 取得註解", - "title": "與既有的註解比對", - "loadingFailed": "因為 {error} 無法載入註解", - "noPreviousNotesFound": "沒有找到先前匯入的註解" - }, - "createNotes": { - "done": "所有 {count} 註解都已經新增了!", - "loading": "當載入時稍候", - "openImportViewer": "在 'import_viewer' 檢視你的註解進度", - "title": "註解創建", - "creating": "{total} 的註解新增 {count}" - }, - "gotoImportViewer": "檢視你先前的匯入", - "login": { - "lockNotice": "這一頁已經鎖住,你需要 {importHelperUnlock} 變動集之前,才能在這邊連結。", - "loginIsCorrect": "{name} 是目前創建匯入註解的正確帳號。", - "loginRequired": "你必須登入來繼續", - "userAccountTitle": "選擇用戶帳號", - "title": "登入", - "loggedInWith": "你目前以 {name} 登入,目前已經有 {csCount} 編輯變動" - }, - "noteParts": { - "wikilink": "關於這次匯入的資訊你可以在這邊找到 {wikilink}", - "importEasily": "用 MapComplete 簡單增加這個點:", - "datasource": "從 {source} 來的原始資料" - }, - "previewAttributes": { - "inspectDataTitle": "{count} 圖徵檢視資料來匯入", - "inspectLooksCorrect": "這些值看來是正確的", - "allAttributesSame": "所有要匯入的圖徵都有這個標籤", - "someHaveSame": "要匯入的 {count} 圖徵有這個標籤,這是全部當中的 {percentage}%", - "title": "檢視屬性" - }, - "selectFile": { - "errNoLatOrLon": "檔頭不含 `lat` 或是 `lon`", - "errNotFeatureCollection": "載入的 JSON 檔案不是 geojson 圖徵集合", - "errPointsOnly": "載入 JSON 檔案應當只含有節點", - "fileFormatDescription": "選擇 .csv 或是 .geojson 檔案", - "title": "選擇檔案", - "errDuplicate": "有些欄位有相同的名字", - "fileFormatDescriptionGeoJson": "在 geojson 檔案中,只有點應當被呈現,屬性應當是進入開放街圖的那些屬性", - "noFilesLoaded": "目前沒有載入檔案", - "loadedFilesAre": "目前載入的檔案是 {file}", - "description": "選擇 .csv 或是 .geojson 檔案來開始", - "fileFormatDescriptionCsv": "在 CSV 檔案中,應當有個欄位有以 WGS84 格式的座標 lat 和 lon ,另外應當有額外的欄位有所有屬性。", - "errNoName": "有些欄位並沒有名字" - }, - "selectTheme": { - "displayNonMatchingCount": "{length} 物件沒有符合任何預置", - "intro": "所有相關主題會顯示匯入註解,然而開放街圖的註解只能連到單一主題,選擇創建的註解連到那個主題", - "misMatch": "有鍵 {k} 的屬性沒有預期的值 {v};然而是 {properties}", - "notApplicable": "預置 {title} 不適用:", - "unmatchedTitle": "下列元素沒有符合任何預置", - "missing": "預期 {k}={v},但完全遺失了", - "noMatchingPresets": "這個主題沒有載入預置,因此,匯入不會作用", - "needsTags": "{title} 需要標籤 {tags}", - "title": "選擇主題" - }, - "testMode": "測試模式 - 不會真的匯入註解", - "conflationChecker": { - "reloadTheCache": "清除快取並且再次檢索 Overpass", - "nearbyWarn": "地圖上的 {count} 紅色元素不會被匯入!", - "zoomIn": "目前的縮放層級是 {current}", - "titleLive": "OSM 上的即時資料", - "osmLoaded": "從開放街圖載入符合圖層 {name} 的元素 {count}。", - "title": "與既有資料比對", - "titleNearby": "附近的圖徵", - "importCandidatesCount": "接下來的地圖上的 {count} 紅色元素全都是你匯入的候選物件。", - "states": { - "running": "檢索 overpass…", - "error": "因為 Overpass 的 {error} 而無法載入最新資料", - "idle": "檢查本機空間…", - "unexpected": "未預期的狀態 {state}" - }, - "loadedDataAge": "從快取載入資料,而且存在 {age}", - "cacheExpired": "快取已經失效了", - "downloadOverpassData": "下載從 overpass 載入的 GeoJSON", - "mapShowingNearbyIntro": "接下來的地圖顯示要匯入的圖徵當中,裡面已經有 OSM 圖徵 ", - "nothingLoaded": "從開放街圖沒有戴入符合目前圖層 {name} 的元素", - "setRangeToZero": "如果你要匯入全部資料請設定 0 或 1 的範圍" - }, - "introduction": { - "description": "匯入幫手轉換外部資料集變成註解,外部資料集必須符合既有的 MapComplete 圖層。對於每一個你放入匯入器的項目來說,每一個會產生單一註解,這些註解會在相關的圖徵一起顯示,來更容易在地圖上新增。", - "importFormat": "註解當中的文字會以下列的格式來顯示並且被挑選", - "title": "介紹" - }, - "mapPreview": { - "mismatch": "{count} 圖徵並不符合選取的圖層,確定使用的標籤是現在,正確名稱的 {tags}", - "selectLayer": "那個圖層符合這次匯入?", - "title": "地圖預覽", - "confirm": "圖徵在地圖上正確的位置", - "autodetected": "圖層會自動依據屬性來扣除" - } - }, - "privacy": { - "surveillance": "你會閱讀隱私政策,你大概相當在意隱私 - 所以我們也是!我們甚至製作 主題地圖顯示監視器。如果在意就繪製這些圖徵吧!", - "trackingTitle": "統計資料", - "miscCookiesTitle": "其他 cookies", - "whileYoureHere": "你在意隱私嗎?", - "miscCookies": "MapComplete 整合多項服務,特別是載入圖徵的圖片。圖片是放在多個第三方服務供應商,也許會有他們自己的 cookies。", - "editing": "當你對地圖變動時,這些變動會存在開放街圖並且是公開給所有人。採用 MapComplete 的編輯變動包括以下資料:在開放街圖開啟資料,你也許會想要使用這些資料。你的 MapComplete 主題能有個方便匯出按鈕,能夠在 QGis、ArcGis、Excel、LibreOffce-calc 等開啟的多種開放格式
。只要有基本的試算表技巧就能相當簡單製作資料圖表與洞察,而你組織的 GIS 專家則能用他們習慣的應用程式處理資料。如果你需要自動設定,也有免費使用,社群維護的 API 能夠使用。" - }, - "layers": { - "intro": "
MapComplete 有相當強大的模版系統,能夠快速顯示你想要顯示的圖徵,以及在跳出視窗中出現相關的屬性。
資料則是直接從開放街圖截取,但是 MapComplete 也可以採用外部資料集 - 例如為了比較開放街圖與其他資料集,或是顯示不適合用在開放街的資料 (計畫的活動、統計等)", - "title": "那些資料能夠顯示在 MapComplete?" - }, - "survey": { - "intro": "
MapComplete 是相當易用的踏查工具,能夠在桌面以及行動裝置上都能點幾下來收集必要的資料。收集到的資料會直接進到開放街圖資料庫裡。
我們能設定客製化的踏查工具,詢問精確的資料來證明。
你有資料集想要(重新)踏查嗎?這是相當完美時間來切換到開放街圖。MapComplete 能夠同時顯示你的資料集與開放街圖資料,更為方便造訪所有地點,以及察看社群已經貢獻了什麼。\n", - "title": "踏查可能性" - }, - "text0": "如果有既有的 MapComplete 主題,直接使用或是內嵌到你的網站,內嵌公共主題是免費的,而且一直都會是免費。" - }, - "aboutOsm": { - "benefits": { - "title": "加入開放街圖生態系的好處", - "li0": "你在收集與維謢資料集的路途並不孤單 - 整個社群也是如此", - "li2": "許多政府組織與地方政府也在他們的網站使用開放街圖", - "intro": "也許很難放棄你自己的資料集,因為建造這份資料集花了相當多時間與精力。例如說,你可以依據開放街圖上的長椅資料,建某個地方一個有所有長椅的地圖。這份印刷地圖必須清楚標示地圖資料來自開放街圖。你可以販售這份地圖。如果地圖繪製者意識到一些區域長椅有缺漏,然後加到地圖上,遺漏的長椅的資料也會自動變成開放資料。這意味著開放街圖貢獻者允許能夠用紙本地圖,然後新增遺漏的長椅到開放街圖。
貢獻者也有權利要求缺漏長椅的資料集,也應當一併提供。
如果地圖製造者注意到有些地方遺漏長椅然後加到紙本地圖,遺漏長椅的資料也自動成為開放資料。這意味著開放街圖貢獻者能拿著紙本地圖,然後將遺漏的長椅加到開放街圖。這個貢獻者也可以要求資料集加上遺漏的長椅,也應當提供。
當然,只有長椅的地圖很無聊,地圖製作者也可以加有商家的圖層,也許是其他地理資料提供者以其他授權方式適出的資料。這是允許的,如果地圖清楚表示長椅從 OSM 來的 (以ODBL釋出),商家則有不同來源 (最終是保留所有權利)。
然而,將兩份資料集混成一份無法區分的圖層並不被允許。例如說,地圖製作者發現 OSM 在一部分城市的長椅資料相當好,而閉源提供者則是在城市其他部分有相當好的資料,那混合這些資料將會出問題:
", - "li0": "開放授權意味著變動將被開放發佈…", - "li1": "...即更是所有權利保留的授權條款都會阻止這件事情。", - "title": "從不同來源創建地圖" - }, - "li2": "所有含有開放街圖資料的資料集或產品,必須採用 ODbL 來重新發佈,包括這份資料集的變動與可使用的格式。", - "intro": "開放街圖資料採用開放資料庫授權,必須聲明:", - "title": "ODbL 的應用:一些使用例子" - }, - "unsuitedData": { - "title": "資料類型並不適合開放街圖", - "li0": "主觀性資料 (像是評論) 並不適合開放街圖。然而,MapComplete 整合開放授權的評論網站Mangrove.review", - "intro": "開放街圖的基本規則是所有資料必須能夠在地驗證,而且 還是永久的。這意味著有些資料無法直接傳送到開放街圖 - 但還是存在繞過的方式。", - "li1": "活動不能記錄,只存在幾天的道路活動也不能記錄。", - "li2": "時間性資料 (例如空氣品質統計、交通狀況,...) 無法儲存到開放街圖,因為無法以志工力量來核實。注意,如果其他地方有資料的話,仍然有可能透過在 MapComplete 的額外圖層來視覺化。" - }, - "title": "有些缺點要謹記在心", - "intro": "當參與社群有相當大的好處,像是有幾個主題能夠好好考慮。" - }, - "indexPage": { - "button": "發現我們的服務", - "hookMore": "我們能協助建立踏查,資料匯入與開放街圖顧問服務", - "hook": "需要專業支援嗎?" - }, - "services": { - "li3": "進階訓練 (例如針對 GIS 團隊) 如何新增進階資料到開放街圖", - "title": "MapComplete 服務", - "outro": "這些服務以相當有競爭性的價格來提供,單純設立主題不用額外支援的話只要 €2000,以及小額的每年託管服務價錢。", - "li2": "訓練怎麼用 MapComplete 來貢獻資料", - "intro": "MapComplete 的開發者能協助以下服務:", - "li4": "訓練怎麼從開放街圖下載篩選過的資料", - "li0": "設定符合你需求的主題", - "li1": "幫助設定內部資料流程來整合開放街圖" - }, - "text0": "維護一份即時的地理資料相當難,會有錯而且昂貴。
而讓事情更糟的是,許多組織最後獨自收集相同的資料 - 導致重覆效率,非標準化的資料格式與不完整,無法維護的資料集。
而在同一時間,有個相當龐大的社群收集很多地理資料,變成一個分享、全球性而且標準化的資料庫 - 被叫做 OpenStreetMap.org。
", - "intro": "MapComplete 開發者提供專業支援,這份文件列出幾種可能性,常見問題與 MapComplete 的範圍", - "osmTitle": "開放街圖與 MapComplete 可以為你的組織做什麼?", - "text1": "MapComplete 是讓貢獻資料到開放街圖更簡單的編輯器。
", - "title": "MapComplete 的專業服務" - }, "translations": { "activateButton": "協助翻譯 MapComplete", - "help": "點字串旁邊的 'translate'-icon 來輸入或是更新一段文字。你需要 Weblate 帳號。用你 OSM 帳號名稱來創建帳號,並且自動解鎖翻譯模式。", - "isTranslator": "翻譯模式已經啟用,你的名字符合前一位翻譯者的名字", "allMissing": "還沒有翻譯", - "notImmediate": "翻譯不會直接更新,通常會需要幾天時間", "completeness": "{theme} 的 {language} 翻譯目前是 {percentage}%:{total} 中的 {translated} 已經翻譯了", "deactivate": "關閉翻譯按鈕", - "missing": "{count} 未翻譯字串" + "help": "點字串旁邊的 'translate'-icon 來輸入或是更新一段文字。你需要 Weblate 帳號。用你 OSM 帳號名稱來創建帳號,並且自動解鎖翻譯模式。", + "isTranslator": "翻譯模式已經啟用,你的名字符合前一位翻譯者的名字", + "missing": "{count} 未翻譯字串", + "notImmediate": "翻譯不會直接更新,通常會需要幾天時間" }, "validation": { + "color": { + "description": "顏色或是色碼" + }, "date": { "description": "日期,以年開始" }, "direction": { "description": "方向" }, + "distance": { + "description": "以公尺計算的距離" + }, "email": { "description": "email 地址", "feedback": "這不是有效的 email 地址", "noAt": "email 地址應當含有 @" }, - "nat": { - "mustBeWhole": "只有整數是允許的", - "notANumber": "輸入數字", - "description": "正數、整數或是零", - "mustBePositive": "數字應當是正數" - }, - "opening_hours": { - "description": "開放時間" - }, - "pnat": { - "description": "正數、整數", - "noZero": "並不允許零" - }, - "text": { - "description": "一段文字" - }, - "wikidata": { - "description": "Wikidata 編號" - }, "float": { - "feedback": "這不是數字", - "description": "數字" + "description": "數字", + "feedback": "這不是數字" }, "int": { "description": "全部的數字" }, - "url": { - "description": "連接到網站", - "feedback": "這不是有效的網址" + "nat": { + "description": "正數、整數或是零", + "mustBePositive": "數字應當是正數", + "mustBeWhole": "只有整數是允許的", + "notANumber": "輸入數字" + }, + "opening_hours": { + "description": "開放時間" }, - "tooLong": "文字太長了,最多允許 255 字元,你現在還有 {count} 字元。", "pfloat": { "description": "正數" }, @@ -643,125 +745,23 @@ "description": "電話號碼", "feedback": "這不是有效的電話號碼" }, - "color": { - "description": "顏色或是色碼" + "pnat": { + "description": "正數、整數", + "noZero": "並不允許零" }, "string": { "description": "一段文字" }, - "distance": { - "description": "以公尺計算的距離" + "text": { + "description": "一段文字" + }, + "tooLong": "文字太長了,最多允許 255 字元,你現在還有 {count} 字元。", + "url": { + "description": "連接到網站", + "feedback": "這不是有效的網址" + }, + "wikidata": { + "description": "Wikidata 編號" } - }, - "move": { - "inviteToMove": { - "generic": "移動這個點", - "reasonRelocation": "移動這個物件到其他地方,因為已經搬遷了", - "reasonInaccurate": "改進這個點的精確度" - }, - "inviteToMoveAgain": "再次移動這個點", - "isRelation": "這個圖徵是關聯並無法被移除", - "moveTitle": "移動這個點", - "selectReason": "為什麼你移動這個物件?", - "whyMove": "為什麼你想要移動這個點?", - "confirmMove": "移動到這裡", - "cannotBeMoved": "這個圖徵無法移動。", - "isWay": "這個圖徵是路徑,請用其他開放街圖編輯器來移動。", - "cancel": "取消動作", - "loginToMove": "你必須登入才能移動點", - "zoomInFurther": "放更大來確認移動", - "partOfAWay": "這個圖徵是其他路徑的一部分,請用其他編輯器來移動。", - "partOfRelation": "這個圖徵是關聯的一部分,請用其他編輯器來移動。", - "reasons": { - "reasonInaccurate": "這個物件的位置並不準確,應該移動個幾公尺" - }, - "pointIsMoved": "這個點已經被移動了" - }, - "notes": { - "closeNote": "關閉註解", - "isClosed": "這個註解已經解決了", - "addAComment": "新增評論", - "addCommentAndClose": "新增評論並且關閉", - "anonymous": "暱名用戶", - "disableAllNoteFilters": "關閉所有篩選", - "noteLayerHasFilters": "有些註解會被篩選掉而隱藏", - "reopenNoteAndComment": "再開啟註解與評論", - "typeText": "輸入些文字來新增評論", - "warnAnonymous": "你還未登入,我們無法聯繫你來解決你的問題。", - "textNeeded": "輸入描述性的文字來新增註解", - "noteIsPublic": "這大家都看得到", - "addComment": "新增評論", - "noteLayerDoEnable": "啟用圖層來顯示註解", - "notesLayerMustBeEnabled": "'notes' 圖層已經關閉,請啟用來新增註解", - "loginToAddPicture": "登入來新增圖片", - "reopenNote": "再開啟註解", - "createNoteTitle": "在這裡新增註解", - "isCreated": "你的註解已經創建了!", - "noteLayerNotEnabled": "顯示註解的圖層無法啟用,這個圖層必須啟用才能新增註解", - "createNoteIntro": "地圖有什麼錯誤或缺漏的嗎?這裡新增註解,之後會由志工來檢查。", - "loginToAddComment": "登入來新增評論", - "loginToClose": "登入來關閉註解", - "addCommentPlaceholder": "新增評論…", - "createNote": "新增新註解" - }, - "importLayer": { - "popupTitle": "這裡可能有 {title}", - "layerName": "可能的 {title}", - "importButton": "import_button({layerId}, _tags, 我在這邊發現 {title} - 新增到地圖,./assets/svg/addSmall.svg,,,id)", - "alreadyMapped": "{title} 已經在地圖上了 - 這個點重覆了", - "description": "能夠為 {title} 匯入項目的圖層", - "notFound": "我無法找到 {title} - 移除吧", - "importHandled": "{verb}
不是我們所知道的動詞,但我知道動詞 {known_verbs}",
- "subcommandNotGiven": "我無法理解你的要求,這個指令需要動詞才能執行,但你沒有說,請試一個 {known_verbs}",
- "tooLongForPublic": "抱歉,這個指令對公開房間太長 - 請傳送私訊給我代替",
- "commands": {
- "documentation": {
- "layer": {
- "singular": "圖層",
- "plural": "圖層"
- },
- "file": {
- "plural": "檔案",
- "singular": "檔案"
- },
- "inputElement": {
- "singular": "輸入元素",
- "plural": "輸入元素"
- },
- "didYouMean": "你的意思是",
- "argid": "{list} 或是 {list_end} 編號需要文件,另外,撰寫 {coded_list} 的其中一個來察看能用的編號。",
- "docs": "取得關於 MapComplete 圖層、主題或是網站參數的文件"
- },
- "dm": {
- "receipt": "我傳送訊息給 {to}",
- "noDm": "我無法與 {to} 創建房間",
- "argto": "要傳送輸出結果的編號",
- "sendReason": "我傳給你這個訊息是因為 {sender} 要求我以 {cmd}
傳送",
- "failed": "我因為 {message} 無法執行 {cmd}
",
- "executing": "執行{_}
然後結果給 {to}…",
- "selectValidCommand": "指定有效的指令",
- "argbody": "指令的實際指令本文",
- "docs": "執行指令然後傳送輸出結果給別人",
- "commandNotFound": "命令 {key} 沒有找到 - help
來察看所有指令",
- "selectValidUser": "執定有效的目標使用者"
- },
- "wiki": {
- "searching": "在 {backend} 搜尋…"
- }
- },
- "commandNotFound": "我無法理解你的請求,你也許意思是類別 {0}、{1}、{2} 或 {2}? Type help
來查看所有指令
{cmd}
時出現錯誤",
- "noSufficientRights": "這個指令只有管理員或使用者角色才有的權限",
- "decryptionFailed": "抱歉,我無法解碼你的訊息,請先離開頻道然後再次連線"
- },
- "multi_apply": {
- "autoApply": "當改變屬性 {attr_names} 時,這些屬性也會自動 {count} 套用到其他物件"
- },
- "importInspector": {
- "title": "檢視與管理匯入註解"
}
}
diff --git a/package.json b/package.json
index 56a4b554f8..ac73b7572c 100644
--- a/package.json
+++ b/package.json
@@ -52,7 +52,7 @@
"weblate-add-upstream": "git remote add weblate-github git@github.com:weblate/MapComplete.git",
"weblate-fix": "git remote update weblate-github; git merge weblate-github/weblate-mapcomplete-core; git merge weblate-github/weblate-mapcomplete-layers; git merge weblate-github/weblate-mapcomplete-layer-translations",
"weblate-fix-heavy": "git remote rm weblate-layers; git remote add weblate-layers https://hosted.weblate.org/git/mapcomplete/layers/; git remote update weblate-layers; git merge weblate-layers/master",
- "housekeeping": "npm run generate && npm run generate:docs && npm run generate:contributor-list && npm run format && git add *.ts && git add Docs/* && git commit assets/ langs/ Docs/ -m 'Housekeeping...'",
+ "housekeeping": "npm run generate && npm run generate:docs && npm run generate:contributor-list && npm run format && git add assets/ langs/ Docs/ **/*.ts Docs/* && git commit -m 'Housekeeping...'",
"parseSchools": "ts-node scripts/schools/amendSchoolData.ts",
"steal": "ts-node scripts/thieves/stealLanguages.ts"
},