Merge branch 'develop' of github.com:pietervdvn/MapComplete into develop

This commit is contained in:
Pieter Vander Vennet 2024-04-27 01:49:07 +02:00
commit 4ced5c99c8
16 changed files with 128 additions and 88 deletions

View file

@ -934,7 +934,7 @@
"en": "This bench does <span class='subtle'>(probably)</span> not have an inscription", "en": "This bench does <span class='subtle'>(probably)</span> not have an inscription",
"nl": "Deze bank heeft <span class='subtle'>(waarschijnlijk)</span> geen inscriptie", "nl": "Deze bank heeft <span class='subtle'>(waarschijnlijk)</span> geen inscriptie",
"de": "Diese Bank hat <span class='subtle'>(wahrscheinlich)</span> keine Inschrift", "de": "Diese Bank hat <span class='subtle'>(wahrscheinlich)</span> keine Inschrift",
"fr": "Ce banc n'a<span class='subtle'>(probablement)</span> pas d'inscription", "fr": "Ce banc n'a <span class='subtle'>(probablement)</span> pas d'inscription",
"es": "Este banco <span class='subtle'>(probablemente)</span> no tiene inscripción", "es": "Este banco <span class='subtle'>(probablemente)</span> no tiene inscripción",
"ca": "Aquest banc <span class='subtle'>(probablement)</span> no té cap inscripció", "ca": "Aquest banc <span class='subtle'>(probablement)</span> no té cap inscripció",
"cs": "Tato lavička <span class='subtle'>(pravděpodobně)</span> nemá nápis", "cs": "Tato lavička <span class='subtle'>(pravděpodobně)</span> nemá nápis",
@ -1020,7 +1020,8 @@
"cs": "Tato lavička <span class=\"subtle\">pravděpodobně</span> nemá integrované umělecké dílo", "cs": "Tato lavička <span class=\"subtle\">pravděpodobně</span> nemá integrované umělecké dílo",
"pt_BR": "Esse banco <span class=\"subtle\">provavelmente</span> não tem uma obra de arte integrada", "pt_BR": "Esse banco <span class=\"subtle\">provavelmente</span> não tem uma obra de arte integrada",
"es": "Este banco <span class=\"subtle\">probablemente</span> no tiene una obra de arte integrada", "es": "Este banco <span class=\"subtle\">probablemente</span> no tiene una obra de arte integrada",
"pt": "Este banco <span class=\"subtle\">provavelmente</span> não tem uma obra de arte integrada" "pt": "Este banco <span class=\"subtle\">provavelmente</span> não tem uma obra de arte integrada",
"fr": "Ce banc ne comporte <span class=\"subtle\">probablement</span> pas d'œuvre d'art"
}, },
"hideInAnswer": true "hideInAnswer": true
} }

View file

@ -2506,7 +2506,7 @@
"title": { "title": {
"en": "charging station for cars", "en": "charging station for cars",
"nl": "oplaadstation voor elektrische auto's", "nl": "oplaadstation voor elektrische auto's",
"de": "Ladestation für Elektrofahrräder" "de": "Ladestation für Autos"
} }
} }
], ],

View file

@ -186,7 +186,8 @@
"alsoShowIf": "shape=", "alsoShowIf": "shape=",
"then": { "then": {
"en": "This elevator has a rectangular shape", "en": "This elevator has a rectangular shape",
"de": "Dieser Aufzug hat eine rechteckige Form" "de": "Dieser Aufzug hat eine rechteckige Form",
"fr": "Cet ascenseur est de forme rectangulaire"
}, },
"icon": "./assets/svg/square.svg" "icon": "./assets/svg/square.svg"
}, },

View file

@ -352,7 +352,8 @@
"en": "This is a classroom", "en": "This is a classroom",
"de": "Dies ist ein Klassenzimmer", "de": "Dies ist ein Klassenzimmer",
"ca": "Açò és una aula", "ca": "Açò és una aula",
"cs": "Jedná se o učebnu" "cs": "Jedná se o učebnu",
"fr": "C'est une salle de classe"
}, },
"icon": "./assets/layers/indoors/room_class.svg" "icon": "./assets/layers/indoors/room_class.svg"
}, },
@ -449,7 +450,8 @@
"en": "This is an office", "en": "This is an office",
"de": "Dies ist ein Büro", "de": "Dies ist ein Büro",
"ca": "Açò és una oficina", "ca": "Açò és una oficina",
"cs": "Jedná se o kancelář" "cs": "Jedná se o kancelář",
"fr": "C'est un bureau"
}, },
"icon": "./assets/layers/indoors/room_office.svg" "icon": "./assets/layers/indoors/room_office.svg"
}, },

