diff --git a/assets/layers/etymology/etymology.json b/assets/layers/etymology/etymology.json index 7f0b017433..e622e74997 100644 --- a/assets/layers/etymology/etymology.json +++ b/assets/layers/etymology/etymology.json @@ -104,7 +104,9 @@ { "id": "wikipedia-etymology", "condition": { - "and":["name:etymology!=unknown"] + "and": [ + "name:etymology!=unknown" + ] }, "question": { "en": "What is the Wikidata-item that this object is named after?", diff --git a/assets/layers/indoors/indoors.json b/assets/layers/indoors/indoors.json index 36e0aeebf2..cb94e518f8 100644 --- a/assets/layers/indoors/indoors.json +++ b/assets/layers/indoors/indoors.json @@ -571,7 +571,6 @@ } } }, - { "builtin": "toilet.relevant-questions", "override": { diff --git a/assets/layers/unit/unit.json b/assets/layers/unit/unit.json index 0d45d7662c..bb441f6496 100644 --- a/assets/layers/unit/unit.json +++ b/assets/layers/unit/unit.json @@ -423,7 +423,6 @@ "nl": "{quantity} maanden" } } - ] } ] diff --git a/langs/layers/ca.json b/langs/layers/ca.json index add9c3d86f..8aa055ac2a 100644 --- a/langs/layers/ca.json +++ b/langs/layers/ca.json @@ -308,10 +308,6 @@ } }, "question": "Quina és la finalitat del refugi d'animals?" - }, - "7": { - "question": "Quan està obert aquest refugi d'animals?", - "render": "{opening_hours_table()}" } }, "title": { @@ -7129,6 +7125,10 @@ } }, "tagRenderings": { + "camera_direction": { + "question": "En quina direcció geogràfica apunta aquesta càmera?", + "render": "Grava en direcció {direction}" + }, "maxspeed": { "freeform": { "placeholder": "Velocitat màxima permesa" diff --git a/langs/layers/cs.json b/langs/layers/cs.json index 9ef69176f8..4ec8e3268a 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -7425,6 +7425,10 @@ } }, "tagRenderings": { + "camera_direction": { + "question": "Ve kterém geografickém směru tato kamera snímá?", + "render": "Snímané oblasti podle směru kompasu {direction}" + }, "maxspeed": { "freeform": { "placeholder": "Maximální povolená rychlost" diff --git a/langs/layers/da.json b/langs/layers/da.json index 2f2a68740d..b02ab560f6 100644 --- a/langs/layers/da.json +++ b/langs/layers/da.json @@ -1747,6 +1747,14 @@ } } }, + "speed_camera": { + "tagRenderings": { + "camera_direction": { + "question": "I hvilken geografisk retning filmer dette kamera?", + "render": "Filmer til en kompasretning af {direction}" + } + } + }, "surveillance_camera": { "tagRenderings": { "Surveillance type: public, outdoor, indoor": { diff --git a/langs/layers/de.json b/langs/layers/de.json index 0904de91ac..86544b2c8d 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -393,10 +393,6 @@ } }, "question": "Was ist der Zweck des Tierheims?" - }, - "7": { - "question": "Wann ist das Tierheim geöffnet?", - "render": "{opening_hours_table()}" } }, "title": { @@ -8956,6 +8952,10 @@ } }, "tagRenderings": { + "camera_direction": { + "question": "In welche Himmelsrichtung filmt diese Kamera?", + "render": "filmt in Himmelsrichtung {direction}" + }, "maxspeed": { "freeform": { "placeholder": "Zulässige Höchstgeschwindigkeit" diff --git a/langs/layers/en.json b/langs/layers/en.json index e7f7a22c04..3b766ac55e 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -394,9 +394,26 @@ }, "question": "What is the purpose of the animal shelter?" }, - "7": { - "question": "When is this animal shelter opened?", - "render": "{opening_hours_table()}" + "boarded_animals": { + "mappings": { + "0": { + "then": "Dogs are kept here" + }, + "1": { + "then": "Cats are kept here" + }, + "2": { + "then": "Horses are kept here" + }, + "3": { + "then": "Birds are kept here" + }, + "4": { + "then": "Wild animals are kept here" + } + }, + "question": "Which animals are accepted here?", + "render": "{animal_shelter} is kept here" } }, "title": { @@ -1489,10 +1506,18 @@ }, "question": "Are these bicycle parkings free to use?" }, + "maxstay": { + "question": "What is the maximum allowed parking duration?", + "questionHint": "If the bicycle is parked for a longer amount, it might be removed by the operator", + "render": "A bike can be parked here for at most {canonical(maxstay)}" + }, "operator": { "question": "Who maintains this bicycle parking?", "render": "This bicycle parking is maintained by {operator}" }, + "operator_email": { + "question": "What is the email address of the operator of this bicycle parking?" + }, "operator_phone": { "question": "What is the phone number of the operator of this bicycle parking?", "questionHint": "One might be able to call this number in case of problems, e.g. to remove unmaintained bicycles" @@ -2160,6 +2185,9 @@ }, "16": { "question": "Has a
Bosch Active Connect with 5 pins and cable
connector" + }, + "17": { + "question": "Has a
BS1363 (Type G)
connector" } } } @@ -2304,6 +2332,12 @@ }, "31": { "then": "Bosch Active Connect with 5 pins and cable" + }, + "32": { + "then": "BS1363 (Type G)" + }, + "33": { + "then": "BS1363 (Type G)" } }, "question": "Which charging connections are available here?" @@ -2538,6 +2572,9 @@ }, "15": { "2": "Bosch Active Connect with 5 pins and cable" + }, + "16": { + "2": "BS1363 (Type G)" } } } @@ -5112,6 +5149,22 @@ "render": "Restaurant" } }, + "food_courts": { + "description": "Food courts with a variety of food options.", + "name": "Food Courts", + "tagRenderings": { + "name": { + "freeform": { + "placeholder": "Name of the food court" + }, + "question": "What is the name of this food court?", + "render": "This food court is called {name}." + } + }, + "title": { + "render": "Food Court" + } + }, "ghost_bike": { "description": "A layer showing memorials for cyclists, killed in road accidents", "name": "Ghost bikes", @@ -6624,6 +6677,74 @@ "render": "OSM Community Index" } }, + "outdoor_seating": { + "description": "Outdoor seating areas, usually located near cafes and restaurants.", + "name": "Outdoor Seating", + "tagRenderings": { + "access": { + "mappings": { + "0": { + "then": "Anyone can use this outdoor seating area." + }, + "1": { + "then": "Only customers can use this outdoor seating area." + }, + "2": { + "then": "This outdoor seating area is private." + } + }, + "question": "Who can use this outdoor seating area?" + }, + "covered": { + "mappings": { + "0": { + "then": "This outdoor seating area is covered." + }, + "1": { + "then": "This outdoor seating area is not covered." + } + }, + "question": "Is this outdoor seating area covered?" + }, + "heating": { + "mappings": { + "0": { + "then": "This outdoor seating area is heated." + }, + "1": { + "then": "This outdoor seating area is not heated." + } + }, + "question": "Is this outdoor seating area heated?" + }, + "seasonal": { + "mappings": { + "0": { + "then": "This outdoor seating area is available all year round." + }, + "1": { + "then": "This outdoor seating area is available in spring." + }, + "2": { + "then": "This outdoor seating area is available in summer." + }, + "3": { + "then": "This outdoor seating area is available in autumn." + }, + "4": { + "then": "This outdoor seating area is available in winter." + }, + "5": { + "then": "This outdoor seating area is available in the dry season." + } + }, + "question": "Is this outdoor seating area seasonal?" + } + }, + "title": { + "render": "Outdoor Seating area" + } + }, "parcel_lockers": { "description": "Layer showing parcel lockers for collecting and sending parcels.", "name": "Parcel Lockers", @@ -8956,6 +9077,10 @@ } }, "tagRenderings": { + "camera_direction": { + "question": "In which geographical direction does this camera film?", + "render": "Films to a compass heading of {direction}" + }, "maxspeed": { "freeform": { "placeholder": "Maximum speed allowed" @@ -10532,6 +10657,14 @@ "2": { "human": "{quantity} days", "humanSingular": "one day" + }, + "3": { + "human": "{quantity} weeks", + "humanSingular": "one week" + }, + "4": { + "human": "{quantity} months", + "humanSingular": "one month" } } } diff --git a/langs/layers/es.json b/langs/layers/es.json index c48d5e2848..d2fc81df35 100644 --- a/langs/layers/es.json +++ b/langs/layers/es.json @@ -310,10 +310,6 @@ } }, "question": "¿Cuál es la finalidad del refugio de animales?" - }, - "7": { - "question": "¿Cuándo se abre este refugio de animales?", - "render": "{opening_hours_table()}" } }, "title": { @@ -4058,6 +4054,10 @@ } }, "tagRenderings": { + "camera_direction": { + "question": "¿A qué dirección geográfica apunta esta cámara?", + "render": "Graba en dirección a {direction}" + }, "maxspeed": { "freeform": { "placeholder": "Velocidad máxima permitida" diff --git a/langs/layers/fr.json b/langs/layers/fr.json index 8f5599bd7f..16ea867be2 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -5503,6 +5503,10 @@ }, "speed_camera": { "tagRenderings": { + "camera_direction": { + "question": "Dans quelle direction géographique cette caméra filme-t-elle ?", + "render": "Filme dans une direction {direction}" + }, "maxspeed": { "freeform": { "placeholder": "Vitesse maximale autorisée" diff --git a/langs/layers/it.json b/langs/layers/it.json index 7bb29573c7..b57b1ae26f 100644 --- a/langs/layers/it.json +++ b/langs/layers/it.json @@ -2373,6 +2373,14 @@ } } }, + "speed_camera": { + "tagRenderings": { + "camera_direction": { + "question": "In quale direzione geografica punta questa videocamera?", + "render": "Punta in direzione {direction}" + } + } + }, "sport_pitch": { "description": "Un campo sportivo", "name": "Campi sportivi", diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 5cefd9b799..8f0dd132ac 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -1222,10 +1222,18 @@ }, "question": "Is deze fietsenstalling gratis te gebruiken?" }, + "maxstay": { + "question": "Wat is de toegestane, maximale parkeerduur?", + "questionHint": "Indien een fiets langer geparkeerd staat, kan deze verwijderd worden door de beheerder", + "render": "Een fiets mag hier maximaal {canonical(maxstay)} parkeren" + }, "operator": { "question": "Wie beheert deze fietsenstalling?", "render": "Deze fietsenstalling wordt beheerd door {operator}" }, + "operator_email": { + "question": "Wat is het emailadres van de beheerder van deze parking?" + }, "operator_phone": { "question": "Wat is het telefoonnummer van de operator van deze fietsenstalling?", "questionHint": "Men kan dit nummer bellen om bv. fietswrakken of defecten te melden" @@ -1869,6 +1877,9 @@ }, "16": { "question": "Heeft een
Bosch Active Connect met 5 pinnen aan een kabel
" + }, + "17": { + "question": "Heeft een
BS1363 (VK 3-pin)
" } } } @@ -2013,6 +2024,12 @@ }, "31": { "then": "Bosch Active Connect met 5 pinnen aan een kabel" + }, + "32": { + "then": "BS1363 (VK 3-pin)" + }, + "33": { + "then": "BS1363 (VK 3-pin)" } }, "question": "Welke aansluitingen zijn hier beschikbaar?" @@ -2247,6 +2264,9 @@ }, "15": { "2": "Bosch Active Connect met 5 pinnen aan een kabel" + }, + "16": { + "2": "BS1363 (VK 3-pin)" } } } @@ -7341,6 +7361,10 @@ } }, "tagRenderings": { + "camera_direction": { + "question": "In welke geografische richting filmt deze camera?", + "render": "Filmt in kompasrichting {direction}" + }, "maxspeed": { "freeform": { "placeholder": "Maximum toegestane snelheid" @@ -8692,6 +8716,14 @@ "2": { "human": "{quantity} day", "humanSingular": "één dag" + }, + "3": { + "human": "{quantity} weken", + "humanSingular": "één week" + }, + "4": { + "human": "{quantity} maanden", + "humanSingular": "één maand" } } } diff --git a/langs/layers/sl.json b/langs/layers/sl.json index 710497b57e..9387209d9e 100644 --- a/langs/layers/sl.json +++ b/langs/layers/sl.json @@ -223,6 +223,12 @@ "0": { "title": "hitrostna kamera" } + }, + "tagRenderings": { + "camera_direction": { + "question": "V katero geografsko smer snema ta kamera?", + "render": "Snema v smeri kompasa {direction}" + } } }, "surveillance_camera": { diff --git a/langs/layers/zh_Hans.json b/langs/layers/zh_Hans.json index 3159a582d2..818a2be188 100644 --- a/langs/layers/zh_Hans.json +++ b/langs/layers/zh_Hans.json @@ -292,10 +292,6 @@ } }, "question": "动物收容所的目的是什么?" - }, - "7": { - "question": "这个动物收容所什么时候开放?", - "render": "{opening_hours_table()}" } }, "title": { diff --git a/scripts/generateTranslations.ts b/scripts/generateTranslations.ts index d254a0d58a..cd5c8ab45a 100644 --- a/scripts/generateTranslations.ts +++ b/scripts/generateTranslations.ts @@ -570,10 +570,6 @@ function MergeTranslation(source: any, target: any, language: string, context: s } for (const key in source) { - if (!source.hasOwnProperty(key)) { - continue - } - const sourceV = source[key] const targetV = target[keyRemapping?.get(key) ?? key] @@ -582,10 +578,7 @@ function MergeTranslation(source: any, target: any, language: string, context: s if (targetV === undefined) { if (typeof target === "string") { throw ( - "Trying to merge a translation into a fixed string at " + - context + - " for key " + - key + `Trying to merge a translation for ${language} into a fixed string at ${context} for key ${key}` ) } target[key] = source[key]