Merge branch 'develop' into feature/velopark
This commit is contained in:
commit
59e76b9c6f
30 changed files with 963 additions and 654 deletions
|
@ -752,7 +752,7 @@
|
||||||
"deletion": {
|
"deletion": {
|
||||||
"softDeletionTags": {
|
"softDeletionTags": {
|
||||||
"and": [
|
"and": [
|
||||||
"disused:emergency:=defibrillator}",
|
"disused:emergency:=defibrillator",
|
||||||
"emergency="
|
"emergency="
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"color": "red"
|
"color": "black"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -43,5 +43,6 @@
|
||||||
},
|
},
|
||||||
"tagRenderings": [
|
"tagRenderings": [
|
||||||
|
|
||||||
]
|
],
|
||||||
|
"syncSelection": "global"
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
"source": {
|
"source": {
|
||||||
"osmTags": "amenity=toilets"
|
"osmTags": "amenity=toilets"
|
||||||
},
|
},
|
||||||
"minzoom": 12,
|
"minzoom": 10,
|
||||||
"title": {
|
"title": {
|
||||||
"render": {
|
"render": {
|
||||||
"en": "Toilet",
|
"en": "Toilet",
|
||||||
|
@ -683,6 +683,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"multiAnswer": true,
|
||||||
"id": "toilet-changing_table:location"
|
"id": "toilet-changing_table:location"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -60,12 +60,13 @@
|
||||||
"unmark": "Von persönlicher Liste bevorzugter Standorte entfernen",
|
"unmark": "Von persönlicher Liste bevorzugter Standorte entfernen",
|
||||||
"unmarkNotDeleted": "Dieser Punkt wird nicht gelöscht und ist weiterhin auf der entsprechenden Karte für dich und andere sichtbar"
|
"unmarkNotDeleted": "Dieser Punkt wird nicht gelöscht und ist weiterhin auf der entsprechenden Karte für dich und andere sichtbar"
|
||||||
},
|
},
|
||||||
"downloadGeojson": "Lade deine Favoriten als geojson herunter",
|
"downloadGeojson": "Favoriten als geojson herunterladen",
|
||||||
"downloadGpx": "Lade deine Favoriten als GPX herunter",
|
"downloadGpx": "Favoriten als GPX herunterladen",
|
||||||
"intro": "Du hast {length} Orte als Lieblingsort markiert.",
|
"intro": "Du hast {length} Orte als Favorit markiert.",
|
||||||
"introPrivacy": "Diese Liste ist nur für dich sichtbar",
|
"introPrivacy": "Diese Liste ist nur für dich sichtbar",
|
||||||
"loginToSeeList": "Melde dich an, um die Liste der Orte zu sehen, die du als Favoriten markiert hast",
|
"loginToSeeList": "Melde dich an, um die Liste der Orte zu sehen, die du als Favoriten markiert hast",
|
||||||
"tab": "Deine Favoriten"
|
"tab": "Deine Favoriten",
|
||||||
|
"title": "Ausgewählte Orte"
|
||||||
},
|
},
|
||||||
"flyer": {
|
"flyer": {
|
||||||
"aerial": "Diese Karte verwendet einen anderen Hintergrund, nämlich Luftaufnahmen der Agentschap Informatie Vlaanderen",
|
"aerial": "Diese Karte verwendet einen anderen Hintergrund, nämlich Luftaufnahmen der Agentschap Informatie Vlaanderen",
|
||||||
|
@ -173,12 +174,14 @@
|
||||||
"openIssueTracker": "Fehler melden",
|
"openIssueTracker": "Fehler melden",
|
||||||
"openMapillary": "Mapillary öffnen",
|
"openMapillary": "Mapillary öffnen",
|
||||||
"openOsmcha": "Neueste Bearbeitungen mit {theme} ansehen",
|
"openOsmcha": "Neueste Bearbeitungen mit {theme} ansehen",
|
||||||
|
"seeOnMapillary": "Dieses Bild auf Mapillary ansehen",
|
||||||
"themeBy": "Dieses Thema wurde erstellt von {author}",
|
"themeBy": "Dieses Thema wurde erstellt von {author}",
|
||||||
"title": "Copyright und Urheberrechtsangabe",
|
"title": "Copyright und Urheberrechtsangabe",
|
||||||
"translatedBy": "MapComplete wurde übersetzt von {contributors} und <a href='https://github.com/pietervdvn/MapComplete/graphs/contributors' target='_blank'>{hiddenCount} weiteren Personen</a>"
|
"translatedBy": "MapComplete wurde übersetzt von {contributors} und <a href='https://github.com/pietervdvn/MapComplete/graphs/contributors' target='_blank'>{hiddenCount} weiteren Personen</a>"
|
||||||
},
|
},
|
||||||
"back": "Zurück",
|
"back": "Zurück",
|
||||||
"backToIndex": "Zur Übersicht aller Themenkarten",
|
"backToIndex": "Zur Übersicht aller Themenkarten",
|
||||||
|
"backToMap": "Zurück zur Karte",
|
||||||
"backgroundMap": "Hintergrundkarte auswählen",
|
"backgroundMap": "Hintergrundkarte auswählen",
|
||||||
"backgroundSwitch": "Hintergrund wechseln",
|
"backgroundSwitch": "Hintergrund wechseln",
|
||||||
"cancel": "Abbrechen",
|
"cancel": "Abbrechen",
|
||||||
|
@ -224,6 +227,13 @@
|
||||||
"histogram": {
|
"histogram": {
|
||||||
"error_loading": "Das Histogramm konnte nicht geladen werden"
|
"error_loading": "Das Histogramm konnte nicht geladen werden"
|
||||||
},
|
},
|
||||||
|
"labels": {
|
||||||
|
"background": "Hintergrund ändern",
|
||||||
|
"filter": "Daten filtern",
|
||||||
|
"menu": "Menü",
|
||||||
|
"zoomIn": "Hineinzoomen",
|
||||||
|
"zoomOut": "Herauszoomen"
|
||||||
|
},
|
||||||
"layerSelection": {
|
"layerSelection": {
|
||||||
"title": "Ebenen auswählen",
|
"title": "Ebenen auswählen",
|
||||||
"zoomInToSeeThisLayer": "Ausschnitt vergrößern, um Ebene anzuzeigen"
|
"zoomInToSeeThisLayer": "Ausschnitt vergrößern, um Ebene anzuzeigen"
|
||||||
|
@ -272,7 +282,9 @@
|
||||||
"closed_permanently": "Geschlossen auf unbestimmte Zeit",
|
"closed_permanently": "Geschlossen auf unbestimmte Zeit",
|
||||||
"closed_until": "Geschlossen bis {date}",
|
"closed_until": "Geschlossen bis {date}",
|
||||||
"error_loading": "Fehler: Diese Öffnungszeiten können nicht angezeigt werden.",
|
"error_loading": "Fehler: Diese Öffnungszeiten können nicht angezeigt werden.",
|
||||||
|
"friday": "Am Freitag {ranges}",
|
||||||
"loadingCountry": "Land ermitteln…",
|
"loadingCountry": "Land ermitteln…",
|
||||||
|
"monday": "Am Montag {ranges}",
|
||||||
"not_all_rules_parsed": "Die Öffnungszeiten sind kompliziert. Folgenden Regeln werden im Eingabefenster ignoriert:",
|
"not_all_rules_parsed": "Die Öffnungszeiten sind kompliziert. Folgenden Regeln werden im Eingabefenster ignoriert:",
|
||||||
"openTill": "bis",
|
"openTill": "bis",
|
||||||
"open_24_7": "Durchgehend geöffnet",
|
"open_24_7": "Durchgehend geöffnet",
|
||||||
|
@ -281,7 +293,15 @@
|
||||||
"ph_closed": "geschlossen",
|
"ph_closed": "geschlossen",
|
||||||
"ph_not_known": " ",
|
"ph_not_known": " ",
|
||||||
"ph_open": "geöffnet",
|
"ph_open": "geöffnet",
|
||||||
"ph_open_as_usual": "geöffnet wie üblich"
|
"ph_open_as_usual": "geöffnet wie üblich",
|
||||||
|
"ranges": "von {starttime} bis {endtime}",
|
||||||
|
"rangescombined": "{range0} und {range1}",
|
||||||
|
"saturday": "Am Samstag {ranges}",
|
||||||
|
"sunday": "Am Sonntag {ranges}",
|
||||||
|
"thursday": "Am Donnerstag {ranges}",
|
||||||
|
"tuesday": "Am Dienstag {ranges}",
|
||||||
|
"unknown": "Die Öffnungszeiten sind unbekannt",
|
||||||
|
"wednesday": "Am Mittwoch {ranges}"
|
||||||
},
|
},
|
||||||
"osmLinkTooltip": "Dieses Element auf OpenStreetMap öffnen, um Verlauf und Bearbeitungsmöglichkeiten anzuzeigen",
|
"osmLinkTooltip": "Dieses Element auf OpenStreetMap öffnen, um Verlauf und Bearbeitungsmöglichkeiten anzuzeigen",
|
||||||
"pdf": {
|
"pdf": {
|
||||||
|
@ -290,7 +310,7 @@
|
||||||
"generatedWith": "Erstellt mit mapcomplete.org/{layoutid}",
|
"generatedWith": "Erstellt mit mapcomplete.org/{layoutid}",
|
||||||
"versionInfo": "v{version} - erstellt am {date}"
|
"versionInfo": "v{version} - erstellt am {date}"
|
||||||
},
|
},
|
||||||
"pickLanguage": "Sprache auswählen: ",
|
"pickLanguage": "Sprache auswählen",
|
||||||
"poweredByOsm": "Unterstützt von OpenStreetMap",
|
"poweredByOsm": "Unterstützt von OpenStreetMap",
|
||||||
"questionBox": {
|
"questionBox": {
|
||||||
"answeredMultiple": "Du hast {answered} Fragen beantwortet",
|
"answeredMultiple": "Du hast {answered} Fragen beantwortet",
|
||||||
|
@ -324,6 +344,7 @@
|
||||||
"searchShort": "Suche…",
|
"searchShort": "Suche…",
|
||||||
"searching": "Suchen …"
|
"searching": "Suchen …"
|
||||||
},
|
},
|
||||||
|
"share": "Teilen",
|
||||||
"sharescreen": {
|
"sharescreen": {
|
||||||
"copiedToClipboard": "Verknüpfung in Zwischenablage kopiert",
|
"copiedToClipboard": "Verknüpfung in Zwischenablage kopiert",
|
||||||
"documentation": "Für weitere Informationen über verfügbare URL-Parameter, <a href='https://github.com/pietervdvn/MapComplete/blob/develop/Docs/URL_Parameters.md' target='_blank'>siehe Dokumentation</a>",
|
"documentation": "Für weitere Informationen über verfügbare URL-Parameter, <a href='https://github.com/pietervdvn/MapComplete/blob/develop/Docs/URL_Parameters.md' target='_blank'>siehe Dokumentation</a>",
|
||||||
|
@ -369,6 +390,27 @@
|
||||||
"uploadingChanges": "Änderungen werden hochgeladen…",
|
"uploadingChanges": "Änderungen werden hochgeladen…",
|
||||||
"useSearch": "Verwenden Sie die Suche oben, um Voreinstellungen anzuzeigen",
|
"useSearch": "Verwenden Sie die Suche oben, um Voreinstellungen anzuzeigen",
|
||||||
"useSearchForMore": "Verwenden Sie die Suchfunktion, um innerhalb von {total} weitere Werte zu suchen…",
|
"useSearchForMore": "Verwenden Sie die Suchfunktion, um innerhalb von {total} weitere Werte zu suchen…",
|
||||||
|
"visualFeedback": {
|
||||||
|
"directionsAbsolute": {
|
||||||
|
"E": "Ost",
|
||||||
|
"N": "Nord",
|
||||||
|
"NE": "Nordost",
|
||||||
|
"NW": "Nordwest",
|
||||||
|
"S": "Süd",
|
||||||
|
"SE": "Südost",
|
||||||
|
"SW": "Südwest",
|
||||||
|
"W": "West"
|
||||||
|
},
|
||||||
|
"directionsRelative": {
|
||||||
|
"left": "links",
|
||||||
|
"right": "rechts",
|
||||||
|
"sharp_left": "scharf links",
|
||||||
|
"sharp_right": "scharf rechts",
|
||||||
|
"slight_left": "leicht links",
|
||||||
|
"slight_right": "leicht rechts",
|
||||||
|
"straight": "geradeaus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"waitingForGeopermission": "Warten auf Ihre Erlaubnis, Standortdaten zu verwenden…",
|
"waitingForGeopermission": "Warten auf Ihre Erlaubnis, Standortdaten zu verwenden…",
|
||||||
"waitingForLocation": "Ihr Standort wird gesucht…",
|
"waitingForLocation": "Ihr Standort wird gesucht…",
|
||||||
"weekdays": {
|
"weekdays": {
|
||||||
|
@ -416,12 +458,16 @@
|
||||||
"hotkeyDocumentation": {
|
"hotkeyDocumentation": {
|
||||||
"action": "Aktion",
|
"action": "Aktion",
|
||||||
"closeSidebar": "Seitenleiste schließen",
|
"closeSidebar": "Seitenleiste schließen",
|
||||||
"geolocate": "Verschieben Sie die Karte auf den aktuellen Standort oder zoomen Sie die Karte auf den aktuellen Standort. Beantragt Standortberechtigung",
|
"geolocate": "Karte auf den aktuellen Standort verschieben oder zoomen. Erfordert Standortberechtigung",
|
||||||
"intro": "MapComplete unterstützt folgende Tastaturbefehle:",
|
"intro": "MapComplete unterstützt folgende Tastaturbefehle:",
|
||||||
"key": "Tastenkombination",
|
"key": "Tastenkombination",
|
||||||
"openLayersPanel": "Öffnet das Menü für Ebenen und Filter",
|
"openLayersPanel": "Auswahl für Hintergrundebenen öffnen",
|
||||||
"selectAerial": "Hintergrund als Luftbild oder Satellitenbild einstellen. Wechselt zwischen den zwei besten verfügbaren Ebenen",
|
"selectAerial": "Hintergrund als Luftbild oder Satellitenbild einstellen. Wechselt zwischen den zwei besten verfügbaren Ebenen",
|
||||||
"selectItem": "Wähle das POI, das dem Kartenmittelpunkt (Fadenkreuz) am nächsten liegt. Nur wenn die Tastaturnavigation verwendet wird",
|
"selectFavourites": "Favoriten anzeigen",
|
||||||
|
"selectItem": "Objekt auswählen, das dem Kartenmittelpunkt (Fadenkreuz) am nächsten liegt. Nur wenn die Tastaturnavigation verwendet wird",
|
||||||
|
"selectItem2": "Objekt auswählen, das dem Kartenmittelpunkt (Fadenkreuz) am zweitnächsten liegt. Nur wenn die Tastaturnavigation verwendet wird",
|
||||||
|
"selectItem3": "Objekt auswählen, das dem Kartenmittelpunkt (Fadenkreuz) am drittnächsten liegt. Nur wenn die Tastaturnavigation verwendet wird",
|
||||||
|
"selectItemI": "Objekt auswählen, das dem Kartenmittelpunkt (Fadenkreuz) am viertnächsten liegt. Nur wenn die Tastaturnavigation verwendet wird",
|
||||||
"selectMap": "Karte aus externer Quelle als Hintergrund wählen. Wechselt zwischen den zwei besten verfügbaren Ebenen",
|
"selectMap": "Karte aus externer Quelle als Hintergrund wählen. Wechselt zwischen den zwei besten verfügbaren Ebenen",
|
||||||
"selectMapnik": "OpenStreetMap-carto als Hintergrundebene wählen",
|
"selectMapnik": "OpenStreetMap-carto als Hintergrundebene wählen",
|
||||||
"selectOsmbasedmap": "OpenStreetMap-basierte Karte als Hintergrund auswählen (oder Hintergrundebene deaktivieren)",
|
"selectOsmbasedmap": "OpenStreetMap-basierte Karte als Hintergrund auswählen (oder Hintergrundebene deaktivieren)",
|
||||||
|
|
|
@ -366,7 +366,7 @@
|
||||||
"testing": "Testing - changes won't be saved",
|
"testing": "Testing - changes won't be saved",
|
||||||
"uploadError": "Error while uploading changes: {error}",
|
"uploadError": "Error while uploading changes: {error}",
|
||||||
"uploadGpx": {
|
"uploadGpx": {
|
||||||
"choosePermission": "Choose below if your track should be shared:",
|
"choosePermission": "Choose below how your track should be shared:",
|
||||||
"confirm": "Confirm upload",
|
"confirm": "Confirm upload",
|
||||||
"gpxServiceOffline": "The GPX-service is currently offline - uploading is currently not possible. Try again later.",
|
"gpxServiceOffline": "The GPX-service is currently offline - uploading is currently not possible. Try again later.",
|
||||||
"intro0": "By uploading your track, OpenStreetMap.org will retain a full copy of the track.",
|
"intro0": "By uploading your track, OpenStreetMap.org will retain a full copy of the track.",
|
||||||
|
@ -500,7 +500,8 @@
|
||||||
"selectOsmbasedmap": "Set the background layer to on OpenStreetMap-based map (or disable the background raster layer)",
|
"selectOsmbasedmap": "Set the background layer to on OpenStreetMap-based map (or disable the background raster layer)",
|
||||||
"selectSearch": "Select the search bar to search locations",
|
"selectSearch": "Select the search bar to search locations",
|
||||||
"shakePhone": "Shaking your phone",
|
"shakePhone": "Shaking your phone",
|
||||||
"title": "Hotkeys"
|
"title": "Hotkeys",
|
||||||
|
"translationMode": "Toggle translation mode on or off"
|
||||||
},
|
},
|
||||||
"image": {
|
"image": {
|
||||||
"addPicture": "Add picture",
|
"addPicture": "Add picture",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -69,6 +69,15 @@
|
||||||
"1": {
|
"1": {
|
||||||
"then": "Murale"
|
"then": "Murale"
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"then": "Azulejo (ornamento decorativo piastrellato spagnolo)"
|
||||||
|
},
|
||||||
|
"11": {
|
||||||
|
"then": "Mosaico di piastrelle"
|
||||||
|
},
|
||||||
|
"12": {
|
||||||
|
"then": "Scultura in legno"
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"then": "Dipinto"
|
"then": "Dipinto"
|
||||||
},
|
},
|
||||||
|
@ -92,12 +101,6 @@
|
||||||
},
|
},
|
||||||
"9": {
|
"9": {
|
||||||
"then": "Rilievo"
|
"then": "Rilievo"
|
||||||
},
|
|
||||||
"10": {
|
|
||||||
"then": "Azulejo (ornamento decorativo piastrellato spagnolo)"
|
|
||||||
},
|
|
||||||
"11": {
|
|
||||||
"then": "Mosaico di piastrelle"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Che tipo di opera d’arte è questo?",
|
"question": "Che tipo di opera d’arte è questo?",
|
||||||
|
@ -110,6 +113,24 @@
|
||||||
"text": "Ulteriori informazioni su questo sito web"
|
"text": "Ulteriori informazioni su questo sito web"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"artwork_subject": {
|
||||||
|
"question": "Che cosa rappresenta quest'opera d'arte?",
|
||||||
|
"render": "Quest'opera d'arte rappresenta {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}"
|
||||||
|
},
|
||||||
|
"doubles_as_bench": {
|
||||||
|
"mappings": {
|
||||||
|
"0": {
|
||||||
|
"then": "Quest'opera d'arte funge anche da panchina"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"then": "Quest'opera d'arte non funge anche da panchina"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"then": "Quest'opera d'arte non funge anche da panchina"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"question": "Quest'opera d'arte funge da panchina?"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": {
|
"title": {
|
||||||
|
@ -121,6 +142,79 @@
|
||||||
"render": "Opera d’arte"
|
"render": "Opera d’arte"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"atm": {
|
||||||
|
"description": "Sportello Bancomat per prelevare denaro",
|
||||||
|
"name": "Sportelli Bancomat",
|
||||||
|
"presets": {
|
||||||
|
"0": {
|
||||||
|
"title": "Uno sportello bancomat"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tagRenderings": {
|
||||||
|
"cash_in": {
|
||||||
|
"mappings": {
|
||||||
|
"0": {
|
||||||
|
"then": "Probabilmente non puoi depositare dei contanti in questo sportello bancomat"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"then": "Puoi depositare dei contanti in questo sportello bancomat"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"then": "Non puoi depositare dei contanti in questo sportello bancomat"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"question": "Puoi depositare dei contanti in questo sportello bancomat?"
|
||||||
|
},
|
||||||
|
"cash_out": {
|
||||||
|
"mappings": {
|
||||||
|
"0": {
|
||||||
|
"then": "Puoi prelevare dei contanti da questo sportello bancomat"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"then": "Puoi prelevare dei contanti da questo sportello bancomat"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"then": "Non puoi prelevare dei contanti da questo sportello bancomat"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"question": "Puoi prelevare dei contanti da questo sportello bancomat?"
|
||||||
|
},
|
||||||
|
"cash_out-denominations-notes": {
|
||||||
|
"mappings": {
|
||||||
|
"0": {
|
||||||
|
"then": "Si possono prelevare banconote da 5 euro"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"then": "Si possono prelevare banconote da 10 euro"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"then": "Si possono prelevare banconote da 20 euro"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"then": "Si possono prelevare banconote da 50 euro"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"then": "Si possono prelevare banconote da 100 euro"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"then": "Non si possono prelevare banconote da 200 euro"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"then": "Non si possono prelevare banconote da 500 euro"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"question": "Quali banconote si possono ritirare qui?"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"render": "Il nome di questo sportello bancomat è {name}"
|
||||||
|
},
|
||||||
|
"operator": {
|
||||||
|
"freeform": {
|
||||||
|
"placeholder": "Operatore"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"bench": {
|
"bench": {
|
||||||
"name": "Panchine",
|
"name": "Panchine",
|
||||||
"presets": {
|
"presets": {
|
||||||
|
@ -1898,27 +1992,6 @@
|
||||||
"1": {
|
"1": {
|
||||||
"question": "Riciclo di batterie"
|
"question": "Riciclo di batterie"
|
||||||
},
|
},
|
||||||
"2": {
|
|
||||||
"question": "Riciclo di confezioni per bevande"
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"question": "Riciclo di lattine"
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"question": "Riciclo di abiti"
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"question": "Riciclo di olio da cucina"
|
|
||||||
},
|
|
||||||
"6": {
|
|
||||||
"question": "Riciclo di olio da motore"
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"question": "Riciclo di umido"
|
|
||||||
},
|
|
||||||
"9": {
|
|
||||||
"question": "Riciclo di bottiglie di vetro"
|
|
||||||
},
|
|
||||||
"10": {
|
"10": {
|
||||||
"question": "Riciclo di vetro"
|
"question": "Riciclo di vetro"
|
||||||
},
|
},
|
||||||
|
@ -1946,8 +2019,29 @@
|
||||||
"19": {
|
"19": {
|
||||||
"question": "Riciclo di secco"
|
"question": "Riciclo di secco"
|
||||||
},
|
},
|
||||||
|
"2": {
|
||||||
|
"question": "Riciclo di confezioni per bevande"
|
||||||
|
},
|
||||||
"20": {
|
"20": {
|
||||||
"question": "Riciclo di secco"
|
"question": "Riciclo di secco"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"question": "Riciclo di lattine"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"question": "Riciclo di abiti"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"question": "Riciclo di olio da cucina"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"question": "Riciclo di olio da motore"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"question": "Riciclo di umido"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"question": "Riciclo di bottiglie di vetro"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -2000,27 +2094,6 @@
|
||||||
"1": {
|
"1": {
|
||||||
"then": "Cartoni per bevande"
|
"then": "Cartoni per bevande"
|
||||||
},
|
},
|
||||||
"2": {
|
|
||||||
"then": "Lattine"
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"then": "Abiti"
|
|
||||||
},
|
|
||||||
"4": {
|
|
||||||
"then": "Olio da cucina"
|
|
||||||
},
|
|
||||||
"5": {
|
|
||||||
"then": "Olio di motore"
|
|
||||||
},
|
|
||||||
"7": {
|
|
||||||
"then": "Verde"
|
|
||||||
},
|
|
||||||
"8": {
|
|
||||||
"then": "Umido"
|
|
||||||
},
|
|
||||||
"9": {
|
|
||||||
"then": "Bottiglie di vetro"
|
|
||||||
},
|
|
||||||
"10": {
|
"10": {
|
||||||
"then": "Vetro"
|
"then": "Vetro"
|
||||||
},
|
},
|
||||||
|
@ -2045,6 +2118,9 @@
|
||||||
"19": {
|
"19": {
|
||||||
"then": "Scarpe"
|
"then": "Scarpe"
|
||||||
},
|
},
|
||||||
|
"2": {
|
||||||
|
"then": "Lattine"
|
||||||
|
},
|
||||||
"20": {
|
"20": {
|
||||||
"then": "Piccoli elettrodomestici"
|
"then": "Piccoli elettrodomestici"
|
||||||
},
|
},
|
||||||
|
@ -2056,6 +2132,24 @@
|
||||||
},
|
},
|
||||||
"23": {
|
"23": {
|
||||||
"then": "Secco"
|
"then": "Secco"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"then": "Abiti"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"then": "Olio da cucina"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"then": "Olio di motore"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"then": "Verde"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"then": "Umido"
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"then": "Bottiglie di vetro"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"question": "Cosa si può riciclare qui?"
|
"question": "Cosa si può riciclare qui?"
|
||||||
|
|
|
@ -842,7 +842,7 @@
|
||||||
"hackerspaces": {
|
"hackerspaces": {
|
||||||
"description": "Auf dieser Karte können Sie Hackerspaces sehen, einen neuen Hackerspace hinzufügen oder Daten direkt aktualisieren",
|
"description": "Auf dieser Karte können Sie Hackerspaces sehen, einen neuen Hackerspace hinzufügen oder Daten direkt aktualisieren",
|
||||||
"shortDescription": "Eine Karte von Hackerspaces",
|
"shortDescription": "Eine Karte von Hackerspaces",
|
||||||
"title": "Hackerspaces"
|
"title": "Hackerspaces und Makerspaces"
|
||||||
},
|
},
|
||||||
"hailhydrant": {
|
"hailhydrant": {
|
||||||
"description": "Auf dieser Karte können Sie Hydranten, Feuerwachen, Krankenwagen und Feuerlöscher in Ihren bevorzugten Stadtvierteln finden und aktualisieren.",
|
"description": "Auf dieser Karte können Sie Hydranten, Feuerwachen, Krankenwagen und Feuerlöscher in Ihren bevorzugten Stadtvierteln finden und aktualisieren.",
|
||||||
|
@ -918,6 +918,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Etymologie-Thema ausschließen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
|
@ -973,13 +980,6 @@
|
||||||
"question": "GRB-Theme ausschließen"
|
"question": "GRB-Theme ausschließen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"10": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Etymologie-Thema ausschließen"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "Zentrum der Änderungssätze",
|
"name": "Zentrum der Änderungssätze",
|
||||||
|
@ -1056,6 +1056,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "Auf dieser Karte können Sie öffentlich zugängliche Orte für Rollstuhlfahrer ansehen, bearbeiten oder hinzufügen",
|
"description": "Auf dieser Karte können Sie öffentlich zugängliche Orte für Rollstuhlfahrer ansehen, bearbeiten oder hinzufügen",
|
||||||
"layers": {
|
"layers": {
|
||||||
|
"19": {
|
||||||
|
"override": {
|
||||||
|
"=title": {
|
||||||
|
"render": "Statistik"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"override": {
|
||||||
|
"+tagRenderings": {
|
||||||
|
"0": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"text": "Import"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"message": "Alle vorgeschlagenen Tags hinzufügen"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -1098,33 +1125,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Barrierefreie Parkplätze"
|
"name": "Barrierefreie Parkplätze"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"19": {
|
|
||||||
"override": {
|
|
||||||
"=title": {
|
|
||||||
"render": "Statistik"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"20": {
|
|
||||||
"override": {
|
|
||||||
"+tagRenderings": {
|
|
||||||
"0": {
|
|
||||||
"render": {
|
|
||||||
"special": {
|
|
||||||
"text": "Import"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"render": {
|
|
||||||
"special": {
|
|
||||||
"message": "Alle vorgeschlagenen Tags hinzufügen"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Auf Rädern"
|
"title": "Auf Rädern"
|
||||||
|
@ -1285,10 +1285,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Bahnhofsdetails ansehen, bearbeiten und hinzufügen",
|
"description": "Bahnhofsdetails ansehen, bearbeiten und hinzufügen",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Ebene mit Bahnhöfen",
|
|
||||||
"name": "Bahnhöfe"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Anzeigen der Züge, die von diesem Bahnhof abfahren",
|
"description": "Anzeigen der Züge, die von diesem Bahnhof abfahren",
|
||||||
"name": "Abfahrtstafeln",
|
"name": "Abfahrtstafeln",
|
||||||
|
@ -1320,6 +1316,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Abfahrtstafel"
|
"render": "Abfahrtstafel"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Ebene mit Bahnhöfen",
|
||||||
|
"name": "Bahnhöfe"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Bahnhöfe"
|
"title": "Bahnhöfe"
|
||||||
|
|
|
@ -842,7 +842,7 @@
|
||||||
"hackerspaces": {
|
"hackerspaces": {
|
||||||
"description": "On this map you can see hackerspaces, add a new hackerspace or update data directly",
|
"description": "On this map you can see hackerspaces, add a new hackerspace or update data directly",
|
||||||
"shortDescription": "A map of hackerspaces",
|
"shortDescription": "A map of hackerspaces",
|
||||||
"title": "Hackerspaces"
|
"title": "Hackerspaces and makerspaces"
|
||||||
},
|
},
|
||||||
"hailhydrant": {
|
"hailhydrant": {
|
||||||
"description": "On this map you can find and update hydrants, fire stations, ambulance stations, and extinguishers in your favorite neighborhoods.",
|
"description": "On this map you can find and update hydrants, fire stations, ambulance stations, and extinguishers in your favorite neighborhoods.",
|
||||||
|
@ -918,6 +918,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"10": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Exclude etymology theme"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"options": {
|
"options": {
|
||||||
"0": {
|
"0": {
|
||||||
|
@ -973,13 +980,6 @@
|
||||||
"question": "Exclude GRB theme"
|
"question": "Exclude GRB theme"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"10": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Exclude etymology theme"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "Changeset centers",
|
"name": "Changeset centers",
|
||||||
|
@ -1056,6 +1056,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "On this map, publicly weelchair accessible places are shown and can be easily added",
|
"description": "On this map, publicly weelchair accessible places are shown and can be easily added",
|
||||||
"layers": {
|
"layers": {
|
||||||
|
"19": {
|
||||||
|
"override": {
|
||||||
|
"=title": {
|
||||||
|
"render": "Statistics"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"override": {
|
||||||
|
"+tagRenderings": {
|
||||||
|
"0": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"text": "Import"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"message": "Add all the suggested tags"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -1098,33 +1125,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Disabled parking spaces"
|
"name": "Disabled parking spaces"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"19": {
|
|
||||||
"override": {
|
|
||||||
"=title": {
|
|
||||||
"render": "Statistics"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"20": {
|
|
||||||
"override": {
|
|
||||||
"+tagRenderings": {
|
|
||||||
"0": {
|
|
||||||
"render": {
|
|
||||||
"special": {
|
|
||||||
"text": "Import"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"render": {
|
|
||||||
"special": {
|
|
||||||
"message": "Add all the suggested tags"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "OnWheels"
|
"title": "OnWheels"
|
||||||
|
@ -1285,10 +1285,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "View, edit and add details to a train station",
|
"description": "View, edit and add details to a train station",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Layer showing train stations",
|
|
||||||
"name": "Train Stations"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Displays showing the trains that will leave from this station",
|
"description": "Displays showing the trains that will leave from this station",
|
||||||
"name": "Departures boards",
|
"name": "Departures boards",
|
||||||
|
@ -1320,6 +1316,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Departures board"
|
"render": "Departures board"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Layer showing train stations",
|
||||||
|
"name": "Train Stations"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Train Stations"
|
"title": "Train Stations"
|
||||||
|
|
|
@ -464,7 +464,7 @@
|
||||||
"description": "Este mapa muestra redes de nodos ciclistas y te permita añadir nodos nuevos de manera sencilla",
|
"description": "Este mapa muestra redes de nodos ciclistas y te permita añadir nodos nuevos de manera sencilla",
|
||||||
"layers": {
|
"layers": {
|
||||||
"0": {
|
"0": {
|
||||||
"name": "enlaces nodo a nodo",
|
"name": "Vínculos entre nodos",
|
||||||
"tagRenderings": {
|
"tagRenderings": {
|
||||||
"node2node-survey:date": {
|
"node2node-survey:date": {
|
||||||
"override": {
|
"override": {
|
||||||
|
@ -476,19 +476,34 @@
|
||||||
"title": {
|
"title": {
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "enlace nodo a nodo <strong>{ref}</strong>"
|
"then": "Vínculos entre nodos <strong>{ref}</strong>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"render": "enlace nodo a nodo"
|
"render": "Vínculos entre nodos"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"1": {
|
"1": {
|
||||||
"name": "nodos",
|
"name": "Nodos",
|
||||||
|
"presets": {
|
||||||
|
"0": {
|
||||||
|
"title": "un nodo cíclico"
|
||||||
|
}
|
||||||
|
},
|
||||||
"tagRenderings": {
|
"tagRenderings": {
|
||||||
"node-expected_rcn_route_relations": {
|
"node-expected_rcn_route_relations": {
|
||||||
|
"freeform": {
|
||||||
|
"placeholder": "Por ejemplo, 3"
|
||||||
|
},
|
||||||
"question": "¿A cuántos otros nodos ciclistas enlaza este nodo?",
|
"question": "¿A cuántos otros nodos ciclistas enlaza este nodo?",
|
||||||
"render": "Este nodo enlaza a {expected_rcn_route_relations} otros nodos ciclistas."
|
"render": "Este nodo enlaza a {expected_rcn_route_relations} otros nodos ciclistas."
|
||||||
},
|
},
|
||||||
|
"node-rxn_ref": {
|
||||||
|
"freeform": {
|
||||||
|
"placeholder": "Por ejemplo, 1"
|
||||||
|
},
|
||||||
|
"question": "¿Cuál es el número de referencia de este nodo cíclico?",
|
||||||
|
"render": "Este nodo cíclico tiene el número de referencia {rcn_ref}"
|
||||||
|
},
|
||||||
"node-survey:date": {
|
"node-survey:date": {
|
||||||
"override": {
|
"override": {
|
||||||
"question": "¿Cuándo fue sondeado este nodo ciclista por última vez?",
|
"question": "¿Cuándo fue sondeado este nodo ciclista por última vez?",
|
||||||
|
@ -500,10 +515,30 @@
|
||||||
"mappings": {
|
"mappings": {
|
||||||
"0": {
|
"0": {
|
||||||
"then": "nodo ciclista <strong>{rcn_ref}</strong>"
|
"then": "nodo ciclista <strong>{rcn_ref}</strong>"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"then": "Nodo de ciclo propuesto <strong>{proposed:rcn_ref}</strong>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"render": "nodo ciclista"
|
"render": "nodo ciclista"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"override": {
|
||||||
|
"name": "Indicadores de ciclismo",
|
||||||
|
"title": {
|
||||||
|
"render": "Hito ciclista"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"override": {
|
||||||
|
"presets": {
|
||||||
|
"0": {
|
||||||
|
"title": "Un marcador de ruta para un enlace de nodo a nodo"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Redes de Nodos Ciclistas"
|
"title": "Redes de Nodos Ciclistas"
|
||||||
|
@ -746,6 +781,21 @@
|
||||||
"layers": {
|
"layers": {
|
||||||
"0": {
|
"0": {
|
||||||
"override": {
|
"override": {
|
||||||
|
"filter+": {
|
||||||
|
"0": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "No se prefiere ningún tipo de aceite"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"question": "Solo muestra freiduras que utilizan aceite vegetal"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"question": "Solo muestra freiduras que utilizan aceite animal"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"name": "Tienda de patatas fritas"
|
"name": "Tienda de patatas fritas"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -792,7 +842,7 @@
|
||||||
"hackerspaces": {
|
"hackerspaces": {
|
||||||
"description": "En este mapa puedes ver hackerspaces, añadir un nuevo hackerspace o actualizar datos directamente",
|
"description": "En este mapa puedes ver hackerspaces, añadir un nuevo hackerspace o actualizar datos directamente",
|
||||||
"shortDescription": "Un mapa de hackerspaces",
|
"shortDescription": "Un mapa de hackerspaces",
|
||||||
"title": "Hackerspaces"
|
"title": "Hackerspaces and makerspaces"
|
||||||
},
|
},
|
||||||
"hailhydrant": {
|
"hailhydrant": {
|
||||||
"description": "En este mapa puedes encontrar y actualizar hidrantes contra incendios, estaciones de bomberos, estaciones de ambulancias y extintores en tus vecindarios favoritos.",
|
"description": "En este mapa puedes encontrar y actualizar hidrantes contra incendios, estaciones de bomberos, estaciones de ambulancias y extintores en tus vecindarios favoritos.",
|
||||||
|
@ -824,6 +874,10 @@
|
||||||
"description": "En este mapa encontrarás hoteles en tu zona",
|
"description": "En este mapa encontrarás hoteles en tu zona",
|
||||||
"title": "Hoteles"
|
"title": "Hoteles"
|
||||||
},
|
},
|
||||||
|
"icecream": {
|
||||||
|
"description": "Mapa de heladerías y máquinas expendedoras de helados",
|
||||||
|
"title": "Helado"
|
||||||
|
},
|
||||||
"indoors": {
|
"indoors": {
|
||||||
"description": "En este mapa se muestran los lugares cubiertos de acceso público",
|
"description": "En este mapa se muestran los lugares cubiertos de acceso público",
|
||||||
"title": "En interiores"
|
"title": "En interiores"
|
||||||
|
@ -844,6 +898,23 @@
|
||||||
},
|
},
|
||||||
"title": "Bordillos y cruces"
|
"title": "Bordillos y cruces"
|
||||||
},
|
},
|
||||||
|
"mapcomplete-changes": {
|
||||||
|
"description": "Este mapa muestra todos los cambios realizados con MapComplete",
|
||||||
|
"layers": {
|
||||||
|
"0": {
|
||||||
|
"description": "Muestra todos los cambios de MapComplete",
|
||||||
|
"filter": {
|
||||||
|
"0": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "El nombre del tema contiene {search}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"maproulette": {
|
"maproulette": {
|
||||||
"description": "Tema que muestra las tareas de MapRoulette, permitiendo buscarlas, filtrarlas y arreglarlas.",
|
"description": "Tema que muestra las tareas de MapRoulette, permitiendo buscarlas, filtrarlas y arreglarlas.",
|
||||||
"title": "Tareas de MapRoulette"
|
"title": "Tareas de MapRoulette"
|
||||||
|
@ -875,6 +946,33 @@
|
||||||
"onwheels": {
|
"onwheels": {
|
||||||
"description": "En este mapa se muestran los lugares accesibles al público en silla de ruedas, que pueden añadirse fácilmente",
|
"description": "En este mapa se muestran los lugares accesibles al público en silla de ruedas, que pueden añadirse fácilmente",
|
||||||
"layers": {
|
"layers": {
|
||||||
|
"19": {
|
||||||
|
"override": {
|
||||||
|
"=title": {
|
||||||
|
"render": "Estadísticas"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"override": {
|
||||||
|
"+tagRenderings": {
|
||||||
|
"0": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"text": "Importar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"render": {
|
||||||
|
"special": {
|
||||||
|
"message": "Añadir todas las etiquetas sugeridas"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"override": {
|
"override": {
|
||||||
"filter": {
|
"filter": {
|
||||||
|
@ -917,33 +1015,6 @@
|
||||||
"override": {
|
"override": {
|
||||||
"name": "Plazas de aparcamiento para discapacitados"
|
"name": "Plazas de aparcamiento para discapacitados"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"19": {
|
|
||||||
"override": {
|
|
||||||
"=title": {
|
|
||||||
"render": "Estadísticas"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"20": {
|
|
||||||
"override": {
|
|
||||||
"+tagRenderings": {
|
|
||||||
"0": {
|
|
||||||
"render": {
|
|
||||||
"special": {
|
|
||||||
"text": "Importar"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"render": {
|
|
||||||
"special": {
|
|
||||||
"message": "Añadir todas las etiquetas sugeridas"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Sobre ruedas"
|
"title": "Sobre ruedas"
|
||||||
|
@ -1104,10 +1175,6 @@
|
||||||
"stations": {
|
"stations": {
|
||||||
"description": "Ver, editar y añadir detalles a una estación de tren",
|
"description": "Ver, editar y añadir detalles a una estación de tren",
|
||||||
"layers": {
|
"layers": {
|
||||||
"3": {
|
|
||||||
"description": "Capa que muestra las estaciones de tren",
|
|
||||||
"name": "Estación de Tren"
|
|
||||||
},
|
|
||||||
"16": {
|
"16": {
|
||||||
"description": "Pantallas que muestran los trenes que saldrán de esta estación",
|
"description": "Pantallas que muestran los trenes que saldrán de esta estación",
|
||||||
"name": "Tableros de salidas",
|
"name": "Tableros de salidas",
|
||||||
|
@ -1139,6 +1206,10 @@
|
||||||
"title": {
|
"title": {
|
||||||
"render": "Tablero de salidas"
|
"render": "Tablero de salidas"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"description": "Capa que muestra las estaciones de tren",
|
||||||
|
"name": "Estación de Tren"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Estaciones de tren"
|
"title": "Estaciones de tren"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "mapcomplete",
|
"name": "mapcomplete",
|
||||||
"version": "0.36.12",
|
"version": "0.36.13",
|
||||||
"repository": "https://github.com/pietervdvn/MapComplete",
|
"repository": "https://github.com/pietervdvn/MapComplete",
|
||||||
"description": "A small website to edit OSM easily",
|
"description": "A small website to edit OSM easily",
|
||||||
"bugs": "https://github.com/pietervdvn/MapComplete/issues",
|
"bugs": "https://github.com/pietervdvn/MapComplete/issues",
|
||||||
|
|
|
@ -80,6 +80,7 @@ function genImages(dryrun = false) {
|
||||||
"ring",
|
"ring",
|
||||||
"robot",
|
"robot",
|
||||||
"SocialImageForeground",
|
"SocialImageForeground",
|
||||||
|
"speech_bubble",
|
||||||
"speech_bubble_black_outline",
|
"speech_bubble_black_outline",
|
||||||
"square",
|
"square",
|
||||||
"square_rounded",
|
"square_rounded",
|
||||||
|
|
|
@ -155,7 +155,6 @@ export class Mapillary extends ImageProvider {
|
||||||
Constants.mapillary_client_token_v4
|
Constants.mapillary_client_token_v4
|
||||||
const response = await Utils.downloadJsonCached(metadataUrl, 60 * 60)
|
const response = await Utils.downloadJsonCached(metadataUrl, 60 * 60)
|
||||||
const url = <string>response["thumb_1024_url"]
|
const url = <string>response["thumb_1024_url"]
|
||||||
console.log(response)
|
|
||||||
const url_hd = <string>response["thumb_original_url"]
|
const url_hd = <string>response["thumb_original_url"]
|
||||||
return {
|
return {
|
||||||
id: "" + mapillaryId,
|
id: "" + mapillaryId,
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import ImageProvider, { ProvidedImage } from "./ImageProvider"
|
import ImageProvider, { ProvidedImage } from "./ImageProvider"
|
||||||
import BaseUIElement from "../../UI/BaseUIElement"
|
import BaseUIElement from "../../UI/BaseUIElement"
|
||||||
import Svg from "../../Svg"
|
|
||||||
import { Utils } from "../../Utils"
|
import { Utils } from "../../Utils"
|
||||||
import { LicenseInfo } from "./LicenseInfo"
|
import { LicenseInfo } from "./LicenseInfo"
|
||||||
import Wikimedia from "../Web/Wikimedia"
|
import Wikimedia from "../Web/Wikimedia"
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import ChangeTagAction from "./ChangeTagAction"
|
import ChangeTagAction from "./ChangeTagAction"
|
||||||
import { Tag } from "../../Tags/Tag"
|
import { Tag } from "../../Tags/Tag"
|
||||||
import OsmChangeAction from "./OsmChangeAction"
|
import OsmChangeAction from "./OsmChangeAction"
|
||||||
import { Changes } from "../Changes"
|
|
||||||
import { ChangeDescription } from "./ChangeDescription"
|
import { ChangeDescription } from "./ChangeDescription"
|
||||||
import { Store } from "../../UIEventSource"
|
import { Store } from "../../UIEventSource"
|
||||||
|
|
||||||
|
@ -40,7 +39,7 @@ export default class LinkImageAction extends OsmChangeAction {
|
||||||
protected CreateChangeDescriptions(): Promise<ChangeDescription[]> {
|
protected CreateChangeDescriptions(): Promise<ChangeDescription[]> {
|
||||||
let key = this._proposedKey
|
let key = this._proposedKey
|
||||||
let i = 0
|
let i = 0
|
||||||
const currentTags = this._currentTags.data
|
const currentTags: Record<string, string> = this._currentTags.data
|
||||||
const url = this._url
|
const url = this._url
|
||||||
while (currentTags[key] !== undefined && currentTags[key] !== url) {
|
while (currentTags[key] !== undefined && currentTags[key] !== url) {
|
||||||
key = this._proposedKey + ":" + i
|
key = this._proposedKey + ":" + i
|
||||||
|
|
|
@ -539,7 +539,7 @@ export class Changes {
|
||||||
openChangeset
|
openChangeset
|
||||||
)
|
)
|
||||||
|
|
||||||
console.log("Upload successfull!")
|
console.log("Upload successful!")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,11 +24,12 @@ import Table from "../../UI/Base/Table"
|
||||||
import FilterConfigJson from "./Json/FilterConfigJson"
|
import FilterConfigJson from "./Json/FilterConfigJson"
|
||||||
import { Overpass } from "../../Logic/Osm/Overpass"
|
import { Overpass } from "../../Logic/Osm/Overpass"
|
||||||
import { FixedUiElement } from "../../UI/Base/FixedUiElement"
|
import { FixedUiElement } from "../../UI/Base/FixedUiElement"
|
||||||
import Svg from "../../Svg"
|
|
||||||
import { ImmutableStore } from "../../Logic/UIEventSource"
|
import { ImmutableStore } from "../../Logic/UIEventSource"
|
||||||
import { OsmTags } from "../OsmFeature"
|
import { OsmTags } from "../OsmFeature"
|
||||||
import Constants from "../Constants"
|
import Constants from "../Constants"
|
||||||
import { QuestionableTagRenderingConfigJson } from "./Json/QuestionableTagRenderingConfigJson"
|
import { QuestionableTagRenderingConfigJson } from "./Json/QuestionableTagRenderingConfigJson"
|
||||||
|
import SvelteUIElement from "../../UI/Base/SvelteUIElement"
|
||||||
|
import Statistics from "../../assets/svg/Statistics.svelte"
|
||||||
|
|
||||||
export default class LayerConfig extends WithContextLoader {
|
export default class LayerConfig extends WithContextLoader {
|
||||||
public static readonly syncSelectionAllowed = ["no", "local", "theme-only", "global"] as const
|
public static readonly syncSelectionAllowed = ["no", "local", "theme-only", "global"] as const
|
||||||
|
@ -466,7 +467,7 @@ export default class LayerConfig extends WithContextLoader {
|
||||||
new Link(
|
new Link(
|
||||||
Utils.runningFromConsole
|
Utils.runningFromConsole
|
||||||
? "<img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'>"
|
? "<img src='https://mapcomplete.org/assets/svg/statistics.svg' height='18px'>"
|
||||||
: Svg.statistics_svg().SetClass("w-4 h-4 mr-2"),
|
: new SvelteUIElement(Statistics, {class: "w-4 h-4 mr-2"}),
|
||||||
"https://taginfo.openstreetmap.org/keys/" + values.key + "#values",
|
"https://taginfo.openstreetmap.org/keys/" + values.key + "#values",
|
||||||
true
|
true
|
||||||
),
|
),
|
||||||
|
|
|
@ -496,7 +496,8 @@ export default class TagRenderingConfig {
|
||||||
for (const leftover of leftovers) {
|
for (const leftover of leftovers) {
|
||||||
applicableMappings.push({
|
applicableMappings.push({
|
||||||
then: new TypedTranslation<object>(
|
then: new TypedTranslation<object>(
|
||||||
this.render.replace("{" + this.freeform.key + "}", leftover).translations
|
this.render.replace("{" + this.freeform.key + "}", leftover).translations,
|
||||||
|
this.render.context
|
||||||
),
|
),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,6 +62,7 @@ import FavouritesFeatureSource from "../Logic/FeatureSource/Sources/FavouritesFe
|
||||||
import { ProvidedImage } from "../Logic/ImageProviders/ImageProvider"
|
import { ProvidedImage } from "../Logic/ImageProviders/ImageProvider"
|
||||||
import { GeolocationControlState } from "../UI/BigComponents/GeolocationControl"
|
import { GeolocationControlState } from "../UI/BigComponents/GeolocationControl"
|
||||||
import Zoomcontrol from "../UI/Zoomcontrol"
|
import Zoomcontrol from "../UI/Zoomcontrol"
|
||||||
|
import Locale from "../UI/i18n/Locale"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -654,6 +655,16 @@ export default class ThemeViewState implements SpecialVisualizationState {
|
||||||
)
|
)
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Hotkeys.RegisterHotkey(
|
||||||
|
{
|
||||||
|
shift: "T",
|
||||||
|
},
|
||||||
|
Translations.t.hotkeyDocumentation.translationMode,
|
||||||
|
() => {
|
||||||
|
Locale.showLinkToWeblate.setData(!Locale.showLinkToWeblate.data)
|
||||||
|
}
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
import BaseUIElement from "../BaseUIElement"
|
|
||||||
import { VariableUiElement } from "./VariableUIElement"
|
|
||||||
import { Stores } from "../../Logic/UIEventSource"
|
|
||||||
import Loading from "./Loading"
|
|
||||||
|
|
||||||
export default class AsyncLazy extends BaseUIElement {
|
|
||||||
private readonly _f: () => Promise<BaseUIElement>
|
|
||||||
|
|
||||||
constructor(f: () => Promise<BaseUIElement>) {
|
|
||||||
super()
|
|
||||||
this._f = f
|
|
||||||
}
|
|
||||||
|
|
||||||
protected InnerConstructElement(): HTMLElement {
|
|
||||||
// The caching of the BaseUIElement will guarantee that _f will only be called once
|
|
||||||
|
|
||||||
return new VariableUiElement(
|
|
||||||
Stores.FromPromise(this._f()).map((el) => {
|
|
||||||
if (el === undefined) {
|
|
||||||
return new Loading()
|
|
||||||
}
|
|
||||||
return el
|
|
||||||
})
|
|
||||||
).ConstructElement()
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
import BaseUIElement from "../BaseUIElement"
|
|
||||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
|
||||||
import { VariableUiElement } from "./VariableUIElement"
|
|
||||||
import Combine from "./Combine"
|
|
||||||
import Locale from "../i18n/Locale"
|
|
||||||
import { Utils } from "../../Utils"
|
|
||||||
|
|
||||||
export default class FilteredCombine extends VariableUiElement {
|
|
||||||
/**
|
|
||||||
* Only shows item matching the search
|
|
||||||
* If predicate of an item is undefined, it will be filtered out as soon as a non-null or non-empty search term is given
|
|
||||||
* @param entries
|
|
||||||
* @param searchedValue
|
|
||||||
* @param options
|
|
||||||
*/
|
|
||||||
constructor(
|
|
||||||
entries: {
|
|
||||||
element: BaseUIElement | string
|
|
||||||
predicate?: (s: string) => boolean
|
|
||||||
}[],
|
|
||||||
searchedValue: UIEventSource<string>,
|
|
||||||
options?: {
|
|
||||||
onEmpty?: BaseUIElement | string
|
|
||||||
innerClasses: string
|
|
||||||
}
|
|
||||||
) {
|
|
||||||
entries = Utils.NoNull(entries)
|
|
||||||
super(
|
|
||||||
searchedValue.map(
|
|
||||||
(searchTerm) => {
|
|
||||||
if (searchTerm === undefined || searchTerm === "") {
|
|
||||||
return new Combine(entries.map((e) => e.element)).SetClass(
|
|
||||||
options?.innerClasses ?? ""
|
|
||||||
)
|
|
||||||
}
|
|
||||||
const kept = entries.filter(
|
|
||||||
(entry) => entry?.predicate !== undefined && entry.predicate(searchTerm)
|
|
||||||
)
|
|
||||||
if (kept.length === 0) {
|
|
||||||
return options?.onEmpty
|
|
||||||
}
|
|
||||||
return new Combine(kept.map((entry) => entry.element)).SetClass(
|
|
||||||
options?.innerClasses ?? ""
|
|
||||||
)
|
|
||||||
},
|
|
||||||
[Locale.language]
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -2,13 +2,14 @@
|
||||||
import ToSvelte from "./ToSvelte.svelte"
|
import ToSvelte from "./ToSvelte.svelte"
|
||||||
import Svg from "../../Svg"
|
import Svg from "../../Svg"
|
||||||
import { twMerge } from "tailwind-merge"
|
import { twMerge } from "tailwind-merge"
|
||||||
|
import Loading from "../../assets/svg/Loading.svelte"
|
||||||
|
|
||||||
export let cls: string = undefined
|
export let cls: string = undefined
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class={twMerge("flex p-1 pl-2", cls)}>
|
<div class={twMerge("flex p-1 pl-2", cls)}>
|
||||||
<div class="min-w-6 h-6 w-6 shrink-0 animate-spin self-center">
|
<div class="min-w-6 h-6 w-6 shrink-0 animate-spin self-center">
|
||||||
<ToSvelte construct={Svg.loading_svg()} />
|
<Loading/>
|
||||||
</div>
|
</div>
|
||||||
<div class="ml-2">
|
<div class="ml-2">
|
||||||
<slot />
|
<slot />
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
import BaseUIElement from "../BaseUIElement"
|
import BaseUIElement from "../BaseUIElement"
|
||||||
import { Store, UIEventSource } from "../../Logic/UIEventSource"
|
import { Store, UIEventSource } from "../../Logic/UIEventSource"
|
||||||
import { UIElement } from "../UIElement"
|
import { UIElement } from "../UIElement"
|
||||||
import { VariableUiElement } from "./VariableUIElement"
|
|
||||||
import Lazy from "./Lazy"
|
|
||||||
import Loading from "./Loading"
|
|
||||||
import SvelteUIElement from "./SvelteUIElement"
|
import SvelteUIElement from "./SvelteUIElement"
|
||||||
import SubtleLink from "./SubtleLink.svelte"
|
import SubtleLink from "./SubtleLink.svelte"
|
||||||
import Translations from "../i18n/Translations"
|
import Translations from "../i18n/Translations"
|
||||||
|
|
|
@ -21,8 +21,8 @@
|
||||||
export let layer: LayerConfig
|
export let layer: LayerConfig
|
||||||
|
|
||||||
export let linkable = true
|
export let linkable = true
|
||||||
let isLinked = Object.values(tags.data).some((v) => image.pictureUrl === v)
|
let targetValue = Object.values(image.osmTags)[0]
|
||||||
|
let isLinked = new UIEventSource(Object.values(tags.data).some((v) => targetValue === v))
|
||||||
const t = Translations.t.image.nearby
|
const t = Translations.t.image.nearby
|
||||||
const providedImage: ProvidedImage = {
|
const providedImage: ProvidedImage = {
|
||||||
url: image.thumbUrl ?? image.pictureUrl,
|
url: image.thumbUrl ?? image.pictureUrl,
|
||||||
|
@ -33,10 +33,11 @@
|
||||||
id: Object.values(image.osmTags)[0],
|
id: Object.values(image.osmTags)[0],
|
||||||
}
|
}
|
||||||
|
|
||||||
$: {
|
function applyLink(isLinked :boolean) {
|
||||||
|
console.log("Applying linked image", isLinked, targetValue)
|
||||||
const currentTags = tags.data
|
const currentTags = tags.data
|
||||||
const key = Object.keys(image.osmTags)[0]
|
const key = Object.keys(image.osmTags)[0]
|
||||||
const url = image.osmTags[key]
|
const url = targetValue
|
||||||
if (isLinked) {
|
if (isLinked) {
|
||||||
const action = new LinkImageAction(currentTags.id, key, url, tags, {
|
const action = new LinkImageAction(currentTags.id, key, url, tags, {
|
||||||
theme: tags.data._orig_theme ?? state.layout.id,
|
theme: tags.data._orig_theme ?? state.layout.id,
|
||||||
|
@ -56,6 +57,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
isLinked.addCallback(isLinked => applyLink(isLinked))
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="flex w-fit shrink-0 flex-col">
|
<div class="flex w-fit shrink-0 flex-col">
|
||||||
|
@ -68,7 +70,7 @@
|
||||||
</div>
|
</div>
|
||||||
{#if linkable}
|
{#if linkable}
|
||||||
<label>
|
<label>
|
||||||
<input bind:checked={isLinked} type="checkbox" />
|
<input bind:checked={$isLinked} type="checkbox" />
|
||||||
<SpecialTranslation t={t.link} {tags} {state} {layer} {feature} />
|
<SpecialTranslation t={t.link} {tags} {state} {layer} {feature} />
|
||||||
</label>
|
</label>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
|
@ -35,6 +35,10 @@ export default class PhoneValidator extends Validator {
|
||||||
if (country !== undefined) {
|
if (country !== undefined) {
|
||||||
countryCode = country()?.toUpperCase()
|
countryCode = country()?.toUpperCase()
|
||||||
}
|
}
|
||||||
|
if (this.isShortCode(str, countryCode)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
return parsePhoneNumberFromString(str, countryCode)?.isValid() ?? false
|
return parsePhoneNumberFromString(str, countryCode)?.isValid() ?? false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,9 +50,28 @@ export default class PhoneValidator extends Validator {
|
||||||
if (country) {
|
if (country) {
|
||||||
countryCode = country()
|
countryCode = country()
|
||||||
}
|
}
|
||||||
|
if (this.isShortCode(str, countryCode?.toUpperCase())) {
|
||||||
|
return str
|
||||||
|
}
|
||||||
return parsePhoneNumberFromString(
|
return parsePhoneNumberFromString(
|
||||||
str,
|
str,
|
||||||
countryCode?.toUpperCase() as any
|
countryCode?.toUpperCase() as any
|
||||||
)?.formatInternational()
|
)?.formatInternational()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates if the given string is a special 'short code' valid in the given country
|
||||||
|
* see https://nl.wikipedia.org/wiki/Short_code
|
||||||
|
* @param str a possible phone number
|
||||||
|
* @param country the upper case, two-letter code for a country
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private isShortCode(str: string, country: string) {
|
||||||
|
if (country == "BE" && str.length === 4 && str.match(/[0-9]{4}/)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
if (country == "NL" && str.length === 4 && str.match(/14[0-9]{3}/)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import { Feature, Point } from "geojson"
|
||||||
import SvelteUIElement from "../Base/SvelteUIElement"
|
import SvelteUIElement from "../Base/SvelteUIElement"
|
||||||
import Confirm from "../../assets/svg/Confirm.svelte"
|
import Confirm from "../../assets/svg/Confirm.svelte"
|
||||||
import Relocation from "../../assets/svg/Relocation.svelte"
|
import Relocation from "../../assets/svg/Relocation.svelte"
|
||||||
|
import Location from "../../assets/svg/Location.svelte"
|
||||||
|
|
||||||
export interface MoveReason {
|
export interface MoveReason {
|
||||||
text: Translation | string
|
text: Translation | string
|
||||||
|
@ -62,7 +63,7 @@ export class MoveWizardState {
|
||||||
reasons.push({
|
reasons.push({
|
||||||
text: t.reasons.reasonInaccurate,
|
text: t.reasons.reasonInaccurate,
|
||||||
invitingText: t.inviteToMove.reasonInaccurate,
|
invitingText: t.inviteToMove.reasonInaccurate,
|
||||||
icon: new SvelteUIElement(Confirm),
|
icon: new SvelteUIElement(Location),
|
||||||
changesetCommentValue: "improve_accuracy",
|
changesetCommentValue: "improve_accuracy",
|
||||||
lockBounds: true,
|
lockBounds: true,
|
||||||
includeSearch: false,
|
includeSearch: false,
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
import Combine from "../../Base/Combine"
|
import Combine from "../../Base/Combine"
|
||||||
import BaseUIElement from "../../BaseUIElement"
|
import BaseUIElement from "../../BaseUIElement"
|
||||||
import Svg from "../../../Svg"
|
|
||||||
import Link from "../../Base/Link"
|
import Link from "../../Base/Link"
|
||||||
import { FixedUiElement } from "../../Base/FixedUiElement"
|
import { FixedUiElement } from "../../Base/FixedUiElement"
|
||||||
import Translations from "../../i18n/Translations"
|
import Translations from "../../i18n/Translations"
|
||||||
|
@ -11,6 +10,10 @@ import { Stores, UIEventSource } from "../../../Logic/UIEventSource"
|
||||||
import { OsmConnection } from "../../../Logic/Osm/OsmConnection"
|
import { OsmConnection } from "../../../Logic/Osm/OsmConnection"
|
||||||
import { VariableUiElement } from "../../Base/VariableUIElement"
|
import { VariableUiElement } from "../../Base/VariableUIElement"
|
||||||
import { SpecialVisualizationState } from "../../SpecialVisualization"
|
import { SpecialVisualizationState } from "../../SpecialVisualization"
|
||||||
|
import SvelteUIElement from "../../Base/SvelteUIElement"
|
||||||
|
import Note from "../../../assets/svg/Note.svelte"
|
||||||
|
import Resolved from "../../../assets/svg/Resolved.svelte"
|
||||||
|
import Speech_bubble from "../../../assets/svg/Speech_bubble.svelte"
|
||||||
|
|
||||||
export default class NoteCommentElement extends Combine {
|
export default class NoteCommentElement extends Combine {
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -32,11 +35,11 @@ export default class NoteCommentElement extends Combine {
|
||||||
|
|
||||||
let actionIcon: BaseUIElement
|
let actionIcon: BaseUIElement
|
||||||
if (comment.action === "opened" || comment.action === "reopened") {
|
if (comment.action === "opened" || comment.action === "reopened") {
|
||||||
actionIcon = Svg.note_svg()
|
actionIcon = new SvelteUIElement(Note)
|
||||||
} else if (comment.action === "closed") {
|
} else if (comment.action === "closed") {
|
||||||
actionIcon = Svg.resolved_svg()
|
actionIcon = new SvelteUIElement(Resolved)
|
||||||
} else {
|
} else {
|
||||||
actionIcon = Svg.speech_bubble_svg()
|
actionIcon = new SvelteUIElement(Speech_bubble)
|
||||||
}
|
}
|
||||||
|
|
||||||
let user: BaseUIElement
|
let user: BaseUIElement
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
import type { SpecialVisualizationState } from "../../SpecialVisualization"
|
import type { SpecialVisualizationState } from "../../SpecialVisualization"
|
||||||
import type { Feature } from "geojson"
|
import type { Feature } from "geojson"
|
||||||
import { Store, UIEventSource } from "../../../Logic/UIEventSource"
|
import { Store, UIEventSource } from "../../../Logic/UIEventSource"
|
||||||
import { onDestroy } from "svelte"
|
|
||||||
import LayerConfig from "../../../Models/ThemeConfig/LayerConfig"
|
import LayerConfig from "../../../Models/ThemeConfig/LayerConfig"
|
||||||
import { twMerge } from "tailwind-merge"
|
import { twMerge } from "tailwind-merge"
|
||||||
|
|
||||||
|
@ -24,7 +23,7 @@
|
||||||
throw "Config is undefined in tagRenderingAnswer"
|
throw "Config is undefined in tagRenderingAnswer"
|
||||||
}
|
}
|
||||||
let trs: Store<{ then: Translation; icon?: string; iconClass?: string }[]> = tags.mapD((tags) =>
|
let trs: Store<{ then: Translation; icon?: string; iconClass?: string }[]> = tags.mapD((tags) =>
|
||||||
Utils.NoNull(config?.GetRenderValues(tags))
|
Utils.NoNull(config?.GetRenderValues(tags)),
|
||||||
)
|
)
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,6 @@ export default class Zoomcontrol {
|
||||||
this._allowZooming.addCallback((allowed) => {
|
this._allowZooming.addCallback((allowed) => {
|
||||||
this.apply(allowed ? Zoomcontrol.initialValue : Zoomcontrol.noZoom)
|
this.apply(allowed ? Zoomcontrol.initialValue : Zoomcontrol.noZoom)
|
||||||
})
|
})
|
||||||
Stores.Chronic(1000).addCallback((_) =>
|
|
||||||
console.log(this.viewportElement.getAttribute("content"))
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private _resetZoom() {
|
private _resetZoom() {
|
||||||
|
|
26
src/index.ts
26
src/index.ts
|
@ -5,11 +5,12 @@ import ThemeViewGUI from "./UI/ThemeViewGUI.svelte"
|
||||||
import { FixedUiElement } from "./UI/Base/FixedUiElement"
|
import { FixedUiElement } from "./UI/Base/FixedUiElement"
|
||||||
import Combine from "./UI/Base/Combine"
|
import Combine from "./UI/Base/Combine"
|
||||||
import { SubtleButton } from "./UI/Base/SubtleButton"
|
import { SubtleButton } from "./UI/Base/SubtleButton"
|
||||||
import Svg from "./Svg"
|
|
||||||
import { Utils } from "./Utils"
|
import { Utils } from "./Utils"
|
||||||
|
import Download from "./assets/svg/Download.svelte"
|
||||||
|
|
||||||
function webgl_support() {
|
function webgl_support() {
|
||||||
try {
|
try {
|
||||||
var canvas = document.createElement("canvas")
|
const canvas = document.createElement("canvas")
|
||||||
return (
|
return (
|
||||||
!!window.WebGLRenderingContext &&
|
!!window.WebGLRenderingContext &&
|
||||||
(canvas.getContext("webgl") || canvas.getContext("experimental-webgl"))
|
(canvas.getContext("webgl") || canvas.getContext("experimental-webgl"))
|
||||||
|
@ -18,6 +19,7 @@ function webgl_support() {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
try {
|
try {
|
||||||
if (!webgl_support()) {
|
if (!webgl_support()) {
|
||||||
|
@ -31,16 +33,22 @@ try {
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
console.error("Error while initializing: ", err, err.stack)
|
console.error("Error while initializing: ", err, err.stack)
|
||||||
|
const customDefinition = DetermineLayout.getCustomDefinition()
|
||||||
new Combine([
|
new Combine([
|
||||||
new FixedUiElement(err).SetClass("block alert"),
|
new FixedUiElement(err).SetClass("block alert"),
|
||||||
|
|
||||||
new SubtleButton(Svg.download_svg(), "Download the raw file").onClick(() =>
|
customDefinition?.length > 0
|
||||||
Utils.offerContentsAsDownloadableFile(
|
? new SubtleButton(
|
||||||
DetermineLayout.getCustomDefinition(),
|
new SvelteUIElement(Download),
|
||||||
"mapcomplete-theme.json",
|
"Download the raw file"
|
||||||
{ mimetype: "application/json" }
|
).onClick(() =>
|
||||||
)
|
Utils.offerContentsAsDownloadableFile(
|
||||||
),
|
DetermineLayout.getCustomDefinition(),
|
||||||
|
"mapcomplete-theme.json",
|
||||||
|
{ mimetype: "application/json" }
|
||||||
|
)
|
||||||
|
)
|
||||||
|
: undefined,
|
||||||
]).AttachTo("maindiv")
|
]).AttachTo("maindiv")
|
||||||
})
|
})
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue