diff --git a/Docs/Misc/gen.sh b/Docs/Misc/gen.sh
new file mode 100755
index 000000000..8304eee24
--- /dev/null
+++ b/Docs/Misc/gen.sh
@@ -0,0 +1,2 @@
+
+dot -Tps geolocation_button.gv -Tsvg -O
diff --git a/Docs/Misc/geolocation_button.gv b/Docs/Misc/geolocation_button.gv
new file mode 100644
index 000000000..3881519e4
--- /dev/null
+++ b/Docs/Misc/geolocation_button.gv
@@ -0,0 +1,22 @@
+digraph G {
+ init [shape=box]
+ denied
+ init -> denied [label="geolocation permanently denied"]
+ init -> getting_location [label="previously granted flag set"]
+ init -> idle [label="previously granted flag unset"]
+ idle
+ idle -> request_permission [label="on click"]
+ request_permission
+ request_permission -> getting_location [label="granted (sets flag)"]
+ request_permission -> idle [label="not granted"]
+ request_permission -> denied [label="permanently denied"]
+ getting_location
+ location_found
+ getting_location -> location_found [label="location found"]
+ location_found -> open_lock [label="on click (zooms to location)"]
+ open_lock
+ open_lock -> location_found [label="after 3 sec"]
+ closed_lock
+ open_lock -> closed_lock [label="on click (locks zoom to location)"]
+ closed_lock -> location_found [label="on click"]
+}
diff --git a/Docs/Misc/geolocation_button.gv.svg b/Docs/Misc/geolocation_button.gv.svg
new file mode 100644
index 000000000..6dbf78848
--- /dev/null
+++ b/Docs/Misc/geolocation_button.gv.svg
@@ -0,0 +1,145 @@
+
+
+
+
+
diff --git a/Logic/Actors/AvailableBaseLayersImplementation.ts b/Logic/Actors/AvailableBaseLayersImplementation.ts
index 5d7116381..09f5cfe42 100644
--- a/Logic/Actors/AvailableBaseLayersImplementation.ts
+++ b/Logic/Actors/AvailableBaseLayersImplementation.ts
@@ -175,7 +175,7 @@ export default class AvailableBaseLayersImplementation implements AvailableBaseL
// Note: if layer.geometry is null, there is global coverage for this layer
layers.push({
id: props.id,
- max_zoom: props.max_zoom ?? 25,
+ max_zoom: props.max_zoom ?? 19,
min_zoom: props.min_zoom ?? 1,
name: props.name,
layer: leafletLayer,
diff --git a/assets/layers/charging_station/charging_station.json b/assets/layers/charging_station/charging_station.json
index 7b44e0a11..054d6a7b7 100644
--- a/assets/layers/charging_station/charging_station.json
+++ b/assets/layers/charging_station/charging_station.json
@@ -27,7 +27,8 @@
"ja": "充電ステーション",
"nb_NO": "Ladestasjon",
"ru": "Зарядная станция",
- "zh_Hant": "充電站"
+ "zh_Hant": "充電站",
+ "de": "Ladestation"
}
},
"description": {
@@ -42,115 +43,91 @@
"tagRenderings": [
"images",
{
- "id": "Type",
+ "id": "plugs-15",
"question": {
- "en": "Which vehicles are allowed to charge here?",
- "de": "Welche Fahrzeuge dürfen hier geladen werden?"
- },
- "multiAnswer": true,
- "mappings": [
- {
- "if": "bicycle=yes",
- "ifnot": "bicycle=no",
- "then": {
- "en": "bicycles can be charged here",
- "de": "Fahrräder können hier geladen werden"
- }
- },
- {
- "if": "motorcar=yes",
- "ifnot": "motorcar=no",
- "then": {
- "en": "Cars can be charged here",
- "de": "Autos können hier geladen werden"
- }
- },
- {
- "if": "scooter=yes",
- "ifnot": "scooter=no",
- "then": {
- "en": "Scooters can be charged here",
- "de": " Roller können hier geladen werden"
- }
- },
- {
- "if": "hgv=yes",
- "ifnot": "hgv=no",
- "then": {
- "en": "Heavy good vehicles (such as trucks) can be charged here",
- "de": "Lastkraftwagen (LKW) können hier geladen werden"
- }
- },
- {
- "if": "bus=yes",
- "ifnot": "bus=no",
- "then": {
- "en": "Buses can be charged here",
- "de": "Busse können hier geladen werden"
- }
- }
- ]
- },
- {
- "id": "access",
- "question": {
- "en": "Who is allowed to use this charging station?",
- "de": "Wer darf diese Ladestation benutzen?"
+ "en": "How much plugs of type
Bosch Active Connect with 5 pins and cable
are available here?",
+ "nl": "Hoeveel stekkers van type
Bosch Active Connect met 5 pinnen aan een kabel
heeft dit oplaadpunt?"
},
"render": {
- "en": "Access is {access}",
- "de": "Zugang ist {access}"
+ "en": "There are {socket:bosch_5pin} plugs of type
Bosch Active Connect with 5 pins and cable
available here",
+ "nl": "Hier zijn {socket:bosch_5pin} stekkers van het type
Bosch Active Connect met 5 pinnen aan een kabel
"
},
"freeform": {
- "key": "access",
- "addExtraTags": [
- "fixme=Freeform field used for access - doublecheck the value"
- ]
- },
- "mappings": [
- {
- "if": "access=yes",
- "then": "Anyone can use this charging station (payment might be needed)"
- },
- {
- "if": {
- "or": [
- "access=permissive",
- "access=public"
- ]
- },
- "then": "Anyone can use this charging station (payment might be needed)",
- "hideInAnswer": true
- },
- {
- "if": "access=customers",
- "then": "Only customers of the place this station belongs to can use this charging station E.g. a charging station operated by hotel which is only usable by their guests "
- },
- {
- "if": "access=private",
- "then": "Not accessible to the general public (e.g. only accessible to the owners, employees, ...)"
- }
- ]
- },
- {
- "id": "capacity",
- "render": {
- "en": "{capacity} vehicles can be charged here at the same time",
- "nl": "{capacity} voertuigen kunnen hier op hetzelfde moment opgeladen worden",
- "de": "{capacity} Fahrzeuge können hier gleichzeitig geladen werden"
- },
- "question": {
- "en": "How much vehicles can be charged here at the same time?",
- "nl": "Hoeveel voertuigen kunnen hier opgeladen worden?",
- "de": "Wie viele Fahrzeuge können hier gleichzeitig geladen werden?"
- },
- "freeform": {
- "key": "capacity",
+ "key": "socket:bosch_5pin",
"type": "pnat"
+ },
+ "condition": {
+ "and": [
+ "socket:bosch_5pin~*",
+ "socket:bosch_5pin!=0"
+ ]
}
},
{
- "id": "$$$"
+ "id": "voltage-15",
+ "question": {
+ "en": "What voltage do the plugs with
Bosch Active Connect with 5 pins and cable
offer?",
+ "nl": "Welke spanning levert de stekker van type
heeft een spanning van {socket:bosch_5pin:voltage} volt"
+ },
+ "freeform": {
+ "key": "socket:bosch_5pin:voltage",
+ "type": "pfloat"
+ },
+ "mappings": [],
+ "condition": {
+ "and": [
+ "socket:bosch_5pin~*",
+ "socket:bosch_5pin!=0"
+ ]
+ }
+ },
+ {
+ "id": "current-15",
+ "question": {
+ "en": "What current do the plugs with
Bosch Active Connect with 5 pins and cable
offer?",
+ "nl": "Welke stroom levert de stekker van type
Bosch Active Connect met 5 pinnen aan een kabel
?"
+ },
+ "render": {
+ "en": "
Bosch Active Connect with 5 pins and cable
outputs at most {socket:bosch_5pin:current}A",
+ "nl": "
Bosch Active Connect met 5 pinnen aan een kabel
levert een stroom van maximaal {socket:bosch_5pin:current}A"
+ },
+ "freeform": {
+ "key": "socket:bosch_5pin:current",
+ "type": "pfloat"
+ },
+ "mappings": [],
+ "condition": {
+ "and": [
+ "socket:bosch_5pin~*",
+ "socket:bosch_5pin!=0"
+ ]
+ }
+ },
+ {
+ "id": "power-output-15",
+ "question": {
+ "en": "What power output does a single plug of type
Bosch Active Connect with 5 pins and cable
offer?",
+ "nl": "Welk vermogen levert een enkele stekker van type
Bosch Active Connect met 5 pinnen aan een kabel
?"
+ },
+ "render": {
+ "en": "
Bosch Active Connect with 5 pins and cable
outputs at most {socket:bosch_5pin:output}",
+ "nl": "
Bosch Active Connect met 5 pinnen aan een kabel
levert een vermogen van maximaal {socket:bosch_5pin:output}"
+ },
+ "freeform": {
+ "key": "socket:bosch_5pin:output",
+ "type": "pfloat"
+ },
+ "mappings": [],
+ "condition": {
+ "and": [
+ "socket:bosch_5pin~*",
+ "socket:bosch_5pin!=0"
+ ]
+ }
},
{
"id": "Authentication",
@@ -606,69 +583,6 @@
]
}
],
- "mapRendering": [
- {
- "location": [
- "point",
- "centroid"
- ],
- "icon": {
- "render": "pin:#fff;./assets/themes/charging_stations/plug.svg",
- "mappings": [
- {
- "if": "bicycle=yes",
- "then": "pin:#fff;./assets/themes/charging_stations/bicycle.svg"
- },
- {
- "if": {
- "or": [
- "car=yes",
- "motorcar=yes"
- ]
- },
- "then": "pin:#fff;./assets/themes/charging_stations/car.svg"
- }
- ]
- },
- "iconBadges": [
- {
- "if": {
- "or": [
- "disused:amenity=charging_station",
- "operational_status=broken"
- ]
- },
- "then": "cross:#c22;"
- },
- {
- "if": {
- "or": [
- "proposed:amenity=charging_station",
- "planned:amenity=charging_station"
- ]
- },
- "then": "./assets/layers/charging_station/under_construction.svg"
- },
- {
- "if": {
- "and": [
- "bicycle=yes",
- {
- "or": [
- "motorcar=yes",
- "car=yes"
- ]
- }
- ]
- },
- "then": "circle:#fff;./assets/themes/charging_stations/car.svg"
- }
- ],
- "iconSize": {
- "render": "50,50,bottom"
- }
- }
- ],
"presets": [
{
"tags": [
@@ -1054,5 +968,68 @@
],
"eraseInvalidValues": true
}
+ ],
+ "mapRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "icon": {
+ "render": "pin:#fff;./assets/themes/charging_stations/plug.svg",
+ "mappings": [
+ {
+ "if": "bicycle=yes",
+ "then": "pin:#fff;./assets/themes/charging_stations/bicycle.svg"
+ },
+ {
+ "if": {
+ "or": [
+ "car=yes",
+ "motorcar=yes"
+ ]
+ },
+ "then": "pin:#fff;./assets/themes/charging_stations/car.svg"
+ }
+ ]
+ },
+ "iconBadges": [
+ {
+ "if": {
+ "or": [
+ "disused:amenity=charging_station",
+ "operational_status=broken"
+ ]
+ },
+ "then": "cross:#c22;"
+ },
+ {
+ "if": {
+ "or": [
+ "proposed:amenity=charging_station",
+ "planned:amenity=charging_station"
+ ]
+ },
+ "then": "./assets/layers/charging_station/under_construction.svg"
+ },
+ {
+ "if": {
+ "and": [
+ "bicycle=yes",
+ {
+ "or": [
+ "motorcar=yes",
+ "car=yes"
+ ]
+ }
+ ]
+ },
+ "then": "circle:#fff;./assets/themes/charging_stations/car.svg"
+ }
+ ],
+ "iconSize": {
+ "render": "50,50,bottom"
+ }
+ }
]
}
\ No newline at end of file
diff --git a/assets/layers/crossings/crossings.json b/assets/layers/crossings/crossings.json
index 0f7f00600..f27954b76 100644
--- a/assets/layers/crossings/crossings.json
+++ b/assets/layers/crossings/crossings.json
@@ -7,7 +7,8 @@
},
"description": {
"en": "Crossings for pedestrians and cyclists",
- "nl": "Oversteekplaatsen voor voetgangers en fietsers"
+ "nl": "Oversteekplaatsen voor voetgangers en fietsers",
+ "de": "Übergänge für Fußgänger und Radfahrer"
},
"source": {
"osmTags": {
@@ -21,7 +22,8 @@
"title": {
"render": {
"en": "Crossing",
- "nl": "Oversteekplaats"
+ "nl": "Oversteekplaats",
+ "de": "Kreuzung"
},
"mappings": [
{
diff --git a/assets/layers/cycleways_and_roads/cycleways_and_roads.json b/assets/layers/cycleways_and_roads/cycleways_and_roads.json
index f8a58aa6a..dfa9f0b95 100644
--- a/assets/layers/cycleways_and_roads/cycleways_and_roads.json
+++ b/assets/layers/cycleways_and_roads/cycleways_and_roads.json
@@ -2,7 +2,8 @@
"id": "cycleways_and_roads",
"name": {
"en": "Cycleways and roads",
- "nl": "Fietspaden, straten en wegen"
+ "nl": "Fietspaden, straten en wegen",
+ "de": "Radwege und Straßen"
},
"minzoom": 16,
"source": {
diff --git a/assets/layers/direction/direction.json b/assets/layers/direction/direction.json
index ca7b58b4c..2114615ff 100644
--- a/assets/layers/direction/direction.json
+++ b/assets/layers/direction/direction.json
@@ -5,7 +5,8 @@
"nl": "Richtingsvisualisatie",
"fr": "Visualisation de la direction",
"it": "Visualizzazione della direzione",
- "ru": "Визуализация направления"
+ "ru": "Визуализация направления",
+ "de": "Visualisierung der Richtung"
},
"minzoom": 16,
"source": {
@@ -23,7 +24,8 @@
"en": "This layer visualizes directions",
"nl": "Deze laag toont de oriëntatie van een object",
"fr": "Cette couche visualise les directions",
- "it": "Questo livello visualizza le direzioni"
+ "it": "Questo livello visualizza le direzioni",
+ "de": "Diese Ebene visualisiert Richtungen"
},
"tagRenderings": [],
"icon": {
diff --git a/assets/layers/drinking_water/drinking_water.json b/assets/layers/drinking_water/drinking_water.json
index 439579473..617650f6a 100644
--- a/assets/layers/drinking_water/drinking_water.json
+++ b/assets/layers/drinking_water/drinking_water.json
@@ -33,7 +33,8 @@
"operational_status=closed"
]
},
- "then": "close:#c33"
+ "then": "close:#c33",
+ "badge": true
}
],
"iconSize": "40,40,bottom",
diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json
index b0df677b3..0e6b5db97 100644
--- a/assets/layers/food/food.json
+++ b/assets/layers/food/food.json
@@ -35,7 +35,8 @@
"iconOverlays": [
{
"if": "opening_hours~*",
- "then": "isOpen"
+ "then": "isOpen",
+ "badge": true
},
{
"if": {
@@ -46,7 +47,8 @@
},
"then": {
"render": "circle:white;./assets/themes/fritures/Vegetarian-mark.svg"
- }
+ },
+ "badge": true
}
],
"label": {
diff --git a/assets/layers/map/map.json b/assets/layers/map/map.json
index 79e02791b..dbf28faf7 100644
--- a/assets/layers/map/map.json
+++ b/assets/layers/map/map.json
@@ -31,7 +31,8 @@
"en": "A map, meant for tourists which is permanently installed in the public space",
"nl": "Een permantent geinstalleerde kaart",
"it": "Una mappa, destinata ai turisti e che è sistemata in maniera permanente in uno spazio pubblico",
- "fr": "Une carte, destinée aux touristes, installée en permanence dans l'espace public"
+ "fr": "Une carte, destinée aux touristes, installée en permanence dans l'espace public",
+ "de": "Eine Karte, die für Touristen gedacht ist und dauerhaft im öffentlichen Raum aufgestellt ist"
},
"tagRenderings": [
"images",
diff --git a/assets/layers/observation_tower/observation_tower.json b/assets/layers/observation_tower/observation_tower.json
index d40c9b81b..39b82f4c2 100644
--- a/assets/layers/observation_tower/observation_tower.json
+++ b/assets/layers/observation_tower/observation_tower.json
@@ -3,14 +3,16 @@
"name": {
"en": "Observation towers",
"nl": "Uitkijktorens",
- "ru": "Смотровые башни"
+ "ru": "Смотровые башни",
+ "de": "Beobachtungstürme"
},
"minzoom": 8,
"title": {
"render": {
"en": "Observation tower",
"nl": "Uitkijktoren",
- "ru": "Смотровая башня"
+ "ru": "Смотровая башня",
+ "de": "Beobachtungsturm"
},
"mappings": [
{
@@ -25,7 +27,8 @@
},
"description": {
"en": "Towers with a panoramic view",
- "nl": "Torens om van het uitzicht te genieten"
+ "nl": "Torens om van het uitzicht te genieten",
+ "de": "Türme mit Panoramablick"
},
"tagRenderings": [
"images",
diff --git a/assets/layers/picnic_table/picnic_table.json b/assets/layers/picnic_table/picnic_table.json
index cf06e950b..aec396493 100644
--- a/assets/layers/picnic_table/picnic_table.json
+++ b/assets/layers/picnic_table/picnic_table.json
@@ -27,7 +27,8 @@
"nl": "Deze laag toont picnictafels",
"it": "Il livello che mostra i tavoli da picnic",
"fr": "La couche montrant les tables de pique-nique",
- "ru": "Слой, отображающий столы для пикника"
+ "ru": "Слой, отображающий столы для пикника",
+ "de": "Die Ebene zeigt Picknicktische an"
},
"tagRenderings": [
{
diff --git a/assets/layers/playground/playground.json b/assets/layers/playground/playground.json
index cf44f3723..a0156e78e 100644
--- a/assets/layers/playground/playground.json
+++ b/assets/layers/playground/playground.json
@@ -482,7 +482,8 @@
"opening_hours~*"
]
},
- "then": "isOpen"
+ "then": "isOpen",
+ "badge": true
}
],
"width": {
diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json
index 8233ce910..54d158fbb 100644
--- a/assets/layers/shops/shops.json
+++ b/assets/layers/shops/shops.json
@@ -21,7 +21,8 @@
"fr": "Magasin",
"ru": "Магазин",
"ja": "店",
- "nl": "Winkel"
+ "nl": "Winkel",
+ "de": "Geschäft"
},
"mappings": [
{
@@ -279,7 +280,8 @@
"iconOverlays": [
{
"if": "opening_hours~*",
- "then": "isOpen"
+ "then": "isOpen",
+ "badge": true
}
],
"width": {
diff --git a/assets/layers/sport_pitch/sport_pitch.json b/assets/layers/sport_pitch/sport_pitch.json
index f51e63c6f..86ddcaadc 100644
--- a/assets/layers/sport_pitch/sport_pitch.json
+++ b/assets/layers/sport_pitch/sport_pitch.json
@@ -5,7 +5,8 @@
"fr": "Terrains de sport",
"en": "Sport pitches",
"ru": "Спортивные площадки",
- "it": "Campi sportivi"
+ "it": "Campi sportivi",
+ "de": "Sportplätze"
},
"wayHandling": 1,
"minzoom": 12,
@@ -25,7 +26,8 @@
"fr": "Terrain de sport",
"en": "Sport pitch",
"ru": "Спортивная площадка",
- "it": "Campo sportivo"
+ "it": "Campo sportivo",
+ "de": "Sportplatz"
}
},
"description": {
@@ -33,7 +35,8 @@
"fr": "Un terrain de sport",
"en": "A sport pitch",
"it": "Un campo sportivo",
- "ru": "Спортивная площадка"
+ "ru": "Спортивная площадка",
+ "de": "Ein Sportplatz"
},
"tagRenderings": [
"images",
@@ -420,7 +423,8 @@
"opening_hours~*"
]
},
- "then": "isOpen"
+ "then": "isOpen",
+ "badge": true
},
{
"if": {
@@ -430,7 +434,8 @@
"access=no"
]
},
- "then": "circle:white;./assets/layers/sport_pitch/lock.svg"
+ "then": "circle:white;./assets/layers/sport_pitch/lock.svg",
+ "badge": true
}
],
"width": {
diff --git a/assets/layers/surveillance_camera/surveillance_camera.json b/assets/layers/surveillance_camera/surveillance_camera.json
index f43765388..9bb98dd5b 100644
--- a/assets/layers/surveillance_camera/surveillance_camera.json
+++ b/assets/layers/surveillance_camera/surveillance_camera.json
@@ -5,7 +5,8 @@
"nl": "Bewakingscamera's",
"ru": "Камеры наблюдения",
"fr": "Caméras de surveillance",
- "it": "Videocamere di sorveglianza"
+ "it": "Videocamere di sorveglianza",
+ "de": "Überwachungskameras"
},
"minzoom": 12,
"source": {
@@ -28,7 +29,8 @@
"nl": "Bewakingscamera",
"ru": "Камера наблюдения",
"fr": "Caméra de surveillance",
- "it": "Videocamera di sorveglianza"
+ "it": "Videocamera di sorveglianza",
+ "de": "Überwachungskamera"
}
},
"tagRenderings": [
diff --git a/assets/layers/trail/trail.json b/assets/layers/trail/trail.json
index fe3d6b84f..9f36afb2d 100644
--- a/assets/layers/trail/trail.json
+++ b/assets/layers/trail/trail.json
@@ -3,7 +3,8 @@
"name": {
"en": "Trails",
"nl": "Wandeltochten",
- "ru": "Тропы"
+ "ru": "Тропы",
+ "de": "Wanderwege"
},
"minzoom": 12,
"source": {
@@ -23,7 +24,8 @@
"render": {
"en": "Trail",
"nl": "Wandeltocht",
- "ru": "Тропа"
+ "ru": "Тропа",
+ "de": "Wanderweg"
},
"mappings": [
{
diff --git a/assets/layers/waste_basket/waste_basket.json b/assets/layers/waste_basket/waste_basket.json
index 05b19dcbe..d94a766e5 100644
--- a/assets/layers/waste_basket/waste_basket.json
+++ b/assets/layers/waste_basket/waste_basket.json
@@ -3,7 +3,8 @@
"name": {
"en": "Waste Basket",
"nl": "Vuilnisbak",
- "ru": "Контейнер для мусора"
+ "ru": "Контейнер для мусора",
+ "de": "Abfalleimer"
},
"minzoom": 17,
"source": {
@@ -17,7 +18,8 @@
"render": {
"en": "Waste Basket",
"nl": "Vuilnisbak",
- "ru": "Контейнер для мусора"
+ "ru": "Контейнер для мусора",
+ "de": "Abfalleimer"
}
},
"description": {
diff --git a/assets/tagRenderings/questions.json b/assets/tagRenderings/questions.json
index 0a9a113fe..cab25af7c 100644
--- a/assets/tagRenderings/questions.json
+++ b/assets/tagRenderings/questions.json
@@ -131,7 +131,8 @@
"en": "Is this place accessible with a wheelchair?",
"pt": "Este lugar é acessível a utilizadores de cadeiras de rodas?",
"pt_BR": "Este lugar é acessível com uma cadeira de rodas?",
- "de": "Ist dieser Ort mit einem Rollstuhl zugänglich?"
+ "de": "Ist dieser Ort mit einem Rollstuhl zugänglich?",
+ "fr": "Est-ce que cet endroit est accessible en chaise roulante ?"
},
"mappings": [
{
@@ -145,7 +146,7 @@
"en": "This place is specially adapated for wheelchair users",
"pt": "Este lugar está especialmente adaptado para utilizadores de cadeira de rodas",
"pt_BR": "Este lugar é especialmente adaptado para usuários de cadeira de rodas",
- "de": "Dieser Ort ist speziell für Rollstuhlfahrer eingerichtet."
+ "de": "Dieser Ort ist speziell für Rollstuhlfahrer eingerichtet"
}
},
{
@@ -173,7 +174,8 @@
"en": "It is possible to reach this place in a wheelchair, but it is not easy",
"pt": "É possível chegar a este local em cadeira de rodas, mas não é fácil",
"pt_BR": "É possível chegar a esse local em uma cadeira de rodas, mas não é fácil",
- "de": "Es ist möglich, diesen Ort mit einem Rollstuhl zu erreichen, aber es ist nicht einfach"
+ "de": "Es ist möglich, diesen Ort mit einem Rollstuhl zu erreichen, aber es ist nicht einfach",
+ "fr": "Il est possible d'accéder à cet endroit en chaise roulante, mais ce n'est pas facile"
}
},
{
@@ -187,7 +189,8 @@
"en": "This place is not reachable with a wheelchair",
"pt": "Este lugar não é acessível com uma cadeira de rodas",
"pt_BR": "Este lugar não é alcançável com uma cadeira de rodas",
- "de": "Dieser Ort ist nicht mit einem Rollstuhl erreichbar"
+ "de": "Dieser Ort ist nicht mit einem Rollstuhl erreichbar",
+ "fr": "Cet endroit n'est pas accessible en chaise roulante"
}
}
]
@@ -197,7 +200,8 @@
"en": "Are dogs allowed in this business?",
"nl": "Zijn honden toegelaten in deze zaak?",
"pt": "Os cães são permitidos neste estabelecimento?",
- "de": "Sind Hunde in diesem Geschäft erlaubt?"
+ "de": "Sind Hunde in diesem Geschäft erlaubt?",
+ "fr": "Est-ce que les chiens sont admis ici ?"
},
"mappings": [
{
@@ -206,7 +210,8 @@
"en": "Dogs are allowed",
"nl": "honden zijn toegelaten",
"pt": "Os cães são permitidos",
- "de": "Hunde sind erlaubt"
+ "de": "Hunde sind erlaubt",
+ "fr": "Chiens admis"
}
},
{
@@ -215,7 +220,8 @@
"en": "Dogs are not allowed",
"nl": "honden zijn niet toegelaten",
"pt": "Os cães não são permitidos",
- "de": "Hunde sind nicht erlaubt"
+ "de": "Hunde sind nicht erlaubt",
+ "fr": "Les chiens ne sont pas admis"
}
},
{
@@ -224,7 +230,8 @@
"en": "Dogs are allowed, but they have to be leashed",
"nl": "honden zijn enkel aan de leiband welkom",
"pt": "Os cães são permitidos, mas têm de ser presos pela trela",
- "de": "Hunde sind erlaubt, müssen aber angeleint sein."
+ "de": "Hunde sind erlaubt, müssen aber angeleint sein",
+ "fr": "Les chiens sont admis, mais ils doivent être tenus en laisse"
}
},
{
@@ -233,7 +240,8 @@
"en": "Dogs are allowed and can run around freely",
"nl": "honden zijn welkom en mogen vrij rondlopen",
"pt": "Os cães são permitidos e podem correr livremente",
- "de": "Hunde sind erlaubt und können frei herumlaufen"
+ "de": "Hunde sind erlaubt und können frei herumlaufen",
+ "fr": "Les chiens sont admis et peuvent circuler librement"
}
}
]
@@ -298,7 +306,8 @@
"pt": "Que métodos de pagamento são aceites aqui?",
"pt_BR": "Quais métodos de pagamento são aceitos aqui?",
"id": "Metode pembayaran manakah yang di terima disini?",
- "de": "Welche Zahlungsmethoden werden hier akzeptiert?"
+ "de": "Welche Zahlungsmethoden werden hier akzeptiert?",
+ "fr": "Quelles sont les méthodes de paiement acceptées ici ?"
},
"multiAnswer": true,
"mappings": [
@@ -311,7 +320,8 @@
"pt": "Aceitam pagamento com dinheiro aqui",
"pt_BR": "Dinheiro é aceito aqui",
"id": "Disini menerima pembayaran tunai",
- "de": "Hier wird Bargeld akzeptiert"
+ "de": "Hier wird Bargeld akzeptiert",
+ "fr": "Paiement en liquide accepté"
}
},
{
@@ -323,7 +333,8 @@
"pt": "Aceitam pagamento com cartões bancários aqui",
"pt_BR": "Cartões de pagamento são aceitos aqui",
"id": "Disini menerima pembayaran dengan kartu",
- "de": "Hier werden Zahlungskarten akzeptiert"
+ "de": "Hier werden Zahlungskarten akzeptiert",
+ "fr": "Paiement par carte accepté"
}
}
]
diff --git a/assets/themes/campersite/campersite.json b/assets/themes/campersite/campersite.json
index bbc377c63..948e68cfd 100644
--- a/assets/themes/campersite/campersite.json
+++ b/assets/themes/campersite/campersite.json
@@ -2,7 +2,7 @@
"id": "campersite",
"title": {
"en": "Campersites",
- "nl": "Kampeersite",
+ "nl": "Camperplaatsen",
"it": "Aree camper",
"ru": "Кемпинги",
"ja": "キャンプサイト",
@@ -676,39 +676,7 @@
}
}
],
- "wayHandling": 2,
- "mapRendering": [
- {
- "icon": {
- "render": "circle:white;./assets/themes/campersite/caravan.svg",
- "mappings": [
- {
- "if": {
- "and": [
- "fee=no"
- ]
- },
- "then": "circle:white;./assets/themes/campersite/caravan_green.svg"
- }
- ]
- },
- "iconSize": {
- "render": "40,40,center"
- },
- "location": [
- "point",
- "centroid"
- ]
- },
- {
- "color": {
- "render": "#00f"
- },
- "width": {
- "render": "8"
- }
- }
- ]
+ "wayHandling": 2
},
{
"id": "dumpstations",
@@ -1107,27 +1075,6 @@
"de": "Fügen Sie eine neue sanitäre Entsorgungsstation hinzu. Hier können Camper Abwasser oder chemischen Toilettenabfälle entsorgen. Oft gibt es auch Trinkwasser und Strom."
}
}
- ],
- "mapRendering": [
- {
- "icon": {
- "render": "circle:white;./assets/themes/campersite/sanitary_dump_station.svg"
- },
- "iconSize": {
- "render": "32,32,center"
- },
- "location": [
- "point"
- ]
- },
- {
- "color": {
- "render": "#00f"
- },
- "width": {
- "render": "8"
- }
- }
]
}
],
diff --git a/assets/themes/hailhydrant/hailhydrant.json b/assets/themes/hailhydrant/hailhydrant.json
index 665086669..b53683b3b 100644
--- a/assets/themes/hailhydrant/hailhydrant.json
+++ b/assets/themes/hailhydrant/hailhydrant.json
@@ -18,7 +18,8 @@
"en": "On this map you can find and update hydrants, fire stations, ambulance stations, and extinguishers in your favorite neighborhoods. \n\nYou can track your precise location (mobile only) and select layers that are relevant for you in the bottom left corner. You can also use this tool to add or edit pins (points of interest) to the map and provide additional details by answering available questions. \n\nAll changes you make will automatically be saved in the global database of OpenStreetMap and can be freely re-used by others.",
"ja": "このマップでは、お気に入りの近隣にある消火栓、消防署、救急ステーション、消火器を検索して更新できます。\n\n正確な位置を追跡し(モバイルのみ)、左下コーナーで関連するレイヤを選択できます。このツールを使用して、マップにピン(注視点)を追加または編集したり、利用可能な質問に答えることによって追加の詳細を提供することもできます。\n\nすべての変更は自動的にOpenStreetMapのグローバルデータベースに保存され、他のユーザが自由に再利用できます。",
"zh_Hant": "在這份地圖上面你可以在你喜愛的社區尋找與更新消防栓、消防隊、急救站與滅火器。\n\n你可以追蹤確切位置 (只有行動版) 以及在左下角選擇與你相關的圖層。你也可以使用這工具新增或編輯地圖上的釘子 (興趣點),以及透過回答一些問題提供額外的資訊。\n\n所有你做出的變動都會自動存到開放街圖這個全球資料庫,而且能自由讓其他人取用。",
- "fr": "Sur cette carte on trouve et met à jour les bornes incendies, extincteurs, casernes de pompiers et ambulanciers dans son quartier. Les options en haut à gauche permettent de localiser sa position (sur téléphone) et de filtrer les éléments. Il est possible d’utiliser cet outil pour ajouter et éditer les points d’intérêt de la carte et d’y ajouter des détails en répondant aux questions. Toutes les modifications sont automatiquement enregistrées dans la base de données OpenStreetMap et peuvent êtres librement réutilisées par d’autres."
+ "fr": "Sur cette carte on trouve et met à jour les bornes incendies, extincteurs, casernes de pompiers et ambulanciers dans son quartier. Les options en haut à gauche permettent de localiser sa position (sur téléphone) et de filtrer les éléments. Il est possible d’utiliser cet outil pour ajouter et éditer les points d’intérêt de la carte et d’y ajouter des détails en répondant aux questions. Toutes les modifications sont automatiquement enregistrées dans la base de données OpenStreetMap et peuvent êtres librement réutilisées par d’autres.",
+ "de": "Auf dieser Karte können Sie Hydranten, Feuerwachen, Krankenwagen und Feuerlöscher in Ihren bevorzugten Stadtvierteln finden und aktualisieren. \n\nSie können Ihren genauen Standort verfolgen (nur mobil) und in der unteren linken Ecke die für Sie relevanten Ebenen auswählen. Sie können mit diesem Tool auch Pins (Points of Interest) zur Karte hinzufügen oder bearbeiten und durch die Beantwortung verfügbarer Fragen zusätzliche Angaben machen. \n\nAlle von Ihnen vorgenommenen Änderungen werden automatisch in der globalen Datenbank von OpenStreetMap gespeichert und können von anderen frei weiterverwendet werden."
},
"language": [
"en",
@@ -26,6 +27,7 @@
"zh_Hant",
"ru",
"fr",
+ "de",
"nb_NO",
"it",
"id"
@@ -316,29 +318,7 @@
}
}
],
- "wayHandling": 2,
- "mapRendering": [
- {
- "icon": {
- "render": "./assets/themes/hailhydrant/hydrant.svg"
- },
- "iconSize": {
- "render": "20,20,center"
- },
- "location": [
- "point",
- "centroid"
- ]
- },
- {
- "color": {
- "render": "#00f"
- },
- "width": {
- "render": "8"
- }
- }
- ]
+ "wayHandling": 2
},
{
"id": "extinguisher",
@@ -455,20 +435,7 @@
}
}
],
- "wayHandling": 1,
- "mapRendering": [
- {
- "icon": {
- "render": "./assets/themes/hailhydrant/Twemoji12_1f9ef.svg"
- },
- "iconSize": {
- "render": "20,20,center"
- },
- "location": [
- "point"
- ]
- }
- ]
+ "wayHandling": 1
},
{
"id": "fire_stations",
@@ -692,28 +659,6 @@
"fr": "Une caserne de pompiers est un lieu où les pompiers et leur équipements sont situés en dehors des missions."
}
}
- ],
- "mapRendering": [
- {
- "icon": {
- "render": "./assets/themes/hailhydrant/Twemoji12_1f692.svg"
- },
- "iconSize": {
- "render": "35,35,center"
- },
- "location": [
- "point",
- "centroid"
- ]
- },
- {
- "color": {
- "render": "#c22"
- },
- "width": {
- "render": "1"
- }
- }
]
},
{
@@ -915,29 +860,7 @@
}
}
],
- "wayHandling": 2,
- "mapRendering": [
- {
- "icon": {
- "render": "./assets/themes/hailhydrant/Twemoji_1f691.svg"
- },
- "iconSize": {
- "render": "35,35,center"
- },
- "location": [
- "point",
- "centroid"
- ]
- },
- {
- "color": {
- "render": "#00f"
- },
- "width": {
- "render": "1"
- }
- }
- ]
+ "wayHandling": 2
}
],
"defaultBackgroundId": "HDM_HOT"
diff --git a/assets/themes/openwindpowermap/openwindpowermap.json b/assets/themes/openwindpowermap/openwindpowermap.json
index 10a7859fb..c7e910d48 100644
--- a/assets/themes/openwindpowermap/openwindpowermap.json
+++ b/assets/themes/openwindpowermap/openwindpowermap.json
@@ -8,11 +8,13 @@
"icon": "./assets/themes/openwindpowermap/wind_turbine.svg",
"description": {
"en": "A map for showing and editing wind turbines.",
- "fr": "Une carte indiquant les éoliennes et permettant leur édition."
+ "fr": "Une carte indiquant les éoliennes et permettant leur édition.",
+ "de": "Eine Karte zum Anzeigen und Bearbeiten von Windkraftanlagen."
},
"language": [
"en",
"fr",
+ "de",
"nl"
],
"version": "2021-06-18",
@@ -227,23 +229,6 @@
}
]
}
- ],
- "mapRendering": [
- {
- "icon": "./assets/themes/openwindpowermap/wind_turbine.svg",
- "label": {
- "mappings": [
- {
- "if": "generator:output:electricity~^[0-9]+.*[W]$",
- "then": "
{generator:output:electricity}
"
- }
- ]
- },
- "iconSize": "40, 40, bottom",
- "location": [
- "point"
- ]
- }
]
}
],
diff --git a/assets/themes/postboxes/postboxes.json b/assets/themes/postboxes/postboxes.json
index b871943ad..7cc368b83 100644
--- a/assets/themes/postboxes/postboxes.json
+++ b/assets/themes/postboxes/postboxes.json
@@ -10,7 +10,8 @@
"en": "On this map you can find and add data of post offices and post boxes. You can use this map to find where you can mail your next postcard! :) Spotted an error or is a post box missing? You can edit this map with a free OpenStreetMap account. "
},
"language": [
- "en"
+ "en",
+ "de"
],
"maintainer": "",
"icon": "./assets/themes/postboxes/postbox.svg",
@@ -79,29 +80,7 @@
"razed:amenity=post_box"
]
}
- },
- "mapRendering": [
- {
- "icon": {
- "render": "./assets/themes/postboxes/postbox.svg"
- },
- "iconSize": {
- "render": "40,40,bottom"
- },
- "location": [
- "point",
- "centroid"
- ]
- },
- {
- "color": {
- "render": "#DADADA"
- },
- "width": {
- "render": "1"
- }
- }
- ]
+ }
},
{
"id": "postoffices",
@@ -154,7 +133,8 @@
"iconOverlays": [
{
"if": "opening_hours~*",
- "then": "isOpen"
+ "then": "isOpen",
+ "badge": true
}
],
"width": {
@@ -189,34 +169,6 @@
}
]
}
- ],
- "mapRendering": [
- {
- "icon": {
- "render": "square:white;./assets/themes/postboxes/post_office.svg"
- },
- "iconBadges": [
- {
- "if": "opening_hours~*",
- "then": "isOpen"
- }
- ],
- "iconSize": {
- "render": "40,40,bottom"
- },
- "location": [
- "point",
- "centroid"
- ]
- },
- {
- "color": {
- "render": "#DADADA"
- },
- "width": {
- "render": "1"
- }
- }
]
}
]
diff --git a/assets/themes/shops/shops.json b/assets/themes/shops/shops.json
index 878225a90..a6d904a43 100644
--- a/assets/themes/shops/shops.json
+++ b/assets/themes/shops/shops.json
@@ -5,12 +5,14 @@
"fr": "Carte des magasins",
"ja": "オープン ショップ マップ",
"zh_Hant": "開放商店地圖",
- "ru": "Открыть карту магазинов"
+ "ru": "Открыть карту магазинов",
+ "de": "Freie Geschäftskarte"
},
"shortDescription": {
"en": "An editable map with basic shop information",
"fr": "Carte modifiable affichant les informations de base des magasins",
- "ja": "基本的なショップ情報を含む編集可能なマップ"
+ "ja": "基本的なショップ情報を含む編集可能なマップ",
+ "de": "Eine bearbeitbare Karte mit grundlegenden Geschäftsinformationen"
},
"description": {
"en": "On this map, one can mark basic information about shops, add opening hours and phone numbers",
@@ -24,9 +26,7 @@
"ja",
"zh_Hant",
"ru",
- "nl",
- "ca",
- "id"
+ "de"
],
"maintainer": "MapComplete",
"icon": "./assets/themes/shops/shop.svg",
diff --git a/assets/themes/sport_pitches/sport_pitches.json b/assets/themes/sport_pitches/sport_pitches.json
index 257b835a8..cf7197dd4 100644
--- a/assets/themes/sport_pitches/sport_pitches.json
+++ b/assets/themes/sport_pitches/sport_pitches.json
@@ -6,7 +6,8 @@
"en": "Sport pitches",
"ja": "スポーツ競技場",
"zh_Hant": "運動場地",
- "ru": "Спортивные площадки"
+ "ru": "Спортивные площадки",
+ "de": "Sportplätze"
},
"shortDescription": {
"nl": "Deze kaart toont sportvelden",
@@ -14,14 +15,16 @@
"en": "A map showing sport pitches",
"ja": "スポーツ競技場を示す地図",
"zh_Hant": "顯示運動場地的地圖",
- "ru": "Карта, отображающая спортивные площадки"
+ "ru": "Карта, отображающая спортивные площадки",
+ "de": "Eine Karte mit Sportplätzen"
},
"description": {
"nl": "Een sportveld is een ingerichte plaats met infrastructuur om een sport te beoefenen",
"fr": "Un terrain de sport est une zone faite pour pratiquer un sport",
"en": "A sport pitch is an area where sports are played",
"ja": "スポーツ競技場は、スポーツが行われる場所です",
- "zh_Hant": "運動場地是進行運動的地方"
+ "zh_Hant": "運動場地是進行運動的地方",
+ "de": "Ein Sportplatz ist eine Fläche, auf der Sportarten gespielt werden"
},
"language": [
"nl",
@@ -29,7 +32,8 @@
"en",
"ja",
"zh_Hant",
- "ru"
+ "ru",
+ "de"
],
"maintainer": "",
"icon": "./assets/layers/sport_pitch/table_tennis.svg",
diff --git a/assets/themes/surveillance/surveillance.json b/assets/themes/surveillance/surveillance.json
index 4663b87fb..3d5586b52 100644
--- a/assets/themes/surveillance/surveillance.json
+++ b/assets/themes/surveillance/surveillance.json
@@ -5,7 +5,8 @@
"nl": "Surveillance under Surveillance",
"ja": "監視カメラの監視",
"zh_Hant": "被監視的監視器",
- "fr": "Surveillance"
+ "fr": "Surveillance",
+ "de": "Überwachung unter Überwachung"
},
"shortDescription": {
"en": "Surveillance cameras and other means of surveillance",
@@ -13,7 +14,8 @@
"ja": "監視カメラおよびその他の監視手段",
"zh_Hant": "監視鏡頭與其他型式的監視",
"fr": "Caméras et autres dispositifs de surveillance",
- "pl": "Kamery monitorujące i inne środki nadzoru"
+ "pl": "Kamery monitorujące i inne środki nadzoru",
+ "de": "Überwachungskameras und andere Mittel zur Überwachung"
},
"description": {
"en": "On this open map, you can find surveillance cameras.",
@@ -21,7 +23,8 @@
"ja": "このオープンマップでは、監視カメラを確認できます。",
"zh_Hant": "在這份開放地圖,你可以找到監視鏡頭。",
"fr": "Cette carte indique l’emplacement des caméras de surveillance.",
- "pl": "Na tej otwartej mapie można znaleźć kamery monitoringu."
+ "pl": "Na tej otwartej mapie można znaleźć kamery monitoringu.",
+ "de": "Auf dieser offenen Karte finden Sie Überwachungskameras."
},
"language": [
"en",
@@ -29,6 +32,7 @@
"ja",
"zh_Hant",
"fr",
+ "de",
"pl"
],
"maintainer": "",
diff --git a/assets/themes/trees/trees.json b/assets/themes/trees/trees.json
index 35815969b..960367dad 100644
--- a/assets/themes/trees/trees.json
+++ b/assets/themes/trees/trees.json
@@ -8,7 +8,8 @@
"ru": "Деревья",
"ja": "樹木",
"zh_Hant": "樹木",
- "pl": "Drzewa"
+ "pl": "Drzewa",
+ "de": "Bäume"
},
"shortDescription": {
"nl": "Breng bomen in kaart",
@@ -18,7 +19,8 @@
"ja": "すべての樹木をマッピングする",
"zh_Hant": "所有樹木的地圖",
"ru": "Карта деревьев",
- "pl": "Sporządzić mapę wszystkich drzew"
+ "pl": "Sporządzić mapę wszystkich drzew",
+ "de": "Kartieren Sie alle Bäume"
},
"description": {
"nl": "Breng bomen in kaart!",
@@ -27,7 +29,8 @@
"it": "Mappa tutti gli alberi!",
"ja": "すべての樹木をマッピングします!",
"zh_Hant": "繪製所有樹木!",
- "ru": "Нанесите все деревья на карту!"
+ "ru": "Нанесите все деревья на карту!",
+ "de": "Kartieren Sie alle Bäume!"
},
"language": [
"nl",
@@ -37,7 +40,8 @@
"ru",
"ja",
"zh_Hant",
- "pl"
+ "pl",
+ "de"
],
"maintainer": "Midgard",
"icon": "./assets/themes/trees/logo.svg",
diff --git a/assets/themes/uk_addresses/uk_addresses.json b/assets/themes/uk_addresses/uk_addresses.json
index c79225b12..ad8968845 100644
--- a/assets/themes/uk_addresses/uk_addresses.json
+++ b/assets/themes/uk_addresses/uk_addresses.json
@@ -1,17 +1,21 @@
{
"id": "uk_addresses",
"title": {
- "en": "UK Addresses"
+ "en": "UK Addresses",
+ "de": "Adressen in Großbritannien"
},
"shortDescription": {
- "en": "Help to build an open dataset of UK addresses"
+ "en": "Help to build an open dataset of UK addresses",
+ "de": "Helfen Sie beim Aufbau eines offenen Datensatzes britischer Adressen"
},
"description": {
"en": "Contribute to OpenStreetMap by filling out address information",
- "nl": "Draag bij aan OpenStreetMap door adresinformatie in te vullen"
+ "nl": "Draag bij aan OpenStreetMap door adresinformatie in te vullen",
+ "de": "Tragen Sie zu OpenStreetMap bei, indem Sie Adressinformationen ausfüllen"
},
"language": [
"en",
+ "de",
"nl"
],
"maintainer": "Pieter Vander Vennet, Rob Nickerson, Russ Garrett",
@@ -108,29 +112,6 @@
}
]
}
- ],
- "mapRendering": [
- {
- "icon": {
- "render": "./assets/themes/uk_addresses/housenumber_unknown.svg",
- "mappings": [
- {
- "if": "_embedding_object:id~*",
- "then": "./assets/themes/uk_addresses/housenumber_unknown_small.svg"
- },
- {
- "if": "_imported=yes",
- "then": "./assets/themes/uk_addresses/housenumber_unknown_small.svg"
- }
- ]
- },
- "iconSize": {
- "render": "40,40,center"
- },
- "location": [
- "point"
- ]
- }
]
},
{
@@ -277,60 +258,7 @@
"then": "#ff0"
}
]
- },
- "mapRendering": [
- {
- "icon": {
- "render": "./assets/themes/uk_addresses/housenumber_ok.svg",
- "mappings": [
- {
- "if": {
- "or": [
- {
- "and": [
- "addr:housenumber=",
- "nohousenumber!=yes"
- ]
- },
- "addr:street="
- ]
- },
- "then": "./assets/themes/uk_addresses/housenumber_unknown.svg"
- }
- ]
- },
- "iconSize": {
- "render": "40,40,center"
- },
- "location": [
- "point"
- ]
- },
- {
- "color": {
- "render": "#00f",
- "mappings": [
- {
- "if": {
- "or": [
- {
- "and": [
- "addr:housenumber=",
- "nohousenumber!=yes"
- ]
- },
- "addr:street="
- ]
- },
- "then": "#ff0"
- }
- ]
- },
- "width": {
- "render": "8"
- }
- }
- ]
+ }
},
{
"id": "named_streets",
@@ -348,22 +276,7 @@
},
"width": {
"render": "0"
- },
- "mapRendering": [
- {
- "location": [
- "point"
- ]
- },
- {
- "color": {
- "render": "#ccc"
- },
- "width": {
- "render": "0"
- }
- }
- ]
+ }
}
]
}
\ No newline at end of file
diff --git a/assets/themes/waste_basket/waste_basket.json b/assets/themes/waste_basket/waste_basket.json
index b31d12d9a..370218083 100644
--- a/assets/themes/waste_basket/waste_basket.json
+++ b/assets/themes/waste_basket/waste_basket.json
@@ -7,11 +7,13 @@
},
"shortDescription": {
"en": "A map with waste baskets",
- "nl": "Een kaart met vuilnisbakken"
+ "nl": "Een kaart met vuilnisbakken",
+ "de": "Eine Karte mit Abfalleimern"
},
"description": {
"en": "On this map, you'll find waste baskets near you. If a waste basket is missing on this map, you can add it yourself",
- "nl": "Op deze kaart vind je vuilnisbakken waar je afval in kan smijten. Ontbreekt er een vuilnisbak? Dan kan je die zelf toevoegen"
+ "nl": "Op deze kaart vind je vuilnisbakken waar je afval in kan smijten. Ontbreekt er een vuilnisbak? Dan kan je die zelf toevoegen",
+ "de": "Auf dieser Karte finden Sie Abfalleimer in Ihrer Nähe. Wenn ein Abfalleimer auf dieser Karte fehlt, können Sie ihn selbst hinzufügen"
},
"language": [
"en",
diff --git a/langs/de.json b/langs/de.json
index a97714cca..214ae80e9 100644
--- a/langs/de.json
+++ b/langs/de.json
@@ -77,7 +77,7 @@
"sharescreen": {
"intro": "
Diese Karte teilen
Sie können diese Karte teilen, indem Sie den untenstehenden Link kopieren und an Freunde und Familie schicken:",
"addToHomeScreen": "
Zum Startbildschirm hinzufügen
Sie können diese Website einfach zum Startbildschirm Ihres Smartphones hinzufügen, um ein natives Gefühl zu erhalten. Klicken Sie dazu in der URL-Leiste auf die Schaltfläche 'Zum Startbildschirm hinzufügen'.",
- "embedIntro": "
Auf Ihrer Website einbetten
Bitte, betten Sie diese Karte in Ihre Website ein. Wir ermutigen Sie, es zu tun - Sie müssen nicht einmal um Erlaubnis fragen. Es ist kostenlos und wird es immer sein. Je mehr Leute sie benutzen, desto wertvoller wird sie.",
+ "embedIntro": "
Auf Ihrer Website einbetten
Bitte betten Sie diese Karte in Ihre Webseite ein. Wir ermutigen Sie, es zu tun - Sie müssen nicht einmal um Erlaubnis fragen. Es ist kostenlos und wird es immer sein. Je mehr Leute sie benutzen, desto wertvoller wird sie.",
"copiedToClipboard": "Link in die Zwischenablage kopiert",
"thanksForSharing": "Danke für das Teilen!",
"editThisTheme": "Dieses Thema bearbeiten",
diff --git a/langs/layers/de.json b/langs/layers/de.json
index b53b829ed..1e015e2b7 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -544,13 +544,6 @@
"icon": {
"render": "./assets/layers/bike_repair_station/repair_station.svg"
},
- "mapRendering": {
- "0": {
- "icon": {
- "render": "./assets/layers/bike_repair_station/repair_station.svg"
- }
- }
- },
"name": "Fahrradstationen (Reparatur, Pumpe oder beides)",
"presets": {
"0": {
@@ -694,6 +687,13 @@
}
},
"render": "Fahrradstation (Pumpe & Reparatur)"
+ },
+ "mapRendering": {
+ "0": {
+ "icon": {
+ "render": "./assets/layers/bike_repair_station/repair_station.svg"
+ }
+ }
}
},
"bike_shop": {
@@ -1085,6 +1085,23 @@
"capacity": {
"question": "Wie viele Fahrzeuge können hier gleichzeitig geladen werden?",
"render": "{capacity} Fahrzeuge können hier gleichzeitig geladen werden"
+ },
+ "website": {
+ "render": "Weitere Informationen auf {website}"
+ },
+ "ref": {
+ "render": "Die Kennziffer ist {ref}"
+ },
+ "maxstay": {
+ "render": "Die maximale Parkzeit beträgt {canonical(maxstay)}"
+ },
+ "fee/charge": {
+ "mappings": {
+ "0": {
+ "then": "Nutzung kostenlos"
+ }
+ },
+ "render": "Die Nutzung dieser Ladestation kostet {charge}"
}
},
"units": {
@@ -1095,17 +1112,110 @@
"humanSingular": " Minute"
},
"1": {
- "human": " Stunden"
+ "human": " Stunden",
+ "humanSingular": " Stunde"
},
"2": {
- "human": " Tage"
+ "human": " Tage",
+ "humanSingular": " Tag"
+ }
+ }
+ },
+ "1": {
+ "applicableUnits": {
+ "0": {
+ "human": "Volt"
+ }
+ }
+ },
+ "3": {
+ "applicableUnits": {
+ "0": {
+ "human": "Kilowatt"
+ },
+ "1": {
+ "human": "Megawatt"
}
}
}
+ },
+ "title": {
+ "render": "Ladestation"
}
},
"crossings": {
- "name": "Kreuzungen"
+ "name": "Kreuzungen",
+ "title": {
+ "mappings": {
+ "0": {
+ "then": "Ampel"
+ },
+ "1": {
+ "then": "Kreuzung mit Ampeln"
+ }
+ },
+ "render": "Kreuzung"
+ },
+ "tagRenderings": {
+ "crossing-bicycle-allowed": {
+ "mappings": {
+ "0": {
+ "then": "Radfahrer können diese Kreuzung nutzen"
+ },
+ "1": {
+ "then": "Radfahrer können diese Kreuzung nicht nutzen"
+ }
+ },
+ "question": "Können Radfahrer diese Kreuzung nutzen?"
+ },
+ "crossing-is-zebra": {
+ "mappings": {
+ "0": {
+ "then": "Dies ist ein Zebrastreifen"
+ },
+ "1": {
+ "then": "Dies ist kein Zebrastreifen"
+ }
+ },
+ "question": "Ist das ein Zebrastreifen?"
+ },
+ "crossing-tactile": {
+ "mappings": {
+ "0": {
+ "then": "An dieser Kreuzung gibt es ein Blindenleitsystem"
+ },
+ "1": {
+ "then": "Diese Kreuzung hat kein Blindenleitsystem"
+ }
+ },
+ "question": "Gibt es an dieser Kreuzung ein Blindenleitsystem?"
+ },
+ "crossing-type": {
+ "mappings": {
+ "0": {
+ "then": "Kreuzungen ohne Ampeln"
+ },
+ "1": {
+ "then": "Kreuzungen mit Ampeln"
+ },
+ "2": {
+ "then": "Zebrastreifen"
+ }
+ },
+ "question": "Was ist das für eine Kreuzung?"
+ }
+ },
+ "presets": {
+ "0": {
+ "description": "Kreuzung für Fußgänger und/oder Radfahrer",
+ "title": "Kreuzung"
+ },
+ "1": {
+ "description": "Ampel an einer Straße",
+ "title": "Ampel"
+ }
+ },
+ "description": "Übergänge für Fußgänger und Radfahrer"
},
"cycleways_and_roads": {
"title": {
@@ -1113,12 +1223,239 @@
"0": {
"then": "Radweg"
},
+ "2": {
+ "then": "Fahrradspur"
+ },
+ "3": {
+ "then": "Radweg neben der Straße"
+ },
"4": {
"then": "Fahrradstraße"
}
},
"render": "Radwege"
- }
+ },
+ "tagRenderings": {
+ "Cycleway type for a road": {
+ "mappings": {
+ "3": {
+ "then": "Hier ist ein getrennter Radweg vorhanden"
+ },
+ "4": {
+ "then": "Es gibt keinen Radweg"
+ },
+ "5": {
+ "then": "Es gibt keinen Radweg"
+ }
+ },
+ "question": "Was für ein Radweg ist hier?"
+ },
+ "Cycleway:smoothness": {
+ "mappings": {
+ "0": {
+ "then": "Geeignet für dünne Rollen: Rollerblades, Skateboard"
+ },
+ "1": {
+ "then": "Geeignet für dünne Reifen: Rennrad"
+ },
+ "6": {
+ "then": "Geeignet für Geländefahrzeuge: Traktor, ATV"
+ },
+ "7": {
+ "then": "Unpassierbar / Keine bereiften Fahrzeuge"
+ }
+ },
+ "question": "Wie eben ist dieser Radweg?"
+ },
+ "Cycleway:surface": {
+ "mappings": {
+ "0": {
+ "then": "Dieser Radweg hat keinen festen Belag"
+ },
+ "1": {
+ "then": "Dieser Radweg hat einen festen Belag"
+ },
+ "2": {
+ "then": "Der Radweg ist aus Asphalt"
+ },
+ "4": {
+ "then": "Der Radweg ist aus Beton"
+ },
+ "8": {
+ "then": "Der Radweg ist aus Holz"
+ },
+ "9": {
+ "then": "Der Radweg ist aus Schotter"
+ },
+ "10": {
+ "then": "Dieser Radweg besteht aus feinem Schotter"
+ },
+ "11": {
+ "then": "Der Radweg ist aus Kies"
+ },
+ "12": {
+ "then": "Dieser Radweg besteht aus Rohboden"
+ }
+ },
+ "render": "Der Radweg ist aus {cycleway:surface}"
+ },
+ "Is this a cyclestreet? (For a road)": {
+ "mappings": {
+ "1": {
+ "then": "Dies ist eine Fahrradstraße"
+ },
+ "2": {
+ "then": "Dies ist keine Fahrradstraße."
+ }
+ },
+ "question": "Ist das eine Fahrradstraße"
+ },
+ "Maxspeed (for road)": {
+ "mappings": {
+ "0": {
+ "then": "Die Höchstgeschwindigkeit ist 20 km/h"
+ },
+ "1": {
+ "then": "Die Höchstgeschwindigkeit ist 30 km/h"
+ },
+ "2": {
+ "then": "Die Höchstgeschwindigkeit ist 50 km/h"
+ },
+ "3": {
+ "then": "Die Höchstgeschwindigkeit ist 70 km/h"
+ },
+ "4": {
+ "then": "Die Höchstgeschwindigkeit ist 90 km/h"
+ }
+ }
+ },
+ "Surface of the road": {
+ "mappings": {
+ "1": {
+ "then": "Dieser Radweg hat einen festen Belag"
+ },
+ "2": {
+ "then": "Der Radweg ist aus Asphalt"
+ },
+ "4": {
+ "then": "Der Radweg ist aus Beton"
+ },
+ "8": {
+ "then": "Der Radweg ist aus Holz"
+ },
+ "9": {
+ "then": "Der Radweg ist aus Schotter"
+ },
+ "10": {
+ "then": "Dieser Radweg besteht aus feinem Schotter"
+ },
+ "11": {
+ "then": "Der Radweg ist aus Kies"
+ },
+ "12": {
+ "then": "Dieser Radweg besteht aus Rohboden"
+ }
+ },
+ "render": "Der Radweg ist aus {surface}"
+ },
+ "Surface of the street": {
+ "mappings": {
+ "0": {
+ "then": "Geeignet für dünne Rollen: Rollerblades, Skateboard"
+ },
+ "1": {
+ "then": "Geeignet für dünne Reifen: Rennrad"
+ },
+ "6": {
+ "then": "Geeignet für spezielle Geländewagen: Traktor, ATV"
+ },
+ "7": {
+ "then": "Unpassierbar / Keine bereiften Fahrzeuge"
+ }
+ },
+ "question": "Wie eben ist diese Straße?"
+ },
+ "cyclelan-segregation": {
+ "mappings": {
+ "3": {
+ "then": "Dieser Radweg ist getrennt durch einen Bordstein"
+ }
+ }
+ },
+ "cycleway-lane-track-traffic-signs": {
+ "mappings": {
+ "0": {
+ "then": "Vorgeschriebener Radweg "
+ },
+ "2": {
+ "then": "Getrennter Fuß-/Radweg "
+ },
+ "3": {
+ "then": "Gemeinsamer Fuß-/Radweg "
+ },
+ "4": {
+ "then": "Kein Verkehrsschild vorhanden"
+ }
+ },
+ "question": "Welches Verkehrszeichen hat dieser Radweg?"
+ },
+ "cycleway-segregation": {
+ "mappings": {
+ "3": {
+ "then": "Dieser Radweg ist getrennt durch einen Bordstein"
+ }
+ }
+ },
+ "cycleway-traffic-signs": {
+ "mappings": {
+ "0": {
+ "then": "Vorgeschriebener Radweg "
+ },
+ "2": {
+ "then": "Getrennter Fuß-/Radweg "
+ },
+ "3": {
+ "then": "Gemeinsamer Fuß-/Radweg "
+ },
+ "4": {
+ "then": "Kein Verkehrsschild vorhanden"
+ }
+ },
+ "question": "Welches Verkehrszeichen hat dieser Radweg?"
+ },
+ "cycleway-traffic-signs-D7-supplementary": {
+ "mappings": {
+ "1": {
+ "then": ""
+ },
+ "6": {
+ "then": "Kein zusätzliches Verkehrszeichen vorhanden"
+ }
+ }
+ },
+ "cycleway-traffic-signs-supplementary": {
+ "mappings": {
+ "6": {
+ "then": "Kein zusätzliches Verkehrszeichen vorhanden"
+ }
+ }
+ },
+ "is lit?": {
+ "mappings": {
+ "1": {
+ "then": "Diese Straße ist nicht beleuchtet"
+ },
+ "2": {
+ "then": "Diese Straße ist nachts beleuchtet"
+ },
+ "3": {
+ "then": "Diese Straße ist durchgehend beleuchtet"
+ }
+ },
+ "question": "Ist diese Straße beleuchtet?"
+ }
+ },
+ "name": "Radwege und Straßen"
},
"defibrillator": {
"name": "Defibrillatoren",
@@ -1141,6 +1478,9 @@
},
"3": {
"then": "Nicht für die Öffentlichkeit zugänglich (z.B. nur für das Personal, die Eigentümer, ...)"
+ },
+ "4": {
+ "then": "Nicht zugänglich, möglicherweise nur für betriebliche Nutzung"
}
},
"question": "Ist dieser Defibrillator frei zugänglich?",
@@ -1150,6 +1490,9 @@
"mappings": {
"0": {
"then": "Dies ist ein manueller Defibrillator für den professionellen Einsatz"
+ },
+ "1": {
+ "then": "Dies ist ein normaler automatischer Defibrillator"
}
},
"render": "Es gibt keine Informationen über den Gerätetyp"
@@ -1230,6 +1573,13 @@
},
"title": {
"render": "Defibrillator"
+ },
+ "icon": {
+ "mappings": {
+ "0": {
+ "then": "./assets/layers/defibrillator/aed_checked.svg"
+ }
+ }
}
},
"drinking_water": {
@@ -1253,7 +1603,15 @@
},
"Still in use?": {
"question": "Ist diese Trinkwasserstelle noch in Betrieb?",
- "render": "Der Betriebsstatus ist {operational_status"
+ "render": "Der Betriebsstatus ist {operational_status",
+ "mappings": {
+ "1": {
+ "then": "Diese Trinkwasserstelle ist kaputt"
+ },
+ "2": {
+ "then": "Diese Trinkwasserstelle wurde geschlossen"
+ }
+ }
},
"render-closest-drinking-water": {
"render": "Ein weiterer Trinkwasserbrunnen befindet sich in {_closest_other_drinking_water_distance} Meter"
@@ -1298,6 +1656,9 @@
"ghost_bike-source": {
"question": "Auf welcher Webseite kann man mehr Informationen über das Geisterrad oder den Unfall finden?",
"render": "Mehr Informationen"
+ },
+ "ghost_bike-start_date": {
+ "question": "Wann wurde dieses Geisterrad aufgestellt?"
}
},
"title": {
@@ -1361,7 +1722,8 @@
},
"title": {
"render": "Karte"
- }
+ },
+ "description": "Eine Karte, die für Touristen gedacht ist und dauerhaft im öffentlichen Raum aufgestellt ist"
},
"nature_reserve": {
"tagRenderings": {
@@ -1413,7 +1775,8 @@
},
"title": {
"render": "Picknick-Tisch"
- }
+ },
+ "description": "Die Ebene zeigt Picknicktische an"
},
"playground": {
"description": "Spielplätze",
@@ -1504,6 +1867,26 @@
},
"question": "Welche Oberfläche hat dieser Spielplatz? Wenn es mehrere gibt, wähle die am häufigsten vorkommende aus",
"render": "Die Oberfläche ist {surface}"
+ },
+ "playground-opening_hours": {
+ "mappings": {
+ "0": {
+ "then": "Zugänglich von Sonnenaufgang bis Sonnenuntergang"
+ },
+ "1": {
+ "then": "Immer zugänglich"
+ },
+ "2": {
+ "then": "Immer zugänglich"
+ }
+ },
+ "question": "Wann ist dieser Spielplatz zugänglich?"
+ },
+ "playground-min_age": {
+ "render": "Zugang nur für Kinder ab {min_age} Jahren"
+ },
+ "playground-max_age": {
+ "render": "Zugang nur für Kinder bis maximal {max_age}"
}
},
"title": {
@@ -1513,6 +1896,11 @@
}
},
"render": "Spielplatz"
+ },
+ "presets": {
+ "0": {
+ "title": "Spielplatz"
+ }
}
},
"public_bookcase": {
@@ -1617,6 +2005,15 @@
}
},
"render": "Bücherschrank"
+ },
+ "filter": {
+ "2": {
+ "options": {
+ "0": {
+ "question": "Innen oder Außen"
+ }
+ }
+ }
}
},
"toilet": {
@@ -1728,13 +2125,45 @@
},
"title": {
"render": "Toilette"
+ },
+ "filter": {
+ "0": {
+ "options": {
+ "0": {
+ "question": "Rollstuhlgerecht"
+ }
+ }
+ },
+ "1": {
+ "options": {
+ "0": {
+ "question": "Hat einen Wickeltisch"
+ }
+ }
+ },
+ "2": {
+ "options": {
+ "0": {
+ "question": "Nutzung kostenlos"
+ }
+ }
+ }
}
},
"tree_node": {
"name": "Baum",
"presets": {
+ "0": {
+ "description": "Ein Baum mit Blättern, z. B. Eiche oder Buche.",
+ "title": "Laubbaum"
+ },
+ "1": {
+ "description": "Ein Baum mit Nadeln, z. B. Kiefer oder Fichte.",
+ "title": "Nadelbaum"
+ },
"2": {
- "title": "Baum"
+ "title": "Baum",
+ "description": "Wenn Sie nicht sicher sind, ob es sich um einen Laubbaum oder einen Nadelbaum handelt."
}
},
"title": {
@@ -1744,6 +2173,54 @@
}
},
"render": "Baum"
+ },
+ "tagRenderings": {
+ "tree-decidouous": {
+ "mappings": {
+ "1": {
+ "then": "immergrüner Baum."
+ }
+ },
+ "question": "Ist dies ein Nadelbaum oder ein Laubbaum?"
+ },
+ "tree-height": {
+ "mappings": {
+ "0": {
+ "then": "Höhe: {height} m"
+ }
+ },
+ "render": "Höhe: {height}"
+ },
+ "tree-heritage": {
+ "mappings": {
+ "3": {
+ "then": "Nicht als Denkmal registriert"
+ }
+ },
+ "question": "Ist dieser Baum ein Naturdenkmal?"
+ },
+ "tree-leaf_type": {
+ "mappings": {
+ "0": {
+ "then": " Laubbaum"
+ },
+ "1": {
+ "then": " Nadelbaum"
+ },
+ "2": {
+ "then": " Dauerhaft blattlos"
+ }
+ }
+ },
+ "tree_node-name": {
+ "mappings": {
+ "0": {
+ "then": "Der Baum hat keinen Namen."
+ }
+ },
+ "question": "Hat der Baum einen Namen?",
+ "render": "Name: {name}"
+ }
}
},
"viewpoint": {
@@ -1775,9 +2252,465 @@
}
},
"waste_basket": {
- "description": "Dies ist ein öffentlicher Abfalleimer, in den Sie Ihren Müll entsorgen können."
+ "description": "Dies ist ein öffentlicher Abfalleimer, in den Sie Ihren Müll entsorgen können.",
+ "title": {
+ "render": "Abfalleimer"
+ },
+ "tagRenderings": {
+ "waste-basket-waste-types": {
+ "mappings": {
+ "0": {
+ "then": "Ein Abfalleimer für allgemeinen Müll"
+ },
+ "1": {
+ "then": "Ein Abfalleimer für allgemeinen Müll"
+ },
+ "2": {
+ "then": "Ein Abfalleimer für Hundekot"
+ },
+ "3": {
+ "then": "Mülleimer für Zigaretten"
+ },
+ "4": {
+ "then": "Mülleimer für Drogen"
+ }
+ }
+ }
+ },
+ "presets": {
+ "0": {
+ "title": "Abfalleimer"
+ }
+ },
+ "name": "Abfalleimer",
+ "iconSize": {
+ "mappings": {
+ "0": {
+ "then": "Abfalleimer"
+ }
+ }
+ }
},
"watermill": {
"name": "Wassermühle"
+ },
+ "trail": {
+ "name": "Wanderwege",
+ "tagRenderings": {
+ "Color": {
+ "mappings": {
+ "0": {
+ "then": "Blauer Weg"
+ },
+ "1": {
+ "then": "Roter Weg"
+ },
+ "2": {
+ "then": "Grüner Weg"
+ },
+ "3": {
+ "then": "Gelber Weg"
+ }
+ }
+ },
+ "trail-length": {
+ "render": "Der Wanderweg ist {_length:km} Kilometer lang"
+ }
+ },
+ "title": {
+ "render": "Wanderweg"
+ }
+ },
+ "surveillance_camera": {
+ "name": "Überwachungskameras",
+ "tagRenderings": {
+ "Camera type: fixed; panning; dome": {
+ "mappings": {
+ "0": {
+ "then": "Eine fest montierte (nicht bewegliche) Kamera"
+ },
+ "1": {
+ "then": "Eine Kuppelkamera (drehbar)"
+ },
+ "2": {
+ "then": "Eine bewegliche Kamera"
+ }
+ },
+ "question": "Um welche Kameratyp handelt se sich?"
+ },
+ "Indoor camera? This isn't clear for 'public'-cameras": {
+ "mappings": {
+ "0": {
+ "then": "Diese Kamera befindet sich im Innenraum"
+ },
+ "1": {
+ "then": "Diese Kamera befindet sich im Freien"
+ },
+ "2": {
+ "then": "Diese Kamera ist möglicherweise im Freien"
+ }
+ }
+ },
+ "Level": {
+ "question": "Auf welcher Ebene befindet sich diese Kamera?",
+ "render": "Befindet sich auf Ebene {level}"
+ },
+ "Operator": {
+ "question": "Wer betreibt diese CCTV Kamera?",
+ "render": "Betrieben von {operator}"
+ },
+ "Surveillance:zone": {
+ "mappings": {
+ "0": {
+ "then": "Überwacht einen Parkplatz"
+ },
+ "1": {
+ "then": "Überwacht den Verkehr"
+ },
+ "2": {
+ "then": "Überwacht einen Eingang"
+ },
+ "3": {
+ "then": "Überwacht einen Gang"
+ },
+ "4": {
+ "then": "Überwacht eine Haltestelle"
+ },
+ "5": {
+ "then": "Überwacht ein Geschäft"
+ }
+ },
+ "question": "Was genau wird hier überwacht?",
+ "render": " Überwacht ein/e {surveillance:zone}"
+ },
+ "camera:mount": {
+ "question": "Wie ist diese Kamera montiert?",
+ "render": "Montageart: {mount}"
+ }
+ },
+ "title": {
+ "render": "Überwachungskamera"
+ }
+ },
+ "sport_pitch": {
+ "description": "Ein Sportplatz",
+ "name": "Sportplätze",
+ "presets": {
+ "0": {
+ "title": "Tischtennisplatte"
+ },
+ "1": {
+ "title": "Sportplatz"
+ }
+ },
+ "tagRenderings": {
+ "sport-pitch-access": {
+ "mappings": {
+ "0": {
+ "then": "Öffentlicher Zugang"
+ },
+ "2": {
+ "then": "Zugang nur für Vereinsmitglieder"
+ },
+ "3": {
+ "then": "Privat - kein öffentlicher Zugang"
+ }
+ },
+ "question": "Ist dieser Sportplatz öffentlich zugänglich?"
+ },
+ "sport-pitch-reservation": {
+ "mappings": {
+ "3": {
+ "then": "Termine nach Vereinbarung nicht möglich"
+ }
+ }
+ },
+ "sport_pitch-opening_hours": {
+ "mappings": {
+ "1": {
+ "then": "Immer zugänglich"
+ }
+ },
+ "question": "Wann ist dieser Sportplatz zugänglich?"
+ },
+ "sport_pitch-sport": {
+ "mappings": {
+ "0": {
+ "then": "Hier wird Basketball gespielt"
+ },
+ "1": {
+ "then": "Hier wird Fußball gespielt"
+ },
+ "2": {
+ "then": "Dies ist eine Tischtennisplatte"
+ },
+ "3": {
+ "then": "Hier wird Tennis gespielt"
+ },
+ "4": {
+ "then": "Hier wird Kopfball gespielt"
+ },
+ "5": {
+ "then": "Hier wird Basketball gespielt"
+ }
+ },
+ "question": "Welche Sportarten können hier gespielt werden?",
+ "render": "Hier wird {sport} gespielt"
+ },
+ "sport_pitch-surface": {
+ "mappings": {
+ "0": {
+ "then": "Die Oberfläche ist Gras"
+ },
+ "1": {
+ "then": "Die Oberfläche ist Sand"
+ },
+ "2": {
+ "then": "Die Oberfläche ist aus Pflastersteinen"
+ },
+ "3": {
+ "then": "Die Oberfläche ist Asphalt"
+ },
+ "4": {
+ "then": "Die Oberfläche ist Beton"
+ }
+ },
+ "render": "Die Oberfläche ist {surface}"
+ }
+ },
+ "title": {
+ "render": "Sportplatz"
+ }
+ },
+ "slow_roads": {
+ "tagRenderings": {
+ "slow_roads-surface": {
+ "mappings": {
+ "0": {
+ "then": "Die Oberfläche ist Gras"
+ },
+ "1": {
+ "then": "Die Oberfläche ist Erde"
+ },
+ "2": {
+ "then": "Die Oberfläche ist ohne festen Belag"
+ },
+ "3": {
+ "then": "Die Oberfläche ist Sand"
+ },
+ "4": {
+ "then": "Die Oberfläche ist aus Pflastersteinen"
+ },
+ "5": {
+ "then": "Die Oberfläche ist Asphalt"
+ },
+ "6": {
+ "then": "Die Oberfläche ist Beton"
+ },
+ "7": {
+ "then": "Die Oberfläche ist gepflastert"
+ }
+ },
+ "render": "Die Oberfläche ist {surface}"
+ }
+ }
+ },
+ "shops": {
+ "presets": {
+ "0": {
+ "description": "Ein neues Geschäft hinzufügen"
+ }
+ },
+ "tagRenderings": {
+ "shops-phone": {
+ "render": "{phone}"
+ },
+ "shops-shop": {
+ "mappings": {
+ "0": {
+ "then": "Lebensmittelladen"
+ },
+ "1": {
+ "then": "Supermarkt"
+ },
+ "2": {
+ "then": "Bekleidungsgeschäft"
+ },
+ "3": {
+ "then": "Friseur"
+ },
+ "4": {
+ "then": "Bäckerei"
+ },
+ "5": {
+ "then": "Autoreparatur (Werkstatt)"
+ },
+ "6": {
+ "then": "Autohändler"
+ }
+ },
+ "question": "Was wird in diesem Geschäft verkauft?",
+ "render": "Dieses Geschäft verkauft {shop}"
+ },
+ "shops-website": {
+ "question": "Wie lautet die Webseite dieses Geschäfts?",
+ "render": "{website}"
+ }
+ },
+ "title": {
+ "mappings": {
+ "0": {
+ "then": "{name}"
+ },
+ "1": {
+ "then": "{shop}"
+ }
+ },
+ "render": "Geschäft"
+ }
+ },
+ "observation_tower": {
+ "description": "Türme mit Panoramablick",
+ "name": "Beobachtungstürme",
+ "presets": {
+ "0": {
+ "title": "Beobachtungsturm"
+ }
+ },
+ "tagRenderings": {
+ "Fee": {
+ "mappings": {
+ "0": {
+ "then": "Eintritt kostenlos"
+ }
+ },
+ "render": "Der Besuch des Turms kostet {charge}"
+ },
+ "Height": {
+ "question": "Wie hoch ist dieser Turm?",
+ "render": "Dieser Turm ist {height} hoch"
+ },
+ "Operator": {
+ "question": "Wer betreibt diesen Turm?",
+ "render": "Betrieben von {operator}"
+ },
+ "name": {
+ "mappings": {
+ "0": {
+ "then": "Dieser Turm hat keinen eigenen Namen"
+ }
+ },
+ "question": "Wie heißt dieser Turm?",
+ "render": "Der Name dieses Turms lautet {name}"
+ }
+ },
+ "title": {
+ "mappings": {
+ "0": {
+ "then": "{name}"
+ }
+ },
+ "render": "Beobachtungsturm"
+ },
+ "units": {
+ "0": {
+ "applicableUnits": {
+ "0": {
+ "human": " Meter"
+ }
+ }
+ }
+ }
+ },
+ "food": {
+ "filter": {
+ "0": {
+ "options": {
+ "0": {
+ "question": "Aktuell geöffnet"
+ }
+ }
+ },
+ "2": {
+ "options": {
+ "0": {
+ "question": "Bietet vegan Speisen an"
+ }
+ }
+ }
+ },
+ "presets": {
+ "0": {
+ "title": "Restaurant"
+ },
+ "1": {
+ "title": "Schnellimbiss"
+ },
+ "2": {
+ "title": "Pommesbude"
+ }
+ },
+ "tagRenderings": {
+ "Cuisine": {
+ "mappings": {
+ "2": {
+ "then": "Bietet vorwiegend Pastagerichte an"
+ }
+ },
+ "question": "Welches Essen gibt es hier?",
+ "render": "An diesem Ort gibt es hauptsächlich {cuisine}"
+ },
+ "Fastfood vs restaurant": {
+ "question": "Um was für ein Geschäft handelt es sich?"
+ },
+ "Name": {
+ "question": "Wie heißt dieses Restaurant?",
+ "render": "Das Restaurant heißt {name}"
+ },
+ "Takeaway": {
+ "mappings": {
+ "0": {
+ "then": "Dieses Geschäft bietet nur Artikel zur Mitnahme an"
+ },
+ "1": {
+ "then": "Mitnahme möglich"
+ },
+ "2": {
+ "then": "Mitnahme nicht möglich"
+ }
+ },
+ "question": "Ist an diesem Ort Mitnahme möglich?"
+ },
+ "halal (no friture)": {
+ "mappings": {
+ "0": {
+ "then": "Hier gibt es keine halal Speisen"
+ },
+ "1": {
+ "then": "Hier gibt es wenige halal Speisen"
+ },
+ "2": {
+ "then": "Es gibt halal Speisen"
+ },
+ "3": {
+ "then": "Es gibt ausschließlich halal Speisen"
+ }
+ }
+ }
+ },
+ "title": {
+ "mappings": {
+ "0": {
+ "then": "Restaurant {name}"
+ },
+ "1": {
+ "then": "Schnellrestaurant{name}"
+ }
+ }
+ }
+ },
+ "direction": {
+ "description": "Diese Ebene visualisiert Richtungen",
+ "name": "Visualisierung der Richtung"
}
}
\ No newline at end of file
diff --git a/langs/nl.json b/langs/nl.json
index fa7a85612..33a56e19a 100644
--- a/langs/nl.json
+++ b/langs/nl.json
@@ -137,7 +137,7 @@
"getStartedNewAccount": " of maak een nieuwe account aan",
"noTagsSelected": "Geen tags geselecteerd",
"customThemeIntro": "
Onofficiële thema's
De onderstaande thema's heb je eerder bezocht en zijn gemaakt door andere OpenStreetMappers.",
- "aboutMapcomplete": "
Over MapComplete
Met MapComplete kun je OpenStreetMap verrijken met informatie over een bepaald thema. Beantwoord enkele vragen, en binnen een paar minuten is jouw bijdrage wereldwijd beschikbaar! De maker van het thema bepaalt de elementen, vragen en taalversies voor het thema.
Ontdek meer
MapComplete biedt altijd de volgende stap naar meer OpenStreetMap:
Indien ingebed in een website linkt het iframe naar de volledige MapComplete
De volledige versie heeft uitleg over OpenStreetMap
Bekijken kan altijd, maar wijzigen vereist een OSM-account
Als je niet aangemeld bent, wordt je gevraagd dit te doen
Als je minstens één vraag hebt beantwoord, kan je ook elementen toevoegen
Heb je genoeg changesets, dan verschijnen de OSM-tags, nog later links naar de wiki
Merk je een bug of wil je een extra feature? Wil je helpen vertalen? Bezoek dan de broncode en issue tracker.
Wil je je vorderingen zien? Volg de edits op OsmCha.",
+ "aboutMapcomplete": "
Over MapComplete
Met MapComplete kun je OpenStreetMap verrijken met informatie over een bepaald thema. Beantwoord enkele vragen, en binnen een paar minuten is jouw bijdrage wereldwijd beschikbaar! De maker van het thema bepaalt de elementen, vragen en taalversies voor het thema.
Ontdek meer
MapComplete biedt altijd de volgende stap naar meer OpenStreetMap:
Indien ingebed in een website linkt het iframe naar de volledige MapComplete
De volledige versie heeft uitleg over OpenStreetMap
Bekijken kan altijd, maar wijzigen vereist een OSM-account
Als je niet aangemeld bent, wordt je gevraagd dit te doen
Als je minstens één vraag hebt beantwoord, kan je ook elementen toevoegen
Heb je genoeg changesets, dan verschijnen de OSM-tags, nog later links naar de wiki
Merk je een bug of wil je een extra feature? Wil je helpen vertalen? Bezoek dan de broncode en issue tracker.
Wil je je vorderingen zien? Volg de edits op OsmCha.",
"backgroundMap": "Achtergrondkaart",
"layerSelection": {
"zoomInToSeeThisLayer": "Vergroot de kaart om deze laag te zien",
diff --git a/langs/shared-questions/de.json b/langs/shared-questions/de.json
index 5b457a60b..2baaebe37 100644
--- a/langs/shared-questions/de.json
+++ b/langs/shared-questions/de.json
@@ -12,7 +12,7 @@
"then": "Hunde sind nicht erlaubt"
},
"2": {
- "then": "Hunde sind erlaubt, müssen aber angeleint sein."
+ "then": "Hunde sind erlaubt, müssen aber angeleint sein"
},
"3": {
"then": "Hunde sind erlaubt und können frei herumlaufen"
@@ -65,7 +65,7 @@
"wheelchair-access": {
"mappings": {
"0": {
- "then": "Dieser Ort ist speziell für Rollstuhlfahrer eingerichtet."
+ "then": "Dieser Ort ist speziell für Rollstuhlfahrer eingerichtet"
},
"1": {
"then": "Dieser Ort ist mit einem Rollstuhl leicht zu erreichen"
diff --git a/langs/shared-questions/fr.json b/langs/shared-questions/fr.json
index 4f1f52590..7f0de7904 100644
--- a/langs/shared-questions/fr.json
+++ b/langs/shared-questions/fr.json
@@ -3,6 +3,23 @@
"description": {
"question": "Y a-t-il quelque chose de pertinent que vous n'avez pas pu donner à la dernière question ? Ajoutez-le ici. Ne répétez pas des réponses déjà données"
},
+ "dog-access": {
+ "mappings": {
+ "0": {
+ "then": "Chiens admis"
+ },
+ "1": {
+ "then": "Les chiens ne sont pas admis"
+ },
+ "2": {
+ "then": "Les chiens sont admis, mais ils doivent être tenus en laisse"
+ },
+ "3": {
+ "then": "Les chiens sont admis et peuvent circuler librement"
+ }
+ },
+ "question": "Est-ce que les chiens sont admis ici ?"
+ },
"email": {
"question": "Quelle est l'adresse courriel de {name} ?"
},
@@ -28,11 +45,33 @@
"question": "Quelles sont les horaires d'ouverture de {name} ?",
"render": "
Horaires d'ouverture
{opening_hours_table(opening_hours)}"
},
+ "payment-options": {
+ "mappings": {
+ "0": {
+ "then": "Paiement en liquide accepté"
+ },
+ "1": {
+ "then": "Paiement par carte accepté"
+ }
+ },
+ "question": "Quelles sont les méthodes de paiement acceptées ici ?"
+ },
"phone": {
"question": "Quel est le numéro de téléphone de {name} ?"
},
"website": {
"question": "Quel est le site web de {name} ?"
+ },
+ "wheelchair-access": {
+ "mappings": {
+ "2": {
+ "then": "Il est possible d'accéder à cet endroit en chaise roulante, mais ce n'est pas facile"
+ },
+ "3": {
+ "then": "Cet endroit n'est pas accessible en chaise roulante"
+ }
+ },
+ "question": "Est-ce que cet endroit est accessible en chaise roulante ?"
}
}
}
\ No newline at end of file
diff --git a/langs/themes/de.json b/langs/themes/de.json
index 8c59fd659..0b376a275 100644
--- a/langs/themes/de.json
+++ b/langs/themes/de.json
@@ -36,7 +36,7 @@
"name": "Wohnmobilstellplätze",
"presets": {
"0": {
- "description": "Fügen Sie einen neuen offiziellen Wohnmobilstellplatz hinzu. Dies sind ausgewiesene Plätze, an denen Sie in Ihrem Wohnmobil übernachten können. Sie können wie ein richtiger Campingplatz oder nur wie ein Parkplatz aussehen. Möglicherweise sind sie gar nicht ausgeschildert, sondern nur in einem Gemeindebeschluss festgelegt. Ein normaler Parkplatz für Wohnmobile, auf dem übernachten nicht zulässig ist, ist kein Wohnmobilstellplatz. ",
+ "description": "Fügen Sie einen neuen offiziellen Wohnmobilstellplatz hinzu. Dies sind ausgewiesene Plätze, an denen Sie in Ihrem Wohnmobil übernachten können. Sie können wie ein richtiger Campingplatz oder nur wie ein Parkplatz aussehen. Möglicherweise sind sie gar nicht ausgeschildert, sondern nur in einem Gemeindebeschluss festgelegt. Ein normaler Parkplatz für Wohnmobile, auf dem Übernachten nicht zulässig ist, ist kein Wohnmobilstellplatz. ",
"title": "Wohnmobilstellplatz"
}
},
@@ -751,17 +751,6 @@
}
}
},
- "mapRendering": {
- "0": {
- "icon": {
- "mappings": {
- "0": {
- "then": "./assets/themes/hackerspaces/led.png"
- }
- }
- }
- }
- },
"name": "Hackerspace",
"presets": {
"0": {
@@ -821,6 +810,17 @@
}
},
"render": "Hackerspace"
+ },
+ "mapRendering": {
+ "0": {
+ "icon": {
+ "mappings": {
+ "0": {
+ "then": "./assets/themes/hackerspaces/led.png"
+ }
+ }
+ }
+ }
}
}
},
@@ -836,6 +836,198 @@
"title": "Offene Toilette Karte"
},
"waste_basket": {
- "title": "Abfalleimer"
+ "title": "Abfalleimer",
+ "shortDescription": "Eine Karte mit Abfalleimern",
+ "description": "Auf dieser Karte finden Sie Abfalleimer in Ihrer Nähe. Wenn ein Abfalleimer auf dieser Karte fehlt, können Sie ihn selbst hinzufügen"
+ },
+ "uk_addresses": {
+ "description": "Tragen Sie zu OpenStreetMap bei, indem Sie Adressinformationen ausfüllen",
+ "layers": {
+ "1": {
+ "description": "Adressen",
+ "name": "Bekannte Adressen in OSM",
+ "tagRenderings": {
+ "uk_addresses_explanation_osm": {
+ "render": "Diese Adresse ist in OpenStreetMap gespeichert"
+ },
+ "uk_addresses_housenumber": {
+ "mappings": {
+ "0": {
+ "then": "Dieses Gebäude hat keine Hausnummer"
+ }
+ },
+ "question": "Wie lautet die Nummer dieses Hauses?",
+ "render": "Die Hausnummer ist {addr:housenumber}"
+ },
+ "uk_addresses_street": {
+ "question": "In welcher Straße befindet sich diese Adresse?",
+ "render": "Diese Adresse befindet sich in der Straße {addr:street}"
+ }
+ },
+ "title": {
+ "render": "Bekannte Adresse"
+ }
+ }
+ },
+ "shortDescription": "Helfen Sie beim Aufbau eines offenen Datensatzes britischer Adressen",
+ "title": "Adressen in Großbritannien"
+ },
+ "trees": {
+ "description": "Kartieren Sie alle Bäume!",
+ "shortDescription": "Kartieren Sie alle Bäume",
+ "title": "Bäume"
+ },
+ "surveillance": {
+ "description": "Auf dieser offenen Karte finden Sie Überwachungskameras.",
+ "shortDescription": "Überwachungskameras und andere Mittel zur Überwachung",
+ "title": "Überwachung unter Überwachung"
+ },
+ "sport_pitches": {
+ "description": "Ein Sportplatz ist eine Fläche, auf der Sportarten gespielt werden",
+ "shortDescription": "Eine Karte mit Sportplätzen",
+ "title": "Sportplätze"
+ },
+ "shops": {
+ "shortDescription": "Eine bearbeitbare Karte mit grundlegenden Geschäftsinformationen",
+ "title": "Freie Geschäftskarte"
+ },
+ "postboxes": {
+ "layers": {
+ "1": {
+ "description": "Eine Ebene mit Postämtern.",
+ "tagRenderings": {
+ "OH": {
+ "mappings": {
+ "0": {
+ "then": "durchgehend geöffnet (auch an Feiertagen)"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "openwindpowermap": {
+ "description": "Eine Karte zum Anzeigen und Bearbeiten von Windkraftanlagen."
+ },
+ "hailhydrant": {
+ "description": "Auf dieser Karte können Sie Hydranten, Feuerwachen, Krankenwagen und Feuerlöscher in Ihren bevorzugten Stadtvierteln finden und aktualisieren. \n\nSie können Ihren genauen Standort verfolgen (nur mobil) und in der unteren linken Ecke die für Sie relevanten Ebenen auswählen. Sie können mit diesem Tool auch Pins (Points of Interest) zur Karte hinzufügen oder bearbeiten und durch die Beantwortung verfügbarer Fragen zusätzliche Angaben machen. \n\nAlle von Ihnen vorgenommenen Änderungen werden automatisch in der globalen Datenbank von OpenStreetMap gespeichert und können von anderen frei weiterverwendet werden.",
+ "layers": {
+ "0": {
+ "description": "Kartenebene zur Anzeige von Hydranten.",
+ "name": "Karte der Hydranten",
+ "presets": {
+ "0": {
+ "description": "Ein Hydrant ist ein Anschlusspunkt, an dem die Feuerwehr Wasser zapfen kann. Er kann sich unterirdisch befinden.",
+ "title": "Löschwasser-Hydrant"
+ }
+ },
+ "tagRenderings": {
+ "hydrant-color": {
+ "mappings": {
+ "0": {
+ "then": "Die Farbe des Hydranten ist unbekannt."
+ },
+ "1": {
+ "then": "Die Farbe des Hydranten ist gelb."
+ },
+ "2": {
+ "then": "Die Farbe des Hydranten ist rot."
+ }
+ },
+ "question": "Welche Farbe hat der Hydrant?",
+ "render": "Der Hydrant hat die Farbe {colour}"
+ },
+ "hydrant-state": {
+ "mappings": {
+ "0": {
+ "then": "Der Hydrant ist (ganz oder teilweise) in Betrieb."
+ },
+ "1": {
+ "then": "Der Hydrant ist nicht verfügbar."
+ },
+ "2": {
+ "then": "Der Hydrant wurde entfernt."
+ }
+ },
+ "question": "Aktualisieren Sie den Lebenszyklusstatus des Hydranten.",
+ "render": "Lebenszyklus-Status"
+ },
+ "hydrant-type": {
+ "mappings": {
+ "0": {
+ "then": "Der Typ des Hydranten ist unbekannt."
+ },
+ "1": {
+ "then": " Säulenart."
+ },
+ "2": {
+ "then": " Rohrtyp."
+ },
+ "3": {
+ "then": " Wandtyp."
+ },
+ "4": {
+ "then": " Untergrundtyp."
+ }
+ },
+ "question": "Um welche Art von Hydrant handelt es sich?",
+ "render": " Hydranten-Typ: {fire_hydrant:type}"
+ }
+ },
+ "title": {
+ "render": "Hydrant"
+ }
+ },
+ "1": {
+ "description": "Kartenebene zur Anzeige von Hydranten.",
+ "name": "Karte mit Feuerlöschern.",
+ "presets": {
+ "0": {
+ "description": "Ein Feuerlöscher ist ein kleines, tragbares Gerät, das dazu dient, ein Feuer zu löschen",
+ "title": "Feuerlöscher"
+ }
+ },
+ "tagRenderings": {
+ "extinguisher-location": {
+ "mappings": {
+ "0": {
+ "then": "Im Innenraum vorhanden."
+ },
+ "1": {
+ "then": "Im Außenraum vorhanden."
+ }
+ },
+ "question": "Wo befindet er sich?",
+ "render": "Standort: {location}"
+ }
+ },
+ "title": {
+ "render": "Feuerlöscher"
+ }
+ },
+ "2": {
+ "description": "Kartenebene zur Darstellung von Feuerwachen.",
+ "name": "Karte der Feuerwachen",
+ "presets": {
+ "0": {
+ "description": "Eine Feuerwache ist ein Ort, an dem die Feuerwehrfahrzeuge und die Feuerwehrleute untergebracht sind, wenn sie nicht im Einsatz sind.",
+ "title": "Feuerwache"
+ }
+ },
+ "tagRenderings": {
+ "station-name": {
+ "question": "Wie lautet der Name dieser Feuerwache?"
+ }
+ }
+ },
+ "3": {
+ "presets": {
+ "0": {
+ "description": "Eine Rettungsstation der Karte hinzufügen"
+ }
+ }
+ }
+ }
}
}
\ No newline at end of file
diff --git a/langs/themes/nl.json b/langs/themes/nl.json
index 165e71b13..34fef4ae8 100644
--- a/langs/themes/nl.json
+++ b/langs/themes/nl.json
@@ -175,11 +175,25 @@
"0": {
"description": "camperplaatsen",
"name": "Camperplaatsen",
+ "presets": {
+ "0": {
+ "description": "Voeg een nieuwe officiële camperplaats toe. Dit zijn speciaal aangeduide plaatsen waar het toegestaan is om te overnachten met een camper. Ze kunnen er uitzien als een parking, of soms eerder als een camping. Soms staan ze niet ter plaatse aangeduid, maar heeft de gemeente wel degelijk beslist dat dit een camperplaats is. Een parking voor campers waar je niet mag overnachten is géén camperplaats. ",
+ "title": "camperplaats"
+ }
+ },
"tagRenderings": {
+ "caravansites-capacity": {
+ "question": "Hoeveel campers kunnen hier overnachten? (sla dit over als er geen duidelijk aantal plaatsen of aangeduid maximum is)",
+ "render": "{capacity} campers kunnen deze plaats tegelijk gebruiken"
+ },
"caravansites-charge": {
"question": "Hoeveel kost deze plaats?",
"render": "Deze plaats vraagt {charge}"
},
+ "caravansites-description": {
+ "question": "Wil je graag een algemene beschrijving toevoegen van deze plaats? (Herhaal hier niet de antwoorden op de vragen die reeds gesteld zijn. Hou het objectief - je kan je mening geven via een review)",
+ "render": "Meer details over deze plaats: {description}"
+ },
"caravansites-fee": {
"mappings": {
"0": {
@@ -191,6 +205,16 @@
},
"question": "Moet men betalen om deze camperplaats te gebruiken?"
},
+ "caravansites-internet": {
+ "mappings": {
+ "0": {
+ "then": "Er is internettoegang"
+ },
+ "1": {
+ "then": "Er is internettoegang"
+ }
+ }
+ },
"caravansites-name": {
"question": "Wat is de naam van deze plaats?",
"render": "Deze plaats heet {name}"
@@ -210,7 +234,7 @@
}
},
"shortDescription": "Vind locaties waar je de nacht kan doorbrengen met je mobilehome",
- "title": "Kampeersite"
+ "title": "Camperplaatsen"
},
"charging_stations": {
"shortDescription": "Een wereldwijde kaart van oplaadpunten",