View file

@ -1,16 +1,13 @@
{ {
"id": "mapcomplete-changes", "id": "mapcomplete-changes",
"title": { "title": {
"en": "Changes made with MapComplete", "en": "Changes made with MapComplete"
"de": "Änderungen mit MapComplete"
}, },
"shortDescription": { "shortDescription": {
"en": "Shows changes made by MapComplete", "en": "Shows changes made by MapComplete"
"de": "Änderungen von MapComplete anzeigen"
}, },
"description": { "description": {
"en": "This maps shows all the changes made with MapComplete", "en": "This maps shows all the changes made with MapComplete"
"de": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen"
}, },
"icon": "./assets/svg/logo.svg", "icon": "./assets/svg/logo.svg",
"hideFromOverview": true, "hideFromOverview": true,
@ -21,8 +18,7 @@
{ {
"id": "mapcomplete-changes", "id": "mapcomplete-changes",
"name": { "name": {
"en": "Changeset centers", "en": "Changeset centers"
"de": "Zentrum der Änderungssätze"
}, },
"minzoom": 0, "minzoom": 0,
"source": { "source": {
@ -32,48 +28,41 @@
}, },
"title": { "title": {
"render": { "render": {
"en": "Changeset for {theme}", "en": "Changeset for {theme}"
"de": "Änderungssatz für {theme}"
} }
}, },
"description": { "description": {
"en": "Shows all MapComplete changes", "en": "Shows all MapComplete changes"
"de": "Alle MapComplete-Änderungen anzeigen"
}, },
"tagRenderings": [ "tagRenderings": [
{ {
"id": "show_changeset_id", "id": "show_changeset_id",
"render": { "render": {
"en": "Changeset <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>", "en": "Changeset <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
"de": "Änderungssatz <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
} }
}, },
{ {
"id": "contributor", "id": "contributor",
"question": { "question": {
"en": "What contributor did make this change?", "en": "What contributor did make this change?"
"de": "Welcher Mitwirkende hat diese Änderung vorgenommen?"
}, },
"freeform": { "freeform": {
"key": "user" "key": "user"
}, },
"render": { "render": {
"en": "Change made by <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>", "en": "Change made by <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
"de": "Änderung vorgenommen von <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
} }
}, },
{ {
"id": "theme-id", "id": "theme-id",
"question": { "question": {
"en": "What theme was used to make this change?", "en": "What theme was used to make this change?"
"de": "Welches Thema wurde für die Änderung verwendet?"
}, },
"freeform": { "freeform": {
"key": "theme" "key": "theme"
}, },
"render": { "render": {
"en": "Change with theme <a href='https://mapcomplete.org/{theme}'>{theme}</a>", "en": "Change with theme <a href='https://mapcomplete.org/{theme}'>{theme}</a>"
"de": "Geändert mit Thema <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>"
} }
}, },
{ {
@ -82,23 +71,19 @@
"key": "locale" "key": "locale"
}, },
"question": { "question": {
"en": "What locale (language) was this change made in?", "en": "What locale (language) was this change made in?"
"de": "In welcher Benutzersprache wurde die Änderung vorgenommen?"
}, },
"render": { "render": {
"en": "User locale is {locale}", "en": "User locale is {locale}"
"de": "Benutzersprache {locale}"
} }
}, },
{ {
"id": "host", "id": "host",
"render": { "render": {
"en": "Change with with <a href='{host}'>{host}</a>", "en": "Change with with <a href='{host}'>{host}</a>"
"de": "Änderung über <a href='{host}'>{host}</a>"
}, },
"question": { "question": {
"en": "What host (website) was this change made with?", "en": "What host (website) was this change made with?"
"de": "Über welchen Host (Webseite) wurde diese Änderung vorgenommen?"
}, },
"freeform": { "freeform": {
"key": "host" "key": "host"
@ -119,12 +104,10 @@
{ {
"id": "version", "id": "version",
"question": { "question": {
"en": "What version of MapComplete was used to make this change?", "en": "What version of MapComplete was used to make this change?"
"de": "Mit welcher MapComplete Version wurde die Änderung vorgenommen?"
}, },
"render": { "render": {
"en": "Made with {editor}", "en": "Made with {editor}"
"de": "Erstellt mit {editor}"
}, },
"freeform": { "freeform": {
"key": "editor" "key": "editor"
@ -506,8 +489,7 @@
} }
], ],
"question": { "question": {
"en": "Themename contains {search}", "en": "Themename contains {search}"
"de": "Themenname enthält {search}"
} }
} }
] ]
@ -523,8 +505,7 @@
} }
], ],
"question": { "question": {
"en": "Themename does <b>not</b> contain {search}", "en": "Themename does <b>not</b> contain {search}"
"de": "Themename enthält <b>not</b> {search}"
} }
} }
] ]
@ -540,8 +521,7 @@
} }
], ],
"question": { "question": {
"en": "Made by contributor {search}", "en": "Made by contributor {search}"
"de": "Erstellt vom Mitwirkenden {search}"
} }
} }
] ]
@ -557,8 +537,7 @@
} }
], ],
"question": { "question": {
"en": "<b>Not</b> made by contributor {search}", "en": "<b>Not</b> made by contributor {search}"
"de": "<b>Nicht</b> erstellt von Mitwirkendem {search}"
} }
} }
] ]
@ -575,8 +554,7 @@
} }
], ],
"question": { "question": {
"en": "Made before {search}", "en": "Made before {search}"
"de": "Erstellt vor {search}"
} }
} }
] ]
@ -593,8 +571,7 @@
} }
], ],
"question": { "question": {
"en": "Made after {search}", "en": "Made after {search}"
"de": "Erstellt nach {search}"
} }
} }
] ]
@ -610,8 +587,7 @@
} }
], ],
"question": { "question": {
"en": "User language (iso-code) {search}", "en": "User language (iso-code) {search}"
"de": "Benutzersprache (ISO-Code) {search}"
} }
} }
] ]
@ -627,8 +603,7 @@
} }
], ],
"question": { "question": {
"en": "Made with host {search}", "en": "Made with host {search}"
"de": "Erstellt mit Host {search}"
} }
} }
] ]
@ -639,8 +614,7 @@
{ {
"osmTags": "add-image>0", "osmTags": "add-image>0",
"question": { "question": {
"en": "Changeset added at least one image", "en": "Changeset added at least one image"
"de": "Änderungssatz hat mindestens ein Bild hinzugefügt"
} }
} }
] ]
@ -651,8 +625,7 @@
{ {
"osmTags": "theme!=grb", "osmTags": "theme!=grb",
"question": { "question": {
"en": "Exclude GRB theme", "en": "Exclude GRB theme"
"de": "GRB-Thema ausschließen"
} }
} }
] ]
@ -663,8 +636,7 @@
{ {
"osmTags": "theme!=etymology", "osmTags": "theme!=etymology",
"question": { "question": {
"en": "Exclude etymology theme", "en": "Exclude etymology theme"
"de": "Etymologie-Thema ausschließen"
} }
} }
] ]
@ -679,8 +651,7 @@
{ {
"id": "link_to_more", "id": "link_to_more",
"render": { "render": {
"en": "More statistics can be found <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>here</a>", "en": "More statistics can be found <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>here</a>"
"de": "Weitere Statistiken gibt es <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>hier</a>"
} }
}, },
{ {

View file

@ -72,6 +72,18 @@
} }
} }
}, },
{
"id": "show-data-velopark",
"render": {
"special": {
"type": "linked_data_from_website",
"key": "ref:velopark",
"useProxy": "no",
"host": "https://data.velopark.be",
"mode": "readonly"
}
}
},
{ {
"id": "closest_parkings", "id": "closest_parkings",
"render": { "render": {
@ -90,7 +102,7 @@
"type": "multi", "type": "multi",
"key": "_nearby_bicycle_parkings:props", "key": "_nearby_bicycle_parkings:props",
"classes": "p-2 m-1 my-4 border-2 border-dashed border-black", "classes": "p-2 m-1 my-4 border-2 border-dashed border-black",
"tagrendering": "<b><a href='#{id}'>{id}</a></b> ({_distance}m, {_velopark:id}) {minimap(20)} {tag_apply(ref:velopark=$_ref,Link this object.,link,id,_mr_id)}" "tagrendering": "<b><a href='#{id}'>{id}</a></b> ({_distance}m, {_velopark:id}, place for {capacity}, covered: {covered}) {minimap(20,id,_mr_id)} {tag_apply(ref:velopark=$_ref,Link this object.,link,id,_mr_id)}"
} }
} }
}, },
@ -120,7 +132,7 @@
"id": "title_manually_copy", "id": "title_manually_copy",
"render": { "render": {
"en": "<h3>Manually link</h3>Does the bicycle parking exist in OpenStreetMap but is it further then 25m away? Then: <ol><li>Copy the following URL: <span class='literal-code'>{ref:velopark}</span></li><li>Select the correct bicycle parking on the map</li><li>Paste the URL into the question <i>What is the URL of the data path in Velopark?</i></li><li>Mark this item as handled with the button below:</li></ul>", "en": "<h3>Manually link</h3>Does the bicycle parking exist in OpenStreetMap but is it further then 25m away? Then: <ol><li>Copy the following URL: <span class='literal-code'>{ref:velopark}</span></li><li>Select the correct bicycle parking on the map</li><li>Paste the URL into the question <i>What is the URL of the data path in Velopark?</i></li><li>Mark this item as handled with the button below:</li></ul>",
"nl": "<h3>Manueel linken</h3>" "nl": "<h3>Manueel linken</h3>Bestaat de fietsenstalling in OpenStreetMap maar is staat deze meer dan 25m verder?In dit geval: <ol><li>Kopieer de volgende URL: <span class='literal-code'>{ref:velopark}</span></li><li>Selecteer de juiste fietsenstalling op de kaart</li><li>Plak de URL in de vraag <i>Wat is de data-url van deze fietsenstalling in Velopark.be?</i></li><li>Open deze fietsenstalling opnieuw en markeer deze als gelinkt met onderstaande knop:</li></ul>"
} }
}, },
{ {
@ -168,18 +180,6 @@
"nl": "<h3>Extra informatie</h3>" "nl": "<h3>Extra informatie</h3>"
} }
}, },
{
"id": "show-data-velopark",
"render": {
"special": {
"type": "linked_data_from_website",
"key": "ref:velopark",
"useProxy": "no",
"host": "https://data.velopark.be",
"mode": "readonly"
}
}
},
{ {
"id": "velopark-data-link", "id": "velopark-data-link",
"render": { "render": {
@ -319,7 +319,21 @@
} }
], ],
"+tagRenderings": [ "+tagRenderings": [
"questions" {
"id": "questions-intro",
"render": {
"en": "The question(s) below inquiry about attributes that are not yet known in OpenStreetMap",
"nl": "De vragen hieronder zijn attributen die nog niet gekend zijn in OpenStreetMap"
}
},
"questions",
{
"id": "osm-block-title",
"render": {
"en": "<h3>Attributes from OpenStreetMap</h3>Editing below will make changes directly in OpenStreetMap",
"nl": "<h3>Attributen uit OpenStreetMap</h3>Als je hieronder wijzigingen maakt, dan worden die direct in OpenStreetMap opgeslaan"
}
}
], ],
"tagRenderings+": [ "tagRenderings+": [
"images" "images"
@ -338,7 +352,14 @@
"doCount": false, "doCount": false,
"minzoom": 14, "minzoom": 14,
"+tagRenderings": [ "+tagRenderings": [
"questions" "questions",
{
"id": "osm-block-title",
"render": {
"en": "<h3>Attributes from OpenStreetMap</h3>Editing below will make changes directly in OpenStreetMap",
"nl": "<h3>Attributen uit OpenStreetMap</h3>Als je hieronder wijzigingen maakt, dan worden die direct in OpenStreetMap opgeslaan"
}
}
], ],
"tagRenderings+": [ "tagRenderings+": [
"images" "images"

View file

@ -60,7 +60,7 @@
"error": "Fehler", "error": "Fehler",
"loadedFrom": "Die folgenden Daten werden von <a href={url}>{source}</a> unter Verwendung des eingebetteten JSON-LD geladen", "loadedFrom": "Die folgenden Daten werden von <a href={url}>{source}</a> unter Verwendung des eingebetteten JSON-LD geladen",
"noDataLoaded": "Die externe Website hat keine verlinkten Daten, die geladen werden könnten", "noDataLoaded": "Die externe Website hat keine verlinkten Daten, die geladen werden könnten",
"overwrite": "Überschreiben" "overwrite": "In OpenStreetMap überschreiben"
}, },
"favourite": { "favourite": {
"loginNeeded": "<h3>Anmelden</h3>Ein persönliches Layout ist nur für OpenStreetMap-Benutzer verfügbar", "loginNeeded": "<h3>Anmelden</h3>Ein persönliches Layout ist nur für OpenStreetMap-Benutzer verfügbar",

View file

@ -194,6 +194,7 @@
}, },
"morescreen": { "morescreen": {
"createYourOwnTheme": "Créez votre propre thème MapComplete à partir de zéro", "createYourOwnTheme": "Créez votre propre thème MapComplete à partir de zéro",
"enterToOpen": "Appuyez sur Entrée pour ouvrir le thème",
"hiddenExplanation": "Ces thèmes sont seulement accessibles par lien. Vous avez découvert {hidden_discovered} des {total_hidden} thèmes cachés.", "hiddenExplanation": "Ces thèmes sont seulement accessibles par lien. Vous avez découvert {hidden_discovered} des {total_hidden} thèmes cachés.",
"intro": "<h3>Plus de thèmes ?</h3>Vous aimez collecter des données géographiques ?<br>Il y a plus de thèmes disponibles.", "intro": "<h3>Plus de thèmes ?</h3>Vous aimez collecter des données géographiques ?<br>Il y a plus de thèmes disponibles.",
"noMatchingThemes": "Aucun thème ne correspond à vos critères de recherche", "noMatchingThemes": "Aucun thème ne correspond à vos critères de recherche",
@ -212,6 +213,7 @@
"number": "nombre", "number": "nombre",
"openStreetMapIntro": "<h3>Une carte ouverte</h3><p>Utilisable et éditable librement. Une seule et unique plateforme regroupant toutes les informations géographiques ? Toutes ces différentes cartes isolées, incompatibles et obsolètes ne sont plus utiles.</p><p><b><a href=\"https://OpenStreetMap.org\" target=\"_blank\">OpenStreetMap</a></b> nest pas un énième concurrent. Toutes les données de cette carte peuvent être utilisé librement (avec <a href=\"https://osm.org/copyright\" target=\"_blank\"> attribution et publication des changements de données</a>). De plus tout le monde est libre d'ajouter de nouvelles données et corriger les erreurs. Ce site utilise également OpenStreetMap. Toutes les données en proviennent et tous les ajouts et modifications y seront également ajoutés.</p><p>De nombreux individus et applications utilisent déjà OpenStreetMap : <a href=\"https://maps.me/\" target=\"_blank\">Maps.me</a>, <a href=\"https://osmAnd.net\" target=\"_blank\">OsmAnd</a>, mais aussi les cartes de Facebook, Instagram, Apple Maps et Bing Maps sont (en partie) alimentées par OpenStreetMap</p>", "openStreetMapIntro": "<h3>Une carte ouverte</h3><p>Utilisable et éditable librement. Une seule et unique plateforme regroupant toutes les informations géographiques ? Toutes ces différentes cartes isolées, incompatibles et obsolètes ne sont plus utiles.</p><p><b><a href=\"https://OpenStreetMap.org\" target=\"_blank\">OpenStreetMap</a></b> nest pas un énième concurrent. Toutes les données de cette carte peuvent être utilisé librement (avec <a href=\"https://osm.org/copyright\" target=\"_blank\"> attribution et publication des changements de données</a>). De plus tout le monde est libre d'ajouter de nouvelles données et corriger les erreurs. Ce site utilise également OpenStreetMap. Toutes les données en proviennent et tous les ajouts et modifications y seront également ajoutés.</p><p>De nombreux individus et applications utilisent déjà OpenStreetMap : <a href=\"https://maps.me/\" target=\"_blank\">Maps.me</a>, <a href=\"https://osmAnd.net\" target=\"_blank\">OsmAnd</a>, mais aussi les cartes de Facebook, Instagram, Apple Maps et Bing Maps sont (en partie) alimentées par OpenStreetMap</p>",
"openTheMap": "Ouvrir la carte", "openTheMap": "Ouvrir la carte",
"openTheMapAtGeolocation": "Zoom sur votre position",
"opening_hours": { "opening_hours": {
"closed_permanently": "Fermé", "closed_permanently": "Fermé",
"closed_until": "Fermé jusqu'au {date}", "closed_until": "Fermé jusqu'au {date}",
@ -324,6 +326,7 @@
"born": "Né·e le : {value}", "born": "Né·e le : {value}",
"died": "Décédé·e le : {value}" "died": "Décédé·e le : {value}"
}, },
"readMore": "Lire le reste de l'article",
"searchToShort": "Votre requête est trop courte, entrez un texte plus long.", "searchToShort": "Votre requête est trop courte, entrez un texte plus long.",
"searchWikidata": "Rechercher sur Wikidata", "searchWikidata": "Rechercher sur Wikidata",
"wikipediaboxTitle": "Wikipédia" "wikipediaboxTitle": "Wikipédia"
@ -344,6 +347,11 @@
"doDelete": "Supprimer l'image", "doDelete": "Supprimer l'image",
"dontDelete": "Annuler", "dontDelete": "Annuler",
"isDeleted": "Supprimé", "isDeleted": "Supprimé",
"nearby": {
"link": "Cette photo montre l'objet",
"seeNearby": "Parcourez et associez des photos à proximité",
"title": "Imagerie StreetView à proximité"
},
"pleaseLogin": "Connectez-vous pour téléverser une photo", "pleaseLogin": "Connectez-vous pour téléverser une photo",
"respectPrivacy": "Ne photographiez ni les personnes ni les plaques d'immatriculation. Ne téléversez rien issu de Google Maps, Google Streetview ou d'autre sources soumises à des droits d'auteurs.", "respectPrivacy": "Ne photographiez ni les personnes ni les plaques d'immatriculation. Ne téléversez rien issu de Google Maps, Google Streetview ou d'autre sources soumises à des droits d'auteurs.",
"toBig": "Votre image est trop large car elle est de {actual_size}. Veuillez utiliser des images d'au maximum {max_size}", "toBig": "Votre image est trop large car elle est de {actual_size}. Veuillez utiliser des images d'au maximum {max_size}",
@ -403,6 +411,7 @@
"warnAnonymous": "Vous n'êtes pas connecté. Nous ne pourrons pas vous contacter pour résoudre ce problème." "warnAnonymous": "Vous n'êtes pas connecté. Nous ne pourrons pas vous contacter pour résoudre ce problème."
}, },
"plantDetection": { "plantDetection": {
"button": "Détecter automatiquement les espèces végétales à l'aide de l'IA de Plantnet.org",
"error": "Une erreur est survenue lors de la détection de l'espèce de l'arbre : {error}", "error": "Une erreur est survenue lors de la détection de l'espèce de l'arbre : {error}",
"howTo": { "howTo": {
"intro": "Pour de résultats optimaux,", "intro": "Pour de résultats optimaux,",
@ -415,6 +424,7 @@
"matchPercentage": "Correspondance {match} %", "matchPercentage": "Correspondance {match} %",
"overviewIntro": "L'IA de <a href='https://plantnet.org/' target='_blank'>PlantNet.org</a> pense que les images représentes les espèces ci-dessous.", "overviewIntro": "L'IA de <a href='https://plantnet.org/' target='_blank'>PlantNet.org</a> pense que les images représentes les espèces ci-dessous.",
"overviewTitle": "Espèces détectées automatiquement", "overviewTitle": "Espèces détectées automatiquement",
"overviewVerify": "Vérifiez que l'espèce est correcte avant de la relier à l'arbre",
"poweredByPlantnet": "Propulsé par <a href='https://plantnet.org' target='_blank'>plantnet.org</a>", "poweredByPlantnet": "Propulsé par <a href='https://plantnet.org' target='_blank'>plantnet.org</a>",
"seeInfo": "Voir plus d'informations sur les espèces", "seeInfo": "Voir plus d'informations sur les espèces",
"takeImages": "Prenez des photos de l'arbre pour détecter automatiquement de quel type il s'agit" "takeImages": "Prenez des photos de l'arbre pour détecter automatiquement de quel type il s'agit"

View file

@ -2166,7 +2166,7 @@
"title": "Ladestation für Elektrofahrräder" "title": "Ladestation für Elektrofahrräder"
}, },
"1": { "1": {
"title": "Ladestation für Elektrofahrräder" "title": "Ladestation für Autos"
} }
}, },
"tagRenderings": { "tagRenderings": {

View file

@ -595,6 +595,9 @@
}, },
"1": { "1": {
"then": "Ce banc n'a pas d'oeuvre d'art intégrée" "then": "Ce banc n'a pas d'oeuvre d'art intégrée"
},
"2": {
"then": "Ce banc ne comporte <span class=\"subtle\">probablement</span> pas d'œuvre d'art"
} }
}, },
"question": "Est-ce que ce banc inclut un élément artistique ?", "question": "Est-ce que ce banc inclut un élément artistique ?",
@ -654,7 +657,7 @@
"then": "Ce banc n'a pas d'inscription" "then": "Ce banc n'a pas d'inscription"
}, },
"1": { "1": {
"then": "Ce banc n'a<span class='subtle'>(probablement)</span> pas d'inscription" "then": "Ce banc n'a <span class='subtle'>(probablement)</span> pas d'inscription"
} }
}, },
"question": "Est-ce que ce banc possède une inscription ?", "question": "Est-ce que ce banc possède une inscription ?",
@ -2960,6 +2963,13 @@
"question": "Quelle est la profondeur de cet ascenseur ?", "question": "Quelle est la profondeur de cet ascenseur ?",
"render": "Cet ascenseur a une profondeur de {canonical(length)}" "render": "Cet ascenseur a une profondeur de {canonical(length)}"
}, },
"elevator-shape": {
"mappings": {
"0": {
"then": "Cet ascenseur est de forme rectangulaire"
}
}
},
"elevator-width": { "elevator-width": {
"question": "Quelle est la largeur de cet ascenseur ?", "question": "Quelle est la largeur de cet ascenseur ?",
"render": "Cet ascenseur a une largeur de {canonical(width)}" "render": "Cet ascenseur a une largeur de {canonical(width)}"
@ -3765,6 +3775,16 @@
}, },
"ref": { "ref": {
"question": "Quel est le numéro de référence de cette pièce ?" "question": "Quel est le numéro de référence de cette pièce ?"
},
"room-type": {
"mappings": {
"4": {
"then": "C'est une salle de classe"
},
"14": {
"then": "C'est un bureau"
}
}
} }
} }
}, },

