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",
"nl": "Deze bank heeft <span class='subtle'>(waarschijnlijk)</span> geen inscriptie",
"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",
"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",
@ -1020,7 +1020,8 @@
"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",
"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
}

View file

@ -2506,7 +2506,7 @@
"title": {
"en": "charging station for cars",
"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=",
"then": {
"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"
},

View file

@ -352,7 +352,8 @@
"en": "This is a classroom",
"de": "Dies ist ein Klassenzimmer",
"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"
},
@ -449,7 +450,8 @@
"en": "This is an office",
"de": "Dies ist ein Büro",
"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"
},

View file

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

View file

@ -60,7 +60,7 @@
"error": "Fehler",
"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",
"overwrite": "Überschreiben"
"overwrite": "In OpenStreetMap überschreiben"
},
"favourite": {
"loginNeeded": "<h3>Anmelden</h3>Ein persönliches Layout ist nur für OpenStreetMap-Benutzer verfügbar",

View file

@ -194,6 +194,7 @@
},
"morescreen": {
"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.",
"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",
@ -212,6 +213,7 @@
"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>",
"openTheMap": "Ouvrir la carte",
"openTheMapAtGeolocation": "Zoom sur votre position",
"opening_hours": {
"closed_permanently": "Fermé",
"closed_until": "Fermé jusqu'au {date}",
@ -324,6 +326,7 @@
"born": "Né·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.",
"searchWikidata": "Rechercher sur Wikidata",
"wikipediaboxTitle": "Wikipédia"
@ -344,6 +347,11 @@
"doDelete": "Supprimer l'image",
"dontDelete": "Annuler",
"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",
"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}",
@ -403,6 +411,7 @@
"warnAnonymous": "Vous n'êtes pas connecté. Nous ne pourrons pas vous contacter pour résoudre ce problème."
},
"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}",
"howTo": {
"intro": "Pour de résultats optimaux,",
@ -415,6 +424,7 @@
"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.",
"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>",
"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"

View file

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

View file

@ -595,6 +595,9 @@
},
"1": {
"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 ?",
@ -654,7 +657,7 @@
"then": "Ce banc n'a pas d'inscription"
},
"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 ?",
@ -2960,6 +2963,13 @@
"question": "Quelle est la profondeur de cet ascenseur ?",
"render": "Cet ascenseur a une profondeur de {canonical(length)}"
},
"elevator-shape": {
"mappings": {
"0": {
"then": "Cet ascenseur est de forme rectangulaire"
}
}
},
"elevator-width": {
"question": "Quelle est la largeur de cet ascenseur ?",
"render": "Cet ascenseur a une largeur de {canonical(width)}"
@ -3765,6 +3775,16 @@
},
"ref": {
"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-foreground-color: var(--foreground-color);
--low-interaction-background: #eeeeee;
--low-interaction-background-50: #eeeeee90;
--low-interaction-foreground: black;
--low-interaction-contrast: #ff00ff;
--interactive-background: #dddddd;
@ -2491,6 +2492,10 @@ button.primary:not(.no-image-background) svg path, .button.primary:not(.no-image
transition: all 250ms;
}
button.disabled.low-interaction, .button.disabled.low-interaction {
background-color: var(--low-interaction-background-50);
}
button.disabled, .button.disabled {
cursor: default;
border: 2px dashed var(--button-background);

View file

@ -1,5 +1,6 @@
#! /bin/bash
### 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:
# apt install npm
@ -20,5 +21,5 @@ scp ./Docs/ServerConfig/hetzner/* hetzner:/root/ &&
rsync -rzh --progress dist.zip hetzner:/root/ &&
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" &&
# rm dist.zip
rm dist.zip
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?
* 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
* group: feature_switches
*/

View file

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

View file

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

View file

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