From db80364c2115c804b7fcdee450529e6e0c15d19d Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 14 Mar 2022 16:10:11 +0100 Subject: [PATCH 1/6] Fix typo --- langs/en.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langs/en.json b/langs/en.json index bffbdaec72..a193ea2401 100644 --- a/langs/en.json +++ b/langs/en.json @@ -548,7 +548,7 @@ "feedback": "This is not a valid phone number" }, "pnat": { - "description": "a positive, whone number", + "description": "a positive, whole number", "noZero": "Zero is not allowed" }, "string": { From 9e81d41d2545c937b61ffba5b73c5eadf87a2d61 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 14 Mar 2022 17:01:47 +0100 Subject: [PATCH 2/6] Add images to bicycle rental --- assets/layers/bicycle_rental/bicycle_rental.json | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/layers/bicycle_rental/bicycle_rental.json b/assets/layers/bicycle_rental/bicycle_rental.json index e79801b601..3c4da0071b 100644 --- a/assets/layers/bicycle_rental/bicycle_rental.json +++ b/assets/layers/bicycle_rental/bicycle_rental.json @@ -44,6 +44,7 @@ "nl": "Fietsverhuustations" }, "tagRenderings": [ + "images", { "id": "bicycle_rental_type", "question": { From 564fb161356f2595250b59c2ef07ea1cc2262aa8 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 14 Mar 2022 17:11:15 +0100 Subject: [PATCH 3/6] Translation sync --- assets/layers/address/address.json | 15 ++++-- .../ambulancestation/ambulancestation.json | 9 ++-- assets/layers/barrier/barrier.json | 12 +++-- assets/layers/bench/bench.json | 3 +- assets/layers/bench_at_pt/bench_at_pt.json | 6 ++- .../layers/bicycle_rental/bicycle_rental.json | 1 - assets/tagRenderings/questions.json | 9 ++-- .../themes/bicycle_rental/bicycle_rental.json | 9 ++-- assets/themes/etymology.json | 12 +++-- langs/fr.json | 14 +++--- langs/layers/en.json | 2 +- langs/layers/fr.json | 47 +++++++------------ langs/layers/id.json | 20 ++++---- langs/layers/nl.json | 2 +- langs/shared-questions/fr.json | 26 +++++----- langs/themes/fr.json | 22 ++++----- 16 files changed, 110 insertions(+), 99 deletions(-) diff --git a/assets/layers/address/address.json b/assets/layers/address/address.json index d06997de97..aee9af0937 100644 --- a/assets/layers/address/address.json +++ b/assets/layers/address/address.json @@ -37,7 +37,8 @@ "pl": "Znany adres", "ru": "Известный адрес", "es": "Domicilio conocido", - "zh_Hans": "已知的地址" + "zh_Hans": "已知的地址", + "id": "Alamat yang diketahui" } }, "description": { @@ -64,7 +65,8 @@ "fr": "Son numéro est le {addr:housenumber}", "pl": "Numer tego domu to {addr:housenumber}", "ru": "Номер дома {addr:housenumber}", - "zh_Hans": "门牌号是{addr:housenumber}" + "zh_Hans": "门牌号是{addr:housenumber}", + "id": "Nomor rumah ini {addr:housenumber}" }, "question": { "en": "What is the number of this house?", @@ -75,7 +77,8 @@ "pl": "Jaki jest numer tego domu?", "ru": "Какой номер у этого дома?", "es": "¿Cuál es el número de esta casa?", - "zh_Hans": "这个屋子的门牌号是多少?" + "zh_Hans": "这个屋子的门牌号是多少?", + "id": "Berapa nomor rumah ini?" }, "freeform": { "key": "addr:housenumber", @@ -114,7 +117,8 @@ "nl": "Dit adres bevindt zich in de straat {addr:street}", "fr": "Le nom de la voie est {addr:street}", "pl": "Ten adres znajduje się na ulicy {addr:street}", - "zh_Hans": "这个地址位于{addr:street}街" + "zh_Hans": "这个地址位于{addr:street}街", + "id": "Alamat ini ada di jalan {addr:street}" }, "question": { "en": "What street is this address located in?", @@ -125,7 +129,8 @@ "pl": "Na jakiej ulicy znajduje się ten adres?", "ru": "Какая эта улица?", "es": "¿En qué calle se encuentra esta dirección?", - "zh_Hans": "这个地址位于哪条街道?" + "zh_Hans": "这个地址位于哪条街道?", + "id": "Alamat ini di jalan apa?" }, "freeform": { "key": "addr:street" diff --git a/assets/layers/ambulancestation/ambulancestation.json b/assets/layers/ambulancestation/ambulancestation.json index f8e86e9f43..4a18e1420b 100644 --- a/assets/layers/ambulancestation/ambulancestation.json +++ b/assets/layers/ambulancestation/ambulancestation.json @@ -9,7 +9,8 @@ "it": "Carta delle stazioni delle ambulanze", "hu": "Mentőállomás-térkép", "nl": "Kaart van ambulancestations", - "zh_Hans": "救护车站地图" + "zh_Hans": "救护车站地图", + "id": "Peta stasiun ambulans" }, "minzoom": 12, "source": { @@ -254,7 +255,8 @@ "it": "Stazione delle ambulanze", "hu": "Mentőállomás", "nl": "Ambulancestation", - "zh_Hans": "救护车站" + "zh_Hans": "救护车站", + "id": "Stasiun ambulans" }, "description": { "en": "Add an ambulance station to the map", @@ -265,7 +267,8 @@ "it": "Aggiungi una stazione delle ambulanza alla mappa", "hu": "Mentőállomás hozzáadása a térképhez", "nl": "Voeg een ambulancestation toe aan de kaart", - "zh_Hans": "向地图中添加一个救护车站" + "zh_Hans": "向地图中添加一个救护车站", + "id": "Tambahkan stasiun ambulans ke peta" } } ], diff --git a/assets/layers/barrier/barrier.json b/assets/layers/barrier/barrier.json index 9bb38a52f2..a0bafacd06 100644 --- a/assets/layers/barrier/barrier.json +++ b/assets/layers/barrier/barrier.json @@ -119,7 +119,8 @@ "en": "Can a bicycle go past this barrier?", "nl": "Kan een fietser langs deze barrière?", "de": "Kann ein Radfahrer das Hindernis passieren?", - "hu": "Át lehet-e menni rajta kerékpárral?" + "hu": "Át lehet-e menni rajta kerékpárral?", + "fr": "Est-ce qu'un vélo peut franchir cette barrière ?" }, "mappings": [ { @@ -153,7 +154,8 @@ "then": { "en": "This is a single bollard in the road", "hu": "Ez egyetlen oszlop az úton", - "nl": "Dit is een enkel paaltje in de weg" + "nl": "Dit is een enkel paaltje in de weg", + "fr": "C'est un plot unique sur la route" } }, { @@ -161,7 +163,8 @@ "then": { "en": "This is a cycle barrier slowing down cyclists", "nl": "Dit zijn fietshekjes die fietsers afremmen", - "hu": "Ez egy kerékpárakadály, amely lelassítja a kerékpárosokat" + "hu": "Ez egy kerékpárakadály, amely lelassítja a kerékpárosokat", + "fr": "C'est une barrière visant à ralentir les vélos" } } ] @@ -376,7 +379,8 @@ "en": "How wide is the smallest opening next to the barriers?", "nl": "Hoe breed is de smalste opening naast de barrières?", "de": "Wie breit ist die kleinste Öffnung neben den Barrieren?", - "hu": "Milyen széles a korlátok melletti legkisebb nyílás?" + "hu": "Milyen széles a korlátok melletti legkisebb nyílás?", + "fr": "Quelle est la largeur d'ouverture la plus petite près de la barrière ?" }, "condition": { "or": [ diff --git a/assets/layers/bench/bench.json b/assets/layers/bench/bench.json index c96a91085e..7aa97da33a 100644 --- a/assets/layers/bench/bench.json +++ b/assets/layers/bench/bench.json @@ -656,6 +656,7 @@ ], "description": { "nl": "Deze laag toont zitbanken en enkele vragen over deze zitbanken", - "en": "A bench is a wooden, metal, stone, ... surface where a human can sit. This layers visualises them and asks a few questions about them." + "en": "A bench is a wooden, metal, stone, ... surface where a human can sit. This layers visualises them and asks a few questions about them.", + "fr": "Un banc est une surface en bois, métal, pierre... sur laquelle un humain peut s'asseoir. Cette couche permet de les visualiser et pose des questions à leur sujet." } } \ No newline at end of file diff --git a/assets/layers/bench_at_pt/bench_at_pt.json b/assets/layers/bench_at_pt/bench_at_pt.json index e2525223e3..3fa5e5d252 100644 --- a/assets/layers/bench_at_pt/bench_at_pt.json +++ b/assets/layers/bench_at_pt/bench_at_pt.json @@ -122,7 +122,8 @@ "en": "What kind of bench is this?", "nl": "Wat voor soort bank is dit?", "de": "Was ist das für eine Bank?", - "es": "¿Qué tipo de banco es este?" + "es": "¿Qué tipo de banco es este?", + "fr": "Quel type de banc est-ce ?" }, "mappings": [ { @@ -183,6 +184,7 @@ "description": { "en": "A layer showing all public-transport-stops which do have a bench", "es": "Una capa que muestra todas las paradas de transporte público que tienen bancos", - "nl": "Een laag die stopplaatsen van openbaar vervoer toont waar er een zitbank is" + "nl": "Een laag die stopplaatsen van openbaar vervoer toont waar er een zitbank is", + "fr": "Une couche montrant tous les arrêts de transports publics qui ont un banc" } } \ No newline at end of file diff --git a/assets/layers/bicycle_rental/bicycle_rental.json b/assets/layers/bicycle_rental/bicycle_rental.json index 3c4da0071b..e79801b601 100644 --- a/assets/layers/bicycle_rental/bicycle_rental.json +++ b/assets/layers/bicycle_rental/bicycle_rental.json @@ -44,7 +44,6 @@ "nl": "Fietsverhuustations" }, "tagRenderings": [ - "images", { "id": "bicycle_rental_type", "question": { diff --git a/assets/tagRenderings/questions.json b/assets/tagRenderings/questions.json index dba3e5baaa..28027eb095 100644 --- a/assets/tagRenderings/questions.json +++ b/assets/tagRenderings/questions.json @@ -670,7 +670,8 @@ "nl": "Betalen via een app van het netwerk", "hu": "Fizetés erre a célra szolgáló alkalmazással", "zh_Hant": "使用專用應用程式付款", - "de": "Die Bezahlung erfolgt über eine spezielle App" + "de": "Die Bezahlung erfolgt über eine spezielle App", + "fr": "Paiement via une application" } }, { @@ -682,7 +683,8 @@ "nl": "Betalen via een lidkaart van het netwerk", "hu": "Fizetési tagsági kártyával", "zh_Hant": "使用會員卡付款", - "de": "Die Bezahlung erfolgt mit einer Mitgliedskarte" + "de": "Die Bezahlung erfolgt mit einer Mitgliedskarte", + "fr": "Paiement via une carte de membre" } } ] @@ -830,7 +832,8 @@ "nl": "Bevindt zich in de eerste kelderverdieping", "zh_Hant": "位於地下一樓", "de": "Ist im 1. Untergeschoss", - "hu": "Az első alagsori szinten" + "hu": "Az első alagsori szinten", + "fr": "Sous-sol" } } ] diff --git a/assets/themes/bicycle_rental/bicycle_rental.json b/assets/themes/bicycle_rental/bicycle_rental.json index efe22fc112..152f1db368 100644 --- a/assets/themes/bicycle_rental/bicycle_rental.json +++ b/assets/themes/bicycle_rental/bicycle_rental.json @@ -4,18 +4,21 @@ "en": "Bicycle rental", "nl": "Fietsverhuur", "de": "Fahrradverleih", - "id": "Sewa sepeda" + "id": "Sewa sepeda", + "fr": "Location de vélos" }, "shortDescription": { "en": "A map with bicycle rental stations and bicycle rental shops", "nl": "Een kaart met fietsverhuurpunten en fietsverhuurzaken", "de": "Eine Karte mit Fahrradverleihstationen und Fahrradverleihern", - "id": "Peta dengan stasiun persewaan sepeda dan toko penyewaan sepeda" + "id": "Peta dengan stasiun persewaan sepeda dan toko penyewaan sepeda", + "fr": "Une carte avec des stations et magasins de location de vélos" }, "description": { "en": "On this map, you'll find the many bicycle rental stations as they are known by OpenStreetMap", "nl": "Op deze kaart vind je verschillende fietsverhuurpunten en fietsverhuurzaken", - "de": "Auf dieser Karte finden Sie die vielen Fahrradverleihstationen, wie sie auf OpenStreetMap eingetragen wurden" + "de": "Auf dieser Karte finden Sie die vielen Fahrradverleihstationen, wie sie auf OpenStreetMap eingetragen wurden", + "fr": "Vous trouverez sur cette carte toutes les stations de location de vélo telles qu'elles sont référencées dans OpenStreetMap" }, "maintainer": "", "icon": "./assets/themes/bicycle_rental/logo.svg", diff --git a/assets/themes/etymology.json b/assets/themes/etymology.json index 882e374539..84021a38b0 100644 --- a/assets/themes/etymology.json +++ b/assets/themes/etymology.json @@ -127,7 +127,8 @@ "id": "cultural_places_without_etymology", "=name": { "en": "Cultural places without etymology information", - "de": "Kulturelle Orte ohne etymologische Informationen" + "de": "Kulturelle Orte ohne etymologische Informationen", + "fr": "Lieux culturels sans origine étymologique" }, "minzoom": 18, "source": { @@ -154,7 +155,8 @@ "id": "toursistic_places_without_etymology", "=name": { "en": "Toursistic places without etymology information", - "de": "Touristische Orte ohne Angaben zur Etymologie" + "de": "Touristische Orte ohne Angaben zur Etymologie", + "fr": "Lieux touristiques sans origine étymologique" }, "minzoom": 18, "source": { @@ -180,7 +182,8 @@ "id": "health_and_social_places_without_etymology", "=name": { "en": "Health and social places without etymology information", - "de": "Gesundheits- und Sozialeinrichtungen ohne etymologische Informationen" + "de": "Gesundheits- und Sozialeinrichtungen ohne etymologische Informationen", + "fr": "Établissements sociaux ou de soins sans origine étymologique" }, "minzoom": 18, "source": { @@ -205,7 +208,8 @@ "id": "sport_places_without_etymology", "=name": { "en": "Sport places without etymology information", - "de": "Sportstätten ohne etymologische Informationen" + "de": "Sportstätten ohne etymologische Informationen", + "fr": "Lieux sportifs sans origine étymologique" }, "minzoom": 18, "source": { diff --git a/langs/fr.json b/langs/fr.json index f11e9df0af..aea12c2c1e 100644 --- a/langs/fr.json +++ b/langs/fr.json @@ -48,6 +48,11 @@ "disableFilters": "Désactiver tous les filtres", "disableFiltersExplanation": "Certains élément peuvent être filtrés", "hasBeenImported": "Ce point a déjà été importé", + "import": { + "hasBeenImported": "Cet objet a été importé", + "howToTest": "Pour essayer, ajouter test=true ou backend=osm-test à l'adresse de la page. Le groupe de modifications sera affiché dans la console. Merci d'ouvrir un PR pour officialiser ce thème et ainsi activer le bouton d'import.", + "importTags": "L'objet recevra {tags}" + }, "intro": "Vous avez cliqué sur un endroit où il n'y a pas encore de données.
", "layerNotEnabled": "La couche {layer} est désactivée. Activez-la pour ajouter un point", "openLayerControl": "Ouvrir la panneau de contrôle", @@ -57,12 +62,7 @@ "title": "Ajouter un nouveau point ?", "warnVisibleForEveryone": "Votre ajout sera visible", "zoomInFurther": "Rapprochez vous pour ajouter un point.", - "zoomInMore": "Zoomez pour importer cet élément", - "import": { - "howToTest": "Pour essayer, ajouter test=true ou backend=osm-test à l'adresse de la page. Le groupe de modifications sera affiché dans la console. Merci d'ouvrir un PR pour officialiser ce thème et ainsi activer le bouton d'import.", - "importTags": "L'objet recevra {tags}", - "hasBeenImported": "Cet objet a été importé" - } + "zoomInMore": "Zoomez pour importer cet élément" }, "attribution": { "attributionContent": "

Toutes les données sont fournies par OpenStreetMap, librement réutilisables sous Open DataBase License.

", @@ -289,4 +289,4 @@ "split": "Couper", "splitTitle": "Choisissez sur la carte où couper cette route" } -} +} \ No newline at end of file diff --git a/langs/layers/en.json b/langs/layers/en.json index 23059de340..b2bb82f453 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -430,7 +430,7 @@ } }, "tagRenderings": { - "8": { + "9": { "renderings": { "0": { "question": "How much type_plural can be rented here? ", diff --git a/langs/layers/fr.json b/langs/layers/fr.json index 4102259e54..5a4b467b7c 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -210,8 +210,18 @@ "render": "Espace entre deux barrières successives : {width:separation} m" }, "Width of opening (cyclebarrier)": { - "render": "Largeur de l'ouverture : {width:opening} m", - "question": "Quelle est la largeur d'ouverture la plus petite près de la barrière ?" + "question": "Quelle est la largeur d'ouverture la plus petite près de la barrière ?", + "render": "Largeur de l'ouverture : {width:opening} m" + }, + "barrier_type": { + "mappings": { + "0": { + "then": "C'est un plot unique sur la route" + }, + "1": { + "then": "C'est une barrière visant à ralentir les vélos" + } + } }, "bicycle=yes/no": { "mappings": { @@ -223,16 +233,6 @@ } }, "question": "Est-ce qu'un vélo peut franchir cette barrière ?" - }, - "barrier_type": { - "mappings": { - "0": { - "then": "C'est un plot unique sur la route" - }, - "1": { - "then": "C'est une barrière visant à ralentir les vélos" - } - } } }, "title": { @@ -248,6 +248,7 @@ } }, "bench": { + "description": "Un banc est une surface en bois, métal, pierre... sur laquelle un humain peut s'asseoir. Cette couche permet de les visualiser et pose des questions à leur sujet.", "name": "Bancs", "presets": { "0": { @@ -335,10 +336,10 @@ }, "title": { "render": "Banc" - }, - "description": "Un banc est une surface en bois, métal, pierre... sur laquelle un humain peut s'asseoir. Cette couche permet de les visualiser et pose des questions à leur sujet." + } }, "bench_at_pt": { + "description": "Une couche montrant tous les arrêts de transports publics qui ont un banc", "name": "Bancs des arrêts de transport en commun", "tagRenderings": { "bench_at_pt-bench_type": { @@ -369,8 +370,7 @@ } }, "render": "Banc" - }, - "description": "Une couche montrant tous les arrêts de transports publics qui ont un banc" + } }, "bicycle_library": { "description": "Un lieu où des vélos peuvent être empruntés pour un temps plus long", @@ -2396,18 +2396,5 @@ }, "watermill": { "name": "Moulin à eau" - }, - "bicycle_rental": { - "name": "Location de vélo", - "description": "Station de location de vélo", - "presets": { - "0": { - "description": "Un magasin avec employé(s) consacré à la location de vélos", - "title": "magasin de location de vélos" - }, - "1": { - "title": "location de vélos" - } - } } -} +} \ No newline at end of file diff --git a/langs/layers/id.json b/langs/layers/id.json index 195ee3b890..70a2e3f555 100644 --- a/langs/layers/id.json +++ b/langs/layers/id.json @@ -24,6 +24,15 @@ "render": "Alamat yang diketahui" } }, + "ambulancestation": { + "name": "Peta stasiun ambulans", + "presets": { + "0": { + "description": "Tambahkan stasiun ambulans ke peta", + "title": "Stasiun ambulans" + } + } + }, "artwork": { "description": "Beragam karya seni", "name": "Karya seni", @@ -386,14 +395,5 @@ }, "watermill": { "name": "Kincir Air" - }, - "ambulancestation": { - "name": "Peta stasiun ambulans", - "presets": { - "0": { - "description": "Tambahkan stasiun ambulans ke peta", - "title": "Stasiun ambulans" - } - } } -} +} \ No newline at end of file diff --git a/langs/layers/nl.json b/langs/layers/nl.json index fe3a11eeb9..08342906ca 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -430,7 +430,7 @@ } }, "tagRenderings": { - "8": { + "9": { "renderings": { "0": { "question": "Hoeveel type_plural kunnen hier uitgeleend worden?", diff --git a/langs/shared-questions/fr.json b/langs/shared-questions/fr.json index ef22e40128..9d4ffe24a5 100644 --- a/langs/shared-questions/fr.json +++ b/langs/shared-questions/fr.json @@ -59,6 +59,18 @@ }, "question": "Quelles sont les méthodes de paiement acceptées ici ?" }, + "payment-options-advanced": { + "override": { + "mappings+": { + "0": { + "then": "Paiement via une application" + }, + "1": { + "then": "Paiement via une carte de membre" + } + } + } + }, "phone": { "question": "Quel est le numéro de téléphone de {title()} ?" }, @@ -114,18 +126,6 @@ } }, "question": "Quel est l’élément Wikipédia correspondant ?" - }, - "payment-options-advanced": { - "override": { - "mappings+": { - "0": { - "then": "Paiement via une application" - }, - "1": { - "then": "Paiement via une carte de membre" - } - } - } } } -} +} \ No newline at end of file diff --git a/langs/themes/fr.json b/langs/themes/fr.json index 417528dad5..b92bbb0f7d 100644 --- a/langs/themes/fr.json +++ b/langs/themes/fr.json @@ -12,6 +12,11 @@ "shortDescription": "Carte des bancs", "title": "Bancs" }, + "bicycle_rental": { + "description": "Vous trouverez sur cette carte toutes les stations de location de vélo telles qu'elles sont référencées dans OpenStreetMap", + "shortDescription": "Une carte avec des stations et magasins de location de vélos", + "title": "Location de vélos" + }, "bicyclelib": { "description": "Une vélothèque est un endroit où on peut emprunter des vélos, souvent moyennant une petite somme annuelle. Un cas d'utilisation notable est celui des vélothèques pour les enfants, qui leur permettent de passer à un vélo plus grand quand ils sont trop grands pour leur vélo actuel", "title": "Vélothèques" @@ -562,16 +567,16 @@ "=name": "Institutions d'éducation sans origine étymologique" } }, - "5": { - "override": { - "=name": "Lieux touristiques sans origine étymologique" - } - }, "4": { "override": { "=name": "Lieux culturels sans origine étymologique" } }, + "5": { + "override": { + "=name": "Lieux touristiques sans origine étymologique" + } + }, "6": { "override": { "=name": "Établissements sociaux ou de soins sans origine étymologique" @@ -798,10 +803,5 @@ "description": "Cartographions tous les arbres !", "shortDescription": "Carte des arbres", "title": "Arbres" - }, - "bicycle_rental": { - "shortDescription": "Une carte avec des stations et magasins de location de vélos", - "title": "Location de vélos", - "description": "Vous trouverez sur cette carte toutes les stations de location de vélo telles qu'elles sont référencées dans OpenStreetMap" } -} +} \ No newline at end of file From 8a2b45ce8a8b101ac7da834021fe3716443b6db7 Mon Sep 17 00:00:00 2001 From: Joost Date: Mon, 14 Mar 2022 16:10:15 +0000 Subject: [PATCH 4/6] Translated using Weblate (Dutch) Currently translated at 94.4% (1589 of 1682 strings) Translation: MapComplete/Layer translations Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layer-translations/nl/ --- langs/layers/nl.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 08342906ca..1b5ea92400 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -478,7 +478,7 @@ "then": "Kinderfietsen kunnen hier gehuurd worden" } }, - "question": "Wat voor soort fietsen en fietstoebehren worden hier verhuurd?", + "question": "Wat voor soort fietsen en fietstoebehoren worden hier verhuurd?", "render": "{rental} wordt hier uitgeleend" }, "bicycle_rental_type": { @@ -5231,4 +5231,4 @@ "render": "Watermolens" } } -} \ No newline at end of file +} From 2ceeb15a679aa637bae34b091146c676db63a8ca Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 14 Mar 2022 17:14:25 +0100 Subject: [PATCH 5/6] Add tandems, add images to cycle rental --- .../layers/bicycle_rental/bicycle_rental.json | 17 ++++++++++++++++- langs/layers/en.json | 6 ++++++ langs/layers/nl.json | 8 +++++++- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/assets/layers/bicycle_rental/bicycle_rental.json b/assets/layers/bicycle_rental/bicycle_rental.json index e79801b601..6e80cde7d4 100644 --- a/assets/layers/bicycle_rental/bicycle_rental.json +++ b/assets/layers/bicycle_rental/bicycle_rental.json @@ -44,6 +44,7 @@ "nl": "Fietsverhuustations" }, "tagRenderings": [ + "images", { "id": "bicycle_rental_type", "question": { @@ -186,6 +187,13 @@ "en": "Bikes for childs can be rented here", "nl": "Kinderfietsen kunnen hier gehuurd worden" } + }, + { + "if": "rental=tandem", + "then": { + "en": "Tandem bicycles can be rented here", + "nl": "Tandems kunnen hier gehuurd worden" + } } ] }, @@ -235,7 +243,14 @@ "bicycle_pannier", { "en": "bicycle panniers", - "nl": "Fietstassen" + "nl": "fietstassen" + } + ], + [ + "tandem_bicycle", + { + "en": "tandem bicycle", + "nl": "tandem" } ] ] diff --git a/langs/layers/en.json b/langs/layers/en.json index b2bb82f453..944e13a987 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -456,6 +456,9 @@ }, "5": { "1": "bicycle panniers" + }, + "6": { + "1": "tandem bicycle" } } } @@ -476,6 +479,9 @@ }, "4": { "then": "Bikes for childs can be rented here" + }, + "5": { + "then": "Tandem bicycles can be rented here" } }, "question": "What kind of bicycles and accessories are rented here?", diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 08342906ca..8bce71dc11 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -455,7 +455,10 @@ "1": "mountainbike" }, "5": { - "1": "Fietstassen" + "1": "fietstassen" + }, + "6": { + "1": "tandem" } } } @@ -476,6 +479,9 @@ }, "4": { "then": "Kinderfietsen kunnen hier gehuurd worden" + }, + "5": { + "then": "Tandems kunnen hier gehuurd worden" } }, "question": "Wat voor soort fietsen en fietstoebehren worden hier verhuurd?", From b406d17b1085021199aa9a9d89586c669f333ed2 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 14 Mar 2022 20:45:17 +0100 Subject: [PATCH 6/6] Add more bicycle options to cycle rental; add deletion and images to cycle rental, fix #703 --- Models/ThemeConfig/TagRenderingConfig.ts | 25 +++++--- UI/Popup/TagRenderingQuestion.ts | 2 +- .../layers/bicycle_rental/bicycle_rental.json | 46 ++++++++++++-- assets/layers/cafe_pub/cafe_pub.json | 9 ++- assets/layers/food/food.json | 9 ++- assets/layers/shops/shops.json | 9 ++- .../mapcomplete-changes.json | 42 +++++-------- css/index-tailwind-output.css | 8 +++ index.css | 8 +++ langs/layers/en.json | 35 ++++++++++- langs/layers/nl.json | 41 ++++++++++-- langs/themes/de.json | 62 ------------------- 12 files changed, 182 insertions(+), 114 deletions(-) diff --git a/Models/ThemeConfig/TagRenderingConfig.ts b/Models/ThemeConfig/TagRenderingConfig.ts index f0e797aae5..4cbf4f7b8c 100644 --- a/Models/ThemeConfig/TagRenderingConfig.ts +++ b/Models/ThemeConfig/TagRenderingConfig.ts @@ -366,29 +366,34 @@ export default class TagRenderingConfig { // A flag to check that the freeform key isn't matched multiple times // If it is undefined, it is "used" already, or at least we don't have to check for it anymore - let freeformKeyUsed = this.freeform?.key === undefined; + let freeformKeyDefined = this.freeform?.key !== undefined; + let usedFreeformValues = new Set() // We run over all the mappings first, to check if the mapping matches const applicableMappings: { then: Translation, img?: string }[] = Utils.NoNull((this.mappings ?? [])?.map(mapping => { if (mapping.if === undefined) { return mapping; } if (TagUtils.MatchesMultiAnswer(mapping.if, tags)) { - if (!freeformKeyUsed) { - if (mapping.if.usedKeys().indexOf(this.freeform.key) >= 0) { - // This mapping matches the freeform key - we mark the freeform key to be ignored! - freeformKeyUsed = true; - } + if (freeformKeyDefined && mapping.if.isUsableAsAnswer()) { + // THe freeform key is defined: what value does it use though? + // We mark the value to see if we have any leftovers + const value = mapping.if.asChange({}).find(kv => kv.k === this.freeform.key).v + usedFreeformValues.add(value) } return mapping; } return undefined; })) - - if (!freeformKeyUsed - && tags[this.freeform.key] !== undefined) { - applicableMappings.push({then: this.render}) + if(freeformKeyDefined && tags[this.freeform.key] !== undefined){ + const freeformValues = tags[this.freeform.key].split(";") + const leftovers = freeformValues.filter(v => !usedFreeformValues.has(v)) + for (const leftover of leftovers) { + applicableMappings.push({then: this.render.OnEveryLanguage(str => + str.replace(new RegExp("{"+this.freeform.key+"}", "g"), leftover))}) + } } + return applicableMappings } diff --git a/UI/Popup/TagRenderingQuestion.ts b/UI/Popup/TagRenderingQuestion.ts index db6271a1e7..a20019d997 100644 --- a/UI/Popup/TagRenderingQuestion.ts +++ b/UI/Popup/TagRenderingQuestion.ts @@ -456,7 +456,7 @@ export default class TagRenderingQuestion extends Combine { if (freeform.inline) { - inputTagsFilter.SetClass("w-16-imp") + inputTagsFilter.SetClass("w-48-imp") inputTagsFilter = new InputElementWrapper(inputTagsFilter, configuration.render, freeform.key, tags, state) inputTagsFilter.SetClass("block") diff --git a/assets/layers/bicycle_rental/bicycle_rental.json b/assets/layers/bicycle_rental/bicycle_rental.json index 6e80cde7d4..f1961db628 100644 --- a/assets/layers/bicycle_rental/bicycle_rental.json +++ b/assets/layers/bicycle_rental/bicycle_rental.json @@ -146,10 +146,11 @@ }, "render": { "en": "{rental} is rented here", - "nl": "{rental} wordt hier uitgeleend" + "nl": "{rental} kunnen hier uitgeleend worden" }, "freeform": { - "key": "rental" + "key": "rental", + "inline": true }, "multiAnswer": true, "mappings": [ @@ -194,6 +195,13 @@ "en": "Tandem bicycles can be rented here", "nl": "Tandems kunnen hier gehuurd worden" } + }, + { + "if": "rental=racebike", + "then": { + "en": "Race bicycles can be rented here", + "nl": "Wielerfietsen (sportfietsen) kunnen hier gehuurd worden" + } } ] }, @@ -222,7 +230,7 @@ "kid_bike", { "en": "bikes for children", - "nl": "Kinderfietsen" + "nl": "kinderfietsen" } ], [ @@ -249,7 +257,7 @@ [ "tandem_bicycle", { - "en": "tandem bicycle", + "en": "tandem", "nl": "tandem" } ] @@ -320,5 +328,33 @@ "render": "2" } } - ] + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": true + }, + "deletion": { + "softDeletionTags": { + "and": ["disused:amenity=bicycle_rental", "bicycle_rental=", "rental="] + }, + "neededChangesets": 10, + "extraDeleteReasons": [{ + "explanation": { + "nl": "{title()} is permanent gestopt", + "en": "{title()} has closed down permanently" + }, + "changesetMessage": "shop_closed" + }], + "nonDeleteMappings": [{ + "if": { + "and": [ + "service:bicycle:rental=no" + ] + }, + "then": { + "en": "This bicycle shop used to rent out bikes but doesn't rent out bikes anymore", + "nl": "Deze fietszaak verhuurde vroeger fietsen, maar nu niet meer" + } + }] + } } \ No newline at end of file diff --git a/assets/layers/cafe_pub/cafe_pub.json b/assets/layers/cafe_pub/cafe_pub.json index 8caa7ca67e..41486286fe 100644 --- a/assets/layers/cafe_pub/cafe_pub.json +++ b/assets/layers/cafe_pub/cafe_pub.json @@ -199,7 +199,14 @@ "amenity=", "disused:amenity:={amenity}" ] - } + }, + "extraDeleteReasons": [{ + "explanation": { + "nl": "{title()} is permanent gestopt", + "en": "{title()} has closed down permanently" + }, + "changesetMessage": "shop_closed" + }] }, "allowMove": true, "mapRendering": [ diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json index 07a05c263a..bbbc97d9b6 100644 --- a/assets/layers/food/food.json +++ b/assets/layers/food/food.json @@ -671,7 +671,14 @@ "amenity=", "disused:amenity:={amenity}" ] - } + }, + "extraDeleteReasons": [{ + "explanation": { + "nl": "{title()} is permanent gestopt", + "en": "{title()} has closed down permanently" + }, + "changesetMessage": "shop_closed" + }] }, "allowMove": true, "mapRendering": [ diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json index c9c4461bfc..2086aa2b92 100644 --- a/assets/layers/shops/shops.json +++ b/assets/layers/shops/shops.json @@ -356,7 +356,14 @@ "amenity=", "disused:amenity:={amenity}" ] - } + }, + "extraDeleteReasons": [{ + "explanation": { + "nl": "{title()} is permanent gestopt", + "en": "{title()} has closed down permanently" + }, + "changesetMessage": "shop_closed" + }] }, "allowMove": true, "mapRendering": [ diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index dc7fbecca7..8653e1842f 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -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": "Zeigt Änderungen, die von MapComplete vorgenommen wurden" + "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" }, "maintainer": "", "icon": "./assets/svg/logo.svg", @@ -25,8 +22,7 @@ { "id": "mapcomplete-changes", "name": { - "en": "Changeset centers", - "de": "Schwerpunkte von Änderungssätzen" + "en": "Changeset centers" }, "minzoom": 0, "source": { @@ -40,41 +36,35 @@ ], "title": { "render": { - "en": "Changeset for {theme}", - "de": "Änderungssatz für {theme}" + "en": "Changeset for {theme}" } }, "description": { - "en": "Shows all MapComplete changes", - "de": "Zeigt alle MapComplete-Änderungen" + "en": "Shows all MapComplete changes" }, "tagRenderings": [ { "id": "render_id", "render": { - "en": "Changeset {id}", - "de": "Änderungssatz {id}" + "en": "Changeset {id}" } }, { "id": "contributor", "render": { - "en": "Change made by {_last_edit:contributor}", - "de": "Geändert von {_last_edit:contributor}" + "en": "Change made by {_last_edit:contributor}" } }, { "id": "theme", "render": { - "en": "Change with theme {theme}", - "de": "Änderung mit Thema {theme}" + "en": "Change with theme {theme}" }, "mappings": [ { "if": "theme~http.*", "then": { - "en": "Change with unofficial theme {theme}", - "de": "Änderung mit inoffiziellem Thema {theme}" + "en": "Change with unofficial theme {theme}" } } ] @@ -338,8 +328,7 @@ } ], "question": { - "en": "Themename contains {search}", - "de": "Themenname enthält {search}" + "en": "Themename contains {search}" } } ] @@ -355,8 +344,7 @@ } ], "question": { - "en": "Made by contributor {search}", - "de": "Erstellt von Mitwirkendem {search}" + "en": "Made by contributor {search}" } } ] @@ -372,8 +360,7 @@ } ], "question": { - "en": "Not made by contributor {search}", - "de": " Nicht erstellt von Mitwirkendem {search}" + "en": "Not made by contributor {search}" } } ] @@ -388,8 +375,7 @@ { "id": "link_to_more", "render": { - "en": "More statistics can be found here", - "de": "Weitere Statistiken finden Sie hier" + "en": "More statistics can be found here" } }, { diff --git a/css/index-tailwind-output.css b/css/index-tailwind-output.css index f6586b3df2..6fb2bd4a0c 100644 --- a/css/index-tailwind-output.css +++ b/css/index-tailwind-output.css @@ -1985,6 +1985,14 @@ a { width: 4rem !important; } +.w-32-imp { + width: 8rem !important; +} + +.w-48-imp { + width: 12rem !important; +} + .link-underline a { -webkit-text-decoration: underline 1px var(--foreground-color); text-decoration: underline 1px var(--foreground-color); diff --git a/index.css b/index.css index 80320a95fc..921261d458 100644 --- a/index.css +++ b/index.css @@ -223,6 +223,14 @@ a { width: 4rem !important; } +.w-32-imp { + width: 8rem !important; +} + +.w-48-imp { + width: 12rem !important; +} + .link-underline a { text-decoration: underline 1px var(--foreground-color); } diff --git a/langs/layers/en.json b/langs/layers/en.json index 944e13a987..4b8f0a4ac4 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -418,6 +418,18 @@ } }, "bicycle_rental": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} has closed down permanently" + } + }, + "nonDeleteMappings": { + "0": { + "then": "This bicycle shop used to rent out bikes but doesn't rent out bikes anymore" + } + } + }, "description": "Bicycle rental stations", "name": "Bicycle rental", "presets": { @@ -458,7 +470,7 @@ "1": "bicycle panniers" }, "6": { - "1": "tandem bicycle" + "1": "tandem" } } } @@ -1215,6 +1227,13 @@ } }, "cafe_pub": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} has closed down permanently" + } + } + }, "description": "A layer showing cafés and pubs where one can gather around a drink. The layer asks for some relevant questions", "filter": { "0": { @@ -3149,6 +3168,13 @@ } }, "food": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} has closed down permanently" + } + } + }, "description": "A layer showing restaurants and fast-food amenities (with a special rendering for friteries)", "filter": { "0": { @@ -4346,6 +4372,13 @@ } }, "shops": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} has closed down permanently" + } + } + }, "description": "A shop", "name": "Shop", "presets": { diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 479a2c11af..a20a9da1b6 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -418,6 +418,18 @@ } }, "bicycle_rental": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} is permanent gestopt" + } + }, + "nonDeleteMappings": { + "0": { + "then": "Deze fietszaak verhuurde vroeger fietsen, maar nu niet meer" + } + } + }, "description": "Fietsverhuustations", "name": "Fietsverhuur", "presets": { @@ -446,7 +458,7 @@ "1": "elektrische fietsen" }, "2": { - "1": "Kinderfietsen" + "1": "kinderfietsen" }, "3": { "1": "BMX-fietsen" @@ -484,8 +496,8 @@ "then": "Tandems kunnen hier gehuurd worden" } }, - "question": "Wat voor soort fietsen en fietstoebehoren worden hier verhuurd?", - "render": "{rental} wordt hier uitgeleend" + "question": "Wat voor soort fietsen en fietstoebehren worden hier verhuurd?", + "render": "{rental} kunnen hier uitgeleend worden" }, "bicycle_rental_type": { "mappings": { @@ -1224,6 +1236,13 @@ } }, "cafe_pub": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} is permanent gestopt" + } + } + }, "description": "Een laag die kroegen en koffiehuizen toont waar je iets kunt drinken. De laag zal je enkele vragen stellen", "filter": { "0": { @@ -3101,6 +3120,13 @@ } }, "food": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} is permanent gestopt" + } + } + }, "filter": { "0": { "options": { @@ -4169,6 +4195,13 @@ } }, "shops": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} is permanent gestopt" + } + } + }, "description": "Een winkel", "name": "Winkel", "presets": { @@ -5237,4 +5270,4 @@ "render": "Watermolens" } } -} +} \ No newline at end of file diff --git a/langs/themes/de.json b/langs/themes/de.json index f43facb556..be8b80098c 100644 --- a/langs/themes/de.json +++ b/langs/themes/de.json @@ -968,68 +968,6 @@ "shortDescription": "Hydranten, Feuerlöscher, Feuerwachen und Rettungswachen.", "title": "Hydranten, Feuerlöscher, Feuerwachen und Rettungswachen." }, - "mapcomplete-changes": { - "description": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen", - "layers": { - "0": { - "description": "Zeigt alle MapComplete-Änderungen", - "filter": { - "0": { - "options": { - "0": { - "question": "Themenname enthält {search}" - } - } - }, - "1": { - "options": { - "0": { - "question": "Erstellt von Mitwirkendem {search}" - } - } - }, - "2": { - "options": { - "0": { - "question": " Nicht erstellt von Mitwirkendem {search}" - } - } - } - }, - "name": "Schwerpunkte von Änderungssätzen", - "tagRenderings": { - "contributor": { - "render": "Geändert von {_last_edit:contributor}" - }, - "render_id": { - "render": "Änderungssatz {id}" - }, - "theme": { - "mappings": { - "0": { - "then": "Änderung mit inoffiziellem Thema {theme}" - } - }, - "render": "Änderung mit Thema {theme}" - } - }, - "title": { - "render": "Änderungssatz für {theme}" - } - }, - "1": { - "override": { - "tagRenderings": { - "link_to_more": { - "render": "Weitere Statistiken finden Sie hier" - } - } - } - } - }, - "shortDescription": "Zeigt Änderungen, die von MapComplete vorgenommen wurden", - "title": "Änderungen mit MapComplete" - }, "maps": { "description": "Auf dieser Karte findest du alle Karten, die OpenStreetMap kennt - typischerweise eine große Karte auf einer Informationstafel, die das Gebiet, die Stadt oder die Region zeigt, z.B. eine touristische Karte auf der Rückseite einer Plakatwand, eine Karte eines Naturschutzgebietes, eine Karte der Radwegenetze in der Region, ...)

Wenn eine Karte fehlt, können Sie diese leicht auf OpenStreetMap kartieren.", "shortDescription": "Dieses Thema zeigt alle (touristischen) Karten, die OpenStreetMap kennt",