View file

@ -2265,6 +2265,7 @@ video {
--alert-color: #fee4d1; --alert-color: #fee4d1;
--alert-foreground-color: var(--foreground-color); --alert-foreground-color: var(--foreground-color);
--low-interaction-background: #eeeeee; --low-interaction-background: #eeeeee;
--low-interaction-background-50: #eeeeee90;
--low-interaction-foreground: black; --low-interaction-foreground: black;
--low-interaction-contrast: #ff00ff; --low-interaction-contrast: #ff00ff;
--interactive-background: #dddddd; --interactive-background: #dddddd;
@ -2491,6 +2492,10 @@ button.primary:not(.no-image-background) svg path, .button.primary:not(.no-image
transition: all 250ms; transition: all 250ms;
} }
button.disabled.low-interaction, .button.disabled.low-interaction {
background-color: var(--low-interaction-background-50);
}
button.disabled, .button.disabled { button.disabled, .button.disabled {
cursor: default; cursor: default;
border: 2px dashed var(--button-background); border: 2px dashed var(--button-background);

View file

@ -1,5 +1,6 @@
#! /bin/bash #! /bin/bash
### To be run from the root of the repository ### To be run from the root of the repository
### Prepares and builds MapComplete, uploads it to hetzner for hosted.mapcomplete.org. Will upload about 500MB to this computer
# Some pointers to get started: # Some pointers to get started:
# apt install npm # apt install npm
@ -20,5 +21,5 @@ scp ./Docs/ServerConfig/hetzner/* hetzner:/root/ &&
rsync -rzh --progress dist.zip hetzner:/root/ && rsync -rzh --progress dist.zip hetzner:/root/ &&
echo "Upload completed, deploying config and booting" && echo "Upload completed, deploying config and booting" &&
ssh hetzner -t "unzip dist.zip && rm dist.zip && rm -rf public/ && mv dist public && caddy stop && caddy start" && ssh hetzner -t "unzip dist.zip && rm dist.zip && rm -rf public/ && mv dist public && caddy stop && caddy start" &&
# rm dist.zip rm dist.zip
npm run clean npm run clean

View file

@ -362,7 +362,7 @@ export interface LayoutConfigJson {
/** /**
* question: Should the 'download as CSV'- and 'download as Geojson'-buttons be enabled? * question: Should the 'download as CSV'- and 'download as Geojson'-buttons be enabled?
* iftrue: Enable the option to download the map as CSV and GeoJson * iftrue: Enable the option to download the map as CSV and GeoJson
* iffalse: Enable the option to download the map as CSV and GeoJson * iffalse: Disable the option to download the map as CSV and GeoJson
* ifunset: MapComplete default: Enable the option to download the map as CSV and GeoJson * ifunset: MapComplete default: Enable the option to download the map as CSV and GeoJson
* group: feature_switches * group: feature_switches
*/ */

View file

@ -38,11 +38,13 @@
{#if !allCalculatedTags.has(key)} {#if !allCalculatedTags.has(key)}
<tr> <tr>
<td>{key}</td> <td>{key}</td>
<td> <td style="width: 75%">
{#if $tags[key] === undefined} {#if $tags[key] === undefined}
<i>undefined</i> <i>undefined</i>
{:else if $tags[key] === ""} {:else if $tags[key] === ""}
<i>Empty string</i> <i>Empty string</i>
{:else if typeof $tags[key] === "object"}
<div class="literal-code" >{JSON.stringify($tags[key])}</div>
{:else} {:else}
{$tags[key]} {$tags[key]}
{/if} {/if}

View file

@ -287,7 +287,7 @@
<If condition={featureSwitches.featureSwitchEnableLogin}> <If condition={featureSwitches.featureSwitchEnableLogin}>
{#if state.layout.hasPresets() || state.layout.hasNoteLayer()} {#if state.layout.hasPresets() || state.layout.hasNoteLayer()}
<button <button
class="pointer-events-auto w-fit" class="pointer-events-auto w-fit low-interaction"
class:disabled={$currentZoom < Constants.minZoomLevelToAddNewPoint} class:disabled={$currentZoom < Constants.minZoomLevelToAddNewPoint}
on:click={() => { on:click={() => {
state.openNewDialog() state.openNewDialog()

View file

@ -27,6 +27,7 @@
--alert-foreground-color: var(--foreground-color); --alert-foreground-color: var(--foreground-color);
--low-interaction-background: #eeeeee; --low-interaction-background: #eeeeee;
--low-interaction-background-50: #eeeeee90;
--low-interaction-foreground: black; --low-interaction-foreground: black;
--low-interaction-contrast: #ff00ff; --low-interaction-contrast: #ff00ff;
@ -264,6 +265,10 @@ button.primary:not(.no-image-background) svg path, .button.primary:not(.no-image
transition: all 250ms; transition: all 250ms;
} }
button.disabled.low-interaction, .button.disabled.low-interaction {
background-color: var(--low-interaction-background-50);
}
button.disabled, .button.disabled { button.disabled, .button.disabled {
cursor: default; cursor: default;
@ -274,6 +279,7 @@ button.disabled, .button.disabled {
} }
button.disabled:hover, .button.disabled:hover { button.disabled:hover, .button.disabled:hover {
cursor: default; cursor: default;
border: 2px dashed var(--button-background); border: 2px dashed var(--button-background);