diff --git a/Models/ThemeConfig/TagRenderingConfig.ts b/Models/ThemeConfig/TagRenderingConfig.ts index 81a692862..a50b32882 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 db6271a1e..a20019d99 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/address/address.json b/assets/layers/address/address.json index d06997de9..aee9af093 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 f8e86e9f4..4a18e1420 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 9bb38a52f..a0bafacd0 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 c8f3f481a..fcb56c8ac 100644 --- a/assets/layers/bench/bench.json +++ b/assets/layers/bench/bench.json @@ -655,6 +655,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 e2525223e..3fa5e5d25 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 e79801b60..f1961db62 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": { @@ -145,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": [ @@ -186,6 +188,20 @@ "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" + } + }, + { + "if": "rental=racebike", + "then": { + "en": "Race bicycles can be rented here", + "nl": "Wielerfietsen (sportfietsen) kunnen hier gehuurd worden" + } } ] }, @@ -214,7 +230,7 @@ "kid_bike", { "en": "bikes for children", - "nl": "Kinderfietsen" + "nl": "kinderfietsen" } ], [ @@ -235,7 +251,14 @@ "bicycle_pannier", { "en": "bicycle panniers", - "nl": "Fietstassen" + "nl": "fietstassen" + } + ], + [ + "tandem_bicycle", + { + "en": "tandem", + "nl": "tandem" } ] ] @@ -305,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 8caa7ca67..41486286f 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 07a05c263..bbbc97d9b 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 c9c4461bf..2086aa2b9 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/tagRenderings/questions.json b/assets/tagRenderings/questions.json index 807f12388..005bc3ea3 100644 --- a/assets/tagRenderings/questions.json +++ b/assets/tagRenderings/questions.json @@ -672,7 +672,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" } }, { @@ -684,7 +685,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" } } ] diff --git a/assets/themes/bicycle_rental/bicycle_rental.json b/assets/themes/bicycle_rental/bicycle_rental.json index efe22fc11..152f1db36 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 9eb22f16a..8eb20ea38 100644 --- a/assets/themes/etymology.json +++ b/assets/themes/etymology.json @@ -128,7 +128,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": { @@ -155,7 +156,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": { @@ -181,7 +183,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": { @@ -206,7 +209,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/css/index-tailwind-output.css b/css/index-tailwind-output.css index 06d2646a0..d44c18b2d 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 80320a95f..921261d45 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/en.json b/langs/en.json index aa225bb3b..0ae992c02 100644 --- a/langs/en.json +++ b/langs/en.json @@ -549,7 +549,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": { diff --git a/langs/fr.json b/langs/fr.json index f11e9df0a..aea12c2c1 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 4cccc8f62..f0f68531d 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": { @@ -430,7 +442,7 @@ } }, "tagRenderings": { - "8": { + "9": { "renderings": { "0": { "question": "How much type_plural can be rented here? ", @@ -456,6 +468,9 @@ }, "5": { "1": "bicycle panniers" + }, + "6": { + "1": "tandem" } } } @@ -476,6 +491,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?", @@ -1209,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": { @@ -3152,6 +3177,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": { @@ -4363,6 +4395,13 @@ } }, "shops": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} has closed down permanently" + } + } + }, "description": "A shop", "name": "Shop", "presets": { diff --git a/langs/layers/fr.json b/langs/layers/fr.json index 4102259e5..5a4b467b7 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 195ee3b89..70a2e3f55 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 d4966b4ec..73e79eb12 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": { @@ -430,7 +442,7 @@ } }, "tagRenderings": { - "8": { + "9": { "renderings": { "0": { "question": "Hoeveel type_plural kunnen hier uitgeleend worden?", @@ -446,7 +458,7 @@ "1": "elektrische fietsen" }, "2": { - "1": "Kinderfietsen" + "1": "kinderfietsen" }, "3": { "1": "BMX-fietsen" @@ -455,7 +467,10 @@ "1": "mountainbike" }, "5": { - "1": "Fietstassen" + "1": "fietstassen" + }, + "6": { + "1": "tandem" } } } @@ -476,10 +491,13 @@ }, "4": { "then": "Kinderfietsen kunnen hier gehuurd worden" + }, + "5": { + "then": "Tandems kunnen hier gehuurd worden" } }, "question": "Wat voor soort fietsen en fietstoebehren worden hier verhuurd?", - "render": "{rental} wordt hier uitgeleend" + "render": "{rental} kunnen hier uitgeleend worden" }, "bicycle_rental_type": { "mappings": { @@ -1218,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": { @@ -3104,6 +3129,13 @@ } }, "food": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} is permanent gestopt" + } + } + }, "filter": { "0": { "options": { @@ -4172,6 +4204,13 @@ } }, "shops": { + "deletion": { + "extraDeleteReasons": { + "0": { + "explanation": "{title()} is permanent gestopt" + } + } + }, "description": "Een winkel", "name": "Winkel", "presets": { diff --git a/langs/shared-questions/fr.json b/langs/shared-questions/fr.json index ef22e4012..9d4ffe24a 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/de.json b/langs/themes/de.json index f43facb55..be8b80098 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", diff --git a/langs/themes/fr.json b/langs/themes/fr.json index 417528dad..b92bbb0f7 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