diff --git a/.gitignore b/.gitignore index 0ae99c0e06..b7f7822f05 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,11 @@ dist/* node_modules .cache/* .idea/* +.vscode/* scratch assets/editor-layer-index.json assets/generated/* +assets/generated/images/* /*.webmanifest /*.html !/index.html @@ -18,4 +20,6 @@ missing_translations.txt Svg.ts data/ Folder.DotSettings.user -index_*.ts \ No newline at end of file +index_*.ts +.~lock.* +*.doctest.ts diff --git a/404.html b/404.html index fa1f722f3a..94e4a8c357 100644 --- a/404.html +++ b/404.html @@ -15,16 +15,16 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file + + + + + + + + + + + + + + + + diff --git a/assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json b/assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json index 6558cc5d25..379e3a9181 100644 --- a/assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json +++ b/assets/layers/bicycle_tube_vending_machine/bicycle_tube_vending_machine.json @@ -5,11 +5,12 @@ "nl": "Fietsbanden-verkoopsautomaat", "fr": "Distributeur automatique de chambre à air de vélo", "it": "Distributore automatico di camere d’aria per bici", - "de": "Fahrradschlauch-Automat", + "de": "Automaten für Fahrradschläuche", "ru": "Торговый автомат для велосипедистов", "zh_Hant": "自行車內胎自動售貨機", "pt_BR": "Máquina de venda automática de tubos de bicicleta", - "pt": "Máquina de venda automática de tubos de bicicleta" + "pt": "Máquina de venda automática de tubos de bicicleta", + "da": "Automat til salg af cykelslanger" }, "title": { "render": { @@ -21,7 +22,8 @@ "ru": "Торговый автомат для велосипедистов", "zh_Hant": "自行車內胎自動售貨機", "pt_BR": "Máquina de venda automática de tubos de bicicleta", - "pt": "Máquina de venda automática de tubos de bicicleta" + "pt": "Máquina de venda automática de tubos de bicicleta", + "da": "Automat til salg af cykelslanger" }, "mappings": [ { @@ -49,15 +51,16 @@ "presets": [ { "title": { - "en": "Bicycle tube vending machine", - "nl": "Fietsbanden-verkoopsautomaat", - "fr": "Distributeur automatique de chambre à air de vélo", - "it": "Distributore automatico di camere d’aria per bici", - "de": "Fahrradschlauch-Automat", + "en": "a bicycle tube vending machine", + "nl": "een fietsbanden-verkoopsautomaat", + "fr": "une distributeur automatique de chambre à air de vélo", + "it": "una distributore automatico di camere d’aria per bici", + "de": "eine fahrradschlauch-automat", "ru": "Торговый автомат для велосипедистов", "zh_Hant": "自行車內胎自動售貨機", - "pt_BR": "Máquina de venda automática de tubos de bicicleta", - "pt": "Máquina de venda automática de tubos de bicicleta" + "pt_BR": "uma máquina de venda automática de tubos de bicicleta", + "pt": "uma máquina de venda automática de tubos de bicicleta", + "da": "en automat til salg af cykelslanger" }, "tags": [ "amenity=vending_machine", @@ -78,7 +81,9 @@ "de": "Ist dieser Automat noch in Betrieb?", "zh_Hant": "這個自動販賣機仍有運作嗎?", "pt_BR": "Esta máquina de venda automática ainda está operacional?", - "pt": "Esta máquina de venda automática ainda está operacional?" + "pt": "Esta máquina de venda automática ainda está operacional?", + "es": "¿Todavía es operacional esta máquina exprendedora?", + "da": "Er denne salgsautomat stadig i drift?" }, "render": { "en": "The operational status is {operational_status}", @@ -89,7 +94,8 @@ "ru": "Рабочий статус: {operational_status}", "zh_Hant": "運作狀態是 {operational_status}", "pt_BR": "O estado operacional é: {operational_status}", - "pt": "O estado operacional é: {operational_status}" + "pt": "O estado operacional é: {operational_status}", + "es": "El estado operacional es {operational_status}" }, "freeform": { "key": "operational_status" @@ -108,7 +114,8 @@ "de": "Dieser Automat funktioniert", "zh_Hant": "這個自動販賣機仍運作", "pt_BR": "Esta máquina de venda automática funciona", - "pt": "Esta máquina de venda automática funciona" + "pt": "Esta máquina de venda automática funciona", + "da": "Denne salgsautomat virker" } }, { @@ -124,7 +131,9 @@ "de": "Dieser Automat ist kaputt", "zh_Hant": "這個自動販賣機沒有運作了", "pt_BR": "Esta máquina de venda automática está quebrada", - "pt": "Esta máquina de venda automática está quebrada" + "pt": "Esta máquina de venda automática está quebrada", + "es": "Esta máquina exprendedora está rota", + "da": "Denne salgsautomat er i stykker" } }, { @@ -140,7 +149,9 @@ "de": "Dieser Automat ist geschlossen", "zh_Hant": "這個自動販賣機已經關閉了", "pt_BR": "Esta máquina de venda automática está fechada", - "pt": "Esta máquina de venda automática está fechada" + "pt": "Esta máquina de venda automática está fechada", + "es": "Esta máquina exprendedora está cerrada", + "da": "Denne salgsautomat er lukket" } } ], @@ -287,6 +298,8 @@ ], "description": { "en": "A layer showing vending machines for bicycle tubes (either purpose-built bicycle tube vending machines or classical vending machines with bicycle tubes and optionally additional bicycle related objects such as lights, gloves, locks, ...)", - "nl": "Een laag met verkoopsautomaten met binnenbanden voor fietsen (dit kan een automaat zijn met énkel fietsbanden, of een gewone automaat met fietsbanden en andere fietsaccessoires zoals lichten, handschoenen, sloten,...)" + "nl": "Een laag met verkoopsautomaten met binnenbanden voor fietsen (dit kan een automaat zijn met énkel fietsbanden, of een gewone automaat met fietsbanden en andere fietsaccessoires zoals lichten, handschoenen, sloten,...)", + "de": "Eine Ebene mit Automaten für Fahrradschläuche (entweder spezielle Fahrradschlauch-Automaten oder klassische Automaten mit Fahrradschläuchen und optional zusätzlichen fahrradbezogenen Gegenständen wie Lampen, Handschuhe, Schlösser, ...)", + "da": "Et lag med automater til cykelslanger (enten specialbyggede cykelslangeautomater eller klassiske automater med cykelslanger og eventuelt andre cykelrelaterede genstande som f.eks. lys, handsker, låse, ...)" } } \ No newline at end of file diff --git a/assets/layers/bike_cafe/bike_cafe.json b/assets/layers/bike_cafe/bike_cafe.json index becb7d4071..e430ad655c 100644 --- a/assets/layers/bike_cafe/bike_cafe.json +++ b/assets/layers/bike_cafe/bike_cafe.json @@ -5,13 +5,15 @@ "nl": "Fietscafé", "fr": "Café vélo", "gl": "Café de ciclistas", - "de": "Fahrrad-Café", + "de": "Fahrrad-Cafés", "it": "Caffè in bici", "zh_Hans": "自行车咖啡", "ru": "Велосипедное кафе", "zh_Hant": "單車咖啡廳", "pt_BR": "Café de bicicletas", - "pt": "Café de bicicletas" + "pt": "Café de bicicletas", + "ca": "Cafeteria per a bicicletes", + "da": "Cykelcafé" }, "minzoom": 13, "source": { @@ -50,7 +52,9 @@ "ru": "Велосипедное кафе", "zh_Hant": "單車咖啡廳", "pt_BR": "Café de bicicleta", - "pt": "Café de bicicleta" + "pt": "Café de bicicleta", + "ca": "Cafeteria per a bicicletes", + "da": "Cykelcafé" }, "mappings": [ { @@ -66,7 +70,8 @@ "ru": "Велосипедное кафе {name}", "zh_Hant": "單車咖啡廳{name}", "pt_BR": "Café de bicicleta {name}", - "pt": "Café de bicicleta {name}" + "pt": "Café de bicicleta {name}", + "da": "Cykelcafé {name}" } } ] @@ -85,7 +90,8 @@ "ru": "Как называется это байк-кафе?", "zh_Hant": "這個單車咖啡廳的名稱是?", "pt_BR": "Qual o nome deste café de bicicleta?", - "pt": "Qual o nome deste café de bicicleta?" + "pt": "Qual o nome deste café de bicicleta?", + "da": "Hvad hedder denne cykelcafé?" }, "render": { "en": "This bike cafe is called {name}", @@ -98,7 +104,8 @@ "ru": "Это велосипедное кафе называется {name}", "zh_Hant": "這個單車咖啡廳叫做 {name}", "pt_BR": "Este café de bicicleta se chama {name}", - "pt": "Este café de bicicleta se chama {name}" + "pt": "Este café de bicicleta se chama {name}", + "da": "Denne cykelcafé hedder {name}" }, "freeform": { "key": "name" @@ -163,7 +170,8 @@ "ru": "Есть ли здесь инструменты для починки вашего велосипеда?", "pt_BR": "Há ferramentas aqui para consertar sua bicicleta?", "pt": "Há ferramentas aqui para consertar a sua própria bicicleta?", - "es": "¿Hay herramientas para reparar su propia bicicleta?" + "es": "¿Hay herramientas para reparar su propia bicicleta?", + "da": "Er der værktøj her til at reparere din egen cykel?" }, "mappings": [ { @@ -179,7 +187,8 @@ "zh_Hant": "這個單車咖啡廳提供工具讓你修理", "ru": "В этом велосипедном кафе есть инструменты для починки своего велосипеда", "pt_BR": "Este café de bicicleta oferece ferramentas de reparo faça você mesmo", - "pt": "Este café de bicicleta oferece ferramentas de reparo faça você mesmo" + "pt": "Este café de bicicleta oferece ferramentas de reparo faça você mesmo", + "da": "Denne cykelcafé tilbyder værktøj til gør-det-selv-reparation" } }, { @@ -195,7 +204,8 @@ "zh_Hant": "這個單車咖啡廳並沒有提供工具讓你修理", "ru": "В этом велосипедном кафе нет инструментов для починки своего велосипеда", "pt_BR": "Este café de bicicleta não oferece ferramentas de reparo faça você mesmo", - "pt": "Este café de bicicleta não oferece ferramentas de reparo faça você mesmo" + "pt": "Este café de bicicleta não oferece ferramentas de reparo faça você mesmo", + "da": "Denne cykelcafé tilbyder ikke værktøj til gør-det-selv-reparation" } } ] @@ -213,7 +223,8 @@ "zh_Hant": "這個單車咖啡廳是否能修理單車?", "ru": "Есть ли услуги ремонта велосипедов в этом велосипедном кафе?", "pt_BR": "Este café de bicicleta conserta bicicletas?", - "pt": "Este café de bicicleta conserta bicicletas?" + "pt": "Este café de bicicleta conserta bicicletas?", + "da": "Reparerer denne cykelcafé cykler?" }, "mappings": [ { @@ -229,7 +240,8 @@ "zh_Hant": "這個單車咖啡廳修理單車", "ru": "В этом велосипедном кафе есть услуги ремонта велосипедов", "pt_BR": "Este café de bicicleta conserta bicicletas", - "pt": "Este café de bicicleta conserta bicicletas" + "pt": "Este café de bicicleta conserta bicicletas", + "da": "Denne cykelcafé reparerer cykler" } }, { @@ -245,7 +257,8 @@ "zh_Hant": "這個單車咖啡廳並不修理單車", "ru": "В этом велосипедном кафе нет услуг ремонта велосипедов", "pt_BR": "Este café de bicicleta não conserta bicicletas", - "pt": "Este café de bicicleta não conserta bicicletas" + "pt": "Este café de bicicleta não conserta bicicletas", + "da": "Denne cykelcafé reparerer ikke cykler" } } ] @@ -262,7 +275,8 @@ "zh_Hans": "{name}的网站是什么?", "zh_Hant": "{name} 的網站是?", "pt_BR": "Qual o website de {name}?", - "pt": "Qual o website de {name}?" + "pt": "Qual o website de {name}?", + "da": "Hvad er webstedet for {name}?" }, "render": "{website}", "freeform": { @@ -282,7 +296,9 @@ "zh_Hans": "{name}的电话号码是什么?", "zh_Hant": "{name} 的電話號碼是?", "pt_BR": "Qual o número de telefone de {name}?", - "pt": "Qual é o número de telefone de {name}?" + "pt": "Qual é o número de telefone de {name}?", + "es": "¿Cual es el número de teléfono de {name}?", + "da": "Hvad er telefonnummeret til {name}?" }, "render": "{phone}", "freeform": { @@ -303,7 +319,9 @@ "zh_Hans": "{name}的电子邮箱是什么?", "zh_Hant": "{name} 的電子郵件地址是?", "pt_BR": "Qual o endereço de email de {name}?", - "pt": "Qual o endereço de email de {name}?" + "pt": "Qual o endereço de email de {name}?", + "es": "¿Cual es la dirección de correo electrónico de {name}?", + "da": "Hvad er e-mailadressen på {name}?" }, "render": "{email}", "freeform": { @@ -336,17 +354,18 @@ "presets": [ { "title": { - "en": "Bike cafe", - "nl": "Fietscafé", - "fr": "Café Vélo", + "en": "a bike cafe", + "nl": "een fietscafé", + "fr": "une café vélo", "gl": "Café de ciclistas", - "de": "Fahrrad-Café", - "it": "Caffè in bici", + "de": "eine fahrrad-café", + "it": "una caffè in bici", "zh_Hans": "自行车咖啡", "zh_Hant": "單車咖啡廳", "ru": "Велосипедное кафе", - "pt_BR": "Café de bicicleta", - "pt": "Café de bicicleta" + "pt_BR": "uma café de bicicleta", + "pt": "uma café de bicicleta", + "da": "en cykelcafé" }, "tags": [ "amenity=pub", @@ -378,6 +397,8 @@ ], "description": { "en": "A bike café is a café geared towards cyclists, for example with services such as a pump, with lots of bicycle-related decoration, ...", - "nl": "Een fietscafé is een café dat gericht is op fietsers, bijvoorbeeld omdat het een fietspomp heeft, fietsgerelateerde decoratie heeft enzovoorts." + "nl": "Een fietscafé is een café dat gericht is op fietsers, bijvoorbeeld omdat het een fietspomp heeft, fietsgerelateerde decoratie heeft enzovoorts.", + "de": "Ein Fahrradcafé ist ein Café, das auf Radfahrer ausgerichtet ist, zum Beispiel mit Dienstleistungen wie einer Pumpe, mit viel fahrradbezogener Dekoration, ...", + "da": "En cykelcafé er en café rettet mod cyklister, for eksempel med tjenester som en pumpe, med masser af cykelrelateret dekoration, ..." } } \ No newline at end of file diff --git a/assets/layers/bike_cleaning/bike_cleaning.json b/assets/layers/bike_cleaning/bike_cleaning.json index ace20b610b..318d922e38 100644 --- a/assets/layers/bike_cleaning/bike_cleaning.json +++ b/assets/layers/bike_cleaning/bike_cleaning.json @@ -5,10 +5,13 @@ "nl": "Fietsschoonmaakpunt", "fr": "Service de nettoyage de vélo", "it": "Servizio lavaggio bici", - "de": "Fahrrad-Reinigungsdienst", + "de": "Fahrrad-Reinigungsdienste", "zh_Hant": "單車清理服務", "pt_BR": "Serviço de limpeza de bicicletas", - "pt": "Serviço de limpeza de bicicletas" + "pt": "Serviço de limpeza de bicicletas", + "ru": "Услуги по чистке велосипедов", + "es": "Servicio de limpieza de bicis", + "da": "Cykelrengøring" }, "title": { "render": { @@ -19,7 +22,9 @@ "de": "Fahrrad-Reinigungsdienst", "zh_Hant": "單車清理服務", "pt_BR": "Serviço de limpeza de bicicletas", - "pt": "Serviço de limpeza de bicicletas" + "pt": "Serviço de limpeza de bicicletas", + "ru": "Услуги по чистке велосипедов", + "es": "Servicio de limpieza de bicis" }, "mappings": [ { @@ -32,7 +37,8 @@ "de": "Fahrrad-Reinigungsdienst{name}", "zh_Hant": "單車清理服務 {name}", "pt_BR": "Serviço de limpeza de bicicletas {name}", - "pt": "Serviço de limpeza de bicicletas {name}" + "pt": "Serviço de limpeza de bicicletas {name}", + "es": "Servicio de limpieza de bicis {name}" } } ] @@ -51,14 +57,16 @@ "presets": [ { "title": { - "en": "Bike cleaning service", - "nl": "Fietsschoonmaakpunt", - "fr": "Service de nettoyage de vélo", - "it": "Servizio lavaggio bici", - "de": "Fahrrad-Reinigungsdienst", + "en": "a bike cleaning service", + "nl": "een fietsschoonmaakpunt", + "fr": "une service de nettoyage de vélo", + "it": "una servizio lavaggio bici", + "de": "eine fahrrad-reinigungsdienst", "zh_Hant": "單車清理服務", - "pt_BR": "Serviço de limpeza de bicicletas", - "pt": "Serviço de limpeza de bicicletas" + "pt_BR": "uma serviço de limpeza de bicicletas", + "pt": "uma serviço de limpeza de bicicletas", + "ru": "Услуги по чистке велосипедов", + "es": "un servicio de limpieza de bicis" }, "tags": [ "amenity=bicycle_wash" @@ -71,12 +79,14 @@ "question": { "en": "How much does it cost to use the cleaning service?", "de": "Wie viel kostet die Nutzung des Reinigungsdienstes?", - "nl": "Hoeveel kost het gebruik van het fietsschoonmaakpunt?" + "nl": "Hoeveel kost het gebruik van het fietsschoonmaakpunt?", + "es": "¿Cuánto cuesta utilizar el servicio de limpieza?" }, "render": { "en": "Using the cleaning service costs {service:bicycle:cleaning:charge}", "de": "Nutzung des Reinigungsservice kostet {service:bicycle:cleaning:charge}", - "nl": "Het gebruik van het fietsschoonmaakpunt kost {service:bicycle:cleaning:charge}" + "nl": "Het gebruik van het fietsschoonmaakpunt kost {service:bicycle:cleaning:charge}", + "es": "Utilizar el servicio de limpieza cuesta {service:bicycle:cleaning:charge}" }, "condition": { "and": [ @@ -97,7 +107,8 @@ "then": { "en": "The cleaning service is free to use", "de": "Der Reinigungsservice ist kostenlos", - "nl": "Het fietsschoonmaakpunt is gratis" + "nl": "Het fietsschoonmaakpunt is gratis", + "es": "El servicio de limpieza es gratis" } }, { @@ -105,7 +116,9 @@ "then": { "en": "Free to use", "de": "Kostenlose Nutzung", - "nl": "Gratis te gebruiken" + "nl": "Gratis te gebruiken", + "es": "Gratis", + "da": "Gratis at bruge" }, "hideInAnswer": true }, @@ -114,7 +127,8 @@ "then": { "en": "The cleaning service has a fee, but the amount is not known", "de": "Der Reinigungsdienst ist kostenpflichtig, aber der Betrag ist nicht bekannt", - "nl": "Het fietsschoonmaakpunt is betalend, maar de prijs is onbekend" + "nl": "Het fietsschoonmaakpunt is betalend, maar de prijs is onbekend", + "es": "El servicio de limpieza tiene una tasa, pero la cantidad se desconoce" }, "hideInAnswer": true } @@ -125,12 +139,14 @@ "question": { "en": "How much does it cost to use the cleaning service?", "de": "Wie viel kostet die Nutzung des Reinigungsdienstes?", - "nl": "Hoeveel kost het gebruik van het fietsschoonmaakpunt?" + "nl": "Hoeveel kost het gebruik van het fietsschoonmaakpunt?", + "es": "¿Cuánto cuesta utilizar el servicio de limpieza?" }, "render": { "en": "Using the cleaning service costs {charge}", "de": "Die Nutzung des Reinigungsdienstes kostet {charge}", - "nl": "Het gebruik van het fietsschoonmaakpunt kost {charge}" + "nl": "Het gebruik van het fietsschoonmaakpunt kost {charge}", + "es": "Utilizar el servicio de limpieza cuesta {charge}" }, "condition": { "or": [ @@ -150,7 +166,8 @@ "then": { "en": "Free to use cleaning service", "de": "Kostenloser Reinigungsservice", - "nl": "Gratis fietsschoonmaakpunt" + "nl": "Gratis fietsschoonmaakpunt", + "es": "Un servicio de limpieza gratis" } }, { @@ -158,7 +175,9 @@ "then": { "en": "Free to use", "de": "Kostenlose Nutzung", - "nl": "Gratis te gebruiken" + "nl": "Gratis te gebruiken", + "es": "Gratis", + "da": "Gratis at bruge" }, "hideInAnswer": true }, @@ -167,7 +186,8 @@ "then": { "en": "The cleaning service has a fee", "de": "Der Reinigungsservice ist kostenpflichtig", - "nl": "Je moet betalen voor het fietsschoonmaakpunt" + "nl": "Je moet betalen voor het fietsschoonmaakpunt", + "es": "El servicio de limpieza tiene una tarifa" } } ], @@ -216,6 +236,9 @@ ], "description": { "en": "A layer showing facilities where one can clean their bike", - "nl": "Een laag die plaatsen toont waar je je fiets kunt wassen" + "nl": "Een laag die plaatsen toont waar je je fiets kunt wassen", + "de": "Eine Ebene mit Einrichtungen, in denen man sein Fahrrad reinigen kann", + "es": "Una capa que muestra facilidades en las que uno puede limpiar su bici", + "da": "Et lag med faciliteter, hvor man kan rengøre sin cykel" } } \ No newline at end of file diff --git a/assets/layers/bike_parking/bike_parking.json b/assets/layers/bike_parking/bike_parking.json index 7e7f91c3ff..3da52eca53 100644 --- a/assets/layers/bike_parking/bike_parking.json +++ b/assets/layers/bike_parking/bike_parking.json @@ -9,10 +9,13 @@ "hu": "Kerékpártároló", "it": "Parcheggio bici", "zh_Hant": "單車停車場", - "ru": "Велопарковка", + "ru": "Велосипедная парковка", "pl": "Parking dla rowerów", "pt_BR": "Estacionamento de bicicletas", - "pt": "Estacionamento de bicicletas" + "pt": "Estacionamento de bicicletas", + "ca": "Aparcament per a bicicletes", + "es": "Aparcamiento de bicis", + "da": "Cykelparkering" }, "minzoom": 17, "source": { @@ -25,18 +28,20 @@ "presets": [ { "title": { - "en": "Bike parking", - "nl": "Fietsparking", - "fr": "Parking à vélo", + "en": "a bike parking", + "nl": "een fietsparking", + "fr": "une parking à vélo", "gl": "Aparcadoiro de bicicletas", - "de": "Fahrrad-Parkplätze", + "de": "eine fahrrad-parkplätze", "hu": "Kerékpártároló", - "it": "Parcheggio bici", + "it": "una parcheggio bici", "zh_Hant": "單車停車場", - "ru": "Велопарковка", + "ru": "Велосипедная парковка", "pl": "Parking dla rowerów", - "pt_BR": "Estacionamento de bicicletas", - "pt": "Estacionamento de bicicletas" + "pt_BR": "uma estacionamento de bicicletas", + "pt": "uma estacionamento de bicicletas", + "es": "un aparcamiento de bicis", + "da": "en cykelparkering" }, "tags": [ "amenity=bicycle_parking" @@ -53,10 +58,13 @@ "hu": "Kerékpártároló", "it": "Parcheggio bici", "zh_Hant": "單車停車場", - "ru": "Велопарковка", + "ru": "Велосипедная парковка", "pl": "Parking dla rowerów", "pt_BR": "Estacionamento de bicicletas", - "pt": "Estacionamento de bicicletas" + "pt": "Estacionamento de bicicletas", + "ca": "Aparcament per a bicicletes", + "es": "Aparcamiento de bicis", + "da": "Cykelparkering" } }, "tagRenderings": [ @@ -74,7 +82,9 @@ "zh_Hant": "這是那種類型的單車停車場?", "pl": "Jaki jest typ tego parkingu dla rowerów?", "pt_BR": "Qual o tipo deste estacionamento de bicicletas?", - "pt": "Qual o tipo deste estacionamento de bicicletas?" + "pt": "Qual o tipo deste estacionamento de bicicletas?", + "es": "¿Cual es el tipo de este aparcamiento de bicicletas?", + "da": "Hvilken type cykelparkering er det?" }, "render": { "en": "This is a bicycle parking of the type: {bicycle_parking}", @@ -88,7 +98,9 @@ "ru": "Это велопарковка типа {bicycle_parking}", "pl": "Jest to parking rowerowy typu: {bicycle_parking}", "pt_BR": "Este é um estacionamento de bicicletas do tipo: {bicycle_parking}", - "pt": "Este é um estacionamento de bicicletas do tipo: {bicycle_parking}" + "pt": "Este é um estacionamento de bicicletas do tipo: {bicycle_parking}", + "es": "Este es un aparcamiento de bicicletas del tipo: {bicycle_parking}", + "da": "Dette er en cykelparkering af typen: {bicycle_parking}" }, "freeform": { "key": "bicycle_parking", @@ -107,7 +119,8 @@ "de": "Fahrradbügel", "hu": "Korlát", "it": "Archetti", - "zh_Hant": "單車架" + "zh_Hant": "單車架", + "ca": "Bastidors de grapes" }, "icon": { "path": "./assets/layers/bike_parking/staple.svg", @@ -124,7 +137,8 @@ "de": "Metallgestänge", "hu": "Kerékbefogó hurok", "it": "Scolapiatti", - "zh_Hant": "車輪架/圓圈" + "zh_Hant": "車輪架/圓圈", + "ca": "Portarodes/bucles" }, "icon": { "path": "./assets/layers/bike_parking/wall_loops.svg", @@ -140,7 +154,9 @@ "gl": "Cadeado para guiador", "de": "Halter für Fahrradlenker", "it": "Blocca manubrio", - "zh_Hant": "車把架" + "zh_Hant": "車把架", + "ca": "Suport de manillar", + "da": "Styrholder" }, "icon": { "path": "./assets/layers/bike_parking/handlebar_holder.svg", @@ -157,7 +173,9 @@ "de": "Gestell", "zh_Hant": "車架", "it": "Rastrelliera", - "ru": "Стойка" + "ru": "Стойка", + "ca": "Enganxament", + "da": "Stativ" }, "icon": { "path": "./assets/layers/bike_parking/rack.svg", @@ -175,7 +193,8 @@ "hu": "Kétszintű", "zh_Hant": "兩層", "it": "A due piani", - "ru": "Двухуровневая" + "ru": "Двухуровневая", + "ca": "De dos nivells" }, "icon": { "path": "./assets/layers/bike_parking/two_tier.svg", @@ -193,7 +212,9 @@ "hu": "Fészer", "zh_Hant": "車棚", "it": "Rimessa", - "ru": "Навес" + "ru": "Навес", + "es": "Caseta", + "da": "Skur" }, "icon": { "path": "./assets/layers/bike_parking/shed.svg", @@ -208,7 +229,10 @@ "fr": "Potelet", "it": "Colonnina", "de": "Poller", - "zh_Hant": "柱子" + "zh_Hant": "柱子", + "ca": "Pilona", + "es": "Bolardo", + "da": "Pullert" }, "icon": { "path": "./assets/layers/bike_parking/bollard.svg", @@ -223,7 +247,9 @@ "fr": "Zone au sol qui est marquée pour le stationnement des vélos", "it": "Una zona del pavimento che è marcata per il parcheggio delle bici", "de": "Ein Bereich auf dem Boden, der für das Abstellen von Fahrrädern gekennzeichnet ist", - "zh_Hant": "樓層當中標示為單車停車場的區域" + "zh_Hant": "樓層當中標示為單車停車場的區域", + "es": "Una área en el suelo que está marcada para el aparcamiento de bicicletas", + "da": "Et område på gulvet, der er markeret til cykelparkering" } } ], @@ -239,7 +265,8 @@ "pl": "Jaka jest względna lokalizacja tego parkingu rowerowego?", "pt_BR": "Qual a localização relativa deste estacionamento de bicicletas?", "de": "Wo befinden sich diese Fahrradabstellplätze?", - "pt": "Qual a localização relativa deste estacionamento de bicicletas?" + "pt": "Qual a localização relativa deste estacionamento de bicicletas?", + "es": "¿Cual es la localización relativa de este aparcamiento de bicicletas?" }, "mappings": [ { @@ -253,7 +280,10 @@ "de": "Tiefgarage", "zh_Hant": "地下停車場", "pt_BR": "Estacionamento subterrâneo", - "pt": "Estacionamento subterrâneo" + "pt": "Estacionamento subterrâneo", + "ca": "Aparcament subterrani", + "es": "Aparcamiento subterráneo", + "da": "Underjordisk parkering" } }, { @@ -268,7 +298,8 @@ "zh_Hant": "地面停車場", "pt_BR": "Estacionamento de superfície", "pt": "Estacionamento de superfície", - "hu": "Felszíni parkoló" + "hu": "Felszíni parkoló", + "es": "Aparcamiento a nivel de calle" } }, { @@ -283,7 +314,10 @@ "zh_Hant": "屋頂停車場", "pt_BR": "Estacionamento no telhado", "pt": "Estacionamento no telhado", - "ru": "Парковка на крыше" + "ru": "Парковка на крыше", + "ca": "Aparcament al terrat", + "es": "Aparcamiento de azotea", + "da": "Tagparkering" } }, { @@ -297,7 +331,8 @@ "de": "Ebenerdiges Parken", "zh_Hant": "地面層停車場", "pt_BR": "Estacionamento ao nível da superfície", - "pt": "Estacionamento ao nível da superfície" + "pt": "Estacionamento ao nível da superfície", + "es": "Aparcamiento a nivel de calle" }, "hideInAnswer": true } @@ -315,7 +350,8 @@ "it": "È un parcheggio coperto? Indicare “coperto” per parcheggi all’interno.", "zh_Hant": "這個停車場是否有車棚?如果是室內停車場也請選擇\"遮蔽\"。", "pt_BR": "Este estacionamento é coberto? Também selecione \"coberto\" para estacionamentos internos.", - "pt": "Este estacionamento é coberto? Também selecione \"coberto\" para estacionamentos internos." + "pt": "Este estacionamento é coberto? Também selecione \"coberto\" para estacionamentos internos.", + "es": "¿Está cubierto este aparcamiento? Selecciona \"cubierto\" también para aparcamientos interiores." }, "condition": { "and": [ @@ -337,7 +373,9 @@ "zh_Hant": "這個停車場有遮蔽 (有屋頂)", "ru": "Это крытая парковка (есть крыша/навес)", "pt_BR": "Este estacionamento é coberto (tem um telhado)", - "pt": "Este estacionamento é coberto (tem um telhado)" + "pt": "Este estacionamento é coberto (tem um telhado)", + "es": "Este aparcamiento está cubierto (tiene un tejado)", + "da": "Denne parkeringsplads er overdækket (den har et tag)" } }, { @@ -353,7 +391,9 @@ "zh_Hant": "這個停車場沒有遮蔽", "ru": "Это открытая парковка", "pt_BR": "Este estacionamento não é coberto", - "pt": "Este estacionamento não é coberto" + "pt": "Este estacionamento não é coberto", + "es": "Este aparcamiento no está cubierto", + "da": "Denne parkeringsplads er ikke overdækket" } } ], @@ -367,7 +407,9 @@ "gl": "Cantas bicicletas caben neste aparcadoiro de bicicletas (incluídas as posíbeis bicicletas de carga)?", "de": "Wie viele Fahrräder passen auf diesen Fahrrad-Parkplatz (einschließlich möglicher Lastenfahrräder)?", "it": "Quante biciclette entrano in questo parcheggio per bici (incluse le eventuali bici da trasporto)?", - "zh_Hant": "這個單車停車場能放幾台單車 (包括裝箱單車)?" + "zh_Hant": "這個單車停車場能放幾台單車 (包括裝箱單車)?", + "es": "¿Cuántas bicicletas caben en este aparcamiento de bicicletas (incluyendo posibles bicicletas de carga)?", + "da": "Hvor mange cykler er der plads til på denne cykelparkering (inklusive mulige ladcykler)?" }, "render": { "en": "Place for {capacity} bikes", @@ -379,7 +421,9 @@ "zh_Hant": "{capacity} 單車的地方", "ru": "Место для {capacity} велосипеда(ов)", "pt_BR": "Lugar para {capacity} bicicletas", - "pt": "Lugar para {capacity} bicicletas" + "pt": "Lugar para {capacity} bicicletas", + "es": "Espacio para {capacity} bicis", + "da": "Plads til {capacity} cykler" }, "freeform": { "key": "capacity", @@ -397,7 +441,9 @@ "zh_Hant": "誰可以使用這個單車停車場?", "ru": "Кто может пользоваться этой велопарковкой?", "pt_BR": "Quem pode usar este estacionamento de bicicletas?", - "pt": "Quem pode usar este estacionamento de bicicletas?" + "pt": "Quem pode usar este estacionamento de bicicletas?", + "es": "¿Quién puede utilizar este aparcamiento de bicicletas?", + "da": "Hvem kan bruge denne cykelparkering?" }, "render": { "en": "{access}", @@ -411,7 +457,10 @@ "fi": "{access}", "pt_BR": "{access}", "pt": "{access}", - "eo": "{access}" + "eo": "{access}", + "ca": "{access}", + "es": "{access}", + "da": "{access}" }, "freeform": { "key": "access", @@ -430,7 +479,10 @@ "de": "Öffentlich zugänglich", "zh_Hant": "公開可用", "pt_BR": "Acessível ao público", - "pt": "Acessível ao público" + "pt": "Acessível ao público", + "ca": "Accessible al públic", + "es": "Accesible públicamente", + "da": "Offentligt tilgængelig" } }, { @@ -443,7 +495,9 @@ "zh_Hant": "通行性主要是為了企業的顧客", "pt_BR": "Acesso é principalmente para visitantes de uma empresa", "de": "Der Zugang ist in erster Linie für Besucher eines Unternehmens bestimmt", - "pt": "Acesso é principalmente para visitantes de uma empresa" + "pt": "Acesso é principalmente para visitantes de uma empresa", + "es": "El acceso es primariamente para visitantes a un negocio", + "da": "Adgang hovedsageligt for besøgende til en virksomhed" } }, { @@ -456,7 +510,9 @@ "zh_Hant": "通行性僅限學校、公司或組織的成員", "pt_BR": "Acesso é limitado aos membros de uma escola, companhia ou organização", "de": "Der Zugang ist beschränkt auf Mitglieder einer Schule, eines Unternehmens oder einer Organisation", - "pt": "Acesso é limitado aos membros de uma escola, companhia ou organização" + "pt": "Acesso é limitado aos membros de uma escola, companhia ou organização", + "es": "El acceso se limita a miembros de una escuela, compañía u organización", + "da": "Adgangen er begrænset til medlemmer af en skole, virksomhed eller organisation" } } ], @@ -472,7 +528,9 @@ "it": "Questo parcheggio dispone di posti specifici per le bici da trasporto?", "zh_Hant": "這個單車停車場有地方放裝箱的單車嗎?", "pt_BR": "O estacionamento de bicicletas tem vagas para bicicletas de carga?", - "pt": "O estacionamento de bicicletas tem vagas para bicicletas de carga?" + "pt": "O estacionamento de bicicletas tem vagas para bicicletas de carga?", + "es": "¿Este aparcamiento de bicicletas tiene huevos para bicicletas de carga?", + "da": "Har denne cykelparkering plads til ladcykler?" }, "mappings": [ { @@ -480,13 +538,15 @@ "then": { "en": "This parking has room for cargo bikes", "nl": "Deze parking heeft plaats voor bakfietsen", - "gl": "Este aparcadoiro ten espazo para bicicletas de carga.", + "gl": "Este aparcadoiro ten espazo para bicicletas de carga", "de": "Dieser Parkplatz bietet Platz für Lastenfahrräder", "fr": "Ce parking a de la place pour les vélos cargo", "it": "Questo parcheggio ha posto per bici da trasporto", "zh_Hant": "這個停車場有地方可以放裝箱單車", "pt_BR": "Este estacionamento tem vagas para bicicletas de carga", - "pt": "Este estacionamento tem vagas para bicicletas de carga" + "pt": "Este estacionamento tem vagas para bicicletas de carga", + "es": "Este aparcamiento tiene espacio para bicicletas de carga", + "da": "Denne parkeringsplads har plads til ladcykler" } }, { @@ -500,7 +560,9 @@ "it": "Questo parcheggio ha posti destinati (ufficialmente) alle bici da trasporto.", "zh_Hant": "這停車場有設計 (官方) 空間給裝箱的單車。", "pt_BR": "Este estacionamento tem vagas (oficiais) projetadas para bicicletas de carga.", - "pt": "Este estacionamento tem vagas (oficiais) projetadas para bicicletas de carga." + "pt": "Este estacionamento tem vagas (oficiais) projetadas para bicicletas de carga.", + "es": "Este aparcamiento tiene huecos (oficialmente) designados para bicicletas de carga.", + "da": "Denne parkeringsplads har udpegede (officielle) pladser til ladcykler." } }, { @@ -513,7 +575,9 @@ "fr": "Il est interdit de garer des vélos cargo", "it": "Il parcheggio delle bici da trasporto è proibito", "pt_BR": "Você não tem permissão para estacionar bicicletas de carga", - "pt": "Não tem permissão para estacionar bicicletas de carga" + "pt": "Não tem permissão para estacionar bicicletas de carga", + "es": "No se permite aparcar bicicletas de carga", + "da": "Det er ikke tilladt at parkere ladcykler" } } ], @@ -528,7 +592,9 @@ "de": "Wie viele Lastenfahrräder passen auf diesen Fahrrad-Parkplatz?", "it": "Quante bici da trasporto entrano in questo parcheggio per bici?", "pt_BR": "Quantas bicicletas de carga cabem neste estacionamento de bicicletas?", - "pt": "Quantas bicicletas de carga cabem neste estacionamento de bicicletas?" + "pt": "Quantas bicicletas de carga cabem neste estacionamento de bicicletas?", + "es": "¿Cuántas bicicletas de carga caben en este aparcamiento de bicicletas?", + "da": "Hvor mange ladcykler er der plads til i denne cykelparkering?" }, "render": { "en": "This parking fits {capacity:cargo_bike} cargo bikes", @@ -538,7 +604,9 @@ "de": "Auf diesen Parkplatz passen {capacity:cargo_bike} Lastenfahrräder", "it": "Questo parcheggio può contenere {capacity:cargo_bike} bici da trasporto", "pt_BR": "Neste estacionamento cabem {capacity:cargo_bike} bicicletas de carga", - "pt": "Neste estacionamento cabem {capacity:cargo_bike} bicicletas de carga" + "pt": "Neste estacionamento cabem {capacity:cargo_bike} bicicletas de carga", + "es": "En este aparcamiento caben {capacity:cargo_bike} bicis de carga", + "da": "Der er plads til {capacity:cargo_bike} på denne cykelparkering" }, "condition": "cargo_bike~designated|yes", "freeform": { @@ -579,6 +647,9 @@ ], "description": { "en": "A layer showing where you can park your bike", - "nl": "Een laag die toont waar je je fiets kunt parkeren" + "nl": "Een laag die toont waar je je fiets kunt parkeren", + "de": "Eine Ebene, die anzeigt, wo Sie Ihr Fahrrad abstellen können", + "es": "Una capa que muestra donde puedes aparcar tu bici", + "da": "Et lag, der viser, hvor man kan parkere sin cykel" } } \ No newline at end of file diff --git a/assets/layers/bike_repair_station/bike_repair_station.json b/assets/layers/bike_repair_station/bike_repair_station.json index 9dfe80c03f..eb9bd8b7a7 100644 --- a/assets/layers/bike_repair_station/bike_repair_station.json +++ b/assets/layers/bike_repair_station/bike_repair_station.json @@ -2,12 +2,15 @@ "id": "bike_repair_station", "name": { "en": "Bicycle pump and repair", - "nl": "Fietspomp and fietsherstel", + "nl": "Fietspomp en fietsherstel", "fr": "Station velo (réparation, pompe à vélo)", "gl": "Estación de bicicletas (arranxo, bomba de ar ou ambos)", "de": "Fahrradstationen (Reparatur, Pumpe oder beides)", "it": "Stazioni bici (riparazione, gonfiaggio o entrambi)", - "pt_BR": "Estações de bicicletas (reparo, bomba ou ambos)" + "pt_BR": "Estações de bicicletas (reparo, bomba ou ambos)", + "ru": "Велостанции (ремонт, накачка шин или сразу всё)", + "es": "Bomba y reparación de bicicletas", + "da": "Cykelpumpe og reparation" }, "minzoom": 13, "source": { @@ -25,7 +28,10 @@ "gl": "Estación de bicicletas (arranxo e bomba de ar)", "de": "Fahrradstation (Pumpe & Reparatur)", "it": "Stazione bici (gonfiaggio & riparazione)", - "pt_BR": "Estação de bicicletas (bomba e reparo)" + "pt_BR": "Estação de bicicletas (bomba e reparo)", + "ru": "Велостанция (накачка шин и ремонт)", + "es": "Estación de bicis (bomba y reparación)", + "da": "Cykelstation (pumpe og reparation)" }, "mappings": [ { @@ -43,7 +49,10 @@ "de": "Fahrrad-Reparaturstation", "it": "Stazione riparazione bici", "pt_BR": "Estação de reparo de bicicletas", - "pt": "Estação de reparo de bicicletas" + "pt": "Estação de reparo de bicicletas", + "ru": "Станция обслуживания велосипедов", + "es": "Estación de reparación de bicis", + "da": "Cykelreparationsstation" } }, { @@ -61,7 +70,10 @@ "de": "Fahrrad-Reparaturstation", "it": "Stazione riparazione bici", "pt_BR": "Estação de reparo de bicicletas", - "pt": "Estação de reparo de bicicletas" + "pt": "Estação de reparo de bicicletas", + "ru": "Станция обслуживания велосипедов", + "es": "Estación de reparación de bicis", + "da": "Cykelreparationsstation" } }, { @@ -83,8 +95,11 @@ "gl": "Bomba de ar estragada", "de": "Kaputte Pumpe", "it": "Pompa rotta", - "ru": "Сломанный насос", - "pt_BR": "Bomba quebrada" + "ru": "Насос сломан", + "pt_BR": "Bomba quebrada", + "ca": "Bomba trencada", + "es": "Bomba rota", + "da": "Defekt pumpe" } }, { @@ -103,7 +118,9 @@ "de": "Fahrradpumpe {name}", "it": "Pompa per bici {name}", "ru": "Велосипедный насос {name}", - "pt_BR": "Bomba de bicicleta {name}" + "pt_BR": "Bomba de bicicleta {name}", + "es": "Bomba de bicicletas {name}", + "da": "Cykelpumpe {name}" } }, { @@ -121,7 +138,10 @@ "de": "Fahrradpumpe", "it": "Pompa per bici", "ru": "Велосипедный насос", - "pt_BR": "Bomba de bicicleta" + "pt_BR": "Bomba de bicicleta", + "ca": "Bomba de bicicleta", + "es": "Bomba para bicicletas", + "da": "Cykelpumpe" } } ] @@ -145,7 +165,9 @@ "de": "Welche Einrichtungen stehen an dieser Fahrradstation zur Verfügung?", "it": "Quali servizi sono disponibili in questa stazione per bici?", "pt_BR": "Quais serviços estão disponíveis nesta estação de bicicletas?", - "pt": "Quais serviços estão disponíveis nesta estação de bicicletas?" + "pt": "Quais serviços estão disponíveis nesta estação de bicicletas?", + "es": "¿Qué servicios están disponibles en esta localización?", + "da": "Hvilke tjenester er tilgængelige på dette sted?" }, "mappings": [ { @@ -163,7 +185,9 @@ "de": "Es ist nur eine Pumpe vorhanden", "it": "C’è solamente una pompa presente", "pt_BR": "Há somente uma bomba presente", - "pt": "Há somente uma bomba presente" + "pt": "Há somente uma bomba presente", + "es": "Solo hay una bomba presente", + "da": "Der er kun en pumpe" } }, { @@ -181,7 +205,9 @@ "de": "Es sind nur Werkzeuge (Schraubenzieher, Zangen...) vorhanden", "it": "Ci sono solo degli attrezzi (cacciaviti, pinze…) presenti", "pt_BR": "Há somente ferramentas (chaves de fenda, alicates...) presentes", - "pt": "Há somente ferramentas (chaves de fenda, alicates...) presentes" + "pt": "Há somente ferramentas (chaves de fenda, alicates...) presentes", + "es": "Solo hay herramientas (destornilladores, pinzas...) presentes", + "da": "Der er kun værktøj (skruetrækkere, tænger ...)" } }, { @@ -199,7 +225,9 @@ "de": "Es sind sowohl Werkzeuge als auch eine Pumpe vorhanden", "it": "Ci sono sia attrezzi che pompa presenti", "pt_BR": "Há tanto ferramentas e uma bomba presente", - "pt": "Há tanto ferramentas e uma bomba presente" + "pt": "Há tanto ferramentas e uma bomba presente", + "es": "Hay tanto herramientas como bombas", + "da": "Der er både værktøj og pumpe" } } ] @@ -213,7 +241,9 @@ "de": "Ist die Fahrradpumpe noch funktionstüchtig?", "it": "La pompa per bici è sempre funzionante?", "ru": "Велосипедный насос все еще работает?", - "pl": "Czy pompka rowerowa jest nadal sprawna?" + "pl": "Czy pompka rowerowa jest nadal sprawna?", + "es": "¿Todavía está operativa la bomba de bicicletas?", + "da": "Fungerer cykelpumpen stadig?" }, "condition": "service:bicycle:pump=yes", "mappings": [ @@ -227,7 +257,9 @@ "de": "Die Fahrradpumpe ist kaputt", "it": "La pompa per bici è guasta", "ru": "Велосипедный насос сломан", - "pl": "Pompka rowerowa jest zepsuta" + "pl": "Pompka rowerowa jest zepsuta", + "es": "La bomba de bicicletas está rota", + "da": "Cykelpumpen er i stykker" } }, { @@ -240,7 +272,9 @@ "de": "Die Fahrradpumpe ist betriebsbereit", "it": "La pompa per bici funziona", "ru": "Велосипедный насос работает", - "pl": "Pompka rowerowa jest sprawna" + "pl": "Pompka rowerowa jest sprawna", + "es": "La bomba de bicicletas está operativa", + "da": "Cykelpumpen er i drift" } } ], @@ -253,7 +287,9 @@ "fr": "Quand ce point de réparation de vélo est-il ouvert ?", "it": "Quando è aperto questo punto riparazione bici?", "de": "Wann ist diese Fahrradreparaturstelle geöffnet?", - "ru": "Когда работает эта точка обслуживания велосипедов?" + "ru": "Когда работает эта точка обслуживания велосипедов?", + "es": "¿Cuándo está abierto este punto de reparación de bicicletas?", + "da": "Hvornår er dette cykelreparationssted åbent?" }, "render": "{opening_hours_table()}", "freeform": { @@ -271,7 +307,10 @@ "de": "Immer geöffnet", "ru": "Всегда открыто", "pt_BR": "Sempre aberto", - "pt": "Sempre aberto" + "pt": "Sempre aberto", + "ca": "Sempre obert", + "es": "Siempre abierto", + "da": "Altid åben" } } ], @@ -281,21 +320,30 @@ "id": "access", "question": { "en": "Who is allowed to use this repair station?", - "nl": "Wie kan dit herstelpunt gebruiken?" + "nl": "Wie kan dit herstelpunt gebruiken?", + "de": "Wer darf diese Reparaturstation benutzen?", + "es": "¿A quién se le permite utilizar esta estación de reparación?", + "da": "Hvem må bruge denne reparationsstation?" }, "mappings": [ { "if": "access=yes", "then": { "en": "Publicly accessible", - "nl": "Publiek toegankelijk" + "nl": "Publiek toegankelijk", + "de": "Öffentlich zugänglich", + "es": "Accesible públicamente", + "da": "Offentligt tilgængelig" } }, { "if": "access=public", "then": { "en": "Publicly accessible", - "nl": "Publiek toegankelijk" + "nl": "Publiek toegankelijk", + "de": "Öffentlich zugänglich", + "es": "Accesible públicamente", + "da": "Offentligt tilgængelig" }, "hideInAnswer": true }, @@ -303,14 +351,20 @@ "if": "access=customers", "then": { "en": "Only for customers", - "nl": "Enkel voor klanten van de bijhorende zaak" + "nl": "Enkel voor klanten van de bijhorende zaak", + "de": "Nur für Kunden", + "es": "Solo para clientes", + "da": "Kun for kunder" } }, { "if": "access=private", "then": { "en": "Not accessible to the general public", - "nl": "Niet publiek toegankelijk" + "nl": "Niet publiek toegankelijk", + "de": "Nicht für die Allgemeinheit zugänglich", + "es": "No accesible para el público general", + "da": "Ikke tilgængelig for offentligheden" }, "icon": "./assets/svg/invalid.svg" }, @@ -318,7 +372,10 @@ "if": "access=no", "then": { "en": "Not accessible to the general public", - "nl": "Niet publiek toegankelijk" + "nl": "Niet publiek toegankelijk", + "de": "Nicht für die Allgemeinheit zugänglich", + "es": "No accesible para el público general", + "da": "Ikke tilgængelig for offentligheden" }, "icon": "./assets/svg/invalid.svg", "hideInAnswer": true @@ -336,7 +393,9 @@ "it": "Chi gestisce questa pompa per bici?", "de": "Wer wartet diese Fahrradpumpe?", "pt_BR": "Quem faz a manutenção desta bomba de ciclo?", - "pt": "Quem faz a manutenção desta bomba de ciclo?" + "pt": "Quem faz a manutenção desta bomba de ciclo?", + "es": "¿Quién mantiene esta bomba para bicicletas?", + "da": "Hvem vedligeholder denne cykluspumpe?" }, "render": { "nl": "Beheer door {operator}", @@ -345,7 +404,9 @@ "it": "Manutenuta da {operator}", "de": "Gewartet von {operator}", "pt_BR": "Mantida por {operator}", - "pt": "Mantida por {operator}" + "pt": "Mantida por {operator}", + "es": "Mantenido por {operator}", + "da": "Vedligeholdt af {operator}" }, "freeform": { "key": "operator" @@ -360,7 +421,9 @@ "en": "What is the email address of the maintainer?", "nl": "Wat is het email-adres van de beheerder?", "de": "Wie lautet die E-Mail-Adresse des Betreuers?", - "fr": "Quelle est l'adresse email du service de maintenance ?" + "fr": "Quelle est l'adresse email du service de maintenance ?", + "es": "¿Es esta la dirección de correo electrónico del mantenedor?", + "da": "Hvad er e-mailadressen på vedligeholderen?" }, "freeform": { "key": "email", @@ -377,7 +440,9 @@ "en": "What is the phone number of the maintainer?", "nl": "Wat is het telefoonnummer van de beheerder?", "de": "Wie lautet die Telefonnummer des Betreibers?", - "fr": "Quel est le numéro de téléphone du service de maintenance ?" + "fr": "Quel est le numéro de téléphone du service de maintenance ?", + "es": "¿Cual es el número de teléfono del mantenedor?", + "da": "Hvad er telefonnummeret på vedligeholderen?" }, "freeform": { "key": "phone", @@ -394,7 +459,9 @@ "fr": "Est-ce que cette station vélo a un outil specifique pour réparer la chaîne du vélo ?", "gl": "Esta estación de arranxo de bicicletas ten unha ferramenta especial para arranxar a cadea da túa bicicleta?", "de": "Verfügt diese Fahrrad-Reparaturstation über Spezialwerkzeug zur Reparatur von Fahrradketten?", - "it": "Questa stazione di riparazione bici ha un attrezzo speciale per riparare la catena della bici?" + "it": "Questa stazione di riparazione bici ha un attrezzo speciale per riparare la catena della bici?", + "es": "¿Esta estación de reparación tiene una herramienta especial para reparar la cadena de tu bici?", + "da": "Har denne cykelreparationsstation et specialværktøj til at reparere cykelkæder?" }, "condition": "service:bicycle:tools=yes", "mappings": [ @@ -408,7 +475,9 @@ "de": "Es gibt ein Kettenwerkzeug", "it": "È presente un utensile per riparare la catena", "pt_BR": "Há uma ferramenta de corrente", - "pt": "Há uma ferramenta de corrente" + "pt": "Há uma ferramenta de corrente", + "es": "Hay una herramienta de cadenas", + "da": "Der er et kædeværktøj" } }, { @@ -421,7 +490,9 @@ "de": "Es gibt kein Kettenwerkzeug", "it": "Non è presente un utensile per riparare la catena", "pt_BR": "Não há uma ferramenta de corrente", - "pt": "Não há uma ferramenta de corrente" + "pt": "Não há uma ferramenta de corrente", + "es": "No hay herramienta de cadenas", + "da": "Der er ikke noget kædeværktøj" } } ] @@ -434,7 +505,9 @@ "fr": "Est-ce que cette station vélo à un crochet pour suspendre son vélo ou une accroche pour l'élevé ?", "gl": "Esta estación de bicicletas ten un guindastre para pendurar a túa bicicleta ou un soporte para elevala?", "de": "Hat diese Fahrradstation einen Haken, an dem Sie Ihr Fahrrad aufhängen können, oder einen Ständer, um es anzuheben?", - "it": "Questa stazione bici ha un gancio per tenere sospesa la bici o un supporto per alzarla?" + "it": "Questa stazione bici ha un gancio per tenere sospesa la bici o un supporto per alzarla?", + "es": "¿Esta estación tiene un gancho para colgar tu bici o un soporte para elevarla?", + "da": "Har denne cykelstation en krog til at hænge din cykel på eller et stativ til at hæve den?" }, "condition": "service:bicycle:tools=yes", "mappings": [ @@ -448,7 +521,9 @@ "de": "Es gibt einen Haken oder Ständer", "it": "C’è un gancio o un supporto", "pt_BR": "Há um gancho ou um suporte", - "pt": "Há um gancho ou um suporte" + "pt": "Há um gancho ou um suporte", + "es": "Hay un gancho o soporte", + "da": "Der er en krog eller et stativ" } }, { @@ -461,7 +536,9 @@ "de": "Es gibt keinen Haken oder Ständer", "it": "Non c’è né un gancio né un supporto", "pt_BR": "Não há um gancho ou um suporte", - "pt": "Não há um gancho ou um suporte" + "pt": "Não há um gancho ou um suporte", + "es": "No hay ningún gancho o soporte", + "da": "Der er ingen krog eller stativ" } } ] @@ -476,7 +553,8 @@ "render": { "en": "Report this bicycle pump as broken", "nl": "Rapporteer deze fietspomp als kapot", - "de": "Melde diese Fahrradpumpe als kaputt" + "de": "Melde diese Fahrradpumpe als kaputt", + "da": "Anmeld denne cykelpumpe som værende i stykker" }, "id": "Email maintainer" }, @@ -488,7 +566,9 @@ "gl": "Que válvulas son compatíbeis?", "de": "Welche Ventile werden unterstützt?", "it": "Quali valvole sono supportate?", - "pl": "Jakie zawory są obsługiwane?" + "pl": "Jakie zawory są obsługiwane?", + "es": "¿Que válvulas se soportan?", + "da": "Hvilke ventiler understøttes?" }, "render": { "en": "This pump supports the following valves: {valves}", @@ -498,7 +578,9 @@ "de": "Diese Pumpe unterstützt die folgenden Ventile: {valves}", "it": "Questa pompa è compatibile con le seguenti valvole: {valves}", "ru": "Этот насос поддерживает следующие клапаны: {valves}", - "pl": "Ta pompka obsługuje następujące zawory: {valves}" + "pl": "Ta pompka obsługuje następujące zawory: {valves}", + "es": "Esta bomba soporta las siguiente válvulas: {valves}", + "da": "Denne pumpe understøtter følgende ventiler: {valves}" }, "freeform": { "#addExtraTags": [ @@ -517,7 +599,8 @@ "gl": "Sclaverand (tamén coñecido como Presta)", "de": "Sklaverand (auch bekannt als Presta)", "it": "Sclaverand (detta anche Presta)", - "ru": "Клапан Presta (также известный как французский клапан)" + "ru": "Клапан Presta (также известный как французский клапан)", + "da": "Sclaverand (også kendt som Presta og racerventil)" } }, { @@ -529,7 +612,8 @@ "gl": "Dunlop", "de": "Dunlop", "it": "Dunlop", - "ru": "Клапан Dunlop" + "ru": "Клапан Dunlop", + "da": "Dunlop" } }, { @@ -540,7 +624,8 @@ "fr": "Schrader (les valves de voitures)", "gl": "Schrader (para automóbiles)", "de": "Schrader (Autos)", - "it": "Schrader (valvola delle auto)" + "it": "Schrader (valvola delle auto)", + "da": "Schrader (biler)" } } ], @@ -556,7 +641,9 @@ "de": "Ist dies eine elektrische Fahrradpumpe?", "it": "Questa pompa per bici è elettrica?", "ru": "Это электрический велосипедный насос?", - "pl": "Czy jest to elektryczna pompka do roweru?" + "pl": "Czy jest to elektryczna pompka do roweru?", + "es": "¿Hay una bomba eléctrica para bicis?", + "da": "Er dette en elektrisk cykelpumpe?" }, "condition": "service:bicycle:pump=yes", "mappings": [ @@ -572,7 +659,10 @@ "ru": "Ручной насос", "pl": "Pompa ręczna", "pt_BR": "Bomba manual", - "pt": "Bomba manual" + "pt": "Bomba manual", + "ca": "Bomba manual", + "es": "Bomba manual", + "da": "Manuel pumpe" } }, { @@ -587,7 +677,10 @@ "ru": "Электрический насос", "pl": "Pompka elektryczna", "pt_BR": "Bomba elétrica", - "pt": "Bomba elétrica" + "pt": "Bomba elétrica", + "ca": "Bomba elèctrica", + "es": "Bomba eléctrica", + "da": "Elektrisk pumpe" } } ] @@ -601,7 +694,8 @@ "gl": "Ten a bomba de ar un indicador de presión ou un manómetro?", "de": "Verfügt die Pumpe über einen Druckanzeiger oder ein Manometer?", "it": "Questa pompa ha l’indicatore della pressione o il manometro?", - "pl": "Czy pompka posiada wskaźnik ciśnienia lub manometr?" + "pl": "Czy pompka posiada wskaźnik ciśnienia lub manometr?", + "es": "¿La bomba tiene un indicador de presión o manómetro?" }, "condition": "service:bicycle:pump=yes", "mappings": [ @@ -617,7 +711,8 @@ "ru": "Есть манометр", "pl": "Jest manometr", "pt_BR": "Há um manômetro", - "pt": "Há um manômetro" + "pt": "Há um manômetro", + "es": "Hay un manómetro" } }, { @@ -632,7 +727,8 @@ "ru": "Нет манометра", "pl": "Nie ma manometru", "pt_BR": "Não há um manômetro", - "pt": "Não há um manômetro" + "pt": "Não há um manômetro", + "es": "No hay ningún manometro" } }, { @@ -647,7 +743,8 @@ "ru": "Есть манометр, но он сломан", "pl": "Jest manometr, ale jest uszkodzony", "pt_BR": "Há um manômetro mas está quebrado", - "pt": "Há um manômetro mas está quebrado" + "pt": "Há um manômetro mas está quebrado", + "es": "Hay un manómetro pero está roto" } } ] @@ -657,16 +754,18 @@ "presets": [ { "title": { - "en": "bike pump", - "nl": "fietspomp", - "fr": "pompe à vélo", + "en": "a bike pump", + "nl": "een fietspomp", + "fr": "une pompe à vélo", "gl": "bomba de ar", - "de": "fahrradpumpe", - "it": "pompa per bici", + "de": "eine fahrradpumpe", + "it": "una pompa per bici", "ru": "bелосипедный насос", "fi": "pyöräpumppu", "pl": "pompka do roweru", - "pt_BR": "bomba de bicicleta" + "pt_BR": "uma bomba de bicicleta", + "es": "una bomba de bicicletas", + "da": "en cykelpumpe" }, "tags": [ "amenity=bicycle_repair_station", @@ -681,7 +780,8 @@ "de": "Ein Gerät zum Aufpumpen von Reifen an einem festen Standort im öffentlichen Raum.", "pl": "Urządzenie do pompowania opon w stałym miejscu w przestrzeni publicznej.", "pt_BR": "Um dispositivo para encher seus pneus em um local fixa no espaço público", - "pt": "Um aparelho para encher os seus pneus num local fixa no espaço público" + "pt": "Um aparelho para encher os seus pneus num local fixa no espaço público", + "es": "Un dispositivo para inflar tus ruedas en una posición fija en el espacio público." }, "exampleImages": [ "./assets/layers/bike_repair_station/pump_example_round.jpg", @@ -691,13 +791,14 @@ }, { "title": { - "en": "bike repair station and pump", - "nl": "herstelpunt en pomp", - "fr": "point de réparation vélo avec pompe", + "en": "a bike repair station and pump", + "nl": "een herstelpunt en pomp", + "fr": "une point de réparation vélo avec pompe", "gl": "estación de arranxo de bicicletas con bomba de ar", - "de": "fahrrad-Reparaturstation und Pumpe", - "it": "stazione di riparazione bici e pompa", - "pl": "stacja naprawy rowerów i pompka" + "de": "eine fahrrad-reparaturstation und pumpe", + "it": "una stazione di riparazione bici e pompa", + "pl": "stacja naprawy rowerów i pompka", + "es": "En estación de reparación de bicicletas y bomba" }, "tags": [ "amenity=bicycle_repair_station", @@ -709,7 +810,9 @@ "nl": "Een fietspomp en gereedschap om je fiets te herstellen in de publieke ruimte. Deze zijn op een vastgemaakt, bijvoorbeeld aan een paal.", "fr": "Un dispositif avec des outils pour réparer votre vélo combiné à une pompe a un emplacement fixe. Les outils sont souvent attachés par une chaîne pour empêcher le vol.", "it": "Un dispositivo con attrezzi per riparare la tua bici e una pompa in un luogo fisso. Gli attrezzi sono spesso attaccati ad una catena per prevenire il furto.", - "de": "Ein Gerät mit Werkzeugen zur Reparatur von Fahrrädern kombiniert mit einer Pumpe an einem festen Standort. Die Werkzeuge sind oft mit Ketten gegen Diebstahl gesichert." + "de": "Ein Gerät mit Werkzeugen zur Reparatur von Fahrrädern kombiniert mit einer Pumpe an einem festen Standort. Die Werkzeuge sind oft mit Ketten gegen Diebstahl gesichert.", + "es": "Una bomba de bicicletas y herramientas para reparar tu bicicleta en el espacio público. Las herramientas habitualmente están aseguradas con cadenas contra el robo.", + "da": "En cykelpumpe og værktøj til at reparere din cykel i det offentlige rum. Værktøjet er ofte sikret med kæder mod tyveri." }, "exampleImages": [ "./assets/layers/bike_repair_station/repair_station_example_2.jpg", @@ -718,12 +821,15 @@ }, { "title": { - "en": "bike repair station without pump", - "nl": "herstelpunt zonder pomp", - "fr": "point de réparation vélo sans pompe", + "en": "a bike repair station without pump", + "nl": "een herstelpunt zonder pomp", + "fr": "une point de réparation vélo sans pompe", "gl": "estación de arranxo de bicicletas sin bomba de ar", - "de": "fahrrad-Reparaturstation ohne Pumpe", - "it": "stazione di riparazione bici senza pompa" + "de": "eine fahrrad-reparaturstation ohne pumpe", + "it": "una stazione di riparazione bici senza pompa", + "ru": "Станция обслуживания велосипедов без накачки (насоса)", + "es": "una estación de reparación de bicicletas sin bomba", + "da": "en cykelreparationsstation uden pumpe" }, "tags": [ "amenity=bicycle_repair_station", @@ -732,7 +838,10 @@ ], "description": { "en": "Tools to repair your bike in the public space (without pump). The tools are secured against theft.", - "nl": "Gereedschap om je fiets te herstellen in de publieke ruimte (zonder pomp). Deze zijn op een vastgemaakt, bijvoorbeeld aan een paal." + "nl": "Gereedschap om je fiets te herstellen in de publieke ruimte (zonder pomp). Deze zijn op een vastgemaakt, bijvoorbeeld aan een paal.", + "de": "Werkzeug, um Ihr Fahrrad im öffentlichen Raum zu reparieren (ohne Pumpe). Die Werkzeuge sind gegen Diebstahl gesichert.", + "es": "Herramientas para reparar tu bici en el espacio público (sin bomba).Las herramientas están aseguradas contra el robo.", + "da": "Værktøj til at reparere din cykel i det offentlige rum (uden pumpe). Værktøjet er sikret mod tyveri." } } ], @@ -824,6 +933,9 @@ ], "description": { "en": "A layer showing bicycle pumps and bicycle repair tool stands", - "nl": "Deze laag toont fietspompen en herstelpunten voor fietsen" + "nl": "Deze laag toont fietspompen en herstelpunten voor fietsen", + "de": "Eine Ebene mit Fahrradpumpen und Werkzeugständern für die Fahrradreparatur", + "es": "Una capa que muestra bombas de bicicletas y puestos de herramientas de reparación de bicicletas", + "da": "Et lag med cykelpumper og cykelreværktøjsstativer" } } \ No newline at end of file diff --git a/assets/layers/bike_shop/bike_shop.json b/assets/layers/bike_shop/bike_shop.json index eda0288650..6933348c76 100644 --- a/assets/layers/bike_shop/bike_shop.json +++ b/assets/layers/bike_shop/bike_shop.json @@ -5,11 +5,12 @@ "nl": "Fietszaak", "fr": "Magasin ou réparateur de vélo", "gl": "Tenda/arranxo de bicicletas", - "de": "Fahrradwerkstatt/geschäft", + "de": "Fahrradgeschäfte und -werkstätten", "it": "Venditore/riparatore bici", "ru": "Обслуживание велосипедов/магазин", "pt_BR": "Reparo/loja de bicicletas", - "pt": "Reparo/loja de bicicletas" + "pt": "Reparo/loja de bicicletas", + "ca": "Botiga/reparació de bicicletes" }, "minzoom": 13, "allowMove": true, @@ -54,7 +55,9 @@ "it": "Venditore/riparatore bici", "ru": "Обслуживание велосипедов/магазин", "pt_BR": "Reparo/loja de bicicletas", - "pt": "Reparo/loja de bicicletas" + "pt": "Reparo/loja de bicicletas", + "ca": "Botiga/reparació de bicicletes", + "da": "Cykelværksted/butik" }, "mappings": [ { @@ -102,7 +105,9 @@ "ru": "Прокат велосипедов {name}", "de": "Fahrradverleih{name}", "pt_BR": "Aluguel de bicicletas {name}", - "pt": "Aluguel de bicicletas {name}" + "pt": "Aluguel de bicicletas {name}", + "es": "Alquiler de bicicletas {name}", + "da": "Cykeludlejning {name}" } }, { @@ -121,7 +126,9 @@ "it": "Riparazione biciclette {name}", "ru": "Ремонт велосипедов {name}", "pt_BR": "Reparo de bicicletas {name}", - "pt": "Reparo de bicicletas {name}" + "pt": "Reparo de bicicletas {name}", + "es": "Reparación de bicis {name}", + "da": "Cykelreparation {name}" } }, { @@ -139,7 +146,9 @@ "it": "Negozio di biciclette {name}", "ru": "Магазин велосипедов {name}", "pt_BR": "Loja de bicicletas {name}", - "pt": "Loja de bicicletas {name}" + "pt": "Loja de bicicletas {name}", + "es": "Tienda de bicis {name}", + "da": "Cykelforretning {name}" } }, { @@ -152,7 +161,8 @@ "de": "Fahrradwerkstatt/geschäft {name}", "it": "Venditore/riparatore bici {name}", "pt_BR": "Loja/reparo de bicicletas {name}", - "pt": "Loja/reparo de bicicletas {name}" + "pt": "Loja/reparo de bicicletas {name}", + "da": "Cykelværksted{name}" } } ] @@ -189,7 +199,8 @@ "ru": "Магазин, специализирующийся на продаже велосипедов или сопутствующих товаров", "pt_BR": "Uma loja que vende especificamente bicicletas ou itens relacionados", "de": "Ein Geschäft, das speziell Fahrräder oder verwandte Artikel verkauft", - "pt": "Uma loja que vende especificamente bicicletas ou itens relacionados" + "pt": "Uma loja que vende especificamente bicicletas ou itens relacionados", + "es": "Una tiene que vende específicamente bicis u objetos relacionados" }, "tagRenderings": [ "images", @@ -209,8 +220,21 @@ "it": "Questo negozio è specializzato nella vendita di {shop} ed effettua attività relative alle biciclette", "pt_BR": "Esta loja é especializada em vender {shop} e faz atividades relacionadas à bicicletas", "de": "Dieses Geschäft ist auf den Verkauf von {shop} spezialisiert und im Bereich Fahrrad tätig", - "pt": "Esta loja é especializada em vender {shop} e faz atividades relacionadas à bicicletas" - } + "pt": "Esta loja é especializada em vender {shop} e faz atividades relacionadas à bicicletas", + "es": "Esta tienda está especializada en vender {shop} y hace actividades relacionadas con bicicletas", + "da": "Denne butik er specialiseret i at sælge {shop} og udfører aktiviteter i forbindelse med cykler" + }, + "mappings": [ + { + "if": "shop=rental", + "then": { + "nl": "Deze zaak focust op verhuur", + "en": "Deze business focuses on rental", + "de": "Dieses Geschäft konzentriert sich auf die Vermietung", + "da": "Denne virksomhed fokuserer på udlejning" + } + } + ] }, { "question": { @@ -222,7 +246,9 @@ "it": "Qual è il nome di questo negozio di biciclette?", "ru": "Как называется магазин велосипедов?", "pt_BR": "Qual o nome desta loja de bicicletas?", - "pt": "Qual o nome desta loja de bicicletas?" + "pt": "Qual o nome desta loja de bicicletas?", + "es": "¿Cual es el nombre de esta tienda de bicicletas?", + "da": "Hvad hedder denne cykelbutik?" }, "render": { "en": "This bicycle shop is called {name}", @@ -233,7 +259,9 @@ "it": "Questo negozio di biciclette è chiamato {name}", "ru": "Этот магазин велосипедов называется {name}", "pt_BR": "Esta loja de bicicletas se chama {name}", - "pt": "Esta loja de bicicletas se chama {name}" + "pt": "Esta loja de bicicletas se chama {name}", + "es": "Esta tienda de bicicletas se llama {name}", + "da": "Denne cykelbutik hedder {name}" }, "freeform": { "key": "name" @@ -251,7 +279,9 @@ "id": "URL {name} apa?", "de": "Was ist die Webseite von {name}?", "pt_BR": "Qual o website de {name}?", - "pt": "Qual o website de {name}?" + "pt": "Qual o website de {name}?", + "es": "¿Cual es el sitio web de {name}?", + "da": "Hvad er webstedet for {name}?" }, "render": "{website}", "freeform": { @@ -270,7 +300,9 @@ "ru": "Какой номер телефона у {name}?", "de": "Wie lautet die Telefonnummer von {name}?", "pt_BR": "Qual o número de telefone de {name}?", - "pt": "Qual é o número de telefone de {name}?" + "pt": "Qual é o número de telefone de {name}?", + "es": "¿Cual es el número de teléfono de {name}?", + "da": "Hvad er telefonnummeret på {name}?" }, "render": "{phone}", "freeform": { @@ -289,7 +321,9 @@ "ru": "Какой адрес электронной почты у {name}?", "de": "Wie lautet die E-Mail-Adresse von {name}?", "pt_BR": "Qual o endereço de email de {name}?", - "pt": "Qual o endereço de email de {name}?" + "pt": "Qual o endereço de email de {name}?", + "es": "¿Cual es la dirección de correo electrónico de {name}?", + "da": "Hvad er e-mailadressen på {name}?" }, "render": "{email}", "freeform": { @@ -298,18 +332,14 @@ }, "id": "bike_shop-email" }, + "opening_hours", { - "render": "{opening_hours_table(opening_hours)}", - "question": "When is this shop opened?", - "freeform": { - "key": "opening_hours", - "type": "opening_hours" + "render": { + "en": "Only accessible to {access}", + "nl": "Enkel voor {access}", + "de": "Nur zugänglich für {access}", + "es": "Solo accesible a {access}" }, - "id": "bike_shop-opening_hours" - }, - "description", - { - "render": "Enkel voor {access}", "freeform": { "key": "access" }, @@ -326,7 +356,9 @@ "it": "Questo negozio vende bici?", "ru": "Продаются ли велосипеды в этом магазине?", "pt_BR": "Esta loja vende bicicletas?", - "pt": "Esta loja vende bicicletas?" + "pt": "Esta loja vende bicicletas?", + "es": "¿Vende bicis esta tienda?", + "da": "Sælger denne butik cykler?" }, "mappings": [ { @@ -340,7 +372,9 @@ "it": "Questo negozio vende bici", "ru": "В этом магазине продаются велосипеды", "pt_BR": "Esta loja vende bicicletas", - "pt": "Esta loja vende bicicletas" + "pt": "Esta loja vende bicicletas", + "es": "Esta tienda vende bicis", + "da": "Denne butik sælger cykler" } }, { @@ -354,7 +388,9 @@ "it": "Questo negozio non vende bici", "ru": "В этом магазине не продают велосипеды", "pt_BR": "Esta loja não vende bicicletas", - "pt": "Esta loja não vende bicicletas" + "pt": "Esta loja não vende bicicletas", + "es": "Esta tienda no vende bicis", + "da": "Denne butik sælger ikke cykler" } } ] @@ -370,7 +406,9 @@ "it": "Questo negozio ripara bici?", "ru": "В этом магазине ремонтируют велосипеды?", "pt_BR": "Esta loja conserta bicicletas?", - "pt": "Esta loja conserta bicicletas?" + "pt": "Esta loja conserta bicicletas?", + "es": "¿Repara bicis esta tienda?", + "da": "Reparerer denne butik cykler?" }, "mappings": [ { @@ -384,7 +422,9 @@ "it": "Questo negozio ripara bici", "ru": "Этот магазин ремонтирует велосипеды", "pt_BR": "Esta loja conserta bicicletas", - "pt": "Esta loja conserta bicicletas" + "pt": "Esta loja conserta bicicletas", + "es": "Esta tienda repara bicis", + "da": "Denne butik reparerer cykler" } }, { @@ -398,7 +438,9 @@ "it": "Questo negozio non ripara bici", "ru": "Этот магазин не ремонтирует велосипеды", "pt_BR": "Esta loja não conserta bicicletas", - "pt": "Esta loja não conserta bicicletas" + "pt": "Esta loja não conserta bicicletas", + "es": "Esta tienda no repara bicis", + "da": "Denne butik reparerer ikke cykler" } }, { @@ -412,7 +454,9 @@ "it": "Questo negozio ripara solo le bici che sono state acquistate qua", "ru": "Этот магазин ремонтирует только велосипеды, купленные здесь", "pt_BR": "Esta loja conserta bicicletas compradas aqui", - "pt": "Esta loja conserta bicicletas compradas aqui" + "pt": "Esta loja conserta bicicletas compradas aqui", + "es": "Esta tienda solo repara bicis compradas aquí", + "da": "Denne butik reparerer kun cykler købt her" } }, { @@ -426,12 +470,15 @@ "it": "Questo negozio ripara solo le biciclette di una certa marca", "ru": "В этом магазине обслуживают велосипеды определённого бренда", "pt_BR": "Esta loja conserta bicicletas de uma certa marca", - "pt": "Esta loja conserta bicicletas de uma certa marca" + "pt": "Esta loja conserta bicicletas de uma certa marca", + "es": "Esta tienda solo repara bicis de una cierta marca", + "da": "Dette værksted reparerer kun cykler af et bestemt mærke" } } ] }, { + "#": "Remark: we steal the 'bicycle_rental' questions from the other layer. They'll get the condition of their source automatically!", "id": "bike_repair_rents-bikes", "question": { "en": "Does this shop rent out bikes?", @@ -442,7 +489,9 @@ "it": "Questo negozio noleggia le bici?", "ru": "Этот магазин сдает велосипеды в аренду?", "pt_BR": "Esta loja aluga bicicletas?", - "pt": "Esta loja aluga bicicletas?" + "pt": "Esta loja aluga bicicletas?", + "es": "¿Alquila bicicis esta tienda?", + "da": "Udlejer denne butik cykler?" }, "mappings": [ { @@ -456,7 +505,9 @@ "it": "Questo negozio noleggia le bici", "ru": "Этот магазин сдает велосипеды в аренду", "pt_BR": "Esta loja aluga bicicletas", - "pt": "Esta loja aluga bicicletas" + "pt": "Esta loja aluga bicicletas", + "es": "Esta tienda alquila bicis", + "da": "Denne butik udlejer cykler" } }, { @@ -470,11 +521,14 @@ "it": "Questo negozio non noleggia le bici", "ru": "Этот магазин не сдает велосипеды напрокат", "pt_BR": "Esta loja não aluga bicicletas", - "pt": "Esta loja não aluga bicicletas" + "pt": "Esta loja não aluga bicicletas", + "es": "Esta tienda no alquila bicis", + "da": "Denne butik udlejer ikke cykler" } } ] }, + "bicycle_rental.*bicycle_rental", { "id": "bike_repair_second-hand-bikes", "question": { @@ -484,7 +538,9 @@ "gl": "Esta tenda vende bicicletas de segunda man?", "de": "Verkauft dieses Geschäft gebrauchte Fahrräder?", "it": "Questo negozio vende bici usate?", - "ru": "В этом магазине продаются подержанные велосипеды?" + "ru": "В этом магазине продаются подержанные велосипеды?", + "es": "¿Vende bicis de segunda mano esta tienda?", + "da": "Sælger denne butik brugte cykler?" }, "mappings": [ { @@ -496,7 +552,9 @@ "gl": "Esta tenda vende bicicletas de segunda man", "de": "Dieses Geschäft verkauft gebrauchte Fahrräder", "it": "Questo negozio vende bici usate", - "ru": "В этом магазине продаются подержанные велосипеды" + "ru": "В этом магазине продаются подержанные велосипеды", + "es": "Esta tienda vende bicis de segunda mano", + "da": "Denne butik sælger brugte cykler" } }, { @@ -508,7 +566,9 @@ "gl": "Esta tenda non vende bicicletas de segunda man", "de": "Dieses Geschäft verkauft keine gebrauchten Fahrräder", "it": "Questo negozio non vende bici usate", - "ru": "В этом магазине не продаются подержанные велосипеды" + "ru": "В этом магазине не продаются подержанные велосипеды", + "es": "Esta tienda no vende bicis de segunda mano", + "da": "Denne butik sælger ikke brugte cykler" } }, { @@ -520,7 +580,9 @@ "gl": "Esta tenda só vende bicicletas de segunda man", "de": "Dieses Geschäft verkauft nur gebrauchte Fahrräder", "it": "Questo negozio vende solamente bici usate", - "ru": "В этом магазине продаются только подержанные велосипеды" + "ru": "В этом магазине продаются только подержанные велосипеды", + "es": "Esta tienda solo vende bicis de segunda mano", + "da": "Denne butik sælger kun brugte cykler" } } ] @@ -534,7 +596,8 @@ "gl": "Esta tenda ofrece unha bomba de ar para uso de calquera persoa?", "de": "Bietet dieses Geschäft eine Fahrradpumpe zur Benutzung für alle an?", "it": "Questo negozio offre l’uso a chiunque di una pompa per bici?", - "ru": "Предлагается ли в этом магазине велосипедный насос для всеобщего пользования?" + "ru": "Предлагается ли в этом магазине велосипедный насос для всеобщего пользования?", + "es": "¿Esta tienda ofrece una bomba para que la utilice cualquiera?" }, "mappings": [ { @@ -546,7 +609,8 @@ "gl": "Esta tenda ofrece unha bomba de ar para uso de calquera persoa", "de": "Dieses Geschäft bietet eine Fahrradpumpe für alle an", "it": "Questo negozio offre l’uso pubblico di una pompa per bici", - "ru": "В этом магазине есть велосипедный насос для всеобщего пользования" + "ru": "В этом магазине есть велосипедный насос для всеобщего пользования", + "es": "Esta tienda ofrece una bomba para cualquiera" } }, { @@ -558,7 +622,8 @@ "gl": "Esta tenda non ofrece unha bomba de ar para uso de calquera persoa", "de": "Dieses Geschäft bietet für niemanden eine Fahrradpumpe an", "it": "Questo negozio non offre l’uso pubblico di una pompa per bici", - "ru": "В этом магазине нет велосипедного насоса для всеобщего пользования" + "ru": "В этом магазине нет велосипедного насоса для всеобщего пользования", + "es": "Esta tienda no ofrece una bomba para cualquiera" } }, { @@ -568,7 +633,9 @@ "nl": "Er is een fietspomp, deze is apart aangeduid", "fr": "Il y a une pompe à vélo, c'est indiqué comme un point séparé ", "it": "C’è una pompa per bici, è mostrata come punto separato ", - "de": "Es gibt eine Fahrradpumpe, sie wird als separater Punkt angezeigt " + "de": "Es gibt eine Fahrradpumpe, sie wird als separater Punkt angezeigt ", + "es": "Hay una bomba para bicicletas, se muestra como un punto separado ", + "da": "Der er cykelpumpe, den er vist som et separat punkt " } } ] @@ -582,7 +649,9 @@ "gl": "Hai ferramentas aquí para arranxar a túa propia bicicleta?", "de": "Gibt es hier Werkzeuge, um das eigene Fahrrad zu reparieren?", "it": "Sono presenti degli attrezzi per riparare la propria bici?", - "ru": "Есть ли здесь инструменты для починки собственного велосипеда?" + "ru": "Есть ли здесь инструменты для починки собственного велосипеда?", + "es": "¿Hay herramientas para reparar tu propia bici?", + "da": "Er der værktøj her til at reparere din egen cykel?" }, "mappings": [ { @@ -593,7 +662,8 @@ "fr": "Ce magasin offre des outils pour réparer son vélo soi-même", "gl": "Hai ferramentas aquí para arranxar a túa propia bicicleta", "de": "Dieses Geschäft bietet Werkzeuge für die Heimwerkerreparatur an", - "it": "Questo negozio offre degli attrezzi per la riparazione fai-da-te" + "it": "Questo negozio offre degli attrezzi per la riparazione fai-da-te", + "da": "Denne butik tilbyder værktøj til gør-det-selv-reparation" } }, { @@ -604,7 +674,8 @@ "fr": "Ce magasin n'offre pas des outils pour réparer son vélo soi-même", "gl": "Non hai ferramentas aquí para arranxar a túa propia bicicleta", "de": "Dieses Geschäft bietet keine Werkzeuge für Heimwerkerreparaturen an", - "it": "Questo negozio non offre degli attrezzi per la riparazione fai-da-te" + "it": "Questo negozio non offre degli attrezzi per la riparazione fai-da-te", + "da": "Denne butik tilbyder ikke værktøj til gør-det-selv reparation" } }, { @@ -628,7 +699,9 @@ "fr": "Lave-t-on les vélos ici ?", "it": "Vengono lavate le bici qua?", "ru": "Здесь моют велосипеды?", - "de": "Werden hier Fahrräder gewaschen?" + "de": "Werden hier Fahrräder gewaschen?", + "es": "¿Aquí se lavan bicicletas?", + "da": "Vaskes cykler her?" }, "mappings": [ { @@ -639,7 +712,9 @@ "fr": "Ce magasin lave les vélos", "it": "Questo negozio lava le biciclette", "de": "Dieses Geschäft reinigt Fahrräder", - "ru": "В этом магазине оказываются услуги мойки/чистки велосипедов" + "ru": "В этом магазине оказываются услуги мойки/чистки велосипедов", + "es": "Esta tienda limpia bicicletas", + "da": "Denne butik rengør cykler" } }, { @@ -649,7 +724,8 @@ "nl": "Deze winkel biedt een installatie aan om zelf je fiets schoon te maken", "fr": "Ce magasin a une installation pour laver soi même des vélos", "it": "Questo negozio ha una struttura dove è possibile pulire la propria bici", - "de": "Dieser Laden hat eine Anlage, in der man Fahrräder selbst reinigen kann" + "de": "Dieser Laden hat eine Anlage, in der man Fahrräder selbst reinigen kann", + "es": "Esta tienda tiene una instalación donde uno puede limpiar bicicletas por si mismo" } }, { @@ -660,22 +736,24 @@ "fr": "Ce magasin ne fait pas le nettoyage de vélo", "it": "Questo negozio non offre la pulizia della bicicletta", "de": "Dieser Laden bietet keine Fahrradreinigung an", - "ru": "В этом магазине нет услуг мойки/чистки велосипедов" + "ru": "В этом магазине нет услуг мойки/чистки велосипедов", + "es": "Esta tienda no ofrece limpieza de bicicletas" } } ] }, - "bike_cleaning.bike_cleaning-service:bicycle:cleaning:charge" + "bike_cleaning.bike_cleaning-service:bicycle:cleaning:charge", + "description" ], "presets": [ { "title": { - "en": "Bike repair/shop", - "nl": "Fietszaak", - "fr": "Magasin et réparateur de vélo", + "en": "a bike repair/shop", + "nl": "een fietszaak", + "fr": "une magasin et réparateur de vélo", "gl": "Tenda/arranxo de bicicletas", - "de": "Fahrradwerkstatt/geschäft", - "it": "Negozio/riparatore di bici", + "de": "eine fahrradwerkstatt/geschäft", + "it": "una negozio/riparatore di bici", "ru": "Обслуживание велосипедов/магазин" }, "tags": [ diff --git a/assets/layers/bike_themed_object/bike_themed_object.json b/assets/layers/bike_themed_object/bike_themed_object.json index a40a041892..760fad8e1b 100644 --- a/assets/layers/bike_themed_object/bike_themed_object.json +++ b/assets/layers/bike_themed_object/bike_themed_object.json @@ -4,8 +4,9 @@ "en": "Bike related object", "nl": "Fietsgerelateerd object", "fr": "Objet cycliste", - "de": "Mit Fahrrad zusammenhängendes Objekt", - "it": "Oggetto relativo alle bici" + "de": "Weitere fahrradbezogene Objekte", + "it": "Oggetto relativo alle bici", + "es": "Objeto relacionada con bicis" }, "minzoom": 13, "source": { @@ -29,7 +30,9 @@ "nl": "Fietsgerelateerd object", "fr": "Objet cycliste", "de": "Mit Fahrrad zusammenhängendes Objekt", - "it": "Oggetto relativo alle bici" + "it": "Oggetto relativo alle bici", + "es": "Objeto relacionado con bicis", + "da": "Cykelrelateret objekt" }, "mappings": [ { @@ -43,7 +46,11 @@ "en": "Cycle track", "fr": "Piste cyclable", "it": "Pista ciclabile", - "de": "Radweg" + "de": "Radweg", + "ru": "Велотрек", + "ca": "Pista ciclable", + "es": "Carril bici", + "da": "Cykelsti" } } ] @@ -81,6 +88,8 @@ ], "description": { "en": "A layer with bike-themed objects but who don't match any other layer", - "nl": "Een laag met fietsgerelateerde diensten, die in geen enkele andere laag konden ondergebracht worden" + "nl": "Een laag met fietsgerelateerde diensten, die in geen enkele andere laag konden ondergebracht worden", + "de": "Eine Ebene mit Objekten zum Thema Fahrrad, die zu keiner anderen Ebene passen", + "es": "Una capa con los objetos relacionados con bicis pero que no coinciden con ninguna otra capa" } } \ No newline at end of file diff --git a/assets/layers/binocular/binocular.json b/assets/layers/binocular/binocular.json index 60fd228c19..fd55ea728f 100644 --- a/assets/layers/binocular/binocular.json +++ b/assets/layers/binocular/binocular.json @@ -4,7 +4,9 @@ "en": "Binoculars", "nl": "Verrekijkers", "de": "Ferngläser", - "ru": "Бинокль" + "ru": "Бинокль", + "ca": "Prismàtics", + "da": "Kikkert" }, "minzoom": 0, "title": { @@ -12,14 +14,19 @@ "en": "Binoculars", "nl": "Verrekijker", "de": "Ferngläser", - "ru": "Бинокль" + "ru": "Бинокль", + "ca": "Prismàtics", + "es": "Binoculares", + "da": "Kikkert" } }, "description": { "en": "Binoculas", "nl": "Verrekijkers", "de": "Fernglas", - "ru": "Бинокли" + "ru": "Бинокли", + "ca": "Prismàtics", + "da": "Kikkerter" }, "tagRenderings": [ "images", @@ -35,7 +42,8 @@ "then": { "en": "Free to use", "nl": "Gratis te gebruiken", - "de": "Kostenlose Nutzung" + "de": "Kostenlose Nutzung", + "da": "Gratis at bruge" } } ], @@ -48,12 +56,16 @@ "render": { "en": "Using these binoculars costs {charge}", "nl": "Deze verrekijker gebruiken kost {charge}", - "de": "Die Benutzung dieses Fernglases kostet {charge}" + "de": "Die Benutzung dieses Fernglases kostet {charge}", + "es": "Utilizar estos binoculares cuesta {charge}", + "da": "Brug af denne kikkert koster {charge}" }, "question": { "en": "How much does one have to pay to use these binoculars?", "nl": "Hoeveel moet men betalen om deze verrekijker te gebruiken?", - "de": "Wie viel muss man für die Nutzung dieser Ferngläser bezahlen?" + "de": "Wie viel muss man für die Nutzung dieser Ferngläser bezahlen?", + "es": "¿Cuánto hay que pagar para utilizar estos binoculares?", + "da": "Hvor meget koster det at bruge denne kikkert?" }, "id": "binocular-charge" }, @@ -61,12 +73,16 @@ "question": { "en": "When looking through this binocular, in what direction does one look?", "nl": "Welke richting kijkt men uit als men door deze verrekijker kijkt?", - "de": "In welche Richtung blickt man, wenn man durch dieses Fernglas schaut?" + "de": "In welche Richtung blickt man, wenn man durch dieses Fernglas schaut?", + "es": "¿Cuándo uno mira a través de este binocular, en qué dirección lo hace?", + "da": "I hvilken retning kigger man, når man ser gennem denne kikkert?" }, "render": { "en": "Looks towards {direction}°", "nl": "Kijkt richting {direction}°", - "de": "Blick in Richtung {direction}°" + "de": "Blick in Richtung {direction}°", + "es": "Mira hacia {direction}º", + "da": "Kigger mod {direction}°" }, "freeform": { "key": "direction", @@ -81,16 +97,19 @@ "amenity=binoculars" ], "title": { - "en": "binoculars", - "nl": "verrekijker", - "de": "Ferngläser", - "ru": "бинокль" + "en": "a binoculars", + "nl": "een verrekijker", + "de": "eine ferngläser", + "ru": "бинокль", + "ca": "uns prismàtics", + "da": "en kikkert" }, "description": { "en": "A telescope or pair of binoculars mounted on a pole, available to the public to look around. ", "nl": "Een telescoop of verrekijker die op een vaste plaats gemonteerd staat waar iedereen door mag kijken. ", "de": "Ein fest installiertes Teleskop oder Fernglas, für die öffentliche Nutzung. ", - "fr": "Une longue-vue ou une paire de jumelles montée sur un poteau, disponible au public pour scruter les environs.\n" + "fr": "Une longue-vue ou une paire de jumelles montée sur un poteau, disponible au public pour scruter les environs.\n", + "da": "Et teleskop eller en kikkert monteret på en stang, som offentligheden kan se sig omkring med. " }, "preciseInput": { "preferredBackground": "photo" diff --git a/assets/layers/birdhide/birdhide.json b/assets/layers/birdhide/birdhide.json index 07bbc253c5..36fbaba815 100644 --- a/assets/layers/birdhide/birdhide.json +++ b/assets/layers/birdhide/birdhide.json @@ -2,7 +2,10 @@ "id": "birdhide", "name": { "en": "Bird watching places", - "nl": "Vogelkijkhutten" + "nl": "Vogelkijkhutten", + "de": "Orte zur Vogelbeobachtung", + "es": "Lugares para ver pájaros", + "da": "Steder til fugleobservation" }, "minzoom": 14, "source": { @@ -43,7 +46,8 @@ }, "then": { "en": "Bird hide {name}", - "nl": "Vogelkijkhut {name}" + "nl": "Vogelkijkhut {name}", + "da": "Fugleskjul {name}" } }, { @@ -61,7 +65,9 @@ }, "description": { "en": "A birdhide", - "nl": "Een vogelkijkhut" + "nl": "Een vogelkijkhut", + "da": "Et fugleskjul", + "de": "Ein Vogelbeobachtungsturm" }, "tagRenderings": [ "images", @@ -95,7 +101,9 @@ }, "then": { "en": "Bird hide", - "nl": "Vogelkijkhut" + "nl": "Vogelkijkhut", + "da": "Fugleskjul", + "de": "Vogelbeobachtungsturm" } }, { @@ -130,7 +138,8 @@ "id": "bird-hide-wheelchair", "question": { "en": "Is this bird hide accessible to wheelchair users?", - "nl": "Is deze vogelkijkplaats rolstoeltoegankelijk?" + "nl": "Is deze vogelkijkplaats rolstoeltoegankelijk?", + "da": "Er dette fugleskjul tilgængeligt for kørestolsbrugere?" }, "mappings": [ { @@ -141,7 +150,8 @@ }, "then": { "en": "There are special provisions for wheelchair users", - "nl": "Er zijn speciale voorzieningen voor rolstoelen" + "nl": "Er zijn speciale voorzieningen voor rolstoelen", + "es": "Hay provisiones especiales para usuarios de sillas de ruedas" } }, { @@ -152,7 +162,8 @@ }, "then": { "en": "A wheelchair can easily use this birdhide", - "nl": "Een rolstoel raakt er vlot" + "nl": "Een rolstoel raakt er vlot", + "da": "En kørestolsbruger kan sagtens bruge dette fugleskjul" } }, { @@ -163,7 +174,8 @@ }, "then": { "en": "This birdhide is reachable by wheelchair, but it is not easy", - "nl": "Je kan er raken met een rolstoel, maar het is niet makkelijk" + "nl": "Je kan er raken met een rolstoel, maar het is niet makkelijk", + "da": "Dette fugleskjul kan nås med kørestol, men det er ikke nemt" } }, { @@ -174,7 +186,10 @@ }, "then": { "en": "Not accessible to wheelchair users", - "nl": "Niet rolstoeltoegankelijk" + "nl": "Niet rolstoeltoegankelijk", + "de": "Nicht zugänglich für Rollstuhlfahrer", + "es": "No accesible a usuarios con sillas de ruedas", + "da": "Ikke tilgængelig for kørestolsbrugere" } } ] @@ -182,28 +197,36 @@ { "render": { "en": "Operated by {operator}", - "nl": "Beheer door {operator}" + "nl": "Beheer door {operator}", + "de": "Betrieben von {operator}", + "es": "Operado por {operator}", + "da": "Drives af {operator}" }, "freeform": { "key": "operator" }, "question": { "en": "Who operates this birdhide?", - "nl": "Wie beheert deze vogelkijkplaats?" + "nl": "Wie beheert deze vogelkijkplaats?", + "da": "Hvem driver dette fugleskjul?" }, "mappings": [ { "if": "operator=Natuurpunt", "then": { "en": "Operated by Natuurpunt", - "nl": "Beheer door Natuurpunt" + "nl": "Beheer door Natuurpunt", + "de": "Betrieben von Natuurpunt", + "es": "Operado por Natuurpunt", + "da": "Drives af Natuurpunt" } }, { "if": "operator=Agentschap Natuur en Bos", "then": { "en": "Operated by the Agency for Nature and Forests", - "nl": "Beheer door het Agentschap Natuur en Bos " + "nl": "Beheer door het Agentschap Natuur en Bos", + "de": "Betrieben von einer Forst- bzw. Naturschutzbehörde" } } ], @@ -233,12 +256,17 @@ "amenity=shelter" ], "title": { - "en": "Birdhide", - "nl": "vogelkijkhut" + "en": "a birdhide", + "nl": "een vogelkijkhut", + "da": "et fugleskjul", + "de": "ein Vogelbeobachtungsturm" }, "description": { "en": "A covered shelter where one can watch birds comfortably", - "nl": "Een overdekte hut waarbinnen er warm en droog naar vogels gekeken kan worden" + "nl": "Een overdekte hut waarbinnen er warm en droog naar vogels gekeken kan worden", + "de": "Ein überdachter Unterstand, in dem man bequem Vögel beobachten kann", + "es": "Un refugio cubierto donde se pueden ver pájaros confortablemente", + "da": "Et overdækket ly, hvor man kan se fugle i ro og mag" } }, { @@ -248,12 +276,14 @@ "shelter=no" ], "title": { - "en": "Bird blind", - "nl": "vogelkijkwand" + "en": "a bird blind", + "nl": "een vogelkijkwand" }, "description": { "en": "A screen or wall with openings to watch birds", - "nl": "Een vogelkijkwand waarachter men kan staan om vogels te kijken" + "nl": "Een vogelkijkwand waarachter men kan staan om vogels te kijken", + "es": "Una pantalla o pared con aperturas para ver pájaros", + "da": "En skærm eller væg med åbninger til at se på fugle" } } ], @@ -266,7 +296,10 @@ "nl": "Rolstoeltoegankelijk", "en": "Wheelchair accessible", "de": "Zugänglich für Rollstuhlfahrer", - "fr": "Accessible aux fauteuils roulants" + "fr": "Accessible aux fauteuils roulants", + "ca": "Accessible per a cadires de rodes", + "es": "Accesible con sillas de ruedas", + "da": "Tilgængelig for kørestolsbrugere" }, "osmTags": { "or": [ @@ -284,7 +317,9 @@ { "question": { "en": "Only covered birdhides", - "nl": "Enkel overdekte kijkhutten" + "nl": "Enkel overdekte kijkhutten", + "de": "Nur überdachte Vogelbeobachtungsstellen", + "da": "Kun overdækkede fugleskjul" }, "osmTags": { "and": [ diff --git a/assets/layers/cafe_pub/cafe_pub.json b/assets/layers/cafe_pub/cafe_pub.json index 8caa7ca67e..42f6e19ce5 100644 --- a/assets/layers/cafe_pub/cafe_pub.json +++ b/assets/layers/cafe_pub/cafe_pub.json @@ -6,7 +6,9 @@ "de": "Cafés und Kneipen", "fr": "Cafés et pubs", "zh_Hant": "咖啡廳與酒吧", - "hu": "Kávézók és kocsmák" + "hu": "Kávézók és kocsmák", + "es": "Cafeterías y bares", + "da": "Caféer og pubber" }, "source": { "osmTags": { @@ -24,15 +26,20 @@ "amenity=pub" ], "title": { - "en": "pub", - "nl": "bruin cafe of kroeg", - "de": "Kneipe", + "en": "a pub", + "nl": "een bruin café of kroeg", + "de": "eine kneipe", "ru": "паб", - "hu": "kocsma" + "hu": "kocsma", + "ca": "un bar", + "da": "en pub" }, "description": { "en": "A pub, mostly for drinking beers in a warm, relaxed interior", - "nl": "Dit is een bruin café of een kroeg waar voornamelijk bier wordt gedronken. De inrichting is typisch gezellig met veel houtwerk " + "nl": "Dit is een bruin café of een kroeg waar voornamelijk bier wordt gedronken. De inrichting is typisch gezellig met veel houtwerk", + "de": "Eine Kneipe, in der vor allem Bier in ruhiger, entspannter Atmosphäre getrunken wird", + "es": "Un bar, principalmente para beber cervezas en un interior templado y relajado", + "da": "En pub, mest et sted at drikke øl i et varme, afslappede omgivelser" }, "preciseInput": { "preferredBackground": "map" @@ -43,15 +50,20 @@ "amenity=bar" ], "title": { - "en": "bar", - "nl": "bar", - "de": "Bar", + "en": "a bar", + "nl": "een bar", + "de": "eine bar", "ru": "бар", - "hu": "bár" + "hu": "bár", + "ca": "un pub", + "da": "en bar", + "es": "un bar" }, "description": { "en": "A more modern and commercial bar, possibly with a music and light installation", - "nl": "Dit is een bar waar men ter plaatse alcoholische drank nuttigt. De inrichting is typisch modern en commercieel, soms met lichtinstallatie en feestmuziek" + "nl": "Dit is een bar waar men ter plaatse alcoholische drank nuttigt. De inrichting is typisch modern en commercieel, soms met lichtinstallatie en feestmuziek", + "de": "Eine modernere und kommerzielle Bar, möglicherweise mit einer Musik- und Lichtinstallation", + "da": "En mere moderne og kommerciel bar, eventuelt med en musik- og lysinstallation" }, "preciseInput": { "preferredBackground": "map" @@ -62,15 +74,19 @@ "amenity=cafe" ], "title": { - "en": "cafe", - "nl": "cafe", - "de": "Café", + "en": "a cafe", + "nl": "een café", + "de": "eine café", "ru": "кафе", - "hu": "kávézó" + "hu": "kávézó", + "ca": "un cafè", + "da": "en cafe" }, "description": { "en": "A cafe to drink tea, coffee or an alcoholical bevarage in a quiet environment", - "nl": "Dit is een cafe - een plaats waar men rustig kan zitten om een thee, koffie of alcoholische drank te nuttigen." + "nl": "Dit is een cafe - een plaats waar men rustig kan zitten om een thee, koffie of alcoholische drank te nuttigen.", + "de": "Ein Café, um in ruhiger Umgebung Tee, Kaffee oder ein alkoholisches Getränk zu trinken", + "da": "En café til at drikke te, kaffe eller en alkoholisk drik i rolige omgivelser" }, "preciseInput": { "preferredBackground": "map" @@ -80,7 +96,10 @@ "title": { "render": { "en": "Pub", - "nl": "Café" + "nl": "Café", + "ca": "Bar", + "de": "Kneipe", + "da": "Pub" }, "mappings": [ { @@ -93,7 +112,9 @@ "nl": "{name}", "en": "{name}", "de": "{name}", - "ru": "{name}" + "ru": "{name}", + "ca": "{name}", + "da": "{name}" } } ] @@ -106,14 +127,16 @@ "en": "What is the name of this pub?", "de": "Wie heißt diese Kneipe?", "fr": "Quel est le nom de ce pub ?", - "hu": "Mi a neve ennek a kocsmának?" + "hu": "Mi a neve ennek a kocsmának?", + "da": "Hvad hedder denne pub?" }, "render": { "nl": "De naam van dit café is {name}", "en": "This pub is named {name}", "de": "Diese Kneipe heißt {name}", "fr": "Ce pub se nomme {name}", - "hu": "A kocsma neve: {name}" + "hu": "A kocsma neve: {name}", + "da": "Denne pub hedder {name}" }, "freeform": { "key": "name" @@ -125,42 +148,52 @@ "en": "What kind of cafe is this", "nl": "Welk soort café is dit?", "de": "Was ist das für ein Café", - "hu": "Milyen fajta kávézó ez?" + "hu": "Milyen fajta kávézó ez?", + "da": "Hvilken slags cafe er dette" }, "mappings": [ { "if": "amenity=pub", "then": { "en": "A pub, mostly for drinking beers in a warm, relaxed interior", - "nl": "Dit is een bruin café of een kroeg waar voornamelijk bier wordt gedronken. De inrichting is typisch gezellig met veel houtwerk " + "nl": "Dit is een bruin café of een kroeg waar voornamelijk bier wordt gedronken. De inrichting is typisch gezellig met veel houtwerk", + "de": "Eine Kneipe, in der vor allem Bier in ruhiger, entspannter Atmosphäre getrunken wird" } }, { "if": "amenity=bar", "then": { "en": "A more modern and commercial bar, possibly with a music and light installation", - "nl": "Dit is een bar waar men ter plaatse alcoholische drank nuttigt. De inrichting is typisch modern en commercieel, soms met lichtinstallatie en feestmuziek" + "nl": "Dit is een bar waar men ter plaatse alcoholische drank nuttigt. De inrichting is typisch modern en commercieel, soms met lichtinstallatie en feestmuziek", + "de": "Eine modernere und kommerzielle Bar, möglicherweise mit einer Musik- und Lichtinstallation", + "da": "En mere moderne og kommerciel bar, eventuelt med en musik- og lysinstallation" } }, { "if": "amenity=cafe", "then": { "en": "A cafe to drink tea, coffee or an alcoholical bevarage in a quiet environment", - "nl": "Dit is een cafe - een plaats waar men rustig kan zitten om een thee, koffie of alcoholische drank te nuttigen." + "nl": "Dit is een cafe - een plaats waar men rustig kan zitten om een thee, koffie of alcoholische drank te nuttigen.", + "de": "Ein Café, um in ruhiger Umgebung Tee, Kaffee oder ein alkoholisches Getränk zu trinken", + "da": "En café til at drikke te, kaffe eller en alkoholisk drik i rolige omgivelser" } }, { "if": "amenity=restaurant", "then": { "en": "A restuarant where one can get a proper meal", - "nl": "Dit is een restaurant waar men een maaltijd geserveerd krijgt" + "nl": "Dit is een restaurant waar men een maaltijd geserveerd krijgt", + "de": "Ein Restaurant, in dem man ordentlich essen kann", + "da": "En restaurant, hvor man kan få et ordentligt måltid" } }, { "if": "amenity=biergarten", "then": { "en": "An open space where beer is served, typically seen in Germany", - "nl": "Een open ruimte waar bier geserveerd wordt. Typisch in Duitsland" + "nl": "Een open ruimte waar bier geserveerd wordt. Typisch in Duitsland", + "de": "Ein Außenbereich mit Bierausschank, typischerweise in Deutschland", + "da": "Et åbent rum, hvor der serveres øl, typisk set i Tyskland" }, "hideInAnswer": "_country!=de" } @@ -184,9 +217,12 @@ "question": { "en": "Opened now", "nl": "Nu geopened", - "de": "Jetzt geöffnet", + "de": "Derzeit geöffnet", "fr": "Ouvert maintenant", - "hu": "Most nyitva van" + "hu": "Most nyitva van", + "ca": "Obert ara", + "es": "Abiert oahora", + "da": "Åbent nu" }, "osmTags": "_isOpen=yes" } @@ -199,7 +235,19 @@ "amenity=", "disused:amenity:={amenity}" ] - } + }, + "extraDeleteReasons": [ + { + "explanation": { + "nl": "{title()} is permanent gestopt", + "en": "{title()} has closed down permanently", + "de": "{title()} wurde dauerhaft geschlossen", + "es": "{title()} ha cerrado permanentemente", + "da": "{title()} er lukket permanent" + }, + "changesetMessage": "shop_closed" + } + ] }, "allowMove": true, "mapRendering": [ @@ -236,6 +284,9 @@ "description": { "en": "A layer showing cafés and pubs where one can gather around a drink. The layer asks for some relevant questions", "hu": "Egy olyan réteg, amely kávézókat és kocsmákat jelenít meg, ahol össze lehet gyűlni egy ital köré. A réteg néhány lényeges kérdést tesz fel", - "nl": "Een laag die kroegen en koffiehuizen toont waar je iets kunt drinken. De laag zal je enkele vragen stellen" + "nl": "Een laag die kroegen en koffiehuizen toont waar je iets kunt drinken. De laag zal je enkele vragen stellen", + "de": "Eine Ebene mit Cafés und Kneipen, in denen man sich auf ein Getränk treffen kann. Die Ebene fragt nach einigen relevanten Eigenschaften", + "es": "Una capa que muestra cafeterías y bares donde uno se puede reunir con una bebida. La capa pregunta algunas preguntas relevantes", + "da": "Et lag med caféer og pubber, hvor man kan samles omkring en drink. Laget stiller nogle relevante spørgsmål" } } \ No newline at end of file diff --git a/assets/layers/charging_station/README.md b/assets/layers/charging_station/README.md index 823b189035..307283505a 100644 --- a/assets/layers/charging_station/README.md +++ b/assets/layers/charging_station/README.md @@ -9,14 +9,14 @@ If you want to add a missing socket type, then: - Add all the properties in 'types.csv' - Add an icon. (Note: icons are way better as pictures as they are perceived more abstractly) -- Update license_info.json with the copyright info of the new icon. Note that we strive to have Creative-commons icons +- Update 'license_info.json' with the copyright info of the new icon. Note that we strive to have Creative Commons icons only (though there are exceptions) -AT this point, most of the work should be done; feel free to send a PR. If you would like to test it locally first ( -which is recommended) and have a working dev environment, then run: +At this point, most of the work should be done; feel free to send a PR. If you would like to test it locally first +(which is recommended) and have a working dev environment, then run: -- Run 'ts-node csvToJson.ts' which will generate a new charging_station.json based on the protojson -- Run`npm run query:licenses` to get an interactive program to add the license of your artwork, followed +- Run `ts-node csvToJson.ts` which will generate a new charging_station.json based on the protojson +- Run `npm run query:licenses` to get an interactive program to add the license of your artwork, followed by `npm run generate:licenses` - Run `npm run generate:layeroverview` to generate the layer files - Run `npm run start` to run the instance diff --git a/assets/layers/charging_station/charging_station.json b/assets/layers/charging_station/charging_station.json index bb90ac136c..665dc666c8 100644 --- a/assets/layers/charging_station/charging_station.json +++ b/assets/layers/charging_station/charging_station.json @@ -3,7 +3,8 @@ "name": { "en": "Charging stations", "nl": "Oplaadpunten", - "de": "Ladestationen" + "de": "Ladestationen", + "ca": "Estacions de càrrega" }, "minzoom": 10, "source": { @@ -23,7 +24,8 @@ "title": { "render": { "en": "Charging station", - "nl": "Oplaadpunt" + "nl": "Oplaadpunt", + "ca": "Estació de càrrega" }, "mappings": [ { @@ -65,7 +67,8 @@ "description": { "en": "A charging station", "nl": "Oplaadpunten", - "de": "Eine Ladestation" + "de": "Eine Ladestation", + "da": "En ladestation" }, "tagRenderings": [ "images", @@ -131,11 +134,13 @@ "id": "access", "question": { "en": "Who is allowed to use this charging station?", - "nl": "Wie mag er dit oplaadpunt gebruiken?" + "nl": "Wie mag er dit oplaadpunt gebruiken?", + "de": "Wer darf diese Ladestation benutzen?" }, "render": { "en": "Access is {access}", - "nl": "Toegang voor {access}" + "nl": "Toegang voor {access}", + "de": "Zugang ist {access}" }, "freeform": { "key": "access", @@ -148,7 +153,8 @@ "if": "access=yes", "then": { "en": "Anyone can use this charging station (payment might be needed)", - "nl": "Toegankelijk voor iedereen (mogelijks met aanmelden en/of te betalen)" + "nl": "Toegankelijk voor iedereen (mogelijks met aanmelden en/of te betalen)", + "de": "Jeder kann diese Ladestation nutzen (eventuell gegen Bezahlung)" } }, { @@ -160,7 +166,8 @@ }, "then": { "en": "Anyone can use this charging station (payment might be needed)", - "nl": "Toegankelijk voor iedereen (mogelijks met aanmelden en/of te betalen)" + "nl": "Toegankelijk voor iedereen (mogelijks met aanmelden en/of te betalen)", + "de": "Jeder kann diese Ladestation nutzen (eventuell gegen Bezahlung)" }, "hideInAnswer": true }, @@ -168,14 +175,24 @@ "if": "access=customers", "then": { "en": "Only customers of the place this station belongs to can use this charging station
E.g. a charging station operated by hotel which is only usable by their guests", - "nl": "Enkel klanten van de bijhorende plaats mogen dit oplaadpunt gebruiken
Bv. op de parking van een hotel en enkel toegankelijk voor klanten van dit hotel" + "nl": "Enkel klanten van de bijhorende plaats mogen dit oplaadpunt gebruiken
Bv. op de parking van een hotel en enkel toegankelijk voor klanten van dit hotel", + "de": "Nur Kunden des Ortes, zu dem diese Station gehört, können diese Ladestation nutzen
Z.B. eine von einem Hotel betriebene Ladestation, die nur von dessen Gästen genutzt werden kann" + } + }, + { + "if": "access=key", + "then": { + "en": "A key must be requested to access this charging station
E.g. a charging station operated by hotel which is only usable by their guests, which receive a key from the reception to unlock the charging station", + "nl": "Een sleutel is nodig om dit oplaadpunt te gebruiken
Bv. voor klanten van een hotel of een bar, die de sleutel aan de receptie kunnen krijgen", + "de": "Für den Zugang zu dieser Ladestation muss ein Schlüssel angefordert werden
Z.B. eine von einem Hotel betriebene Ladestation, die nur von dessen Gästen genutzt werden kann, die an der Rezeption einen Schlüssel erhalten, um die Ladestation aufzuschließen" } }, { "if": "access=private", "then": { "en": "Not accessible to the general public (e.g. only accessible to the owners, employees, ...)", - "nl": "Niet toegankelijk voor het publiek
Bv. enkel toegankelijk voor de eigenaar, medewerkers ,... " + "nl": "Niet toegankelijk voor het publiek
Bv. enkel toegankelijk voor de eigenaar, medewerkers ,...", + "de": "Nicht für die Allgemeinheit zugänglich (z. B. nur für die Eigentümer, Mitarbeiter, ...)" } } ] @@ -184,11 +201,13 @@ "id": "capacity", "render": { "en": "{capacity} vehicles can be charged here at the same time", - "nl": "{capacity} voertuigen kunnen hier op hetzelfde moment opgeladen worden" + "nl": "{capacity} voertuigen kunnen hier op hetzelfde moment opgeladen worden", + "de": "{capacity} Fahrzeuge können hier gleichzeitig laden" }, "question": { "en": "How much vehicles can be charged here at the same time?", - "nl": "Hoeveel voertuigen kunnen hier opgeladen worden?" + "nl": "Hoeveel voertuigen kunnen hier opgeladen worden?", + "de": "Wie viele Fahrzeuge können hier gleichzeitig geladen werden?" }, "freeform": { "key": "capacity", @@ -209,7 +228,8 @@ "ifnot": "socket:schuko=", "then": { "en": "Schuko wall plug without ground pin (CEE7/4 type F)", - "nl": "Schuko stekker zonder aardingspin (CEE7/4 type F)" + "nl": "Schuko stekker zonder aardingspin (CEE7/4 type F)", + "de": "Schuko-Stecker ohne Erdungsstift (CEE7/4 Typ F)" }, "icon": { "path": "./assets/layers/charging_station/CEE7_4F.svg", @@ -237,7 +257,8 @@ }, "then": { "en": "Schuko wall plug without ground pin (CEE7/4 type F)", - "nl": "Schuko stekker zonder aardingspin (CEE7/4 type F)" + "nl": "Schuko stekker zonder aardingspin (CEE7/4 type F)", + "de": "Schuko-Stecker ohne Erdungsstift (CEE7/4 Typ F)" }, "hideInAnswer": true, "icon": { @@ -250,7 +271,8 @@ "ifnot": "socket:typee=", "then": { "en": "European wall plug with ground pin (CEE7/4 type E)", - "nl": "Europese stekker met aardingspin (CEE7/4 type E)" + "nl": "Europese stekker met aardingspin (CEE7/4 type E)", + "de": "Europäischer Netzstecker mit Erdungsstift (CEE7/4 Typ E)" }, "icon": { "path": "./assets/layers/charging_station/TypeE.svg", @@ -266,7 +288,8 @@ }, "then": { "en": "European wall plug with ground pin (CEE7/4 type E)", - "nl": "Europese stekker met aardingspin (CEE7/4 type E)" + "nl": "Europese stekker met aardingspin (CEE7/4 type E)", + "de": "Europäischer Netzstecker mit Erdungsstift (CEE7/4 Typ E)" }, "hideInAnswer": true, "icon": { @@ -279,7 +302,9 @@ "ifnot": "socket:chademo=", "then": { "en": "Chademo", - "nl": "Chademo" + "nl": "Chademo", + "ca": "Chademo", + "de": "Chademo" }, "icon": { "path": "./assets/layers/charging_station/Chademo_type4.svg", @@ -321,7 +346,9 @@ }, "then": { "en": "Chademo", - "nl": "Chademo" + "nl": "Chademo", + "ca": "Chademo", + "de": "Chademo" }, "hideInAnswer": true, "icon": { @@ -334,7 +361,8 @@ "ifnot": "socket:type1_cable=", "then": { "en": "Type 1 with cable (J1772)", - "nl": "Type 1 met kabel (J1772)" + "nl": "Type 1 met kabel (J1772)", + "de": "Typ 1 mit Kabel (J1772)" }, "icon": { "path": "./assets/layers/charging_station/Type1_J1772.svg", @@ -376,7 +404,8 @@ }, "then": { "en": "Type 1 with cable (J1772)", - "nl": "Type 1 met kabel (J1772)" + "nl": "Type 1 met kabel (J1772)", + "de": "Typ 1 mit Kabel (J1772)" }, "hideInAnswer": true, "icon": { @@ -389,7 +418,8 @@ "ifnot": "socket:type1=", "then": { "en": "Type 1 without cable (J1772)", - "nl": "Type 1 zonder kabel (J1772)" + "nl": "Type 1 zonder kabel (J1772)", + "de": "Typ 1 ohne Kabel (J1772)" }, "icon": { "path": "./assets/layers/charging_station/Type1_J1772.svg", @@ -431,7 +461,8 @@ }, "then": { "en": "Type 1 without cable (J1772)", - "nl": "Type 1 zonder kabel (J1772)" + "nl": "Type 1 zonder kabel (J1772)", + "de": " Typ 1 ohne Kabel (J1772)" }, "hideInAnswer": true, "icon": { @@ -444,7 +475,8 @@ "ifnot": "socket:type1_combo=", "then": { "en": "Type 1 CCS (aka Type 1 Combo)", - "nl": "Type 1 CCS (ook gekend als Type 1 Combo)" + "nl": "Type 1 CCS (ook gekend als Type 1 Combo)", + "de": "Typ 1 CCS (auch bekannt als Typ 1 Combo)" }, "icon": { "path": "./assets/layers/charging_station/Type1-ccs.svg", @@ -486,7 +518,8 @@ }, "then": { "en": "Type 1 CCS (aka Type 1 Combo)", - "nl": "Type 1 CCS (ook gekend als Type 1 Combo)" + "nl": "Type 1 CCS (ook gekend als Type 1 Combo)", + "de": " Typ 1 CCS (auch bekannt als Typ 1 Combo)" }, "hideInAnswer": true, "icon": { @@ -499,7 +532,8 @@ "ifnot": "socket:tesla_supercharger=", "then": { "en": "Tesla Supercharger", - "nl": "Tesla Supercharger" + "nl": "Tesla Supercharger", + "de": "Tesla Supercharger" }, "icon": { "path": "./assets/layers/charging_station/Tesla-hpwc-model-s.svg", @@ -541,7 +575,8 @@ }, "then": { "en": "Tesla Supercharger", - "nl": "Tesla Supercharger" + "nl": "Tesla Supercharger", + "de": "Tesla Supercharger" }, "hideInAnswer": true, "icon": { @@ -554,7 +589,8 @@ "ifnot": "socket:type2=", "then": { "en": "Type 2 (mennekes)", - "nl": "Type 2 (mennekes)" + "nl": "Type 2 (mennekes)", + "de": "Typ 2 (mennekes)" }, "icon": { "path": "./assets/layers/charging_station/Type2_socket.svg", @@ -596,7 +632,8 @@ }, "then": { "en": "Type 2 (mennekes)", - "nl": "Type 2 (mennekes)" + "nl": "Type 2 (mennekes)", + "de": "Typ 2 (mennekes)" }, "hideInAnswer": true, "icon": { @@ -609,7 +646,8 @@ "ifnot": "socket:type2_combo=", "then": { "en": "Type 2 CCS (mennekes)", - "nl": "Type 2 CCS (mennekes)" + "nl": "Type 2 CCS (mennekes)", + "de": "Typ 2 CCS (mennekes)" }, "icon": { "path": "./assets/layers/charging_station/Type2_CCS.svg", @@ -651,7 +689,8 @@ }, "then": { "en": "Type 2 CCS (mennekes)", - "nl": "Type 2 CCS (mennekes)" + "nl": "Type 2 CCS (mennekes)", + "de": "Typ 2 CCS (mennekes)" }, "hideInAnswer": true, "icon": { @@ -664,7 +703,8 @@ "ifnot": "socket:type2_cable=", "then": { "en": "Type 2 with cable (mennekes)", - "nl": "Type 2 met kabel (J1772)" + "nl": "Type 2 met kabel (J1772)", + "de": "Typ 2 mit Kabel (mennekes)" }, "icon": { "path": "./assets/layers/charging_station/Type2_tethered.svg", @@ -706,7 +746,8 @@ }, "then": { "en": "Type 2 with cable (mennekes)", - "nl": "Type 2 met kabel (J1772)" + "nl": "Type 2 met kabel (J1772)", + "de": "Typ 2 mit Kabel (mennekes)" }, "hideInAnswer": true, "icon": { @@ -719,7 +760,8 @@ "ifnot": "socket:tesla_supercharger_ccs=", "then": { "en": "Tesla Supercharger CCS (a branded type2_css)", - "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo)" + "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo)", + "de": "Tesla Supercharger CCS (ein Markenzeichen von type2_css)" }, "icon": { "path": "./assets/layers/charging_station/Type2_CCS.svg", @@ -761,7 +803,8 @@ }, "then": { "en": "Tesla Supercharger CCS (a branded type2_css)", - "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo)" + "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo)", + "de": "Tesla Supercharger CCS (ein Markenzeichen von type2_css)" }, "hideInAnswer": true, "icon": { @@ -774,7 +817,8 @@ "ifnot": "socket:tesla_destination=", "then": { "en": "Tesla Supercharger (destination)", - "nl": "Tesla Supercharger (destination)" + "nl": "Tesla Supercharger (destination)", + "de": "Tesla Supercharger (Destination)" }, "icon": { "path": "./assets/layers/charging_station/Tesla-hpwc-model-s.svg", @@ -822,7 +866,8 @@ }, "then": { "en": "Tesla Supercharger (destination)", - "nl": "Tesla Supercharger (destination)" + "nl": "Tesla Supercharger (destination)", + "de": "Tesla Supercharger (Destination)" }, "hideInAnswer": true, "icon": { @@ -835,7 +880,8 @@ "ifnot": "socket:tesla_destination=", "then": { "en": "Tesla supercharger (destination) (A Type 2 with cable branded as tesla)", - "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)" + "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)", + "de": "Tesla supercharger (Destination) (Typ 2 mit Kabel von Tesla)" }, "icon": { "path": "./assets/layers/charging_station/Type2_tethered.svg", @@ -883,7 +929,8 @@ }, "then": { "en": "Tesla supercharger (destination) (A Type 2 with cable branded as tesla)", - "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)" + "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)", + "de": "Tesla supercharger (Destination) (Typ 2 mit Kabel von Tesla)" }, "hideInAnswer": true, "icon": { @@ -896,7 +943,8 @@ "ifnot": "socket:USB-A=", "then": { "en": "USB to charge phones and small electronics", - "nl": "USB om GSMs en kleine electronica op te laden" + "nl": "USB om GSMs en kleine electronica op te laden", + "de": "USB zum Aufladen von Handys und kleinen Elektrogeräten" }, "icon": { "path": "./assets/layers/charging_station/usb_port.svg", @@ -912,7 +960,8 @@ }, "then": { "en": "USB to charge phones and small electronics", - "nl": "USB om GSMs en kleine electronica op te laden" + "nl": "USB om GSMs en kleine electronica op te laden", + "de": "USB zum Aufladen von Handys und kleinen Elektrogeräten" }, "hideInAnswer": true, "icon": { @@ -925,7 +974,8 @@ "ifnot": "socket:bosch_3pin=", "then": { "en": "Bosch Active Connect with 3 pins and cable", - "nl": "Bosch Active Connect met 3 pinnen aan een kabel" + "nl": "Bosch Active Connect met 3 pinnen aan een kabel", + "de": "Bosch Active Connect mit 3 Pins und Kabel" }, "icon": { "path": "./assets/layers/charging_station/bosch-3pin.svg", @@ -963,7 +1013,8 @@ }, "then": { "en": "Bosch Active Connect with 3 pins and cable", - "nl": "Bosch Active Connect met 3 pinnen aan een kabel" + "nl": "Bosch Active Connect met 3 pinnen aan een kabel", + "de": " Bosch Active Connect mit 3 Pins und Kabel" }, "hideInAnswer": true, "icon": { @@ -976,7 +1027,8 @@ "ifnot": "socket:bosch_5pin=", "then": { "en": "Bosch Active Connect with 5 pins and cable", - "nl": "Bosch Active Connect met 5 pinnen aan een kabel" + "nl": "Bosch Active Connect met 5 pinnen aan een kabel", + "de": "Bosch Active Connect mit 5 Pins und Kabel" }, "icon": { "path": "./assets/layers/charging_station/bosch-5pin.svg", @@ -1014,7 +1066,8 @@ }, "then": { "en": "Bosch Active Connect with 5 pins and cable", - "nl": "Bosch Active Connect met 5 pinnen aan een kabel" + "nl": "Bosch Active Connect met 5 pinnen aan een kabel", + "de": " Bosch Active Connect mit 5 Pins und Kabel" }, "hideInAnswer": true, "icon": { @@ -1028,11 +1081,13 @@ "id": "plugs-0", "question": { "en": "How much plugs of type
Schuko wall plug without ground pin (CEE7/4 type F)
are available here?", - "nl": "Hoeveel stekkers van type
Schuko stekker zonder aardingspin (CEE7/4 type F)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Schuko stekker zonder aardingspin (CEE7/4 type F)
heeft dit oplaadpunt?", + "de": "Wie viele Stecker vom Typ
Schuko-Stecker ohne Erdungsstift (CEE7/4 Typ F)
sind hier vorhanden?" }, "render": { "en": "There are {socket:schuko} plugs of type
Schuko wall plug without ground pin (CEE7/4 type F)
available here", - "nl": "Hier zijn {socket:schuko} stekkers van het type
Schuko stekker zonder aardingspin (CEE7/4 type F)
" + "nl": "Hier zijn {socket:schuko} stekkers van het type
Schuko stekker zonder aardingspin (CEE7/4 type F)
", + "de": "Hier sind {socket:schuko} Stecker des Typs
Schuko-Stecker ohne Erdungsstift (CEE7/4 Typ F)
vorhanden" }, "freeform": { "key": "socket:schuko", @@ -1049,11 +1104,13 @@ "id": "plugs-1", "question": { "en": "How much plugs of type
European wall plug with ground pin (CEE7/4 type E)
are available here?", - "nl": "Hoeveel stekkers van type
Europese stekker met aardingspin (CEE7/4 type E)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Europese stekker met aardingspin (CEE7/4 type E)
heeft dit oplaadpunt?", + "de": "Wie viele Stecker des Typs
Europäischer Wandstecker mit Erdungsstift (CEE7/4 Typ E)
sind hier vorhanden?" }, "render": { "en": "There are {socket:typee} plugs of type
European wall plug with ground pin (CEE7/4 type E)
available here", - "nl": "Hier zijn {socket:typee} stekkers van het type
Europese stekker met aardingspin (CEE7/4 type E)
" + "nl": "Hier zijn {socket:typee} stekkers van het type
Europese stekker met aardingspin (CEE7/4 type E)
", + "de": "Hier sind {socket:typee} Stecker des Typs
Europäischer Wandstecker mit Erdungsstift (CEE7/4 Typ E)
vorhanden" }, "freeform": { "key": "socket:typee", @@ -1070,7 +1127,7 @@ "id": "plugs-2", "question": { "en": "How much plugs of type
Chademo
are available here?", - "nl": "Hoeveel stekkers van type
Chademo
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Chademo
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:chademo} plugs of type
Chademo
available here", @@ -1091,7 +1148,7 @@ "id": "plugs-3", "question": { "en": "How much plugs of type
Type 1 with cable (J1772)
are available here?", - "nl": "Hoeveel stekkers van type
Type 1 met kabel (J1772)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Type 1 met kabel (J1772)
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:type1_cable} plugs of type
Type 1 with cable (J1772)
available here", @@ -1112,7 +1169,7 @@ "id": "plugs-4", "question": { "en": "How much plugs of type
Type 1 without cable (J1772)
are available here?", - "nl": "Hoeveel stekkers van type
Type 1 zonder kabel (J1772)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Type 1 zonder kabel (J1772)
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:type1} plugs of type
Type 1 without cable (J1772)
available here", @@ -1133,7 +1190,7 @@ "id": "plugs-5", "question": { "en": "How much plugs of type
Type 1 CCS (aka Type 1 Combo)
are available here?", - "nl": "Hoeveel stekkers van type
Type 1 CCS (ook gekend als Type 1 Combo)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Type 1 CCS (ook gekend als Type 1 Combo)
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:type1_combo} plugs of type
Type 1 CCS (aka Type 1 Combo)
available here", @@ -1154,7 +1211,7 @@ "id": "plugs-6", "question": { "en": "How much plugs of type
Tesla Supercharger
are available here?", - "nl": "Hoeveel stekkers van type
Tesla Supercharger
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Tesla Supercharger
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:tesla_supercharger} plugs of type
Tesla Supercharger
available here", @@ -1175,7 +1232,7 @@ "id": "plugs-7", "question": { "en": "How much plugs of type
Type 2 (mennekes)
are available here?", - "nl": "Hoeveel stekkers van type
Type 2 (mennekes)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Type 2 (mennekes)
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:type2} plugs of type
Type 2 (mennekes)
available here", @@ -1196,7 +1253,7 @@ "id": "plugs-8", "question": { "en": "How much plugs of type
Type 2 CCS (mennekes)
are available here?", - "nl": "Hoeveel stekkers van type
Type 2 CCS (mennekes)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Type 2 CCS (mennekes)
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:type2_combo} plugs of type
Type 2 CCS (mennekes)
available here", @@ -1217,7 +1274,7 @@ "id": "plugs-9", "question": { "en": "How much plugs of type
Type 2 with cable (mennekes)
are available here?", - "nl": "Hoeveel stekkers van type
Type 2 met kabel (J1772)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Type 2 met kabel (J1772)
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:type2_cable} plugs of type
Type 2 with cable (mennekes)
available here", @@ -1238,7 +1295,7 @@ "id": "plugs-10", "question": { "en": "How much plugs of type
Tesla Supercharger CCS (a branded type2_css)
are available here?", - "nl": "Hoeveel stekkers van type
Tesla Supercharger CCS (een type2 CCS met Tesla-logo)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Tesla Supercharger CCS (een type2 CCS met Tesla-logo)
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:tesla_supercharger_ccs} plugs of type
Tesla Supercharger CCS (a branded type2_css)
available here", @@ -1259,7 +1316,7 @@ "id": "plugs-11", "question": { "en": "How much plugs of type
Tesla Supercharger (destination)
are available here?", - "nl": "Hoeveel stekkers van type
Tesla Supercharger (destination)
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Tesla Supercharger (destination)
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:tesla_destination} plugs of type
Tesla Supercharger (destination)
available here", @@ -1284,7 +1341,7 @@ }, "render": { "en": "There are {socket:tesla_destination} plugs of type
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
available here", - "nl": "Hier zijn {socket:tesla_destination} stekkers van het type
Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)
" + "nl": "Hier zijn {socket:tesla_destination} stekkers van het type
Tesla supercharger (destination) (Een Type 2 met kabel en Tesla-logo)
" }, "freeform": { "key": "socket:tesla_destination", @@ -1301,7 +1358,7 @@ "id": "plugs-13", "question": { "en": "How much plugs of type
USB to charge phones and small electronics
are available here?", - "nl": "Hoeveel stekkers van type
USB om GSMs en kleine electronica op te laden
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
USB om GSMs en kleine electronica op te laden
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:USB-A} plugs of type
USB to charge phones and small electronics
available here", @@ -1322,7 +1379,7 @@ "id": "plugs-14", "question": { "en": "How much plugs of type
Bosch Active Connect with 3 pins and cable
are available here?", - "nl": "Hoeveel stekkers van type
Bosch Active Connect met 3 pinnen aan een kabel
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Bosch Active Connect met 3 pinnen aan een kabel
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:bosch_3pin} plugs of type
Bosch Active Connect with 3 pins and cable
available here", @@ -1343,7 +1400,7 @@ "id": "plugs-15", "question": { "en": "How much plugs of type
Bosch Active Connect with 5 pins and cable
are available here?", - "nl": "Hoeveel stekkers van type
Bosch Active Connect met 5 pinnen aan een kabel
heeft dit oplaadpunt?" + "nl": "Hoeveel stekkers van type
Bosch Active Connect met 5 pinnen aan een kabel
heeft dit oplaadpunt?" }, "render": { "en": "There are {socket:bosch_5pin} plugs of type
Bosch Active Connect with 5 pins and cable
available here", @@ -1377,7 +1434,7 @@ }, "mappings": [ { - "if": "socket:socket:schuko:voltage=230 V", + "if": "socket:schuko:voltage=230 V", "then": { "en": "Schuko wall plug without ground pin (CEE7/4 type F) outputs 230 volt", "nl": "Schuko stekker zonder aardingspin (CEE7/4 type F) heeft een spanning van 230 volt" @@ -1412,7 +1469,7 @@ }, "mappings": [ { - "if": "socket:socket:schuko:current=16 A", + "if": "socket:schuko:current=16 A", "then": { "en": "Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 16 A", "nl": "Schuko stekker zonder aardingspin (CEE7/4 type F) levert een stroom van maximaal 16 A" @@ -1447,7 +1504,7 @@ }, "mappings": [ { - "if": "socket:socket:schuko:output=3.6 kw", + "if": "socket:schuko:output=3.6 kw", "then": { "en": "Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 3.6 kw A", "nl": "Schuko stekker zonder aardingspin (CEE7/4 type F) levert een vermogen van maximaal 3.6 kw A" @@ -1482,7 +1539,7 @@ }, "mappings": [ { - "if": "socket:socket:typee:voltage=230 V", + "if": "socket:typee:voltage=230 V", "then": { "en": "European wall plug with ground pin (CEE7/4 type E) outputs 230 volt", "nl": "Europese stekker met aardingspin (CEE7/4 type E) heeft een spanning van 230 volt" @@ -1517,7 +1574,7 @@ }, "mappings": [ { - "if": "socket:socket:typee:current=16 A", + "if": "socket:typee:current=16 A", "then": { "en": "European wall plug with ground pin (CEE7/4 type E) outputs at most 16 A", "nl": "Europese stekker met aardingspin (CEE7/4 type E) levert een stroom van maximaal 16 A" @@ -1552,7 +1609,7 @@ }, "mappings": [ { - "if": "socket:socket:typee:output=3 kw", + "if": "socket:typee:output=3 kw", "then": { "en": "European wall plug with ground pin (CEE7/4 type E) outputs at most 3 kw A", "nl": "Europese stekker met aardingspin (CEE7/4 type E) levert een vermogen van maximaal 3 kw A" @@ -1563,7 +1620,7 @@ } }, { - "if": "socket:socket:typee:output=22 kw", + "if": "socket:typee:output=22 kw", "then": { "en": "European wall plug with ground pin (CEE7/4 type E) outputs at most 22 kw A", "nl": "Europese stekker met aardingspin (CEE7/4 type E) levert een vermogen van maximaal 22 kw A" @@ -1598,7 +1655,7 @@ }, "mappings": [ { - "if": "socket:socket:chademo:voltage=500 V", + "if": "socket:chademo:voltage=500 V", "then": { "en": "Chademo outputs 500 volt", "nl": "Chademo heeft een spanning van 500 volt" @@ -1633,7 +1690,7 @@ }, "mappings": [ { - "if": "socket:socket:chademo:current=120 A", + "if": "socket:chademo:current=120 A", "then": { "en": "Chademo outputs at most 120 A", "nl": "Chademo levert een stroom van maximaal 120 A" @@ -1668,7 +1725,7 @@ }, "mappings": [ { - "if": "socket:socket:chademo:output=50 kw", + "if": "socket:chademo:output=50 kw", "then": { "en": "Chademo outputs at most 50 kw A", "nl": "Chademo levert een vermogen van maximaal 50 kw A" @@ -1703,7 +1760,7 @@ }, "mappings": [ { - "if": "socket:socket:type1_cable:voltage=200 V", + "if": "socket:type1_cable:voltage=200 V", "then": { "en": "Type 1 with cable (J1772) outputs 200 volt", "nl": "Type 1 met kabel (J1772) heeft een spanning van 200 volt" @@ -1714,7 +1771,7 @@ } }, { - "if": "socket:socket:type1_cable:voltage=240 V", + "if": "socket:type1_cable:voltage=240 V", "then": { "en": "Type 1 with cable (J1772) outputs 240 volt", "nl": "Type 1 met kabel (J1772) heeft een spanning van 240 volt" @@ -1749,7 +1806,7 @@ }, "mappings": [ { - "if": "socket:socket:type1_cable:current=32 A", + "if": "socket:type1_cable:current=32 A", "then": { "en": "Type 1 with cable (J1772) outputs at most 32 A", "nl": "Type 1 met kabel (J1772) levert een stroom van maximaal 32 A" @@ -1784,7 +1841,7 @@ }, "mappings": [ { - "if": "socket:socket:type1_cable:output=3.7 kw", + "if": "socket:type1_cable:output=3.7 kw", "then": { "en": "Type 1 with cable (J1772) outputs at most 3.7 kw A", "nl": "Type 1 met kabel (J1772) levert een vermogen van maximaal 3.7 kw A" @@ -1795,7 +1852,7 @@ } }, { - "if": "socket:socket:type1_cable:output=7 kw", + "if": "socket:type1_cable:output=7 kw", "then": { "en": "Type 1 with cable (J1772) outputs at most 7 kw A", "nl": "Type 1 met kabel (J1772) levert een vermogen van maximaal 7 kw A" @@ -1830,7 +1887,7 @@ }, "mappings": [ { - "if": "socket:socket:type1:voltage=200 V", + "if": "socket:type1:voltage=200 V", "then": { "en": "Type 1 without cable (J1772) outputs 200 volt", "nl": "Type 1 zonder kabel (J1772) heeft een spanning van 200 volt" @@ -1841,7 +1898,7 @@ } }, { - "if": "socket:socket:type1:voltage=240 V", + "if": "socket:type1:voltage=240 V", "then": { "en": "Type 1 without cable (J1772) outputs 240 volt", "nl": "Type 1 zonder kabel (J1772) heeft een spanning van 240 volt" @@ -1876,7 +1933,7 @@ }, "mappings": [ { - "if": "socket:socket:type1:current=32 A", + "if": "socket:type1:current=32 A", "then": { "en": "Type 1 without cable (J1772) outputs at most 32 A", "nl": "Type 1 zonder kabel (J1772) levert een stroom van maximaal 32 A" @@ -1911,7 +1968,7 @@ }, "mappings": [ { - "if": "socket:socket:type1:output=3.7 kw", + "if": "socket:type1:output=3.7 kw", "then": { "en": "Type 1 without cable (J1772) outputs at most 3.7 kw A", "nl": "Type 1 zonder kabel (J1772) levert een vermogen van maximaal 3.7 kw A" @@ -1922,7 +1979,7 @@ } }, { - "if": "socket:socket:type1:output=6.6 kw", + "if": "socket:type1:output=6.6 kw", "then": { "en": "Type 1 without cable (J1772) outputs at most 6.6 kw A", "nl": "Type 1 zonder kabel (J1772) levert een vermogen van maximaal 6.6 kw A" @@ -1933,7 +1990,7 @@ } }, { - "if": "socket:socket:type1:output=7 kw", + "if": "socket:type1:output=7 kw", "then": { "en": "Type 1 without cable (J1772) outputs at most 7 kw A", "nl": "Type 1 zonder kabel (J1772) levert een vermogen van maximaal 7 kw A" @@ -1944,7 +2001,7 @@ } }, { - "if": "socket:socket:type1:output=7.2 kw", + "if": "socket:type1:output=7.2 kw", "then": { "en": "Type 1 without cable (J1772) outputs at most 7.2 kw A", "nl": "Type 1 zonder kabel (J1772) levert een vermogen van maximaal 7.2 kw A" @@ -1979,7 +2036,7 @@ }, "mappings": [ { - "if": "socket:socket:type1_combo:voltage=400 V", + "if": "socket:type1_combo:voltage=400 V", "then": { "en": "Type 1 CCS (aka Type 1 Combo) outputs 400 volt", "nl": "Type 1 CCS (ook gekend als Type 1 Combo) heeft een spanning van 400 volt" @@ -1990,7 +2047,7 @@ } }, { - "if": "socket:socket:type1_combo:voltage=1000 V", + "if": "socket:type1_combo:voltage=1000 V", "then": { "en": "Type 1 CCS (aka Type 1 Combo) outputs 1000 volt", "nl": "Type 1 CCS (ook gekend als Type 1 Combo) heeft een spanning van 1000 volt" @@ -2025,7 +2082,7 @@ }, "mappings": [ { - "if": "socket:socket:type1_combo:current=50 A", + "if": "socket:type1_combo:current=50 A", "then": { "en": "Type 1 CCS (aka Type 1 Combo) outputs at most 50 A", "nl": "Type 1 CCS (ook gekend als Type 1 Combo) levert een stroom van maximaal 50 A" @@ -2036,7 +2093,7 @@ } }, { - "if": "socket:socket:type1_combo:current=125 A", + "if": "socket:type1_combo:current=125 A", "then": { "en": "Type 1 CCS (aka Type 1 Combo) outputs at most 125 A", "nl": "Type 1 CCS (ook gekend als Type 1 Combo) levert een stroom van maximaal 125 A" @@ -2071,7 +2128,7 @@ }, "mappings": [ { - "if": "socket:socket:type1_combo:output=50 kw", + "if": "socket:type1_combo:output=50 kw", "then": { "en": "Type 1 CCS (aka Type 1 Combo) outputs at most 50 kw A", "nl": "Type 1 CCS (ook gekend als Type 1 Combo) levert een vermogen van maximaal 50 kw A" @@ -2082,7 +2139,7 @@ } }, { - "if": "socket:socket:type1_combo:output=62.5 kw", + "if": "socket:type1_combo:output=62.5 kw", "then": { "en": "Type 1 CCS (aka Type 1 Combo) outputs at most 62.5 kw A", "nl": "Type 1 CCS (ook gekend als Type 1 Combo) levert een vermogen van maximaal 62.5 kw A" @@ -2093,7 +2150,7 @@ } }, { - "if": "socket:socket:type1_combo:output=150 kw", + "if": "socket:type1_combo:output=150 kw", "then": { "en": "Type 1 CCS (aka Type 1 Combo) outputs at most 150 kw A", "nl": "Type 1 CCS (ook gekend als Type 1 Combo) levert een vermogen van maximaal 150 kw A" @@ -2104,7 +2161,7 @@ } }, { - "if": "socket:socket:type1_combo:output=350 kw", + "if": "socket:type1_combo:output=350 kw", "then": { "en": "Type 1 CCS (aka Type 1 Combo) outputs at most 350 kw A", "nl": "Type 1 CCS (ook gekend als Type 1 Combo) levert een vermogen van maximaal 350 kw A" @@ -2139,7 +2196,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_supercharger:voltage=480 V", + "if": "socket:tesla_supercharger:voltage=480 V", "then": { "en": "Tesla Supercharger outputs 480 volt", "nl": "Tesla Supercharger heeft een spanning van 480 volt" @@ -2174,7 +2231,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_supercharger:current=125 A", + "if": "socket:tesla_supercharger:current=125 A", "then": { "en": "Tesla Supercharger outputs at most 125 A", "nl": "Tesla Supercharger levert een stroom van maximaal 125 A" @@ -2185,7 +2242,7 @@ } }, { - "if": "socket:socket:tesla_supercharger:current=350 A", + "if": "socket:tesla_supercharger:current=350 A", "then": { "en": "Tesla Supercharger outputs at most 350 A", "nl": "Tesla Supercharger levert een stroom van maximaal 350 A" @@ -2220,7 +2277,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_supercharger:output=120 kw", + "if": "socket:tesla_supercharger:output=120 kw", "then": { "en": "Tesla Supercharger outputs at most 120 kw A", "nl": "Tesla Supercharger levert een vermogen van maximaal 120 kw A" @@ -2231,7 +2288,7 @@ } }, { - "if": "socket:socket:tesla_supercharger:output=150 kw", + "if": "socket:tesla_supercharger:output=150 kw", "then": { "en": "Tesla Supercharger outputs at most 150 kw A", "nl": "Tesla Supercharger levert een vermogen van maximaal 150 kw A" @@ -2242,7 +2299,7 @@ } }, { - "if": "socket:socket:tesla_supercharger:output=250 kw", + "if": "socket:tesla_supercharger:output=250 kw", "then": { "en": "Tesla Supercharger outputs at most 250 kw A", "nl": "Tesla Supercharger levert een vermogen van maximaal 250 kw A" @@ -2277,7 +2334,7 @@ }, "mappings": [ { - "if": "socket:socket:type2:voltage=230 V", + "if": "socket:type2:voltage=230 V", "then": { "en": "Type 2 (mennekes) outputs 230 volt", "nl": "Type 2 (mennekes) heeft een spanning van 230 volt" @@ -2288,7 +2345,7 @@ } }, { - "if": "socket:socket:type2:voltage=400 V", + "if": "socket:type2:voltage=400 V", "then": { "en": "Type 2 (mennekes) outputs 400 volt", "nl": "Type 2 (mennekes) heeft een spanning van 400 volt" @@ -2323,7 +2380,7 @@ }, "mappings": [ { - "if": "socket:socket:type2:current=16 A", + "if": "socket:type2:current=16 A", "then": { "en": "Type 2 (mennekes) outputs at most 16 A", "nl": "Type 2 (mennekes) levert een stroom van maximaal 16 A" @@ -2334,7 +2391,7 @@ } }, { - "if": "socket:socket:type2:current=32 A", + "if": "socket:type2:current=32 A", "then": { "en": "Type 2 (mennekes) outputs at most 32 A", "nl": "Type 2 (mennekes) levert een stroom van maximaal 32 A" @@ -2369,7 +2426,7 @@ }, "mappings": [ { - "if": "socket:socket:type2:output=11 kw", + "if": "socket:type2:output=11 kw", "then": { "en": "Type 2 (mennekes) outputs at most 11 kw A", "nl": "Type 2 (mennekes) levert een vermogen van maximaal 11 kw A" @@ -2380,7 +2437,7 @@ } }, { - "if": "socket:socket:type2:output=22 kw", + "if": "socket:type2:output=22 kw", "then": { "en": "Type 2 (mennekes) outputs at most 22 kw A", "nl": "Type 2 (mennekes) levert een vermogen van maximaal 22 kw A" @@ -2415,7 +2472,7 @@ }, "mappings": [ { - "if": "socket:socket:type2_combo:voltage=500 V", + "if": "socket:type2_combo:voltage=500 V", "then": { "en": "Type 2 CCS (mennekes) outputs 500 volt", "nl": "Type 2 CCS (mennekes) heeft een spanning van 500 volt" @@ -2426,7 +2483,7 @@ } }, { - "if": "socket:socket:type2_combo:voltage=920 V", + "if": "socket:type2_combo:voltage=920 V", "then": { "en": "Type 2 CCS (mennekes) outputs 920 volt", "nl": "Type 2 CCS (mennekes) heeft een spanning van 920 volt" @@ -2461,7 +2518,7 @@ }, "mappings": [ { - "if": "socket:socket:type2_combo:current=125 A", + "if": "socket:type2_combo:current=125 A", "then": { "en": "Type 2 CCS (mennekes) outputs at most 125 A", "nl": "Type 2 CCS (mennekes) levert een stroom van maximaal 125 A" @@ -2472,7 +2529,7 @@ } }, { - "if": "socket:socket:type2_combo:current=350 A", + "if": "socket:type2_combo:current=350 A", "then": { "en": "Type 2 CCS (mennekes) outputs at most 350 A", "nl": "Type 2 CCS (mennekes) levert een stroom van maximaal 350 A" @@ -2507,7 +2564,7 @@ }, "mappings": [ { - "if": "socket:socket:type2_combo:output=50 kw", + "if": "socket:type2_combo:output=50 kw", "then": { "en": "Type 2 CCS (mennekes) outputs at most 50 kw A", "nl": "Type 2 CCS (mennekes) levert een vermogen van maximaal 50 kw A" @@ -2542,7 +2599,7 @@ }, "mappings": [ { - "if": "socket:socket:type2_cable:voltage=230 V", + "if": "socket:type2_cable:voltage=230 V", "then": { "en": "Type 2 with cable (mennekes) outputs 230 volt", "nl": "Type 2 met kabel (J1772) heeft een spanning van 230 volt" @@ -2553,7 +2610,7 @@ } }, { - "if": "socket:socket:type2_cable:voltage=400 V", + "if": "socket:type2_cable:voltage=400 V", "then": { "en": "Type 2 with cable (mennekes) outputs 400 volt", "nl": "Type 2 met kabel (J1772) heeft een spanning van 400 volt" @@ -2588,7 +2645,7 @@ }, "mappings": [ { - "if": "socket:socket:type2_cable:current=16 A", + "if": "socket:type2_cable:current=16 A", "then": { "en": "Type 2 with cable (mennekes) outputs at most 16 A", "nl": "Type 2 met kabel (J1772) levert een stroom van maximaal 16 A" @@ -2599,7 +2656,7 @@ } }, { - "if": "socket:socket:type2_cable:current=32 A", + "if": "socket:type2_cable:current=32 A", "then": { "en": "Type 2 with cable (mennekes) outputs at most 32 A", "nl": "Type 2 met kabel (J1772) levert een stroom van maximaal 32 A" @@ -2634,7 +2691,7 @@ }, "mappings": [ { - "if": "socket:socket:type2_cable:output=11 kw", + "if": "socket:type2_cable:output=11 kw", "then": { "en": "Type 2 with cable (mennekes) outputs at most 11 kw A", "nl": "Type 2 met kabel (J1772) levert een vermogen van maximaal 11 kw A" @@ -2645,7 +2702,7 @@ } }, { - "if": "socket:socket:type2_cable:output=22 kw", + "if": "socket:type2_cable:output=22 kw", "then": { "en": "Type 2 with cable (mennekes) outputs at most 22 kw A", "nl": "Type 2 met kabel (J1772) levert een vermogen van maximaal 22 kw A" @@ -2680,7 +2737,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_supercharger_ccs:voltage=500 V", + "if": "socket:tesla_supercharger_ccs:voltage=500 V", "then": { "en": "Tesla Supercharger CCS (a branded type2_css) outputs 500 volt", "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo) heeft een spanning van 500 volt" @@ -2691,7 +2748,7 @@ } }, { - "if": "socket:socket:tesla_supercharger_ccs:voltage=920 V", + "if": "socket:tesla_supercharger_ccs:voltage=920 V", "then": { "en": "Tesla Supercharger CCS (a branded type2_css) outputs 920 volt", "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo) heeft een spanning van 920 volt" @@ -2726,7 +2783,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_supercharger_ccs:current=125 A", + "if": "socket:tesla_supercharger_ccs:current=125 A", "then": { "en": "Tesla Supercharger CCS (a branded type2_css) outputs at most 125 A", "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo) levert een stroom van maximaal 125 A" @@ -2737,7 +2794,7 @@ } }, { - "if": "socket:socket:tesla_supercharger_ccs:current=350 A", + "if": "socket:tesla_supercharger_ccs:current=350 A", "then": { "en": "Tesla Supercharger CCS (a branded type2_css) outputs at most 350 A", "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo) levert een stroom van maximaal 350 A" @@ -2772,7 +2829,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_supercharger_ccs:output=50 kw", + "if": "socket:tesla_supercharger_ccs:output=50 kw", "then": { "en": "Tesla Supercharger CCS (a branded type2_css) outputs at most 50 kw A", "nl": "Tesla Supercharger CCS (een type2 CCS met Tesla-logo) levert een vermogen van maximaal 50 kw A" @@ -2807,7 +2864,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_destination:voltage=480 V", + "if": "socket:tesla_destination:voltage=480 V", "then": { "en": "Tesla Supercharger (destination) outputs 480 volt", "nl": "Tesla Supercharger (destination) heeft een spanning van 480 volt" @@ -2842,7 +2899,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_destination:current=125 A", + "if": "socket:tesla_destination:current=125 A", "then": { "en": "Tesla Supercharger (destination) outputs at most 125 A", "nl": "Tesla Supercharger (destination) levert een stroom van maximaal 125 A" @@ -2853,7 +2910,7 @@ } }, { - "if": "socket:socket:tesla_destination:current=350 A", + "if": "socket:tesla_destination:current=350 A", "then": { "en": "Tesla Supercharger (destination) outputs at most 350 A", "nl": "Tesla Supercharger (destination) levert een stroom van maximaal 350 A" @@ -2888,7 +2945,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_destination:output=120 kw", + "if": "socket:tesla_destination:output=120 kw", "then": { "en": "Tesla Supercharger (destination) outputs at most 120 kw A", "nl": "Tesla Supercharger (destination) levert een vermogen van maximaal 120 kw A" @@ -2899,7 +2956,7 @@ } }, { - "if": "socket:socket:tesla_destination:output=150 kw", + "if": "socket:tesla_destination:output=150 kw", "then": { "en": "Tesla Supercharger (destination) outputs at most 150 kw A", "nl": "Tesla Supercharger (destination) levert een vermogen van maximaal 150 kw A" @@ -2910,7 +2967,7 @@ } }, { - "if": "socket:socket:tesla_destination:output=250 kw", + "if": "socket:tesla_destination:output=250 kw", "then": { "en": "Tesla Supercharger (destination) outputs at most 250 kw A", "nl": "Tesla Supercharger (destination) levert een vermogen van maximaal 250 kw A" @@ -2933,11 +2990,12 @@ "group": "technical", "question": { "en": "What voltage do the plugs with
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
offer?", - "nl": "Welke spanning levert de stekker van type
Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)
" + "nl": "Welke spanning levert de stekker van type
Tesla supercharger (destination). (Een Type 2 met kabel en Tesla-logo)
?" }, "render": { "en": "
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
outputs {socket:tesla_destination:voltage} volt", - "nl": "
Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)
heeft een spanning van {socket:tesla_destination:voltage} volt" + "nl": "
Tesla supercharger (destination). (Een Type 2 met kabel en Tesla-logo)
heeft een spanning van {socket:tesla_destination:voltage} volt", + "de": "
Tesla Supercharger (Destination) (Typ 2 mit Kabel von Tesla)
liefert {socket:tesla_destination:voltage} Volt" }, "freeform": { "key": "socket:tesla_destination:voltage", @@ -2945,7 +3003,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_destination:voltage=230 V", + "if": "socket:tesla_destination:voltage=230 V", "then": { "en": "Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 230 volt", "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo) heeft een spanning van 230 volt" @@ -2956,7 +3014,7 @@ } }, { - "if": "socket:socket:tesla_destination:voltage=400 V", + "if": "socket:tesla_destination:voltage=400 V", "then": { "en": "Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 400 volt", "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo) heeft een spanning van 400 volt" @@ -2991,7 +3049,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_destination:current=16 A", + "if": "socket:tesla_destination:current=16 A", "then": { "en": "Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 16 A", "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo) levert een stroom van maximaal 16 A" @@ -3002,7 +3060,7 @@ } }, { - "if": "socket:socket:tesla_destination:current=32 A", + "if": "socket:tesla_destination:current=32 A", "then": { "en": "Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 32 A", "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo) levert een stroom van maximaal 32 A" @@ -3025,11 +3083,11 @@ "group": "technical", "question": { "en": "What power output does a single plug of type
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
offer?", - "nl": "Welk vermogen levert een enkele stekker van type
Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)
?" + "nl": "Welk vermogen levert een enkele stekker van type
Tesla supercharger (destination) (Een Type 2 met kabel en Tesla-logo)
?" }, "render": { "en": "
Tesla supercharger (destination) (A Type 2 with cable branded as tesla)
outputs at most {socket:tesla_destination:output}", - "nl": "
Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo)
levert een vermogen van maximaal {socket:tesla_destination:output}" + "nl": "
Tesla supercharger (destination) (Een Type 2 met kabel en Tesla-logo)
levert een vermogen van maximaal {socket:tesla_destination:output}" }, "freeform": { "key": "socket:tesla_destination:output", @@ -3037,7 +3095,7 @@ }, "mappings": [ { - "if": "socket:socket:tesla_destination:output=11 kw", + "if": "socket:tesla_destination:output=11 kw", "then": { "en": "Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 11 kw A", "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo) levert een vermogen van maximaal 11 kw A" @@ -3048,7 +3106,7 @@ } }, { - "if": "socket:socket:tesla_destination:output=22 kw", + "if": "socket:tesla_destination:output=22 kw", "then": { "en": "Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 22 kw A", "nl": "Tesla supercharger (destination (Een Type 2 met kabel en Tesla-logo) levert een vermogen van maximaal 22 kw A" @@ -3071,11 +3129,13 @@ "group": "technical", "question": { "en": "What voltage do the plugs with
USB to charge phones and small electronics
offer?", - "nl": "Welke spanning levert de stekker van type
USB om GSMs en kleine electronica op te laden
" + "nl": "Welke spanning levert de stekker van type
USB om GSMs en kleine electronica op te laden
", + "de": "Welche Spannung liefern die Stecker mit
USB zum Laden von Handys und kleinen Elektrogeräten
?" }, "render": { "en": "
USB to charge phones and small electronics
outputs {socket:USB-A:voltage} volt", - "nl": "
USB om GSMs en kleine electronica op te laden
heeft een spanning van {socket:USB-A:voltage} volt" + "nl": "
USB om GSMs en kleine electronica op te laden
heeft een spanning van {socket:USB-A:voltage} volt", + "de": "
USB zum Aufladen von Telefonen und kleinen Elektrogeräten
liefert {socket:USB-A:voltage} Volt" }, "freeform": { "key": "socket:USB-A:voltage", @@ -3083,10 +3143,11 @@ }, "mappings": [ { - "if": "socket:socket:USB-A:voltage=5 V", + "if": "socket:USB-A:voltage=5 V", "then": { "en": "USB to charge phones and small electronics outputs 5 volt", - "nl": "USB om GSMs en kleine electronica op te laden heeft een spanning van 5 volt" + "nl": "USB om GSMs en kleine electronica op te laden heeft een spanning van 5 volt", + "de": "USB zum Aufladen von Handys und kleinen Elektrogeräten liefert 5 Volt" }, "icon": { "path": "./assets/layers/charging_station/usb_port.svg", @@ -3118,7 +3179,7 @@ }, "mappings": [ { - "if": "socket:socket:USB-A:current=1 A", + "if": "socket:USB-A:current=1 A", "then": { "en": "USB to charge phones and small electronics outputs at most 1 A", "nl": "USB om GSMs en kleine electronica op te laden levert een stroom van maximaal 1 A" @@ -3129,7 +3190,7 @@ } }, { - "if": "socket:socket:USB-A:current=2 A", + "if": "socket:USB-A:current=2 A", "then": { "en": "USB to charge phones and small electronics outputs at most 2 A", "nl": "USB om GSMs en kleine electronica op te laden levert een stroom van maximaal 2 A" @@ -3164,7 +3225,7 @@ }, "mappings": [ { - "if": "socket:socket:USB-A:output=5w", + "if": "socket:USB-A:output=5w", "then": { "en": "USB to charge phones and small electronics outputs at most 5w A", "nl": "USB om GSMs en kleine electronica op te laden levert een vermogen van maximaal 5w A" @@ -3175,7 +3236,7 @@ } }, { - "if": "socket:socket:USB-A:output=10w", + "if": "socket:USB-A:output=10w", "then": { "en": "USB to charge phones and small electronics outputs at most 10w A", "nl": "USB om GSMs en kleine electronica op te laden levert een vermogen van maximaal 10w A" @@ -3198,7 +3259,8 @@ "group": "technical", "question": { "en": "What voltage do the plugs with
Bosch Active Connect with 3 pins and cable
offer?", - "nl": "Welke spanning levert de stekker van type
Bosch Active Connect met 3 pinnen aan een kabel
" + "nl": "Welke spanning levert de stekker van type
Bosch Active Connect met 3 pinnen aan een kabel
", + "de": "Welche Spannung bieten die Stecker mit
Bosch Active Connect mit 3 Pins und Kabel
?" }, "render": { "en": "
Bosch Active Connect with 3 pins and cable
outputs {socket:bosch_3pin:voltage} volt", @@ -3350,7 +3412,7 @@ "then": { "en": "24/7 opened (including holidays)", "nl": "24/7 open - ook tijdens vakanties", - "de": "durchgehend geöffnet (einschließlich Feiertage)", + "de": "Die Station ist durchgehend geöffnet (einschließlich Feiertage)", "es": "Abre 24/7 (incluidos días festivos)" } } @@ -3360,21 +3422,10 @@ "id": "fee", "question": { "en": "Does one have to pay to use this charging station?", - "nl": "Moet men betalen om dit oplaadpunt te gebruiken?" + "nl": "Moet men betalen om dit oplaadpunt te gebruiken?", + "de": "Muss man für die Nutzung dieser Ladestation bezahlen?" }, "mappings": [ - { - "if": { - "and": [ - "fee=no" - ] - }, - "then": { - "nl": "Gratis te gebruiken", - "en": "Free to use" - }, - "hideInAnswer": true - }, { "if": { "and": [ @@ -3386,7 +3437,8 @@ }, "then": { "nl": "Gratis te gebruiken (zonder aan te melden)", - "en": "Free to use (without authenticating)" + "en": "Free to use (without authenticating)", + "de": "Kostenlos nutzbar (ohne Authentifizierung)" } }, { @@ -3400,9 +3452,23 @@ }, "then": { "nl": "Gratis te gebruiken, maar aanmelden met een applicatie is verplicht", - "en": "Free to use, but one has to authenticate" + "en": "Free to use, but one has to authenticate", + "de": "Kostenlose Nutzung, aber man muss sich authentifizieren" } }, + { + "if": { + "and": [ + "fee=no" + ] + }, + "then": { + "nl": "Gratis te gebruiken", + "en": "Free to use", + "de": "Kostenlose Nutzung" + }, + "hideInAnswer": true + }, { "if": { "and": [ @@ -3412,7 +3478,8 @@ }, "then": { "nl": "Betalend te gebruiken, maar gratis voor klanten van het bijhorende hotel/café/ziekenhuis/...", - "en": "Paid use, but free for customers of the hotel/pub/hospital/... who operates the charging station" + "en": "Paid use, but free for customers of the hotel/pub/hospital/... who operates the charging station", + "de": "Kostenpflichtige Nutzung, aber kostenlos für Kunden des Hotels / Pub / Krankenhauses / ... wer die Ladestation betreibt" } }, { @@ -3424,7 +3491,8 @@ }, "then": { "nl": "Betalend", - "en": "Paid use" + "en": "Paid use", + "de": "Nutzung gebührenpflichtig" } } ] @@ -3433,11 +3501,13 @@ "id": "charge", "question": { "en": "How much does one have to pay to use this charging station?", - "nl": "Hoeveel moet men betalen om dit oplaadpunt te gebruiken?" + "nl": "Hoeveel moet men betalen om dit oplaadpunt te gebruiken?", + "de": "Wie viel muss man für die Nutzung dieser Ladestation bezahlen?" }, "render": { "en": "Using this charging station costs {charge}", - "nl": "Dit oplaadpunt gebruiken kost {charge}" + "nl": "Dit oplaadpunt gebruiken kost {charge}", + "de": "Die Nutzung dieser Ladestation kostet {charge}" }, "freeform": { "key": "charge" @@ -3565,11 +3635,13 @@ "id": "Auth phone", "render": { "en": "Authenticate by calling or SMS'ing to {authentication:phone_call:number}", - "nl": "Aanmelden door te bellen of te SMS'en naar {authentication:phone_call:number}" + "nl": "Aanmelden door te bellen of te SMS'en naar {authentication:phone_call:number}", + "de": "Authentifizierung durch Anruf oder SMS an {authentication:phone_call:number}" }, "question": { "en": "What's the phone number for authentication call or SMS?", - "nl": "Wat is het telefoonnummer dat men moet bellen of SMS'en om zich aan te melden?" + "nl": "Wat is het telefoonnummer dat men moet bellen of SMS'en om zich aan te melden?", + "de": "Wie lautet die Telefonnummer für den Authentifizierungsanruf oder die SMS?" }, "freeform": { "key": "authentication:phone_call:number", @@ -3586,21 +3658,24 @@ "id": "maxstay", "question": { "en": "What is the maximum amount of time one is allowed to stay here?", - "nl": "Hoelang mag een voertuig hier blijven staan?" + "nl": "Hoelang mag een voertuig hier blijven staan?", + "de": "Wie lange darf man hier maximal parken?" }, "freeform": { "key": "maxstay" }, "render": { "en": "One can stay at most {canonical(maxstay)}", - "nl": "De maximale parkeertijd hier is {canonical(maxstay)}" + "nl": "De maximale parkeertijd hier is {canonical(maxstay)}", + "de": "Die maximale Parkdauer beträgt {canonical(maxstay)}" }, "mappings": [ { "if": "maxstay=unlimited", "then": { "en": "No timelimit on leaving your vehicle here", - "nl": "Geen maximum parkeertijd" + "nl": "Geen maximum parkeertijd", + "de": "Keine Höchstparkdauer" } } ], @@ -3726,11 +3801,13 @@ "id": "phone", "question": { "en": "What number can one call if there is a problem with this charging station?", - "nl": "Wat is het telefoonnummer van de beheerder van dit oplaadpunt?" + "nl": "Wat is het telefoonnummer van de beheerder van dit oplaadpunt?", + "de": "Welche Nummer kann man anrufen, wenn es ein Problem mit dieser Ladestation gibt?" }, "render": { "en": "In case of problems, call {phone}", - "nl": "Bij problemen, bel naar {phone}" + "nl": "Bij problemen, bel naar {phone}", + "de": "Bei Problemen, anrufen unter {phone}" }, "freeform": { "key": "phone", @@ -3741,11 +3818,13 @@ "id": "email", "question": { "en": "What is the email address of the operator?", - "nl": "Wat is het email-adres van de operator?" + "nl": "Wat is het email-adres van de operator?", + "de": "Wie lautet die E-Mail-Adresse des Betreibers?" }, "render": { "en": "In case of problems, send an email to {email}", - "nl": "Bij problemen, email naar {email}" + "nl": "Bij problemen, email naar {email}", + "de": "Bei Problemen senden Sie bitte eine E-Mail an {email}" }, "freeform": { "key": "email", @@ -3805,7 +3884,7 @@ "then": { "en": "This charging station works", "nl": "Dit oplaadpunt werkt", - "de": "Diese Ladestation ist betriebsbereit" + "de": "Diese Ladestation ist in Betrieb" } }, { @@ -3993,8 +4072,9 @@ "socket:typee=1" ], "title": { - "en": "charging station for electrical bikes with a normal european wall plug (meant to charge electrical bikes)", - "nl": "oplaadpunt voor elektrische fietsen" + "en": "a charging station for electrical bikes with a normal european wall plug (meant to charge electrical bikes)", + "nl": "een oplaadpunt voor elektrische fietsen met een gewoon Europees stopcontact (speciaal bedoeld voor fietsen)", + "de": "eine Ladestation für Elektrofahrräder mit einer normalen europäischen Steckdose (zum Laden von Elektrofahrrädern)" }, "preciseInput": { "preferredBackground": "map" @@ -4007,9 +4087,9 @@ "bicycle=no" ], "title": { - "en": "charging station for cars", - "nl": "oplaadstation voor elektrische auto's", - "de": "Ladestation für e-bikes" + "en": "a charging station for cars", + "nl": "een oplaadstation voor elektrische auto's", + "de": "eine ladestation für e-bikes" }, "preciseInput": { "preferredBackground": "map" @@ -4024,16 +4104,18 @@ "question": { "en": "All vehicle types", "nl": "Alle voertuigen", - "de": "Alle Fahrzeugtypen", - "fr": "Tout type de véhicule" + "de": "Ladestationen für alle Fahrzeugtypen", + "fr": "Tout type de véhicule", + "da": "Alle køretøjstyper" } }, { "question": { "en": "Charging station for bicycles", "nl": "Oplaadpunten voor fietsen", - "de": "Ladestation für Fahrräder", - "fr": "Station de charge pour vélos" + "de": "Ladestationen für Fahrräder", + "fr": "Station de charge pour vélos", + "da": "Ladestation til cykler" }, "osmTags": "bicycle=yes" }, @@ -4041,8 +4123,9 @@ "question": { "en": "Charging station for cars", "nl": "Oplaadpunten voor auto's", - "de": "Ladestation für Autos", - "fr": "Station de charge pour automobiles" + "de": "Ladestationen für Autos", + "fr": "Station de charge pour automobiles", + "da": "Ladestation til biler" }, "osmTags": { "or": [ @@ -4060,7 +4143,8 @@ "question": { "en": "Only working charging stations", "nl": "Enkel werkende oplaadpunten", - "de": "Nur funktionierende Ladestationen" + "de": "Nur Ladestationen in Betrieb", + "da": "Kun fungerende ladestationer" }, "osmTags": { "and": [ @@ -4078,7 +4162,8 @@ "question": { "en": "All connectors", "nl": "Alle types", - "de": "Alle Anschlüsse" + "de": "Alle Anschlüsse", + "ca": "Tots els connectors" } }, { @@ -4221,12 +4306,14 @@ "human": { "en": " minutes", "nl": " minuten", - "ru": " минут" + "ru": " минут", + "ca": " minuts" }, "humanSingular": { "en": " minute", "nl": " minuut", - "ru": " минута" + "ru": " минута", + "ca": " minut" } }, { @@ -4243,12 +4330,14 @@ "human": { "en": " hours", "nl": " uren", - "ru": " часов" + "ru": " часов", + "ca": " hores" }, "humanSingular": { "en": " hour", "nl": " uur", - "ru": " час" + "ru": " час", + "ca": " hora" } }, { @@ -4262,12 +4351,14 @@ "human": { "en": " days", "nl": " day", - "ru": " дней" + "ru": " дней", + "ca": " dies" }, "humanSingular": { "en": " day", "nl": " dag", - "ru": " день" + "ru": " день", + "ca": " dia" } } ] @@ -4304,7 +4395,8 @@ "human": { "en": "Volts", "nl": "volt", - "ru": "Вольт" + "ru": "Вольт", + "ca": "Volts" } } ], @@ -4340,7 +4432,8 @@ ], "human": { "en": "A", - "nl": "A" + "nl": "A", + "ca": "A" } } ], @@ -4374,7 +4467,8 @@ "human": { "en": "kilowatt", "nl": "kilowatt", - "ru": "киловатт" + "ru": "киловатт", + "ca": "quilovats" } }, { @@ -4385,7 +4479,8 @@ "human": { "en": "megawatt", "nl": "megawatt", - "ru": "мегаватт" + "ru": "мегаватт", + "ca": "megavats" } } ], diff --git a/assets/layers/charging_station/charging_station.protojson b/assets/layers/charging_station/charging_station.protojson index 35a2fc40af..ad748caa2a 100644 --- a/assets/layers/charging_station/charging_station.protojson +++ b/assets/layers/charging_station/charging_station.protojson @@ -162,6 +162,13 @@ "nl": "Enkel klanten van de bijhorende plaats mogen dit oplaadpunt gebruiken
Bv. op de parking van een hotel en enkel toegankelijk voor klanten van dit hotel" } }, + { + "if": "access=key", + "then": { + "en": "A key must be requested to access this charging station
E.g. a charging station operated by hotel which is only usable by their guests, which receive a key from the reception to unlock the charging station", + "nl": "Een sleutel is nodig om dit oplaadpunt te gebruiken
Bv. voor klanten van een hotel of een bar, die de sleutel aan de receptie kunnen krijgen" + } + }, { "if": "access=private", "then": { @@ -217,18 +224,6 @@ "nl": "Moet men betalen om dit oplaadpunt te gebruiken?" }, "mappings": [ - { - "if": { - "and": [ - "fee=no" - ] - }, - "then": { - "nl": "Gratis te gebruiken", - "en": "Free to use" - }, - "hideInAnswer": true - }, { "if": { "and": [ @@ -257,6 +252,18 @@ "en": "Free to use, but one has to authenticate" } }, + { + "if": { + "and": [ + "fee=no" + ] + }, + "then": { + "nl": "Gratis te gebruiken", + "en": "Free to use" + }, + "hideInAnswer": true + }, { "if": { "and": [ diff --git a/assets/layers/charging_station/csvToJson.ts b/assets/layers/charging_station/csvToJson.ts index ea1d55ac92..04aedcfe31 100644 --- a/assets/layers/charging_station/csvToJson.ts +++ b/assets/layers/charging_station/csvToJson.ts @@ -1,13 +1,13 @@ import {readFileSync, writeFileSync} from "fs"; import {Utils} from "../../../Utils"; -import {TagRenderingConfigJson} from "../../../Models/ThemeConfig/Json/TagRenderingConfigJson"; import ScriptUtils from "../../../scripts/ScriptUtils"; import {LayerConfigJson} from "../../../Models/ThemeConfig/Json/LayerConfigJson"; import FilterConfigJson from "../../../Models/ThemeConfig/Json/FilterConfigJson"; +import {QuestionableTagRenderingConfigJson} from "../../../Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson"; function colonSplit(value: string): string[] { - return value.split(";").map(v => v.replace(/"/g, '').trim().toLowerCase()).filter(s => s !== ""); + return value.split(";").map(v => v.replace(/"/g, '').trim()).filter(s => s !== ""); } function loadCsv(file): { @@ -57,8 +57,8 @@ function loadCsv(file): { function run(file, protojson) { const overview_question_answers = [] - const questions: (TagRenderingConfigJson & { "id": string })[] = [] - const technicalQuestions: (TagRenderingConfigJson & { "id": string })[] = [] + const questions: (QuestionableTagRenderingConfigJson & { "id": string })[] = [] + const technicalQuestions: (QuestionableTagRenderingConfigJson & { "id": string })[] = [] const filterOptions: { question: any, osmTags?: string } [] = [ { question: { @@ -176,7 +176,7 @@ function run(file, protojson) { }, mappings: e.commonVoltages.map(voltage => { return { - if: `socket:${e.key}:voltage=${voltage} V`, + if: `${e.key}:voltage=${voltage} V`, then: { en: `${e.description.get("en")} outputs ${voltage} volt`, nl: `${e.description.get("nl")} heeft een spanning van ${voltage} volt` @@ -210,7 +210,7 @@ function run(file, protojson) { }, mappings: e.commonCurrents.map(current => { return { - if: `socket:${e.key}:current=${current} A`, + if: `${e.key}:current=${current} A`, then: { en: `${e.description.get("en")} outputs at most ${current} A`, nl: `${e.description.get("nl")} levert een stroom van maximaal ${current} A` @@ -244,7 +244,7 @@ function run(file, protojson) { }, mappings: e.commonOutputs.map(output => { return { - if: `socket:${e.key}:output=${output}`, + if: `${e.key}:output=${output}`, then: { en: `${e.description.get("en")} outputs at most ${output} A`, nl: `${e.description.get("nl")} levert een vermogen van maximaal ${output} A` diff --git a/assets/layers/climbing/climbing.json b/assets/layers/climbing/climbing.json new file mode 100644 index 0000000000..36cd68b9d3 --- /dev/null +++ b/assets/layers/climbing/climbing.json @@ -0,0 +1,375 @@ +{ + "id": "climbing", + "title": null, + "description": { + "en": "A dummy layer which contains tagrenderings, shared among the climbing layers" + }, + "minzoom": 25, + "source": { + "osmTags": "sport=climbing" + }, + "tagRenderings": [ + { + "id": "website", + "question": { + "en": "Is there a (unofficial) website with more informations (e.g. topos)?", + "de": "Gibt es eine (inoffizielle) Website mit mehr Informationen (z.B. Topos)?", + "ja": "もっと情報のある(非公式の)ウェブサイトはありますか(例えば、topos)?", + "nl": "Is er een (onofficiële) website met meer informatie (b.v. met topos)?", + "ru": "Есть ли (неофициальный) веб-сайт с более подробной информацией (напр., topos)?", + "fr": "Existe-t’il un site avec plus d’informations (ex : topographie) ?", + "it": "C’è un sito web (anche non ufficiale) con qualche informazione in più (ad es. topografie)?" + }, + "condition": { + "and": [ + "leisure!~sports_centre", + "sport=climbing", + "office=", + "club=" + ] + }, + "render": "{url}", + "freeform": { + "key": "url", + "type": "url" + } + }, + { + "id": "average_length", + "render": { + "de": "Die Routen sind durchschnittlich {canonical(climbing:length)} lang", + "en": "The routes are {canonical(climbing:length)} long on average", + "nl": "De klimroutes zijn gemiddeld {canonical(climbing:length)} lang", + "ja": "ルートの長さは平均で{canonical(climbing:length)}です", + "fr": "Les voies font {canonical(climbing:length)} de long en moyenne", + "it": "Le vie sono lunghe mediamente {canonical(climbing:length)}" + }, + "question": { + "de": "Wie lang sind die Routen (durchschnittlich) in Metern?", + "en": "What is the (average) length of the routes in meters?", + "nl": "Wat is de (gemiddelde) lengte van de klimroutes, in meter?", + "ja": "ルートの(平均)長さはメートル単位でいくつですか?", + "fr": "Quelle est la longueur moyenne des voies en mètres ?", + "it": "Quale è la lunghezza (media) delle vie in metri?" + }, + "freeform": { + "key": "climbing:length", + "type": "pfloat" + } + }, + { + "id": "min_difficulty", + "question": { + "de": "Welche Schwierigkeit hat hier die leichteste Route (französisch/belgisches System)?", + "en": "What is the grade of the easiest route here, according to the french classification system?", + "nl": "Wat is het niveau van de makkelijkste route, volgens het Franse classificatiesysteem?", + "ja": "ここで一番簡単なルートのレベルは、フランスのランク評価システムで何ですか?", + "fr": "Quel est le niveau de la voie la plus simple selon la classification franco-belge ?", + "it": "Qual è il livello della via più facile qua, secondo il sistema di classificazione francese?" + }, + "render": { + "de": "Die leichteste Route hat hier die Schwierigkeit {climbing:grade:french:min} (französisch/belgisches System)", + "en": "The lowest grade is {climbing:grade:french:min} according to the french/belgian system", + "nl": "De minimale klimmoeilijkheid is {climbing:grade:french:min} volgens het Franse/Belgische systeem", + "ja": "フランス/ベルギーのランク評価システムでは、最小の難易度は{climbing:grade:french:min}です", + "fr": "La difficulté minimale est {climbing:grade:french:min} selon la classification franco-belge", + "it": "Il minimo livello di difficoltà è {climbing:grade:french:min} secondo il sistema francese/belga" + }, + "freeform": { + "key": "climbing:grade:french:min" + } + }, + { + "id": "max_difficulty", + "question": { + "de": "Welche Schwierigkeit hat hier die schwerste Route (französisch/belgisches System)?", + "en": "What is the highest grade route here, according to the french classification system?", + "nl": "Wat is het niveau van de moeilijkste route, volgens het Franse classificatiesysteem?", + "ja": "フランスのランク評価によると、ここで一番難しいルートのレベルはどれくらいですか?", + "fr": "Quel est le niveau de la voie la plus difficile selon la classification franco-belge ?", + "it": "Qual è il livello della via più difficile qua, secondo il sistema di classificazione francese?" + }, + "render": { + "de": "Die schwierigste Route hat hier die Schwierigkeitsstufe {climbing:grade:french:max} (französisch/belgisches System)", + "en": "The highest grade is {climbing:grade:french:max} according to the french/belgian system", + "nl": "De maximale klimmoeilijkheid is {climbing:grade:french:max} volgens het Franse/Belgische systeem", + "ja": "フランス/ベルギーのランク評価システムでは、最大の難易度は{climbing:grade:french:max}です", + "fr": "La difficulté maximale est {climbing:grade:french:max} selon la classification franco-belge", + "it": "Il massimo livello di difficoltà è {climbing:grade:french:max} secondo il sistema francese/belga" + }, + "freeform": { + "key": "climbing:grade:french:max" + }, + "condition": { + "and": [ + "climbing!~route", + "office=", + "club=", + { + "or": [ + "climbing:sport=yes", + "sport=climbing" + ] + } + ] + } + }, + { + "id": "bouldering", + "question": { + "de": "Kann hier gebouldert werden?", + "en": "Is bouldering possible here?", + "nl": "Is het mogelijk om hier te bolderen?", + "ja": "ここでボルダリングはできますか?", + "nb_NO": "Er buldring mulig her?", + "fr": "L’escalade de bloc est-elle possible ici ?", + "it": "È possibile praticare ‘bouldering’ qua?" + }, + "mappings": [ + { + "if": "climbing:boulder=yes", + "then": { + "de": "Hier kann gebouldert werden", + "en": "Bouldering is possible here", + "nl": "Bolderen kan hier", + "ja": "ボルダリングはここで可能です", + "nb_NO": "Buldring er mulig her", + "fr": "L’escalade de bloc est possible", + "it": "L’arrampicata su massi è possibile qua" + } + }, + { + "if": "climbing:boulder=no", + "then": { + "de": "Hier kann nicht gebouldert werden", + "en": "Bouldering is not possible here", + "nl": "Bolderen kan hier niet", + "ja": "ここではボルダリングはできません", + "nb_NO": "Buldring er ikke mulig her", + "fr": "L’escalade de bloc n’est pas possible", + "it": "L’arrampicata su massi non è possibile qua" + } + }, + { + "if": "climbing:boulder=limited", + "then": { + "de": "Bouldern ist hier nur an wenigen Routen möglich", + "en": "Bouldering is possible, allthough there are only a few routes", + "nl": "Bolderen kan hier, maar er zijn niet zoveel routes", + "ja": "ボルダリングは可能ですが、少しのルートしかありません", + "fr": "L’escalade de bloc est possible sur des voies précises", + "it": "L’arrampicata su massi è possibile anche se su poche vie" + } + }, + { + "if": "climbing:boulder~*", + "then": { + "de": "Hier gibt es {climbing:boulder} Boulder-Routen", + "en": "There are {climbing:boulder} boulder routes", + "nl": "Er zijn hier {climbing:boulder} bolderroutes", + "ja": "{climbing:boulder} ボルダールートがある", + "fr": "Il y a {climbing:boulder} voies d’escalade de bloc", + "it": "Sono presenti {climbing:boulder} vie di arrampicata su massi" + }, + "hideInAnswer": true + } + ] + }, + { + "id": "toprope", + "question": { + "de": "Ist Toprope-Klettern hier möglich?", + "en": "Is toprope climbing possible here?", + "nl": "Is het mogelijk om hier te toprope-klimmen?", + "ja": "ここでtoprope登坂はできますか?", + "fr": "Est-il possible d’escalader à la moulinette ?", + "it": "È possibile arrampicarsi con la corda dall’alto qua?" + }, + "mappings": [ + { + "if": "climbing:toprope=yes", + "then": { + "de": "Toprope-Klettern ist hier möglich", + "en": "Toprope climbing is possible here", + "nl": "Toprope-klimmen kan hier", + "ja": "ここでToprope登坂ができます", + "fr": "L’escalade à la moulinette est possible", + "it": "È possibile arrampicarsi con moulinette qua" + } + }, + { + "if": "climbing:toprope=no", + "then": { + "de": "Toprope-Climbing ist hier nicht möglich", + "en": "Toprope climbing is not possible here", + "nl": "Toprope-klimmen kan hier niet", + "ja": "ここではToprope登坂はできません", + "fr": "L’escalade à la moulinette n’est pas possible", + "it": "Non è possibile arrampicarsi con moulinette qua" + } + }, + { + "if": "climbing:toprope~*", + "then": { + "de": "Hier gibt es {climbing:toprope} Toprope-Routen", + "en": "There are {climbing:toprope} toprope routes", + "nl": "Er zijn hier {climbing:toprope} toprope routes", + "ja": "{climbing:toprope} 登坂ルートがある", + "fr": "{climbing:toprope} voies sont équipées de moulinettes", + "it": "Sono presenti {climbing:toprope} vie con moulinette" + }, + "hideInAnswer": true + } + ] + }, + { + "id": "sportclimbing", + "question": { + "de": "Ist hier Sportklettern möglich (feste Ankerpunkte)?", + "en": "Is sport climbing possible here on fixed anchors?", + "nl": "Is het mogelijk om hier te sportklimmen/voorklimmen op reeds aangebrachte haken?", + "ja": "ここでは固定アンカー式のスポーツクライミングはできますか?", + "it": "È possibile arrampicarsi qua con ancoraggi fissi?" + }, + "mappings": [ + { + "if": "climbing:sport=yes", + "then": { + "de": "Sportklettern ist hier möglich", + "en": "Sport climbing is possible here", + "nl": "Sportklimmen/voorklimmen kan hier", + "ru": "Здесь можно заняться спортивным скалолазанием", + "ja": "ここでスポーツクライミングができます", + "it": "L’arrampicata sportiva è possibile qua", + "hu": "Itt lehetőség van sportmászásra", + "fr": "De l’escalade est possible ici" + } + }, + { + "if": "climbing:sport=no", + "then": { + "de": "Sportklettern ist hier nicht möglich", + "en": "Sport climbing is not possible here", + "nl": "Sportklimmen/voorklimmen kan hier niet", + "ru": "Спортивное скалолазание здесь невозможно", + "ja": "ここではスポーツクライミングはできません", + "it": "L’arrampicata sportiva non è possibile qua", + "hu": "Itt nincs lehetőség sportmászásra", + "fr": "L’escalade est impossible ici" + } + }, + { + "if": "climbing:sport~*", + "then": { + "de": "Hier gibt es {climbing:sport} Sportkletter-Routen", + "en": "There are {climbing:sport} sport climbing routes", + "nl": "Er zijn hier {climbing:sport} sportklimroutes/voorklimroutes", + "ja": "スポーツクライミングの {climbing:sport} ルートがある", + "it": "Sono presenti {climbing:sport} vie di arrampicata sportiva" + }, + "hideInAnswer": true + } + ] + }, + { + "id": "trad_climbing", + "question": { + "de": "Ist hier traditionelles Klettern möglich (eigene Sicherung z.B. mit Klemmkleilen)?", + "en": "Is traditional climbing possible here (using own gear e.g. chocks)?", + "nl": "Is het mogelijk om hier traditioneel te klimmen?
(Dit is klimmen met klemblokjes en friends)", + "ja": "伝統的な登山はここで可能ですか(例えば、チョックのような独自のギアを使用して)?", + "it": "È possibile arrampicarsi in maniera tradizionale qua (usando attrezzi propri, ad es. dadi)?" + }, + "mappings": [ + { + "if": "climbing:traditional=yes", + "then": { + "de": "Traditionelles Klettern ist hier möglich", + "en": "Traditional climbing is possible here", + "nl": "Traditioneel klimmen kan hier", + "ja": "ここでは伝統的な登山が可能です", + "it": "L’arrampicata tradizionale è possibile qua" + } + }, + { + "if": "climbing:traditional=no", + "then": { + "de": "Traditionelles Klettern ist hier nicht möglich", + "en": "Traditional climbing is not possible here", + "nl": "Traditioneel klimmen kan hier niet", + "ja": "伝統的な登山はここではできない", + "it": "L’arrampicata tradizionale non è possibile qua" + } + }, + { + "if": "climbing:traditional~*", + "then": { + "de": "Hier gibt es {climbing:traditional} Routen für traditionelles Klettern", + "en": "There are {climbing:traditional} traditional climbing routes", + "nl": "Er zijn hier {climbing:traditional} traditionele klimroutes", + "ja": "{climbing:traditional} の伝統的な登山ルートがある", + "it": "Sono presenti {climbing:traditional} vie di arrampicata tradizionale" + }, + "hideInAnswer": true + } + ] + }, + { + "id": "max_bolts", + "question": { + "en": "How many bolts do routes in {title()} have at most?" + }, + "render": { + "en": "The sport climbing routes here have at most {climbing:bolts:max} bolts.
This is without relays and indicates how much quickdraws a climber needs
" + }, + "freeform": { + "key": "climbing:bolts:max", + "type": "pnat", + "addExtraTag": [ + "climbing:sport=yes" + ], + "inline": true + } + }, + { + "id": "fee", + "question": { + "en": "Is a fee required to climb here?" + }, + "render": { + "en": "A fee of {charge} should be paid for climbing here" + }, + "freeform": { + "key": "charge", + "addExtraTags": [ + "fee=yes" + ], + "inline": true + }, + "mappings": [ + { + "if": "fee=no", + "addExtraTags": [ + "charge=" + ], + "then": { + "en": "Climbing here is free of charge" + } + }, + { + "if": { + "and": [ + "fee=yes", + "charge=" + ] + }, + "then": { + "en": "Paying a fee is required to climb here" + }, + "hideInAnswer": "charge~*" + } + ] + } + ], + "mapRendering": null +} \ No newline at end of file diff --git a/assets/layers/climbing_area/climbing_area.json b/assets/layers/climbing_area/climbing_area.json new file mode 100644 index 0000000000..22b694ba5a --- /dev/null +++ b/assets/layers/climbing_area/climbing_area.json @@ -0,0 +1,308 @@ +{ + "id": "climbing_area", + "name": { + "nl": "Klimgelegenheden", + "de": "Klettermöglichkeiten", + "en": "Climbing opportunities", + "ja": "登坂教室", + "fr": "Opportunité d’escalade", + "it": "Opportunità di arrampicata" + }, + "description": { + "en": "An area where climbing is possible, e.g. a crag, site, boulder, ... Contains aggregation of routes" + }, + "minzoom": 10, + "source": { + "osmTags": { + "and": [ + "sport=climbing", + "climbing!~route", + "leisure!~sports_centre", + "climbing!=route_top", + "climbing!=route_bottom" + ] + } + }, + "title": { + "render": { + "en": "Climbing opportunity", + "nl": "Klimgelegenheid", + "de": "Klettermöglichkeit", + "ja": "登坂教室", + "nb_NO": "Klatremulighet", + "fr": "Opportunité d’escalade", + "it": "Opportunità di arrampicata" + }, + "mappings": [ + { + "if": "climbing=crag", + "then": { + "en": "Climbing crag {name}", + "fr": "Mur d’escalade {name}", + "it": "Muro da arrampicata {name}", + "de": "Klettergarten {name}" + } + }, + { + "if": { + "and": [ + { + "or": [ + "climbing=area", + "climbing=site" + ] + }, + "name~*" + ] + }, + "then": { + "en": "Climbing area {name}", + "nl": "Klimsite {name}", + "fr": "Zone d’escalade {name}", + "de": "Klettergebiet {name}", + "it": "Area di arrampicata {name}" + } + }, + { + "if": { + "or": [ + "climbing=site", + "climbing=area" + ] + }, + "then": { + "en": "Climbing site", + "nl": "Klimsite", + "fr": "Site d’escalade", + "de": "Klettergebiet", + "it": "Sito di arrampicata", + "ca": "Llocs d'escalada" + } + }, + { + "if": "name~*", + "then": { + "nl": "Klimgelegenheid {name}", + "en": "Climbing opportunity {name}", + "fr": "Opportunité d’escalade {name}", + "de": "Klettermöglichkeit {name}", + "it": "Opportunità di arrampicata {name}" + } + } + ] + }, + "calculatedTags": [ + "_contained_climbing_routes_properties=feat.overlapWith('climbing_route').map(f => f.feat.properties).map(p => {return {id: p.id, name: p.name, 'climbing:grade:french': p['climbing:grade:french'], 'climbing:length': p['climbing:length']} })", + "_contained_climbing_routes=feat.get('_contained_climbing_routes_properties')?.map(p => `
  • ${p.name ?? 'climbing route'} (${p['climbing:grade:french'] ?? 'unknown difficulty'}, ${p['climbing:length'] ?? 'unkown length'} meter)
  • `).join('')", + "_contained_climbing_route_ids=feat.get('_contained_climbing_routes_properties')?.map(p => p.id)", + "_difficulty_hist=feat.get('_contained_climbing_routes_properties')?.map(p => p['climbing:grade:french'])?.filter(p => (p ?? null) !== null)?.sort()", + "_difficulty_max=feat.get('_difficulty_hist')?.at(-1)", + "_difficulty_min=feat.get('_difficulty_hist')?.at(0)", + "_length_hist=feat.get('_contained_climbing_routes_properties')?.map(p => p['climbing:length'])?.filter(p => (p ?? null) !== null)?.sort()", + "_length_max=feat.get('_length_hist')?.at(-1)", + "_length_min=feat.get('_length_hist')?.at(0)", + "_bolts_hist=feat.get('_contained_climbing_routes_properties')?.map(p => p['climbing:bolts'])?.filter(p => (p ?? null) !== null)?.sort()", + "_bolts_max=feat.get('_bolts_hist')?.at(-1)", + "_bolts_min=feat.get('_bolts_hist')?.at(0)", + "_contained_climbing_routes_count=feat.get('_contained_climbing_routes_properties')?.length" + ], + "tagRenderings": [ + "images", + { + "id": "minimap", + "render": "{minimap(18, id, _contained_climbing_route_ids): height: 9rem; overflow: hidden; border-radius:3rem; }" + }, + { + "render": { + "en": "

    Length overview

    {histogram(_length_hist)}", + "fr": "

    Résumé de longueur

    {histogram(_length_hist)}", + "de": "

    Längenübersicht

    {histogram(_length_hist)}", + "it": "

    Riassunto della lunghezza

    {histogram(_length_hist)}" + }, + "condition": "_length_hist!~\\[\\]", + "id": "Contained routes length hist" + }, + { + "render": { + "en": "

    Grades overview

    {histogram(_difficulty_hist)}", + "fr": "

    Résumé des difficultés

    {histogram(_difficulty_hist)}", + "de": "

    Schwierigkeitsübersicht

    {histogram(_difficulty_hist)}", + "it": "

    Riassunto delle difficoltà

    {histogram(_difficulty_hist)}" + }, + "condition": "_difficulty_hist!~\\[\\]", + "id": "Contained routes hist" + }, + { + "render": { + "en": "

    Contains {_contained_climbing_routes_count} routes

    ", + "fr": "

    Contient {_contained_climbing_routes_count} voies

    ", + "it": "

    Contiene {_contained_climbing_routes_count} vie

    ", + "de": "

    Enthält {_contained_climbing_routes_count} Routen

    " + }, + "condition": "_contained_climbing_routes~*", + "id": "Contained_climbing_routes" + }, + { + "render": { + "en": "{name}", + "nl": "{name}", + "de": "{name}", + "ca": "{name}", + "fr": "{name}", + "id": "{name}", + "ru": "{name}", + "ja": "{name}", + "it": "{name}" + }, + "question": { + "en": "What is the name of this climbing opportunity?", + "nl": "Wat is de naam van dit Klimgelegenheid?", + "de": "Wie heißt diese Klettergelegenheit?", + "ja": "この登坂教室の名前は何ですか?", + "fr": "Quel est le nom de ce site ?", + "it": "Qual è il nome di questa opportunità di arrampicata?" + }, + "freeform": { + "key": "name" + }, + "mappings": [ + { + "if": { + "and": [ + "noname=yes", + "name=" + ] + }, + "then": { + "en": "This climbing opportunity doesn't have a name", + "nl": "Dit Klimgelegenheid heeft geen naam", + "de": "Diese Klettergelegenheit hat keinen Namen", + "ja": "この登坂教室には名前がついていない", + "fr": "Ce site n’a pas de nom", + "it": "Questa opportunità di arrampicata non ha un nome" + } + } + ], + "id": "name" + }, + { + "question": "What kind of climbing opportunity is this?", + "mappings": [ + { + "if": "climbing=boulder", + "then": { + "en": "A climbing boulder - a single rock or cliff with one or a few climbing routes which can be climbed safely without rope", + "fr": "Rocher d’escalade, rocher avec une ou peu de voie permettant d’escalader sans corde", + "de": "Ein Kletterfelsen - ein einzelner Felsen oder eine Klippe mit einer oder wenigen Kletterrouten, die ohne Seil sicher bestiegen werden können", + "it": "Un masso per arrampicata (una singola roccia o falesia con una o poche vie di arrampicata che possono essere scalate in sicurezza senza una corda)" + } + }, + { + "if": "climbing=crag", + "then": { + "en": "A climbing crag - a single rock or cliff with at least a few climbing routes", + "fr": "Mur d’escalade, rocher avec plusieurs voies d’escalades", + "it": "Un muro da arrampicata (un singolo masso o falesia con almeno qualche via per arrampicata)", + "de": "Ein Kletterfelsen - ein einzelner Fels oder eine Klippe mit mindestens einigen Kletterrouten" + } + }, + { + "if": "climbing=area", + "then": "A climbing area with one or more climbing crags and/or boulders" + } + ], + "id": "Type" + }, + { + "question": { + "en": "What is the rock type here?", + "fr": "Quel est le type de roche ?", + "de": "Welchen Gesteinstyp gibt es hier?", + "it": "Qual è il tipo di roccia qua?" + }, + "render": { + "en": "The rock type is {rock}", + "fr": "La roche est du {rock}", + "de": "Der Gesteinstyp ist {rock}", + "it": "Il tipo di roccia è {rock}" + }, + "freeform": { + "key": "rock" + }, + "mappings": [ + { + "if": "rock=limestone", + "then": { + "en": "Limestone", + "nl": "Kalksteen", + "fr": "Calcaire", + "de": "Kalkstein", + "it": "Calcare" + } + } + ], + "condition": { + "or": [ + "climbing=crag", + "natural=cliff", + "natural=bare_rock" + ] + }, + "id": "Rock type (crag/rock/cliff only)" + }, + { + "builtin": [ + "climbing.website", + "climbing.fee", + "climbing.bouldering" + ] + } + ], + "presets": [ + { + "tags": [ + "sport=climbing" + ], + "title": { + "en": "a climbing opportunity", + "nl": "een klimgelegenheid", + "de": "eine klettermöglichkeit", + "ja": "登坂教室", + "nb_NO": "en klatremulighet", + "fr": "une opportunité d’escalade", + "it": "una opportunità di arrampicata" + }, + "description": { + "nl": "Een klimgelegenheid", + "de": "Eine Klettergelegenheit", + "en": "A climbing opportunity", + "ja": "登坂教室", + "nb_NO": "En klatremulighet", + "fr": "Opportunité d’escalade", + "it": "Un’opportunità di arrampicata" + } + } + ], + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/climbing/climbing_no_rope.svg" + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point", + "centroid" + ] + }, + { + "color": { + "render": "#d38d5fAA" + }, + "width": { + "render": "8" + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/climbing_club/climbing_club.json b/assets/layers/climbing_club/climbing_club.json new file mode 100644 index 0000000000..6720a17534 --- /dev/null +++ b/assets/layers/climbing_club/climbing_club.json @@ -0,0 +1,189 @@ +{ + "id": "climbing_club", + "name": { + "de": "Klettervereine", + "nl": "Klimclub", + "en": "Climbing club", + "ru": "Клуб скалолазания", + "ja": "クライミングクラブ", + "zh_Hant": "攀岩社團", + "nb_NO": "Klatreklubb", + "fr": "Club d’escalade", + "it": "Club di arrampicata", + "hu": "Mászóegyesület" + }, + "minzoom": 10, + "source": { + "osmTags": { + "or": [ + "club=climbing", + { + "and": [ + "sport=climbing", + { + "or": [ + "office~*", + "club~*" + ] + } + ] + } + ] + } + }, + "title": { + "render": { + "en": "Climbing club", + "nl": "Klimclub", + "de": "Kletterverein", + "ru": "Клуб скалолазания", + "ja": "クライミングクラブ", + "zh_Hant": "攀岩社團", + "nb_NO": "Klatreklubb", + "fr": "Club d’escalade", + "it": "Club di arrampicata" + }, + "mappings": [ + { + "if": "office~*", + "then": { + "nl": "Klimorganisatie", + "en": "Climbing NGO", + "de": "Kletter-Organisation", + "ja": "クライミングNGO", + "zh_Hant": "攀岩 NGO", + "fr": "Association d’escalade", + "it": "Associazione di arrampicata", + "hu": "Mászószervezet" + } + } + ] + }, + "description": { + "de": "Ein Kletterverein oder -organisation", + "nl": "Een klimclub of organisatie", + "en": "A climbing club or organisation", + "ja": "クライミングクラブや団体", + "zh_Hant": "攀岩社團或組織", + "nb_NO": "En klatreklubb eller organisasjoner", + "fr": "Club ou association d’escalade", + "it": "Un club o associazione di arrampacata", + "hu": "Mászóegyesület vagy -szervezet" + }, + "tagRenderings": [ + { + "render": { + "en": "{name}", + "nl": "{name}", + "de": "{name}", + "ca": "{name}", + "fr": "{name}", + "id": "{name}", + "ru": "{name}", + "ja": "{name}", + "zh_Hant": "{name}", + "it": "{name}", + "hu": "{name}" + }, + "question": { + "en": "What is the name of this climbing club or NGO?", + "de": "Wie lautet der Name dieses Vereins oder Organisation?", + "nl": "Wat is de naam van deze klimclub?", + "ja": "この登山クラブやNGOの名前は何ですか?", + "fr": "Quel est le nom du club ou de l’association ?", + "it": "Qual è il nome di questo club o associazione di arrampicata?", + "hu": "Mi a neve ennek a mászóegyesületnek vagy szervezetnek?" + }, + "freeform": { + "key": "name" + }, + "id": "climbing_club-name" + }, + "website", + "email", + "phone", + "opening_hours" + ], + "presets": [ + { + "tags": [ + "club=sport", + "sport=climbing" + ], + "title": { + "de": "eine kletterverein", + "en": "a climbing club", + "nl": "een klimclub", + "ja": "クライミングクラブ", + "nb_NO": "en klatreklubb", + "ru": "Клуб скалолазания", + "fr": "une club d’escalade", + "it": "una club di arrampicata", + "hu": "Mászóegyesület" + }, + "description": { + "de": "Ein Kletterverein", + "nl": "Een klimclub", + "en": "A climbing club", + "ja": "クライミングクラブ", + "nb_NO": "En klatreklubb", + "ru": "Клуб скалолазания", + "fr": "Un club d’escalade", + "it": "Un club di arrampicata", + "hu": "Egy mászóegyesület" + } + }, + { + "tags": [ + "office=ngo", + "sport=climbing" + ], + "title": { + "de": "Eine Kletterorganisation", + "en": "a climbing ngo", + "nl": "een een klimorganisatie", + "ja": "クライミングNGO", + "fr": "une association d’escalade", + "it": "una associazione di arrampicata", + "hu": "Mászószervezet" + }, + "description": { + "de": "Eine Organisation, die sich mit dem Klettern beschäftigt", + "nl": "Een VZW die werkt rond klimmen", + "en": "An NGO working around climbing", + "ja": "登山に関わるNGO", + "fr": "Une association d’escalade", + "it": "Un’associazione che ha a che fare con l’arrampicata", + "hu": "Mászással foglalkozó civil szervezet" + } + } + ], + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/climbing/club.svg" + }, + "iconBadges": [ + { + "if": "opening_hours~*", + "then": "isOpen" + } + ], + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point", + "centroid" + ], + "label": { + "mappings": [ + { + "if": "name~*", + "then": "
    {name}
    " + } + ] + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/climbing_gym/climbing_gym.json b/assets/layers/climbing_gym/climbing_gym.json new file mode 100644 index 0000000000..74976727fd --- /dev/null +++ b/assets/layers/climbing_gym/climbing_gym.json @@ -0,0 +1,169 @@ +{ + "id": "climbing_gym", + "name": { + "de": "Kletterhallen", + "en": "Climbing gyms", + "nl": "Klimzalen", + "ja": "クライミングジム", + "fr": "Salle d’escalade", + "it": "Palestre di arrampicata", + "ru": "Комплексы скалолазания" + }, + "minzoom": 10, + "source": { + "osmTags": { + "and": [ + "sport=climbing", + "leisure=sports_centre" + ] + } + }, + "title": { + "render": { + "nl": "Klimzaal", + "de": "Kletterhalle", + "en": "Climbing gym", + "ja": "クライミングジム", + "fr": "Salle d’escalade", + "it": "Palestra di arrampicata", + "ru": "Комплекс скалолазания" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "nl": "Klimzaal {name}", + "de": "Kletterhalle {name}", + "en": "Climbing gym {name}", + "ja": "クライミングジム{name}", + "fr": "Salle d’escalade {name}", + "it": "Palestra di arrampicata {name}" + } + } + ] + }, + "description": { + "de": "Eine Kletterhalle", + "en": "A climbing gym", + "ja": "クライミングジム", + "nl": "Een klimzaal", + "fr": "Une salle d’escalade", + "it": "Una palestra di arrampicata", + "ru": "Комплекс скалолазания" + }, + "tagRenderings": [ + "images", + { + "render": { + "*": "{name}" + }, + "question": { + "en": "What is the name of this climbing gym?", + "nl": "Wat is de naam van dit Klimzaal?", + "de": "Wie heißt diese Kletterhalle?", + "ja": "このクライミングジムは何という名前ですか?", + "fr": "Quel est le nom de la salle d’escalade ?", + "it": "Qual è il nome di questa palestra di arrampicata?" + }, + "freeform": { + "key": "name" + }, + "id": "name" + }, + "website", + "phone", + "email", + { + "builtin": [ + "climbing.fee" + ] + }, + "opening_hours", + { + "builtin": [ + "climbing.average_length", + "climbing.min_difficulty", + "climbing.max_difficulty", + "climbing.bouldering", + "climbing.sportclimbing" + ] + }, + { + "builtin": "climbing.max_bolts", + "override": { + "condition": "climbing:sport=yes" + } + }, + { + "id": "Speed climbing?", + "question": { + "de": "Gibt es hier eine Speedkletter-Wand?", + "en": "Is there a speed climbing wall?", + "nl": "Is er een snelklimmuur (speed climbing)?", + "ja": "スピードクライミングウォールはありますか?", + "it": "È presente una prete per l’arrampicata di velocità?" + }, + "mappings": [ + { + "if": "climbing:speed=yes", + "then": { + "de": "Hier gibt es eine Speedkletter-Wand", + "en": "There is a speed climbing wall", + "nl": "Er is een snelklimmuur voor speed climbing", + "ja": "スピードクライミングウォールがある", + "it": "È presente una parete per l’arrampicata di velocità" + } + }, + { + "if": "climbing:speed=no", + "then": { + "de": "Hier gibt es keine Speedkletter-Wand", + "en": "There is no speed climbing wall", + "nl": "Er is geen snelklimmuur voor speed climbing", + "ja": "スピードクライミングウォールがない", + "it": "Non è presente una parete per l’arrampicata di velocità" + } + }, + { + "if": "climbing:speed~*", + "then": { + "de": "Hier gibt es {climbing:speed} Speedkletter-Routen", + "en": "There are {climbing:speed} speed climbing walls", + "nl": "Er zijn hier {climbing:speed} snelklimmuren", + "ja": "{climbing:speed} のスピードクライミングウォールがある", + "it": "Sono presenti {climbing:speed} pareti per l’arrampicata di velocità" + }, + "hideInAnswer": true + } + ] + } + ], + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/climbing/climbing_gym.svg" + }, + "iconBadges": [ + { + "if": "opening_hours~*", + "then": "isOpen" + } + ], + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point", + "centroid" + ], + "label": { + "mappings": [ + { + "if": "name~*", + "then": "
    {name}
    " + } + ] + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/climbing_opportunity/climbing_opportunity.json b/assets/layers/climbing_opportunity/climbing_opportunity.json new file mode 100644 index 0000000000..3a5e851064 --- /dev/null +++ b/assets/layers/climbing_opportunity/climbing_opportunity.json @@ -0,0 +1,136 @@ +{ + "id": "climbing_opportunity", + "name": { + "nl": "Klimgelegenheiden?", + "de": "Klettermöglichkeiten?", + "en": "Climbing opportunities?", + "ja": "登坂教室?", + "nb_NO": "Klatremuligheter?", + "fr": "Opportunités d’escalade ?", + "it": "Opportunità di arrampicata?" + }, + "description": { + "en": "Fallback layer with items on which climbing _might_ be possible. It is loaded when zoomed in a lot, to prevent duplicate items to be added" + }, + "minzoom": 19, + "source": { + "osmTags": { + "and": [ + { + "or": [ + "leisure=sports_centre", + "barrier=wall", + "barrier=retaining_wall", + "natural=cliff", + "natural=rock", + "natural=stone" + ] + }, + "climbing=" + ] + } + }, + "title": { + "render": { + "en": "Climbing opportunity?", + "nl": "Klimgelegenheid?", + "de": "Klettermöglichkeit?", + "ja": "登坂教室?", + "nb_NO": "Klatremulighet?", + "fr": "Opportunité d’escalade ?", + "it": "Opportunità di arrampicata?" + } + }, + "tagRenderings": [ + { + "id": "climbing-opportunity-name", + "render": { + "en": "{name}", + "de": "{name}", + "ca": "{name}", + "fr": "{name}", + "id": "{name}", + "ru": "{name}", + "ja": "{name}", + "nl": "{name}", + "it": "{name}" + }, + "condition": "name~*" + }, + { + "id": "climbing-possible", + "question": { + "en": "Is climbing possible here?", + "de": "Kann hier geklettert werden?", + "ja": "ここで登坂はできますか?", + "nb_NO": "Er klatring mulig her?", + "fr": "Est-il possible d’escalader ici ?", + "it": "È possibile arrampicarsi qua?" + }, + "mappings": [ + { + "if": { + "and": [ + "sport=climbing" + ] + }, + "then": { + "en": "Climbing is possible here", + "de": "Hier kann geklettert werden", + "ja": "ここでは登ることができる", + "nb_NO": "Klatring er mulig her", + "nl": "Klimmen is hier niet toegelaten", + "fr": "Escalader est possible", + "it": "È possibile arrampicarsi qua" + } + }, + { + "if": "climbing=no", + "then": { + "en": "Climbing is not possible here", + "de": "Hier kann nicht geklettert werden", + "ja": "ここでは登ることができない", + "nb_NO": "Klatring er ikke mulig her", + "nl": "Klimmen is hier niet toegelaten", + "fr": "Escalader n’est pas possible", + "it": "Non è possibile arrampicarsi qua" + } + }, + { + "if": { + "and": [ + "sport!~climbing" + ] + }, + "then": { + "en": "Climbing is not possible here", + "de": "Hier kann nicht geklettert werden", + "ja": "ここでは登ることができない", + "nb_NO": "Klatring er ikke mulig her", + "nl": "Klimmen is hier niet mogelijk", + "fr": "Escalader n’est pas possible", + "it": "Non è possibile arrampicarsi qua" + }, + "hideInAnswer": true + } + ] + } + ], + "mapRendering": [ + { + "icon": "./assets/themes/climbing/climbing_unknown.svg", + "location": [ + "point", + "centroid" + ] + }, + { + "color": { + "render": "#ddff55AA" + }, + "width": { + "render": "2" + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/climbing_route/climbing_route.json b/assets/layers/climbing_route/climbing_route.json new file mode 100644 index 0000000000..667f5b251c --- /dev/null +++ b/assets/layers/climbing_route/climbing_route.json @@ -0,0 +1,251 @@ +{ + "id": "climbing_route", + "name": { + "en": "Climbing routes", + "de": "Kletterrouten", + "nl": "Klimroute", + "ja": "登坂ルート", + "nb_NO": "Klatreruter", + "fr": "Voies d’escalade", + "it": "Vie di arrampicata" + }, + "description": { + "en": "A single climbing route and its properties. Some properties are derived from the containing features" + }, + "minzoom": 18, + "source": { + "osmTags": { + "and": [ + "climbing=route" + ] + } + }, + "title": { + "render": { + "de": "Kleterroute", + "en": "Climbing route", + "nl": "Klimroute", + "ja": "登坂ルート", + "nb_NO": "Klatrerute", + "it": "Via di arrampicata", + "fr": "Voie d’escalade", + "da": "Klatrerute" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "de": "Kleterroute {name}", + "en": "Climbing route {name}", + "nl": "Klimroute {name}", + "ja": "登坂ルート{name}", + "it": "Via di arrampicata {name}", + "fr": "Voie d’escalade {name}", + "da": "Klatrerute {name}" + } + } + ] + }, + "tagRenderings": [ + "images", + { + "render": { + "en": "{name}", + "nl": "{name}", + "de": "{name}", + "ca": "{name}", + "fr": "{name}", + "id": "{name}", + "ru": "{name}", + "ja": "{name}", + "it": "{name}", + "nb_NO": "{name}", + "da": "{name}" + }, + "question": { + "en": "What is the name of this climbing route?", + "de": "Wie heißt diese Kletterroute?", + "nl": "Hoe heet deze klimroute?", + "ja": "この登坂ルートの名前は何ですか?", + "it": "Come si chiama questa via di arrampicata?", + "fr": "Quel est le nom de cette voie d’escalade ?", + "nb_NO": "Hva er navnet på denne klatreruten?", + "da": "Hvad hedder denne klatrerute?" + }, + "freeform": { + "key": "name" + }, + "mappings": [ + { + "if": { + "and": [ + "noname=yes", + "name=" + ] + }, + "then": { + "en": "This climbing route doesn't have a name", + "de": "Diese Kletterroute hat keinen Namen", + "nl": "Deze klimroute heeft geen naam", + "ja": "この登坂ルートには名前がありません", + "it": "Questa via di arrampicata non ha un nome", + "fr": "Cette voie n’a pas de nom", + "nb_NO": "Denne klatreruten har ikke noe navn", + "da": "Denne klatrerute har ikke et navn" + } + } + ], + "id": "Name" + }, + { + "question": { + "en": "How long is this climbing route (in meters)?", + "nl": "Hoe lang is deze klimroute (in meters)?", + "it": "Quanto è lunga questa via di arrampicata (in metri)?", + "fr": "Quelle est la longueur de cette voie (en mètres) ?", + "de": "Wie lang ist diese Kletterroute (in Metern)?", + "nb_NO": "Hvor mange meter er klatreruten?", + "da": "Hvor lang er denne klatrerute (i meter)?" + }, + "render": { + "de": "Diese Route ist {canonical(climbing:length)} lang", + "en": "This route is {canonical(climbing:length)} long", + "nl": "Deze klimroute is {canonical(climbing:length)} lang", + "ja": "このルート長は、 {canonical(climbing:length)} メーターです", + "nb_NO": "Denne ruten er {canonical(climbing:length)} lang", + "it": "Questo percorso è lungo {canonical(climbing:length)}", + "fr": "Cette voie fait {canonical(climbing:length)} de long" + }, + "freeform": { + "key": "climbing:length", + "type": "pnat" + }, + "id": "Length" + }, + { + "question": { + "en": "What is the grade of this climbing route according to the french/belgian system?", + "nl": "Hoe moeilijk is deze klimroute volgens het Franse/Belgische systeem?", + "it": "Qual è la difficoltà di questa via di arrampicata nel sistema francese/belga?", + "fr": "Quelle est la difficulté de cette voie selon le système franco-belge ?", + "de": "Wie hoch ist der Schwierigkeitsgrad dieser Kletterroute nach dem französisch/belgischen System?" + }, + "render": { + "de": "Die Schwierigkeit ist {climbing:grade:french} entsprechend des französisch/belgischen Systems", + "en": "The grade is {climbing:grade:french} according to the french/belgian system", + "nl": "De klimmoeilijkheid is {climbing:grade:french} volgens het Franse/Belgische systeem", + "ja": "フランス/ベルギーのランク評価システムによると、{climbing:grade:french}の困難度です", + "it": "Il grado di difficoltà è {climbing:grade:french} nel sistema francese/belga", + "fr": "Selon le système franco-belge, la difficulté de cette voie est de {climbing:grade:french}" + }, + "freeform": { + "key": "climbing:grade:french" + }, + "id": "Difficulty" + }, + { + "id": "bolts", + "question": { + "en": "How many bolts does this route have before reaching the anchor?", + "fr": "Combien de prises cette voie possède avant d’atteindre la moulinette ?", + "de": "Wie viele Haken gibt es auf dieser Kletterroute bevor der Umlenker bzw. Standhaken erreicht ist?", + "it": "Quanti bulloni sono presenti in questo percorso prima di arrivare alla moulinette?" + }, + "render": { + "en": "This route has {climbing:bolts} bolts
    This is without relays and indicates how much quickdraws a climber needs
    ", + "fr": "Cette voie a {climbing:bolts} prises", + "de": "Diese Kletterroute hat {climbing:bolts} Haken", + "it": "Questo percorso ha {climbing:bolts} bulloni" + }, + "freeform": { + "key": "climbing:bolts", + "type": "pnat", + "addExtraTag": [ + "climbing:bolted=yes" + ], + "inline": true + }, + "mappings": [ + { + "if": "climbing:bolted=no", + "then": { + "en": "This route is not bolted", + "fr": "Cette voie n’a pas de prises", + "de": "Auf dieser Kletterroute sind keine Haken vorhanden", + "it": "In questo percorso non sono presenti bulloni" + }, + "addExtraTags": [ + "climbing:bolts=" + ] + } + ] + }, + "description", + { + "id": "Rock type via embedded feature", + "render": { + "en": "The rock type is {_embedding_features_with_rock:rock} as stated on the surrounding crag", + "fr": "Le type de roche est {_embedding_features_with_rock:rock} selon le mur", + "it": "Il tipo di roccia è {_embedding_features_with_rock:rock} come dichiarato sul muro circostante", + "de": "Der Gesteinstyp ist {_embedding_features_with_rock:rock}, wie auf dem umgebenden Felsen angegeben" + }, + "freeform": { + "key": "_embedding_features_with_rock:rock" + } + } + ], + "presets": [ + { + "title": { + "en": "a climbing route", + "nl": "een klimroute", + "fr": "une voie d’escalade", + "de": "eine kletterroute", + "it": "una via di arrampicata" + }, + "tags": [ + "sport=climbing", + "climbing=route" + ] + } + ], + "mapRendering": [ + { + "icon": { + "render": "circle:white;./assets/themes/climbing/climbing_route.svg" + }, + "iconSize": { + "render": "28,28,center" + }, + "location": [ + "point", + "centroid" + ], + "label": { + "mappings": [ + { + "if": { + "and": [ + "climbing:grade:french~*", + "name~*" + ] + }, + "then": "
    {name} {climbing:grade:french}
    " + }, + { + "if": "name~*", + "then": "
    {name}
    " + } + ] + } + }, + { + "color": { + "render": "#0f0" + }, + "width": { + "render": "4" + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/crossings/crossings.json b/assets/layers/crossings/crossings.json index dd6a4f7b5c..47dc513d0a 100644 --- a/assets/layers/crossings/crossings.json +++ b/assets/layers/crossings/crossings.json @@ -4,13 +4,16 @@ "en": "Crossings", "nl": "Oversteekplaatsen", "de": "Kreuzungen", - "fr": "Traversée" + "fr": "Traversée", + "ca": "Encreuaments", + "da": "Overgange" }, "description": { "en": "Crossings for pedestrians and cyclists", "nl": "Oversteekplaatsen voor voetgangers en fietsers", "de": "Übergänge für Fußgänger und Radfahrer", - "fr": "Traversée pour piétons et cyclistes" + "fr": "Traversée pour piétons et cyclistes", + "da": "Overgange for fodgængere og cyklister" }, "source": { "osmTags": { @@ -26,7 +29,8 @@ "en": "Crossing", "nl": "Oversteekplaats", "de": "Kreuzung", - "fr": "Traversée" + "fr": "Traversée", + "ca": "Encreuament" }, "mappings": [ { @@ -36,7 +40,8 @@ "nl": "Verkeerslicht", "ru": "Светофор", "de": "Ampel", - "fr": "Feu de signalisation" + "fr": "Feu de signalisation", + "ca": "Semàfor" } }, { @@ -53,10 +58,12 @@ "presets": [ { "title": { - "en": "Crossing", - "nl": "Oversteekplaats", - "de": "Kreuzung", - "fr": "Traversée" + "en": "a crossing", + "nl": "een oversteekplaats", + "de": "eine kreuzung", + "fr": "une traversée", + "ca": "un pas de vianants", + "da": "en overgang" }, "tags": [ "highway=crossing" @@ -65,7 +72,8 @@ "en": "Crossing for pedestrians and/or cyclists", "nl": "Oversteekplaats voor voetgangers en/of fietsers", "de": "Kreuzung für Fußgänger und/oder Radfahrer", - "fr": "Traversée pour piétons et/ou cyclistes" + "fr": "Traversée pour piétons et/ou cyclistes", + "da": "Overgang for fodgængere og/eller cyklister" }, "preciseInput": { "preferredBackground": [ @@ -77,11 +85,12 @@ }, { "title": { - "en": "Traffic signal", - "nl": "Verkeerslicht", + "en": "a traffic signal", + "nl": "een verkeerslicht", "ru": "Светофор", - "de": "Ampel", - "fr": "Feu de signalisation" + "de": "eine ampel", + "fr": "une feu de signalisation", + "da": "et trafiksignal" }, "tags": [ "highway=traffic_signals" @@ -90,7 +99,8 @@ "en": "Traffic signal on a road", "nl": "Verkeerslicht op een weg", "de": "Ampel an einer Straße", - "fr": "Feu de signalisation sur la voie" + "fr": "Feu de signalisation sur la voie", + "da": "Trafiksignal på en vej" }, "preciseInput": { "preferredBackground": [ @@ -132,7 +142,8 @@ "then": { "en": "Zebra crossing", "nl": "Zebrapad", - "de": "Zebrastreifen" + "de": "Zebrastreifen", + "ca": "Pas de zebra" }, "hideInAnswer": true }, @@ -177,7 +188,8 @@ "question": { "en": "Is this crossing also for bicycles?", "nl": "Is deze oversteekplaats ook voor fietsers", - "de": "Können Radfahrer diese Kreuzung nutzen?" + "de": "Können Radfahrer diese Kreuzung nutzen?", + "da": "Er denne overgang også for cykler?" }, "condition": "highway=crossing", "mappings": [ @@ -186,7 +198,8 @@ "then": { "en": "A cyclist can use this crossing", "nl": "Een fietser kan deze oversteekplaats gebruiken", - "de": "Radfahrer können diese Kreuzung nutzen" + "de": "Radfahrer können diese Kreuzung nutzen", + "da": "En cyklist kan benytte denne overgang" } }, { @@ -194,7 +207,8 @@ "then": { "en": "A cyclist can not use this crossing", "nl": "Een fietser kan deze oversteekplaats niet gebruiken", - "de": "Radfahrer können diese Kreuzung nicht nutzen" + "de": "Radfahrer können diese Kreuzung nicht nutzen", + "da": "En cyklist kan ikke benytte denne overgang" } } ] diff --git a/assets/layers/cycleways_and_roads/cycleways_and_roads.json b/assets/layers/cycleways_and_roads/cycleways_and_roads.json index a0b7327c11..8c7131cd5d 100644 --- a/assets/layers/cycleways_and_roads/cycleways_and_roads.json +++ b/assets/layers/cycleways_and_roads/cycleways_and_roads.json @@ -35,7 +35,8 @@ "nl": "Fietspaden", "de": "Radwege", "ru": "Велосипедные дорожки", - "fr": "Pistes cyclables" + "fr": "Pistes cyclables", + "ca": "Vies ciclistes" }, "mappings": [ { @@ -50,7 +51,9 @@ "en": "Cycleway", "de": "Radweg", "ru": "Велосипедная дорожка", - "fr": "Piste cyclable" + "fr": "Piste cyclable", + "ca": "Via ciclista", + "da": "Cykelsti" } }, { @@ -59,7 +62,8 @@ "nl": "Fietssuggestiestrook", "en": "Shared lane", "de": "Gemeinsame Fahrspur", - "fr": "Voie partagée" + "fr": "Voie partagée", + "ca": "Carril compartit" } }, { @@ -68,7 +72,8 @@ "nl": "Fietsstrook", "en": "Bike lane", "de": "Fahrradspur", - "fr": "Bande cyclable" + "fr": "Bande cyclable", + "ca": "Carril bici" } }, { @@ -77,7 +82,8 @@ "en": "Cycleway next to the road", "nl": "Fietsweg naast de weg", "de": "Radweg neben der Straße", - "fr": "Piste cyclable séparée de la route" + "fr": "Piste cyclable séparée de la route", + "da": "Cykelsti ved siden af vejen" } }, { @@ -86,7 +92,9 @@ "nl": "Fietsstraat", "en": "Cyclestreet", "de": "Fahrradstraße", - "fr": "Vélorue" + "fr": "Vélorue", + "ca": "Carrer ciclista", + "da": "Cykelgade" } } ] @@ -166,7 +174,8 @@ "question": { "en": "Is this street lit?", "nl": "Is deze weg verlicht?", - "de": "Ist diese Straße beleuchtet?" + "de": "Ist diese Straße beleuchtet?", + "da": "Er denne gade belyst?" }, "mappings": [ { @@ -182,7 +191,8 @@ "then": { "en": "This road is not lit", "nl": "Deze weg is niet verlicht", - "de": "Diese Straße ist nicht beleuchtet" + "de": "Diese Straße ist nicht beleuchtet", + "da": "Denne vej er ikke belyst" } }, { @@ -190,7 +200,8 @@ "then": { "en": "This road is lit at night", "nl": "Deze weg is 's nachts verlicht", - "de": "Diese Straße ist nachts beleuchtet" + "de": "Diese Straße ist nachts beleuchtet", + "da": "Denne vej er belyst om natten" }, "hideInAnswer": true }, @@ -199,7 +210,8 @@ "then": { "en": "This road is lit 24/7", "nl": "Deze weg is 24/7 verlicht", - "de": "Diese Straße ist durchgehend beleuchtet" + "de": "Diese Straße ist durchgehend beleuchtet", + "da": "Denne vej er belyst døgnet rundt" } } ], @@ -796,9 +808,18 @@ "id": "Rambu lalu lintas apa yang dimiliki jalur sepeda ini?" }, "condition": { - "or": [ - "cycleway=lane", - "cycleway=track" + "and": [ + { + "or": [ + "cycleway=lane", + "cycleway=track" + ] + }, + { + "or": [ + "_country=be" + ] + } ] }, "mappings": [ @@ -808,11 +829,12 @@ "en": "Compulsory cycleway", "nl": "Verplicht fietspad", "de": "Vorgeschriebener Radweg", - "id": "Jalur sepeda wajib" + "id": "Jalur sepeda wajib", + "ca": "Via ciclista obligatòria" }, "hideInAnswer": "_country!=be", "icon": { - "path": "./assets/themes/cycle_infra/Belgian_road_sign_D07.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D07.svg", "class": "medium" } }, @@ -826,7 +848,7 @@ }, "hideInAnswer": true, "icon": { - "path": "./assets/themes/cycle_infra/Belgian_road_sign_D07.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D07.svg", "class": "medium" } }, @@ -836,7 +858,8 @@ "en": "Segregated foot/cycleway", "nl": "Afgescheiden voet-/fietspad", "de": "Getrennter Fuß-/Radweg", - "id": "Jalur pejalan kaki/sepeda terpisah" + "id": "Jalur pejalan kaki/sepeda terpisah", + "ca": "Via segregada a peu/ciclista" }, "hideInAnswer": "_country!=be", "addExtraTags": [ @@ -844,7 +867,7 @@ "cycleway:segregated=yes" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_road_sign_D09.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D09.svg", "class": "medium" } }, @@ -854,7 +877,8 @@ "en": "Unsegregated foot/cycleway", "nl": "Gedeeld voet-/fietspad", "de": "Gemeinsamer Fuß-/Radweg", - "id": "Jalur pejalan kaki/sepeda tidak terpisah" + "id": "Jalur pejalan kaki/sepeda tidak terpisah", + "ca": "Via no segregada a peu/ciclista" }, "hideInAnswer": "_country!=be", "addExtraTags": [ @@ -862,7 +886,7 @@ "cycleway:segregated=no" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_road_sign_D10.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D10.svg", "class": "medium" } }, @@ -885,9 +909,19 @@ "de": "Welches Verkehrszeichen hat dieser Radweg?" }, "condition": { - "or": [ - "highway=cycleway", - "highway=path" + "and": [ + { + "or": [ + "highway=cycleway", + "highway=path" + ] + }, + { + "or": [ + "_country=be", + "_country=nl" + ] + } ] }, "mappings": [ @@ -897,7 +931,8 @@ "en": "Compulsory cycleway", "nl": "Verplicht fietspad", "de": "Vorgeschriebener Radweg", - "id": "Jalur sepeda wajib" + "id": "Jalur sepeda wajib", + "ca": "Via ciclista obligatòria" }, "hideInAnswer": "_country!=be", "addExtraTags": [ @@ -907,7 +942,7 @@ "speed_pedelec=yes" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_road_sign_D07.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D07.svg", "class": "medium" } }, @@ -920,7 +955,7 @@ }, "hideInAnswer": true, "icon": { - "path": "./assets/themes/cycle_infra/Belgian_road_sign_D07.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D07.svg", "class": "medium" } }, @@ -929,7 +964,8 @@ "then": { "en": "Segregated foot/cycleway", "nl": "Afgescheiden voet-/fietspad", - "de": "Getrennter Fuß-/Radweg" + "de": "Getrennter Fuß-/Radweg", + "ca": "Via segregada a peu/ciclista" }, "hideInAnswer": "_country!=be", "addExtraTags": [ @@ -941,7 +977,7 @@ "segregated=yes" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_road_sign_D09.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D09.svg", "class": "medium" } }, @@ -950,7 +986,8 @@ "then": { "en": "Unsegregated foot/cycleway", "nl": "Gedeeld voet-/fietspad", - "de": "Gemeinsamer Fuß-/Radweg" + "de": "Gemeinsamer Fuß-/Radweg", + "ca": "Via no segregada a peu/ciclista" }, "hideInAnswer": "_country!=be", "addExtraTags": [ @@ -962,7 +999,56 @@ "segregated=no" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_road_sign_D10.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D10.svg", + "class": "medium" + } + }, + { + "if": "traffic_sign=NL:G11", + "then": { + "en": "Compulsory cycleway", + "nl": "Verplicht fietspad", + "ca": "Via ciclista obligatòria" + }, + "hideInAnswer": "_country!=nl", + "addExtraTags": [ + "mofa=yes", + "moped=no" + ], + "icon": { + "path": "./assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G11.svg", + "class": "medium" + } + }, + { + "if": "traffic_sign=NL:G12a", + "then": { + "en": "Compulsory (moped)cycleway", + "nl": "Verplicht bromfietspad" + }, + "hideInAnswer": "_country!=nl", + "addExtraTags": [ + "mofa=designated", + "moped=designated" + ], + "icon": { + "path": "./assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G12a.svg", + "class": "medium" + } + }, + { + "if": "traffic_sign=NL:G13", + "then": { + "en": "Non-compulsory cycleway", + "nl": "Onverplicht fietspad" + }, + "hideInAnswer": "_country!=nl", + "addExtraTags": [ + "mofa=no", + "moped=no" + ], + "icon": { + "path": "./assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G13.svg", "class": "medium" } }, @@ -979,9 +1065,9 @@ { "id": "cycleway-traffic-signs-supplementary", "question": { - "en": "Does the traffic sign D7 () have a supplementary sign?", - "nl": "Heeft het verkeersbord D7 () een onderbord?", - "de": "Hat das Verkehrszeichen D7 () ein Zusatzzeichen?" + "en": "Does the traffic sign D7 () have a supplementary sign?", + "nl": "Heeft het verkeersbord D7 () een onderbord?", + "de": "Hat das Verkehrszeichen D7 () ein Zusatzzeichen?" }, "condition": { "or": [ @@ -1001,7 +1087,7 @@ "cycleway:moped=designated" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_traffic_sign_M6.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M6.svg", "class": "medium" } }, @@ -1016,7 +1102,7 @@ "cycleway:speed_pedelec=designated" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_traffic_sign_M13.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M13.svg", "class": "medium" } }, @@ -1032,7 +1118,7 @@ "cycleway:speed_pedelec=designated" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_traffic_sign_M14.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M14.svg", "class": "medium" } }, @@ -1047,7 +1133,7 @@ "cycleway:moped=no" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_traffic_sign_M7.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M7.svg", "class": "medium" } }, @@ -1062,7 +1148,7 @@ "cycleway:speed_pedelec=no" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_traffic_sign_M15.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M15.svg", "class": "medium" } }, @@ -1078,7 +1164,7 @@ "cycleway:speed_pedelec=no" ], "icon": { - "path": "./assets/themes/cycle_infra/Belgian_traffic_sign_M16.svg", + "path": "./assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M16.svg", "class": "medium" } }, diff --git a/assets/themes/cycle_infra/Belgian_road_sign_D07.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D07.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_road_sign_D07.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D07.svg diff --git a/assets/themes/cycle_infra/Belgian_road_sign_D09.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D09.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_road_sign_D09.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D09.svg diff --git a/assets/themes/cycle_infra/Belgian_road_sign_D10.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D10.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_road_sign_D10.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_road_sign_D10.svg diff --git a/assets/themes/cycle_infra/Belgian_traffic_sign_M13.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M13.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_traffic_sign_M13.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M13.svg diff --git a/assets/themes/cycle_infra/Belgian_traffic_sign_M14.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M14.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_traffic_sign_M14.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M14.svg diff --git a/assets/themes/cycle_infra/Belgian_traffic_sign_M15.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M15.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_traffic_sign_M15.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M15.svg diff --git a/assets/themes/cycle_infra/Belgian_traffic_sign_M16.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M16.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_traffic_sign_M16.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M16.svg diff --git a/assets/themes/cycle_infra/Belgian_traffic_sign_M6.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M6.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_traffic_sign_M6.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M6.svg diff --git a/assets/themes/cycle_infra/Belgian_traffic_sign_M7.svg b/assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M7.svg similarity index 100% rename from assets/themes/cycle_infra/Belgian_traffic_sign_M7.svg rename to assets/layers/cycleways_and_roads/traffic_sign/be/Belgian_traffic_sign_M7.svg diff --git a/assets/layers/cycleways_and_roads/traffic_sign/be/license_info.json b/assets/layers/cycleways_and_roads/traffic_sign/be/license_info.json new file mode 100644 index 0000000000..494e4ad579 --- /dev/null +++ b/assets/layers/cycleways_and_roads/traffic_sign/be/license_info.json @@ -0,0 +1,92 @@ +[ + { + "path": "Belgian_road_sign_D07.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_road_sign_D07.svg" + ] + }, + { + "path": "Belgian_road_sign_D09.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_road_sign_D09.svg" + ] + }, + { + "path": "Belgian_road_sign_D10.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_road_sign_D10.svg" + ] + }, + { + "path": "Belgian_traffic_sign_M13.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M13.svg" + ] + }, + { + "path": "Belgian_traffic_sign_M14.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M14.svg" + ] + }, + { + "path": "Belgian_traffic_sign_M15.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M15.svg" + ] + }, + { + "path": "Belgian_traffic_sign_M16.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M16.svg" + ] + }, + { + "path": "Belgian_traffic_sign_M6.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M6.svg" + ] + }, + { + "path": "Belgian_traffic_sign_M7.svg", + "license": "CC0", + "authors": [ + "Belgische Wetgever" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M7.svg" + ] + } +] \ No newline at end of file diff --git a/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G11.svg b/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G11.svg new file mode 100644 index 0000000000..a7c5deddf5 --- /dev/null +++ b/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G11.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G12a.svg b/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G12a.svg new file mode 100644 index 0000000000..b3a11bf13c --- /dev/null +++ b/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G12a.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G13.svg b/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G13.svg new file mode 100644 index 0000000000..04265f6aa7 --- /dev/null +++ b/assets/layers/cycleways_and_roads/traffic_sign/nl/Nederlands_verkeersbord_G13.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/layers/cycleways_and_roads/traffic_sign/nl/license_info.json b/assets/layers/cycleways_and_roads/traffic_sign/nl/license_info.json new file mode 100644 index 0000000000..7ec57b5916 --- /dev/null +++ b/assets/layers/cycleways_and_roads/traffic_sign/nl/license_info.json @@ -0,0 +1,32 @@ +[ + { + "path": "Nederlands_verkeersbord_G11.svg", + "license": "CC0", + "authors": [ + "Ministerie van Infrastructuur en Waterstaat" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Nederlands_verkeersbord_G11.svg" + ] + }, + { + "path": "Nederlands_verkeersbord_G12a.svg", + "license": "CC0", + "authors": [ + "Ministerie van Infrastructuur en Waterstaat" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Nederlands_verkeersbord_G12a.svg" + ] + }, + { + "path": "Nederlands_verkeersbord_G13.svg", + "license": "CC0", + "authors": [ + "Ministerie van Infrastructuur en Waterstaat" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Nederlands_verkeersbord_G13.svg" + ] + } +] \ No newline at end of file diff --git a/assets/layers/defibrillator/defibrillator.json b/assets/layers/defibrillator/defibrillator.json index fa984a091d..83758d91bf 100644 --- a/assets/layers/defibrillator/defibrillator.json +++ b/assets/layers/defibrillator/defibrillator.json @@ -8,7 +8,9 @@ "nl": "Defibrillatoren", "de": "Defibrillatoren", "it": "Defibrillatori", - "ru": "Дефибрилляторы" + "ru": "Дефибрилляторы", + "sl": "Defibrilatorji", + "da": "Hjertestartere" }, "source": { "osmTags": "emergency=defibrillator" @@ -27,20 +29,23 @@ "nl": "Defibrillator", "de": "Defibrillator", "it": "Defibrillatore", - "ru": "Дефибриллятор" + "ru": "Дефибриллятор", + "sl": "Defibrilator" } }, "presets": [ { "title": { - "en": "Defibrillator", + "en": "a defibrillator", "ca": "Desfibril·lador", - "es": "Desfibrilador", - "fr": "Défibrillateur", - "nl": "Defibrillator", - "de": "Defibrillator", - "it": "Defibrillatore", - "ru": "Дефибриллятор" + "es": "una desfibrilador", + "fr": "une défibrillateur", + "nl": "een defibrillator", + "de": "eine defibrillator", + "it": "una defibrillatore", + "ru": "Дефибриллятор", + "sl": "Defibrilator", + "da": "en hjertestarter" }, "tags": [ "emergency=defibrillator" @@ -48,8 +53,10 @@ }, { "title": { - "en": "defibrillator mounted on a wall", - "nl": "defibrillator die aan een muur hangt" + "en": "a defibrillator mounted on a wall", + "nl": "een defibrillator die aan een muur hangt", + "sl": "defibrilator je pritrjen na steno", + "da": "en hjertestarter monteret på en væg" }, "tags": [ "emergency=defibrillator" @@ -72,7 +79,8 @@ "fr": "Ce défibrillateur est-il disposé en intérieur ?", "nl": "Hangt deze defibrillator binnen of buiten?", "de": "Befindet sich dieser Defibrillator im Gebäude?", - "it": "Questo defibrillatore si trova all’interno?" + "it": "Questo defibrillatore si trova all’interno?", + "sl": "Ali se ta defibrilator nahaja znotraj?" }, "mappings": [ { @@ -84,7 +92,8 @@ "fr": "Ce défibrillateur est en intérieur (dans un batiment)", "nl": "Deze defibrillator bevindt zich in een gebouw", "de": "Dieser Defibrillator befindet sich im Gebäude", - "it": "Questo defibrillatore si trova all’interno" + "it": "Questo defibrillatore si trova all’interno", + "sl": "Defibrilator se nahaja znotraj" } }, { @@ -96,7 +105,8 @@ "fr": "Ce défibrillateur est situé en extérieur", "nl": "Deze defibrillator hangt buiten", "de": "Dieser Defibrillator befindet sich im Freien", - "it": "Questo defibrillatore si trova all’esterno" + "it": "Questo defibrillatore si trova all’esterno", + "sl": "Defibrilator se nahaja zunaj" } } ] @@ -109,7 +119,9 @@ "fr": "Ce défibrillateur est-il librement accessible ?", "nl": "Is deze defibrillator vrij toegankelijk?", "de": "Ist dieser Defibrillator frei zugänglich?", - "it": "Questo defibrillatore è liberamente accessibile?" + "it": "Questo defibrillatore è liberamente accessibile?", + "sl": "Ali je ta defibrilator prosto dostopen?", + "da": "Er denne hjertestarter frit tilgængelig?" }, "render": { "en": "Access is {access}", @@ -118,7 +130,8 @@ "fr": "{access} accessible", "nl": "Toegankelijkheid is {access}", "de": "Zugang ist {access}", - "it": "Accesso è {access}" + "it": "Accesso è {access}", + "sl": "Dostop je {access}" }, "freeform": { "key": "access", @@ -137,7 +150,9 @@ "nl": "Publiek toegankelijk", "de": "Öffentlich zugänglich", "it": "Pubblicamente accessibile", - "ru": "Общедоступный" + "ru": "Общедоступный", + "sl": "Javno dostopen", + "da": "Offentligt tilgængelig" } }, { @@ -150,7 +165,9 @@ "nl": "Publiek toegankelijk", "de": "Öffentlich zugänglich", "it": "Pubblicamente accessibile", - "ru": "Общедоступный" + "ru": "Общедоступный", + "sl": "Javno dostopen", + "da": "Offentligt tilgængelig" }, "hideInAnswer": true }, @@ -164,7 +181,8 @@ "nl": "Enkel toegankelijk voor klanten", "de": "Nur für Kunden zugänglich", "it": "Accessibile solo ai clienti", - "ru": "Доступно только для клиентов" + "ru": "Доступно только для клиентов", + "sl": "Dostopen samo strankam" } }, { @@ -176,7 +194,8 @@ "fr": "Non accessible au public (par exemple réservé au personnel, au propriétaire, ...)", "nl": "Niet toegankelijk voor het publiek (bv. enkel voor personeel, de eigenaar, ...)", "de": "Nicht für die Öffentlichkeit zugänglich (z.B. nur für das Personal, die Eigentümer, ...)", - "it": "Non accessibile al pubblico (ad esempio riservato al personale, ai proprietari, etc.)" + "it": "Non accessibile al pubblico (ad esempio riservato al personale, ai proprietari, etc.)", + "sl": "Ni dostopen splošni javnosti (npr. samo za osebje, za lastnike, ...)" } }, { @@ -186,7 +205,8 @@ "nl": "Niet toegankelijk, mogelijk enkel voor professionals", "fr": "Pas accessible, peut-être uniquement à usage professionnel", "it": "Non accessibile, potrebbe essere solo per uso professionale", - "de": "Nicht zugänglich, möglicherweise nur für betriebliche Nutzung" + "de": "Nicht zugänglich, möglicherweise nur für betriebliche Nutzung", + "sl": "Ni dostopen, morda samo za profesionalno rabo" } } ], @@ -198,7 +218,8 @@ "nl": "Is dit een gewone automatische defibrillator of een manueel toestel enkel voor professionals?", "fr": "Est-ce un défibrillateur automatique normal ou un défibrillateur manuel à usage professionnel uniquement ?", "it": "Si tratta di un normale defibrillatore automatico o un defibrillatore manuale riservato ai professionisti?", - "de": "Ist dies ein normaler automatischer Defibrillator oder ein manueller Defibrillator nur für Profis?" + "de": "Ist dies ein normaler automatischer Defibrillator oder ein manueller Defibrillator nur für Profis?", + "sl": "Ali je to navaden avtomatski defibrilator ali ročni defibrilator namenjen poklicnim reševalcem?" }, "condition": { "and": [ @@ -213,7 +234,8 @@ "nl": "Er is geen info over het soort toestel", "fr": "Il n'y a pas d'information sur le type de dispositif", "it": "Non vi sono informazioni riguardanti il tipo di questo dispositivo", - "de": "Es gibt keine Informationen über den Gerätetyp" + "de": "Es gibt keine Informationen über den Gerätetyp", + "sl": "Ni informacij o vrsti naprave" }, "hideInAnswer": true }, @@ -224,7 +246,9 @@ "nl": "Dit is een manueel toestel enkel voor professionals", "fr": "C'est un défibrillateur manuel pour professionnel", "it": "Questo è un defibrillatore manuale per professionisti", - "de": "Dies ist ein manueller Defibrillator für den professionellen Einsatz" + "de": "Dies ist ein manueller Defibrillator für den professionellen Einsatz", + "sl": "To je ročni defibrilator za poklicne reševalce", + "da": "Dette er en manuel hjertestarter til professionelle" } }, { @@ -235,14 +259,18 @@ "fr": "C'est un défibrillateur automatique manuel", "it": "È un normale defibrillatore automatico", "ru": "Это обычный автоматический дефибриллятор", - "de": "Dies ist ein normaler automatischer Defibrillator" + "de": "Dies ist ein normaler automatischer Defibrillator", + "sl": "To je normalen avtomatski defibrilator", + "da": "Dette er en normal automatisk hjertestarter" } }, { "if": "defibrillator~*", "then": { "en": "This is a special type of defibrillator: {defibrillator}", - "nl": "Dit is een speciaal type defibrillator: {defibrillator}" + "nl": "Dit is een speciaal type defibrillator: {defibrillator}", + "sl": "To je posebna vrsta defibrilatorja: {defibrillator}", + "da": "Dette er en særlig type hjertestarter: {defibrillator}" }, "hideInAnswer": true } @@ -257,7 +285,8 @@ "fr": "À quel étage est situé ce défibrillateur ?", "nl": "Op welke verdieping bevindt deze defibrillator zich?", "de": "In welchem Stockwerk befindet sich dieser Defibrillator?", - "it": "A che piano si trova questo defibrillatore?" + "it": "A che piano si trova questo defibrillatore?", + "sl": "V katerem nadstropju je defibrilator?" }, "condition": { "and": [ @@ -275,7 +304,8 @@ "fr": "Ce défibrillateur est à l'étage {level}", "nl": "De defibrillator bevindt zicht op verdieping {level}", "de": "Dieser Defibrallator befindet sich im {level}. Stockwerk", - "it": "Questo defibrillatore è al piano {level}" + "it": "Questo defibrillatore è al piano {level}", + "sl": "Ta defibrilator je v {level}. nadstropju" }, "mappings": [ { @@ -285,7 +315,8 @@ "nl": "Deze defibrillator bevindt zich gelijkvloers", "fr": "Ce défibrillateur est au rez-de-chaussée", "it": "Questo defibrillatore è al pian terreno", - "de": "Dieser Defibrillator befindet sich im Erdgeschoss" + "de": "Dieser Defibrillator befindet sich im Erdgeschoss", + "sl": "Ta defibrilator je v pritličju" } }, { @@ -295,7 +326,8 @@ "nl": "Deze defibrillator is op de eerste verdieping", "fr": "Ce défibrillateur est au premier étage", "it": "Questo defibrillatore è al primo piano", - "de": "Dieser Defibrillator befindet sich in der ersten Etage" + "de": "Dieser Defibrillator befindet sich in der ersten Etage", + "sl": "Ta defibrilator je v prvem nadstropju" } } ], @@ -307,7 +339,8 @@ "en": "Extra information about the location (in the local languagel):
    {defibrillator:location}", "fr": "Informations supplémentaires à propos de l'emplacement (dans la langue locale) :
    {defibrillator:location}", "it": "Informazioni supplementari circa la posizione (in lingua locale):
    {defibrillator:location}", - "de": "Zusätzliche Informationen über den Standort (in der Landessprache):
    {defibrillator:location}" + "de": "Zusätzliche Informationen über den Standort (in der Landessprache):
    {defibrillator:location}", + "sl": "Dodatne informacije o lokaciji (v lokalnem jeziku):
    {defibrillator:location}" }, "question": { "en": "Please give some explanation on where the defibrillator can be found (in the local language)", @@ -316,7 +349,8 @@ "fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (dans la langue local)", "nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in de plaatselijke taal)", "de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (in der lokalen Sprache)", - "it": "Indica più precisamente dove si trova il defibrillatore (in lingua locale)" + "it": "Indica più precisamente dove si trova il defibrillatore (in lingua locale)", + "sl": "Prosimo, opišite kje se nahaja defibrilator (v lokalnem jeziku)" }, "freeform": { "type": "text", @@ -330,7 +364,8 @@ "en": "Extra information about the location (in English):
    {defibrillator:location:en}", "fr": "Informations supplémentaires à propos de l'emplacement (en anglais) :
    {defibrillator:location:en}", "it": "Informazioni supplementari circa la posizione (in inglese):
    {defibrillator:location:en}", - "de": "Zusätzliche Informationen über den Standort (auf Englisch):
    {defibrillator:location:en}" + "de": "Zusätzliche Informationen über den Standort (auf Englisch):
    {defibrillator:location:en}", + "sl": "Dodatne informacije o lokaciji (v Angleščini):
    {defibrillator:location:en}" }, "question": { "en": "Please give some explanation on where the defibrillator can be found (in English)", @@ -339,7 +374,8 @@ "fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (en englais)", "nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in het Engels)", "de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (auf Englisch)", - "it": "Indica più precisamente dove si trova il defibrillatore (in inglese)" + "it": "Indica più precisamente dove si trova il defibrillatore (in inglese)", + "sl": "Prosimo, opišite kje se nahaja defibrilator (v Angleščini)" }, "freeform": { "type": "text", @@ -353,7 +389,8 @@ "en": "Extra information about the location (in French):
    {defibrillator:location:fr}", "fr": "Informations supplémentaires à propos de l'emplacement (en Français) :
    {defibrillator:location:fr}", "it": "Informazioni supplementari circa la posizione (in francese):
    {defibrillator:location:fr}", - "de": "Zusätzliche Informationen zum Standort (auf Französisch):
    {defibrillator:location:fr}" + "de": "Zusätzliche Informationen zum Standort (auf Französisch):
    {defibrillator:location:fr}", + "sl": "Dodatne informacije o lokaciji (v Francoščini):
    {defibrillator:location:fr}" }, "question": { "en": "Please give some explanation on where the defibrillator can be found (in French)", @@ -362,7 +399,8 @@ "fr": "Veuillez indiquez plus précisément où se situe le défibrillateur (en français)", "nl": "Gelieve meer informatie te geven over de exacte locatie van de defibrillator (in het Frans)", "de": "Bitte geben Sie einige Erläuterungen dazu, wo der Defibrillator zu finden ist (auf Französisch)", - "it": "Indica più precisamente dove si trova il defibrillatore (in francese)" + "it": "Indica più precisamente dove si trova il defibrillatore (in francese)", + "sl": "Prosimo, opišite kje se nahaja defibrilator (v Francoščini)" }, "freeform": { "type": "text", @@ -377,14 +415,16 @@ "en": "Official identification number of the device: {ref}", "fr": "Numéro d'identification officiel de ce dispositif : {ref}", "it": "Numero identificativo ufficiale di questo dispositivo:{ref}", - "de": "Offizielle Identifikationsnummer des Geräts: {ref}" + "de": "Offizielle Identifikationsnummer des Geräts: {ref}", + "sl": "Uradna identifikacijska številka te naprave: {ref}" }, "question": { "en": "What is the official identification number of the device? (if visible on device)", "nl": "Wat is het officieel identificatienummer van het toestel? (indien zichtbaar op toestel)", "fr": "Quel est le numéro d'identification officiel de ce dispositif ? (si il est visible sur le dispositif)", "it": "Qual è il numero identificativo ufficiale di questo dispositivo? (se visibile sul dispositivo)", - "de": "Wie lautet die offizielle Identifikationsnummer des Geräts? (falls am Gerät sichtbar)" + "de": "Wie lautet die offizielle Identifikationsnummer des Geräts? (falls am Gerät sichtbar)", + "sl": "Kakšna je uradna identifikacijska številka te naprave? (če je vidna na napravi)" }, "freeform": { "type": "text", @@ -398,14 +438,16 @@ "nl": "Email voor vragen over deze defibrillator: {email}", "fr": "Adresse électronique pour des questions à propos de ce défibrillateur : {email}", "it": "Indirizzo email per le domande su questo defibrillatore:{email}", - "de": "E-Mail für Fragen zu diesem Defibrillator: {email}" + "de": "E-Mail für Fragen zu diesem Defibrillator: {email}", + "sl": "Email naslov za vprašanja o tem defibrilatorju: {email}" }, "question": { "en": "What is the email for questions about this defibrillator?", "nl": "Wat is het email-adres voor vragen over deze defibrillator", "fr": "Quelle est l'adresse électronique pour des questions à propos de ce défibrillateur ?", "it": "Qual è l’indirizzo email per le domande riguardanti questo defibrillatore?", - "de": "Wie lautet die E-Mail für Fragen zu diesem Defibrillator?" + "de": "Wie lautet die E-Mail für Fragen zu diesem Defibrillator?", + "sl": "Kakšen je email naslov za vprašanja o tem defibrilatorju?" }, "freeform": { "key": "email", @@ -419,14 +461,16 @@ "fr": "Numéro de téléphone pour questions sur le défibrillateur : {phone}", "nl": "Telefoonnummer voor vragen over deze defibrillator: {phone}", "it": "Numero di telefono per le domande su questo defibrillatore:{phone}", - "de": "Telefonnummer für Fragen zu diesem Defibrillator: {phone}" + "de": "Telefonnummer für Fragen zu diesem Defibrillator: {phone}", + "sl": "Telefonska številka za vprašanja o tem defibrilatorju: {phone}" }, "question": { "en": "What is the phone number for questions about this defibrillator?", "fr": "Quel est le numéro de téléphone pour questions sur le défibrillateur ?", "nl": "Wat is het telefoonnummer voor vragen over deze defibrillator", "it": "Qual è il numero di telefono per le domande riguardanti questo defibrillatore?", - "de": "Wie lautet die Telefonnummer für Fragen zu diesem Defibrillator?" + "de": "Wie lautet die Telefonnummer für Fragen zu diesem Defibrillator?", + "sl": "Kakšna je telefonska številka za vprašanja o tem defibrilatorju?" }, "freeform": { "key": "phone", @@ -441,7 +485,9 @@ "fr": "{opening_hours_table(opening_hours)}", "it": "{opening_hours_table(opening_hours)}", "ru": "{opening_hours_table(opening_hours)}", - "de": "{opening_hours_table(opening_hours)}" + "de": "{opening_hours_table(opening_hours)}", + "sl": "{opening_hours_table(opening_hours)}", + "ca": "{opening_hours_table(opening_hours)}" }, "question": { "en": "At what times is this defibrillator available?", @@ -449,7 +495,8 @@ "fr": "À quels horaires ce défibrillateur est-il accessible ?", "it": "In quali orari è disponibile questo defibrillatore?", "ru": "В какое время доступен этот дефибриллятор?", - "de": "Zu welchen Zeiten ist dieser Defibrillator verfügbar?" + "de": "Zu welchen Zeiten ist dieser Defibrillator verfügbar?", + "sl": "Ob katerih urah je ta defibrilator na voljo?" }, "freeform": { "key": "opening_hours", @@ -463,7 +510,8 @@ "nl": "24/7 open (inclusief feestdagen)", "fr": "Ouvert 24/7 (jours feriés inclus)", "it": "Aperto 24/7 (festivi inclusi)", - "de": "24/7 geöffnet (auch an Feiertagen)" + "de": "24/7 geöffnet (auch an Feiertagen)", + "sl": "Na voljo 24/7 (tudi za praznike)" } } ], @@ -477,14 +525,16 @@ "it": "Informazioni supplementari: {description}", "ru": "Дополнительная информация: {description}", "de": "Zusätzliche Informationen: {description}", - "id": "Informasi tambahan: {description}" + "id": "Informasi tambahan: {description}", + "sl": "Dodatne informacije: {description}" }, "question": { "en": "Is there any useful information for users that you haven't been able to describe above? (leave blank if no)", "nl": "Is er nog iets bijzonder aan deze defibrillator dat je nog niet hebt kunnen meegeven? (laat leeg indien niet)", "fr": "Y a-t-il des informations utiles pour les utilisateurs que vous n'avez pas pu décrire ci-dessus ? (laisser vide sinon)", "it": "Vi sono altre informazioni utili agli utenti che non è stato possibile aggiungere prima? (lasciare vuoto in caso negativo)", - "de": "Gibt es nützliche Informationen für Benutzer, die Sie oben nicht beschreiben konnten? (leer lassen, wenn nein)" + "de": "Gibt es nützliche Informationen für Benutzer, die Sie oben nicht beschreiben konnten? (leer lassen, wenn nein)", + "sl": "Ali imate še kakšne uporabne informacije za uporabnike, ki jih niste mogli podati zgoraj? (pustite prazno če jih nimate)" }, "freeform": { "key": "description", @@ -498,14 +548,16 @@ "nl": "Wanneer is deze defibrillator het laatst gecontroleerd in OpenStreetMap?", "fr": "Quand le défibrillateur a-t-il été vérifié pour la dernière fois ?", "it": "Quando è stato verificato per l’ultima volta questo defibrillatore?", - "de": "Wann wurde dieser Defibrillator zuletzt überprüft?" + "de": "Wann wurde dieser Defibrillator zuletzt überprüft?", + "sl": "Kdaj je bil ta defibrilator nazadnje opažen?" }, "render": { "en": "This defibrillator was last surveyed on {survey:date}", "nl": "Deze defibrillator is nagekeken in OSM op {survey:date}", "fr": "Ce défibrillateur a été vérifié pour la dernière fois le {survey:date}", "it": "Questo defibrillatore è stato verificato per l‘ultima volta in data {survey:date}", - "de": "Dieser Defibrillator wurde zuletzt am {survey:date} überprüft" + "de": "Dieser Defibrillator wurde zuletzt am {survey:date} überprüft", + "sl": "Ta defibrilator je bil nazadnje opažen {survey:date}" }, "freeform": { "key": "survey:date", @@ -520,7 +572,9 @@ "fr": "Vérifié aujourd'hui !", "it": "Verificato oggi!", "ru": "Проверено сегодня!", - "de": "Heute überprüft!" + "de": "Heute überprüft!", + "sl": "Preverjeno danes!", + "ca": "Comprovat avui!" } } ], @@ -533,14 +587,16 @@ "fr": "Informations supplémentaires pour les experts d'OpenStreetMap : {fixme}", "it": "Informazioni supplementari per gli esperti di OpenStreetMap: {fixme}", "de": "Zusätzliche Informationen für OpenStreetMap-Experten: {fixme}", - "ru": "Дополнительная информация для экспертов OpenStreetMap: {fixme}" + "ru": "Дополнительная информация для экспертов OpenStreetMap: {fixme}", + "sl": "Dodatne informacije za OpenStreetMap strokovnjake: {fixme}" }, "question": { "en": "Is there something wrong with how this is mapped, that you weren't able to fix here? (leave a note to OpenStreetMap experts)", "nl": "Is er iets mis met de informatie over deze defibrillator dat je hier niet opgelost kreeg? (laat hier een berichtje achter voor OpenStreetMap experts)", "fr": "Y a-t-il quelque chose qui ne va pas dans la manière dont ça a été cartographié, et que vous n'avez pas pu réparer ici ? (laisser une note pour les experts d'OpenStreetMap)", "it": "C’è qualcosa di sbagliato riguardante come è stato mappato, che non si è potuto correggere qua? (lascia una nota agli esperti di OpenStreetMap)", - "de": "Gibt es einen Fehler in der Kartierung, den Sie hier nicht beheben konnten? (hinterlasse eine Notiz an OpenStreetMap-Experten)" + "de": "Gibt es einen Fehler in der Kartierung, den Sie hier nicht beheben konnten? (hinterlasse eine Notiz an OpenStreetMap-Experten)", + "sl": "Ali je kaj narobe s tem vnosom na zemljevid, in tega niste mogli sami popraviti tu? (pustite opombo OpenStreetMap strokovnjakom)" }, "freeform": { "key": "fixme", @@ -583,6 +639,7 @@ ], "description": { "en": "A layer showing defibrillators which can be used in case of emergency. This contains public defibrillators, but also defibrillators which might need staff to fetch the actual device", - "nl": "Een laag die defibrillatoren toont die je kan gebruiken bij noodgevallen. Dit omvat zowel publiek beschikbare toestellen als defibrillatoren waarvoor het toestel enkel door personeel aangeboden kan worden" + "nl": "Een laag die defibrillatoren toont die je kan gebruiken bij noodgevallen. Dit omvat zowel publiek beschikbare toestellen als defibrillatoren waarvoor het toestel enkel door personeel aangeboden kan worden", + "sl": "Sloj prikazuje defibrilatorje, ki jih je možno uporabiti v primeru sile. Sloj poleg javno dostopnih defibrilatorjev vsebuje tudi tiste, ki za dostop morda potrebujejo pomoč osebja" } } \ No newline at end of file diff --git a/assets/layers/direction/direction.json b/assets/layers/direction/direction.json index 81dc20931b..bd98af2f72 100644 --- a/assets/layers/direction/direction.json +++ b/assets/layers/direction/direction.json @@ -6,7 +6,8 @@ "fr": "Visualisation de la direction", "it": "Visualizzazione della direzione", "ru": "Визуализация направления", - "de": "Visualisierung der Richtung" + "de": "Aufnahmewinkel der Kamera anzeigen", + "ca": "Direcció de la visualització" }, "minzoom": 16, "source": { @@ -25,7 +26,8 @@ "nl": "Deze laag toont de oriëntatie van een object", "fr": "Cette couche visualise les directions", "it": "Questo livello visualizza le direzioni", - "de": "Diese Ebene visualisiert Richtungen" + "de": "Diese Ebene visualisiert Richtungen", + "ru": "Этот слой визуализирует направление" }, "tagRenderings": [], "stroke": "0", diff --git a/assets/layers/dogpark/dog-park.svg b/assets/layers/dogpark/dog-park.svg new file mode 100644 index 0000000000..4af873c799 --- /dev/null +++ b/assets/layers/dogpark/dog-park.svg @@ -0,0 +1,60 @@ + +image/svg+xml diff --git a/assets/layers/dogpark/dogpark.json b/assets/layers/dogpark/dogpark.json new file mode 100644 index 0000000000..35eaebe456 --- /dev/null +++ b/assets/layers/dogpark/dogpark.json @@ -0,0 +1,144 @@ +{ + "id": "dogpark", + "source": { + "osmTags": { + "or": [ + "leisure=dog_park", + { + "and": [ + "leisure=park", + "dog=unleashed" + ] + } + ] + } + }, + "minzoom": 10, + "presets": [ + { + "title": { + "en": "a dog park", + "da": "en hundeskov" + }, + "tags": [ + "leisure=dog_park" + ], + "description": { + "en": "A place for dogs, where they can run unleashed", + "da": "En hundeskov eller hundegård beregnet til hunde, hvor de kan løbe uden snor" + } + } + ], + "name": { + "en": "dog parks", + "da": "hundeskove" + }, + "title": { + "render": { + "en": "dog park", + "da": "hundeskov" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "*": "{name}" + } + } + ] + }, + "mapRendering": [ + { + "location": [ + "point", + "centroid" + ], + "icon": "./assets/layers/dogpark/dog-park.svg", + "iconSize": "40,40,center", + "label": { + "mappings": [ + { + "if": "name~*", + "then": "
    {name}
    " + } + ] + } + }, + { + "color": "#ff0", + "width": 5 + } + ], + "tagRenderings": [ + { + "id": "dogpark-fenced", + "mappings": [ + { + "if": "barrier=fence", + "then": { + "en": "This dogpark is fenced all around", + "da": "Denne hundskov er indhegnet" + } + }, + { + "if": "barrier=no", + "then": { + "en": "This dogpark is not fenced all around", + "da": "Denne hundskov er ikke indhegnet" + } + } + ], + "question": { + "en": "It this dog park fenced in?", + "da": "Er denne hundeskov indhegnet?" + } + }, + { + "id": "smalldogs", + "mappings": [ + { + "if": "small_dog=separate", + "then": { + "en": "Have separate area for puppies and small dogs", + "da": "Har en indhegning til hvalpe og små hunde" + } + }, + { + "if": "small_dog=shared", + "then": { + "en": "Does not have a separate area for puppies and small dogs", + "da": "Har ikke en indhegning til hvalpe og små hunde" + } + } + ], + "question": { + "en": "Does this dog park have a separate fenced in area for small dogs and puppies?", + "da": "Har denne hundeskov et separat indhegnet område for små hunde og hvalpe (hvalpegård)?" + } + }, + { + "question": { + "en": "What is the name of this dog park?", + "da": "Hvad hedder denne hundeskov?" + }, + "render": { + "en": "The name of this dog park is {name}", + "de": "Denne hundeskov hedder {name}" + }, + "freeform": { + "key": "name" + }, + "id": "Name" + }, + { + "id": "dogarea", + "render": { + "en": "This dogpark is {_surface:ha} ha big", + "da": "Denne hundeskov er på {_surface:ha} hektar" + }, + "condition": "_surface:ha!=0" + }, + "reviews", + "images" + ] +} \ No newline at end of file diff --git a/assets/layers/dogpark/license_info.json b/assets/layers/dogpark/license_info.json new file mode 100644 index 0000000000..1a51abf46c --- /dev/null +++ b/assets/layers/dogpark/license_info.json @@ -0,0 +1,13 @@ +[ + { + "path": "dog-park.svg", + "license": "CC0 1.0", + "authors": [ + "Public Domain Symbols", + "Niels Elgaard Larsen" + ], + "sources": [ + "https://openclipart.org/detail/260714/dogpark15" + ] + } +] \ No newline at end of file diff --git a/assets/layers/drinking_water/drinking_water.json b/assets/layers/drinking_water/drinking_water.json index 22c659bcfe..6531e7b638 100644 --- a/assets/layers/drinking_water/drinking_water.json +++ b/assets/layers/drinking_water/drinking_water.json @@ -5,11 +5,12 @@ "nl": "Drinkbaar water", "fr": "Eau potable", "gl": "Auga potábel", - "de": "Trinkwasserstelle", + "de": "Trinkwasserstellen", "it": "Acqua potabile", "ru": "Питьевая вода", "id": "Air minum", - "hu": "Ivóvíz" + "hu": "Ivóvíz", + "ca": "Aigua potable" }, "title": { "render": { @@ -21,7 +22,8 @@ "it": "Acqua potabile", "ru": "Питьевая вода", "id": "Air minum", - "hu": "Ivóvíz" + "hu": "Ivóvíz", + "ca": "Aigua potable" } }, "source": { @@ -42,12 +44,12 @@ "presets": [ { "title": { - "en": "drinking water", + "en": "a drinking water", "nl": "drinkbaar water", - "fr": "eau potable", + "fr": "une eau potable", "gl": "auga potábel", - "de": "trinkwasser", - "it": "acqua potabile", + "de": "eine trinkwasser", + "it": "una acqua potabile", "ru": "питьевая вода", "id": "air minum", "hu": "ivóvíz" @@ -87,7 +89,7 @@ "nl": "Deze drinkwaterfontein werkt", "it": "La fontanella funziona", "fr": "Cette fontaine fonctionne", - "de": "Diese Trinkwasserstelle funktioniert", + "de": "Diese Trinkwasserstelle ist in Betrieb", "hu": "Ez az ivóvízkút működik" } }, @@ -157,7 +159,7 @@ "en": "There is another drinking water fountain at {_closest_other_drinking_water_distance} meter", "nl": "Er bevindt zich een ander drinkwaterpunt op {_closest_other_drinking_water_distance} meter", "it": "C’è un’altra fontanella a {_closest_other_drinking_water_distance} metri", - "de": "Ein weiterer Trinkwasserbrunnen befindet sich in {_closest_other_drinking_water_distance} Meter", + "de": "Eine weitere Trinkwasserstelle befindet sich in {_closest_other_drinking_water_distance} Meter", "fr": "Une autre source d’eau potable est à {_closest_other_drinking_water_distance} mètres a>", "hu": "Van egy másik ivóvízkút {_closest_other_drinking_water_distance} méter távolságra" }, @@ -171,7 +173,34 @@ "amenity=" ] }, - "neededChangesets": 1 + "neededChangesets": 1, + "nonDeleteMappings": [ + { + "if": { + "and": [ + "drinking_water=no", + "amenity=fountain" + ] + }, + "then": { + "en": "This is a decorative fountain of which the water is not drinkable by humans", + "nl": "Dit is een decoratieve fontein waarvan het water niet geschikt is om te drinken door mensen" + } + }, + { + "if": { + "and": [ + "drinking_water=no", + "amenity=", + "man_made=water_tap" + ] + }, + "then": { + "en": "This is a water tap or water pump with non-drinkable water.
    Examples are water taps with rain water to tap water for nearby plants
    ", + "nl": "Dit is een waterkraan of waterpomp met ondrinkbaar water.
    Bijvoorbeeld een waterkraan met regenwater om planten water mee te gevenThis might be written on the street name sign", - "nl": "Naar wat is dit object vernoemd?
    Dit staat mogelijks vermeld op het straatnaambordje", + "nl": "Naar wat is dit object vernoemd?
    Dit staat mogelijks vermeld op het straatnaambordje", "de": "Wonach ist dieses Objekt benannt?
    Das könnte auf einem Straßenschild stehen" }, "render": { "en": "Named after {name:etymology}", "nl": "Vernoemd naar {name:etymology}", - "de": "Benannt nach {name:etymology}" + "de": "Benannt nach {name:etymology}", + "da": "Opkaldt efter {name:etymology}" }, "freeform": { "key": "name:etymology" @@ -111,7 +172,8 @@ "then": { "en": "The origin of this name is unknown in all literature", "nl": "De oorsprong van deze naam is onbekend in de literatuur", - "de": "Der Ursprung dieses Namens ist in der gesamten Literatur unbekannt" + "de": "Der Ursprung dieses Namens ist in der gesamten Literatur unbekannt", + "da": "Oprindelsen af dette navn er ukendt i al litteratur" } } ], @@ -139,14 +201,17 @@ { "id": "etymology_multi_apply", "render": { - "en": "{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}" + "en": "{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}", + "nl": "{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Wijzigingen worden automatisch gedaan op alle segmenten met dezelfde naam, true)}", + "de": "{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Automatische Datenübernahme auf alle Segmente mit demselben Namen, true)}" } }, { "id": "wikipedia", "#": "Note that this is a _read_only_ option, to prevent people entering a 'wikidata'-link instead of 'name:etymology:wikidata'", "render": { - "en": "A Wikipedia article about this street exists:
    {wikipedia():max-height:25rem}" + "en": "A Wikipedia article about this street exists:
    {wikipedia():max-height:25rem}", + "nl": "Een Wikipedia artikel over deze straat bestaat:
    {wikipedia():max-height:25rem}" }, "condition": "wikidata~*" } @@ -201,4 +266,4 @@ } } ] -} \ No newline at end of file +} diff --git a/assets/layers/extinguisher/extinguisher.json b/assets/layers/extinguisher/extinguisher.json index 61a010cc32..5e637eee9e 100644 --- a/assets/layers/extinguisher/extinguisher.json +++ b/assets/layers/extinguisher/extinguisher.json @@ -6,8 +6,9 @@ "nb_NO": "Kart over brannhydranter", "ru": "Карта огнетушителей.", "fr": "Couche des extincteurs.", - "de": "Karte mit Feuerlöschern.", - "it": "Cartina degli estintori." + "de": "Feuerlöscher anzeigen.", + "it": "Cartina degli estintori.", + "nl": "Kaart van brandblussers." }, "minzoom": 14, "source": { @@ -25,18 +26,22 @@ "nb_NO": "Brannslokkere", "fr": "Exctincteurs", "de": "Feuerlöscher", - "it": "Estintori" + "it": "Estintori", + "nl": "Brandblussers", + "ca": "Extintors" } }, "description": { - "en": "Map layer to show fire hydrants.", + "en": "Map layer to show fire extinguishers.", "ja": "消火栓を表示するマップレイヤ。", "zh_Hant": "顯示消防栓的地圖圖層。", "nb_NO": "Kartlag for å vise brannslokkere.", "ru": "Слой карты, отображающий огнетушители.", "fr": "Couche des lances à incendie.", "de": "Kartenebene zur Anzeige von Hydranten.", - "it": "Livello della mappa che mostra gli idranti antincendio." + "it": "Livello della mappa che mostra gli idranti antincendio.", + "nl": "Kaartlaag met brandblussers.", + "da": "Kortlag til visning af ildslukkere." }, "tagRenderings": [ { @@ -48,7 +53,8 @@ "fr": "Emplacement : {location}", "de": "Standort: {location}", "eo": "Loko: {location}", - "it": "Posizione: {location}" + "it": "Posizione: {location}", + "nl": "Locatie: {location}" }, "question": { "en": "Where is it positioned?", @@ -56,7 +62,9 @@ "ru": "Где это расположено?", "fr": "Où est-elle positionnée ?", "de": "Wo befindet er sich?", - "it": "Dove è posizionato?" + "it": "Dove è posizionato?", + "nl": "Op welke locatie staat dit?", + "da": "Hvor er den placeret?" }, "mappings": [ { @@ -71,7 +79,9 @@ "ru": "Внутри.", "fr": "Intérieur.", "de": "Im Innenraum vorhanden.", - "it": "Si trova all’interno." + "it": "Si trova all’interno.", + "nl": "In een gebouw.", + "da": "Findes indendørs." } }, { @@ -86,7 +96,9 @@ "ru": "Снаружи.", "fr": "Extérieur.", "de": "Im Außenraum vorhanden.", - "it": "Si trova all’esterno." + "it": "Si trova all’esterno.", + "nl": "In open lucht.", + "da": "Findes udendørs." } } ], @@ -102,13 +114,15 @@ "emergency=fire_extinguisher" ], "title": { - "en": "Fire extinguisher", + "en": "a fire extinguisher", "ja": "消火器", - "nb_NO": "Brannslukker", + "nb_NO": "en brannslukker", "ru": "Огнетушитель", - "fr": "Extincteur", - "de": "Feuerlöscher", - "it": "Estintore" + "fr": "une extincteur", + "de": "eine feuerlöscher", + "it": "una estintore", + "nl": "een brandblusser", + "da": "en ildslukker" }, "description": { "en": "A fire extinguisher is a small, portable device used to stop a fire", @@ -116,7 +130,9 @@ "ru": "Огнетушитель - небольшое переносное устройство для тушения огня", "fr": "Un extincteur est un appareil portatif servant à éteindre un feu", "de": "Ein Feuerlöscher ist ein kleines, tragbares Gerät, das dazu dient, ein Feuer zu löschen", - "it": "Un estintore è un dispositivo portatile di piccole dimensioni usato per spegnere un incendio" + "it": "Un estintore è un dispositivo portatile di piccole dimensioni usato per spegnere un incendio", + "nl": "Een brandblusser is een klein, draagbaar apparaat om een brand te blussen", + "da": "En ildslukker er en lille, bærbar beholder, der bruges til at stoppe en brand" } } ], diff --git a/assets/layers/fire_station/fire_station.json b/assets/layers/fire_station/fire_station.json index 66c850e314..5a9b60cbec 100644 --- a/assets/layers/fire_station/fire_station.json +++ b/assets/layers/fire_station/fire_station.json @@ -7,7 +7,8 @@ "it": "Mappa delle caserme dei vigili del fuoco", "ru": "Карта пожарных частей", "fr": "Couche des stations de pompiers", - "de": "Karte der Feuerwachen" + "de": "Feuerwachen anzeigen", + "nl": "Kaart van de brandweerstations" }, "minzoom": 12, "source": { @@ -25,7 +26,8 @@ "nb_NO": "Brannstasjon", "it": "Caserma dei vigili del fuoco", "fr": "Station de pompiers", - "de": "Feuerwache" + "de": "Feuerwache", + "nl": "Brandweerstation" } }, "description": { @@ -34,7 +36,8 @@ "it": "Livello che mostra le caserme dei vigili del fuoco.", "ru": "Слой карты, отображающий пожарные части.", "fr": "Couche des stations de pompiers.", - "de": "Kartenebene zur Darstellung von Feuerwachen." + "de": "Kartenebene zur Darstellung von Feuerwachen.", + "nl": "Kaartlaag die de brandweerstations toont." }, "tagRenderings": [ { @@ -48,7 +51,8 @@ "ru": "Как называется эта пожарная часть?", "it": "Come si chiama questa caserma dei vigili del fuoco?", "fr": "Quel est le nom de la station ?", - "de": "Wie lautet der Name dieser Feuerwache?" + "de": "Wie lautet der Name dieser Feuerwache?", + "nl": "Wat is de naam van dit brandweerstation?" }, "render": { "en": "This station is called {name}.", @@ -56,7 +60,8 @@ "it": "Questa caserma si chiama {name}.", "ru": "Эта часть называется {name}.", "fr": "Cette station s’appelle {name}.", - "nb_NO": "Denne stasjonen heter {name}." + "nb_NO": "Denne stasjonen heter {name}.", + "nl": "Dit station heet {name}." } }, { @@ -69,14 +74,16 @@ "ja": " 救急ステーションの所在地はどこですか?", "it": " Qual è il nome della via in cui si trova la caserma?", "ru": " По какому адресу расположена эта часть?", - "fr": " Quel est le nom de la rue dans lequel elle se situe ?" + "fr": " Quel est le nom de la rue dans lequel elle se situe ?", + "nl": " Aan welke straat ligt dit station?" }, "render": { "en": "This station is along a highway called {addr:street}.", "ja": "{addr:street} 沿いにあります。", "ru": "Часть расположена вдоль шоссе {addr:street}.", "fr": "La station fait partie de la {addr:street}.", - "it": "La stazione si trova in una strada chiamata {addr:street}." + "it": "La stazione si trova in una strada chiamata {addr:street}.", + "nl": "Dit station ligt aan {addr:street}." } }, { @@ -86,7 +93,8 @@ "ja": "このステーションの住所は?(例: 地区、村、または町の名称)", "ru": "Где расположена часть? (напр., название населённого пункта)", "fr": "Dans quelle localité la station est-elle située ?", - "it": "In che località si trova la stazione? (ad es. quartiere, paese o città)" + "it": "In che località si trova la stazione? (ad es. quartiere, paese o città)", + "nl": "Waar is dit station gelegen? (v.b. naam van de buurt, dorp of stad)" }, "freeform": { "key": "addr:place" @@ -96,7 +104,8 @@ "ja": "このステーションは{addr:place}にあります。", "ru": "Эта часть расположена в {addr:place}.", "fr": "La station fait partie de {addr:place}.", - "it": "La stazione si trova a {addr:place}." + "it": "La stazione si trova a {addr:place}.", + "nl": "Dit station ligt in {addr:place}." } }, { @@ -105,13 +114,15 @@ "en": "What agency operates this station?", "ja": "このステーションを運営しているのはどこですか?", "fr": "Quel est l’exploitant de la station ?", - "it": "Quale agenzia gestisce questa stazione?" + "it": "Quale agenzia gestisce questa stazione?", + "nl": "Welk agentschap beheert dit station?" }, "render": { "en": "This station is operated by {operator}.", "ja": "このステーションは{operator}によって運営されています。", "fr": "Cette station est opérée par {operator}.", - "it": "Questa stazione è gestita da {operator}." + "it": "Questa stazione è gestita da {operator}.", + "nl": "Dit station wordt beheerd door {operator}." }, "freeform": { "key": "operator" @@ -129,7 +140,8 @@ "ja": "消防局(消防庁)", "fr": "Brigade de Protection du Feu", "de": "Brandschutzbehörde", - "it": "Servizio antincendio governativo" + "it": "Servizio antincendio governativo", + "nl": "Brandveiligheidsbureau" } } ] @@ -140,13 +152,15 @@ "en": "How is the station operator classified?", "ja": "ステーションの運営の分類は?", "fr": "Quel est le type d’exploitant ?", - "it": "Com’è classificato il gestore di questa stazione?" + "it": "Com’è classificato il gestore di questa stazione?", + "nl": "Wat voor soort beheerder beheert dit station?" }, "render": { "en": "The operator is a(n) {operator:type} entity.", "ja": "運営者は、{operator:type} です。", "fr": "L’exploitant est de type {operator:type}.", - "it": "Il gestore è un ente {operator:type}." + "it": "Il gestore è un ente {operator:type}.", + "nl": "De beheerder is een organisatie van type {operator:type} ." }, "freeform": { "key": "operator:type" @@ -163,7 +177,8 @@ "ja": "ステーションは自治体が運営する。", "fr": "La station est opérée par le gouvernement.", "it": "Questa stazione è gestita dal governo.", - "nb_NO": "Stasjonen drives av myndighetene." + "nb_NO": "Stasjonen drives av myndighetene.", + "nl": "Dit station wordt beheerd door de overheid." } }, { @@ -176,7 +191,8 @@ "en": "The station is operated by a community-based, or informal organization.", "ja": "任意団体やコミュニティが運営しているステーションである。", "fr": "La station est opérée par une organisation informelle.", - "it": "Questa stazione è gestita dalla comunità oppure un’associazione informale." + "it": "Questa stazione è gestita dalla comunità oppure un’associazione informale.", + "nl": "Dit station wordt beheerd door een informele of gemeenschapsorganisatie." } }, { @@ -189,7 +205,8 @@ "en": "The station is operated by a formal group of volunteers.", "ja": "公益団体が運営しているステーションである。", "fr": "La station est opérée par un groupe officiel de bénévoles.", - "it": "Questa stazione è gestita da un gruppo di volontari ufficiale." + "it": "Questa stazione è gestita da un gruppo di volontari ufficiale.", + "nl": "Dit station wordt beheerd door een formele groep vrijwilligers." } }, { @@ -202,7 +219,8 @@ "en": "The station is privately operated.", "ja": "個人が運営しているステーションである。", "fr": "La station est opérée par un groupe privé.", - "it": "Questa stazione è gestita da privati." + "it": "Questa stazione è gestita da privati.", + "nl": "Dit station wordt door private organisatie beheerd." } } ] @@ -215,20 +233,22 @@ "amenity=fire_station" ], "title": { - "en": "Fire station", + "en": "a fire station", "ja": "消防署", "ru": "Пожарная часть", - "fr": "Caserne de pompiers", - "de": "Feuerwache", - "it": "Caserma dei vigili del fuoco", - "nb_NO": "Brannstasjon" + "fr": "une caserne de pompiers", + "de": "eine feuerwache", + "it": "una caserma dei vigili del fuoco", + "nb_NO": "en brannstasjon", + "nl": "een brandweerstation" }, "description": { "en": "A fire station is a place where the fire trucks and firefighters are located when not in operation.", "ja": "消防署は、運転していないときに消防車や消防士がいる場所です。", "fr": "Une caserne de pompiers est un lieu où les pompiers et leur équipements sont situés en dehors des missions.", "de": "Eine Feuerwache ist ein Ort, an dem die Feuerwehrfahrzeuge und die Feuerwehrleute untergebracht sind, wenn sie nicht im Einsatz sind.", - "it": "Una caserma dei pompieri è un luogo dove si trovano i mezzi antincendio e i pompieri tra una missione e l’altra." + "it": "Una caserma dei pompieri è un luogo dove si trovano i mezzi antincendio e i pompieri tra una missione e l’altra.", + "nl": "Een brandweerstation is een plaats waar brandweerwagens en brandweerlieden gebaseerd zijn." } } ], diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json index 816aa36454..aad336fac3 100644 --- a/assets/layers/food/food.json +++ b/assets/layers/food/food.json @@ -3,7 +3,8 @@ "name": { "nl": "Eetgelegenheden", "en": "Restaurants and fast food", - "de": "Restaurants und Fast Food" + "de": "Restaurants und Fast Food", + "da": "Restauranter og fastfood" }, "source": { "osmTags": { @@ -17,10 +18,11 @@ "presets": [ { "title": { - "en": "restaurant", - "nl": "restaurant", + "en": "a restaurant", + "nl": "een restaurant", "ru": "ресторан", - "de": "Restaurant" + "de": "eine restaurant", + "ca": "un restaurant" }, "tags": [ "amenity=restaurant" @@ -36,10 +38,11 @@ }, { "title": { - "en": "fastfood", - "nl": "fastfood-zaak", + "en": "a fastfood", + "nl": "een fastfood-zaak", "ru": "быстрое питание", - "de": "Schnellimbiss" + "de": "eine schnellimbiss", + "ca": "un de menjar ràpid" }, "tags": [ "amenity=fast_food" @@ -55,16 +58,16 @@ }, { "title": { - "en": "fries shop", - "nl": "frituur", - "de": "Pommesbude" + "en": "a fries shop", + "nl": "een frituur", + "de": "eine pommesbude" }, "tags": [ "amenity=fast_food", "cuisine=friture" ], "description": { - "en": "A fastfood-buisiness focused on french fries", + "en": "A fastfood-business focused on french fries", "nl": "Een fastfood-zaak waar je frieten koopt" }, "preciseInput": { @@ -75,7 +78,9 @@ "title": { "render": { "en": "Restaurant", - "nl": "Eetgelegenheid" + "nl": "Eetgelegenheid", + "ca": "Restaurant", + "de": "Restaurant" }, "mappings": [ { @@ -88,7 +93,8 @@ "then": { "nl": "Restaurant {name}", "en": "Restaurant {name}", - "de": "Restaurant {name}" + "de": "Restaurant {name}", + "ca": "Restaurant {name}" } }, { @@ -101,7 +107,8 @@ "then": { "nl": "Fastfood-zaak {name}", "en": "Fastfood {name}", - "de": "Schnellrestaurant{name}" + "de": "Schnellrestaurant{name}", + "ca": "Lloc de menjar ràpid {name}" } }, { @@ -113,7 +120,8 @@ "then": { "nl": "Fastfood-zaak", "en": "Fastfood", - "de": "Schnellrestaurant" + "de": "Schnellrestaurant", + "ca": "Menjar ràpid" } } ] @@ -353,7 +361,7 @@ { "if": "diet:vegetarian=yes", "then": { - "en": "No vegetarian options are available", + "en": "Vegetarian options are available", "nl": "Vegetarische opties zijn beschikbaar" } }, @@ -454,7 +462,8 @@ "question": { "en": "Does this fries shop have vegetarian snacks?", "nl": "Heeft deze frituur vegetarische snacks?", - "fr": "Cette friterie est-elle équipée de snacks végétariens ?" + "fr": "Cette friterie est-elle équipée de snacks végétariens ?", + "de": "Hat dieser Frittenladen vegetarische Snacks?" }, "mappings": [ { @@ -602,7 +611,8 @@ "question": { "en": "Opened now", "nl": "Nu geopened", - "de": "Aktuell geöffnet" + "de": "Aktuell geöffnet", + "ca": "Obert ara" }, "osmTags": "_isOpen=yes" } @@ -615,7 +625,7 @@ "question": { "en": "Has a vegetarian menu", "nl": "Heeft een vegetarisch menu", - "de": "Hat vegetarische Speisen" + "de": "Vegetarische Gerichte im Angebot" }, "osmTags": { "or": [ @@ -635,7 +645,7 @@ "question": { "en": "Has a vegan menu", "nl": "Heeft een veganistisch menu", - "de": "Bietet vegan Speisen an" + "de": "Vegane Gerichte im Angebot" }, "osmTags": { "or": [ @@ -653,7 +663,8 @@ "question": { "en": "Has a halal menu", "nl": "Heeft een halal menu", - "de": "Hat halal Speisen" + "de": "Halal Gerichte im Angebot", + "da": "Har en halalmenu" }, "osmTags": { "or": [ @@ -663,6 +674,28 @@ } } ] + }, + { + "id": "accepts-cash", + "options": [ + { + "osmTags": "payment:cash=yes", + "question": { + "en": "Accepts cash" + } + } + ] + }, + { + "id": "accepts-cards", + "options": [ + { + "osmTags": "payment:cards=yes", + "question": { + "en": "Accepts payment cards" + } + } + ] } ], "deletion": { @@ -671,7 +704,16 @@ "amenity=", "disused:amenity:={amenity}" ] - } + }, + "extraDeleteReasons": [ + { + "explanation": { + "nl": "{title()} is permanent gestopt", + "en": "{title()} has closed down permanently" + }, + "changesetMessage": "shop_closed" + } + ] }, "allowMove": true, "mapRendering": [ @@ -726,6 +768,7 @@ } ], "description": { - "en": "A layer showing restaurants and fast-food amenities (with a special rendering for friteries)" + "en": "A layer showing restaurants and fast-food amenities (with a special rendering for friteries)", + "nl": "Een laag die restaurants en fast food toont (met een speciale weergave van frituren)" } } \ No newline at end of file diff --git a/assets/layers/ghost_bike/ghost_bike.json b/assets/layers/ghost_bike/ghost_bike.json index 98697e3e92..550daa9c24 100644 --- a/assets/layers/ghost_bike/ghost_bike.json +++ b/assets/layers/ghost_bike/ghost_bike.json @@ -18,7 +18,8 @@ "ru": "Велосипед ghost", "sv": "Spökcykel", "zh_Hant": "幽靈單車", - "pt": "Bicicleta fantasma" + "pt": "Bicicleta fantasma", + "ca": "Bicicleta blanca" }, "source": { "osmTags": "memorial=ghost_bike" @@ -43,7 +44,8 @@ "ru": "Велосипед Ghost", "sv": "Spökcykel", "zh_Hant": "幽靈單車", - "pt": "Bicicleta fantasma" + "pt": "Bicicleta fantasma", + "ca": "Bicicleta blanca" }, "mappings": [ { @@ -61,21 +63,21 @@ "presets": [ { "title": { - "en": "Ghost bike", - "nl": "Witte fiets", - "de": "Geisterrad", - "it": "Bici fantasma", - "fr": "Vélo fantôme", + "en": "a ghost bike", + "nl": "een witte fiets", + "de": "eine geisterrad", + "it": "una bici fantasma", + "fr": "une vélo fantôme", "eo": "Fantombiciklo", - "es": "Bicicleta blanca", + "es": "una bicicleta blanca", "fi": "Haamupyörä", "gl": "Bicicleta pantasma", "hu": "Emlékkerékpár", "ja": "ゴーストバイク", - "nb_NO": "Spøkelsessykler", + "nb_NO": "en spøkelsessykler", "pl": "Duch roweru", - "pt": "Bicicleta fantasma", - "pt_BR": "Bicicleta fantasma", + "pt": "uma bicicleta fantasma", + "pt_BR": "uma bicicleta fantasma", "ru": "Велосипед ghost", "sv": "Spökcykel", "zh_Hant": "幽靈單車" @@ -91,7 +93,7 @@ "id": "ghost-bike-explanation", "render": { "en": "A ghost bike is a memorial for a cyclist who died in a traffic accident, in the form of a white bicycle placed permanently near the accident location.", - "nl": "Een Witte Fiets (of Spookfiets) is een aandenken aan een fietser die bij een verkeersongeval om het leven kwam. Het gaat over een witgeschilderde fiets die geplaatst werd in de buurt van het ongeval.", + "nl": "Een Witte Fiets (of Spookfiets) is een aandenken aan een fietser die bij een verkeersongeval om het leven kwam. Het gaat over een witgeschilderde fiets die geplaatst werd in de buurt van het ongeval.", "de": "Ein Geisterrad ist ein Denkmal für einen Radfahrer, der bei einem Verkehrsunfall ums Leben kam, in Form eines weißen Fahrrades, das dauerhaft in der Nähe des Unfallortes aufgestellt wird.", "it": "Una bici fantasma è il memoriale di un ciclista che è morto in un incidente stradale e che ha la forma di una bicicletta bianca piazzata in maniera stabile vicino al luogo dell’incidente.", "fr": "Un vélo fantôme est un monument commémoratif pour un cycliste décédé dans un accident de la route, sous la forme d'un vélo blanc placé en permanence près du lieu de l'accident." @@ -123,7 +125,7 @@ "then": { "en": "No name is marked on the bike", "nl": "De naam is niet aangeduid op de fiets", - "de": "Auf dem Fahrrad ist kein Name angegeben", + "de": "Am Fahrrad ist kein Name angegeben", "it": "Nessun nome scritto sulla bici", "fr": "Aucun nom n'est marqué sur le vélo" } @@ -224,6 +226,8 @@ } ], "description": { - "en": "A layer showing memorials for cyclists, killed in road accidents" + "en": "A layer showing memorials for cyclists, killed in road accidents", + "nl": "Een laag die herdenkingsplaatsen voor verongelukte fietsers toont", + "de": "Eine Ebene mit Gedenkstätten für Radfahrer, die bei Verkehrsunfällen ums Leben gekommen sind" } } \ No newline at end of file diff --git a/assets/layers/gps_track/gps_track.json b/assets/layers/gps_track/gps_track.json index 60e160adef..18a4d83b3f 100644 --- a/assets/layers/gps_track/gps_track.json +++ b/assets/layers/gps_track/gps_track.json @@ -15,7 +15,8 @@ "id": "Privacy notice", "render": { "en": "This is the path you've travelled since this website is opened. Don't worry - this is only visible to you and no one else. Your location data is never sent off-device.", - "nl": "Dit is waar je was sinds je deze website hebt geopened. Dit is enkel zichtbaar voor jou en niemand anders, je locatie wordt niet verstuurd" + "nl": "Dit is waar je was sinds je deze website hebt geopened. Dit is enkel zichtbaar voor jou en niemand anders, je locatie wordt niet verstuurd", + "de": "Dies ist der Weg, den Sie seit dem Besuch dieser Webseite zurückgelegt haben. Keine Sorge - diese Daten sind nur für Sie sichtbar und für niemanden sonst. Ihre Standortdaten werden niemals an ein anderes Gerät gesendet." } }, "export_as_gpx", @@ -28,7 +29,8 @@ ], "name": { "en": "Your travelled track", - "nl": "Jouw afgelegde route" + "nl": "Jouw afgelegde route", + "de": "Zurückgelegte Strecke anzeigen" }, "mapRendering": [ { diff --git a/assets/layers/grass_in_parks/grass_in_parks.json b/assets/layers/grass_in_parks/grass_in_parks.json index ca677ccfac..cff3988582 100644 --- a/assets/layers/grass_in_parks/grass_in_parks.json +++ b/assets/layers/grass_in_parks/grass_in_parks.json @@ -62,6 +62,7 @@ } ], "description": { - "en": "Searches for all accessible grass patches within public parks - these are 'groenzones'\"" + "en": "Searches for all accessible grass patches within public parks - these are 'groenzones'\"", + "nl": "Dit zoekt naar alle toegankelijke grasvelden binnen publieke parken - dit zijn 'groenzones'" } } \ No newline at end of file diff --git a/assets/layers/hackerspace/hackerspace.json b/assets/layers/hackerspace/hackerspace.json new file mode 100644 index 0000000000..3a360fbbbd --- /dev/null +++ b/assets/layers/hackerspace/hackerspace.json @@ -0,0 +1,258 @@ +{ + "id": "hackerspace", + "name": { + "en": "Hackerspace", + "de": "Hackerspaces", + "ru": "Хакерспейс", + "zh_Hant": "駭客空間", + "hu": "Hackerspace" + }, + "minzoom": 8, + "title": { + "render": { + "en": "Hackerspace", + "de": "Hackerspace", + "ru": "Хакерспейс", + "zh_Hant": "駭客空間", + "hu": "Hackerspace" + }, + "mappings": [ + { + "if": { + "and": [ + "name~*" + ] + }, + "then": { + "en": " {name}", + "de": " {name}", + "ru": " {name}", + "zh_Hant": " {name}", + "hu": " {name}", + "ca": " {name}" + } + } + ] + }, + "description": { + "en": "Hackerspace", + "de": "Hackerspace", + "ru": "Хакерспейс", + "zh_Hant": "駭客空間", + "hu": "Hackerspace" + }, + "tagRenderings": [ + { + "id": "is_makerspace", + "question": { + "en": "Is this a hackerspace or a makerspace?", + "de": "Ist dies ein Hackerspace oder ein Makerspace?", + "zh_Hant": "這邊是駭客空間還是創客空間?", + "hu": "Ez hackerspace vagy makerspace?" + }, + "mappings": [ + { + "if": "hackerspace=makerspace", + "then": { + "en": "This is a makerspace", + "de": "Dies ist ein Makerspace", + "zh_Hant": "這是創客空間", + "hu": "Ez egy makerspace" + } + }, + { + "if": "hackerspace=", + "then": { + "en": "This is a traditional (software oriented) hackerspace", + "de": "Dies ist ein traditioneller (softwareorientierter) Hackerspace", + "zh_Hant": "這是傳統的 (軟體導向) 駭客空間", + "hu": "Ez egy hagyományos (szoftverekkel foglalkozó) hackerspace" + } + } + ] + }, + { + "question": { + "en": "What is the name of this hackerspace?", + "de": "Wie lautet der Name dieses Hackerspace?", + "zh_Hant": "這個駭客空間的名稱是?" + }, + "render": { + "en": "This hackerspace is named {name}", + "de": "Dieser Hackerspace heißt {name}", + "zh_Hant": "這個駭客空間叫 {name}" + }, + "freeform": { + "key": "name" + }, + "id": "hackerspaces-name" + }, + "website", + "email", + "phone", + { + "question": { + "en": "When is this hackerspace opened?", + "de": "Wann hat dieser Hackerspace geöffnet?", + "zh_Hant": "這個駭客空間的營業時間?" + }, + "freeform": { + "key": "opening_hours", + "type": "opening_hours" + }, + "render": { + "en": "{opening_hours_table()}", + "de": "{opening_hours_table()}", + "ru": "{opening_hours_table()}", + "zh_Hant": "{opening_hours_table()}", + "ca": "{opening_hours_table()}" + }, + "mappings": [ + { + "if": { + "and": [ + "opening_hours=24/7" + ] + }, + "then": { + "en": "Opened 24/7", + "de": "durchgehend geöffnet", + "ru": "Открыто 24/7", + "zh_Hant": "24/7 營業", + "ca": "Obert 24/7" + } + } + ], + "id": "hackerspaces-opening_hours" + }, + "wheelchair-access", + { + "id": "hs-club-mate", + "question": { + "en": "Does this hackerspace serve Club Mate?", + "de": "Gibt es in diesem Hackerspace Club Mate?", + "zh_Hant": "這個駭客空間是否服務俱樂部伙伴?" + }, + "mappings": [ + { + "if": { + "and": [ + "drink:club-mate=yes" + ] + }, + "then": { + "en": "This hackerspace serves club mate", + "de": "In diesem Hackerspace gibt es Club Mate", + "zh_Hant": "這個駭客空間服務俱樂部伙伴" + } + }, + { + "if": { + "and": [ + "drink:club-mate=no" + ] + }, + "then": { + "en": "This hackerspace does not serve club mate", + "de": "In diesem Hackerspace gibt es kein Club Mate", + "zh_Hant": "這個駭客空間沒有服務俱樂部伙伴" + } + } + ] + }, + { + "render": { + "en": "This hackerspace was founded at {start_date}", + "de": "Dieser Hackerspace wurde gegründet am {start_date}", + "zh_Hant": "這駭客空間是 {start_date} 成立的" + }, + "question": { + "en": "When was this hackerspace founded?", + "de": "Wann wurde dieser Hackerspace gegründet?", + "zh_Hant": "這個駭客空間何時成立的?" + }, + "freeform": { + "key": "start_date", + "type": "date" + }, + "id": "hackerspaces-start_date" + } + ], + "presets": [ + { + "tags": [ + "leisure=hackerspace" + ], + "title": { + "en": "a hackerspace", + "de": "eine hackerspace", + "ru": "Хакерспейс", + "zh_Hant": "駭客空間", + "hu": "Hackerspace" + }, + "description": { + "en": "A hackerspace is an area where people interested in software gather", + "de": "Ein Hackerspace ist ein Ort, an dem sich Menschen treffen, die sich für Software interessieren", + "zh_Hant": "駭客空間是對軟體有興趣的人聚集的地方", + "hu": "A hackerspace egy olyan hely, ahol szoftverek iránt érdeklő emberek találkoznak" + } + }, + { + "tags": [ + "leisure=hackerspace", + "hackerspace=makerspace" + ], + "title": { + "en": "a makerspace", + "de": "eine makerspace", + "zh_Hant": "創客空間", + "hu": "Makerspace" + }, + "description": { + "en": "A makerspace is a place where DIY-enthusiasts gather to experiment with electronics such as arduino, LEDstrips, ...", + "de": "Ein Makerspace ist ein Ort, an dem Heimwerker-Enthusiasten zusammenkommen, um mit Elektronik zu experimentieren, wie Arduino, LED-Strips, ...", + "zh_Hant": "創客空間是 DIY 愛好者聚集在一起弄電子零件實驗,例如用 arduino、LEDstrips 等...", + "hu": "A makerspace olyan hely, ahol a barkácsolás szerelmesei találkoznak, hogy olyan elektronikai eszközökkel kísérletezzenek, mint például az Arduino vagy a LEDstrips." + } + } + ], + "source": { + "osmTags": { + "and": [ + "leisure=hackerspace" + ] + } + }, + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/hackerspaces/glider.svg", + "mappings": [ + { + "if": { + "and": [ + "hackerspace=makerspace" + ] + }, + "then": "./assets/themes/hackerspaces/led.png" + } + ] + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point", + "centroid" + ] + }, + { + "color": { + "render": "#00f" + }, + "width": { + "render": "8" + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/hydrant/hydrant.json b/assets/layers/hydrant/hydrant.json index af931bc9bd..7d1c6a8948 100644 --- a/assets/layers/hydrant/hydrant.json +++ b/assets/layers/hydrant/hydrant.json @@ -7,8 +7,9 @@ "nb_NO": "Kart over brannhydranter", "ru": "Карта пожарных гидрантов", "fr": "Carte des bornes incendie", - "de": "Karte der Hydranten", - "it": "Mappa degli idranti" + "de": "Hydranten anzeigen", + "it": "Mappa degli idranti", + "nl": "Kaart van brandkranen" }, "minzoom": 14, "source": { @@ -26,7 +27,9 @@ "nb_NO": "Brannhydrant", "fr": "Bornes incendie", "de": "Hydrant", - "it": "Idrante" + "it": "Idrante", + "nl": "Brandkraan", + "ca": "Hidrant" } }, "description": { @@ -37,7 +40,8 @@ "ru": "Слой карты, отображающий пожарные гидранты.", "fr": "Couche des bornes incendie.", "de": "Kartenebene zur Anzeige von Hydranten.", - "it": "Livello della mappa che mostra gli idranti antincendio." + "it": "Livello della mappa che mostra gli idranti antincendio.", + "nl": "Kaartlaag met brandkranen." }, "tagRenderings": [ { @@ -49,7 +53,8 @@ "ru": "Какого цвета гидрант?", "fr": "Quelle est la couleur de la borne ?", "de": "Welche Farbe hat der Hydrant?", - "it": "Qual è il colore dell’idrante?" + "it": "Qual è il colore dell’idrante?", + "nl": "Welke kleur heeft de brandkraan?" }, "render": { "en": "The hydrant color is {colour}", @@ -58,7 +63,8 @@ "ru": "Цвет гидранта {colour}", "fr": "La borne est {colour}", "de": "Der Hydrant hat die Farbe {colour}", - "it": "Il colore dell’idrante è {colour}" + "it": "Il colore dell’idrante è {colour}", + "nl": "De brandkraan is {colour}" }, "freeform": { "key": "colour" @@ -76,7 +82,8 @@ "ru": "Цвет гидранта не определён.", "fr": "La borne est de couleur inconnue.", "de": "Die Farbe des Hydranten ist unbekannt.", - "it": "Il colore dell’idrante è sconosciuto." + "it": "Il colore dell’idrante è sconosciuto.", + "nl": "De kleur van de brandkraan is onbekend." }, "hideInAnswer": true }, @@ -92,7 +99,8 @@ "ru": "Гидрант жёлтого цвета.", "fr": "La borne est jaune.", "de": "Die Farbe des Hydranten ist gelb.", - "it": "Il colore dell’idrante è giallo." + "it": "Il colore dell’idrante è giallo.", + "nl": "De brandkraan is geel." } }, { @@ -107,7 +115,8 @@ "it": "L'idrante è rosso.", "ru": "Гидрант красного цвета.", "fr": "La borne est rouge.", - "de": "Die Farbe des Hydranten ist rot." + "de": "Die Farbe des Hydranten ist rot.", + "nl": "De brandkraan is rood." } } ] @@ -120,7 +129,8 @@ "it": "Di che tipo è questo idrante?", "ru": "К какому типу относится этот гидрант?", "fr": "De quel type de borne s’agit-il ?", - "de": "Um welche Art von Hydrant handelt es sich?" + "de": "Um welche Art von Hydrant handelt es sich?", + "nl": "Wat voor soort brandkraan is dit?" }, "freeform": { "key": "fire_hydrant:type" @@ -131,7 +141,8 @@ "ja": " 消火栓のタイプ:{fire_hydrant:type}", "it": " Tipo di idrante: {fire_hydrant:type}", "fr": " Type de borne : {fire_hydrant:type}", - "de": " Hydranten-Typ: {fire_hydrant:type}" + "de": " Hydranten-Typ: {fire_hydrant:type}", + "nl": " Het type brandkraan is {fire_hydrant:type}" }, "mappings": [ { @@ -146,7 +157,8 @@ "it": "Il tipo di idrante è sconosciuto.", "ru": "Тип гидранта не определён.", "fr": "La borne est de type inconnu.", - "de": "Der Typ des Hydranten ist unbekannt." + "de": "Der Typ des Hydranten ist unbekannt.", + "nl": "Het type brandkraan is onbekend." }, "hideInAnswer": true }, @@ -161,7 +173,8 @@ "ja": "ピラー型。", "fr": "Pilier.", "de": "Säulenart.", - "it": "Soprasuolo." + "it": "Soprasuolo.", + "nl": "Pillaar type." }, "icon": { "path": "./assets/themes/hailhydrant/hydrant_pillar.svg", @@ -179,7 +192,8 @@ "ja": "パイプ型。", "fr": "Tuyau.", "de": "Rohrtyp.", - "it": "Tubo." + "it": "Tubo.", + "nl": "Buis type." }, "icon": { "path": "./assets/themes/hailhydrant/hydrant_unknown.svg", @@ -199,7 +213,8 @@ "ja": "壁型。", "fr": "Mural.", "de": "Wandtyp.", - "it": "A muro." + "it": "A muro.", + "nl": "Muur type." }, "icon": { "path": "./assets/themes/hailhydrant/hydrant_unknown.svg", @@ -217,7 +232,8 @@ "ja": "地下式。", "fr": "Enterré.", "de": "Untergrundtyp.", - "it": "Sottosuolo." + "it": "Sottosuolo.", + "nl": "Ondergronds type." }, "icon": { "path": "./assets/themes/hailhydrant/hydrant_underground.svg", @@ -233,7 +249,8 @@ "ja": "消火栓のライフサイクルステータスを更新します。", "fr": "Mettre à jour l’état de la borne.", "de": "Ist dieser Hydrant noch in Betrieb?", - "it": "Aggiorna lo stato di funzionamento dell’idrante." + "it": "Aggiorna lo stato di funzionamento dell’idrante.", + "nl": "Werkt deze brandkraan nog?" }, "mappings": [ { @@ -248,7 +265,8 @@ "ru": "Гидрант (полностью или частично) в рабочем состоянии", "fr": "La borne est en état, ou partiellement en état, de fonctionner.", "de": "Der Hydrant ist (ganz oder teilweise) in Betrieb", - "it": "L’idrante è (parzialmente o completamente) funzionante." + "it": "L’idrante è (parzialmente o completamente) funzionante.", + "nl": "De brandkraan werkt (minstens gedeeltelijk)" } }, { @@ -263,7 +281,8 @@ "ja": "消火栓は使用できません。", "fr": "La borne est hors-service.", "de": "Der Hydrant ist nicht verfügbar", - "it": "L’idrante è fuori servizio." + "it": "L’idrante è fuori servizio.", + "nl": "De brandkraan is niet beschikbaar" } }, { @@ -279,7 +298,8 @@ "ru": "Гидрант демонтирован", "fr": "La borne a été retirée.", "de": "Der Hydrant wurde entfernt", - "it": "L’idrante è stato rimosso." + "it": "L’idrante è stato rimosso.", + "nl": "Deze brandkraan is verwijderd" } } ] @@ -292,20 +312,22 @@ "emergency=fire_hydrant" ], "title": { - "en": "Fire hydrant", + "en": "a fire hydrant", "ru": "Пожарный гидрант", "ja": "消火栓", - "nb_NO": "Brannhydrant", - "fr": "Borne incendie", - "de": "Löschwasser-Hydrant", - "it": "Idrante antincendio" + "nb_NO": "en brannhydrant", + "fr": "une borne incendie", + "de": "eine löschwasser-hydrant", + "it": "una idrante antincendio", + "nl": "een brandkraan" }, "description": { "en": "A hydrant is a connection point where firefighters can tap water. It might be located underground.", "ja": "消火栓は消防士が水を汲み上げることができる接続点です。地下にあるかもしれません。", "fr": "Une borne incendie est un point où les pompiers peuvent s’alimenter en eau. Elle peut être enterrée.", "de": "Ein Hydrant ist ein Anschlusspunkt, an dem die Feuerwehr Wasser zapfen kann. Er kann sich unterirdisch befinden.", - "it": "Un idrante è un punto di collegamento dove i pompieri possono estrarre acqua. Potrebbe trovarsi sottoterra." + "it": "Un idrante è un punto di collegamento dove i pompieri possono estrarre acqua. Potrebbe trovarsi sottoterra.", + "nl": "Een brandkraan is een kraan waar brandweerlieden een brandslang kunnen aansluiten. Soms zit deze ondergronds." } } ], diff --git a/assets/layers/information_board/information_board.json b/assets/layers/information_board/information_board.json index d82fe3d94e..ed9fe7e111 100644 --- a/assets/layers/information_board/information_board.json +++ b/assets/layers/information_board/information_board.json @@ -6,7 +6,8 @@ "it": "Pannelli informativi", "fr": "Panneaux d'informations", "de": "Informationstafeln", - "ru": "Информационные щиты" + "ru": "Информационные щиты", + "ca": "Panells d'informació" }, "minzoom": 12, "source": { @@ -23,7 +24,8 @@ "it": "Pannello informativo", "fr": "Panneau d'informations", "de": "Informationstafel", - "ru": "Информационный щит" + "ru": "Информационный щит", + "ca": "Panell d'informació" } }, "tagRenderings": [ @@ -36,11 +38,11 @@ "information=board" ], "title": { - "nl": "informatiebord", - "en": "information board", - "it": "pannello informativo", - "fr": "panneau d'informations", - "de": "informationstafel", + "nl": "een informatiebord", + "en": "an information board", + "it": "una pannello informativo", + "fr": "une panneau d'informations", + "de": "eine informationstafel", "ru": "информационный щит" } } @@ -80,6 +82,7 @@ ], "description": { "en": "A layer showing touristical, road side information boards (e.g. giving information about the landscape, a building, a feature, a map, ...)", - "nl": "Deze laag toont informatieborden in de publieke ruimte die uitleg geven over een bezienswaardigheid (bv. uitleg over het landschap, een ruine, een kaart van de omgeving, ...)" + "nl": "Deze laag toont informatieborden in de publieke ruimte die uitleg geven over een bezienswaardigheid (bv. uitleg over het landschap, een ruine, een kaart van de omgeving, ...)", + "de": "Eine Ebene mit touristischen, straßenseitigen Informationstafeln (z. B. mit Informationen über die Landschaft, ein Gebäude, ein Merkmal, eine Karte, ...)" } } \ No newline at end of file diff --git a/assets/layers/map/map.json b/assets/layers/map/map.json index 464ed658fa..09804d41d7 100644 --- a/assets/layers/map/map.json +++ b/assets/layers/map/map.json @@ -6,7 +6,8 @@ "it": "Mappe", "ru": "Карты", "fr": "Cartes", - "de": "Karten" + "de": "Karten", + "ca": "Mapes" }, "minzoom": 12, "source": { @@ -24,7 +25,8 @@ "it": "Mappa", "ru": "Карта", "fr": "Carte", - "de": "Karte" + "de": "Karte", + "ca": "Mapa" } }, "description": { @@ -93,7 +95,7 @@ }, "then": { "en": "OpenStreetMap is clearly attributed, including the ODBL-license", - "nl": "De OpenStreetMap-attributie is duidelijk aangegeven, zelf met vermelding van \"ODBL\" ", + "nl": "De OpenStreetMap-attributie is duidelijk aangegeven, zelfs met vermelding van \"ODBL\"", "it": "L’attribuzione a OpenStreetMap è chiaramente specificata, inclusa la licenza ODBL", "de": "OpenStreetMap ist eindeutig attributiert, einschließlich der ODBL-Lizenz", "fr": "L’attribution est clairement inscrite ainsi que la licence ODBL" @@ -172,19 +174,21 @@ "tourism=map" ], "title": { - "en": "Map", - "nl": "Kaart", - "it": "Mappa", + "en": "a map", + "nl": "een kaart", + "it": "una mappa", "ru": "Карта", - "fr": "Carte", - "de": "Karte" + "fr": "une carte", + "de": "eine karte", + "ca": "un mapa" }, "description": { "en": "Add a missing map", "nl": "Voeg een ontbrekende kaart toe", "it": "Aggiungi una mappa mancante", "fr": "Ajouter une carte manquante", - "de": "Fehlende Karte hinzufügen" + "de": "Fehlende Karte hinzufügen", + "ru": "Добавить отсутствующую карту" } } ], diff --git a/assets/layers/nature_reserve/nature_reserve.json b/assets/layers/nature_reserve/nature_reserve.json index f264a56939..6c4db4dcfd 100644 --- a/assets/layers/nature_reserve/nature_reserve.json +++ b/assets/layers/nature_reserve/nature_reserve.json @@ -2,7 +2,8 @@ "id": "nature_reserve", "name": { "en": "Nature reserve", - "nl": "Natuurgebied" + "nl": "Natuurgebied", + "de": "Naturschutzgebiete" }, "minzoom": 12, "source": { @@ -25,7 +26,8 @@ "title": { "render": { "nl": "Natuurgebied", - "en": "Nature reserve" + "en": "Nature reserve", + "de": "Naturschutzgebiet" }, "mappings": [ { @@ -50,11 +52,13 @@ { "render": { "en": "Accessin this nature reserve: {access:description}", - "nl": "De toegankelijkheid van dit gebied is: {access:description}" + "nl": "De toegankelijkheid van dit gebied is: {access:description}", + "de": "Zugang zu diesem Naturschutzgebiet: {access:description}" }, "question": { "en": "Is this nature reserve accessible to the public?", - "nl": "Is dit gebied toegankelijk?" + "nl": "Is dit gebied toegankelijk?", + "de": "Ist dieses Naturschutzgebiet für die Öffentlichkeit zugänglich?" }, "freeform": { "key": "access:description" @@ -69,7 +73,8 @@ }, "then": { "en": "Publicly accessible", - "nl": "Vrij toegankelijk" + "nl": "Vrij toegankelijk", + "de": "Öffentlich zugänglich" } }, { @@ -81,7 +86,8 @@ }, "then": { "en": "Not accessible", - "nl": "Niet toegankelijk" + "nl": "Niet toegankelijk", + "de": "Nicht zugänglich" } }, { @@ -93,7 +99,8 @@ }, "then": { "en": "Not accessible as this is a private area", - "nl": "Niet toegankelijk, want privégebied" + "nl": "Niet toegankelijk, want privégebied", + "de": "Nicht zugänglich, da dies ein privater Bereich ist" } }, { @@ -105,7 +112,8 @@ }, "then": { "en": "Accessible despite being a privately owned area", - "nl": "Toegankelijk, ondanks dat het privegebied is" + "nl": "Toegankelijk, ondanks dat het privegebied is", + "de": "Zugänglich, obwohl es sich um ein privates Gebiet handelt" } }, { @@ -117,7 +125,8 @@ }, "then": { "en": "Only accessible with a guide or during organised activities", - "nl": "Enkel toegankelijk met een gids of tijdens een activiteit" + "nl": "Enkel toegankelijk met een gids of tijdens een activiteit", + "de": "Nur mit einem Führer oder bei organisierten Aktivitäten zugänglich" } }, { @@ -129,7 +138,8 @@ }, "then": { "en": "Accessible with fee", - "nl": "Toegankelijk mits betaling" + "nl": "Toegankelijk mits betaling", + "de": "Zugänglich gegen Gebühr" } } ], @@ -138,11 +148,13 @@ { "render": { "en": "Operated by {operator}", - "nl": "Beheer door {operator}" + "nl": "Beheer door {operator}", + "de": "Betrieben von {operator}" }, "question": { "en": "Who operates this area?", - "nl": "Wie beheert dit gebied?" + "nl": "Wie beheert dit gebied?", + "de": "Wer betreibt dieses Gebiet?" }, "freeform": { "key": "operator" @@ -156,7 +168,8 @@ }, "then": { "en": "Operated by Natuurpunt", - "nl": "Dit gebied wordt beheerd door Natuurpunt" + "nl": "Dit gebied wordt beheerd door Natuurpunt", + "de": "Betrieben von Natuurpunt" }, "icon": "./assets/layers/nature_reserve/Natuurpunt.jpg" }, @@ -168,7 +181,8 @@ }, "then": { "en": "Operated by {operator}", - "nl": "Dit gebied wordt beheerd door {operator}" + "nl": "Dit gebied wordt beheerd door {operator}", + "de": "Betrieben von {operator}" }, "icon": "./assets/layers/nature_reserve/Natuurpunt.jpg", "hideInAnswer": true @@ -181,7 +195,8 @@ }, "then": { "en": "Operated by Agentschap Natuur en Bos", - "nl": "Dit gebied wordt beheerd door het Agentschap Natuur en Bos" + "nl": "Dit gebied wordt beheerd door het Agentschap Natuur en Bos", + "de": "Betrieben von Agentschap Natuur en Bos" }, "icon": "./assets/layers/nature_reserve/ANB.jpg" } @@ -191,11 +206,13 @@ { "render": { "nl": "Dit gebied heet {name}", - "en": "This area is named {name}" + "en": "This area is named {name}", + "de": "Dieses Gebiet heißt {name}" }, "question": { "nl": "Wat is de naam van dit gebied?", - "en": "What is the name of this area?" + "en": "What is the name of this area?", + "de": "Wie heißt dieses Gebiet?" }, "freeform": { "key": "name", @@ -218,7 +235,8 @@ }, "then": { "en": "This area doesn't have a name", - "nl": "Dit gebied heeft geen naam" + "nl": "Dit gebied heeft geen naam", + "de": "Dieses Gebiet hat keinen Namen" } } ], @@ -339,7 +357,8 @@ { "render": { "en": "Extra information: {description}", - "nl": "Extra info: {description}" + "nl": "Extra info: {description}", + "de": "Zusätzliche Informationen: {description}" }, "freeform": { "key": "description" @@ -349,11 +368,13 @@ { "question": { "en": "Is there some extra info?", - "nl": "Is er extra info die je kwijt wil?" + "nl": "Is er extra info die je kwijt wil?", + "de": "Gibt es zusätzliche Informationen?" }, "render": { "en": "Extra info: {description:0}", - "nl": "Extra info: {description:0}" + "nl": "Extra info: {description:0}", + "de": "Zusätzliche Informationen: {description:0}" }, "freeform": { "key": "description:0" @@ -380,12 +401,14 @@ "fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen" ], "title": { - "en": "nature reserve", - "nl": "natuurreservaat" + "en": "a nature reserve", + "nl": "een natuurreservaat", + "de": "ein Naturschutzgebiet" }, "description": { "en": "Add a missing nature reserve", - "nl": "Voeg een ontbrekend, erkend natuurreservaat toe, bv. een gebied dat beheerd wordt door het ANB of natuurpunt" + "nl": "Voeg een ontbrekend, erkend natuurreservaat toe, bv. een gebied dat beheerd wordt door het ANB of natuurpunt", + "de": "Ein fehlendes Naturschutzgebiet hinzufügen" } } ], @@ -396,7 +419,8 @@ { "question": { "en": "Freely accesible", - "nl": "Vrij te bezoeken" + "nl": "Vrij te bezoeken", + "de": "Frei zugänglich" }, "osmTags": "access=yes" } @@ -408,20 +432,23 @@ { "question": { "en": "All nature reserves", - "nl": "Alle natuurgebieden" + "nl": "Alle natuurgebieden", + "de": "Alle Naturschutzgebiete" } }, { "question": { "en": "Dogs are allowed to roam freely", - "nl": "Honden mogen vrij rondlopen" + "nl": "Honden mogen vrij rondlopen", + "de": "Hunde dürfen frei herumlaufen" }, "osmTags": "dog=yes" }, { "question": { "en": "Dogs are allowed if they are leashed", - "nl": "Honden welkom aan de leiband" + "nl": "Honden welkom aan de leiband", + "de": "Hunde nur erlaubt, wenn sie angeleint sind" }, "osmTags": { "or": [ diff --git a/assets/layers/note/note.json b/assets/layers/note/note.json index 10a55aaf61..1a64adbac5 100644 --- a/assets/layers/note/note.json +++ b/assets/layers/note/note.json @@ -1,7 +1,9 @@ { "id": "note", "name": { - "en": "OpenStreetMap notes" + "en": "OpenStreetMap notes", + "nl": "OpenStreetMap Notes", + "de": "OpenStreetMap-Hinweise" }, "description": "This layer shows notes on OpenStreetMap. Having this layer in your theme will trigger the 'add new note' functionality in the 'addNewPoint'-popup (or if your theme has no presets, it'll enable adding notes)", "source": { @@ -13,23 +15,30 @@ "minzoom": 10, "title": { "render": { - "en": "Note" + "en": "Note", + "nl": "Note", + "ca": "Nota", + "de": "Notiz" }, "mappings": [ { "if": "closed_at~*", "then": { - "en": "Closed note" + "en": "Closed note", + "nl": "Gesloten Note", + "de": "Geschlossene Notiz" } } ] }, "calculatedTags": [ + "_total_comments:=feat.get('comments').length", "_first_comment:=feat.get('comments')[0].text.toLowerCase()", "_opened_by_anonymous_user:=feat.get('comments')[0].user === undefined", "_first_user:=feat.get('comments')[0].user", "_first_user_lc:=feat.get('comments')[0].user?.toLowerCase()", "_first_user_id:=feat.get('comments')[0].uid", + "_last_user_lc:=(() => {const comms = feat.get('comments'); return comms[comms.length - 1].user?.toLowerCase()})()", "_is_import_note:=(() => {const lines = feat.properties['_first_comment'].split('\\n'); const matchesMapCompleteURL = lines.map(l => l.match(\".*https://mapcomplete.osm.be/\\([a-zA-Z_-]+\\)\\(.html\\).*#import\")); const matchedIndexes = matchesMapCompleteURL.map((doesMatch, i) => [doesMatch !== null, i]).filter(v => v[0]).map(v => v[1]); return matchedIndexes[0] })()" ], "titleIcons": [ @@ -53,14 +62,18 @@ { "id": "report-contributor", "render": { - "en": "Report {_first_user} as spam" + "en": "Report {_first_user} as spam", + "nl": "{_first_user} melden als spam", + "de": "{_first_user} als Spam melden" }, "condition": "_opened_by_anonymous_user=false" }, { "id": "report-note", "render": { - "en": "Report this note as spam or inappropriate" + "en": "Report this note as spam or inappropriate", + "nl": "Deze not melden als spam of ongepast", + "de": "Diese Notiz als Spam oder unangemessen melden" } } ], @@ -79,7 +92,17 @@ } ] }, - "iconSize": "40,40,bottom" + "iconSize": "40,40,bottom", + "iconBadges": [ + { + "if": "_total_comments>1", + "then": "circle:white;speech_bubble" + }, + { + "if": "_is_import_note~*", + "then": "addSmall" + } + ] } ], "filter": [ @@ -94,7 +117,9 @@ } ], "question": { - "en": "Should mention {search} in the first comment" + "en": "Should mention {search} in the first comment", + "nl": "Moet in de eerste opmerking \"{search}\" bevatten", + "de": "Sollte {search} im ersten Kommentar erwähnen" } } ] @@ -110,7 +135,9 @@ } ], "question": { - "en": "Should not mention {search} in the first comment" + "en": "Should not mention {search} in the first comment", + "nl": "Mag in de eerste opmerking niet \"{search}\" bevatten", + "de": "Sollte nicht {search} im ersten Kommentar erwähnen" } } ] @@ -126,7 +153,9 @@ } ], "question": { - "en": "Opened by {search}" + "en": "Opened by contributor {search}", + "nl": "Geopend door bijdrager {search}", + "de": "Geöffnet vom Mitwirkenden {search}" } } ] @@ -142,7 +171,45 @@ } ], "question": { - "en": "Not opened by {search}" + "en": "Not opened by contributor {search}", + "nl": "Niet geopend door bijdrager {search}", + "de": "Nicht vom Mitwirkenden {search} geöffnet" + } + } + ] + }, + { + "id": "edited_by", + "options": [ + { + "osmTags": "_last_user_lc~.*{search}.*", + "fields": [ + { + "name": "search" + } + ], + "question": { + "en": "Last edited by contributor {search}", + "nl": "Laatst bewerkt door bijdrager {search}", + "de": "Zuletzt bearbeitet vom Mitwirkenden {search}" + } + } + ] + }, + { + "id": "not_edited_by", + "options": [ + { + "osmTags": "_last_user_lc!~.*{search}.*", + "fields": [ + { + "name": "search" + } + ], + "question": { + "en": "Opened after {search}", + "nl": "Geopend na {search}", + "de": "Geöffnet nach {search}" } } ] @@ -159,7 +226,9 @@ } ], "question": { - "en": "Opened before {search}" + "en": "Created before {search}", + "nl": "Aangemaakt voor {search}", + "de": "Erstellt vor {search}" } } ] @@ -176,7 +245,9 @@ } ], "question": { - "en": "Opened after {search}" + "en": "Created after {search}", + "nl": "Aangemaakt na {search}", + "de": "Erstellt nach {search}" } } ] @@ -187,7 +258,9 @@ { "osmTags": "_opened_by_anonymous_user=true", "question": { - "en": "Opened by anonymous user" + "en": "Only show notes opened by an anonymous contributor", + "nl": "Toon enkel de Notes geopend door een anonieme bijdrager", + "de": "Nur Notizen anzeigen, die von anonymen Mitwirkenden geöffnet wurden" } } ] @@ -198,7 +271,9 @@ { "osmTags": "closed_at=", "question": { - "en": "Only show open notes" + "en": "Only show open notes", + "nl": "Toon enkel open Notes", + "de": "Nur offene Notizen anzeigen" } } ] @@ -209,7 +284,9 @@ { "osmTags": "_is_import_note=", "question": { - "en": "Hide import notes" + "en": "Hide import notes", + "nl": "Verberg import Notes", + "de": "Importnotizen ausblenden" } } ] diff --git a/assets/layers/note_import/note_import.json b/assets/layers/note_import/note_import.json index acb25411a6..72584bed52 100644 --- a/assets/layers/note_import/note_import.json +++ b/assets/layers/note_import/note_import.json @@ -1,7 +1,9 @@ { "id": "note_import", "name": { - "en": "Possible bookcases" + "en": "Possible bookcases", + "nl": "Mogelijke publieke boekenkastjes", + "de": "Mögliche Bücherschränke" }, "description": "Template for note note imports.", "source": { @@ -17,7 +19,9 @@ "minzoom": 10, "title": { "render": { - "en": "Possible feature" + "en": "Possible feature", + "nl": "Mogelijk object", + "de": "Mögliches Objekt" } }, "calculatedTags": [ diff --git a/assets/layers/observation_tower/observation_tower.json b/assets/layers/observation_tower/observation_tower.json index 662fd09ee6..59943038ec 100644 --- a/assets/layers/observation_tower/observation_tower.json +++ b/assets/layers/observation_tower/observation_tower.json @@ -4,7 +4,8 @@ "en": "Observation towers", "nl": "Uitkijktorens", "ru": "Смотровые башни", - "de": "Aussichtstürme" + "de": "Aussichtstürme", + "ca": "Torres d'observació" }, "minzoom": 8, "title": { @@ -12,7 +13,8 @@ "en": "Observation tower", "nl": "Uitkijktoren", "ru": "Смотровая башня", - "de": "Beobachtungsturm" + "de": "Beobachtungsturm", + "ca": "Torre d'observació" }, "mappings": [ { @@ -21,7 +23,8 @@ "en": "{name}", "nl": "{name}", "ru": "{name}", - "de": "{name}" + "de": "{name}", + "ca": "{name}" } } ] @@ -81,21 +84,24 @@ "question": { "en": "Can this tower be visited?", "nl": "Is deze toren publiek toegankelijk?", - "es": "¿Se puede visitar esta torre?" + "es": "¿Se puede visitar esta torre?", + "de": "Kann dieser Turm besichtigt werden?" }, "mappings": [ { "if": "access=yes", "then": { "en": "This tower is publicly accessible", - "nl": "Deze toren is publiek toegankelijk" + "nl": "Deze toren is publiek toegankelijk", + "de": "Dieser Turm ist öffentlich zugänglich" } }, { "if": "access=guided", "then": { "en": "This tower can only be visited with a guide", - "nl": "Deze toren can enkel bezocht worden met een gids" + "nl": "Deze toren can enkel bezocht worden met een gids", + "de": "Dieser Turm kann nur mit einem Führer besichtigt werden" } } ] @@ -157,7 +163,8 @@ "id": "step_count", "question": { "en": "How much individual steps does one have to climb to reach the top of this tower?", - "nl": "Hoeveel treden moet men beklimmen op de top van de toren te bereiken?" + "nl": "Hoeveel treden moet men beklimmen op de top van de toren te bereiken?", + "de": "Wie viele einzelne Stufen muss man erklimmen, um die Spitze des Turms zu erreichen?" }, "freeform": { "key": "step_count", @@ -165,7 +172,8 @@ }, "render": { "en": "This tower has {step_count} steps to reach the top", - "nl": "Deze toren heeft {step_count} traptredes" + "nl": "Deze toren heeft {step_count} traptredes", + "de": "Dieser Turm hat {step_count} Stufen, um die Spitze zu erreichen" }, "condition": { "or": [ @@ -178,21 +186,24 @@ "id": "elevator", "question": { "en": "Does this tower have an elevator?", - "nl": "Heeft deze toren een lift?" + "nl": "Heeft deze toren een lift?", + "de": "Hat dieser Turm einen Aufzug?" }, "mappings": [ { "if": "elevator=yes", "then": { "en": "This tower has an elevator which takes visitors to the top", - "nl": "Deze toren heeft een lift die bezoekers naar de top van de toren brengt" + "nl": "Deze toren heeft een lift die bezoekers naar de top van de toren brengt", + "de": "Dieser Turm verfügt über einen Aufzug, der die Besucher nach oben bringt" } }, { "if": "elevator=no", "then": { "en": "This tower does not have an elevator", - "nl": "Deze toren heeft geen lift" + "nl": "Deze toren heeft geen lift", + "de": "Dieser Turm hat keinen Aufzug" } } ], @@ -260,7 +271,8 @@ "nl": " meter", "en": " meter", "ru": " метр", - "de": " Meter" + "de": " Meter", + "ca": " metre" } } ], diff --git a/assets/layers/parking/parking.json b/assets/layers/parking/parking.json index 1d3a5bf919..17ec106fe7 100644 --- a/assets/layers/parking/parking.json +++ b/assets/layers/parking/parking.json @@ -2,7 +2,9 @@ "id": "parking", "name": { "en": "Parking", - "nl": "Parking" + "nl": "Parking", + "de": "Parkplätze", + "ca": "Aparcament" }, "minzoom": 12, "source": { @@ -11,12 +13,14 @@ "title": { "render": { "nl": "Parking voor auto's", - "en": "Car parking" + "en": "Car parking", + "de": "Parkplatz" } }, "description": { "en": "A layer showing car parkings", - "nl": "Deze laag toont autoparkings" + "nl": "Deze laag toont autoparkings", + "de": "Eine Ebene mit Parkplätzen" }, "tagRenderings": [ "images" @@ -27,8 +31,9 @@ "amenity=parking" ], "title": { - "nl": "parking voor auto's", - "en": "car parking" + "nl": "een parking voor auto's", + "en": "a car parking", + "de": "ein Parkplatz" } } ], diff --git a/assets/layers/pedestrian_path/pedestrian_path.json b/assets/layers/pedestrian_path/pedestrian_path.json index 3e34b2ef23..a93c1a86d5 100644 --- a/assets/layers/pedestrian_path/pedestrian_path.json +++ b/assets/layers/pedestrian_path/pedestrian_path.json @@ -1,7 +1,9 @@ { "id": "pedestrian_path", "name": { - "en": "Pedestrain paths" + "en": "Pedestrian paths", + "nl": "Pad voor voetgangers", + "de": "Fußgängerwege" }, "minzoom": 18, "source": { @@ -16,7 +18,8 @@ }, "title": {}, "description": { - "en": "Pedestrian footpaths, especially used for indoor navigation and snapping entrances to this layer" + "en": "Pedestrian footpaths, especially used for indoor navigation and snapping entrances to this layer", + "nl": "Pad voor voetgangers, in het bijzonder gebruikt voor navigatie binnen gebouwen en om aan toegangen vast te klikken in deze laag" }, "mapRendering": [ { diff --git a/assets/layers/picnic_table/picnic_table.json b/assets/layers/picnic_table/picnic_table.json index 03082ea333..f38cb6e65a 100644 --- a/assets/layers/picnic_table/picnic_table.json +++ b/assets/layers/picnic_table/picnic_table.json @@ -6,7 +6,8 @@ "it": "Tavoli da picnic", "ru": "Столы для пикника", "fr": "Tables de pique-nique", - "de": "Picknick-Tische" + "de": "Picknick-Tische", + "ca": "Taules de pícnic" }, "minzoom": 12, "source": { @@ -19,7 +20,8 @@ "it": "Tavolo da picnic", "ru": "Стол для пикника", "fr": "Table de pique-nique", - "de": "Picknick-Tisch" + "de": "Picknick-Tisch", + "ca": "Taula de pícnic" } }, "description": { @@ -85,12 +87,12 @@ "leisure=picnic_table" ], "title": { - "en": "picnic table", - "nl": "picnic-tafel", - "it": "tavolo da picnic", + "en": "a picnic table", + "nl": "een picknicktafel", + "it": "una tavolo da picnic", "ru": "стол для пикника", - "de": "picknicktisch", - "fr": "table de pique-nique" + "de": "eine picknicktisch", + "fr": "une table de pique-nique" } } ], diff --git a/assets/layers/play_forest/play_forest.json b/assets/layers/play_forest/play_forest.json index 227311cadc..eb5014b600 100644 --- a/assets/layers/play_forest/play_forest.json +++ b/assets/layers/play_forest/play_forest.json @@ -95,7 +95,9 @@ "hideFromOverview": false, "presets": [ { - "title": "Speelbos", + "title": { + "*": "Speelbos" + }, "tags": [ "leisure=playground", "playground=forest", diff --git a/assets/layers/playground/playground.json b/assets/layers/playground/playground.json index 6c6b62bf5a..ab16932294 100644 --- a/assets/layers/playground/playground.json +++ b/assets/layers/playground/playground.json @@ -6,7 +6,8 @@ "ru": "Детские площадки", "de": "Spielplätze", "it": "Campi da gioco", - "fr": "Aire de jeu" + "fr": "Aire de jeu", + "ca": "Parcs infantils" }, "minzoom": 13, "source": { @@ -26,7 +27,8 @@ "it": "Parchi giochi", "ru": "Детские площадки", "de": "Spielplätze", - "fr": "Aire de jeu" + "fr": "Aire de jeu", + "ca": "Parcs infantils" }, "title": { "render": { @@ -35,7 +37,8 @@ "it": "Parco giochi", "ru": "Детская площадка", "de": "Spielplatz", - "fr": "Aire de jeu" + "fr": "Aire de jeu", + "ca": "Parc infantil" }, "mappings": [ { @@ -46,7 +49,8 @@ "it": "Parco giochi {name}", "ru": "Детская площадка {name}", "de": "Spielplatz {name}", - "fr": "Aire de jeu {name}" + "fr": "Aire de jeu {name}", + "ca": "Parc infantil {name}" } } ] @@ -291,7 +295,21 @@ "it": "Accessibile pubblicamente", "de": "Zugänglich für die Allgemeinheit", "fr": "Accessible au public" - } + }, + "addExtraTags": [ + "fee=no" + ] + }, + { + "if": "fee=yes", + "then": { + "en": "This is a paid playground", + "nl": "Er moet betaald worden om deze speeltuin te mogen gebruiken", + "de": "Dies ist ein gebührenpflichtiger Spielplatz" + }, + "addExtraTags": [ + "access=customers" + ] }, { "if": "access=customers", @@ -301,7 +319,10 @@ "it": "Accessibile solamente ai clienti dell’attività che lo gestisce", "de": "Nur für Kunden des Betreibers zugänglich", "fr": "Réservée aux clients" - } + }, + "addExtraTags": [ + "fee=no" + ] }, { "if": "access=students", @@ -312,7 +333,10 @@ "de": "Nur für Schüler der Schule zugänglich", "fr": "Réservée aux élèves de l’école" }, - "hideInAnswer": true + "hideInAnswer": true, + "addExtraTags": [ + "fee=no" + ] }, { "if": "access=private", @@ -327,6 +351,7 @@ } ] }, + "website", { "question": { "nl": "Wie kan men emailen indien er problemen zijn met de speeltuin?", @@ -455,7 +480,8 @@ "fr": "Toujours accessible", "ru": "Всегда доступен", "it": "Si può sempre accedere", - "de": "Immer zugänglich" + "de": "Immer zugänglich", + "ca": "Sempre accessible--" } } ], @@ -473,12 +499,13 @@ "leisure=playground" ], "title": { - "nl": "speeltuin", - "en": "playground", + "nl": "een speeltuin", + "en": "a playground", "ru": "Детская площадка", - "fr": "terrain de jeux", - "it": "campetto", - "de": "spielplatz" + "fr": "une terrain de jeux", + "it": "una campetto", + "de": "eine spielplatz", + "ca": "un parc infantil" } } ], diff --git a/assets/layers/public_bookcase/public_bookcase.json b/assets/layers/public_bookcase/public_bookcase.json index 8d267bdbd1..cb82668265 100644 --- a/assets/layers/public_bookcase/public_bookcase.json +++ b/assets/layers/public_bookcase/public_bookcase.json @@ -7,7 +7,8 @@ "fr": "Microbibliothèque", "ru": "Книжные шкафы", "it": "Microbiblioteche", - "hu": "Könyvespolcok" + "hu": "Könyvespolcok", + "ca": "Bústies per llibres" }, "description": { "en": "A streetside cabinet with books, accessible to anyone", @@ -30,7 +31,8 @@ "fr": "Microbibliothèque", "ru": "Книжный шкаф", "it": "Microbiblioteca", - "hu": "Könyvespolc" + "hu": "Könyvespolc", + "ca": "Bústia per llibres" }, "mappings": [ { @@ -50,13 +52,14 @@ "presets": [ { "title": { - "en": "Bookcase", - "nl": "Boekenruilkast", - "de": "Bücherschrank", - "fr": "Microbibliothèque", + "en": "a bookcase", + "nl": "een boekenruilkast", + "de": "eine bücherschrank", + "fr": "une microbibliothèque", "ru": "Книжный шкаф", - "it": "Microbiblioteca", - "hu": "Könyvespolc" + "it": "una microbiblioteca", + "hu": "Könyvespolc", + "ca": "una bústia per a llibres" }, "tags": [ "amenity=public_bookcase" diff --git a/assets/layers/recycling/recycling-14.svg b/assets/layers/recycling/recycling-14.svg index 6244f41247..9778d136c9 100644 --- a/assets/layers/recycling/recycling-14.svg +++ b/assets/layers/recycling/recycling-14.svg @@ -2,16 +2,34 @@ + id="svg2" + sodipodi:docname="recycling-14.svg" + inkscape:version="1.1.1 (1:1.1+202109281949+c3084ef5ed)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + @@ -20,7 +38,6 @@ image/svg+xml - @@ -32,9 +49,9 @@ x="0" y="0" id="canvas" - style="fill:none;stroke:none;visibility:hidden" /> + style="visibility:hidden;fill:none;stroke:none" /> diff --git a/assets/layers/recycling/recycling.json b/assets/layers/recycling/recycling.json index bab282396b..e2078207fd 100644 --- a/assets/layers/recycling/recycling.json +++ b/assets/layers/recycling/recycling.json @@ -2,11 +2,14 @@ "id": "recycling", "name": { "en": "Recycling", - "nl": "Recycling" + "nl": "Recycling", + "de": "Recycling", + "ca": "Residus" }, "description": { "en": "A layer with recycling containers and centres", - "nl": "Een laag met recyclagingcontainers en -centrums" + "nl": "Een laag met recyclagingcontainers en -centrums", + "de": "Eine Ebene mit Recyclingcontainern und -zentren" }, "source": { "osmTags": "amenity=recycling" @@ -18,7 +21,8 @@ "title": { "render": { "en": "Recycling facility", - "nl": "Recyclingfaciliteit" + "nl": "Recyclingfaciliteit", + "de": "Recyclinganlage" }, "mappings": [ { @@ -26,21 +30,24 @@ "then": { "*": "{name}", "en": "Recycling centre", - "nl": "Recyclingcentrum" + "nl": "Recyclingcentrum", + "de": "Wertstoffhof" } }, { "if": "recycling_type=centre", "then": { - "en": "Recycling container", - "nl": "Recyclingcontainer" + "en": "Recycling centre", + "nl": "Recyclingcentrum", + "de": "Wertstoffhof" } }, { "if": "recycling_type=container", "then": { "en": "Recycling container", - "nl": "Recyclingcontainer" + "nl": "Recyclingcontainer", + "de": "Recyclingcontainer" } } ] @@ -407,8 +414,9 @@ "presets": [ { "title": { - "en": "recycling container", - "nl": "recycling container" + "en": "a recycling container", + "nl": "een recycling container", + "de": "ein Recyclingcontainer" }, "tags": [ "amenity=recycling", @@ -417,8 +425,9 @@ }, { "title": { - "en": "recycling centre", - "nl": "recycling centre" + "en": "a recycling centre", + "nl": "een containerpark (recycling center)", + "de": "ein Wertstoffhof" }, "tags": [ "amenity=recycling", @@ -432,28 +441,32 @@ "id": "recycling-type", "question": { "en": "What type of recycling is this?", - "nl": "Wat voor soort recycling is dit?" + "nl": "Wat voor soort recycling is dit?", + "de": "Um welche Recyclingeinrichtung handelt es sich?" }, "mappings": [ { "if": "recycling_type=container", "then": { "en": "This is a recycling container", - "nl": "Dit is een recyclingcontainer" + "nl": "Dit is een recyclingcontainer", + "de": "Dies ist ein Recycling-Container" } }, { "if": "recycling_type=centre", "then": { "en": "This is a recycling centre", - "nl": "Dit is een recyclingcentrum" + "nl": "Dit is een recyclingcentrum", + "de": "Dies ist ein Wertstoffhof" } }, { "if": "amenity=waste_disposal", "then": { "en": "Waste disposal container for residual waste", - "nl": "Afvalcontainer voor restafval" + "nl": "Afvalcontainer voor restafval", + "de": "Dies ist ein Abfallcontainer für Restmüll" }, "addExtraTags": [ "recycling:batteries=", @@ -484,11 +497,13 @@ "id": "recycling-centre-name", "question": { "en": "What is the name of this recycling centre?", - "nl": "Wat is de naam van dit recyclagecentrum?" + "nl": "Wat is de naam van dit recyclagecentrum?", + "de": "Wie lautet der Name dieses Wertstoffhofs?" }, "render": { "en": "This recycling centre is named {name}", - "nl": "Dit recyclagecentrum heet {name}" + "nl": "Dit recyclagecentrum heet {name}", + "de": "Dieser Wertstoffhof heißt {name}" }, "freeform": { "key": "name" @@ -498,7 +513,8 @@ "if": "noname=yes", "then": { "en": "This recycling centre doesn't have a specific name", - "nl": "Dit recyclagecentrum heeft geen specifieke naam" + "nl": "Dit recyclagecentrum heeft geen specifieke naam", + "de": "Dieser Wertstoffhof hat keinen bestimmten Namen" } } ], @@ -508,7 +524,8 @@ "id": "container-location", "question": { "en": "Where is this container located?", - "nl": "Waar bevindt deze container zich?" + "nl": "Waar bevindt deze container zich?", + "de": "Wo befindet sich dieser Container?" }, "condition": "recycling_type=container", "mappings": [ @@ -516,21 +533,24 @@ "if": "location=underground", "then": { "en": "This is an underground container", - "nl": "Dit is een ondergrondse container" + "nl": "Dit is een ondergrondse container", + "de": "Dies ist ein Unterflurcontainer" } }, { "if": "location=indoor", "then": { "en": "This container is located indoors", - "nl": "Deze container bevindt zich binnen" + "nl": "Deze container bevindt zich binnen", + "de": "Dieser Container befindet sich in einem Gebäude" } }, { "if": "location=", "then": { "en": "This container is located outdoors", - "nl": "Deze container is buiten" + "nl": "Deze container is buiten", + "de": "Dieser Container befindet sich im Freien" } } ] @@ -539,7 +559,8 @@ "id": "recycling-accepts", "question": { "en": "What can be recycled here?", - "nl": "Wat kan hier gerecycled worden?" + "nl": "Wat kan hier gerecycled worden?", + "de": "Was kann hier recycelt werden?" }, "multiAnswer": true, "mappings": [ @@ -548,7 +569,8 @@ "ifnot": "recycling:batteries=", "then": { "en": "Batteries can be recycled here", - "nl": "Batterijen kunnen hier gerecycled worden" + "nl": "Batterijen kunnen hier gerecycled worden", + "de": "Batterien können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/batteries.svg", @@ -560,7 +582,8 @@ "ifnot": "recycling:beverage_cartons=", "then": { "en": "Beverage cartons can be recycled here", - "nl": "Drankpakken kunnen hier gerecycled worden" + "nl": "Drankpakken kunnen hier gerecycled worden", + "de": "Getränkekartons können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/beverage_cartons.svg", @@ -572,7 +595,8 @@ "ifnot": "recycling:cans=", "then": { "en": "Cans can be recycled here", - "nl": "Blikken kunnen hier gerecycled worden" + "nl": "Blikken kunnen hier gerecycled worden", + "de": "Dosen können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/cans.svg", @@ -584,7 +608,8 @@ "ifnot": "recycling:clothes=", "then": { "en": "Clothes can be recycled here", - "nl": "Kleren kunnen hier gerecycled worden" + "nl": "Kleren kunnen hier gerecycled worden", + "de": "Kleidung kann hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/clothes.svg", @@ -596,7 +621,8 @@ "ifnot": "recycling:cooking_oil=", "then": { "en": "Cooking oil can be recycled here", - "nl": "Frituurvet kan hier gerecycled worden" + "nl": "Frituurvet kan hier gerecycled worden", + "de": "Speiseöl kann hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/cooking_oil.svg", @@ -608,7 +634,8 @@ "ifnot": "recycling:engine_oil=", "then": { "en": "Engine oil can be recycled here", - "nl": "Motorolie kan hier gerecycled worden" + "nl": "Motorolie kan hier gerecycled worden", + "de": "Motoröl kann hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/engine_oil.svg", @@ -620,7 +647,8 @@ "ifnot": "recycling:green_waste=", "then": { "en": "Green waste can be recycled here", - "nl": "Groen afval kan hier gerecycled worden" + "nl": "Groen afval kan hier gerecycled worden", + "de": "Grünabfälle können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/garden_waste.svg", @@ -632,7 +660,8 @@ "ifnot": "recycling:organic=", "then": { "en": "Organic waste can be recycled here", - "nl": "Organisch afval kan hier gerecycled worden" + "nl": "Organisch afval kan hier gerecycled worden", + "de": "Bio-Abfall kann hier recycelt werden" }, "hideInAnswer": true, "icon": { @@ -645,7 +674,8 @@ "ifnot": "recycling:glass_bottles=", "then": { "en": "Glass bottles can be recycled here", - "nl": "Glazen flessen kunnen hier gerecycled worden" + "nl": "Glazen flessen kunnen hier gerecycled worden", + "de": "Glasflaschen können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/glass_bottles.svg", @@ -657,7 +687,8 @@ "ifnot": "recycling:glass=", "then": { "en": "Glass can be recycled here", - "nl": "Glas kan hier gerecycled worden" + "nl": "Glas kan hier gerecycled worden", + "de": "Glas kann hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/glass.svg", @@ -669,7 +700,8 @@ "ifnot": "recycling:newspaper=", "then": { "en": "Newspapers can be recycled here", - "nl": "Kranten kunnen hier gerecycled worden" + "nl": "Kranten kunnen hier gerecycled worden", + "de": "Zeitungen können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/newspaper.svg", @@ -681,7 +713,8 @@ "ifnot": "recycling:paper=", "then": { "en": "Paper can be recycled here", - "nl": "Papier kan hier gerecycled worden" + "nl": "Papier kan hier gerecycled worden", + "de": "Papier kann hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/paper.svg", @@ -693,7 +726,8 @@ "ifnot": "recycling:plastic_bottles=", "then": { "en": "Plastic bottles can be recycled here", - "nl": "Plastic flessen kunnen hier gerecycled worden" + "nl": "Plastic flessen kunnen hier gerecycled worden", + "de": "Plastikflaschen können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/plastic_bottles.svg", @@ -705,7 +739,8 @@ "ifnot": "recycling:plastic_packaging=", "then": { "en": "Plastic packaging can be recycled here", - "nl": "Plastic verpakking kan hier gerecycled worden" + "nl": "Plastic verpakking kan hier gerecycled worden", + "de": "Kunststoffverpackungen können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/plastic_packaging.svg", @@ -717,7 +752,8 @@ "ifnot": "recycling:plastic=", "then": { "en": "Plastic can be recycled here", - "nl": "Plastic kan hier gerecycled worden" + "nl": "Plastic kan hier gerecycled worden", + "de": "Kunststoff kann hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/plastic.svg", @@ -729,7 +765,8 @@ "ifnot": "recycling:scrap_metal=", "then": { "en": "Scrap metal can be recycled here", - "nl": "Oud metaal kan hier gerecycled worden" + "nl": "Oud metaal kan hier gerecycled worden", + "de": "Metallschrott kann hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/scrap_metal.svg", @@ -741,7 +778,8 @@ "ifnot": "recycling:shoes=", "then": { "en": "Shoes can be recycled here", - "nl": "Schoenen kunnen hier gerecycled worden" + "nl": "Schoenen kunnen hier gerecycled worden", + "de": "Schuhe können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/shoes.svg", @@ -753,7 +791,8 @@ "ifnot": "recycling:small_appliances=", "then": { "en": "Small electrical appliances can be recycled here", - "nl": "Kleine elektrische apparaten kunnen hier gerecycled worden" + "nl": "Kleine elektrische apparaten kunnen hier gerecycled worden", + "de": "Elektrokleingeräte können hier recycelt werden" }, "icon": { "path": "./assets/layers/recycling/small_electrical_appliances.svg", @@ -765,7 +804,8 @@ "ifnot": "recycling:small_electrical_appliances=", "then": { "en": "Small electrical appliances can be recycled here", - "nl": "Kleine elektrische apparaten kunnen hier gerecycled worden" + "nl": "Kleine elektrische apparaten kunnen hier gerecycled worden", + "de": "Elektrokleingeräte können hier recycelt werden" }, "hideInAnswer": true, "icon": { @@ -773,12 +813,22 @@ "class": "medium" } }, + { + "if": "recycling:needles=yes", + "ifnot": "recycling:needles=", + "then": { + "en": "Needles can be recycled here", + "nl": "Injectienaalden kunnen hier gerecycled worden", + "de": "Nadeln können hier recycelt werden" + } + }, { "if": "recycling:waste=yes", "ifnot": "recycling:waste=", "then": { "en": "Residual waste can be recycled here", - "nl": "Restafval kan hier gerecycled worden" + "nl": "Restafval kan hier gerecycled worden", + "de": "Restmüll kann hier recycelt werden" }, "icon": { "path": "./assets/layers/waste_disposal/waste_disposal.svg", @@ -792,11 +842,13 @@ "id": "operator", "render": { "en": "This recycling facility is operated by {operator}", - "nl": "Deze recyclingfaciliteit wordt beheerd door {operator}" + "nl": "Deze recyclingfaciliteit wordt beheerd door {operator}", + "de": "Diese Recyclinganlage wird betrieben von {operator}" }, "question": { "en": "What company operates this recycling facility?", - "nl": "Wat is de beheerder van deze recyclingfaciliteit?" + "nl": "Wat is de beheerder van deze recyclingfaciliteit?", + "de": "Welches Unternehmen betreibt diese Recyclinganlage?" }, "freeform": { "key": "operator", @@ -818,7 +870,8 @@ "render": "{opening_hours_table()}", "question": { "en": "What are the opening hours of this recycling facility?", - "nl": "Wat zijn de openingstijden van deze recyclingfaciliteit?" + "nl": "Wat zijn de openingstijden van deze recyclingfaciliteit?", + "de": "Wie sind die Öffnungszeiten dieser Recyclinganlage?" }, "freeform": { "key": "opening_hours", @@ -829,7 +882,9 @@ "if": "opening_hours=24/7", "then": { "en": "24/7", - "nl": "24/7" + "nl": "24/7", + "ca": "24/7", + "de": "24/7" } } ] @@ -842,7 +897,8 @@ { "question": { "en": "Currently open", - "nl": "Op dit moment open" + "nl": "Op dit moment open", + "de": "Derzeit geöffnet" }, "osmTags": "_isOpen=yes" } @@ -854,55 +910,63 @@ { "question": { "en": "All recycling types", - "nl": "Alle recyclingtypes" + "nl": "Alle recyclingtypes", + "de": "Alle Recyclingarten" } }, { "question": { "en": "Recycling of batteries", - "nl": "Recycling van batterijen" + "nl": "Recycling van batterijen", + "de": "Recycling von Batterien" }, "osmTags": "recycling:batteries=yes" }, { "question": { "en": "Recycling of beverage cartons", - "nl": "Recycling van drankpakken" + "nl": "Recycling van drankpakken", + "de": "Recycling von Getränkekartons" }, "osmTags": "recycling:beverage_cartons=yes" }, { "question": { "en": "Recycling of cans", - "nl": "Recycling van blikken" + "nl": "Recycling van blikken", + "de": "Recycling von Dosen" }, "osmTags": "recycling:cans=yes" }, { "question": { "en": "Recycling of clothes", - "nl": "Recycling van kleding" + "nl": "Recycling van kleding", + "de": "Recycling von Kleidung" }, "osmTags": "recycling:clothes=yes" }, { "question": { "en": "Recycling of cooking oil", - "nl": "Recycling van frituurvet" + "nl": "Recycling van frituurvet", + "de": "Recycling von Speiseöl" }, "osmTags": "recycling:cooking_oil=yes" }, { "question": { "en": "Recycling of engine oil", - "nl": "Recycling van motorolie" + "nl": "Recycling van motorolie", + "de": "Recycling von Motoröl" }, "osmTags": "recycling:engine_oil=yes" }, { "question": { "en": "Recycling of green waste", - "nl": "Recycling van groen afval" + "nl": "Recycling van groen afval", + "de": "Recycling von Grünabfällen" }, "osmTags": { "or": [ @@ -914,63 +978,72 @@ { "question": { "en": "Recycling of glass bottles", - "nl": "Recycling van glazen flessen" + "nl": "Recycling van glazen flessen", + "de": "Recycling von Glasflaschen" }, "osmTags": "recycling:glass_bottles=yes" }, { "question": { "en": "Recycling of glass", - "nl": "Recycling van glas" + "nl": "Recycling van glas", + "de": "Recycling von Glas" }, "osmTags": "recycling:glass=yes" }, { "question": { "en": "Recycling of newspapers", - "nl": "Recycling van kranten" + "nl": "Recycling van kranten", + "de": "Recycling von Zeitungen" }, "osmTags": "recycling:newspaper=yes" }, { "question": { "en": "Recycling of paper", - "nl": "Recycling van papier" + "nl": "Recycling van papier", + "de": "Recycling von Papier" }, "osmTags": "recycling:paper=yes" }, { "question": { "en": "Recycling of plastic bottles", - "nl": "Recycling van plastic flessen" + "nl": "Recycling van plastic flessen", + "de": "Recycling von Plastikflaschen" }, "osmTags": "recycling:plastic_bottles=yes" }, { "question": { "en": "Recycling of plastic packaging", - "nl": "Recycling van plastic verpakking" + "nl": "Recycling van plastic verpakking", + "de": "Recycling von Kunststoffverpackungen" }, "osmTags": "recycling:plastic_packaging=yes" }, { "question": { "en": "Recycling of plastic", - "nl": "Recycling van plastic" + "nl": "Recycling van plastic", + "de": "Recycling von Kunststoffen" }, "osmTags": "recycling:plastic=yes" }, { "question": { "en": "Recycling of scrap metal", - "nl": "Recycling van oud metaal" + "nl": "Recycling van oud metaal", + "de": "Recycling von Metallschrott" }, "osmTags": "recycling:scrap_metal=yes" }, { "question": { "en": "Recycling of small electrical appliances", - "nl": "Recycling van kleine elektrische apparaten" + "nl": "Recycling van kleine elektrische apparaten", + "de": "Recycling von Elektrokleingeräten" }, "osmTags": { "or": [ @@ -982,7 +1055,8 @@ { "question": { "en": "Recycling of residual waste", - "nl": "Recycling van restafval" + "nl": "Recycling van restafval", + "de": "Recycling von Restabfällen" }, "osmTags": "recycling:waste=yes" } diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json index c9c4461bfc..b5624489d2 100644 --- a/assets/layers/shops/shops.json +++ b/assets/layers/shops/shops.json @@ -6,8 +6,9 @@ "ru": "Магазин", "ja": "店", "nl": "Winkel", - "de": "Geschäft", - "eo": "Butiko" + "de": "Geschäfte", + "eo": "Butiko", + "ca": "Botiga" }, "minzoom": 16, "source": { @@ -25,7 +26,8 @@ "ja": "店", "nl": "Winkel", "de": "Geschäft", - "eo": "Butiko" + "eo": "Butiko", + "ca": "Botiga" }, "mappings": [ { @@ -40,7 +42,9 @@ "ru": "{name}", "ja": "{name}", "de": "{name}", - "eo": "{name}" + "eo": "{name}", + "nl": "{name}", + "ca": "{name}" } }, { @@ -55,7 +59,9 @@ "ru": "{shop}", "ja": "{shop}", "de": "{shop}", - "eo": "{shop}" + "eo": "{shop}", + "nl": "{shop}", + "ca": "{shop}" } } ] @@ -92,7 +98,8 @@ "fr": "Ce magasin vends {shop}", "ja": "こちらのお店では{shop}を販売しております", "de": "Dieses Geschäft verkauft {shop}", - "eo": "Ĉi tiu butiko vendas {shop}" + "eo": "Ĉi tiu butiko vendas {shop}", + "nl": "Deze winkel is van type \"{shop}\"" }, "question": { "en": "What does this shop sell?", @@ -100,7 +107,8 @@ "ja": "このお店では何を売っていますか?", "ru": "Что продаётся в этом магазине?", "de": "Was wird in diesem Geschäft verkauft?", - "eo": "Kion vendas ĉi tiu butiko?" + "eo": "Kion vendas ĉi tiu butiko?", + "nl": "Wat verkoopt deze winkel?" }, "freeform": { "key": "shop" @@ -132,7 +140,8 @@ "ru": "Супермаркет", "ja": "スーパーマーケット", "nl": "Supermarkt", - "de": "Supermarkt" + "de": "Supermarkt", + "ca": "Supermercat" } }, { @@ -162,7 +171,8 @@ "ru": "Парикмахерская", "ja": "理容師", "nl": "Kapper", - "de": "Friseur" + "de": "Friseur", + "ca": "Perruqueria" } }, { @@ -177,7 +187,8 @@ "ja": "ベーカリー", "nl": "Bakkerij", "de": "Bäckerei", - "eo": "Bakejo" + "eo": "Bakejo", + "ca": "Fleca" } }, { @@ -258,7 +269,8 @@ "ru": "{website}", "ja": "{website}", "de": "{website}", - "eo": "{website}" + "eo": "{website}", + "nl": "{website}" }, "question": { "en": "What is the website of this shop?", @@ -282,7 +294,8 @@ "ru": "{email}", "ja": "{email}", "eo": "{email}", - "nl": "{email}" + "nl": "{email}", + "de": "{email}" }, "question": { "en": "What is the email address of this shop?", @@ -305,7 +318,9 @@ "fr": "{opening_hours_table(opening_hours)}", "ru": "{opening_hours_table(opening_hours)}", "ja": "{opening_hours_table(opening_hours)}", - "nl": "{opening_hours_table(opening_hours)}" + "nl": "{opening_hours_table(opening_hours)}", + "ca": "{opening_hours_table(opening_hours)}", + "de": "{opening_hours_table(opening_hours)}" }, "question": { "en": "What are the opening hours of this shop?", @@ -331,12 +346,12 @@ "shop=yes" ], "title": { - "en": "Shop", - "fr": "Magasin", + "en": "a shop", + "fr": "une magasin", "ru": "Магазин", "ja": "店", - "nl": "Winkel", - "de": "Geschäft", + "nl": "een winkel", + "de": "eine geschäft", "eo": "Butiko" }, "description": { @@ -356,7 +371,17 @@ "amenity=", "disused:amenity:={amenity}" ] - } + }, + "extraDeleteReasons": [ + { + "explanation": { + "nl": "{title()} is permanent gestopt", + "en": "{title()} has closed down permanently", + "de": "{title()} wurde dauerhaft geschlossen" + }, + "changesetMessage": "shop_closed" + } + ] }, "allowMove": true, "mapRendering": [ @@ -370,6 +395,14 @@ "then": "isOpen" } ], + "label": { + "mappings": [ + { + "if": "name~*", + "then": "
    {name}
    " + } + ] + }, "iconSize": { "render": "40,40,center" }, @@ -386,5 +419,67 @@ "render": "8" } } + ], + "filter": [ + { + "id": "shop-type", + "options": [ + { + "fields": [ + { + "name": "search", + "type": "string" + } + ], + "osmTags": "shop~^.*{search}.*$", + "question": { + "en": "Only show shops selling {search}", + "de": "Nur Geschäfte, die {search} verkaufen", + "nl": "Toon enkel winkels die {search} verkopen" + } + } + ] + }, + { + "id": "shop-name", + "options": [ + { + "fields": [ + { + "name": "search", + "type": "string" + } + ], + "osmTags": "name~^.*{search}.*$", + "question": { + "en": "Only show shops with name {search}", + "de": "Nur Geschäfte mit dem Namen {search} anzeigen", + "nl": "Toon enkel winkels met naam {search}" + } + } + ] + }, + { + "id": "accepts-cash", + "options": [ + { + "osmTags": "payment:cash=yes", + "question": { + "en": "Accepts cash" + } + } + ] + }, + { + "id": "accepts-cards", + "options": [ + { + "osmTags": "payment:cards=yes", + "question": { + "en": "Accepts payment cards" + } + } + ] + } ] } \ No newline at end of file diff --git a/assets/layers/slow_roads/slow_roads.json b/assets/layers/slow_roads/slow_roads.json index 9984d916f9..0e0a86b506 100644 --- a/assets/layers/slow_roads/slow_roads.json +++ b/assets/layers/slow_roads/slow_roads.json @@ -280,6 +280,8 @@ } ], "description": { - "en": "All carfree roads" + "en": "All carfree roads", + "nl": "Alle verkeersvrije wegen", + "de": "Alle autofreien Straßen" } } \ No newline at end of file diff --git a/assets/layers/sport_pitch/sport_pitch.json b/assets/layers/sport_pitch/sport_pitch.json index c3d7f38e1c..35a658f5f2 100644 --- a/assets/layers/sport_pitch/sport_pitch.json +++ b/assets/layers/sport_pitch/sport_pitch.json @@ -6,7 +6,8 @@ "en": "Sport pitches", "ru": "Спортивные площадки", "it": "Campi sportivi", - "de": "Sportplätze" + "de": "Sportplätze", + "ca": "Camps d'esports" }, "minzoom": 12, "source": { @@ -26,7 +27,8 @@ "en": "Sport pitch", "ru": "Спортивная площадка", "it": "Campo sportivo", - "de": "Sportplatz" + "de": "Sportplatz", + "ca": "Camp d'esports" } }, "description": { @@ -425,12 +427,12 @@ "presets": [ { "title": { - "nl": "Ping-pong tafel", - "fr": "Table de ping-pong", - "en": "Tabletennis table", - "it": "Tavolo da tennistavolo", + "nl": "een ping-pong tafel", + "fr": "une table de ping-pong", + "en": "a tabletennis table", + "it": "una tavolo da tennistavolo", "ru": "Стол для настольного тенниса", - "de": "Tischtennisplatte" + "de": "eine tischtennisplatte" }, "tags": [ "leisure=pitch", @@ -439,12 +441,12 @@ }, { "title": { - "nl": "Sportterrein", - "fr": "Terrain de sport", - "en": "Sport pitch", + "nl": "een sportterrein", + "fr": "une terrain de sport", + "en": "a sport pitch", "ru": "Спортивная площадка", - "it": "Campo sportivo", - "de": "Sportplatz" + "it": "una campo sportivo", + "de": "eine sportplatz" }, "tags": [ "leisure=pitch", diff --git a/assets/layers/street_lamps/street_lamps.json b/assets/layers/street_lamps/street_lamps.json index 401b72f92f..5d65a0fa61 100644 --- a/assets/layers/street_lamps/street_lamps.json +++ b/assets/layers/street_lamps/street_lamps.json @@ -2,7 +2,8 @@ "id": "street_lamps", "name": { "en": "Street Lamps", - "nl": "Straatlantaarns" + "nl": "Straatlantaarns", + "de": "Straßenlaternen" }, "source": { "osmTags": "highway=street_lamp" @@ -11,14 +12,16 @@ "title": { "render": { "en": "Street Lamp", - "nl": "Straatlantaarn" + "nl": "Straatlantaarn", + "de": "Straßenlaterne" }, "mappings": [ { "if": "ref~*", "then": { "en": "Street Lamp {ref}", - "nl": "Straatlantaarn {ref}" + "nl": "Straatlantaarn {ref}", + "de": "Straßenlaterne {ref}" } } ] @@ -42,8 +45,9 @@ "presets": [ { "title": { - "en": "street lamp", - "nl": "straatlantaarn" + "en": "a street lamp", + "nl": "een straatlantaarn", + "de": "eine Straßenlaterne" }, "tags": [ "highway=street_lamp" @@ -56,11 +60,13 @@ "id": "ref", "render": { "en": "This street lamp has the reference number {ref}", - "nl": "Deze straatlantaarn heeft het nummer {ref}" + "nl": "Deze straatlantaarn heeft het nummer {ref}", + "de": "Diese Straßenlaterne hat die Referenznummer {ref}" }, "question": { "en": "What is the reference number of this street lamp?", - "nl": "Wat is het nummer van deze straatlantaarn?" + "nl": "Wat is het nummer van deze straatlantaarn?", + "de": "Wie lautet die Referenznummer dieser Straßenlaterne?" }, "freeform": { "key": "ref" @@ -70,56 +76,64 @@ "id": "support", "question": { "en": "How is this street lamp mounted?", - "nl": "Hoe is deze straatlantaarn gemonteerd?" + "nl": "Hoe is deze straatlantaarn gemonteerd?", + "de": "Wie ist diese Straßenlaterne befestigt?" }, "mappings": [ { "if": "support=catenary", "then": { "en": "This lamp is suspended using cables", - "nl": "Deze lantaarn hangt aan kabels" + "nl": "Deze lantaarn hangt aan kabels", + "de": "Diese Straßenlaterne ist an einem Kabel aufgehängt" } }, { "if": "support=ceiling", "then": { "en": "This lamp is mounted on a ceiling", - "nl": "Deze lantaarn hangt aan een plafond" + "nl": "Deze lantaarn hangt aan een plafond", + "de": "Diese Straßenlaterne ist an einer Decke montiert" } }, { "if": "support=ground", "then": { "en": "This lamp is mounted in the ground", - "nl": "Deze lantaarn zit in de grond" + "nl": "Deze lantaarn zit in de grond", + "de": "Diese Straßenlaterne ist im Boden montiert" } }, { "if": "support=pedestal", "then": { "en": "This lamp is mounted on a short pole (mostly < 1.5m)", - "nl": "Deze lantaarn zit op een korte paal (meestal < 1.5m)" + "nl": "Deze lantaarn zit op een korte paal (meestal < 1.5m)", + "de": "Diese Straßenlaterne ist an einem kurzen Mast (< 1,5m) montiert" } }, { "if": "support=pole", "then": { "en": "This lamp is mounted on a pole", - "nl": "Deze lantaarn zit op een paal" + "nl": "Deze lantaarn zit op een paal", + "de": "Diese Straßenlaterne ist an einem Mast montiert" } }, { "if": "support=wall", "then": { "en": "This lamp is mounted directly to the wall", - "nl": "Deze lantaarn hangt direct aan de muur" + "nl": "Deze lantaarn hangt direct aan de muur", + "de": "Diese Straßenlaterne ist direkt an der Wand montiert" } }, { "if": "support=wall_mount", "then": { "en": "This lamp is mounted to the wall using a metal bar", - "nl": "Deze lantaarn hangt aan de muur met een metalen balk" + "nl": "Deze lantaarn hangt aan de muur met een metalen balk", + "de": "Diese Straßenlaterne ist mit einer Metallstange an der Wand montiert" } } ] @@ -128,7 +142,8 @@ "id": "lamp_mount", "question": { "en": "How is this lamp mounted to the pole?", - "nl": "Hoe zit deze lantaarn aan de paal?" + "nl": "Hoe zit deze lantaarn aan de paal?", + "de": "Wie ist diese Straßenlaterne am Mast befestigt?" }, "condition": "support=pole", "mappings": [ @@ -136,14 +151,16 @@ "if": "lamp_mount=straight_mast", "then": { "en": "This lamp sits atop of a straight mast", - "nl": "Deze lantaarn zit boven op een rechte paal" + "nl": "Deze lantaarn zit boven op een rechte paal", + "de": "Diese Straßenlaterne sitzt auf einem geraden Mast" } }, { "if": "lamp_mount=bent_mast", "then": { "en": "This lamp sits at the end of a bent mast", - "nl": "Deze lantaarn zit aan het eind van een gebogen paal" + "nl": "Deze lantaarn zit aan het eind van een gebogen paal", + "de": "Diese Straßenlaterne sitzt am Ende eines gebogenen Mastes" } } ] @@ -152,14 +169,16 @@ "id": "method", "question": { "en": "What kind of lighting does this lamp use?", - "nl": "Wat voor verlichting gebruikt deze lantaarn?" + "nl": "Wat voor verlichting gebruikt deze lantaarn?", + "de": "Mit welcher Art von Beleuchtung arbeitet diese Straßenlaterne?" }, "mappings": [ { "if": "light:method=electric", "then": { "en": "This lamp is lit electrically", - "nl": "Deze lantaarn is elektrisch verlicht" + "nl": "Deze lantaarn is elektrisch verlicht", + "de": "Diese Straßenlaterne leuchtet elektrisch" }, "hideInAnswer": true }, @@ -167,77 +186,88 @@ "if": "light:method=LED", "then": { "en": "This lamp uses LEDs", - "nl": "Deze lantaarn gebruikt LEDs" + "nl": "Deze lantaarn gebruikt LEDs", + "de": "Diese Straßenlaterne verwendet LEDs" } }, { "if": "light:method=incandescent", "then": { "en": "This lamp uses incandescent lighting", - "nl": "Deze lantaarn gebruikt gloeilampen" + "nl": "Deze lantaarn gebruikt gloeilampen", + "de": "Diese Straßenlaterne verwendet Glühlampenlicht" } }, { "if": "light:method=halogen", "then": { "en": "This lamp uses halogen lighting", - "nl": "Deze lantaarn gebruikt halogeen verlichting" + "nl": "Deze lantaarn gebruikt halogeen verlichting", + "de": "Diese Straßenlaterne verwendet Halogenlicht" } }, { "if": "light:method=discharge", "then": { "en": "This lamp uses discharge lamps (unknown type)", - "nl": "Deze lantaarn gebruikt gasontladingslampen (onbekend type)" + "nl": "Deze lantaarn gebruikt gasontladingslampen (onbekend type)", + "de": "Diese Straßenlaterne verwendet Entladungslampen (unbekannter Typ)" } }, { "if": "light:method=mercury", "then": { "en": "This lamp uses a mercury-vapour lamp (lightly blueish)", - "nl": "Deze lantaarn gebruikt een kwiklamp (enigszins blauwachtig)" + "nl": "Deze lantaarn gebruikt een kwiklamp (enigszins blauwachtig)", + "de": "Diese Straßenlaterne verwendet eine Quecksilberdampflampe (leicht bläulich)" } }, { "if": "light:method=metal-halide", "then": { "en": "This lamp uses metal-halide lamps (bright white)", - "nl": "Deze lantaarn gebruikt metaalhalidelampen" + "nl": "Deze lantaarn gebruikt metaalhalidelampen", + "de": "Diese Straßenlaterne verwendet Halogen-Metalldampflampen (hellweiß)" } }, { "if": "light:method=fluorescent", "then": { "en": "This lamp uses fluorescent lighting", - "nl": "Deze lantaarn gebruikt fluorescentieverlichting (TL en spaarlamp)" + "nl": "Deze lantaarn gebruikt fluorescentieverlichting (TL en spaarlamp)", + "de": "Diese Straßenlaterne verwendet Leuchtstoffröhren" } }, { "if": "light:method=sodium", "then": { "en": "This lamp uses sodium lamps (unknown type)", - "nl": "Deze lantaarn gebruikt natriumlampen (onbekend type)" + "nl": "Deze lantaarn gebruikt natriumlampen (onbekend type)", + "de": "Diese Straßenlaterne verwendet Natriumdampflampen (unbekannter Typ)" } }, { "if": "light:method=low_pressure_sodium", "then": { "en": "This lamp uses low pressure sodium lamps (monochrome orange)", - "nl": "Deze lantaarn gebruikt lagedruknatriumlampen (monochroom oranje)" + "nl": "Deze lantaarn gebruikt lagedruknatriumlampen (monochroom oranje)", + "de": "Diese Straßenlaterne verwendet Niederdruck-Natriumdampflampen (einfarbig orange)" } }, { "if": "light:method=high_pressure_sodium", "then": { "en": "This lamp uses high pressure sodium lamps (orange with white)", - "nl": "Deze lantaarn gebruikt hogedruknatriumlampen (oranje met wit)" + "nl": "Deze lantaarn gebruikt hogedruknatriumlampen (oranje met wit)", + "de": "Diese Straßenlaterne verwendet Hochdruck-Natriumdampflampen (orange mit weiß)" } }, { "if": "light:method=gas", "then": { "en": "This lamp is lit using gas", - "nl": "Deze lantaarn wordt verlicht met gas" + "nl": "Deze lantaarn wordt verlicht met gas", + "de": "Diese Straßenlaterne wird mit Gas beleuchtet" } } ] @@ -246,11 +276,13 @@ "id": "colour", "question": { "en": "What colour light does this lamp emit?", - "nl": "Wat voor kleur licht geeft deze lantaarn?" + "nl": "Wat voor kleur licht geeft deze lantaarn?", + "de": "Welche Lichtfarbe strahlt diese Lampe aus?" }, "render": { "en": "This lamp emits {light:colour} light", - "nl": "Deze lantaarn geeft {light:colour} licht" + "nl": "Deze lantaarn geeft {light:colour} licht", + "de": "Diese Lampe strahlt {light:colour} Licht aus" }, "freeform": { "key": "light:colour", @@ -261,21 +293,24 @@ "if": "light:colour=white", "then": { "en": "This lamp emits white light", - "nl": "Deze lantaarn geeft wit licht" + "nl": "Deze lantaarn geeft wit licht", + "de": "Diese Lampe strahlt weißes Licht aus" } }, { "if": "light:colour=green", "then": { "en": "This lamp emits green light", - "nl": "Deze lantaarn geeft groen licht" + "nl": "Deze lantaarn geeft groen licht", + "de": "Diese Lampe strahlt grünes Licht aus" } }, { "if": "light:colour=orange", "then": { "en": "This lamp emits orange light", - "nl": "Deze lantaarn geeft oranje licht" + "nl": "Deze lantaarn geeft oranje licht", + "de": "Diese Lampe strahlt orangefarbenes Licht aus" } } ] @@ -284,11 +319,13 @@ "id": "count", "render": { "en": "This lamp has {light:count} fixtures", - "nl": "Deze lantaarn heeft {light:count} lampen" + "nl": "Deze lantaarn heeft {light:count} lampen", + "de": "Diese Straßenlaterne hat {light:count} Leuchten" }, "question": { "en": "How many fixtures does this light have?", - "nl": "Hoeveel lampen heeft deze lantaarn?" + "nl": "Hoeveel lampen heeft deze lantaarn?", + "de": "Wie viele Leuchten hat diese Straßenlaterne?" }, "condition": "support=pole", "freeform": { @@ -300,14 +337,16 @@ "if": "light:count=1", "then": { "en": "This lamp has 1 fixture", - "nl": "Deze lantaarn heeft 1 lamp" + "nl": "Deze lantaarn heeft 1 lamp", + "de": "Diese Straßenlaterne hat 1 Leuchte" } }, { "if": "light:count=2", "then": { "en": "This lamp has 2 fixtures", - "nl": "Deze lantaarn heeft 2 lampen" + "nl": "Deze lantaarn heeft 2 lampen", + "de": "Diese Straßenlaterne hat 2 Leuchten" } } ] @@ -316,35 +355,40 @@ "id": "lit", "question": { "en": "When is this lamp lit?", - "nl": "Wanneer is deze lantaarn verlicht?" + "nl": "Wanneer is deze lantaarn verlicht?", + "de": "Wann leuchtet diese Straßenlaterne?" }, "mappings": [ { "if": "light:lit=dusk-dawn", "then": { "en": "This lamp is lit at night", - "nl": "Deze lantaarn is 's nachts verlicht" + "nl": "Deze lantaarn is 's nachts verlicht", + "de": "Diese Straßenlaterne leuchtet nachts" } }, { "if": "light:lit=24/7", "then": { "en": "This lamp is lit 24/7", - "nl": "Deze lantaarn is 24/7 verlicht" + "nl": "Deze lantaarn is 24/7 verlicht", + "de": "Diese Straßenlaterne leuchtet durchgehend" } }, { "if": "light:lit=motion", "then": { "en": "This lamp is lit based on motion", - "nl": "Deze lantaarn is verlicht op basis van beweging" + "nl": "Deze lantaarn is verlicht op basis van beweging", + "de": "Diese Straßenlaterne leuchtet bewegungsgesteuert" } }, { "if": "light:lit=demand", "then": { "en": "This lamp is lit based on demand (e.g. with a pushbutton)", - "nl": "Deze lantaarn is verlicht op verzoek (bijv. met een drukknop)" + "nl": "Deze lantaarn is verlicht op verzoek (bijv. met een drukknop)", + "de": "Diese Straßenlaterne leuchtet bei Bedarf (z. B. mit einem Taster)" } } ] @@ -353,11 +397,13 @@ "id": "direction", "render": { "en": "This lamp points towards {light:direction}", - "nl": "Deze lantaarn is gericht naar {light:direction}" + "nl": "Deze lantaarn is gericht naar {light:direction}", + "de": "Diese Straßenlaterne leuchtet in Richtung {light:direction}" }, "question": { "en": "Where does this lamp point to?", - "nl": "Waar is deze lamp heengericht?" + "nl": "Waar is deze lamp heengericht?", + "de": "Wohin leuchtet diese Straßenlaterne?" }, "condition": "light:count=1", "freeform": { @@ -372,6 +418,8 @@ "enableRelocation": false }, "description": { - "en": "A layer showing street lights" + "en": "A layer showing street lights", + "nl": "Een laag die alle straatlantaarns toont", + "de": "Eine Ebene mit Straßenbeleuchtung" } } \ No newline at end of file diff --git a/assets/layers/surveillance_camera/surveillance_camera.json b/assets/layers/surveillance_camera/surveillance_camera.json index a6a2f31b99..a1e789544c 100644 --- a/assets/layers/surveillance_camera/surveillance_camera.json +++ b/assets/layers/surveillance_camera/surveillance_camera.json @@ -6,7 +6,8 @@ "ru": "Камеры наблюдения", "fr": "Caméras de surveillance", "it": "Videocamere di sorveglianza", - "de": "Überwachungskameras" + "de": "Überwachungskameras", + "ca": "Càmeres de videovigilància" }, "minzoom": 12, "source": { @@ -30,7 +31,8 @@ "ru": "Камера наблюдения", "fr": "Caméra de surveillance", "it": "Videocamera di sorveglianza", - "de": "Überwachungskamera" + "de": "Überwachungskamera", + "ca": "Càmera de videovigilància" } }, "tagRenderings": [ @@ -104,7 +106,8 @@ "en": "Films to a compass heading of {camera:direction}", "nl": "Filmt in kompasrichting {camera:direction}", "fr": "Filme dans une direction {camera:direction}", - "it": "Punta in direzione {camera:direction}" + "it": "Punta in direzione {camera:direction}", + "de": "filmt in Himmelsrichtung {camera:direction}" }, "condition": { "or": [ @@ -135,7 +138,8 @@ "en": "Films to a compass heading of {direction}", "nl": "Filmt in kompasrichting {direction}", "fr": "Filme dans une direction {direction}", - "it": "Punta in direzione {direction}" + "it": "Punta in direzione {direction}", + "de": "filmt in Himmelsrichtung {direction}" }, "hideInAnswer": true } @@ -196,7 +200,7 @@ "nl": "Een buitenruimte met privaat karakter (zoals een privé-oprit, een parking, tankstation, ...)", "fr": "Une zone extérieure, mais privée, est surveillée (par exemple, un parking, une station-service, une cour, une entrée, une allée privée, etc.)", "it": "Sorveglia un'area esterna di proprietà privata (un parcheggio, una stazione di servizio, un cortile, un ingresso, un vialetto privato, ...)", - "de": "Ein privater Außenbereich wird überwacht (z. B. ein Parkplatz, eine Tankstelle, ein Innenhof, ein Eingang, eine private Einfahrt, ...)" + "de": "Ein privater Außenbereich wird überwacht (Parkplatz, Tankstelle, Innenhof, Eingang, private Einfahrt, ...)" } }, { @@ -305,11 +309,11 @@ "key": "surveillance:zone" }, "render": { - "en": " Surveills a {surveillance:zone}", + "en": "Surveills a {surveillance:zone}", "nl": "Bewaakt een {surveillance:zone}", - "fr": " Surveille un(e) {surveillance:zone}", + "fr": "Surveille un(e) {surveillance:zone}", "it": " Sorveglia una {surveillance:zone}", - "de": " Überwacht ein/e {surveillance:zone}" + "de": "Überwacht ein/e {surveillance:zone}" }, "mappings": [ { @@ -410,7 +414,7 @@ }, "render": { "en": "Mounting method: {camera:mount}", - "nl": "Montage: {camera:mount}", + "nl": "Ophanging: {camera:mount}", "fr": "Méthode de montage : {camera:mount}", "it": "Metodo di montaggio: {camera:mount}", "de": "Montageart: {camera:mount}" @@ -460,7 +464,9 @@ "surveillance:type=camera" ], "title": { - "en": "surveillance camera" + "en": "a surveillance camera", + "nl": "een bewakingscamera", + "de": "eine Überwachungskamera" } }, { @@ -470,7 +476,9 @@ "camera:mount=wall" ], "title": { - "en": "surveillance camera mounted on a wall" + "en": "a surveillance camera mounted on a wall", + "nl": "een bewakingscamera gemonteerd op een muur", + "de": "eine an einer Wand montierte Überwachungskamera" }, "preciseInput": { "snapToLayer": "walls_and_buildings" @@ -538,6 +546,8 @@ } ], "description": { - "en": "This layer shows surveillance cameras and allows a contributor to update information and add new cameras" + "en": "This layer shows surveillance cameras and allows a contributor to update information and add new cameras", + "nl": "Deze laag toont bewakingscamera's en laat toe om de informatie te verrijken en om nieuwe camera\"s toe te voegen", + "de": "Diese Ebene zeigt die Überwachungskameras an und ermöglicht es, Informationen zu aktualisieren und neue Kameras hinzuzufügen" } } \ No newline at end of file diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json index e74afb0896..c485e06c68 100644 --- a/assets/layers/toilet/toilet.json +++ b/assets/layers/toilet/toilet.json @@ -6,7 +6,8 @@ "fr": "Toilettes", "nl": "Toiletten", "ru": "Туалеты", - "it": "Servizi igienici" + "it": "Servizi igienici", + "ca": "Lavabos" }, "minzoom": 12, "source": { @@ -19,18 +20,19 @@ "fr": "Toilettes", "nl": "Toilet", "ru": "Туалет", - "it": "Servizi igienici" + "it": "Servizi igienici", + "ca": "Lavabo" } }, "presets": [ { "title": { - "en": "public toilet", - "de": "öffentlich zugängliche Toilette", - "fr": "toilette publique", - "nl": "publiek toilet", + "en": "a public toilet", + "de": "eine öffentlich zugängliche toilette", + "fr": "une toilette publique", + "nl": "een publiek toilet", "ru": "общественный туалет ", - "it": "servizi igienici aperti al pubblico" + "it": "una servizi igienici aperti al pubblico" }, "tags": [ "amenity=toilets" @@ -38,11 +40,11 @@ }, { "title": { - "en": "toilets with wheelchair accessible toilet", - "de": "toiletten mit rollstuhlgerechter Toilette", - "fr": "toilettes accessible aux personnes à mobilité réduite", - "nl": "rolstoeltoegankelijke, publiek toilet", - "it": "servizi igienici accessibili per persone in sedia a rotelle", + "en": "a toilets with wheelchair accessible toilet", + "de": "eine toiletten mit rollstuhlgerechter toilette", + "fr": "une toilettes accessible aux personnes à mobilité réduite", + "nl": "een rolstoeltoegankelijke, publiek toilet", + "it": "una servizi igienici accessibili per persone in sedia a rotelle", "ru": "tуалет с доступом для пользователей кресел-колясок" }, "tags": [ @@ -207,7 +209,8 @@ "id": "Opening-hours", "question": { "en": "When are these toilets opened?", - "nl": "Wanneer zijn deze toiletten open?" + "nl": "Wanneer zijn deze toiletten open?", + "de": "Wann sind diese Toiletten geöffnet?" }, "render": "{opening_hours_table()}", "freeform": { @@ -219,7 +222,8 @@ "if": "opening_hours=24/7", "then": { "en": "Opened 24/7", - "nl": "Altijd open" + "nl": "Altijd open", + "de": "Durchgehend geöffnet" } } ] @@ -443,7 +447,8 @@ "if": "toilets:paper_supplied=yes", "then": { "en": "This toilet is equipped with toilet paper", - "nl": "Deze toilet is voorzien van toiletpapier" + "nl": "Deze toilet is voorzien van toiletpapier", + "de": "Diese Toilette ist mit Toilettenpapier ausgestattet" } }, { @@ -486,7 +491,7 @@ "question": { "en": "Has a changing table", "nl": "Heeft een luiertafel", - "de": "Hat einen Wickeltisch" + "de": "Wickeltisch vorhanden" }, "osmTags": "changing_table=yes" } @@ -517,7 +522,8 @@ { "question": { "nl": "Nu geopened", - "en": "Opened now" + "en": "Opened now", + "de": "Derzeit geöffnet" }, "osmTags": { "or": [ @@ -576,6 +582,7 @@ ], "description": { "en": "A layer showing (public) toilets", - "nl": "Een laag die publieke toiletten toont" + "nl": "Een laag die publieke toiletten toont", + "de": "Eine Ebene mit (öffentlichen) Toiletten" } } \ No newline at end of file diff --git a/assets/layers/trail/trail.json b/assets/layers/trail/trail.json index 0ec5f307b4..f274c6fa73 100644 --- a/assets/layers/trail/trail.json +++ b/assets/layers/trail/trail.json @@ -5,7 +5,8 @@ "nl": "Wandeltochten", "ru": "Тропы", "de": "Wanderwege", - "fr": "Sentiers" + "fr": "Sentiers", + "ca": "Camins" }, "minzoom": 12, "source": { @@ -28,7 +29,8 @@ "nl": "Wandeltocht", "ru": "Тропа", "de": "Wanderweg", - "fr": "Sentier" + "fr": "Sentier", + "ca": "Camí" }, "mappings": [ { diff --git a/assets/layers/tree_node/tree_node.json b/assets/layers/tree_node/tree_node.json index ae1696f06f..9c92b6d00b 100644 --- a/assets/layers/tree_node/tree_node.json +++ b/assets/layers/tree_node/tree_node.json @@ -6,7 +6,9 @@ "it": "Albero", "ru": "Дерево", "fr": "Arbre", - "de": "Baum" + "de": "Bäume", + "ca": "Arbre", + "es": "Árbol" }, "minzoom": 16, "source": { @@ -24,13 +26,42 @@ "ru": "Дерево", "fr": "Arbre", "de": "Baum", - "eo": "Arbo" + "eo": "Arbo", + "ca": "Arbre", + "es": "Árbol" }, "mappings": [ { - "if": "name~*", + "if": { + "and": [ + "name~*", + "species:wikidata~*" + ] + }, "then": { - "*": "{name}" + "*": "{name} ({wikidata_label(species:wikidata)})" + } + }, + { + "if": { + "and": [ + "name~*" + ] + }, + "then": { + "*": "{name}" + } + }, + { + "if": "species:wikidata~*", + "then": { + "*": "{wikidata_label(species:wikidata)}" + } + }, + { + "if": "species~*", + "then": { + "*": "{species}" } } ] @@ -45,7 +76,8 @@ "it": "Altezza: {height}", "ru": "Высота: {height}", "fr": "Hauteur : {height}", - "de": "Höhe: {height}" + "de": "Höhe: {height}", + "es": "Altura: {height}" }, "condition": { "and": [ @@ -65,7 +97,8 @@ "it": "Altezza: {height} m", "ru": "Высота: {height} м", "fr": "Hauteur : {height} m", - "de": "Höhe: {height} m" + "de": "Höhe: {height} m", + "es": "Altura: {height} m" } } ] @@ -77,7 +110,8 @@ "en": "Is this a broadleaved or needleleaved tree?", "it": "Si tratta di un albero latifoglia o aghifoglia?", "fr": "Cet arbre est-il un feuillu ou un résineux ?", - "de": "Ist dies ein Laub- oder Nadelbaum?" + "de": "Ist dies ein Laub- oder Nadelbaum?", + "es": "¿Es un árbol de hoja ancha o de hoja aguja?" }, "mappings": [ { @@ -91,7 +125,9 @@ "en": "Broadleaved", "it": "Latifoglia", "fr": "Feuillu", - "de": "Laubbaum" + "de": "Laubbaum", + "ca": "De fulla ampla", + "es": "Latifoliada" }, "icon": { "path": "./assets/themes/trees/broadleaved.svg", @@ -109,7 +145,9 @@ "en": "Needleleaved", "it": "Aghifoglia", "fr": "Résineux", - "de": "Nadelbaum" + "de": "Nadelbaum", + "ca": "Amb fulles d'agulla", + "es": "Hoja aguja" }, "icon": { "path": "./assets/themes/trees/needleleaved.svg", @@ -127,7 +165,8 @@ "en": "Permanently leafless", "it": "Privo di foglie (permanente)", "fr": "Sans feuilles (Permanent)", - "de": "Dauerhaft blattlos" + "de": "Dauerhaft blattlos", + "es": "Permanentemente sin hojas" }, "hideInAnswer": true, "icon": { @@ -144,7 +183,8 @@ "en": "How significant is this tree? Choose the first answer that applies.", "it": "Quanto significativo è questo albero? Scegli la prima risposta che corrisponde.", "fr": "Quelle est l'importance de cet arbre ? Choisissez la première réponse qui s'applique.", - "de": "Wie bedeutsam ist dieser Baum? Wählen Sie die erste Antwort, die zutrifft." + "de": "Wie bedeutsam ist dieser Baum? Wählen Sie die erste Antwort, die zutrifft.", + "es": "¿Qué importancia tiene este árbol? Elige la primera respuesta que corresponda." }, "mappings": [ { @@ -158,7 +198,8 @@ "en": "The tree is remarkable due to its size or prominent location. It is useful for navigation.", "it": "È un albero notevole per le sue dimensioni o per la posizione prominente. È utile alla navigazione.", "fr": "L'arbre est remarquable en raison de sa taille ou de son emplacement proéminent. Il est utile pour la navigation.", - "de": "Der Baum ist aufgrund seiner Größe oder seiner markanten Lage bedeutsam. Er ist nützlich zur Orientierung." + "de": "Der Baum ist aufgrund seiner Größe oder seiner markanten Lage bedeutsam. Er ist nützlich zur Orientierung.", + "es": "El árbol es notable debido a su tamaño o ubicación prominente. Es útil para la navegación." } }, { @@ -172,7 +213,8 @@ "en": "The tree is a natural monument, e.g. because it is especially old, or of a valuable species.", "it": "L’albero è un monumento naturale, ad esempio perché specialmente antico o appartenente a specie importanti.", "fr": "Cet arbre est un monument naturel (ex : âge, espèce, etc…)", - "de": "Der Baum ist ein Naturdenkmal, z. B. weil er besonders alt ist oder zu einer wertvollen Art gehört." + "de": "Der Baum ist ein Naturdenkmal, z. B. weil er besonders alt ist oder zu einer wertvollen Art gehört.", + "es": "El árbol es un monumento natural, por ejemplo, porque es especialmente antiguo, o de una especie valiosa." } }, { @@ -186,7 +228,8 @@ "en": "The tree is used for agricultural purposes, e.g. in an orchard.", "it": "L’albero è usato per scopi agricoli, ad esempio in un frutteto.", "fr": "Cet arbre est utilisé à but d’agriculture (ex : dans un verger)", - "de": "Der Baum wird für landwirtschaftliche Zwecke genutzt, z. B. in einer Obstplantage." + "de": "Der Baum wird für landwirtschaftliche Zwecke genutzt, z. B. in einer Obstplantage.", + "es": "El árbol se utiliza con fines agrícolas, por ejemplo, en un huerto." } }, { @@ -200,7 +243,8 @@ "en": "The tree is in a park or similar (cemetery, school grounds, …).", "it": "L’albero è in un parco o qualcosa di simile (cimitero, aree didattiche, etc.).", "fr": "Cet arbre est dans un parc ou une aire similaire (ex : cimetière, cour d’école, …).", - "de": "Der Baum steht in einem Park oder ähnlichem (Friedhof, Schulgelände, ...)." + "de": "Der Baum steht in einem Park oder ähnlichem (Friedhof, Schulgelände, ...).", + "es": "El árbol está en un parque o similar (cementerio, recinto escolar, ...)." } }, { @@ -211,9 +255,11 @@ }, "then": { "nl": "De boom staat in de tuin bij een woning/flatgebouw.", - "en": "The tree is a residential garden.", + "en": "The tree is in a residential garden.", "it": "L’albero è un giardino residenziale.", - "fr": "Cet arbre est dans une cour résidentielle." + "fr": "Cet arbre est dans une cour résidentielle.", + "es": "El árbol está en un jardín privado o residencial.", + "de": "Der Baum steht in einem Wohngarten." } }, { @@ -227,7 +273,8 @@ "en": "This is a tree along an avenue.", "it": "Fa parte di un viale alberato.", "fr": "C'est un arbre le long d'une avenue.", - "de": "Dieser Baum steht entlang einer Straße." + "de": "Dieser Baum steht entlang einer Straße.", + "es": "El árbol está en bandejón de una avenida." } }, { @@ -238,9 +285,11 @@ }, "then": { "nl": "De boom staat in een woonkern.", - "en": "The tree is an urban area.", + "en": "The tree is in an urban area.", "it": "L’albero si trova in un’area urbana.", - "fr": "L'arbre est une zone urbaine." + "fr": "L'arbre est une zone urbaine.", + "es": "El árbol está en un zona urbana.", + "de": "Der Baum steht in einem städtischen Gebiet." } }, { @@ -254,7 +303,8 @@ "en": "The tree is outside of an urban area.", "it": "L’albero si trova fuori dall’area urbana.", "fr": "Cet arbre est en zone rurale.", - "de": "Dieser Baum steht außerhalb eines städtischen Gebiets." + "de": "Dieser Baum steht außerhalb eines städtischen Gebiets.", + "es": "El árbol está fuera de una zona urbana." } } ] @@ -267,7 +317,8 @@ "it": "È un sempreverde o caduco?", "ru": "Это дерево вечнозелёное или листопадное?", "fr": "L’arbre est-il à feuillage persistant ou caduc ?", - "de": "Ist dies ein Nadelbaum oder ein Laubbaum?" + "de": "Ist dies ein Nadelbaum oder ein Laubbaum?", + "es": "¿El árbol es Siempreverde o Caduco?" }, "mappings": [ { @@ -282,7 +333,8 @@ "it": "Caduco: l’albero perde le sue foglie per un periodo dell’anno.", "ru": "Листопадное: у дерева опадают листья в определённое время года.", "fr": "Caduc : l’arbre perd son feuillage une partie de l’année.", - "de": "Laubabwerfend: Der Baum verliert für eine gewisse Zeit des Jahres seine Blätter." + "de": "Laubabwerfend: Der Baum verliert für eine gewisse Zeit des Jahres seine Blätter.", + "es": "Caduco o Deciduo: el árbol pierde las hojas en un período del año" } }, { @@ -297,7 +349,9 @@ "it": "Sempreverde.", "fr": "À feuilles persistantes.", "ru": "Вечнозелёное.", - "de": "immergrüner Baum." + "de": "immergrüner Baum.", + "ca": "Perenne.", + "es": "Siempreverde." } } ], @@ -307,6 +361,41 @@ ] } }, + { + "id": "tree-species-wikidata", + "question": { + "en": "What species is this tree?" + }, + "render": { + "*": "{wikipedia(species:wikidata):max-height: 25rem}" + }, + "freeform": { + "key": "species:wikidata", + "type": "wikidata", + "helperArgs": [ + "species", + { + "instanceOf": [ + 10884, + 16521 + ] + } + ] + } + }, + { + "id": "tree-wikipedia", + "#": "If this tree has a wikipedia article, show it. People can _only_ set the species though!", + "render": { + "*": "{wikipedia()}" + }, + "condition": { + "or": [ + "wikipedia~*", + "wikidata~*" + ] + } + }, { "render": { "nl": "Naam: {name}", @@ -324,7 +413,8 @@ "it": "L’albero ha un nome?", "fr": "L'arbre a-t-il un nom ?", "ru": "Есть ли у этого дерева название?", - "de": "Hat der Baum einen Namen?" + "de": "Hat der Baum einen Namen?", + "es": "El árbol no tiene nombre?." }, "freeform": { "key": "name", @@ -346,7 +436,8 @@ "it": "L’albero non ha un nome.", "fr": "L'arbre n'a pas de nom.", "ru": "У этого дерева нет названия.", - "de": "Der Baum hat keinen Namen." + "de": "Der Baum hat keinen Namen.", + "es": "No identificas la especie." } } ], @@ -366,7 +457,8 @@ "en": "Is this tree registered heritage?", "it": "Quest’albero è registrato come patrimonio?", "fr": "Cet arbre est-il inscrit au patrimoine ?", - "de": "Ist dieser Baum ein Naturdenkmal?" + "de": "Ist dieser Baum ein Naturdenkmal?", + "es": "¿Este árbol es patrimonio registrado?" }, "mappings": [ { @@ -377,11 +469,12 @@ ] }, "then": { - "nl": "Erkend als houtig erfgoed door Onroerend Erfgoed Vlaanderen", + "nl": "Erkend als houtig erfgoed door Onroerend Erfgoed Vlaanderen", "en": "Registered as heritage by Onroerend Erfgoed Flanders", "it": "Registrato come patrimonio da Onroerend Erfgoed Flanders", "fr": "Fait partie du patrimoine par Onroerend Erfgoed", - "de": "Als Denkmal registriert von der Onroerend Erfgoed Flandern" + "de": "Als Denkmal registriert von der Onroerend Erfgoed Flandern", + "es": "Registrado como patrimonio por Onroerend Erfgoed Flandes" }, "icon": { "path": "./assets/layers/tree_node/Onroerend_Erfgoed_logo_without_text.svg", @@ -396,11 +489,12 @@ ] }, "then": { - "nl": "Erkend als natuurlijk erfgoed door Directie Cultureel Erfgoed Brussel", + "nl": "Erkend als natuurlijk erfgoed door Directie Cultureel Erfgoed Brussel", "en": "Registered as heritage by Direction du Patrimoine culturel Brussels", "it": "Registrato come patrimonio da Direction du Patrimoine culturel di Bruxelles", "fr": "Enregistré comme patrimoine par la Direction du Patrimoine culturel Bruxelles", - "de": "Als Denkmal registriert von der Direction du Patrimoine culturel Brüssel" + "de": "Als Denkmal registriert von der Direction du Patrimoine culturel Brüssel", + "es": "Registrado como patrimonio por la Dirección de Patrimonio Cultural de Bruselas" } }, { @@ -415,7 +509,8 @@ "en": "Registered as heritage by a different organisation", "it": "Registrato come patrimonio da un’organizzazione differente", "fr": "Enregistré comme patrimoine par une autre organisation", - "de": "Von einer anderen Organisation als Denkmal registriert" + "de": "Von einer anderen Organisation als Denkmal registriert", + "es": "Registrado como patrimonio por una organización diferente" } }, { @@ -430,7 +525,8 @@ "en": "Not registered as heritage", "it": "Non è registrato come patrimonio", "fr": "Non enregistré comme patrimoine", - "de": "Nicht als Denkmal registriert" + "de": "Nicht als Denkmal registriert", + "es": "No registrado como patrimonio" } }, { @@ -444,7 +540,8 @@ "en": "Registered as heritage by a different organisation", "it": "Registrato come patrimonio da un’organizzazione differente", "fr": "Enregistré comme patrimoine par une autre organisation", - "de": "Von einer anderen Organisation als Denkmal registriert" + "de": "Von einer anderen Organisation als Denkmal registriert", + "es": "Registrado como patrimonio por un organización diferente" }, "hideInAnswer": true } @@ -462,14 +559,16 @@ "en": "\"\"/ Onroerend Erfgoed ID: {ref:OnroerendErfgoed}", "it": "\"\"/ Onroerend Erfgoed ID: {ref:OnroerendErfgoed}", "ru": "\"\"/ Onroerend Erfgoed ID: {ref:OnroerendErfgoed}", - "fr": "\"\"/ Identifiant Onroerend Erfgoed : {ref:OnroerendErfgoed}" + "fr": "\"\"/ Identifiant Onroerend Erfgoed : {ref:OnroerendErfgoed}", + "de": "\"\"/ Onroerend Erfgoed Kennung: {ref:OnroerendErfgoed}" }, "question": { "nl": "Wat is het ID uitgegeven door Onroerend Erfgoed Vlaanderen?", "en": "What is the ID issued by Onroerend Erfgoed Flanders?", "it": "Qual è l’ID rilasciato da Onroerend Erfgoed Flanders?", "fr": "Quel est son identifiant donné par Onroerend Erfgoed ?", - "de": "Wie lautet die Kennung der Onroerend Erfgoed Flanders?" + "de": "Wie lautet die Kennung der Onroerend Erfgoed Flanders?", + "es": "¿Cuál es la identificación emitida por Onroerend Erfgoed Flandes?" }, "freeform": { "key": "ref:OnroerendErfgoed", @@ -490,14 +589,16 @@ "it": "\"\"/ Wikidata: {wikidata}", "ru": "\"\"/ Wikidata: {wikidata}", "fr": "\"\"/ Wikidata : {wikidata}", - "de": "\"\"/ Wikidata: {wikidata}" + "de": "\"\"/ Wikidata: {wikidata}", + "es": "\"\"/ Wikidata: {wikidata}" }, "question": { "nl": "Wat is het Wikidata-ID van deze boom?", "en": "What is the Wikidata ID for this tree?", "it": "Qual è l’ID Wikidata per questo albero?", "fr": "Quel est l'identifiant Wikidata de cet arbre ?", - "de": "Was ist das passende Wikidata Element zu diesem Baum?" + "de": "Was ist das passende Wikidata Element zu diesem Baum?", + "es": "¿Cuál es el ID de Wikidata para este árbol?" }, "freeform": { "key": "wikidata", @@ -520,19 +621,21 @@ "leaf_type=broadleaved" ], "title": { - "nl": "Loofboom", - "en": "Broadleaved tree", - "it": "Albero latifoglia", - "fr": "Arbre feuillu", + "nl": "een loofboom", + "en": "a broadleaved tree", + "it": "una albero latifoglia", + "fr": "une arbre feuillu", "ru": "Лиственное дерево", - "de": "Laubbaum" + "de": "eine laubbaum", + "es": "árbol de hoja ancha" }, "description": { "nl": "Een boom van een soort die blaadjes heeft, bijvoorbeeld eik of populier.", "en": "A tree of a species with leaves, such as oak or populus.", "it": "Un albero di una specie con foglie larghe come la quercia o il pioppo.", "fr": "Un arbre d'une espèce avec de larges feuilles, comme le chêne ou le peuplier.", - "de": "Ein Baum mit Blättern, z. B. Eiche oder Buche." + "de": "Ein Baum mit Blättern, z. B. Eiche oder Buche.", + "es": "Un árbol de hojas como el Roble o el Álamo." }, "preciseInput": { "preferredBackground": "photo" @@ -544,12 +647,13 @@ "leaf_type=needleleaved" ], "title": { - "nl": "Naaldboom", - "en": "Needleleaved tree", - "it": "Albero aghifoglia", + "nl": "een naaldboom", + "en": "a needleleaved tree", + "it": "una albero aghifoglia", "ru": "Хвойное дерево", - "fr": "Arbre résineux", - "de": "Nadelbaum" + "fr": "une arbre résineux", + "de": "eine nadelbaum", + "es": "Árbol tipo Conífera" }, "description": { "nl": "Een boom van een soort met naalden, bijvoorbeeld den of spar.", @@ -557,7 +661,8 @@ "it": "Un albero di una specie con aghi come il pino o l’abete.", "ru": "Дерево с хвоей (иглами), например, сосна или ель.", "fr": "Une espèce d’arbre avec des épines comme le pin ou l’épicéa.", - "de": "Ein Baum mit Nadeln, z. B. Kiefer oder Fichte." + "de": "Ein Baum mit Nadeln, z. B. Kiefer oder Fichte.", + "es": "Un árbol de hojas agujas, como el Pino o el Abeto." }, "preciseInput": { "preferredBackground": "photo" @@ -568,13 +673,15 @@ "natural=tree" ], "title": { - "nl": "Boom", - "en": "Tree", - "it": "Albero", + "nl": "een boom", + "en": "a tree", + "it": "una albero", "ru": "Дерево", - "fr": "Arbre", + "fr": "une arbre", "id": "Pohon", - "de": "Baum" + "de": "eine baum", + "ca": "un arbre", + "es": "un árbol" }, "description": { "nl": "Wanneer je niet zeker bent of het nu een loof- of naaldboom is.", @@ -582,7 +689,8 @@ "it": "Qualora non si sia sicuri se si tratta di un albero latifoglia o aghifoglia.", "fr": "Si vous n'êtes pas sûr(e) de savoir s'il s'agit d'un arbre à feuilles larges ou à aiguilles.", "ru": "Если вы не уверены в том, лиственное это дерево или хвойное.", - "de": "Wenn Sie nicht sicher sind, ob es sich um einen Laubbaum oder einen Nadelbaum handelt." + "de": "Wenn Sie nicht sicher sind, ob es sich um einen Laubbaum oder einen Nadelbaum handelt.", + "es": "Si no estás seguro de si es un árbol de hoja ancha o de hoja de aguja." }, "preciseInput": { "preferredBackground": "photo" @@ -629,6 +737,9 @@ } ], "description": { - "en": "A layer showing trees" + "en": "A layer showing trees", + "nl": "Een laag die bomen toont", + "es": "Una capa que muestra árboles", + "de": "Eine Ebene, die Bäume zeigt" } } \ No newline at end of file diff --git a/assets/layers/veterinary/license_info.json b/assets/layers/veterinary/license_info.json new file mode 100644 index 0000000000..0b9a7474d5 --- /dev/null +++ b/assets/layers/veterinary/license_info.json @@ -0,0 +1,13 @@ +[ + { + "path": "vet.svg", + "license": "PD", + "authors": [ + "Niels Elgaard Larsen", + "Tim Hitchins" + ], + "sources": [ + "https://openclipart.org/detail/216869/snake-pole-logo-for-healthse-no-background-white-snake" + ] + } +] \ No newline at end of file diff --git a/assets/layers/veterinary/vet.svg b/assets/layers/veterinary/vet.svg new file mode 100644 index 0000000000..e430de13c3 --- /dev/null +++ b/assets/layers/veterinary/vet.svg @@ -0,0 +1,98 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + V + diff --git a/assets/layers/veterinary/veterinary.json b/assets/layers/veterinary/veterinary.json new file mode 100644 index 0000000000..5c2ff6c894 --- /dev/null +++ b/assets/layers/veterinary/veterinary.json @@ -0,0 +1,93 @@ +{ + "id": "veterinary", + "source": { + "osmTags": { + "or": [ + "amenity=veterinary" + ] + } + }, + "minzoom": 10, + "presets": [ + { + "title": { + "en": "a veterianarian", + "da": "en dyrlæge" + }, + "tags": [ + "amenity=veterinary", + "pet=dog" + ], + "description": { + "en": "a veterianarian, that treats dogs", + "da": "En dyrlæge, der behandler hunde" + } + } + ], + "name": { + "en": "veterinary", + "da": "dyrlæge" + }, + "title": { + "render": { + "en": "Veterinary", + "da": "dyrlæge" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "*": "{name}" + } + } + ] + }, + "mapRendering": [ + { + "location": [ + "point", + "centroid" + ], + "icon": "./assets/layers/veterinary/vet.svg", + "iconSize": "30,40,center", + "label": { + "mappings": [ + { + "if": "name~*", + "then": "
    {name}
    " + } + ] + }, + "iconBadges": [ + { + "if": "opening_hours~*", + "then": "isOpen" + } + ] + }, + { + "color": "#ff0", + "width": 5 + } + ], + "tagRenderings": [ + "website", + "reviews", + "phone", + "opening_hours", + { + "question": { + "en": "What is the name of this veterinarian?", + "da": "Hvad hedder denne dyrlæ?" + }, + "render": { + "en": "The name of this veterinarian is {name}", + "de": "Denne dyrlæ hedder {name}" + }, + "freeform": { + "key": "name" + }, + "id": "vetName" + } + ] +} \ No newline at end of file diff --git a/assets/layers/viewpoint/viewpoint.json b/assets/layers/viewpoint/viewpoint.json index b3f077b748..70f743b50c 100644 --- a/assets/layers/viewpoint/viewpoint.json +++ b/assets/layers/viewpoint/viewpoint.json @@ -8,7 +8,8 @@ "it": "Punto panoramico", "ru": "Смотровая площадка", "id": "Sudut pandang", - "eo": "Vidpunkto" + "eo": "Vidpunkto", + "ca": "Mirador" }, "description": { "en": "A nice viewpoint or nice view. Ideal to add an image if no other category fits", @@ -25,13 +26,14 @@ "presets": [ { "title": { - "en": "Viewpoint", - "nl": "Uitzicht", - "de": "Aussichtspunkt", - "fr": "Point de vue", + "en": "a viewpoint", + "nl": "een uitzichtpunt", + "de": "eine aussichtspunkt", + "fr": "une point de vue", "ru": "Смотровая площадка", - "it": "Punto panoramico", - "id": "Sudut pandang" + "it": "una punto panoramico", + "id": "Sudut pandang", + "ca": "un mirador" }, "tags": [ "tourism=viewpoint" @@ -47,7 +49,8 @@ "ru": "Смотровая площадка", "it": "Punto panoramico", "id": "Sudut pandang", - "eo": "Vidpunkto" + "eo": "Vidpunkto", + "ca": "Mirador" } }, "tagRenderings": [ diff --git a/assets/layers/village_green/village_green.json b/assets/layers/village_green/village_green.json index c078dbfecd..b5d095f3eb 100644 --- a/assets/layers/village_green/village_green.json +++ b/assets/layers/village_green/village_green.json @@ -46,6 +46,8 @@ } ], "description": { - "en": "A layer showing village-green (which are communal green areas, but not quite parks\"" + "en": "A layer showing village-green (which are communal green areas, but not quite parks)", + "nl": "Een laag die dorpsgroen toont (gemeenschapsgroen, maar niet echt een park)", + "de": "Eine Ebene mit Dorfangern (kommunale Grünflächen, aber nicht wirklich Parks)" } } \ No newline at end of file diff --git a/assets/layers/visitor_information_centre/visitor_information_centre.json b/assets/layers/visitor_information_centre/visitor_information_centre.json index 499c6e1a76..16ad90e350 100644 --- a/assets/layers/visitor_information_centre/visitor_information_centre.json +++ b/assets/layers/visitor_information_centre/visitor_information_centre.json @@ -25,7 +25,8 @@ "de": "{name}", "ru": "{name}", "eo": "{name}", - "fr": "{name}" + "fr": "{name}", + "ca": "{name}" }, "mappings": [ { @@ -50,7 +51,8 @@ "de": "{name}", "ru": "{name}", "eo": "{name}", - "fr": "{name}" + "fr": "{name}", + "ca": "{name}" } } ] diff --git a/assets/layers/walls_and_buildings/walls_and_buildings.json b/assets/layers/walls_and_buildings/walls_and_buildings.json index b7a9e116a8..48638c38d7 100644 --- a/assets/layers/walls_and_buildings/walls_and_buildings.json +++ b/assets/layers/walls_and_buildings/walls_and_buildings.json @@ -3,11 +3,15 @@ "minzoom": 18, "title": { "render": { - "en": "Wall or building" + "en": "Wall or building", + "nl": "Muur of gebouw", + "de": "Wand oder Gebäude" } }, "description": { - "en": "Special builtin layer providing all walls and buildings. This layer is useful in presets for objects which can be placed against walls (e.g. AEDs, postboxes, entrances, addresses, surveillance cameras, ...). This layer is invisible by default and not toggleable by the user." + "en": "Special builtin layer providing all walls and buildings. This layer is useful in presets for objects which can be placed against walls (e.g. AEDs, postboxes, entrances, addresses, surveillance cameras, ...). This layer is invisible by default and not toggleable by the user.", + "nl": "Speciale laag met alle muren en gebouwen. Deze laag is nuttig om objecten toe te voegen die met een muur verbonden zijn (zoals AEDs, brievenbussen, adressen, bewakingscamera's,...). Deze laag is standaard onzichtbaar en kan niet aangezet worden door de gebruiker.", + "de": "Spezielle eingebaute Ebene, die alle Wände und Gebäude bereitstellt. Diese Ebene ist in Voreinstellungen für Objekte nützlich, die an Wänden platziert werden können (z. B. AEDs, Briefkästen, Eingänge, Adressen, Überwachungskameras, ...). Diese Ebene ist standardmäßig unsichtbar und kann vom Benutzer nicht umgeschaltet werden." }, "source": { "osmTags": { diff --git a/assets/layers/waste_basket/waste_basket.json b/assets/layers/waste_basket/waste_basket.json index d78595b87e..67d9687021 100644 --- a/assets/layers/waste_basket/waste_basket.json +++ b/assets/layers/waste_basket/waste_basket.json @@ -5,7 +5,8 @@ "nl": "Vuilnisbak", "ru": "Контейнер для мусора", "de": "Abfalleimer", - "eo": "Rubujo" + "eo": "Rubujo", + "ca": "Paperera" }, "minzoom": 17, "source": { @@ -20,7 +21,8 @@ "en": "Waste Basket", "nl": "Vuilnisbak", "ru": "Контейнер для мусора", - "de": "Abfalleimer" + "de": "Abfalleimer", + "ca": "Paperera" } }, "description": { @@ -29,6 +31,7 @@ "de": "Dies ist ein öffentlicher Abfalleimer, in den Sie Ihren Müll entsorgen können." }, "tagRenderings": [ + "images", { "id": "waste-basket-waste-types", "question": { @@ -156,10 +159,10 @@ "amenity=waste_basket" ], "title": { - "en": "Waste Basket", - "nl": "Vuilnisbak", + "en": "a waste basket", + "nl": "een vuilnisbak", "ru": "Контейнер для мусора", - "de": "Abfalleimer", + "de": "eine abfalleimer", "eo": "Rubujo" }, "presiceInput": { diff --git a/assets/layers/waste_disposal/waste_disposal.json b/assets/layers/waste_disposal/waste_disposal.json index a589d75d1c..286f074f67 100644 --- a/assets/layers/waste_disposal/waste_disposal.json +++ b/assets/layers/waste_disposal/waste_disposal.json @@ -1,10 +1,14 @@ { "id": "waste_disposal", "name": { - "en": "Waste Disposal Bins" + "en": "Waste Disposal Bins", + "nl": "Afvalcontainers voor huishoudelijk afval", + "de": "Mülleimer" }, "description": { - "en": "Waste Disposal Bin, medium to large bin for disposal of (household) waste" + "en": "Waste Disposal Bin, medium to large bin for disposal of (household) waste", + "nl": "Een grote afvalcontainer voor (huishoudelijk) afval", + "de": "Entsorgungsbehälter, mittlerer bis großer Behälter zur Entsorgung von (Haushalts-)Abfällen" }, "source": { "osmTags": "amenity=waste_disposal" @@ -13,7 +17,9 @@ "minzoomVisible": 18, "title": { "render": { - "en": "Waste Disposal" + "en": "Waste Disposal", + "nl": "Afvalbak", + "de": "Abfallentsorgung" } }, "mapRendering": [ @@ -28,13 +34,17 @@ "presets": [ { "title": { - "en": "Waste Disposal Bin" + "en": "a waste disposal bin", + "nl": "Een afvalcontainer", + "de": "ein Abfalleimer" }, "tags": [ "amenity=waste_disposal" ], "description": { - "en": "Medium to large bin for disposal of (household) waste" + "en": "Medium to large bin for disposal of (household) waste", + "nl": "middelgrote of grote afvalcontainer voor (huishoudelijk) afval", + "de": "Mittlere bis große Mülltonne für die Entsorgung von (Haushalts-)Abfällen" } } ], @@ -42,10 +52,14 @@ { "id": "access", "render": { - "en": "Access: {access}" + "en": "Access: {access}", + "nl": "Toegankelijk voor {access}", + "de": "Zugang: {access}" }, "question": { - "en": "Who can use this waste disposal bin?" + "en": "Who can use this waste disposal bin?", + "nl": "Wie mag deze afvalcontainer gebruiken?", + "de": "Wer kann diese Mülltonne benutzen?" }, "freeform": { "key": "access", @@ -55,19 +69,25 @@ { "if": "access=yes", "then": { - "en": "This bin can be used by anyone" + "en": "This bin can be used by anyone", + "nl": "Iedereen mag deze afvalcontainer gebruiken", + "de": "Dieser Behälter kann von jedem benutzt werden" } }, { "if": "access=no", "then": { - "en": "This bin is private" + "en": "This bin is private", + "nl": "Deze afvalcontainer is enkel voor privaat gebruik", + "de": "Dieser Behälter ist privat" } }, { "if": "access=residents", "then": { - "en": "This bin is only for residents" + "en": "This bin is only for residents", + "nl": "Enkel bewoners mogen deze afvalcontainer gebruiken", + "de": "Diese Mülltonne ist nur für Anwohner" } } ] @@ -76,28 +96,32 @@ "id": "disposal-location", "question": { "en": "Where is this container located?", - "nl": "Waar bevindt deze container zich?" + "nl": "Waar bevindt deze container zich?", + "de": "Wo befindet sich dieser Container?" }, "mappings": [ { "if": "location=underground", "then": { "en": "This is an underground container", - "nl": "Dit is een ondergrondse container" + "nl": "Dit is een ondergrondse container", + "de": "Dies ist ein unterirdischer Container" } }, { "if": "location=indoor", "then": { "en": "This container is located indoors", - "nl": "Deze container bevindt zich binnen" + "nl": "Deze container bevindt zich binnen", + "de": "Dieser Container befindet sich in einem Gebäude" } }, { "if": "location=", "then": { "en": "This container is located outdoors", - "nl": "Deze container is buiten" + "nl": "Deze container is buiten", + "de": "Dieser Container befindet sich im Freien" } } ] @@ -109,7 +133,9 @@ "options": [ { "question": { - "en": "Only public access" + "en": "Only public access", + "nl": "Enkel publiek toegankelijke afvalcontainers", + "de": "Nur öffentlich zugänglich" }, "osmTags": "access=yes" } diff --git a/assets/layers/watermill/watermill.json b/assets/layers/watermill/watermill.json index b69a4d4de6..7da0247223 100644 --- a/assets/layers/watermill/watermill.json +++ b/assets/layers/watermill/watermill.json @@ -6,7 +6,8 @@ "de": "Wassermühle", "ru": "Водяная мельница", "id": "Kincir Air", - "fr": "Moulin à eau" + "fr": "Moulin à eau", + "ca": "Molí d'aigua" }, "minzoom": 12, "source": { diff --git a/assets/layers/windturbine/windturbine.json b/assets/layers/windturbine/windturbine.json new file mode 100644 index 0000000000..3e51ea7e17 --- /dev/null +++ b/assets/layers/windturbine/windturbine.json @@ -0,0 +1,322 @@ +{ + "id": "windturbine", + "name": { + "en": "wind turbine", + "nl": "windturbine", + "fr": "Éolienne", + "de": "Windräder", + "it": "pala eolica", + "zh_Hant": "風機", + "hu": "Szélerőmű" + }, + "description": { + "en": "Modern windmills generating electricity" + }, + "source": { + "osmTags": "generator:source=wind" + }, + "minzoom": 10, + "title": { + "render": { + "en": "wind turbine", + "nl": "windturbine", + "fr": "éolienne", + "de": "Windrad", + "it": "pala eolica", + "zh_Hant": "風機", + "id": "turbin angin", + "hu": "szélerőmű" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "en": "{name}", + "fr": "{name}", + "eo": "{name}", + "it": "{name}", + "ru": "{name}", + "zh_Hant": "{name}", + "id": "{name}", + "de": "{name}", + "ca": "{name}" + } + } + ] + }, + "tagRenderings": [ + { + "id": "turbine-output", + "render": { + "en": "The power output of this wind turbine is {generator:output:electricity}.", + "fr": "La puissance générée par cette éolienne est de {generator:output:electricity}.", + "it": "La potenza generata da questa pala eolica è {generator:output:electricity}.", + "zh_Hant": "這個風機的電力輸出是 {generator:output:electricity}。", + "id": "Output daya dari turbin angin ini adalah {generator:output:electricity}.", + "hu": "A szélerőmű teljesítménye: {generator:output:electricity}.", + "de": "Das Windrad erzeugt {generator:output:electricity} Strom." + }, + "question": { + "en": "What is the power output of this wind turbine? (e.g. 2.3 MW)", + "fr": "Quel est la puissance générée par cette éolienne ?", + "it": "Quant’è la potenza generata da questa pala eolica? (ad es. 2.3 MW)", + "zh_Hant": "這個風機的電力輸出是多少?(例如 2.3 MW)", + "id": "Berapa output daya dari turbin angin ini? (misalnya 2,3 MW)", + "hu": "Mekkora a teljesítménye ennek a szélturbinának? (pl. 2.3 MW)", + "de": "Wieviel Strom erzeugt das Windrad? (z.B. 2.3MW)" + }, + "freeform": { + "key": "generator:output:electricity", + "type": "pfloat" + } + }, + { + "id": "turbine-operator", + "render": { + "en": "This wind turbine is operated by {operator}.", + "fr": "Cette éolienne est opérée par {operator}.", + "it": "Questa pala eolica è gestita da {operator}.", + "zh_Hant": "這個風機營業商是 {operator}。", + "id": "Turbin angin ini dioperasikan oleh {operator}.", + "hu": "Ennek a szélerőműnek az üzemeltetője: {operator}.", + "de": "Die Windturbine wird betrieben von {operator}." + }, + "question": { + "en": "Who operates this wind turbine?", + "fr": "Qui est l’exploitant de cette éolienne ?", + "it": "Chi gestisce questa pala eolica?", + "zh_Hant": "這個風機營業商是?", + "hu": "Ki üzemelteti ezt a szélturbinát?", + "de": "Wer betreibt das Windrads?" + }, + "freeform": { + "key": "operator" + } + }, + { + "id": "turbine-height", + "render": { + "en": "The total height (including rotor radius) of this wind turbine is {height} metres.", + "fr": "La hauteur totale, incluant les pales, est de {height} mètres.", + "it": "L’altezza totale (raggio del rotore incluso) di questa pala eolica è di {height} metri.", + "zh_Hant": "這風機的總高度 (包括風葉直徑) 是 {height} 公尺。", + "hu": "A szélerőmű teljes (rotor sugarával együtt számított) magassága: {height} méter.", + "de": "Die Gesamthöhe dieses Windrads beträgt (einschließlich Rotorradius) {height} Meter." + }, + "question": { + "en": "What is the total height of this wind turbine (including rotor radius), in metres?", + "fr": "Quelle est la hauteur totale de l’éolienne en mètres, pales incluses ?", + "it": "Qual è l’altezza (in metri e raggio del rotore incluso) di questa pala eolica?", + "zh_Hant": "這個風機的總高度是多少 (包括風葉大小) 公尺?", + "hu": "Hány méter a szélerőmű teljes magassága (a rotor sugarával együtt)?", + "de": "Wie hoch ist dieses Windrad (inklusive Rotorradius) in Metern?" + }, + "freeform": { + "key": "height", + "type": "pfloat" + } + }, + { + "id": "turbine-diameter", + "render": { + "en": "The rotor diameter of this wind turbine is {rotor:diameter} metres.", + "fr": "Le diamètre du rotor est de {rotor:diameter} mètres.", + "it": "Il diametro del rotore di questa pala eolica è di {rotor:diameter} metri.", + "zh_Hant": "這個風力渦輪機的風葉直徑是 {rotor:diameter} 公尺。", + "hu": "A szélturbina rotorátmérője: {rotor:diameter} méter.", + "de": "Der Rotordurchmesser der Windturbine ist {rotor:diameter} Meter." + }, + "question": { + "en": "What is the rotor diameter of this wind turbine, in metres?", + "fr": "Quel est le diamètre du rotor en mètres ?", + "it": "Qual è il diametro (in metri) del rotore di questa pala eolica?", + "zh_Hant": "這個風力渦輪機的風葉直徑是多少公尺?", + "hu": "Hány méter a rotorátmérője ennek a szélturbinának?", + "de": "Wie groß ist der Rotordurchmesser der Windturbine in Meter?" + }, + "freeform": { + "key": "rotor:diameter", + "type": "float" + } + }, + { + "id": "turbine-start-date", + "render": { + "en": "This wind turbine went into operation on/in {start_date}.", + "fr": "L’éolienne est active depuis {start_date}.", + "it": "Questa pala eolica è entrata in funzione in data {start_date}.", + "zh_Hant": "這個風機從 {start_date} 開始運轉。", + "id": "Turbin angin ini mulai beroperasi pada/dalam {start_date}.", + "hu": "A szélerőmű üzembe helyezése: {start_date}.", + "de": "Das Windrad wurde am {start_date} in Betrieb genommen." + }, + "question": { + "en": "When did this wind turbine go into operation?", + "fr": "Depuis quand l’éolienne est-elle en fonctionnement ?", + "it": "Quando è entrata in funzione questa pala eolica?", + "zh_Hant": "這個風機何時開始營運?", + "id": "Kapan turbin angin ini mulai beroperasi?", + "hu": "Mikor helyezték üzembe ezt a szélerőművet?", + "de": "Wann wurde das Windrad in Betrieb genommen?" + }, + "freeform": { + "key": "start_date", + "type": "date" + } + }, + "images" + ], + "presets": [ + { + "tags": [ + "power=generator", + "generator:source=wind" + ], + "title": { + "en": "a wind turbine", + "nl": "een windturbine", + "fr": "une éolienne", + "de": "ein Windrad", + "it": "una pala eolica", + "zh_Hant": "風機", + "hu": "Szélerőmű" + } + } + ], + "units": [ + { + "appliesToKey": [ + "generator:output:electricity" + ], + "applicableUnits": [ + { + "canonicalDenomination": "MW", + "alternativeDenomination": [ + "megawatts", + "megawatt" + ], + "human": { + "en": " megawatts", + "nl": " megawatt", + "fr": " megawatts", + "de": " Megawatt", + "eo": " megavatoj", + "it": " megawatt", + "ru": " мегаватт", + "zh_Hant": " 百萬瓦", + "id": " megawat", + "hu": " megawatt", + "ca": " megavats" + } + }, + { + "canonicalDenomination": "kW", + "alternativeDenomination": [ + "kilowatts", + "kilowatt" + ], + "human": { + "en": " kilowatts", + "nl": " kilowatt", + "fr": " kilowatts", + "de": " Kilowatt", + "eo": " kilovatoj", + "it": " kilowatt", + "nb_NO": " kilowatt", + "ru": " киловатт", + "zh_Hant": " 千瓦", + "id": " kilowat", + "hu": " kilowatt", + "ca": " quilovats" + } + }, + { + "canonicalDenomination": "W", + "alternativeDenomination": [ + "watts", + "watt" + ], + "human": { + "en": " watts", + "nl": " watt", + "fr": " watts", + "de": " Watt", + "eo": " vatoj", + "it": " watt", + "ru": " ватт", + "zh_Hant": " 瓦", + "id": " watt", + "hu": " watt", + "ca": " vats" + } + }, + { + "canonicalDenomination": "GW", + "alternativeDenomination": [ + "gigawatts", + "gigawatt" + ], + "human": { + "en": " gigawatts", + "nl": " gigawatt", + "fr": " gigawatts", + "de": " Gigawatt", + "eo": " gigavatoj", + "it": " gigawatt", + "ru": " гигаватт", + "zh_Hant": " 千兆瓦", + "id": " gigawatt", + "hu": " gigawatt", + "ca": " gigavats" + } + } + ], + "eraseInvalidValues": true + }, + { + "appliesToKey": [ + "height", + "rotor:diameter" + ], + "applicableUnits": [ + { + "canonicalDenomination": "m", + "alternativeDenomination": [ + "meter" + ], + "human": { + "en": " meter", + "nl": " meter", + "fr": " mètres", + "de": " Meter", + "eo": " metro", + "it": " metri", + "ru": " метр", + "zh_Hant": " 公尺", + "id": " meter", + "hu": " méter", + "ca": " metre" + } + } + ] + } + ], + "mapRendering": [ + { + "icon": "./assets/themes/openwindpowermap/wind_turbine.svg", + "label": { + "mappings": [ + { + "if": "generator:output:electricity~^[0-9]+.*[W]$", + "then": "
    {generator:output:electricity}
    " + } + ] + }, + "iconSize": "40, 40, bottom", + "location": [ + "point", + "centroid" + ] + } + ] +} \ No newline at end of file diff --git a/assets/layoutconfigmeta.json b/assets/layoutconfigmeta.json index c596f78b9a..fd2565ce9f 100644 --- a/assets/layoutconfigmeta.json +++ b/assets/layoutconfigmeta.json @@ -166,7 +166,44 @@ "path": [ "layers" ], - "type": "array" + "type": [ + { + "$ref": "#/definitions/LayerConfigJson" + }, + { + "type": "object", + "properties": { + "builtin": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "string" + } + ] + }, + "override": {}, + "hideTagRenderingsWithLabels": { + "description": "TagRenderings with any of these labels will be removed from the layer.\nNote that the 'id' and 'group' are considered labels too", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "builtin", + "override" + ] + }, + { + "type": "string" + } + ] }, { "path": [ @@ -344,13 +381,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "isShown", - "question" - ] - }, { "path": [ "layers", @@ -383,67 +413,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "isShown", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "isShown", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "isShown", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "isShown", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "isShown", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "isShown", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "isShown", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -529,50 +498,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "isShown", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "isShown", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "isShown", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -654,13 +579,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "title", - "question" - ] - }, { "path": [ "layers", @@ -693,67 +611,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "title", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "title", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "title", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "title", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "title", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "title", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "title", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -839,50 +696,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "title", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "title", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "title", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -957,13 +770,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "titleIcons", - "question" - ] - }, { "path": [ "layers", @@ -996,67 +802,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "titleIcons", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "titleIcons", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "titleIcons", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "titleIcons", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "titleIcons", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "titleIcons", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "titleIcons", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -1145,47 +890,30 @@ { "path": [ "layers", - "titleIcons", - "mappings", - "hideInAnswer" + "mapRendering" ], "type": [ { - "$ref": "#/definitions/AndOrTagConfigJson" + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/definitions/default_4" + }, + { + "$ref": "#/definitions/default_5" + }, + { + "$ref": "#/definitions/default" + } + ] + } }, { - "type": [ - "string", - "boolean" - ] + "type": "null" } ] }, - { - "path": [ - "layers", - "titleIcons", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "titleIcons", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -1261,14 +989,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "question" - ] - }, { "path": [ "layers", @@ -1304,74 +1024,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -1463,53 +1115,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "icon", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -1584,15 +1189,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "question" - ] - }, { "path": [ "layers", @@ -1631,81 +1227,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -1803,56 +1324,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "iconBadges", - "then", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -1912,14 +1383,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "question" - ] - }, { "path": [ "layers", @@ -1955,74 +1418,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -2114,53 +1509,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "iconSize", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -2220,14 +1568,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "question" - ] - }, { "path": [ "layers", @@ -2263,74 +1603,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -2422,53 +1694,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "rotation", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -2528,14 +1753,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "label", - "question" - ] - }, { "path": [ "layers", @@ -2571,74 +1788,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "label", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "label", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "label", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "label", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "label", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "label", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "label", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -2730,53 +1879,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "label", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "label", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "label", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -2843,14 +1945,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "color", - "question" - ] - }, { "path": [ "layers", @@ -2886,74 +1980,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "color", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "color", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "color", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "color", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "color", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "color", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "color", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -3045,53 +2071,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "color", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "color", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "color", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -3154,14 +2133,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "width", - "question" - ] - }, { "path": [ "layers", @@ -3197,74 +2168,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "width", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "width", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "width", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "width", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "width", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "width", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "width", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -3356,53 +2259,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "width", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "width", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "width", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -3462,14 +2318,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "question" - ] - }, { "path": [ "layers", @@ -3505,74 +2353,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -3664,53 +2444,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "dashArray", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -3770,14 +2503,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "question" - ] - }, { "path": [ "layers", @@ -3813,74 +2538,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -3972,53 +2629,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "lineCap", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -4082,14 +2692,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "question" - ] - }, { "path": [ "layers", @@ -4125,74 +2727,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -4284,53 +2818,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "fill", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -4390,14 +2877,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "question" - ] - }, { "path": [ "layers", @@ -4433,74 +2912,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -4592,53 +3003,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "layers", - "mapRendering", - "fillColor", - "mappings", - "addExtraTags" - ], - "type": "array" - }, { "path": [ "layers", @@ -4698,14 +3062,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "layers", - "mapRendering", - "offset", - "question" - ] - }, { "path": [ "layers", @@ -4741,74 +3097,6 @@ ], "type": "string" }, - { - "path": [ - "layers", - "mapRendering", - "offset", - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "offset", - "freeform", - "placeholder" - ] - }, - { - "path": [ - "layers", - "mapRendering", - "offset", - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "offset", - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "layers", - "mapRendering", - "offset", - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "layers", - "mapRendering", - "offset", - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "layers", - "mapRendering", - "offset", - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "layers", @@ -4903,20 +3191,41 @@ { "path": [ "layers", - "mapRendering", - "offset", - "mappings", - "hideInAnswer" + "mapRendering" ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "location" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon" + ], + "typeHint": "icon", "type": [ { - "$ref": "#/definitions/AndOrTagConfigJson" + "$ref": "#/definitions/TagRenderingConfigJson" }, { - "type": [ - "string", - "boolean" - ] + "type": "string" } ] }, @@ -4924,9 +3233,58 @@ "path": [ "layers", "mapRendering", - "offset", - "mappings", - "ifnot" + "renderings", + "icon" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "condition" ], "type": [ { @@ -4941,12 +3299,4818 @@ "path": [ "layers", "mapRendering", - "offset", - "mappings", - "addExtraTags" + "renderings", + "icon", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings" ], "type": "array" }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then" + ], + "typeHint": "icon", + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": [ + "string", + "number" + ] + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "enum": [ + "no", + "yes" + ], + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "number" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "color", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": [ + "string", + "number" + ] + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "width", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "dashArray", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "lineCap", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "enum": [ + "no", + "yes" + ], + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fill", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "fillColor", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "number" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "offset", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "location" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "icon", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then" + ], + "typeHint": "icon", + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconBadges", + "then", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "iconSize", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "rotation", + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label" + ], + "type": [ + { + "$ref": "#/definitions/TagRenderingConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "freeform" + ], + "type": "object" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "freeform", + "key" + ], + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings" + ], + "type": "array" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "if" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "layers", + "mapRendering", + "renderings", + "label", + "mappings", + "icon", + "class" + ], + "type": "string" + }, { "path": [ "layers", @@ -5099,7 +8263,30 @@ "layers", "tagRenderings" ], - "type": "array" + "type": [ + { + "$ref": "#/definitions/QuestionableTagRenderingConfigJson" + }, + { + "type": "object", + "properties": { + "builtin": { + "type": "string" + }, + "override": {} + }, + "required": [ + "builtin", + "override" + ] + }, + { + "$ref": "#/definitions/default<(string|QuestionableTagRenderingConfigJson|{builtin:string;override:any;})[]>" + }, + { + "type": "string" + } + ] }, { "path": [ @@ -5108,38 +8295,6 @@ ], "type": "object" }, - { - "path": [ - "layers", - "tagRenderings", - "id" - ], - "type": "string" - }, - { - "path": [ - "layers", - "tagRenderings", - "group" - ], - "type": "string" - }, - { - "path": [ - "layers", - "tagRenderings", - "labels" - ], - "type": "array" - }, - { - "path": [ - "layers", - "tagRenderings", - "render" - ], - "typeHint": "rendered" - }, { "path": [ "layers", @@ -5147,21 +8302,6 @@ "question" ] }, - { - "path": [ - "layers", - "tagRenderings", - "condition" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, { "path": [ "layers", @@ -5170,15 +8310,6 @@ ], "type": "object" }, - { - "path": [ - "layers", - "tagRenderings", - "freeform", - "key" - ], - "type": "string" - }, { "path": [ "layers", @@ -5248,22 +8379,6 @@ ], "type": "array" }, - { - "path": [ - "layers", - "tagRenderings", - "mappings", - "if" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, { "path": [ "layers", @@ -5286,11 +8401,11 @@ "type": "object", "properties": { "path": { - "description": "The path to the icon\nType: icon", + "description": "The path to the icon\nType: icon", "type": "string" }, "class": { - "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "description": "Size of the image", "type": "string" } }, @@ -5369,6 +8484,60 @@ ], "type": "array" }, + { + "path": [ + "layers", + "tagRenderings", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "tagRenderings", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "tagRenderings", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "tagRenderings", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "tagRenderings", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "layers", + "tagRenderings" + ], + "type": "object" + }, { "path": [ "layers", @@ -5377,42 +8546,6 @@ ], "type": "object" }, - { - "path": [ - "layers", - "tagRenderings", - "renderings", - "id" - ], - "type": "string" - }, - { - "path": [ - "layers", - "tagRenderings", - "renderings", - "group" - ], - "type": "string" - }, - { - "path": [ - "layers", - "tagRenderings", - "renderings", - "labels" - ], - "type": "array" - }, - { - "path": [ - "layers", - "tagRenderings", - "renderings", - "render" - ], - "typeHint": "rendered" - }, { "path": [ "layers", @@ -5421,22 +8554,6 @@ "question" ] }, - { - "path": [ - "layers", - "tagRenderings", - "renderings", - "condition" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, { "path": [ "layers", @@ -5446,16 +8563,6 @@ ], "type": "object" }, - { - "path": [ - "layers", - "tagRenderings", - "renderings", - "freeform", - "key" - ], - "type": "string" - }, { "path": [ "layers", @@ -5533,23 +8640,6 @@ ], "type": "array" }, - { - "path": [ - "layers", - "tagRenderings", - "renderings", - "mappings", - "if" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, { "path": [ "layers", @@ -5574,11 +8664,11 @@ "type": "object", "properties": { "path": { - "description": "The path to the icon\nType: icon", + "description": "The path to the icon\nType: icon", "type": "string" }, "class": { - "description": "A hint to mapcomplete on how to render this icon within the mapping.\nThis is translated to 'mapping-icon-', so defining your own in combination with a custom CSS is possible (but discouraged)", + "description": "Size of the image", "type": "string" } }, @@ -5662,6 +8752,58 @@ ], "type": "array" }, + { + "path": [ + "layers", + "tagRenderings", + "renderings", + "id" + ], + "type": "string" + }, + { + "path": [ + "layers", + "tagRenderings", + "renderings", + "group" + ], + "type": "string" + }, + { + "path": [ + "layers", + "tagRenderings", + "renderings", + "labels" + ], + "type": "array" + }, + { + "path": [ + "layers", + "tagRenderings", + "renderings", + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "layers", + "tagRenderings", + "renderings", + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, { "path": [ "layers", @@ -5703,6 +8845,16 @@ ], "type": "array" }, + { + "path": [ + "layers", + "filter", + "options", + "fields", + "name" + ], + "type": "string" + }, { "path": [ "layers", diff --git a/assets/license_info.json b/assets/license_info.json index 8603d977cd..3e657b34d7 100644 --- a/assets/license_info.json +++ b/assets/license_info.json @@ -25,6 +25,22 @@ ], "sources": [] }, + { + "path": "SocialImageTemplate.svg", + "license": "CC0", + "authors": [ + "Pieter Vander Vennet" + ], + "sources": [] + }, + { + "path": "SocialImageTemplateWide.svg", + "license": "CC0", + "authors": [ + "Pieter Vander Vennet" + ], + "sources": [] + }, { "path": "generic_osm_background.png", "license": "CC-BY-SA", diff --git a/assets/questionabletagrenderingconfigmeta.json b/assets/questionabletagrenderingconfigmeta.json new file mode 100644 index 0000000000..665bfaeab4 --- /dev/null +++ b/assets/questionabletagrenderingconfigmeta.json @@ -0,0 +1,198 @@ +[ + { + "path": [], + "type": "object" + }, + { + "path": [ + "question" + ] + }, + { + "path": [ + "freeform" + ], + "type": "object" + }, + { + "path": [ + "freeform", + "type" + ], + "type": "string" + }, + { + "path": [ + "freeform", + "placeholder" + ] + }, + { + "path": [ + "freeform", + "helperArgs" + ], + "type": "array" + }, + { + "path": [ + "freeform", + "addExtraTags" + ], + "type": "array" + }, + { + "path": [ + "freeform", + "inline" + ], + "type": "boolean" + }, + { + "path": [ + "freeform", + "default" + ], + "type": "string" + }, + { + "path": [ + "multiAnswer" + ], + "type": "boolean" + }, + { + "path": [ + "mappings" + ], + "type": "array" + }, + { + "path": [ + "mappings", + "then" + ], + "typeHint": "rendered" + }, + { + "path": [ + "mappings", + "icon" + ], + "typeHint": "icon", + "type": [ + { + "type": "object", + "properties": { + "path": { + "description": "The path to the icon\nType: icon", + "type": "string" + }, + "class": { + "description": "Size of the image", + "type": "string" + } + }, + "required": [ + "class", + "path" + ] + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "mappings", + "icon", + "path" + ], + "typeHint": "icon", + "type": "string" + }, + { + "path": [ + "mappings", + "icon", + "class" + ], + "type": "string" + }, + { + "path": [ + "mappings", + "hideInAnswer" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": [ + "string", + "boolean" + ] + } + ] + }, + { + "path": [ + "mappings", + "ifnot" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + }, + { + "path": [ + "mappings", + "addExtraTags" + ], + "type": "array" + }, + { + "path": [ + "id" + ], + "type": "string" + }, + { + "path": [ + "group" + ], + "type": "string" + }, + { + "path": [ + "labels" + ], + "type": "array" + }, + { + "path": [ + "render" + ], + "typeHint": "rendered" + }, + { + "path": [ + "condition" + ], + "type": [ + { + "$ref": "#/definitions/AndOrTagConfigJson" + }, + { + "type": "string" + } + ] + } +] \ No newline at end of file diff --git a/assets/svg/duplicate.svg b/assets/svg/duplicate.svg new file mode 100644 index 0000000000..56565262d3 --- /dev/null +++ b/assets/svg/duplicate.svg @@ -0,0 +1,8868 @@ + + + + + OpenStreetMap logo 2011 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + OpenStreetMap logo 2011 + + + Ken Vermette + + + + April 2011 + + + OpenStreetMap.org + + + Replacement logo for OpenStreetMap Foundation + + + OSM openstreetmap logo + + + http://wiki.openstreetmap.org/wiki/File:Public-images-osm_logo.svg + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/license_info.json b/assets/svg/license_info.json index 47eda46781..530adea9ad 100644 --- a/assets/svg/license_info.json +++ b/assets/svg/license_info.json @@ -381,6 +381,14 @@ "https://commons.wikimedia.org/wiki/File:Download-icon.svg" ] }, + { + "path": "duplicate.svg", + "license": "CC0", + "authors": [ + "Pieter Vander Vennet" + ], + "sources": [] + }, { "path": "envelope.svg", "license": "CC0; trivial", @@ -907,6 +915,16 @@ "https://www.OpenStreetMap.org" ] }, + { + "path": "party.svg", + "license": "CC-BY 4.0", + "authors": [ + "Twemoji" + ], + "sources": [ + "https://github.com/twitter/twemoji" + ] + }, { "path": "payment_card.svg", "license": "CC0", @@ -1139,6 +1157,16 @@ "https://github.com/twitter/twemoji" ] }, + { + "path": "speech_bubble_black_outline.svg", + "license": "CC-BY 4.0", + "authors": [ + "Twemoji" + ], + "sources": [ + "https://github.com/twitter/twemoji" + ] + }, { "path": "square.svg", "license": "CC0; trivial", diff --git a/assets/svg/party.svg b/assets/svg/party.svg new file mode 100644 index 0000000000..a4b8305af6 --- /dev/null +++ b/assets/svg/party.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/svg/search_disable.svg b/assets/svg/search_disable.svg new file mode 100644 index 0000000000..521af615e7 --- /dev/null +++ b/assets/svg/search_disable.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + diff --git a/assets/svg/speech_bubble.svg b/assets/svg/speech_bubble.svg index d091897198..c647c03258 100644 --- a/assets/svg/speech_bubble.svg +++ b/assets/svg/speech_bubble.svg @@ -1 +1,32 @@ - \ No newline at end of file + + + + + + diff --git a/assets/svg/speech_bubble_black_outline.svg b/assets/svg/speech_bubble_black_outline.svg new file mode 100644 index 0000000000..4fd6b1fdf5 --- /dev/null +++ b/assets/svg/speech_bubble_black_outline.svg @@ -0,0 +1,32 @@ + + + + + + diff --git a/assets/tagRenderings/questions.json b/assets/tagRenderings/questions.json index a61d9f2e4f..cb877b6080 100644 --- a/assets/tagRenderings/questions.json +++ b/assets/tagRenderings/questions.json @@ -27,7 +27,10 @@ "sv": "Vad är den motsvarande Wikidata-enheten?", "zh_Hant": "對應的維基資料項目是?", "pl": "Jaki jest powiązany obiekt Wikidata?", - "ja": "対応するウィキデータのエンティティは何ですか?" + "ja": "対応するウィキデータのエンティティは何ですか?", + "fil": "Ano ang nau-ukol na entidad sa Wikidata?", + "es": "¿Cual es la entidad de Wikidata que se corresponde?", + "zh_Hans": "在Wikidata上对应的实体是什么?" }, "mappings": [ { @@ -46,7 +49,11 @@ "zh_Hant": "還沒有連結到維基百科頁面", "ru": "Никакой страницы на Википедии не было прикреплено", "pl": "Link do strony Wikipedii nie został jeszcze określony", - "ja": "ウィキペディアのページはまだリンクされていません" + "ja": "ウィキペディアのページはまだリンクされていません", + "fil": "Wala pang kawing ng Wikipedia page", + "es": "Todavía no se ha enlazado una página de wikipedia", + "zh_Hans": "尚未有连接到的维基百科页面", + "da": "Der er endnu ikke linket til nogen Wikipedia-side" }, "hideInAnswer": true } @@ -80,7 +87,11 @@ "eo": "Kio estas la telefonnumero de {title()}?", "hu": "Mi a telefonszáma ennek: {title()}?", "ca": "Quin és el telèfon de {title()}?", - "ja": "{title()}の電話番号は?" + "ja": "{title()}の電話番号は?", + "sl": "Kakšno telefonsko številko ima {title()}?", + "fil": "Ano ang telepono ng {title()}?", + "es": "¿Cuál es el número de teléfono de {title()}?", + "zh_Hans": "{title()} 的电话号码为何?" }, "render": "{phone}", "mappings": [ @@ -122,7 +133,10 @@ "zh_Hant": "維基百科上對應的項目是什麼?", "fr": "Quel est l’élément Wikipédia correspondant ?", "pl": "Jaki jest link do strony Wikipedii?", - "ja": "Wikipediaの該当項目は何ですか?" + "ja": "Wikipediaの該当項目は何ですか?", + "fil": "Ano ang nau-ukol na partida sa Wikipedia?", + "es": "¿Cual es el ítem correspondiente en Wikipedia?", + "zh_Hans": "在维基百科上对应的条目是什么?" }, "mappings": [ { @@ -140,7 +154,11 @@ "sv": "Inte länkad med Wikipedia", "zh_Hant": "沒有連結到維基百科", "pl": "Brak linku do strony Wikipedii", - "ja": "ウィキペディアと連動していない" + "ja": "ウィキペディアと連動していない", + "fil": "Hindi naka-ugnay sa Wikipedia", + "es": "No enlazado con Wikipedia", + "zh_Hans": "不要连接到维基百科", + "da": "Ikke linket til Wikipedia" } } ], @@ -168,7 +186,11 @@ "eo": "Kio estas la retpoŝta adreso de {title()}?", "hu": "Mi a(z) {title()} e-mail címe?", "ca": "Quina és l'adreça de correu electrònic de {title()}?", - "ja": "{title()}のEメールアドレスは何ですか?" + "ja": "{title()}のEメールアドレスは何ですか?", + "sl": "Kakšen naslov elektronske pošte ima {title()}?", + "fil": "Ano ang email address ng {title()}?", + "es": "¿Cual es la direccióm de correo electrónico de {title()}?", + "zh_Hans": "{title()} 的电子邮箱地址为何?" }, "mappings": [ { @@ -204,7 +226,10 @@ "eo": "Kie estas la retejo de {title()}?", "hu": "Mi a weboldala ennek: {title()}?", "ca": "Quina és la web de {title()}?", - "ja": "{title()}のウェブサイトは?" + "ja": "{title()}のウェブサイトは?", + "fil": "Ano ang website ng {title()}?", + "es": "¿Cual es el sitio web de {title()}?", + "zh_Hans": "{title()} 的网站为何?" }, "render": "{website}", "freeform": { @@ -237,7 +262,10 @@ "sv": "Är det här stället tillgängligt med en rullstol?", "zh_Hant": "這個地方可以坐輪椅到達嗎?", "pl": "Czy to miejsce jest dostępne dla osób na wózkach inwalidzkich?", - "ja": "車いすでのアクセスは可能ですか?" + "ja": "車いすでのアクセスは可能ですか?", + "fil": "Kaya bang abutin ang lugar na ito ng naka-wheelchair?", + "es": "¿Este lugar es accesible con una silla de ruedas?", + "da": "Er stedet tilgængeligt med en kørestol?" }, "mappings": [ { @@ -261,7 +289,10 @@ "zh_Hant": "這個地方有特別設計給輪椅使用者", "ru": "Это место подходит для людей на инвалидной коляске", "pl": "W tym miejscu zainstalowane zostały udogodnienia dla osób na wózkach inwalidzkich", - "ja": "この場所は、車椅子の方のための特別仕様になっています" + "ja": "この場所は、車椅子の方のための特別仕様になっています", + "fil": "Ang lugar na ito ay angkop sa mga gumagamit ng wheelchair", + "es": "Este lugar está especialmente adaptado para usuarios en sillas de ruedas", + "da": "Dette sted er specielt indrettet til kørestolsbrugere" } }, { @@ -285,7 +316,10 @@ "zh_Hant": "這個地方坐輪椅很容易到達", "ru": "До этого места легко добраться на инвалидной коляске", "pl": "To miejsce jest łatwo dostępne dla osób na wózkach inwalidzkich", - "ja": "この場所は、車いすで簡単に行くことができます" + "ja": "この場所は、車いすで簡単に行くことができます", + "fil": "Ang lugar na ito ay kayang abutin ng mga naka-wheelchair", + "es": "Este lugar es fácilmente accesible con una silla de ruedas", + "da": "Dette sted er let tilgængeligt med en kørestol" } }, { @@ -309,7 +343,10 @@ "zh_Hant": "這個地方可以坐輪椅到達,但並不容易", "ru": "До этого места можно добраться, но не просто", "pl": "To miejsce jest dostępne dla osób na wózkach inwalidzkich, ale z pewnymi trudnościami", - "ja": "車いすでこの場所まで行くことは可能ですが、簡単ではありません" + "ja": "車いすでこの場所まで行くことは可能ですが、簡単ではありません", + "fil": "Kayang abutin ang lugar na ito ng mga naka-wheelchair, pero hindi madali", + "es": "Es posible llegar a este lugar con una silla de ruedas, pero no es fácil", + "da": "Det er muligt at komme til dette sted med en kørestol, men det er ikke let" } }, { @@ -332,7 +369,10 @@ "sv": "Den här platsen kan inte nås med en rullstol", "zh_Hant": "輪椅無法到達這個地方", "pl": "To miejsce jest niedostępne dla osób na wózkach inwalidzkich", - "ja": "この場所は車いすでは行けません" + "ja": "この場所は車いすでは行けません", + "fil": "Ang lugar na ito ay hindi kayang abutin ng naka-wheelchair", + "es": "No es posible llegar a este lugar con una silla de ruedas", + "da": "Dette sted er ikke tilgængeligt med kørestol" } } ] @@ -352,7 +392,12 @@ "zh_Hant": "這間商業空間是否允許犬隻?", "ru": "Впускают ли собак в это здание?", "pl": "Czy w tej firmie psy są dozwolone?", - "ja": "犬を飼うことができますか?" + "ja": "犬を飼うことができますか?", + "id": "Apakah anjing diperbolehkan dalam bisnis ini?", + "sl": "Ali so v tem podjetju dovoljeni psi?", + "fil": "Pinapayagan ba ang mga aso sa establisyementong ito?", + "es": "¿Están permitidos los perros en este negocio?", + "zh_Hans": "犬只是否在这个商业体中允许?" }, "mappings": [ { @@ -374,7 +419,11 @@ "id": "Anjing diperbolehkan", "pl": "Psy dozwolone", "ja": "ペット同伴可能", - "es": "Se permiten perros" + "es": "Se permiten perros", + "sl": "Psi so dovoljeni", + "fil": "Pinapayagan ang mga aso", + "zh_Hans": "允许犬只", + "da": "Hunde er tilladt" } }, { @@ -396,7 +445,11 @@ "ru": "С собаками не впускают", "id": "Anjing tidak diperbolehkan", "ja": "ペット同伴不可", - "es": "No se permiten perros" + "es": "No se permiten perros", + "sl": "Psi niso dovoljeni", + "fil": "Hindi pinapayagan ang mga aso", + "zh_Hans": "允许犬只", + "da": "Hunde er ikke tilladt" } }, { @@ -416,7 +469,12 @@ "ru": "Собак впускают, но на поводке", "id": "Anjing diperbolehkan, tetapi mereka harus diikat", "pl": "Psy dozwolone, ale muszą być na smyczy", - "ja": "ペット同伴可能。ただしリード着用" + "ja": "ペット同伴可能。ただしリード着用", + "sl": "Psi so dovoljeni, vendar morajo biti na povodcu", + "fil": "Pinapayagan ang mga aso kung may tali", + "es": "Los perros están permitidos, pero tienen que llevar correa", + "zh_Hans": "允许犬只,但必须拴绳", + "da": "Hunde er tilladt, men de skal være i snor" } }, { @@ -435,7 +493,13 @@ "zh_Hant": "允許犬隻而且可以自由跑動", "ru": "Собак свободно впускают", "pl": "Psy dozwolone i mogą biegać bez ograniczeń", - "ja": "犬同伴可能、自由に走り回れる" + "ja": "犬同伴可能、自由に走り回れる", + "id": "Anjing diperbolehkan dan dapat berkeliaran dengan bebas", + "sl": "Psi so dovoljeni in lahko prosto tekajo naokoli", + "fil": "Pinapayayagan ang mga aso, at malayang makatatakbo", + "es": "Los perros están permitidos y pueden estar sueltos", + "zh_Hans": "允许犬只,且可自由放养", + "da": "Hunde er tilladt og kan løbe frit rundt" } } ] @@ -458,7 +522,9 @@ "sv": "Finns det fortfarande någonting relevant som du inte kunde ge i de föregående frågorna? Lägg till det här.
    Repetera inte redan angivna fakta", "id": "Apakah masih ada sesuatu yang relevan yang tidak dapat Anda berikan dalam pertanyaan sebelumnya? Tambahkan di sini.
    Jangan ulangi fakta yang sudah dinyatakan ", "ja": "前の質問で伝えきれなかった関連事項がまだありますか?ここに追加してください。
    今後表示しない", - "es": "¿Aún hay algo relevante que no ha encajado en las preguntas anteriores? Compártalo aquí.
    No repita datos ya expresados" + "es": "¿Aún hay algo relevante que no ha encajado en las preguntas anteriores? Compártalo aquí.
    No repita datos ya expresados", + "sl": "Ali je še kaj pomembnega, česar niste mogli povedati v prejšnjih vprašanjih? Dopišite tukaj.
    Ne ponavljajte že navedenih dejstev", + "fil": "Mayroon pa bang mga bagay na nau-ugnay at hindi mo maibigay sa mga nakaraang tanong? Idagdag dito.
    Huwag ulitin ang mga nai-saad na" }, "render": "{description}", "freeform": { @@ -481,7 +547,12 @@ "pt": "Qual é o horário de funcionamento de {title()}?", "hu": "Mikor van nyitva ez: {title()}?", "ca": "Quin és l'horari d'obertura de {title()}?", - "ja": "{title()}の営業時間は?" + "ja": "{title()}の営業時間は?", + "sl": "Kakšen odpiralni čas ima {title()}?", + "fil": "Anong oras nagbubukas ang {title()}?", + "es": "¿Cuales son las horas de apertura de {title()}?", + "zh_Hans": "{title()} 的开放时间为何?", + "da": "Hvad er åbningstiderne for {title()}?" }, "render": { "de": "

    Öffnungszeiten

    {opening_hours_table(opening_hours)}", @@ -499,7 +570,12 @@ "eo": "

    Malfermitaj horoj

    {opening_hours_table(opening_hours)}", "hu": "

    Nyitva tartás

    {opening_hours_table(opening_hours)}", "ca": "

    Horari d'obertura

    {opening_hours_table(opening_hours)}", - "ja": "

    営業時間

    {opening_hours_table(opening_hours)}" + "ja": "

    営業時間

    {opening_hours_table(opening_hours)}", + "sl": "

    Odpiralni čas

    {opening_hours_table(opening_hours)}", + "fil": "

    Mga oras na bukas

    {opening_hours_table(opening_hours)}", + "es": "

    Horas de apertura

    {opening_hours_table(opening_hours)}", + "zh_Hans": "

    开放时间

    {opening_hours_table(opening_hours)}", + "da": "

    Åbningstider

    {opening_hours_table(opening_hours)}" }, "freeform": { "key": "opening_hours", @@ -519,7 +595,9 @@ "hu": "Van-e ebben a létesítményben olyan konnektor, amely a bent tartózkodó ügyfelek rendelkezésére áll?", "fr": "Des prises sont elles à disposition des client·e·s en intérieur ?", "pl": "Czy w tym przybytku znajdują się gniazdka elektryczne, gdzie klienci mogą naładować swoje urządzenia?", - "ja": "このアメニティにはコンセントがあり、お客様が店内にいるときにも利用できますか?" + "ja": "このアメニティにはコンセントがあり、お客様が店内にいるときにも利用できますか?", + "fil": "Merong bang mga intsupe (outlet) sa loob, para sa mga suki?", + "es": "¿Esta facilidad tiene enchufes eléctricos, disponibles para los clientes cuando están dentro?" }, "mappings": [ { @@ -534,7 +612,10 @@ "hu": "Számos konnektor áll a belső térben ügyfelek rendelkezésére, ahol elektromos készülékeiket tölthetik", "fr": "Il y a suffisamment de prises disponibles pour les client·e·s en intérieur souhaitant recharger leurs appareils", "pl": "W budynku znajduje się wiele gniazdek elektrycznych, gdzie klienci mogą naładować swoje urządzenia", - "ja": "屋内の席に座っているお客様には、家庭用コンセントがたくさん用意されており、そこで電子機器を充電することができます" + "ja": "屋内の席に座っているお客様には、家庭用コンセントがたくさん用意されており、そこで電子機器を充電することができます", + "fil": "Maraming mga intsupe (sockets) na maaring gamitin ng mga suki na nakaupo sa loob, pang-karga ng kanilang mga elektroniks", + "es": "Hay numerosos enchufes domésticos disponibles para los clientes sentados en el interior, donde pueden cargar sus dispositivos electrónicos", + "da": "Der er masser af stikkontakter til rådighed for kunder, der sidder indendørs, hvor de kan oplade deres elektroniske udstyr" }, "if": "service:electricity=yes" }, @@ -550,7 +631,10 @@ "hu": "Csupán néhány konnektor áll a belső térben ügyfelek rendelkezésére, ahol elektromos készülékeiket tölthetik", "fr": "Il y a peu de prises disponibles pour les client·e·s en intérieur souhaitant recharger leurs appareils", "pl": "W budynku znajduje się kilka gniazdek elektrycznych, gdzie klienci mogą naładować swoje urządzenia", - "ja": "屋内の席に座ったお客様が充電できるよう、コンセントがいくつか用意されています" + "ja": "屋内の席に座ったお客様が充電できるよう、コンセントがいくつか用意されています", + "fil": "May iilang mga intsupe (sockets) na maaring gamitin ng mga suki na nakaupo sa loob, pang-karga ng kanilang mga elektroniks", + "es": "Hay algunos enchufes domésticos disponibles para los clientes sentados en el interior, donde pueden cargar sus dispositivos electrónicos", + "da": "Der er nogle få stikkontakter til rådighed for kunder, der sidder indendørs, hvor de kan oplade deres elektroniske udstyr" }, "if": "service:electricity=limited" }, @@ -566,7 +650,10 @@ "zh_Hant": "這邊沒有給客戶用的插座,因此可能需要詢問員工是否能充電", "hu": "A belső térben nincs konnektor az ügyfeleknek, de lehetséges, hogy a személyzet segítségével lehet elektromos eszközt tölteni", "pl": "W budynku nie ma gniazdek elektrycznych dostępnych dla klientów, ale mogą zostać one udostępnione po spytaniu obsługi", - "ja": "屋内にはコンセントがありませんが、スタッフに声をかければ充電できるかもしれません" + "ja": "屋内にはコンセントがありませんが、スタッフに声をかければ充電できるかもしれません", + "fil": "Walang mga intsupe (socket) para sa mga suki, pero maaring tanungin ang kawani kung magpapa-karga", + "es": "No hay enchufes disponibles en el interior para los clientes, pero cargar puede ser posible si se pregunta al personal", + "da": "Der er ingen stikkontakter til rådighed indendørs for kunderne, men opladning kan være mulig, hvis man beder personalet om det" }, "if": "service:electricity=ask" }, @@ -582,7 +669,10 @@ "zh_Hant": "這裡客戶座位沒有室內插座", "hu": "A belső térben ülő ügyfeleknek nem áll rendelkezésére konnektor", "pl": "W budynku nie ma gniazdek elektrycznych dostępnych dla klientów", - "ja": "屋内の席には、家庭用コンセントはありません" + "ja": "屋内の席には、家庭用コンセントはありません", + "fil": "Walang mga intsupe (socket) para sa mga suking nakaubo sa loob", + "es": "No hay enchufes domésticos disponibles para los clientes sentados en el interior", + "da": "Der er ingen stikkontakter til rådighed for kunder, der sidder indendørs" }, "if": "service:electricity=no" } @@ -605,7 +695,11 @@ "zh_Hant": "這邊接受那種付款方式?", "pl": "Jakie metody płatności są tutaj dostępne?", "ru": "Какие способы оплаты здесь принимают?", - "ja": "どのような支払い方法が可能ですか?" + "ja": "どのような支払い方法が可能ですか?", + "sl": "Kateri načini plačila so možni tu?", + "fil": "Anong mga paraang pambayad ang tinatanggap dito?", + "es": "¿Qué métodos de pago se aceptan aquí?", + "zh_Hans": "这里支持哪些支付方式?" }, "multiAnswer": true, "mappings": [ @@ -629,7 +723,12 @@ "zh_Hant": "這邊接受現金", "pl": "Płatność gotówkowa jest tutaj dostępna", "ru": "Здесь принимают наличными", - "ja": "現金利用可能" + "ja": "現金利用可能", + "sl": "Tu sprejemajo gotovino", + "fil": "Tinatanggap ang salapi rito", + "es": "Aquí se acepta el pago en efectivo", + "zh_Hans": "可用现金", + "da": "Her modtages kontanter" } }, { @@ -652,7 +751,12 @@ "zh_Hant": "這邊接受現金卡", "pl": "Płatność kartą jest tutaj dostępna", "ru": "Здесь принимают банковские карты", - "ja": "お支払いはこちらで承ります" + "ja": "お支払いはこちらで承ります", + "sl": "Tukaj sprejemajo plačilne kartice", + "fil": "Tinatanggap ang mga tarhetang pambayad dito", + "es": "Aquí se acepta el pago por tarjeta", + "zh_Hans": "可用信用卡", + "da": "Betalingskort accepteres her" } } ] @@ -669,7 +773,15 @@ "en": "Payment is done using a dedicated app", "nl": "Betalen via een app van het netwerk", "hu": "Fizetés erre a célra szolgáló alkalmazással", - "zh_Hant": "使用專用應用程式付款" + "zh_Hant": "使用專用應用程式付款", + "de": "Die Bezahlung erfolgt über eine spezielle App", + "fr": "Paiement via une application", + "sl": "Plačilo se opravi z namensko aplikacijo", + "ca": "El pagament es fa amb una app dedicada", + "fil": "Binabayaran gamit ang sariling app", + "es": "El pago se realiza con una aplicación dedicada", + "zh_Hans": "使用专用APP支付", + "da": "Betaling sker ved hjælp af en dedikeret app" } }, { @@ -680,7 +792,16 @@ "en": "Payment is done using a membership card", "nl": "Betalen via een lidkaart van het netwerk", "hu": "Fizetési tagsági kártyával", - "zh_Hant": "使用會員卡付款" + "zh_Hant": "使用會員卡付款", + "de": "Die Bezahlung erfolgt mit einer Mitgliedskarte", + "fr": "Paiement via une carte de membre", + "sl": "Plačilo se izvede s člansko izkaznico", + "ca": "El pagament es fa amb una targeta de membre", + "fil": "Binabayaran gamit ang membership card", + "es": "El pago se realiza con una tarjeta de membresía", + "nb_NO": "Betaling utføres med et medlemskort", + "zh_Hans": "使用会员卡支付", + "da": "Betaling sker med medlemskort" } } ] @@ -699,7 +820,7 @@ "question": { "nl": "Op welke verdieping bevindt dit punt zich?", "en": "On what level is this feature located?", - "de": "In welchem Stockwerk befindet sich dieses Objekt?", + "de": "Auf welcher Ebene befindet sich dieses Objekt?", "zh_Hant": "此圖徽位於哪個樓層/層級?", "fr": "À quel étage se situe l’élément ?", "pl": "Na jakim poziomie znajduje się ta funkcja?", @@ -711,7 +832,9 @@ "it": "A quale piano si trova questo elemento?", "ca": "A quina planta està situat aquest element?", "sv": "På vilken nivå finns den här funktionen?", - "ja": "この機能は何階にあるのでしょうか?" + "ja": "この機能は何階にあるのでしょうか?", + "fil": "Anong palapag matatagpuan ang tampók?", + "es": "¿En qué nivel se encuentra esta característica?" }, "render": { "en": "Located on the {level}th floor", @@ -728,7 +851,11 @@ "hu": "A(z) {level}. emeleten", "it": "Si trova al piano numero {level}", "ca": "Situat a la planta {level}", - "ja": "{level}階にあります" + "ja": "{level}階にあります", + "sl": "Nahaja se v {level}. nadstropju", + "fil": "Natagpuan sa ika-{level} na palapag", + "es": "Localizada en la {level}° planta", + "da": "Beliggende på {level}. etage" }, "freeform": { "key": "level", @@ -752,7 +879,12 @@ "it": "Si trova sotto il livello stradale", "nb_NO": "Under bakken", "ca": "Situat a planta subterrani", - "ja": "地下にあります" + "ja": "地下にあります", + "id": "Terletak di bawah tanah", + "sl": "Nahaja se pod zemljo", + "fil": "Nasa ilalim ng lupa", + "es": "Localizado bajo tierra", + "da": "Placeret under jorden" }, "hideInAnswer": true }, @@ -774,7 +906,12 @@ "it": "Si trova al pianoterra", "nb_NO": "På gateplan", "ca": "Situat a planta zero", - "ja": "1階にあります" + "ja": "1階にあります", + "id": "Terletak di lantai dasar", + "sl": "Nahaja se v pritličju", + "fil": "Nasa unang palapag", + "es": "Localizado en la planta baja", + "da": "Beliggende i stueetagen" } }, { @@ -796,7 +933,12 @@ "it": "Si trova al pianoterra", "nb_NO": "På gateplan", "ca": "Situat a planta zero", - "ja": "1階にあります" + "ja": "1階にあります", + "id": "Terletak di lantai dasar", + "sl": "Nahaja se v pritličju", + "fil": "Nasa unang palapag", + "es": "Localizado en la planta baja", + "da": "Beliggende i stueetagen" } }, { @@ -818,7 +960,11 @@ "it": "Si trova al primo piano", "nb_NO": "I andre etasje", "ca": "Situat a primera planta", - "ja": "1階にあります" + "ja": "1階にあります", + "sl": "Nahaja se v prvem nadstropju", + "fil": "Nasa unang palapag", + "es": "Localizado en la primera planta", + "da": "Beliggende på første sal" } }, { @@ -826,7 +972,15 @@ "then": { "en": "Located on the first basement level", "nl": "Bevindt zich in de eerste kelderverdieping", - "zh_Hant": "位於地下一樓" + "zh_Hant": "位於地下一樓", + "de": "Ist im 1. Untergeschoss", + "hu": "Az első alagsori szinten", + "id": "Terletak di lantai basement pertama", + "fr": "Sous-sol", + "sl": "Nahaja se v prvi kletni etaži", + "ca": "Localitzat a la planta base", + "fil": "Nasa silong", + "es": "Situado en el primer nivel del sótano" } } ] diff --git a/assets/tagrenderingconfigmeta.json b/assets/tagrenderingconfigmeta.json index 6f7b349c17..5feb1da542 100644 --- a/assets/tagrenderingconfigmeta.json +++ b/assets/tagrenderingconfigmeta.json @@ -27,11 +27,6 @@ ], "typeHint": "rendered" }, - { - "path": [ - "question" - ] - }, { "path": [ "condition" @@ -58,53 +53,6 @@ ], "type": "string" }, - { - "path": [ - "freeform", - "type" - ], - "type": "string" - }, - { - "path": [ - "freeform", - "placeholder" - ] - }, - { - "path": [ - "freeform", - "helperArgs" - ], - "type": "array" - }, - { - "path": [ - "freeform", - "addExtraTags" - ], - "type": "array" - }, - { - "path": [ - "freeform", - "inline" - ], - "type": "boolean" - }, - { - "path": [ - "freeform", - "default" - ], - "type": "string" - }, - { - "path": [ - "multiAnswer" - ], - "type": "boolean" - }, { "path": [ "mappings" @@ -177,43 +125,5 @@ "class" ], "type": "string" - }, - { - "path": [ - "mappings", - "hideInAnswer" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": [ - "string", - "boolean" - ] - } - ] - }, - { - "path": [ - "mappings", - "ifnot" - ], - "type": [ - { - "$ref": "#/definitions/AndOrTagConfigJson" - }, - { - "type": "string" - } - ] - }, - { - "path": [ - "mappings", - "addExtraTags" - ], - "type": "array" } ] \ No newline at end of file diff --git a/assets/themes/aed/aed.json b/assets/themes/aed/aed.json index 5c1a94ad62..4b37050efb 100644 --- a/assets/themes/aed/aed.json +++ b/assets/themes/aed/aed.json @@ -6,7 +6,7 @@ "es": "Mapa abierto de desfibriladores (DEA)", "fr": "Carte des défibrillateurs (DAE)", "nl": "Open AED-kaart", - "de": "AED-Karte öffnen", + "de": "AED-Karte", "hu": "Defibrillátor-térkép", "id": "Buka Peta AED", "it": "Mappa dei defibrillatori (DAE)", @@ -16,10 +16,12 @@ "nb_NO": "Åpne AED-kart", "sv": "Öppna AED-karta", "pl": "Otwórz mapę AED", - "pt_BR": "Abrir mapa AED" + "pt_BR": "Abrir mapa AED", + "sl": "Zemljevid defibrilatorjev (AED)", + "zh_Hans": "Open AED Map" }, "maintainer": "MapComplete", - "icon": "./assets/themes/aed/logo.svg", + "icon": "./assets/themes/aed/aed.svg", "description": { "en": "On this map, one can find and mark nearby defibrillators", "ca": "En aquest mapa , qualsevol pot trobar i marcar els desfibril·ladors externs automàtics més propers", @@ -36,7 +38,10 @@ "pl": "Na tej mapie można znaleźć i oznaczyć defibrylatory w okolicy", "pt_BR": "Neste mapa, pode-se encontrar e marcar desfibriladores próximos", "nb_NO": "Defibrillatorer i nærheten", - "hu": "Ezen a térképen a közeli defibrillátorokat lehet megtalálni és feltüntetni" + "hu": "Ezen a térképen a közeli defibrillátorokat lehet megtalálni és feltüntetni", + "sl": "Na tem zemljevidu lahko poiščete in označite bližnje defibrilatorje", + "zh_Hans": "在这份地图上可以寻找和标记附近的除颤器", + "da": "På dette kort kan man finde og markere defibrillatorer i nærheden" }, "version": "2020-08-29", "startLat": 0, diff --git a/assets/themes/aed/aed.svg b/assets/themes/aed/aed.svg index 3ab3f88404..0deeb8e518 100644 --- a/assets/themes/aed/aed.svg +++ b/assets/themes/aed/aed.svg @@ -1,8 +1,30 @@ - - - - - - + + + + + + + - \ No newline at end of file + diff --git a/assets/themes/aed/aed_brugge.json b/assets/themes/aed/aed_brugge.json index a0b5933e25..1fccbf9e37 100644 --- a/assets/themes/aed/aed_brugge.json +++ b/assets/themes/aed/aed_brugge.json @@ -4,7 +4,7 @@ "nl": "Open AED-kaart - Brugge edition" }, "maintainer": "MapComplete", - "icon": "./assets/themes/aed/logo.svg", + "icon": "./assets/themes/aed/aed.svg", "description": { "nl": "Op deze kaart kan je informatie over AEDs vinden en verbeteren + een export van de brugse defibrillatoren" }, diff --git a/assets/themes/aed/license_info.json b/assets/themes/aed/license_info.json index 0d0efe988e..dac6082058 100644 --- a/assets/themes/aed/license_info.json +++ b/assets/themes/aed/license_info.json @@ -8,15 +8,5 @@ "sources": [ "https://commons.wikimedia.org/wiki/File:ISO_7010_E010.svg" ] - }, - { - "path": "logo.svg", - "license": "CC-BY-SA 4.0", - "authors": [ - "M!dgard" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:ISO_7010_E010.svg" - ] } ] \ No newline at end of file diff --git a/assets/themes/aed/logo.svg b/assets/themes/aed/logo.svg deleted file mode 100644 index 8510ff1b8f..0000000000 --- a/assets/themes/aed/logo.svg +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/themes/artwork/artwork.json b/assets/themes/artwork/artwork.json index c7f4bd5b8f..f0b26afecc 100644 --- a/assets/themes/artwork/artwork.json +++ b/assets/themes/artwork/artwork.json @@ -13,7 +13,10 @@ "ja": "オープン アートワーク マップ", "zh_Hant": "開放藝術品地圖", "sv": "Öppen konstverkskarta", - "pl": "Otwórz mapę dzieł sztuki" + "pl": "Otwórz mapę dzieł sztuki", + "nb_NO": "Kunstkort", + "ca": "Open Artwork Map", + "zh_Hans": "Open Artwork Map" }, "description": { "en": "Welcome to Open Artwork Map, a map of statues, busts, grafittis and other artwork all over the world", @@ -28,7 +31,9 @@ "zh_Hant": "歡迎來到開放藝術品地圖,這份地圖會顯示全世界的雕像、半身像、塗鴉以及其他類型的藝術品", "nb_NO": "Velkommen til det åpne kunstverkskartet, et kart over statuer, byster, grafitti, og andre kunstverk i verden", "hu": "Isten hozta a nyílt műalkotástérképen, a világ minden táján megtalálható szobrok, mellszobrok, graffitik és más műalkotások gyűjtőhelyén", - "pl": "Witaj w Open Artwork Map, mapie pomników, popierś, graffitti i innych dzieł sztuki z całego świata" + "pl": "Witaj w Open Artwork Map, mapie pomników, popierś, graffitti i innych dzieł sztuki z całego świata", + "ca": "Benvingut a Open Artwork Map, un mapa d'estàtues, busts, grafitis i altres obres d'art del tot el món", + "zh_Hans": "欢迎使用Open Artwork Map,一个雕塑、半身像、涂鸦和其他全球艺术品的地图" }, "icon": "./assets/themes/artwork/artwork.svg", "maintainer": "MapComplete", diff --git a/assets/themes/benches/benches.json b/assets/themes/benches/benches.json index 7ed0d305e0..908199ab08 100644 --- a/assets/themes/benches/benches.json +++ b/assets/themes/benches/benches.json @@ -12,7 +12,11 @@ "nb_NO": "Benker", "pt_BR": "Bancadas", "id": "Bangku", - "hu": "Padok" + "hu": "Padok", + "ca": "Bancs", + "es": "Bancos", + "zh_Hans": "长椅", + "da": "Bænke" }, "shortDescription": { "en": "A map of benches", @@ -25,18 +29,25 @@ "zh_Hant": "長椅的地圖", "nb_NO": "Et benkekart", "pt_BR": "Um mapa de bancadas", - "hu": "Padtérkép" + "hu": "Padtérkép", + "id": "Peta bangku", + "ca": "Un mapa de bancs", + "es": "Un mapa de bancos", + "zh_Hans": "长椅地图", + "da": "Et kort over bænke" }, "description": { "en": "This map shows all benches that are recorded in OpenStreetMap: Individual benches, and benches belonging to public transport stops or shelters. With an OpenStreetMap account, you can map new benches or edit details of existing benches.", - "de": "Diese Karte zeigt alle Sitzbänke, die in OpenStreetMap eingetragen sind: Einzeln stehende Bänke und Bänke, die zu Haltestellen oder Unterständen gehören. Mit einem OpenStreetMap-Account können Sie neue Bänke eintragen oder Detailinformationen existierender Bänke bearbeiten.", + "de": "Diese Karte zeigt alle Sitzbänke, die in OpenStreetMap eingetragen sind: Alleinstehende Bänke und Bänke, die zu Haltestellen oder Unterständen gehören. Mit einem OpenStreetMap-Konto können Sie neue Bänke eintragen oder Details existierender Bänke bearbeiten.", "fr": "Cette carte affiche les bancs mappés dans OpenStreetMap, entre autres : bancs des transports en commun, bancs publics, etc. À l'aide de votre compte OpenStretMap, vous pourrez ajouter de nouveaux bancs ou modifier les bancs existants.", "nl": "Deze kaart toont alle zitbanken die zijn opgenomen in OpenStreetMap: individuele banken en banken bij bushaltes. Met een OpenStreetMap-account kan je informatie verbeteren en nieuwe zitbanken toevoegen.", "it": "Questa mappa mostra tutte le panchine che sono state aggiunte su OpenStreetMap: panchine individuali e quelle alle fermate del trasporto pubblico o nei ripari. Se disponi di un account OpenStreetMap puoi mappare delle nuove panchine o modificare i dettagli di quelle esistenti.", "ru": "На этой карте показаны все скамейки, записанные в OpenStreetMap: отдельные скамейки, а также скамейки, относящиеся к остановкам общественного транспорта или навесам. Имея учётную запись OpenStreetMap, вы можете наносить на карту новые скамейки или редактировать информацию о существующих скамейках.", "ja": "このマップには、OpenStreetMapに記録されているすべてのベンチが表示されます。個々のベンチ、および公共交通機関の停留所または避難場所に属するベンチです。OpenStreetMapアカウントを使用すると、新しいベンチをマップしたり、既存のベンチの詳細を編集したりできます。", "zh_Hant": "這份地圖顯示開放街圖上所有記錄的長椅:單獨的長椅,屬於大眾運輸站點或涼亭的長椅。只要有開放街圖帳號,你可以新增長椅或是編輯既有長椅的詳細內容。", - "hu": "Ez a térkép megjeleníti az OpenStreetMap-en rögzített összes padot: egyes padokat, valamint tömegközlekedési megállókban vagy menedékhelyeken található padokat. OpenStreetMap-fiókkal Ön is felrajzolhat új padokat, vagy szerkesztheti a meglévő padok részleteit." + "hu": "Ez a térkép megjeleníti az OpenStreetMap-en rögzített összes padot: egyes padokat, valamint tömegközlekedési megállókban vagy menedékhelyeken található padokat. OpenStreetMap-fiókkal Ön is felrajzolhat új padokat, vagy szerkesztheti a meglévő padok részleteit.", + "ca": "Aquest mapa mostra tots els bancs que hi ha a OpenStreetMap: bancs individuals i els bancs que hi ha a parades o refugis de transport públic. Amb un compte d'OpenStreetMap pots afegir nous bancs o editar detalls dels existents.", + "es": "Este mapa muestra todos los bancos que están grabados en OpenStreetMap: Bancos individuales, bancos que pertenecen a paradas o marquesinas del transporte público. Con una cuenta de OpenStreetMap, puedes mapear nuevos bancos o editar detalles de bancos existentes." }, "maintainer": "Florian Edelmann", "icon": "./assets/themes/benches/bench_poi.svg", diff --git a/assets/themes/bicycle_rental/bicycle_rental.json b/assets/themes/bicycle_rental/bicycle_rental.json index b26d1bf166..2c564ebf85 100644 --- a/assets/themes/bicycle_rental/bicycle_rental.json +++ b/assets/themes/bicycle_rental/bicycle_rental.json @@ -2,15 +2,30 @@ "id": "bicycle_rental", "title": { "en": "Bicycle rental", - "nl": "Fietsverhuur" + "nl": "Fietsverhuur", + "de": "Fahrradverleih", + "id": "Sewa sepeda", + "fr": "Location de vélos", + "ca": "Lloguer de bicicletes", + "es": "Alquiler de bicicletas", + "nb_NO": "Sykkelutleie", + "da": "Cykeludlejning" }, "shortDescription": { "en": "A map with bicycle rental stations and bicycle rental shops", - "nl": "Een kaart met fietsverhuurpunten en fietsverhuurzaken" + "nl": "Een kaart met fietsverhuurpunten en fietsverhuurzaken", + "de": "Eine Karte mit Fahrradverleihstationen und Fahrradverleihern", + "id": "Peta dengan stasiun persewaan sepeda dan toko penyewaan sepeda", + "fr": "Une carte avec des stations et magasins de location de vélos", + "es": "Un mapa con estaciones de alquiler de bicicletas y tiendas de alquiler de bicicletas" }, "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" + "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", + "fr": "Vous trouverez sur cette carte toutes les stations de location de vélo telles qu'elles sont référencées dans OpenStreetMap", + "es": "En este mapa, encontrarás numerosas estaciones de alquiler de bicicletas que son conocidas por OpenStreetMap", + "da": "På dette kort finder du de mange cykeludlejningsstationer, som OpenStreetMap kender dem" }, "maintainer": "", "icon": "./assets/themes/bicycle_rental/logo.svg", diff --git a/assets/themes/bicycle_rental/logo.svg b/assets/themes/bicycle_rental/logo.svg index b66b2c214e..910514d2f4 100644 --- a/assets/themes/bicycle_rental/logo.svg +++ b/assets/themes/bicycle_rental/logo.svg @@ -1 +1,56 @@ - \ No newline at end of file + + + + + + + + + + + + + + diff --git a/assets/themes/bicyclelib/bicyclelib.json b/assets/themes/bicyclelib/bicyclelib.json index b3ee810bf4..72dc74a660 100644 --- a/assets/themes/bicyclelib/bicyclelib.json +++ b/assets/themes/bicyclelib/bicyclelib.json @@ -11,10 +11,11 @@ "fr": "Vélothèques", "zh_Hant": "單車圖書館", "nb_NO": "Sykkelbibliotek", - "de": "Fahrradbibliothek", + "de": "Fahrradbibliotheken", "pt_BR": "Bibliotecas de bicicletas", "pl": "Wypożyczalnie rowerów", - "hu": "Kerékpárkönyvtárak" + "hu": "Kerékpárkönyvtárak", + "id": "Perpustakaan sepeda" }, "description": { "nl": "Een fietsbibliotheek is een plaats waar men een fiets kan lenen, vaak voor een klein bedrag per jaar. Een typisch voorbeeld zijn kinderfietsbibliotheken, waar men een fiets op maat van het kind kan lenen. Is het kind de fiets ontgroeid, dan kan het te kleine fietsje omgeruild worden voor een grotere.", diff --git a/assets/themes/binoculars/binoculars.json b/assets/themes/binoculars/binoculars.json index fed6bcb982..0f3828b2f3 100644 --- a/assets/themes/binoculars/binoculars.json +++ b/assets/themes/binoculars/binoculars.json @@ -7,24 +7,31 @@ "it": "Binocoli", "nb_NO": "Kikkerter", "zh_Hant": "望遠鏡", - "hu": "Távcsövek" + "hu": "Távcsövek", + "fr": "Jumelles", + "es": "Binoculares", + "da": "Kikkerter" }, "shortDescription": { "en": "A map with fixed binoculars", "nl": "Een kaart met publieke verrekijker", - "de": "Eine Karte mit festinstallierten Ferngläsern", + "de": "Eine Karte festinstallierter Ferngläsern", "it": "Una cartina dei binocoli pubblici fissi", "nb_NO": "Et kart over fastmonterte kikkerter", "zh_Hant": "固定望遠鏡的地圖", - "hu": "Rögzített távcsövek (binokulárok) térképe" + "hu": "Rögzített távcsövek (binokulárok) térképe", + "fr": "Une carte de jumelles panoramiques", + "es": "Un mapa con prismáticos fijos" }, "description": { "en": "A map with binoculars fixed in place with a pole. It can typically be found on touristic locations, viewpoints, on top of panoramic towers or occasionally on a nature reserve.", "nl": "Een kaart met verrekijkers die op een vaste plaats zijn gemonteerd", - "de": "Eine Karte mit festinstallierten Ferngläsern. Man findet sie typischerweise an touristischen Orten, Aussichtspunkten, auf Aussichtstürmen oder gelegentlich in einem Naturschutzgebiet.", + "de": "Eine Karte für festinstallierte Ferngläsern. Man findet sie meist an touristischen Orten, Aussichtspunkten, Aussichtstürmen oder gelegentlich in Naturschutzgebieten.", "it": "Una cartina dei binocoli su un palo fissi in un luogo. Si trovano tipicamente nei luoghi turistici, nei belvedere, in cima a torri panoramiche oppure occasionalmente nelle riserve naturali.", "zh_Hant": "固定一地的望遠鏡地圖,特別是能夠在旅遊景點、觀景點、城鎮環景點,或是自然保護區找到。", - "hu": "Rúdra rögzített távcsövek térképe. Jellemzően turisztikailag érdekes, panorámás helyeken, kilátótornyok tetején vagy természetvédelmi területen találhatók." + "hu": "Rúdra rögzített távcsövek térképe. Jellemzően turisztikailag érdekes, panorámás helyeken, kilátótornyok tetején vagy természetvédelmi területen találhatók.", + "fr": "Une carte des longue-vues fixes. Se trouve typiquement sur les sites touristiques, les points de vue, les tours panoramiques ou dans les réserves naturelles.", + "es": "Un mapa con prismáticos fijos en un poste. Suele encontrarse en lugares turísticos, miradores, en lo alto de torres panorámicas u ocasionalmente en una reserva natural." }, "maintainer": "", "icon": "./assets/layers/binocular/telescope.svg", diff --git a/assets/themes/bookcases/bookcases.json b/assets/themes/bookcases/bookcases.json index 23c116e2b3..19f0636bac 100644 --- a/assets/themes/bookcases/bookcases.json +++ b/assets/themes/bookcases/bookcases.json @@ -5,7 +5,7 @@ "title": { "en": "Open Bookcase Map", "nl": "Open boekenruilkasten-kaart", - "de": "Öffentliche Bücherschränke Karte", + "de": "Karte öffentlicher Bücherschränke", "fr": "Carte des microbibliothèques", "ru": "Открытая карта книжных шкафов", "ja": "オープン本棚マップ", @@ -13,18 +13,22 @@ "it": "Mappa libera delle microbiblioteche", "pt_BR": "Abrir Mapa de Estantes", "nb_NO": "Kart over åpne bokhyller", - "hu": "Könyvespolctérkép" + "hu": "Könyvespolctérkép", + "ca": "Open Bookcase Map", + "es": "Mapa de Librerías Abiertas" }, "description": { "en": "A public bookcase is a small streetside cabinet, box, old phone booth or some other objects where books are stored. Everyone can place or take a book. This map aims to collect all these bookcases. You can discover new bookcases nearby and, with a free OpenStreetMap account, quickly add your favourite bookcases.", "nl": "Een boekenruilkast is een kastje waar iedereen een boek kan nemen of achterlaten. Op deze kaart kan je deze boekenruilkasten terugvinden en met een gratis OpenStreetMap-account, ook boekenruilkasten toevoegen of informatie verbeteren", - "de": "Bücherschränke sind alte Schaltschränke, Telefonzellen oder andere Einrichtungen, zur Aufbewahrung von Büchern. Jeder kann Bücher abstellen oder mitnehmen. Die Karte zielt darauf ab, alle Orte mit Bücherschränken zu sammeln. Sie können neue Bücherschränke in der Nähe entdecken und mit einem kostenlosen OpenStreetMap-Konto schnell Ihre Lieblingsbücherschränke hinzufügen.", + "de": "Bücherschränke sind alte Schaltschränke, Telefonzellen oder andere Einrichtungen zur Aufbewahrung von Büchern. Jeder kann Bücher abgeben oder mitnehmen. Die Karte soll helfen, alle Orte mit Bücherschränken zu sammeln. Sie können neue Bücherschränke in der Nähe entdecken und mit einem kostenlosen OpenStreetMap-Konto schnell Ihre Lieblingsbücherschränke hinzufügen.", "fr": "Une microbibliothèques, également appelée boite à livre, est un élément de mobilier urbain (étagère, armoire, etc) dans lequel sont stockés des livres et autres objets en accès libre. Découvrez les boites à livres prêt de chez vous, ou ajouter en une nouvelle à l'aide de votre compte OpenStreetMap.", "ru": "Общественный книжный шкаф - это небольшой уличный шкаф, коробка, старый телефонный аппарат или другие предметы, где хранятся книги. Каждый может положить или взять книгу. Цель этой карты - собрать все эти книжные шкафы. Вы можете обнаружить новые книжные шкафы поблизости и, имея бесплатный аккаунт OpenStreetMap, быстро добавить свои любимые книжные шкафы.", "ja": "公共の本棚とは、本が保管されている小さな街角のキャビネット、箱、古い電話のトランク、その他の物のことです。誰でも本を置いたり持ったりすることができます。このマップは、すべての公共の本棚を収集することを目的としています。近くで新しい本棚を見つけることができ、無料のOpenStreetMapアカウントを使えば、お気に入りの本棚を簡単に追加できます。", "zh_Hant": "公共書架是街邊箱子、盒子、舊的電話亭或是其他存放書本的物件,每一個人都能放置或拿取書本。這份地圖收集所有類型的書架,你可以探索你附近新的書架,同時也能用免費的開放街圖帳號來快速新增你最愛的書架。", - "it": "Una minibiblioteca è una piccola cabina a lato della strada, una scatola, una vecchia cabina telefonica o qualche altro contenitore che ospita libri. Tutti può lasciare o prendere un libro. Questa mappa punta a rappresentarle tutte. Puoi facilmente scoprire nuove minibiblioteche nelle tue vicinanze e, con un account gratuito su OpenStreetMap, puoi aggiungerne altre.", - "hu": "A nyilvános könyvespolc egy kis utcai szekrény, doboz, régi telefonfülke vagy más tárgy, ahol könyveket tárolnak. Bárki tehet rá vagy vihet el róla könyvet. Ez a térkép ezeket a könyvespolcokat kívánja összegyűjteni. Ha felfedezett egy új könyvespolcot a közelben, akkor egy ingyenes OpenStreetMap-fiókkal gyorsan fel is rajzolhatja a térképre." + "it": "Una libreria pubblica è una piccola cabina a lato della strada, un locale, una vecchia cabina telefonica o qualche altro luogo in cui sono tenuti libri. Chiunque può lasciare o prendere libri. Scopo della mappa è individuarle. Se scopri nuove librerie nelle vicinanze, puoi facilmente aggiungerle con un account OpenStreetMap.", + "hu": "A nyilvános könyvespolc egy kis utcai szekrény, doboz, régi telefonfülke vagy más tárgy, ahol könyveket tárolnak. Bárki tehet rá vagy vihet el róla könyvet. Ez a térkép ezeket a könyvespolcokat kívánja összegyűjteni. Ha felfedezett egy új könyvespolcot a közelben, akkor egy ingyenes OpenStreetMap-fiókkal gyorsan fel is rajzolhatja a térképre.", + "es": "Una librería pública es un pequeño armario en la calle, una caja, una vieja cabina telefónica o algún otro objeto donde se guardan libros. Todo el mundo puede colocar o coger un libro. Este mapa pretende recoger todas estas librerías. Puedes descubrir nuevas librerías cercanas y, con una cuenta gratuita de OpenStreetMap, añadir rápidamente tus librerías favoritas.", + "da": "Et offentligt bogskab er et lille skab, en kasse, en gammel telefonboks eller andre steder, hvor bøger opbevares. Alle kan lægge eller tage en bog. Dette kort har til formål at samle alle disse bogskabe. Du kan opdage nye bogkasser i nærheden og med en gratis OpenStreetMap-konto hurtigt tilføje dine yndlingsbogkasser." }, "icon": "./assets/themes/bookcases/bookcase.svg", "startLat": 0, diff --git a/assets/themes/buurtnatuur/buurtnatuur.json b/assets/themes/buurtnatuur/buurtnatuur.json index 991654c461..b9c9bba168 100644 --- a/assets/themes/buurtnatuur/buurtnatuur.json +++ b/assets/themes/buurtnatuur/buurtnatuur.json @@ -78,7 +78,7 @@ "fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen" ], "title": { - "nl": "Natuurreservaat" + "nl": "een natuurreservaat" }, "description": { "nl": "Voeg een ontbrekend, erkend natuurreservaat toe, bv. een gebied dat beheerd wordt door het ANB of natuurpunt" @@ -198,7 +198,7 @@ "fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen" ], "title": { - "nl": "Park" + "nl": "een park" }, "description": { "nl": "Voeg een ontbrekend park toe" @@ -306,7 +306,7 @@ "fixme=Toegevoegd met MapComplete, geometry nog uit te tekenen" ], "title": { - "nl": "Bos" + "nl": "een bos" }, "description": { "nl": "Voeg een ontbrekend bos toe aan de kaart" @@ -504,9 +504,9 @@ ] }, "then": { - "nl": "Dit gebied wordt beheerd door Natuurpunt", - "icon": "./assets/themes/buurtnatuur/Natuurpunt.jpg" - } + "nl": "Dit gebied wordt beheerd door Natuurpunt" + }, + "icon": "./assets/themes/buurtnatuur/Natuurpunt.jpg" }, { "if": { @@ -515,9 +515,9 @@ ] }, "then": { - "nl": "Dit gebied wordt beheerd door {operator}", - "icon": "./assets/themes/buurtnatuur/Natuurpunt.jpg" + "nl": "Dit gebied wordt beheerd door {operator}" }, + "icon": "./assets/themes/buurtnatuur/Natuurpunt.jpg", "hideInAnswer": true }, { @@ -527,9 +527,9 @@ ] }, "then": { - "nl": "Dit gebied wordt beheerd door het Agentschap Natuur en Bos", - "icon": "./assets/themes/buurtnatuur/ANB.jpg" - } + "nl": "Dit gebied wordt beheerd door het Agentschap Natuur en Bos" + }, + "icon": "./assets/themes/buurtnatuur/ANB.jpg" }, { "if": { @@ -538,16 +538,9 @@ ] }, "then": "Beheer door een privépersoon", - "hideInAnswer": true - }, - { - "if": { - "and": [ - "operator:type=private", - "operator=" - ] - }, - "then": "Beheer door een privépersoon" + "addExtraTags": [ + "operator=" + ] } ], "condition": { diff --git a/assets/themes/cafes_and_pubs/cafes_and_pubs.json b/assets/themes/cafes_and_pubs/cafes_and_pubs.json index 92256e06a7..2d44d22378 100644 --- a/assets/themes/cafes_and_pubs/cafes_and_pubs.json +++ b/assets/themes/cafes_and_pubs/cafes_and_pubs.json @@ -9,11 +9,20 @@ "id": "Kafe dan pub", "zh_Hant": "咖啡廳與酒吧", "ru": "Кафе и пабы", - "hu": "Kávézók és kocsmák" + "hu": "Kávézók és kocsmák", + "ca": "Cafés i bars", + "es": "Cafeterías y pubs", + "fr": "Cafés et pubs", + "da": "Caféer og pubber" }, "description": { "en": "Pubs and bars", - "nl": "Cafés, kroegen en drinkgelegenheden" + "nl": "Cafés, kroegen en drinkgelegenheden", + "de": "Kneipen und Bars", + "ca": "Bars i pubs", + "es": "Pubs y bares", + "fr": "Bars et pubs", + "da": "Pubber og barer" }, "maintainer": "", "icon": "./assets/layers/cafe_pub/pub.svg", diff --git a/assets/themes/campersite/campersite.json b/assets/themes/campersite/campersite.json index bc792011e4..d7cd36aeec 100644 --- a/assets/themes/campersite/campersite.json +++ b/assets/themes/campersite/campersite.json @@ -6,11 +6,12 @@ "it": "Aree camper", "ru": "Кемпинги", "ja": "キャンプサイト", - "fr": "Campings", + "fr": "Sites pour camping-cars", "zh_Hant": "露營地點", "pt_BR": "Locais de acampamento", "de": "Wohnmobilstellplätze", - "hu": "Lakóautós megállóhelyek" + "hu": "Lakóautós megállóhelyek", + "ca": "Llocs d'acampada" }, "shortDescription": { "en": "Find sites to spend the night with your camper", @@ -32,8 +33,9 @@ "zh_Hant": "這個網站收集所有官方露營地點,以及那邊能排放廢水。你可以加上詳細的服務項目與價格,加上圖片以及評價。這是網站與網路 app,資料則是存在開放街圖,因此會永遠免費,而且可以被所有 app 再利用。", "nl": "Deze website verzamelt en toont alle officiële plaatsen waar een camper mag overnachten en afvalwater kan lozen. Ook jij kan extra gegevens toevoegen, zoals welke services er geboden worden en hoeveel dit kot, ook afbeeldingen en reviews kan je toevoegen. De data wordt op OpenStreetMap opgeslagen en is dus altijd gratis te hergebruiken, ook door andere applicaties.", "fr": "Ce site collecte les zones de camping officielles ainsi que les aires de vidange. Il est possible d’ajouter des détails à propos des services proposés ainsi que leurs coûts. Ajoutez vos images et avis. C’est un site et une application. Les données sont stockées sur OpenStreetMap, elles seront toujours gratuites et peuvent être réutilisées par n’importe quelle application.", - "de": "Auf dieser Seite finden Sie alle offiziellen Wohnmobilstellplätze und Orte zur Entsorgung von Schmutzwasser. Sie können Details über die angebotenen Dienstleistungen und die Kosten hinzufügen. Fügen Sie Bilder und Bewertungen hinzu. Dies ist eine Webseite und eine Webapp. Die Daten werden in OpenStreetMap gespeichert, so dass sie für immer kostenlos sind und von jeder App weiterverwendet werden können.", - "hu": "Ez az oldal az összes olyan hivatalos lakóautós megállóhelyet és helyet gyűjti össze, ahol szürke és fekete szennyvizet lehet üríteni. Hozzáadhat részleteket a nyújtott szolgáltatásokról és a költségekről, valamint képeket és értékeléseket. Ez egyszerre egy weboldal és egy webes alkalmazás. Az adatokat az OpenStreetMapen tároljuk, így mindig ingyenesek lesznek, és bármelyik alkalmazás újra felhasználhatja őket." + "de": "Eine Karte für offizielle Wohnmobilstellplätze und Orte zur Entsorgung von Schmutzwasser. Sie können Details über die angebotenen Dienstleistungen und die Kosten hinzufügen, oder Bilder und Bewertungen ergänzen. Dies ist eine Webseite und eine Webapp. Die Daten werden in OpenStreetMap gespeichert, so dass sie für immer kostenlos sind und von jeder App weiterverwendet werden können.", + "hu": "Ez az oldal az összes olyan hivatalos lakóautós megállóhelyet és helyet gyűjti össze, ahol szürke és fekete szennyvizet lehet üríteni. Hozzáadhat részleteket a nyújtott szolgáltatásokról és a költségekről, valamint képeket és értékeléseket. Ez egyszerre egy weboldal és egy webes alkalmazás. Az adatokat az OpenStreetMapen tároljuk, így mindig ingyenesek lesznek, és bármelyik alkalmazás újra felhasználhatja őket.", + "es": "Este sitio recoge todos los lugares oficiales de parada de caravanas y los lugares donde se pueden verter las aguas grises y negras. Puedes añadir detalles sobre los servicios prestados y el coste. Añade fotos y reseñas. Este es un sitio web y una aplicación web. Los datos se almacenan en OpenStreetMap, por lo que serán gratuitos para siempre y podrán ser reutilizados por cualquier aplicación." }, "maintainer": "joost schouppe", "icon": "./assets/themes/campersite/caravan.svg", @@ -57,7 +59,9 @@ "pt_BR": "Locais de acampamento", "de": "Wohnmobilstellplätze", "hu": "Lakóautós megállóhely", - "id": "Tempat camping" + "id": "Tempat camping", + "ca": "Llocs d'acampada", + "es": "Sitios de Acampada" }, "minzoom": 10, "source": { @@ -74,7 +78,7 @@ "it": "Area camper {name}", "ru": "Место для кемпинга {name}", "ja": "キャンプサイト {name}", - "fr": "Camping {name}", + "fr": "Site pour camping-cars {name}", "zh_Hant": "露營地 {name}", "nl": "Camperplaats {name}", "pt_BR": "Local de acampamento {name}", @@ -93,7 +97,7 @@ "it": "Area camper senza nome", "ru": "Место для кемпинга без названия", "ja": "無名のキャンプサイト", - "fr": "Camping sans nom", + "fr": "Site pour camping-cars sans nom", "zh_Hant": "沒有名稱的露營地", "nl": "Camper site", "pt_BR": "Locais de acampamento sem nome", @@ -113,7 +117,10 @@ "pt_BR": "Locais de acampamento", "de": "Wohnmobilstellplätze", "hu": "Lakóautós megállóhelyek", - "id": "Tempat camping" + "id": "Tempat camping", + "ca": "llocs d'acampada", + "es": "Sitios de acampada", + "da": "autocamperpladser" }, "tagRenderings": [ "images", @@ -128,7 +135,9 @@ "nl": "Deze plaats heet {name}", "pt_BR": "Este lugar é chamado de {name}", "de": "Dieser Ort heißt {name}", - "id": "Tempat ini disebut {name}" + "id": "Tempat ini disebut {name}", + "es": "Este lugar se llama {name}", + "da": "Dette sted hedder {name}" }, "question": { "en": "What is this place called?", @@ -140,7 +149,9 @@ "zh_Hant": "這個地方叫做什麼?", "nl": "Wat is de naam van deze plaats?", "pt_BR": "Qual o nome deste lugar?", - "de": "Wie heißt dieser Ort?" + "de": "Wie heißt dieser Ort?", + "es": "¿Cómo se llama este lugar?", + "da": "Hvad hedder dette sted?" }, "freeform": { "key": "name" @@ -158,7 +169,8 @@ "zh_Hant": "這個地方收費嗎?", "nl": "Moet men betalen om deze camperplaats te gebruiken?", "pt_BR": "Este lugar cobra alguma taxa?", - "de": "Wird hier eine Gebühr erhoben?" + "de": "Wird hier eine Gebühr erhoben?", + "es": "¿Este lugar cobra una tarifa?" }, "mappings": [ { @@ -177,7 +189,9 @@ "fr": "L’utilisation est payante", "pt_BR": "Você precisa pagar para usar", "de": "Sie müssen für die Nutzung bezahlen", - "id": "Anda perlu membayar untuk menggunakannya" + "id": "Anda perlu membayar untuk menggunakannya", + "es": "Necesitas pagar por su uso", + "da": "Du skal betale for brug" } }, { @@ -198,13 +212,13 @@ "zh_Hant": "可以免費使用", "nl": "Kan gratis gebruikt worden", "pt_BR": "Pode ser usado de graça", - "de": "Nutzung kostenlos" - } - }, - { - "if": "fee=no", - "then": "Can be used for free", - "hideInAnswer": true + "de": "Nutzung kostenlos", + "es": "Se puede usar de manera gratuita", + "da": "Kan bruges gratis" + }, + "addExtraTags": [ + "charge=" + ] } ] }, @@ -219,7 +233,9 @@ "nl": "Deze plaats vraagt {charge}", "fr": "Ce site fait payer {charge}", "pt_BR": "Este lugar cobra {charge}", - "de": "Die Gebühr beträgt {charge}" + "de": "Die Gebühr beträgt {charge}", + "es": "Este lugar cobra {charge}", + "da": "Dette sted koster {charge}" }, "question": { "en": "How much does this place charge?", @@ -231,7 +247,9 @@ "zh_Hant": "這個地方收多少費用?", "nl": "Hoeveel kost deze plaats?", "pt_BR": "Quanto este lugar cobra?", - "de": "Wie hoch ist die Gebühr an diesem Ort?" + "de": "Wie hoch sind die Gebühren hier?", + "es": "¿Cuánto cobra este lugar?", + "da": "Hvor meget koster dette sted?" }, "freeform": { "key": "charge" @@ -254,7 +272,8 @@ "fr": "Ce site possède-t’il un lieu de vidange ?", "pt_BR": "Este local tem uma estação de aterro sanitário?", "de": "Hat dieser Ort eine sanitäre Entsorgungsstation?", - "id": "Apakah tempat ini memiliki tempat pembuangan sanitasi?" + "id": "Apakah tempat ini memiliki tempat pembuangan sanitasi?", + "es": "¿Este lugar tiene un vertedero sanitario?" }, "mappings": [ { @@ -272,7 +291,8 @@ "zh_Hant": "這個地方有衛生設施", "pt_BR": "Este local tem uma estação de aterro sanitário", "de": "Dieser Ort hat eine sanitäre Entsorgungsstation", - "id": "Tempat ini memiliki tempat pembuangan sanitasi" + "id": "Tempat ini memiliki tempat pembuangan sanitasi", + "es": "Este lugar tiene un vertedero sanitario" } }, { @@ -290,7 +310,8 @@ "fr": "Ce site ne possède pas de lieu de vidange", "pt_BR": "Este local não tem uma estação de aterro sanitário", "de": "Dieser Ort hat keine sanitäre Entsorgungsstation", - "id": "Tempat ini tidak memiliki tempat pembuangan sampah sanitasi" + "id": "Tempat ini tidak memiliki tempat pembuangan sampah sanitasi", + "es": "Este lugar no tiene vertedero sanitario" } } ] @@ -305,7 +326,9 @@ "fr": "{capacity} personnes peuvent utiliser cet espace en même temps", "pt_BR": "{capacity} campistas podem usar este lugar ao mesmo tempo", "de": "{capacity} Wohnmobile können diesen Platz gleichzeitig nutzen", - "nl": "{capacity} campers kunnen deze plaats tegelijk gebruiken" + "nl": "{capacity} campers kunnen deze plaats tegelijk gebruiken", + "es": "{capacity} los campistas pueden utilizar este lugar al mismo tiempo", + "da": "{capacity} campister kan bruge dette sted på samme tid" }, "question": { "en": "How many campers can stay here? (skip if there is no obvious number of spaces or allowed vehicles)", @@ -316,7 +339,9 @@ "fr": "Combien de personnes peuvent camper ici ? (Passez s’il n’y a pas de places délimitées)", "pt_BR": "Quantos campistas podem ficar aqui? (pule se não houver um número óbvio de vagas ou veículos permitidos)", "de": "Wie viele Wohnmobile können hier parken? (Überspringen, wenn es keine offensichtliche Anzahl von Stellplätzen oder erlaubten Fahrzeugen gibt)", - "nl": "Hoeveel campers kunnen hier overnachten? (sla dit over als er geen duidelijk aantal plaatsen of aangeduid maximum is)" + "nl": "Hoeveel campers kunnen hier overnachten? (sla dit over als er geen duidelijk aantal plaatsen of aangeduid maximum is)", + "es": "¿Cuántos campistas pueden alojarse aquí? (omitir si no hay un número evidente de plazas o vehículos permitidos)", + "da": "Hvor mange campister kan bo her? (spring over, hvis der ikke er noget åbenlyst antal pladser eller tilladte køretøjer)" }, "freeform": { "key": "capacity", @@ -336,7 +361,9 @@ "zh_Hant": "這個地方有提網路連線嗎?", "pt_BR": "Este lugar fornece acesso a internet?", "de": "Ist an diesem Ort ein Internetzugang vorhanden?", - "nl": "Biedt deze plaats internettoegang?" + "nl": "Biedt deze plaats internettoegang?", + "es": "¿Este lugar tiene acceso a internet?", + "da": "Er der internetadgang på dette sted?" }, "mappings": [ { @@ -355,7 +382,10 @@ "fr": "Il y a un accès internet", "pt_BR": "Há acesso à internet", "de": "Internetzugang ist vorhanden", - "nl": "Er is internettoegang" + "nl": "Er is internettoegang", + "ca": "Hi ha accés a internet", + "es": "Hay acceso a internet", + "da": "Der er internetadgang" } }, { @@ -375,7 +405,9 @@ "fr": "Il y a un accès internet", "pt_BR": "Há acesso à Internet", "de": "Internetzugang ist vorhanden", - "nl": "Er is internettoegang" + "nl": "Er is internettoegang", + "es": "Hay acceso a internet", + "da": "Der er internetadgang" }, "hideInAnswer": true }, @@ -395,7 +427,9 @@ "fr": "Il n’y a pas d’accès internet", "pt_BR": "Não há acesso à internet", "de": "Kein Internetzugang vorhanden", - "nl": "Er is geen internettoegang" + "nl": "Er is geen internettoegang", + "es": "No hay acceso a internet", + "da": "Der er ingen internetadgang" } } ] @@ -410,7 +444,10 @@ "zh_Hant": "你需要為網路連線付費嗎?", "fr": "L’accès internet est-il payant ?", "pt_BR": "Você tem que pagar pelo acesso à internet?", - "de": "Ist der Internetzugang gebührenpflichtig?" + "de": "Ist der Internetzugang gebührenpflichtig?", + "nl": "Moet je betalen voor internettoegang?", + "es": "¿Tienes que pagar por el acceso a internet?", + "da": "Skal man betale for internetadgang?" }, "mappings": [ { @@ -427,7 +464,10 @@ "zh_Hant": "你需要額外付費來使用網路連線", "fr": "L’accès internet est en supplément", "pt_BR": "Você precisa pagar um extra pelo acesso à internet", - "de": "Der Internetzugang ist gebührenpflichtig" + "de": "Der Internetzugang ist gebührenpflichtig", + "nl": "Je moet extra betalen voor internettoegang", + "es": "Tienes que pagar a mayores por el acceso a internet", + "da": "Man skal betale ekstra for internetadgang" } }, { @@ -444,7 +484,10 @@ "zh_Hant": "你不需要額外付費來使用網路連線", "fr": "L’accès internet est inclus", "pt_BR": "Você não precisa pagar um extra pelo acesso à internet", - "de": "Der Internetzugang ist kostenlos" + "de": "Der Internetzugang ist kostenlos", + "nl": "Je hoeft niet extra te betalen voor internettoegang", + "es": "No tienes que pagar a mayores por el acceso a internet", + "da": "Man behøver ikke at betale ekstra for internetadgang" } } ], @@ -467,7 +510,8 @@ "pt_BR": "Este lugar tem banheiros?", "de": "Verfügt dieser Ort über Toiletten?", "nl": "Heeft deze plaats toiletten?", - "hu": "Van-e itt WC?" + "hu": "Van-e itt WC?", + "da": "Har dette sted toiletter?" }, "mappings": [ { @@ -488,7 +532,9 @@ "pt_BR": "Este lugar tem banheiros", "de": "Dieser Ort verfügt über Toiletten", "nl": "Deze plaats heeft toiletten", - "hu": "Itt van WC" + "hu": "Itt van WC", + "es": "Este lugar cuenta con sanitarios", + "da": "Dette sted har toiletter" } }, { @@ -509,7 +555,9 @@ "pt_BR": "Este lugar não tem banheiros", "de": "Dieser Ort verfügt nicht über Toiletten", "nl": "Deze plaats heeft geen toiletten", - "hu": "Itt nincs WC" + "hu": "Itt nincs WC", + "es": "Este lugar no tiene sanitarios", + "da": "Dette sted har ikke toiletter" } } ] @@ -557,7 +605,10 @@ "it": "Questo luogo offre spazi per il noleggio a lungo termine?", "fr": "Ce site permet-il la location longue durée ?", "pt_BR": "Este lugar oferece vagas para aluguel a longo prazo?", - "de": "Gibt es a diesem Ort Plätze für Dauercamper?" + "de": "Gibt es a diesem Ort Plätze für Dauercamper?", + "es": "¿Este lugar ofrece huecos para alquilar a largo plazo?", + "da": "Tilbyder dette sted pladser til langtidsleje?", + "nl": "Kan men hier plekken huren voor langere termijn?" }, "mappings": [ { @@ -567,14 +618,16 @@ ] }, "then": { - "en": "Yes, there are some spots for long term rental, but you can also stay on a daily basis", + "en": "There are some spots for long term rental, but you can also stay on a daily basis", "ru": "Да, здесь есть места для долгосрочной аренды, но вы можете остановиться и на сутки", "ja": "はい、長期レンタルのスポットもあり、日常的に滞在することもできます", "zh_Hant": "有,這個地方有提供長期租用,但你也可以用天計算費用", "it": "Sì, ci sono spazi per il noleggio a lungo termine, ma puoi anche pagare per singola giornata", "fr": "Oui, mais il est possible d’y passer seulement une nuit", "pt_BR": "Sim, há alguns pontos para aluguel a longo prazo, mas você também pode ficar em uma base diária", - "de": "Ja, es gibt einige Plätze für Langzeitmieten, aber Sie können auch tageweise bleiben" + "de": "Ja, es gibt einige Plätze für Langzeitmieten, aber Sie können auch tageweise bleiben", + "es": "Sí, hay algunas plazas de alquiler a largo plazo, pero también puedes alojarte por días", + "nl": "Er zijn enkele plaatsen om op lange termijn te huren, maar je kan ook enkele dagen blijven" } }, { @@ -584,14 +637,17 @@ ] }, "then": { - "en": "No, there are no permanent guests here", + "en": "There are no permanent guests here", "ru": "Нет, здесь нет постоянных гостей", "ja": "いいえ、ここには長期滞在者はいません", "zh_Hant": "沒有,這裡沒有永久的客戶", "it": "No, non ci sono ospiti a lungo termine qui", "fr": "Non, il n’y a pas de résidents permanents", "pt_BR": "Não, não há hóspedes permanentes aqui", - "de": "Nein, hier gibt es keine Dauergäste" + "de": "Nein, hier gibt es keine Dauergäste", + "es": "No, no hay huéspedes permanentes aquí", + "da": "Nej, der er ingen faste gæster her", + "nl": "Hier wonen geen permanente gasten" } }, { @@ -607,7 +663,10 @@ "zh_Hant": "如果有長期租用合約才有可能待下來(如果你選擇這個地方則會在這份地圖消失)", "it": "Puoi soggiornare qui solo se hai un contratto a lungo termine (se selezioni questa opzione, questo luogo sarà rimosso da questa mappa)", "fr": "C’est possible sous contrat (Cette option fera disparaître le site de la carte)", - "de": "Es sind nur Plätze für Dauercamper vorhanden (wenn Sie diese Antwort auswählen, wird dieser Ort wird von der Karte verschwinden)" + "de": "Es sind nur Plätze für Dauercamper vorhanden (wenn Sie diese Antwort auswählen, wird dieser Ort wird von der Karte verschwinden)", + "es": "Solo es posible permanecer aquí si tienes un contrato a largo plazo (este lugar desaparecerá de este mapa si escoges esto)", + "da": "Det er kun muligt at bo her, hvis du har en langtidskontrakt (dette sted forsvinder fra kortet, hvis du vælger dette)", + "nl": "Hier kan je enkel verblijven met een langetermijnscontract (deze plaats zal verborgen worden van deze kaart als je dit kiest)" } } ] @@ -623,7 +682,9 @@ "fr": "Plus de détails à propos du site : {description}", "pt_BR": "Mais detalhes sobre este lugar: {description}", "de": "Mehr Details über diesen Ort: {description}", - "nl": "Meer details over deze plaats: {description}" + "nl": "Meer details over deze plaats: {description}", + "es": "Más detalles sobre este lugar:{description}", + "da": "Flere oplysninger om dette sted: {description}" }, "question": { "en": "Would you like to add a general description of this place? (Do not repeat information previously asked or shown above. Please keep it objective - opinions go into the reviews)", @@ -633,7 +694,8 @@ "it": "Desideri aggiungere una descrizione del luogo? (Non vanno ripetute informazioni già richieste e mostrate precedentemente. Si prega di attenersi a dati oggettivi - le opinioni vanno nelle recensioni)", "fr": "Souhaitez-vous ajouter une description générale du lieu ? (Ne pas répéter les informations précédentes et rester neutre, les opinions vont dans les avis)", "de": "Möchten Sie eine allgemeine Beschreibung für diesen Ort hinzufügen? (Bitte wiederholen Sie keine Informationen, die Sie bereits zuvor angegeben haben. Bitte bleiben Sie objektiv - Meinungen gehen in die Bewertungen ein)", - "nl": "Wil je graag een algemene beschrijving toevoegen van deze plaats? (Herhaal hier niet de antwoorden op de vragen die reeds gesteld zijn. Hou het objectief - je kan je mening geven via een review)" + "nl": "Wil je graag een algemene beschrijving toevoegen van deze plaats? (Herhaal hier niet de antwoorden op de vragen die reeds gesteld zijn. Hou het objectief - je kan je mening geven via een review)", + "es": "¿Te gustaría añadir una descripción general de este lugar? (No repitas información previamente preguntada o mostrada arriba. Por favor mantenla objetiva - las opiniones van en la de opiniones)" }, "freeform": { "key": "description", @@ -650,27 +712,31 @@ "tourism=caravan_site" ], "title": { - "en": "camper site", + "en": "a camper site", "ru": "площадка для кемпинга", "ja": "キャンプサイト", "zh_Hant": "露營地", - "it": "luogo di campeggio", - "fr": "Aire de camping", - "pt_BR": "local de acampamento", - "de": "Wohnmobilstellplatz", - "nl": "camperplaats", - "hu": "lakóautós megállóhely" + "it": "una luogo di campeggio", + "fr": "une aire de camping", + "pt_BR": "uma local de acampamento", + "de": "eine wohnmobilstellplatz", + "nl": "een camperplaats", + "hu": "lakóautós megállóhely", + "ca": "un lloc d'acampada", + "es": "Un camping", + "da": "en autocamperplads" }, "description": { "en": "Add a new official camper site. These are designated places to stay overnight with your camper. They might look like a real camping or just look like a parking. They might not be signposted at all, but just be defined in a municipal decision. A regular parking intended for campers where it is not expected to spend the night, is -not- a camper site ", "ru": "Добавьте новую официальную площадку для кемпинга. Это специально отведённые места для ночлега с автофургоном. Они могут выглядеть как настоящий кемпинг или просто выглядеть как парковка. Они не могут быть обозначены вообще, а просто быть определены в муниципальном решении. Обычная парковка, предназначенная для отдыхающих, где не ожидается, что они проведут ночь это -НЕ- площадка для кемпинга ", "ja": "新しい公式キャンプサイトを追加します。お客様のキャンピングカーで一泊する指定の場所です。本物のキャンプのように見えるかもしれないし、単なる駐車場のように見えるかもしれない。それらは全く署名されていないかもしれませんが、自治体の決定で定義されているだけです。夜を過ごすことが予想されないキャンパー向けの通常の駐車場は、キャンプサイトではない ", "it": "Aggiungi una nuova area di sosta ufficiale per camper. Si tratta di aree destinate alla sosta notturna dei camper. Potrebbe trattarsi di luoghi di campeggio o semplici parcheggi. Potrebbero anche non essere segnalati sul posto, ma semplicemente indicati in una delibera comunale. Un parcheggio destinato ai camper in cui non è però consentito trascorrere la notte -non- va considerato un'area di sosta per camper. ", - "fr": "Ajouter une nouvelle aire de camping officielle, destinée à y passer la nuit avec un camping-car. Elle ne nécessite pas d’infrastructures particulières et peut être simplement désignée sous arrêté municipal, un simple parking ne suffit pas à rentrer dans cette catégorie ", + "fr": "Ajouter une nouvelle aire officielle pour campings-cars, destinée à y passer la nuit avec un camping-car. Elle ne nécessite pas d’infrastructures particulières et peut être simplement désignée sous arrêté municipal, un simple parking pour camping-cars non destiné au stationnement de nuit ne rentre pas dans cette catégorie ", "de": "Fügen Sie einen neuen offiziellen Wohnmobilstellplatz hinzu. Dies sind ausgewiesene Plätze, an denen Sie in Ihrem Wohnmobil übernachten können. Sie können wie ein richtiger Campingplatz oder nur wie ein Parkplatz aussehen. Möglicherweise sind sie gar nicht ausgeschildert, sondern nur in einem Gemeindebeschluss festgelegt. Ein normaler Parkplatz für Wohnmobile, auf dem übernachten nicht zulässig ist, ist kein Wohnmobilstellplatz. ", "nl": "Voeg een nieuwe officiële camperplaats toe. Dit zijn speciaal aangeduide plaatsen waar het toegestaan is om te overnachten met een camper. Ze kunnen er uitzien als een parking, of soms eerder als een camping. Soms staan ze niet ter plaatse aangeduid, maar heeft de gemeente wel degelijk beslist dat dit een camperplaats is. Een parking voor campers waar je niet mag overnachten is géén camperplaats. ", "zh_Hant": "新增正式露營地點,通常是設計給過夜的露營者的地點。看起來像是真的露營地或是一般的停車場,而且也許沒有任何指標,但在城鎮被定議地點。如果一般給露營者的停車場並不是用來過夜,則不是露營地點 ", - "hu": "Új hivatalos lakóautóhely hozzáadása. Ez arra vannak kijelölve, hogy lakóautóval ott éjszakázzunk. Lehet, hogy úgy néz ki, mint egy igazi kemping, de az is lehet, hogy csak olyan, mint egy parkoló. Előfordulhat, hogy egyáltalán nem jelzik őket, hanem csak egy önkormányzati határozatban vannak kijelölve. A lakóautósoknak szánt olyan hagyományos parkolók, ahol nem várhatóan nem fognak éjszakázni, -nem minősül- lakóautóhelynek. " + "hu": "Új hivatalos lakóautóhely hozzáadása. Ez arra vannak kijelölve, hogy lakóautóval ott éjszakázzunk. Lehet, hogy úgy néz ki, mint egy igazi kemping, de az is lehet, hogy csak olyan, mint egy parkoló. Előfordulhat, hogy egyáltalán nem jelzik őket, hanem csak egy önkormányzati határozatban vannak kijelölve. A lakóautósoknak szánt olyan hagyományos parkolók, ahol nem várhatóan nem fognak éjszakázni, -nem minősül- lakóautóhelynek. ", + "es": "Añade un nuevo sitio de acampada oficial. Son lugares designados para pasar la noche con tu caravana. Pueden parecerse a un camping real o simplemente a un aparcamiento. Puede que no estén señalizados en absoluto, sino que simplemente estén definidos en una decisión municipal. Un aparcamiento normal destinado a los campistas en el que no se espera que se pase la noche, no es un camping. " } } ], @@ -714,7 +780,7 @@ "ru": "Места для слива отходов из туалетных резервуаров", "ja": "衛生ゴミ捨て場", "it": "Luoghi di sversamento delle acque reflue", - "fr": "Site de vidange", + "fr": "Sites de vidange sanitaire", "pt_BR": "Estações de despejo sanitário", "de": "Sanitäre Entsorgungsstationen", "zh_Hant": "垃圾處理站", @@ -765,7 +831,7 @@ "ru": "Ассенизационные сливные станции", "ja": "衛生ゴミ捨て場", "it": "Luoghi di sversamento delle acque reflue", - "fr": "Site de vidange", + "fr": "Site de vidange sanitaire", "pt_BR": "Estações de despejo sanitário", "de": "Sanitäre Entsorgungsstationen", "zh_Hant": "垃圾處理站", @@ -1105,18 +1171,18 @@ "amenity=sanitary_dump_station" ], "title": { - "en": "sanitary dump station", + "en": "a sanitary dump station", "ja": "衛生ゴミ捨て場", - "it": "luogo di sversamento delle acque reflue", - "fr": "Site de vidange", - "de": "Sanitäre Entsorgungsstation", + "it": "una luogo di sversamento delle acque reflue", + "fr": "une site de vidange", + "de": "eine sanitäre entsorgungsstation", "zh_Hant": "垃圾丟棄站" }, "description": { "en": "Add a new sanitary dump station. This is a place where camper drivers can dump waste water or chemical toilet waste. Often there's also drinking water and electricity.", "ja": "新しい衛生ゴミ捨て場を追加します。ここは、キャンピングカーの運転手が排水や携帯トイレの廃棄物を捨てることができる場所です。飲料水や電気もあることが多いです。", "it": "Aggiungi un nuovo luogo di sversamento delle acque reflue. Si tratta di luoghi dove chi viaggia in camper può smaltire le acque grigie o le acque nere. Spesso forniscono anche acqua ed elettricità.", - "fr": "Ajouter un nouveau site de vidange. Un espace où évacuer ses eaux usées (grises et/ou noires) généralement alimenté en eau potable et électricité.", + "fr": "Ajouter un nouveau site de vidange. Un espace où évacuer ses eaux usées (grises et/ou noires). Généralement alimenté en eau potable et électricité.", "de": "Fügen Sie eine neue sanitäre Entsorgungsstation hinzu. Hier können Camper Abwasser oder chemischen Toilettenabfälle entsorgen. Oft gibt es auch Trinkwasser und Strom.", "zh_Hant": "新增垃圾站,這通常是提供露營駕駛丟棄廢水與化學性廁所廢水的地方,也會有飲用水與電力。", "hu": "Új egészségügyihulldék-lerakó hozzáadása. Ez egy olyan hely, ahol a lakókocsisok a szennyvizet vagy a vegyi WC hulladékát kiüríthetik. Gyakran van ivóvíz és áram is." diff --git a/assets/themes/charging_stations/charging_stations.json b/assets/themes/charging_stations/charging_stations.json index 6c0dbdc86d..89014e3675 100644 --- a/assets/themes/charging_stations/charging_stations.json +++ b/assets/themes/charging_stations/charging_stations.json @@ -3,25 +3,28 @@ "title": { "en": "Charging stations", "id": "Stasiun pengisian daya", - "it": "Stazioni di ricarica", + "it": "Postazione di ricarica", "ja": "充電ステーション", "zh_Hant": "充電站", "nl": "Oplaadpunten", "de": "Ladestationen", "nb_NO": "Ladestasjoner", "ru": "Зарядные станции", - "hu": "Elektromos töltőpontok" + "hu": "Elektromos töltőpontok", + "ca": "Estacions de càrrega", + "fr": "Points de recharge" }, "shortDescription": { "en": "A worldwide map of charging stations", - "it": "Una mappa mondiale delle stazioni di ricarica", + "it": "Una mappa mondiale di postazioni di ricarica", "ja": "充電ステーションの世界地図", "zh_Hant": "全世界的充電站地圖", "nl": "Een wereldwijde kaart van oplaadpunten", "de": "Eine weltweite Karte mit Ladestationen", "nb_NO": "Et verdensomspennende kart over ladestasjoner", "ru": "Карта зарядных станций по всему миру", - "hu": "Elektromos töltőpontok világtérképe" + "hu": "Elektromos töltőpontok világtérképe", + "fr": "Une carte mondiale des points de recharge" }, "description": { "en": "On this open map, one can find and mark information about charging stations", @@ -29,8 +32,9 @@ "ja": "このオープンマップでは充電ステーションに関する情報を見つけてマークすることができます", "ru": "На этой карте вы можно найти и отметить информацию о зарядных станциях", "zh_Hant": "在這份開放地圖上,你可以尋找與標示充電站的資訊", - "de": "Auf dieser freien Karte kann man Informationen über Ladestationen finden und hinzufügen", - "hu": "Ezen a térképen a elektromos töltőpontokról szóló információkat lehet megtalálni és megadni" + "de": "Auf dieser freien Karte kann man Informationen zu Ladestationen finden und hinzufügen", + "hu": "Ezen a térképen a elektromos töltőpontokról szóló információkat lehet megtalálni és megadni", + "fr": "Sur cette carte l’on trouve et ajoute des informations sur les points de recharge" }, "maintainer": "", "icon": "./assets/themes/charging_stations/logo.svg", diff --git a/assets/themes/climbing/climbing.css b/assets/themes/climbing/climbing.css new file mode 100644 index 0000000000..3acbe90412 --- /dev/null +++ b/assets/themes/climbing/climbing.css @@ -0,0 +1,48 @@ +/* a few extra colours, mostly colours difficulties. Debuggable in css-test.html */ + +.climbing- { + /*Fallback in case of unrecognized difficulty*/ + background: white; + border: 1px solid black; + + background: repeating-linear-gradient( -45deg, #a7b9ae, #a7b9ae 10px, #f7f7f7 10px, #f7f7f7 20px ); + +} + +.climbing-2 { + background: #a2ff00; +} + +.climbing-3 { + background: yellow; +} + +.climbing-4 { + background: orange; +} + +.climbing-5 { + background: blue; + color: white; +} + +.climbing-6 { + background: red; + color: white; +} + +.climbing-7 { + background: #ef47ec; +} + +.climbing-8 { + background: black; + color: white; +} + +.climbing-9 { + background: white; + color: black; + border: 1px solid black; +} + diff --git a/assets/themes/climbing/climbing.json b/assets/themes/climbing/climbing.json index e93273ebf0..66a53b1820 100644 --- a/assets/themes/climbing/climbing.json +++ b/assets/themes/climbing/climbing.json @@ -10,7 +10,8 @@ "nb_NO": "Åpent klatrekart", "it": "Mappa aperta per le arrampicate", "fr": "Open Climbing Map", - "hu": "Mászótérkép" + "hu": "Mászótérkép", + "ca": "Open Climbing Map" }, "description": { "nl": "Op deze kaart vind je verschillende klimgelegenheden, zoals klimzalen, bolderzalen en klimmen in de natuur", @@ -26,11 +27,11 @@ "descriptionTail": { "nl": "De klimkaart is oorspronkelijk gemaakt door Christian Neumann op kletterspots.de.", "en": "The climbing map was originally made by Christian Neumann. Please get in touch if you have feedback or questions.

    The project uses data of the OpenStreetMap project.

    ", - "de": "

    kletterspots.de wird betrieben von Christian Neumann. Bitte melden Sie sich, wenn Sie Feedback oder Fragen haben.

    Das Projekt nutzt Daten des OpenStreetMap Projekts und basiert auf der freien Software MapComplete.

    ", + "de": "

    kletterspots.de wird betrieben von Christian Neumann. Bitte melden Sie sich, wenn Sie Feedback oder Fragen haben.

    Das Projekt nutzt OpenStreetMap Daten und basiert auf der freien Software MapComplete.

    ", "ru": "Создатель карты скалолазания — Christian Neumann. Пожалуйста, пишите если у вас есть отзыв или вопросы.

    Проект использует данные OpenStreetMap.

    ", "ja": "登山地図はもともと Christian Neumann によって作成されたものです。フィードバックや質問がありましたら、ご連絡ください。

    このプロジェクトでは、OpenStreetMapプロジェクトのデータを使用します。

    ", "zh_Hant": "攀爬地圖最初由 Christian Neumann 製作。如果你有回饋意見或問題請到Please 這邊反應

    這專案使用來自開放街圖專案的資料。

    ", - "fr": "La carte a été créée par Christian Neumann. Merci de le contacter pour des avis ou des questions.

    Ce projet utilise les données OpenStreetMap.

    ", + "fr": "La carte des sites d'escalade a été créée par Christian Neumann. Merci de le contacter pour des avis ou des questions.

    Ce projet utilise les données OpenStreetMap.

    ", "it": "La cartina di arrampicata è stata originariamente creata da Christian Neumann. Si prega di scrivere qua se si hanno commenti o domande da fare.

    Il progetto usa i dati del progetto OpenStreetMap.

    ", "hu": "A mászótérképet eredetileg Christian Neumann készítette. Ha észrevétele vagy kérdése van, kérjük, vele lépjen kapcsolatba.

    A projekt az OpenStreetMap adatait használja

    " }, @@ -41,1632 +42,234 @@ "startLon": 0, "startZoom": 1, "widenFactor": 1.5, + "customCss": "./assets/themes/climbing/climbing.css", "layers": [ { - "id": "climbing_club", - "name": { - "de": "Kletterverein", - "nl": "Klimclub", - "en": "Climbing club", - "ru": "Клуб скалолазания", - "ja": "クライミングクラブ", - "zh_Hant": "攀岩社團", - "nb_NO": "Klatreklubb", - "fr": "Club d’escalade", - "it": "Club di arrampicata", - "hu": "Mászóegyesület" - }, - "minzoom": 10, - "source": { - "osmTags": { - "or": [ - "club=climbing", - { - "and": [ - "sport=climbing", - { - "or": [ - "office~*", - "club~*" - ] - } - ] - } - ] - } - }, - "title": { - "render": { - "en": "Climbing club", - "nl": "Klimclub", - "de": "Kletterverein", - "ru": "Клуб скалолазания", - "ja": "クライミングクラブ", - "zh_Hant": "攀岩社團", - "nb_NO": "Klatreklubb", - "fr": "Club d’escalade", - "it": "Club di arrampicata" - }, - "mappings": [ - { - "if": "office~*", - "then": { - "nl": "Klimorganisatie", - "en": "Climbing NGO", - "de": "Kletter-Organisation", - "ja": "クライミングNGO", - "zh_Hant": "攀岩 NGO", - "fr": "Association d’escalade", - "it": "Associazione di arrampicata", - "hu": "Mászószervezet" - } - } - ] - }, - "description": { - "de": "Ein Kletterverein oder eine Organisation", - "nl": "Een klimclub of organisatie", - "en": "A climbing club or organisation", - "ja": "クライミングクラブや団体", - "zh_Hant": "攀岩社團或組織", - "nb_NO": "En klatreklubb eller organisasjoner", - "fr": "Club ou association d’escalade", - "it": "Un club o associazione di arrampacata", - "hu": "Mászóegyesület vagy -szervezet" - }, - "tagRenderings": [ - { - "render": { - "en": "{name}", - "nl": "{name}", - "de": "{name}", - "ca": "{name}", - "fr": "{name}", - "id": "{name}", - "ru": "{name}", - "ja": "{name}", - "zh_Hant": "{name}", - "it": "{name}", - "hu": "{name}" - }, - "question": { - "en": "What is the name of this climbing club or NGO?", - "de": "Wie lautet der Name dieses Vereins oder Organisation?", - "nl": "Wat is de naam van deze klimclub?", - "ja": "この登山クラブやNGOの名前は何ですか?", - "fr": "Quel est le nom du club ou de l’association ?", - "it": "Qual è il nome di questo club o associazione di arrampicata?", - "hu": "Mi a neve ennek a mászóegyesületnek vagy szervezetnek?" - }, - "freeform": { - "key": "name" - }, - "id": "climbing_club-name" - }, - { - "id": "minimap", - "render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }" - }, - "website", - "email", - "phone", - "opening_hours" + "builtin": [ + "climbing_club", + "climbing_gym", + "climbing_route", + "climbing_area", + "climbing_opportunity" ], - "presets": [ - { - "tags": [ - "club=sport", - "sport=climbing" - ], - "title": { - "de": "Kletterverein", - "en": "Climbing club", - "nl": "Klimclub", - "ja": "クライミングクラブ", - "nb_NO": "Klatreklubb", - "ru": "Клуб скалолазания", - "fr": "Club d’escalade", - "it": "Club di arrampicata", - "hu": "Mászóegyesület" - }, - "description": { - "de": "Ein Kletterverein", - "nl": "Een klimclub", - "en": "A climbing club", - "ja": "クライミングクラブ", - "nb_NO": "En klatreklubb", - "ru": "Клуб скалолазания", - "fr": "Un club d’escalade", - "it": "Un club di arrampicata", - "hu": "Egy mászóegyesület" - } + "override": { + "allowMove": { + "enableRelocation": false, + "enableImproveAccuracy": true }, - { - "tags": [ - "office=ngo", - "sport=climbing" - ], - "title": { - "de": "Eine Kletter-Organisation", - "en": "Climbing NGO", - "nl": "Een klimorganisatie", - "ja": "クライミングNGO", - "fr": "Association d’escalade", - "it": "Associazione di arrampicata", - "hu": "Mászószervezet" - }, - "description": { - "de": "Eine Organisation, welche sich mit dem Klettern beschäftigt", - "nl": "Een VZW die werkt rond klimmen", - "en": "An NGO working around climbing", - "ja": "登山に関わるNGO", - "fr": "Une association d’escalade", - "it": "Un’associazione che ha a che fare con l’arrampicata", - "hu": "Mászással foglalkozó civil szervezet" - } - } - ], - "mapRendering": [ - { - "icon": { - "render": "./assets/themes/climbing/club.svg" - }, - "iconBadges": [ - { - "if": "opening_hours~*", - "then": "isOpen" - } - ], - "iconSize": { - "render": "40,40,center" - }, - "location": [ - "point", - "centroid" - ] - } - ] - }, - { - "id": "climbing_gym", - "name": { - "de": "Kletterhallen", - "en": "Climbing gyms", - "nl": "Klimzalen", - "ja": "クライミングジム", - "fr": "Salle d’escalade", - "it": "Palestre di arrampicata" - }, - "minzoom": 10, - "source": { - "osmTags": { - "and": [ - "sport=climbing", - "leisure=sports_centre" - ] - } - }, - "title": { - "render": { - "nl": "Klimzaal", - "de": "Kletterhalle", - "en": "Climbing gym", - "ja": "クライミングジム", - "fr": "Salle d’escalade", - "it": "Palestra di arrampicata" - }, - "mappings": [ + "+titleIcons": [ { - "if": "name~*", - "then": { - "nl": "Klimzaal {name}", - "de": "Kletterhalle {name}", - "en": "Climbing gym {name}", - "ja": "クライミングジム{name}", - "fr": "Salle d’escalade {name}", - "it": "Palestra di arrampicata {name}" - } - } - ] - }, - "description": { - "de": "Eine Kletterhalle", - "en": "A climbing gym", - "ja": "クライミングジム", - "nl": "Een klimzaal", - "fr": "Une salle d’escalade", - "it": "Una palestra di arrampicata" - }, - "tagRenderings": [ - "images", - "questions", - { - "id": "minimap", - "render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }" - }, - { - "render": { - "en": "{name}", - "nl": "{name}", - "de": "{name}", - "ca": "{name}", - "fr": "{name}", - "id": "{name}", - "ru": "{name}", - "ja": "{name}", - "it": "{name}" + "render": "
    {climbing:length}m
    ", + "condition": "climbing:length~*" }, - "question": { - "en": "What is the name of this climbing gym?", - "nl": "Wat is de naam van dit Klimzaal?", - "de": "Wie heißt diese Kletterhalle?", - "ja": "このクライミングジムは何という名前ですか?", - "fr": "Quel est le nom de la salle d’escalade ?", - "it": "Qual è il nome di questa palestra di arrampicata?" - }, - "freeform": { - "key": "name" - }, - "id": "name" - }, - "website", - "phone", - "email", - "opening_hours", - "reviews" - ], - "mapRendering": [ - { - "icon": { - "render": "./assets/themes/climbing/climbing_gym.svg" - }, - "iconBadges": [ - { - "if": "opening_hours~*", - "then": "isOpen" - } - ], - "iconSize": { - "render": "40,40,center" - }, - "location": [ - "point", - "centroid" - ] - } - ] - }, - { - "id": "climbing_route", - "name": { - "en": "Climbing routes", - "de": "Kletterrouten", - "nl": "Klimroute", - "ja": "登坂ルート", - "nb_NO": "Klatreruter", - "fr": "Voies d’escalade", - "it": "Vie di arrampicata" - }, - "minzoom": 18, - "source": { - "osmTags": { - "and": [ - "climbing=route" - ] - } - }, - "title": { - "render": { - "de": "Kleterroute", - "en": "Climbing route", - "nl": "Klimroute", - "ja": "登坂ルート", - "nb_NO": "Klatrerute", - "it": "Via di arrampicata", - "fr": "Voie d’escalade" - }, - "mappings": [ { - "if": "name~*", - "then": { - "de": "Kleterroute {name}", - "en": "Climbing route {name}", - "nl": "Klimroute {name}", - "ja": "登坂ルート{name}", - "it": "Via di arrampicata {name}", - "fr": "Voie d’escalade {name}" - } - } - ] - }, - "tagRenderings": [ - "images", - "questions", - { - "id": "minimap", - "render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }" - }, - { - "render": { - "en": "{name}", - "nl": "{name}", - "de": "{name}", - "ca": "{name}", - "fr": "{name}", - "id": "{name}", - "ru": "{name}", - "ja": "{name}", - "it": "{name}", - "nb_NO": "{name}" - }, - "question": { - "en": "What is the name of this climbing route?", - "de": "Wie heißt diese Kletterroute?", - "nl": "Hoe heet deze klimroute?", - "ja": "この登坂ルートの名前は何ですか?", - "it": "Come si chiama questa via di arrampicata?", - "fr": "Quel est le nom de cette voie d’escalade ?", - "nb_NO": "Hva er navnet på denne klatreruten?" - }, - "freeform": { - "key": "name" - }, - "mappings": [ - { - "if": { - "and": [ - "noname=yes", - "name=" - ] + "mappings": [ + { + "if": "__bolts_max~*", + "then": "
    {__bolts_max}
    " }, - "then": { - "en": "This climbing route doesn't have a name", - "de": "Diese Kletterroute hat keinen Namen", - "nl": "Deze klimroute heeft geen naam", - "ja": "この登坂ルートには名前がありません", - "it": "Questa via di arrampicata non ha un nome", - "fr": "Cette voie n’a pas de nom", - "nb_NO": "Denne klatreruten har ikke noe navn" + { + "if": "climbing:bolted=yes", + "then": "" } - } - ], - "id": "Name" - }, - { - "question": { - "en": "How long is this climbing route (in meters)?", - "nl": "Hoe lang is deze klimroute (in meters)?", - "it": "Quanto è lunga questa via di arrampicata (in metri)?", - "fr": "Quelle est la longueur de cette voie (en mètres) ?", - "de": "Wie lang ist diese Kletterroute (in Metern)?", - "nb_NO": "Hvor mange meter er klatreruten?" - }, - "render": { - "de": "Diese Route ist {canonical(climbing:length)} lang", - "en": "This route is {canonical(climbing:length)} long", - "nl": "Deze klimroute is {canonical(climbing:length)} lang", - "ja": "このルート長は、 {canonical(climbing:length)} メーターです", - "nb_NO": "Denne ruten er {canonical(climbing:length)} lang", - "it": "Questo percorso è lungo {canonical(climbing:length)}", - "fr": "Cette voie fait {canonical(climbing:length)} de long" - }, - "freeform": { - "key": "climbing:length", - "type": "pnat" - }, - "id": "Length" - }, - { - "question": { - "en": "What is the grade of this climbing route according to the french/belgian system?", - "nl": "Hoe moeilijk is deze klimroute volgens het Franse/Belgische systeem?", - "it": "Qual è la difficoltà di questa via di arrampicata nel sistema francese/belga?", - "fr": "Quelle est la difficulté de cette voie selon le système franco-belge ?", - "de": "Wie hoch ist der Schwierigkeitsgrad dieser Kletterroute nach dem französisch/belgischen System?" - }, - "render": { - "de": "Die Schwierigkeit ist {climbing:grade:french} entsprechend des französisch/belgischen Systems", - "en": "The grade is {climbing:grade:french} according to the french/belgian system", - "nl": "De klimmoeilijkheid is {climbing:grade:french} volgens het Franse/Belgische systeem", - "ja": "フランス/ベルギーのランク評価システムによると、{climbing:grade:french}の困難度です", - "it": "Il grado di difficoltà è {climbing:grade:french} nel sistema francese/belga", - "fr": "Selon le système franco-belge, la difficulté de cette voie est de {climbing:grade:french}" - }, - "freeform": { - "key": "climbing:grade:french" - }, - "id": "Difficulty" - }, - { - "question": { - "en": "How many bolts does this route have before reaching the anchor?", - "fr": "Combien de prises cette voie possède avant d’atteindre la moulinette ?", - "de": "Wie viele Haken gibt es auf dieser Kletterroute bevor der Umlenker bzw. Standhaken erreicht ist?", - "it": "Quanti bulloni sono presenti in questo percorso prima di arrivare alla moulinette?" - }, - "render": { - "en": "This route has {climbing:bolts} bolts", - "fr": "Cette voie a {climbing:bolts} prises", - "de": "Diese Kletterroute hat {climbing:bolts} Haken", - "it": "Questo percorso ha {climbing:bolts} bulloni" - }, - "freeform": { - "key": "climbing:bolts", - "type": "pnat", - "addExtraTag": [ - "climbing:bolted=yes" ] }, - "mappings": [ - { - "if": "climbing:bolted=no", - "then": { - "en": "This route is not bolted", - "fr": "Cette voie n’a pas de prises", - "de": "Auf dieser Kletterroute sind keine Haken vorhanden", - "it": "In questo percorso non sono presenti bulloni" - }, - "hideInAnswer": true - }, - { - "if": "climbing:bolted=no&climbing:bolts=", - "then": { - "en": "This route is not bolted", - "fr": "Cette voie n’a pas de prises", - "de": "Auf dieser Kletterroute sind keine Haken vorhanden", - "it": "In questo percorso non sono presenti bulloni" - } - } - ], - "id": "Bolts" - }, - { - "question": "Is there other relevant info?", - "render": "

    Description


    {description}", - "freeform": { - "key": "description" + { + "id": "Min difficulty", + "condition": "__difficulty_min~*", + "render": "
    {__difficulty_min}
    " }, - "id": "Description" - }, - { - "render": { - "en": "The rock type is {_embedding_features_with_rock:rock} as stated on the surrounding crag", - "fr": "Le type de roche est {_embedding_features_with_rock:rock} selon le mur", - "it": "Il tipo di roccia è {_embedding_features_with_rock:rock} come dichiarato sul muro circostante", - "de": "Der Gesteinstyp ist {_embedding_features_with_rock:rock}, wie auf dem umgebenden Felsen angegeben" + { + "id": "max difficulty", + "condition": "__difficulty_max~*", + "render": "
    {__difficulty_max}
    " }, - "freeform": { - "key": "_embedding_features_with_rock:rock" - }, - "id": "Rock type" - }, - "reviews" - ], - "presets": [ - { - "title": { - "en": "Climbing route", - "nl": "Klimroute", - "fr": "Voie d’escalade", - "de": "Kletterroute", - "it": "Via di arrampicata" - }, - "tags": [ - "sport=climbing", - "climbing=route" - ] - } - ], - "mapRendering": [ - { - "icon": { - "render": "circle:white;./assets/themes/climbing/climbing_route.svg" - }, - "iconSize": { - "render": "28,28,center" - }, - "location": [ - "point", - "centroid" - ] - }, - { - "color": { - "render": "#0f0" - }, - "width": { - "render": "4" + { + "render": "
    {climbing:grade:french}
    " } - } - ] - }, - { - "id": "climbing", - "name": { - "nl": "Klimgelegenheden", - "de": "Klettermöglichkeiten", - "en": "Climbing opportunities", - "ja": "登坂教室", - "fr": "Opportunité d’escalade", - "it": "Opportunità di arrampicata" - }, - "minzoom": 10, - "source": { - "osmTags": { - "and": [ - "sport=climbing", - "climbing!~route", - "leisure!~sports_centre", - "climbing!=route_top", - "climbing!=route_bottom" - ] - } - }, - "title": { - "render": { - "en": "Climbing opportunity", - "nl": "Klimgelegenheid", - "de": "Klettermöglichkeit", - "ja": "登坂教室", - "nb_NO": "Klatremulighet", - "fr": "Opportunité d’escalade", - "it": "Opportunità di arrampicata" - }, - "mappings": [ + ], + "+calculatedTags": [ + "_embedding_feature_properties=feat.overlapWith('climbing_area').map(f => f.feat.properties).filter(p => p !== undefined).map(p => {return{access: p.access, id: p.id, name: p.name, climbing: p.climbing, 'access:description': p['access:description']}})", + "_embedding_features_with_access=feat.get('_embedding_feature_properties')?.filter(p => p.access !== undefined)?.at(0)", + "_embedding_feature_with_rock=feat.get('_embedding_feature_properties')?.filter(p => p.rock !== undefined)?.at(0)", + "_embedding_features_with_rock:rock=feat.get('_embedding_feature_with_rock')?.rock", + "_embedding_features_with_rock:id=feat.get('_embedding_feature_with_rock')?.id", + "_embedding_feature:access=feat.get('_embedding_features_with_access')?.access", + "_embedding_feature:access:description=(feat.get('_embedding_features_with_access')??{})['access:description']", + "_embedding_feature:id=feat.get('_embedding_features_with_access')?.id", + "__difficulty_max= feat.properties['climbing:grade:french:max'] ?? feat.properties['_difficulty_max']", + "__difficulty_min= feat.properties['climbing:grade:french:min'] ?? feat.properties['_difficulty_min']", + "__difficulty_max:char= feat.properties['__difficulty_max']?.at(0)", + "__difficulty_min:char= feat.properties['__difficulty_min']?.at(0)", + "__difficulty:char= feat.properties['climbing:grade:french']?.at(0)", + "__bolts_max= feat.get('climbing:bolts:max') ?? feat.get('climbing:bolts') ?? feat.get('_bolts_max')" + ], + "units+": [ { - "if": "climbing=crag", - "then": { - "en": "Climbing crag {name}", - "fr": "Mur d’escalade {name}", - "it": "Muro da arrampicata {name}", - "de": "Klettergarten {name}" - } - }, - { - "if": { - "and": [ - { - "or": [ - "climbing=area", - "climbing=site" - ] + "appliesToKey": [ + "climbing:length", + "climbing:length:min", + "climbing:length:max" + ], + "applicableUnits": [ + { + "canonicalDenomination": "", + "alternativeDenomination": [ + "m", + "meter", + "meters" + ], + "human": { + "en": " meter", + "nl": " meter", + "fr": " mètres", + "de": " Meter", + "eo": " metro", + "it": " metri", + "ru": " метр", + "ca": " metre" }, - "name~*" - ] - }, - "then": { - "en": "Climbing area {name}", - "nl": "Klimsite {name}", - "fr": "Zone d’escalade {name}", - "de": "Klettergebiet {name}", - "it": "Area di arrampicata {name}" - } - }, - { - "if": { - "or": [ - "climbing=site", - "climbing=area" - ] - }, - "then": { - "en": "Climbing site", - "nl": "Klimsite", - "fr": "Site d’escalade", - "de": "Klettergebiet", - "it": "Sito di arrampicata" - } - }, - { - "if": "name~*", - "then": { - "nl": "Klimgelegenheid {name}", - "en": "Climbing opportunity {name}", - "fr": "Opportunité d’escalade {name}", - "de": "Klettermöglichkeit {name}", - "it": "Opportunità di arrampicata {name}" - } - } - ] - }, - "description": { - "nl": "Een klimgelegenheid", - "de": "Eine Klettergelegenheit", - "en": "A climbing opportunity", - "ja": "登坂教室", - "nb_NO": "En klatremulighet", - "fr": "Opportunité d’escalade", - "it": "Un’opportunità di arrampicata" - }, - "tagRenderings": [ - "images", - "questions", - { - "id": "minimap", - "render": "{minimap(18, id, _contained_climbing_route_ids): height: 9rem; overflow: hidden; border-radius:3rem; }" - }, - { - "render": { - "en": "

    Length overview

    {histogram(_length_hist)}", - "fr": "

    Résumé de longueur

    {histogram(_length_hist)}", - "de": "

    Längenübersicht

    {histogram(_length_hist)}", - "it": "

    Riassunto della lunghezza

    {histogram(_length_hist)}" - }, - "condition": "_length_hist!~\\[\\]", - "id": "Contained routes length hist" - }, - { - "render": { - "en": "

    Grades overview

    {histogram(_difficulty_hist)}", - "fr": "

    Résumé des difficultés

    {histogram(_difficulty_hist)}", - "de": "

    Schwierigkeitsübersicht

    {histogram(_difficulty_hist)}", - "it": "

    Riassunto delle difficoltà

    {histogram(_difficulty_hist)}" - }, - "condition": "_difficulty_hist!~\\[\\]", - "id": "Contained routes hist" - }, - { - "render": { - "en": "

    Contains {_contained_climbing_routes_count} routes

      {_contained_climbing_routes}
    ", - "fr": "

    Contient {_contained_climbing_routes_count} voies

      {_contained_climbing_routes}
    ", - "it": "

    Contiene {_contained_climbing_routes_count} vie

      {_contained_climbing_routes}
    ", - "de": "

    Enthält {_contained_climbing_routes_count} Routen

      {_contained_climbing_routes}
    " - }, - "condition": "_contained_climbing_routes~*", - "id": "Contained_climbing_routes" - }, - { - "render": { - "en": "{name}", - "nl": "{name}", - "de": "{name}", - "ca": "{name}", - "fr": "{name}", - "id": "{name}", - "ru": "{name}", - "ja": "{name}", - "it": "{name}" - }, - "question": { - "en": "What is the name of this climbing opportunity?", - "nl": "Wat is de naam van dit Klimgelegenheid?", - "de": "Wie heißt diese Klettergelegenheit?", - "ja": "この登坂教室の名前は何ですか?", - "fr": "Quel est le nom de ce site ?", - "it": "Qual è il nome di questa opportunità di arrampicata?" - }, - "freeform": { - "key": "name" - }, - "mappings": [ - { - "if": { - "and": [ - "noname=yes", - "name=" - ] + "default": true }, - "then": { - "en": "This climbing opportunity doesn't have a name", - "nl": "Dit Klimgelegenheid heeft geen naam", - "de": "Diese Klettergelegenheit hat keinen Namen", - "ja": "この登坂教室には名前がついていない", - "fr": "Ce site n’a pas de nom", - "it": "Questa opportunità di arrampicata non ha un nome" + { + "canonicalDenomination": "ft", + "alternativeDenomination": [ + "feet", + "voet" + ], + "human": { + "en": " feet", + "nl": " voet", + "fr": " pieds", + "de": " Fuß", + "eo": " futo", + "it": " piedi", + "ca": " peus" + } } - } - ], - "id": "name" - }, - { - "question": "What kind of climbing opportunity is this?", - "mappings": [ - { - "if": "climbing=boulder", - "then": { - "en": "A climbing boulder - a single rock or cliff with one or a few climbing routes which can be climbed safely without rope", - "fr": "Rocher d’escalade, rocher avec une ou peu de voie permettant d’escalader sans corde", - "de": "Ein Kletterfelsen - ein einzelner Felsen oder eine Klippe mit einer oder wenigen Kletterrouten, die ohne Seil sicher bestiegen werden können", - "it": "Un masso per arrampicata (una singola roccia o falesia con una o poche vie di arrampicata che possono essere scalate in sicurezza senza una corda)" - } - }, - { - "if": "climbing=crag", - "then": { - "en": "A climbing crag - a single rock or cliff with at least a few climbing routes", - "fr": "Mur d’escalade, rocher avec plusieurs voies d’escalades", - "it": "Un muro da arrampicata (un singolo masso o falesia con almeno qualche via per arrampicata)", - "de": "Ein Kletterfelsen - ein einzelner Fels oder eine Klippe mit mindestens einigen Kletterrouten" - } - }, - { - "if": "climbing=area", - "then": "A climbing area with one or more climbing crags and/or boulders" - } - ], - "id": "Type" - }, - { - "question": { - "en": "What is the rock type here?", - "fr": "Quel est le type de roche ?", - "de": "Welchen Gesteinstyp gibt es hier?", - "it": "Qual è il tipo di roccia qua?" - }, - "render": { - "en": "The rock type is {rock}", - "fr": "La roche est du {rock}", - "de": "Der Gesteinstyp ist {rock}", - "it": "Il tipo di roccia è {rock}" - }, - "freeform": { - "key": "rock" - }, - "mappings": [ - { - "if": "rock=limestone", - "then": { - "en": "Limestone", - "nl": "Kalksteen", - "fr": "Calcaire", - "de": "Kalkstein", - "it": "Calcare" - } - } - ], - "condition": { - "or": [ - "climbing=crag", - "natural=cliff", - "natural=bare_rock" ] - }, - "id": "Rock type (crag/rock/cliff only)" - }, - "reviews" - ], - "presets": [ - { - "tags": [ - "sport=climbing" - ], - "title": { - "en": "Climbing opportunity", - "nl": "Klimgelegenheid", - "de": "Klettermöglichkeit", - "ja": "登坂教室", - "nb_NO": "Klatremulighet", - "fr": "Opportunité d’escalade", - "it": "Opportunità di arrampicata" - }, - "description": { - "nl": "Een klimgelegenheid", - "de": "Eine Klettergelegenheit", - "en": "A climbing opportunity", - "ja": "登坂教室", - "nb_NO": "En klatremulighet", - "fr": "Opportunité d’escalade", - "it": "Un’opportunità di arrampicata" } - } - ], - "calculatedTags": [ - "_contained_climbing_routes_properties=feat.overlapWith('climbing_route').map(f => f.feat.properties).map(p => {return {id: p.id, name: p.name, 'climbing:grade:french': p['climbing:grade:french'], 'climbing:length': p['climbing:length']} })", - "_contained_climbing_routes=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => `
  • ${p.name ?? 'climbing route'} (${p['climbing:grade:french'] ?? 'unknown difficulty'}, ${p['climbing:length'] ?? 'unkown length'} meter)
  • `).join('')", - "_contained_climbing_route_ids=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p.id)", - "_difficulty_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:grade:french'])", - "_length_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:length'])", - "_contained_climbing_routes_count=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').length" - ], - "mapRendering": [ - { - "icon": { - "render": "./assets/themes/climbing/climbing_no_rope.svg" - }, - "iconSize": { - "render": "40,40,center" - }, - "location": [ - "point", - "centroid" - ] - }, - { - "color": { - "render": "#d38d5fAA" - }, - "width": { - "render": "8" - } - } - ] - }, - { - "id": "maybe_climbing", - "name": { - "nl": "Klimgelegenheiden?", - "de": "Klettermöglichkeiten?", - "en": "Climbing opportunities?", - "ja": "登坂教室?", - "nb_NO": "Klatremuligheter?", - "fr": "Opportunités d’escalade ?", - "it": "Opportunità di arrampicata?" - }, - "minzoom": 19, - "source": { - "osmTags": { - "and": [ - { - "or": [ - "leisure=sports_centre", - "barrier=wall", - "barrier=retaining_wall", - "natural=cliff", - "natural=rock", - "natural=stone" - ] - }, - "climbing=" - ] - } - }, - "title": { - "render": { - "en": "Climbing opportunity?", - "nl": "Klimgelegenheid?", - "de": "Klettermöglichkeit?", - "ja": "登坂教室?", - "nb_NO": "Klatremulighet?", - "fr": "Opportunité d’escalade ?", - "it": "Opportunità di arrampicata?" - } - }, - "description": { - "nl": "Een klimgelegenheid?", - "de": "Eine Klettergelegenheit?", - "en": "A climbing opportunity?", - "ja": "登坂教室?", - "nb_NO": "En klatremulighet?", - "fr": "Opportunité d’escalade ?", - "it": "Un’opportunità di arrampicata?" - }, - "tagRenderings": [ - { - "id": "minimap", - "render": "{minimap(18): height: 5rem; overflow: hidden; border-radius:3rem; }" - }, - { - "id": "climbing-opportunity-name", - "render": { - "en": "{name}", - "de": "{name}", - "ca": "{name}", - "fr": "{name}", - "id": "{name}", - "ru": "{name}", - "ja": "{name}", - "nl": "{name}", - "it": "{name}" - }, - "condition": "name~*" - }, - { - "id": "climbing-possible", - "question": { - "en": "Is climbing possible here?", - "de": "Kann hier geklettert werden?", - "ja": "ここで登坂はできますか?", - "nb_NO": "Er klatring mulig her?", - "fr": "Est-il possible d’escalader ici ?", - "it": "È possibile arrampicarsi qua?" - }, - "mappings": [ - { - "if": { - "and": [ - "sport!~climbing" - ] + ], + "tagRenderings+": [ + { + "id": "Access from containing feature", + "mappings": [ + { + "if": "_embedding_feature:access=yes", + "then": { + "en": "The containing feature states that this is publicly accessible
    {_embedding_feature:access:description}", + "nl": "Een omvattend element geeft aan dat dit publiek toegangkelijk is
    {_embedding_feature:access:description}", + "fr": "L’élément englobant indique un accès libre
    {_embedding_feature:access:description}", + "it": "L’ elemento in cui è contenuto indica che è pubblicamente accessibile
    {_embedding_feature:access:description}", + "de": "Das enthaltende Objekt gibt an, dass es öffentlich zugänglich ist
    {_embedding_feature:access:description}" + } }, - "then": { - "en": "Climbing is not possible here", - "de": "Hier kann nicht geklettert werden", - "ja": "ここでは登ることができない", - "nb_NO": "Klatring er ikke mulig her", - "nl": "Klimmen is hier niet mogelijk", - "fr": "Escalader n’est pas possible", - "it": "Non è possibile arrampicarsi qua" + { + "if": "_embedding_feature:access=permit", + "then": { + "en": "The containing feature states that a permit is needed to access
    {_embedding_feature:access:description}", + "nl": "Een omvattend element geeft aan dat een toelating nodig is om hier te klimmen
    {_embedding_feature:access:description}", + "fr": "L’élément englobant indique qu’ une autorisation d’accès est nécessaire
    {_embedding_feature:access:description}", + "it": "L’elemento che lo contiene indica che è richiesto un’autorizzazione per accedervi
    {_embedding_feature:access:description}", + "de": "Das enthaltende Objekt besagt, dass eine Genehmigung erforderlich ist für den Zugang zu
    {_embedding_feature:access:description}" + } }, - "hideInAnswer": true - }, - { - "if": { - "and": [ - "sport=climbing" - ] + { + "if": "_embedding_feature:access=customers", + "then": { + "en": "The containing feature states that this is only accessible to customers
    {_embedding_feature:access:description}", + "fr": "L’élément englobant indique que l’accès est réservés aux clients
    {_embedding_feature:access:description}", + "it": "L’ elemento che lo contiene indica che è accessibile solo ai clienti
    {_embedding_feature:access:description}", + "de": "Das enthaltende Objekt besagt, dass es nur für Kunden zugänglich ist
    {_embedding_feature:access:description}" + } }, - "then": { - "en": "Climbing is possible here", - "de": "Hier kann geklettert werden", - "ja": "ここでは登ることができる", - "nb_NO": "Klatring er mulig her", - "nl": "Klimmen is hier niet toegelaten", - "fr": "Escalader est possible", - "it": "È possibile arrampicarsi qua" + { + "if": "_embedding_feature:access=members", + "then": { + "en": "The containing feature states that this is only accessible to club members
    {_embedding_feature:access:description}", + "fr": "L’élément englobant indique que l’accès est réservé aux membres
    {_embedding_feature:access:description}", + "it": "L’ elemento che lo contiene indica che è accessibile solamente ai membri del club
    {_embedding_feature:access:description}", + "de": "Das enthaltende Objekt besagt, dass es nur für Mitglieder zugänglich ist
    {_embedding_feature:access:description}" + } + }, + { + "if": "_embedding_feature:access=no", + "then": "Not accessible as stated by the containing feature" } + ], + "condition": "_embedding_feature:access~*" + }, + { + "id": "access", + "question": { + "en": "Who can access here?", + "fr": "Qui peut y accéder ?", + "de": "Wer hat hier Zugang?", + "it": "Chi può accedervi?" }, - { - "if": "climbing=no", - "then": { - "en": "Climbing is not possible here", - "de": "Hier kann nicht geklettert werden", - "ja": "ここでは登ることができない", - "nb_NO": "Klatring er ikke mulig her", - "nl": "Klimmen is hier niet toegelaten", - "fr": "Escalader n’est pas possible", - "it": "Non è possibile arrampicarsi qua" + "mappings": [ + { + "if": "access=yes", + "then": { + "en": "Publicly accessible to anyone", + "fr": "Libre d’accès", + "de": "Öffentlich zugänglich für jedermann", + "it": "Pubblicamente accessibile a chiunque" + } + }, + { + "if": "access=permit", + "then": { + "en": "You need a permit to access here", + "fr": "Une autorisation est nécessaire", + "de": "Zugang nur mit Genehmigung", + "it": "È necessario avere un’autorizzazione per entrare" + } + }, + { + "if": "access=customers", + "then": { + "en": "Only customers", + "fr": "Réservé aux clients", + "de": "Nur für Kunden", + "it": "Riservato ai clienti", + "ca": "Només clients" + } + }, + { + "if": "access=members", + "then": { + "en": "Only club members", + "ru": "Только членам клуба", + "fr": "Réservé aux membres", + "de": "Nur für Vereinsmitglieder", + "it": "Riservato ai membri del club", + "ca": "Només membres del club" + } + }, + { + "if": "access=no", + "then": "Not accessible" } - } - ] - } - ], - "mapRendering": [ - { - "icon": "./assets/themes/climbing/climbing_unknown.svg", - "location": [ - "point", - "centroid" - ] - }, - { - "color": { - "render": "#ddff55AA" - }, - "width": { - "render": "2" - } - } - ] - } - ], - "overrideAll": { - "titleIcons": [ - { - "render": "
    {climbing:length}m
    ", - "freeform": { - "key": "climbing:length" - } - }, - { - "render": "
    {climbing:bolted}
    ", - "freeform": { - "key": "climbing:bolted" - }, - "mappings": [ - { - "if": "climbing:bolted=yes", - "then": "" - } - ] - }, - "defaults" - ], - "+calculatedTags": [ - "_embedding_feature_properties=feat.overlapWith('climbing').map(f => f.feat.properties).filter(p => p !== undefined).map(p => {return{access: p.access, id: p.id, name: p.name, climbing: p.climbing, 'access:description': p['access:description']}})", - "_embedding_features_with_access=JSON.parse(feat.properties._embedding_feature_properties ?? '[]').filter(p => p.access !== undefined)[0]", - "_embedding_feature_with_rock=JSON.parse(feat.properties._embedding_feature_properties ?? '[]').filter(p => p.rock !== undefined)[0] ?? '{}'", - "_embedding_features_with_rock:rock=JSON.parse(feat.properties._embedding_feature_with_rock ?? '{}')?.rock", - "_embedding_features_with_rock:id=JSON.parse(feat.properties._embedding_feature_with_rock ?? '{}')?.id", - "_embedding_feature:access=JSON.parse(feat.properties._embedding_features_with_access ?? '{}').access", - "_embedding_feature:access:description=JSON.parse(feat.properties._embedding_features_with_access ?? '{}')['access:description']", - "_embedding_feature:id=JSON.parse(feat.properties._embedding_features_with_access ?? '{}').id" - ], - "units+": [ - { - "appliesToKey": [ - "climbing:length", - "climbing:length:min", - "climbing:length:max" - ], - "applicableUnits": [ - { - "canonicalDenomination": "", - "alternativeDenomination": [ - "m", - "meter", - "meters" ], - "human": { - "en": " meter", - "nl": " meter", - "fr": " mètres", - "de": " Meter", - "eo": " metro", - "it": " metri", - "ru": " метр" - }, - "default": true - }, - { - "canonicalDenomination": "ft", - "alternativeDenomination": [ - "feet", - "voet" - ], - "human": { - "en": " feet", - "nl": " voet", - "fr": " pieds", - "de": " Fuß", - "eo": " futo", - "it": " piedi" - } - } - ] - } - ], - "tagRenderings+": [ - { - "id": "Website", - "question": { - "en": "Is there a (unofficial) website with more informations (e.g. topos)?", - "de": "Gibt es eine (inoffizielle) Website mit mehr Informationen (z.B. Topos)?", - "ja": "もっと情報のある(非公式の)ウェブサイトはありますか(例えば、topos)?", - "nl": "Is er een (onofficiële) website met meer informatie (b.v. met topos)?", - "ru": "Есть ли (неофициальный) веб-сайт с более подробной информацией (напр., topos)?", - "fr": "Existe-t’il un site avec plus d’informations (ex : topographie) ?", - "it": "C’è un sito web (anche non ufficiale) con qualche informazione in più (ad es. topografie)?" - }, - "condition": { - "and": [ - "leisure!~sports_centre", - "sport=climbing", - "office=", - "club=" - ] - }, - "render": "{url}", - "freeform": { - "key": "url", - "type": "url" - } - }, - { - "id": "Access from containing feature", - "mappings": [ - { - "if": "_embedding_feature:access=yes", - "then": { - "en": "The containing feature states that this is publicly accessible
    {_embedding_feature:access:description}", - "nl": "Een omvattend element geeft aan dat dit publiek toegangkelijk is
    {_embedding_feature:access:description}", - "fr": "L’élément englobant indique un accès libre
    {_embedding_feature:access:description}", - "it": "L’ elemento in cui è contenuto indica che è pubblicamente accessibile
    {_embedding_feature:access:description}", - "de": "Das enthaltende Objekt gibt an, dass es öffentlich zugänglich ist
    {_embedding_feature:access:description}" - } - }, - { - "if": "_embedding_feature:access=permit", - "then": { - "en": "The containing feature states that a permit is needed to access
    {_embedding_feature:access:description}", - "nl": "Een omvattend element geeft aan dat een toelating nodig is om hier te klimmen
    {_embedding_feature:access:description}", - "fr": "L’élément englobant indique qu’ une autorisation d’accès est nécessaire
    {_embedding_feature:access:description}", - "it": "L’elemento che lo contiene indica che è richiesto un’autorizzazione per accedervi
    {_embedding_feature:access:description}", - "de": "Das enthaltende Objekt besagt, dass eine Genehmigung erforderlich ist für den Zugang zu
    {_embedding_feature:access:description}" - } - }, - { - "if": "_embedding_feature:access=customers", - "then": { - "en": "The containing feature states that this is only accessible to customers
    {_embedding_feature:access:description}", - "fr": "L’élément englobant indique que l’accès est réservés aux clients
    {_embedding_feature:access:description}", - "it": "L’ elemento che lo contiene indica che è accessibile solo ai clienti
    {_embedding_feature:access:description}", - "de": "Das enthaltende Objekt besagt, dass es nur für Kunden zugänglich ist
    {_embedding_feature:access:description}" - } - }, - { - "if": "_embedding_feature:access=members", - "then": { - "en": "The containing feature states that this is only accessible to club members
    {_embedding_feature:access:description}", - "fr": "L’élément englobant indique que l’accès est réservé aux membres
    {_embedding_feature:access:description}", - "it": "L’ elemento che lo contiene indica che è accessibile solamente ai membri del club
    {_embedding_feature:access:description}", - "de": "Das enthaltende Objekt besagt, dass es nur für Mitglieder zugänglich ist
    {_embedding_feature:access:description}" - } - }, - { - "if": "_embedding_feature:access=no", - "then": "Not accessible as stated by the containing feature" - } - ], - "condition": "_embedding_feature:access~*" - }, - { - "id": "Access", - "question": { - "en": "Who can access here?", - "fr": "Qui peut y accéder ?", - "de": "Wer hat hier Zugang?", - "it": "Chi può accedervi?" - }, - "mappings": [ - { - "if": "access=yes", - "then": { - "en": "Publicly accessible to anyone", - "fr": "Libre d’accès", - "de": "Öffentlich zugänglich für jedermann", - "it": "Pubblicamente accessibile a chiunque" - } - }, - { - "if": "access=permit", - "then": { - "en": "You need a permit to access here", - "fr": "Une autorisation est nécessaire", - "de": "Zugang nur mit Genehmigung", - "it": "È necessario avere un’autorizzazione per entrare" - } - }, - { - "if": "access=customers", - "then": { - "en": "Only customers", - "fr": "Réservé aux clients", - "de": "Nur für Kunden", - "it": "Riservato ai clienti" - } - }, - { - "if": "access=members", - "then": { - "en": "Only club members", - "ru": "Только членам клуба", - "fr": "Réservé aux membres", - "de": "Nur für Vereinsmitglieder", - "it": "Riservato ai membri del club" - } - }, - { - "if": "access=no", - "then": "Not accessible" - } - ], - "condition": { - "and": [ - "climbing!=no", - "office=", - "club=", - { - "or": [ - "sport=climbing", - "climbing:sport=yes" - ] - }, - { + "condition": { "or": [ "access~*", "_embedding_feature:access=" ] } - ] - } - }, - { - "id": "Access description (without _embedding_feature:access:description)", - "render": "{access:description}", - "freeform": { - "key": "access:description" - } - }, - { - "id": "Avg length?", - "render": { - "de": "Die Routen sind durchschnittlich {canonical(climbing:length)} lang", - "en": "The routes are {canonical(climbing:length)} long on average", - "nl": "De klimroutes zijn gemiddeld {canonical(climbing:length)} lang", - "ja": "ルートの長さは平均で{canonical(climbing:length)}です", - "fr": "Les voies font {canonical(climbing:length)} de long en moyenne", - "it": "Le vie sono lunghe mediamente {canonical(climbing:length)}" - }, - "condition": { - "and": [ - "climbing!~route", - "office=", - "club=", - "climbing:toprope!=no", - { - "or": [ - "sport=climbing", - "climbing:sport=yes", - "climbing=traditional", - "climbing=gym" - ] - } - ] - }, - "question": { - "de": "Wie lang sind die Routen (durchschnittlich) in Metern?", - "en": "What is the (average) length of the routes in meters?", - "nl": "Wat is de (gemiddelde) lengte van de klimroutes, in meter?", - "ja": "ルートの(平均)長さはメートル単位でいくつですか?", - "fr": "Quelle est la longueur moyenne des voies en mètres ?", - "it": "Quale è la lunghezza (media) delle vie in metri?" - }, - "freeform": { - "key": "climbing:length", - "type": "pnat" - } - }, - { - "id": "Difficulty-min", - "question": { - "de": "Welche Schwierigkeit hat hier die leichteste Route (französisch/belgisches System)?", - "en": "What is the grade of the easiest route here, according to the french classification system?", - "nl": "Wat is het niveau van de makkelijkste route, volgens het Franse classificatiesysteem?", - "ja": "ここで一番簡単なルートのレベルは、フランスのランク評価システムで何ですか?", - "fr": "Quel est le niveau de la voie la plus simple selon la classification franco-belge ?", - "it": "Qual è il livello della via più facile qua, secondo il sistema di classificazione francese?" - }, - "render": { - "de": "Die leichteste Route hat hier die Schwierigkeit {climbing:grade:french:min} (französisch/belgisches System)", - "en": "The lowest grade is {climbing:grade:french:min} according to the french/belgian system", - "nl": "De minimale klimmoeilijkheid is {climbing:grade:french:min} volgens het Franse/Belgische systeem", - "ja": "フランス/ベルギーのランク評価システムでは、最小の難易度は{climbing:grade:french:min}です", - "fr": "La difficulté minimale est {climbing:grade:french:min} selon la classification franco-belge", - "it": "Il minimo livello di difficoltà è {climbing:grade:french:min} secondo il sistema francese/belga" - }, - "freeform": { - "key": "climbing:grade:french:min" - }, - "condition": { - "and": [ - "climbing!~route", - "office=", - "club=", - { - "or": [ - "climbing:sport=yes", - "sport=climbing" - ] - } - ] - } - }, - { - "id": "Difficulty-max", - "question": { - "de": "Welche Schwierigkeit hat hier die schwerste Route (französisch/belgisches System)?", - "en": "What is the highest grade route here, according to the french classification system?", - "nl": "Wat is het niveau van de moeilijkste route, volgens het Franse classificatiesysteem?", - "ja": "フランスのランク評価によると、ここで一番難しいルートのレベルはどれくらいですか?", - "fr": "Quel est le niveau de la voie la plus difficile selon la classification franco-belge ?", - "it": "Qual è il livello della via più difficile qua, secondo il sistema di classificazione francese?" - }, - "render": { - "de": "Die schwerste Route hat hier die Schwierigkeit {climbing:grade:french:max} (französisch/belgisches System)", - "en": "The highest grade is {climbing:grade:french:max} according to the french/belgian system", - "nl": "De maximale klimmoeilijkheid is {climbing:grade:french:max} volgens het Franse/Belgische systeem", - "ja": "フランス/ベルギーのランク評価システムでは、最大の難易度は{climbing:grade:french:max}です", - "fr": "La difficulté maximale est {climbing:grade:french:max} selon la classification franco-belge", - "it": "Il massimo livello di difficoltà è {climbing:grade:french:max} secondo il sistema francese/belga" - }, - "freeform": { - "key": "climbing:grade:french:max" - }, - "condition": { - "and": [ - "climbing!~route", - "office=", - "club=", - { - "or": [ - "climbing:sport=yes", - "sport=climbing" - ] - } - ] - } - }, - { - "id": "Boldering?", - "question": { - "de": "Kann hier gebouldert werden?", - "en": "Is bouldering possible here?", - "nl": "Is het mogelijk om hier te bolderen?", - "ja": "ここでボルダリングはできますか?", - "nb_NO": "Er buldring mulig her?", - "fr": "L’escalade de bloc est-elle possible ici ?", - "it": "È possibile praticare ‘bouldering’ qua?" - }, - "mappings": [ - { - "if": "climbing:boulder=yes", - "then": { - "de": "Hier kann gebouldert werden", - "en": "Bouldering is possible here", - "nl": "Bolderen kan hier", - "ja": "ボルダリングはここで可能です", - "nb_NO": "Buldring er mulig her", - "fr": "L’escalade de bloc est possible", - "it": "L’arrampicata su massi è possibile qua" - } }, { - "if": "climbing:boulder=no", - "then": { - "de": "Hier kann nicht gebouldert werden", - "en": "Bouldering is not possible here", - "nl": "Bolderen kan hier niet", - "ja": "ここではボルダリングはできません", - "nb_NO": "Buldring er ikke mulig her", - "fr": "L’escalade de bloc n’est pas possible", - "it": "L’arrampicata su massi non è possibile qua" + "id": "Access description (without _embedding_feature:access:description)", + "render": "{access:description}", + "freeform": { + "key": "access:description" } }, - { - "if": "climbing:boulder=limited", - "then": { - "de": "Bouldern ist hier nur an wenigen Routen möglich", - "en": "Bouldering is possible, allthough there are only a few routes", - "nl": "Bolderen kan hier, maar er zijn niet zoveel routes", - "ja": "ボルダリングは可能ですが、少しのルートしかありません", - "fr": "L’escalade de bloc est possible sur des voies précises", - "it": "L’arrampicata su massi è possibile anche se su poche vie" - } - }, - { - "if": "climbing:boulder~*", - "then": { - "de": "Hier gibt es {climbing:boulder} Boulder-Routen", - "en": "There are {climbing:boulder} boulder routes", - "nl": "Er zijn hier {climbing:boulder} bolderroutes", - "ja": "{climbing:boulder} ボルダールートがある", - "fr": "Il y a {climbing:boulder} voies d’escalade de bloc", - "it": "Sono presenti {climbing:boulder} vie di arrampicata su massi" - }, - "hideInAnswer": true - } - ], - "condition": { - "and": [ - { - "or": [ - "climbing:sport=yes", - "sport=climbing" - ] - }, - "office=", - "club=" - ] - } - }, - { - "id": "Toproping?", - "question": { - "de": "Ist Toprope-Klettern hier möglich?", - "en": "Is toprope climbing possible here?", - "nl": "Is het mogelijk om hier te toprope-klimmen?", - "ja": "ここでtoprope登坂はできますか?", - "fr": "Est-il possible d’escalader à la moulinette ?", - "it": "È possibile arrampicarsi con la corda dall’alto qua?" - }, - "mappings": [ - { - "if": "climbing:toprope=yes", - "then": { - "de": "Toprope-Klettern ist hier möglich", - "en": "Toprope climbing is possible here", - "nl": "Toprope-klimmen kan hier", - "ja": "ここでToprope登坂ができます", - "fr": "L’escalade à la moulinette est possible", - "it": "È possibile arrampicarsi con moulinette qua" - } - }, - { - "if": "climbing:toprope=no", - "then": { - "de": "Toprope-Climbing ist hier nicht möglich", - "en": "Toprope climbing is not possible here", - "nl": "Toprope-klimmen kan hier niet", - "ja": "ここではToprope登坂はできません", - "fr": "L’escalade à la moulinette n’est pas possible", - "it": "Non è possibile arrampicarsi con moulinette qua" - } - }, - { - "if": "climbing:toprope~*", - "then": { - "de": "Hier gibt es {climbing:toprope} Toprope-Routen", - "en": "There are {climbing:toprope} toprope routes", - "nl": "Er zijn hier {climbing:toprope} toprope routes", - "ja": "{climbing:toprope} 登坂ルートがある", - "fr": "{climbing:toprope} voies sont équipées de moulinettes", - "it": "Sono presenti {climbing:toprope} vie con moulinette" - }, - "hideInAnswer": true - } - ], - "condition": { - "and": [ - { - "or": [ - "climbing:sport=yes", - "sport=climbing" - ] - }, - "office=", - "club=" - ] - } - }, - { - "id": "Sportclimbing?", - "question": { - "de": "Ist hier Sportklettern möglich (feste Ankerpunkte)?", - "en": "Is sport climbing possible here on fixed anchors?", - "nl": "Is het mogelijk om hier te sportklimmen/voorklimmen op reeds aangebrachte haken?", - "ja": "ここでは固定アンカー式のスポーツクライミングはできますか?", - "it": "È possibile arrampicarsi qua con ancoraggi fissi?" - }, - "mappings": [ - { - "if": "climbing:sport=yes", - "then": { - "de": "Sportklettern ist hier möglich", - "en": "Sport climbing is possible here", - "nl": "Sportklimmen/voorklimmen kan hier", - "ru": "Здесь можно заняться спортивным скалолазанием", - "ja": "ここでスポーツクライミングができます", - "it": "L’arrampicata sportiva è possibile qua", - "hu": "Itt lehetőség van sportmászásra" - } - }, - { - "if": "climbing:sport=no", - "then": { - "de": "Sportklettern ist hier nicht möglich", - "en": "Sport climbing is not possible here", - "nl": "Sportklimmen/voorklimmen kan hier niet", - "ru": "Спортивное скалолазание здесь невозможно", - "ja": "ここではスポーツクライミングはできません", - "it": "L’arrampicata sportiva non è possibile qua", - "hu": "Itt nincs lehetőség sportmászásra" - } - }, - { - "if": "climbing:sport~*", - "then": { - "de": "Hier gibt es {climbing:sport} Sportkletter-Routen", - "en": "There are {climbing:sport} sport climbing routes", - "nl": "Er zijn hier {climbing:sport} sportklimroutes/voorklimroutes", - "ja": "スポーツクライミングの {climbing:sport} ルートがある", - "it": "Sono presenti {climbing:sport} vie di arrampicata sportiva" - }, - "hideInAnswer": true - } - ], - "condition": { - "and": [ - { - "or": [ - "climbing:sport=yes", - "sport=climbing" - ] - }, - "office=", - "club=" - ] - } - }, - { - "id": "Traditional climbing?", - "question": { - "de": "Ist hier traditionelles Klettern möglich (eigene Sicherung z.B. mit Klemmkleilen)?", - "en": "Is traditional climbing possible here (using own gear e.g. chocks)?", - "nl": "Is het mogelijk om hier traditioneel te klimmen?
    (Dit is klimmen met klemblokjes en friends)", - "ja": "伝統的な登山はここで可能ですか(例えば、チョックのような独自のギアを使用して)?", - "it": "È possibile arrampicarsi in maniera tradizionale qua (usando attrezzi propri, ad es. dadi)?" - }, - "mappings": [ - { - "if": "climbing:traditional=yes", - "then": { - "de": "Traditionelles Klettern ist hier möglich", - "en": "Traditional climbing is possible here", - "nl": "Traditioneel klimmen kan hier", - "ja": "ここでは伝統的な登山が可能です", - "it": "L’arrampicata tradizionale è possibile qua" - } - }, - { - "if": "climbing:traditional=no", - "then": { - "de": "Traditionelles Klettern ist hier nicht möglich", - "en": "Traditional climbing is not possible here", - "nl": "Traditioneel klimmen kan hier niet", - "ja": "伝統的な登山はここではできない", - "it": "L’arrampicata tradizionale non è possibile qua" - } - }, - { - "if": "climbing:traditional~*", - "then": { - "de": "Hier gibt es {climbing:traditional} Routen für traditionelles Klettern", - "en": "There are {climbing:traditional} traditional climbing routes", - "nl": "Er zijn hier {climbing:traditional} traditionele klimroutes", - "ja": "{climbing:traditional} の伝統的な登山ルートがある", - "it": "Sono presenti {climbing:traditional} vie di arrampicata tradizionale" - }, - "hideInAnswer": true - } - ], - "condition": { - "and": [ - { - "or": [ - "climbing:sport=yes", - "sport=climbing" - ] - }, - "office=", - "club=" - ] - } - }, - { - "id": "Speed climbing?", - "question": { - "de": "Gibt es hier eine Speedkletter-Wand?", - "en": "Is there a speed climbing wall?", - "nl": "Is er een snelklimmuur (speed climbing)?", - "ja": "スピードクライミングウォールはありますか?", - "it": "È presente una prete per l’arrampicata di velocità?" - }, - "condition": { - "and": [ - "leisure=sports_centre", - { - "or": [ - "climbing:sport=yes", - "sport=climbing" - ] - }, - "office=", - "club=" - ] - }, - "mappings": [ - { - "if": "climbing:speed=yes", - "then": { - "de": "Hier gibt es eine Speedkletter-Wand", - "en": "There is a speed climbing wall", - "nl": "Er is een snelklimmuur voor speed climbing", - "ja": "スピードクライミングウォールがある", - "it": "È presente una parete per l’arrampicata di velocità" - } - }, - { - "if": "climbing:speed=no", - "then": { - "de": "Hier gibt es keine Speedkletter-Wand", - "en": "There is no speed climbing wall", - "nl": "Er is geen snelklimmuur voor speed climbing", - "ja": "スピードクライミングウォールがない", - "it": "Non è presente una parete per l’arrampicata di velocità" - } - }, - { - "if": "climbing:speed~*", - "then": { - "de": "Hier gibt es {climbing:speed} Speedkletter-Routen", - "en": "There are {climbing:speed} speed climbing walls", - "nl": "Er zijn hier {climbing:speed} snelklimmuren", - "ja": "{climbing:speed} のスピードクライミングウォールがある", - "it": "Sono presenti {climbing:speed} pareti per l’arrampicata di velocità" - }, - "hideInAnswer": true - } + "questions", + "reviews" ] } - ] - } + } + ] } \ No newline at end of file diff --git a/assets/themes/climbing/css-test.html b/assets/themes/climbing/css-test.html new file mode 100644 index 0000000000..f968878139 --- /dev/null +++ b/assets/themes/climbing/css-test.html @@ -0,0 +1,23 @@ + + + + + CSS-debugging for climbing theme + + + + + +
    2
    + +
    3
    +
    4
    +
    5
    +
    6
    +
    7
    +
    8
    +
    9
    +
    X
    + + + \ No newline at end of file diff --git a/assets/themes/cycle_highways/cycle_highways.json b/assets/themes/cycle_highways/cycle_highways.json index a1d403c381..bd11a28545 100644 --- a/assets/themes/cycle_highways/cycle_highways.json +++ b/assets/themes/cycle_highways/cycle_highways.json @@ -3,7 +3,9 @@ "title": { "en": "Cycle highways", "de": "Radschnellwege", - "it": "Strade per velocipedi" + "it": "Strade per velocipedi", + "ca": "Vies ciclistes", + "fr": "Aménagements cyclables" }, "hideFromOverview": true, "maintainer": "L'imaginaire", @@ -13,7 +15,8 @@ "description": { "en": "This map shows cycle highways", "de": "Diese Karte zeigt Radschnellwege", - "it": "Questa cartina mostra le strade per velocipedi" + "it": "Questa cartina mostra le strade per velocipedi", + "fr": "Cette carte affiche les aménagements cyclables" }, "version": "2021-08-23", "startLat": 51.1599, @@ -99,7 +102,9 @@ ], "name": { "en": "cycle highways", - "de": "Radschnellwege" + "de": "Radschnellwege", + "ca": "vies ciclistes", + "fr": "Aménagements cyclables" }, "source": { "osmTags": "cycle_network=BE-VLG:cycle_highway" @@ -108,7 +113,9 @@ "title": { "render": { "en": "cycle highway", - "de": "Radschnellweg" + "de": "Radschnellweg", + "ca": "via ciclista", + "fr": "Aménagement cyclable" } }, "filter": [ diff --git a/assets/themes/cycle_infra/cycle_infra.json b/assets/themes/cycle_infra/cycle_infra.json index 4a26d7a47c..291c30156a 100644 --- a/assets/themes/cycle_infra/cycle_infra.json +++ b/assets/themes/cycle_infra/cycle_infra.json @@ -6,9 +6,11 @@ "de": "Fahrradinfrastruktur", "it": "Infrastruttura dei velocipedi", "nb_NO": "Sykkelinfrastruktur", - "ru": "Велосипедная дорожка", + "ru": "Велосипедная инфраструктура", "zh_Hant": "單車設施", - "hu": "Kerékpáros infrastruktúra" + "hu": "Kerékpáros infrastruktúra", + "ca": "Infraestructura per a bicicletes", + "es": "Infraestructura ciclista" }, "shortDescription": { "en": "A map where you can view and edit things related to the bicycle infrastructure.", @@ -17,7 +19,8 @@ "it": "Una cartina dove vedere e modificare gli elementi riguardanti l’infrastruttura dei velocipedi.", "nb_NO": "Alt relatert til sykkelinfrastruktur.", "zh_Hant": "檢視與編輯單車相關設施的地圖。", - "hu": "Olyan térkép, ahol a kerékpáros infrastruktúrával kapcsolatos dolgokat tekinthet meg és szerkeszthet." + "hu": "Olyan térkép, ahol a kerékpáros infrastruktúrával kapcsolatos dolgokat tekinthet meg és szerkeszthet.", + "es": "Un mapa en el que puedes ver y editar cosas relacionadas con la infraestructura ciclista." }, "description": { "en": "A map where you can view and edit things related to the bicycle infrastructure. Made during #osoc21.", @@ -25,7 +28,9 @@ "de": "Eine Karte zum Ansehen und Bearbeiten verschiedener Elementen der Fahrradinfrastruktur. Erstellt während #osoc21.", "it": "Una cartina dove vedere e modificare gli elementi riguardanti l’infrastruttura dei velocipedi. Realizzata durante #osoc21.", "zh_Hant": "可以檢視與編輯單車相關設施的地圖,在 #os0c21時製作。", - "hu": "Kerékpáros infrastruktúrával kapcsolatos dolgokat megjelenítő és szerkesztésre felkínáló térkép. Az #osoc21 (Open Summer of Code) alatt készült." + "hu": "Kerékpáros infrastruktúrával kapcsolatos dolgokat megjelenítő és szerkesztésre felkínáló térkép. Az #osoc21 (Open Summer of Code) alatt készült.", + "fr": "Une carte montrant les aménagements cyclables et où l’on peut rajouter des informations. Réalisée durant #osoc21.", + "es": "Un mapa en el que puedes ver y editar cosas relacionadas con la infraestructura ciclista. Hecho durante #osoc21." }, "maintainer": "MapComplete", "hideFromOverview": false, diff --git a/assets/themes/cycle_infra/license_info.json b/assets/themes/cycle_infra/license_info.json index d750dfa3f7..0b84e1df2a 100644 --- a/assets/themes/cycle_infra/license_info.json +++ b/assets/themes/cycle_infra/license_info.json @@ -1,94 +1,4 @@ [ - { - "path": "Belgian_road_sign_D07.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_road_sign_D07.svg" - ] - }, - { - "path": "Belgian_road_sign_D09.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_road_sign_D09.svg" - ] - }, - { - "path": "Belgian_road_sign_D10.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_road_sign_D10.svg" - ] - }, - { - "path": "Belgian_traffic_sign_M13.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M13.svg" - ] - }, - { - "path": "Belgian_traffic_sign_M14.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M14.svg" - ] - }, - { - "path": "Belgian_traffic_sign_M15.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M15.svg" - ] - }, - { - "path": "Belgian_traffic_sign_M16.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M16.svg" - ] - }, - { - "path": "Belgian_traffic_sign_M6.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M6.svg" - ] - }, - { - "path": "Belgian_traffic_sign_M7.svg", - "license": "CC0", - "authors": [ - "Belgische Wetgever" - ], - "sources": [ - "https://commons.wikimedia.org/wiki/File:Belgian_traffic_sign_M7.svg" - ] - }, { "path": "Cycle_barrier_double.svg", "license": "CC0", diff --git a/assets/themes/cyclenodes/cyclenodes.json b/assets/themes/cyclenodes/cyclenodes.json index 1d82601d2a..60b36d1ca4 100644 --- a/assets/themes/cyclenodes/cyclenodes.json +++ b/assets/themes/cyclenodes/cyclenodes.json @@ -2,11 +2,13 @@ "id": "cyclenodes", "title": { "en": "Cycle Node Networks", - "de": "Fahrrad-Knotenpunktnetzwerke" + "de": "Fahrrad-Knotenpunktnetzwerke", + "es": "Redes de Nodos Ciclistas" }, "description": { "en": "This map shows cycle node networks and allows you to add new nodes easily", - "de": "Diese Karte zeigt Knotenpunktnetzwerke für Radfahrer und erlaubt auch neue Knoten zu mappen" + "de": "Diese Karte zeigt Knotenpunktnetzwerke für Radfahrer und erlaubt auch neue Knoten zu mappen", + "es": "Este mapa muestra redes de nodos ciclistas y te permita añadir nodos nuevos de manera sencilla" }, "maintainer": "Sebastian Kürten", "icon": "./assets/themes/cyclenodes/logo.svg", @@ -25,7 +27,8 @@ "id": "node2node", "name": { "en": "node to node links", - "de": "Knotenpunktverbindungen" + "de": "Knotenpunktverbindungen", + "es": "enlaces nodo a nodo" }, "source": { "osmTags": { @@ -40,14 +43,16 @@ "title": { "render": { "en": "node to node link", - "de": "Knotenpunktverbindung" + "de": "Knotenpunktverbindung", + "es": "enlace nodo a nodo" }, "mappings": [ { "if": "ref~*", "then": { "en": "node to node link {ref}", - "de": "Knotenpunktverbindung {ref}" + "de": "Knotenpunktverbindung {ref}", + "es": "enlace nodo a nodo {ref}" } } ] @@ -66,11 +71,13 @@ { "question": { "en": "When was this node to node link last surveyed?", - "de": "Wann wurde diese Knotenpunktverbindung zuletzt überprüft?" + "de": "Wann wurde diese Knotenpunktverbindung zuletzt überprüft?", + "es": "¿Cuándo se sondeó este enlace nodo a nodo por última vez?" }, "render": { "en": "This node to node link was last surveyed on {survey:date}", - "de": "Diese Knotenpunktverbindung wurde zuletzt am {survey:date} überprüft" + "de": "Diese Knotenpunktverbindung wurde zuletzt am {survey:date} überprüft", + "es": "Este enlace nodo a nodo se sondeó por última vez el {survey:date}" }, "freeform": { "key": "survey:date", @@ -91,7 +98,9 @@ "id": "node", "name": { "en": "nodes", - "de": "Knotenpunkte" + "de": "Knotenpunkte", + "ca": "nodes", + "es": "nodos" }, "source": { "osmTags": { @@ -124,18 +133,21 @@ "title": { "render": { "en": "cycle node {rcn_ref}", - "de": "Knotenpunkt {rcn_ref}" + "de": "Knotenpunkt {rcn_ref}", + "es": "nodo ciclista {rcn_ref}" } }, "tagRenderings": [ { "question": { "en": "When was this cycle node last surveyed?", - "de": "Wann wurde dieser Fahrradknotenpunkt zuletzt überprüft?" + "de": "Wann wurde dieser Fahrradknotenpunkt zuletzt überprüft?", + "es": "¿Cuándo fue sondeado este nodo ciclista por última vez?" }, "render": { "en": "This cycle node was last surveyed on {survey:date}", - "de": "Dieser Fahrradknoten wurde zuletzt überprüft am {survey:date}" + "de": "Dieser Fahrradknoten wurde zuletzt überprüft am {survey:date}", + "es": "Este nodo ciclista se sondeó por última vez el {survey:date}" }, "freeform": { "key": "survey:date", @@ -152,7 +164,8 @@ { "question": { "en": "How many other cycle nodes does this node link to?", - "de": "Mit wie vielen anderen Knoten des Fahrradknotenpunktnetzwerkes ist dieser Knoten verbunden?" + "de": "Mit wie vielen anderen Knoten des Fahrradknotenpunktnetzwerkes ist dieser Knoten verbunden?", + "es": "¿A cuántos otros nodos ciclistas enlaza este nodo?" }, "render": { "en": "This node links to {expected_rcn_route_relations} other cycle nodes.", diff --git a/assets/themes/cyclestreets/cyclestreets.json b/assets/themes/cyclestreets/cyclestreets.json index aad78a15fd..d4102b1a84 100644 --- a/assets/themes/cyclestreets/cyclestreets.json +++ b/assets/themes/cyclestreets/cyclestreets.json @@ -9,7 +9,9 @@ "de": "Fahrradstraßen", "it": "Strade ciclabili", "nb_NO": "Sykkelgater", - "hu": "Kerékpárosutcák" + "hu": "Kerékpárosutcák", + "ca": "Carrers ciclistes", + "es": "Ciclocalles" }, "shortDescription": { "nl": "Een kaart met alle gekende fietsstraten", @@ -19,7 +21,9 @@ "nb_NO": "Et kart over sykkelveier", "de": "Eine Karte von Fahrradstraßen", "it": "Una cartina per le strade ciclabili", - "hu": "Kerékpárosutcák térképe" + "hu": "Kerékpárosutcák térképe", + "ca": "Un mapa de carrers ciclistes", + "es": "Un mapa de ciclocalles" }, "description": { "nl": "Een fietsstraat is een straat waar
    • automobilisten geen fietsers mogen inhalen
    • Er een maximumsnelheid van 30km/u geldt
    • Fietsers gemotoriseerde voertuigen links mogen inhalen
    • Fietsers nog steeds voorrang aan rechts moeten verlenen - ook aan auto's en voetgangers op het zebrapad


    Op deze open kaart kan je alle gekende fietsstraten zien en kan je ontbrekende fietsstraten aanduiden. Om de kaart aan te passen, moet je je aanmelden met OpenStreetMap en helemaal inzoomen tot straatniveau. ", @@ -52,7 +56,9 @@ "de": "Fahrradstraßen", "nb_NO": "Sykkelgater", "ru": "Cyclestreets", - "hu": "Kerékpárosutcák" + "hu": "Kerékpárosutcák", + "ca": "Carrers ciclistes", + "es": "Ciclocalles" }, "minzoom": 7, "source": { @@ -77,7 +83,8 @@ "ja": "cyclestreetとは、自動車による交通がサイクリストを追い越すことができない道路です", "it": "Una strada ciclabile è una strada in cui i veicoli a motore non possono sorpassare le persone in bicicletta", "de": "Eine Fahrradstraße ist eine Straße, auf der motorisierter Verkehr einen Radfahrer nicht überholen darf", - "hu": "A kerékpárosutca olyan utca, ahol gépjármű nem előzhet meg a kerékpárost" + "hu": "A kerékpárosutca olyan utca, ahol gépjármű nem előzhet meg a kerékpárost", + "es": "Una ciclocalle es una calle en la que el tráfico motorizado no puede sobrepasar a un ciclista" }, "title": "{name}", "tagRenderings": [ @@ -105,8 +112,10 @@ "zh_Hant": "將來的單車街道", "nb_NO": "Fremtidig sykkelvei", "it": "Futura strada ciclabile", - "de": "Zukünftige Fahrradstraße", - "hu": "Jövőbeli kerékpárosutca" + "de": "Zukünftige Fahrradstraßen", + "hu": "Jövőbeli kerékpárosutca", + "ca": "Futur carrer ciclista", + "es": "Futura ciclocalle" }, "description": { "nl": "Deze straat wordt binnenkort een fietsstraat", @@ -115,7 +124,8 @@ "it": "Questa strada diventerà presto una strada ciclabile", "de": "Diese Straße wird bald eine Fahrradstraße sein", "nb_NO": "Denne gaten vil bli sykkelgate snart", - "hu": "Ez az utca hamarosan kerékpárosutcává válik" + "hu": "Ez az utca hamarosan kerékpárosutcává válik", + "es": "Esta calle se convertirá en una ciclocalle próximamente" }, "minzoom": 9, "source": { @@ -129,7 +139,9 @@ "nb_NO": "Fremtidig sykkelvei", "it": "Futura strada ciclabile", "de": "Zukünftige Fahrradstraße", - "hu": "Jövőbeli kerékpárosutca" + "hu": "Jövőbeli kerékpárosutca", + "ca": "Futur carrer ciclista", + "es": "Futura ciclocalle" }, "mappings": [ { @@ -140,7 +152,8 @@ "it": "{name} diventerà presto una strada ciclabile", "de": "{name} wird bald eine Fahrradstraße werden", "nb_NO": "{name} vil bli sykkelgate snart", - "hu": "{name} nemsokára kerékpárosutca lesz" + "hu": "{name} nemsokára kerékpárosutca lesz", + "es": "{name} se convertirá en una ciclocalle próximamente" }, "if": "name~*" } @@ -173,7 +186,9 @@ "ru": "Все улицы", "de": "Alle Straßen", "eo": "Ĉiuj stratoj", - "hu": "Minden utca" + "hu": "Minden utca", + "ca": "Tots els carrers", + "es": "Todas las calles" }, "description": { "nl": "Laag waar je een straat als fietsstraat kan markeren", @@ -182,7 +197,8 @@ "nb_NO": "Lag for å markere hvilken som helst gate som sykkelvei", "it": "Livello per contrassegnare tutte le strade come strade ciclabili", "de": "Ebene zur Kennzeichnung einer Straße als Fahrradstraße", - "hu": "Réteg bármely utca kerékpárosutcaként való megjelöléséhez" + "hu": "Réteg bármely utca kerékpárosutcaként való megjelöléséhez", + "es": "Capa para marcar cualquier calle como ciclocalle" }, "source": { "osmTags": { @@ -204,7 +220,9 @@ "de": "Straße", "eo": "Strato", "nb_NO": "Gate", - "hu": "Utca" + "hu": "Utca", + "ca": "Carrer", + "es": "Calle" }, "mappings": [ { @@ -252,7 +270,8 @@ "en": "Is the street {name} a cyclestreet?", "de": "Ist die Straße {name} eine Fahrradstraße?", "it": "È {name} una strada ciclabile?", - "hu": "Kerékpárosutca-e {name}?" + "hu": "Kerékpárosutca-e {name}?", + "es": "¿La calle {name} es una ciclocalle?" }, "mappings": [ { @@ -271,7 +290,8 @@ "nb_NO": "Denne gaten er en sykkelvei (og har en fartsgrense på 30 km/t)", "de": "Diese Straße ist eine Fahrradstraße (mit einer Geschwindigkeitsbegrenzung von 30 km/h)", "it": "Questa è una strada ciclabile (e ha un limite di velocità massima di 30 km/h)", - "hu": "Ez az utca kerékpárosutca (és 30 km/h a sebességkorlátozás)" + "hu": "Ez az utca kerékpárosutca (és 30 km/h a sebességkorlátozás)", + "es": "Esta calle es una ciclocalle (y tiene un límite de velocidad de 30km/h)" }, "hideInAnswer": "_country!=be" }, @@ -289,7 +309,8 @@ "nb_NO": "Denne gaten er en sykkelvei", "de": "Diese Straße ist eine Fahrradstraße", "it": "Questa è una strada ciclabile", - "hu": "Ez az utca kerékpárosutca" + "hu": "Ez az utca kerékpárosutca", + "es": "Esta calle es una ciclocalle" }, "hideInAnswer": "_country=be" }, @@ -307,7 +328,8 @@ "nb_NO": "Denne gaten vil bli sykkelvei ganske snart", "de": "Diese Straße wird bald eine Fahrradstraße sein", "it": "Diverrà tra poco una strada ciclabile", - "hu": "Ez az utca hamarosan kerékpárosutcává válik" + "hu": "Ez az utca hamarosan kerékpárosutcává válik", + "es": "Esta calle se convertirá en una ciclocalle próximamente" } }, { @@ -325,7 +347,8 @@ "nb_NO": "Denne gaten er ikke en sykkelvei", "it": "Questa strada non è una strada ciclabile", "de": "Diese Straße ist keine Fahrradstraße", - "hu": "Ez az utca nem kerékpárosutca" + "hu": "Ez az utca nem kerékpárosutca", + "es": "Esta calle no es una ciclocalle" } } ] @@ -338,7 +361,8 @@ "ja": "この通りはいつcyclestreetになるんですか?", "it": "Questa strada diventerà una strada ciclabile quando?", "de": "Wann wird diese Straße eine Fahrradstraße?", - "hu": "Mikor lesz ez az utca kerékpárosutca?" + "hu": "Mikor lesz ez az utca kerékpárosutca?", + "es": "¿Cuándo se convertirá esta calle en una ciclocalle?" }, "render": { "nl": "Deze straat wordt fietsstraat op {cyclestreet:start_date}", @@ -346,7 +370,8 @@ "ja": "この通りは{cyclestreet:start_date}に、cyclestreetになります", "it": "Questa strada diventerà una strada ciclabile dal {cyclestreet:start_date}", "de": "Diese Straße wird am {cyclestreet:start_date} zu einer Fahrradstraße", - "hu": "Ez az utca ekkor lesz kerékpárosutca: {cyclestreet:start_date}" + "hu": "Ez az utca ekkor lesz kerékpárosutca: {cyclestreet:start_date}", + "es": "Esta calle se convetirá en una ciclocalle el {cyclestreet:start_date}" }, "condition": "proposed:cyclestreet=yes", "freeform": { diff --git a/assets/themes/cyclestreets/logo.svg b/assets/themes/cyclestreets/logo.svg index 0d6aa74907..d380b8535a 100644 --- a/assets/themes/cyclestreets/logo.svg +++ b/assets/themes/cyclestreets/logo.svg @@ -11,10 +11,8 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> - - - - + inkscape:zoom="1.682" + inkscape:cx="249.70273" + inkscape:cy="359.69084" + inkscape:current-layer="svg43" /> + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + diff --git a/assets/themes/cyclofix/cyclofix.json b/assets/themes/cyclofix/cyclofix.json index 82a94047fd..125500d9b8 100644 --- a/assets/themes/cyclofix/cyclofix.json +++ b/assets/themes/cyclofix/cyclofix.json @@ -11,7 +11,8 @@ "zh_Hant": "單車修正 - 單車騎士的開放地圖", "it": "Cyclofix - una mappa libera per chi va in bici", "nb_NO": "Cyclofix — et åpent kart for syklister", - "hu": "Cyclofix – nyílt térkép kerékpárosoknak" + "hu": "Cyclofix – nyílt térkép kerékpárosoknak", + "es": "Cyclofix - un mapa abierto para ciclistas" }, "description": { "en": "The goal of this map is to present cyclists with an easy-to-use solution to find the appropriate infrastructure for their needs.

    You can track your precise location (mobile only) and select layers that are relevant for you in the bottom left corner. You can also use this tool to add or edit pins (points of interest) to the map and provide more data by answering the questions.

    All changes you make will automatically be saved in the global database of OpenStreetMap and can be freely re-used by others.

    For more information about the cyclofix project, go to cyclofix.osm.be.", @@ -22,7 +23,8 @@ "ja": "このマップの目的は、サイクリストのニーズに適した施設を見つけるための使いやすいソリューションを提供することです。

    正確な位置を追跡し(モバイルのみ)、左下コーナーで関連するレイヤを選択できます。このツールを使用して、マップにピン(注目点)を追加または編集したり、質問に答えることでより多くのデータを提供することもできます。

    変更内容はすべてOpenStreetMapのグローバルデータベースに自動的に保存され、他のユーザーが自由に再利用できます。

    cyclofixプロジェクトの詳細については、 cyclofix.osm.be を参照してください。", "zh_Hant": "這份地圖的目的是為單車騎士能夠輕易顯示滿足他們需求的相關設施。

    你可以追蹤你確切位置 (只有行動版),以及在左下角選擇相關的圖層。你可以使用這工具在地圖新增或編輯釘子,以及透過回答問題來提供更多資訊。

    所有你的變動都會自動存在開放街圖這全球資料圖,並且能被任何人自由取用。

    你可以到 cyclofix.osm.be 閱讀更多資訊。", "it": "Questa mappa offre a chi va in bici una soluzione semplice per trovare tutte le infrastrutture di cui ha bisogno.

    Puoi tracciare la tua posizione esatta (solo su mobile) e selezionare i livelli che ti interessano nell'angolo in basso a sinistra. Puoi anche usare questo strumento per aggiungere o modificare punti di interesse alla mappa e aggiungere nuove informazioni rispendendo alle domande.

    Tutte le modifiche che apporterai saranno automaticamente salvate nel database mondiale di OpenStreetMap e potranno essere liberamente riutilizzate da tutti e tutte.

    Per maggiori informazioni sul progetto ciclofix, visita cyclofix.osm.be.", - "hu": "Ez a térkép kerékpárosoknak kíván könnyen használható megoldást nyújtani a számukra fontos infrastruktúra megtalálásához.

    A bal alsó sarokban nyomon követheti pontos tartózkodási helyét (csak mobilon), és kiválaszthatja az Ön számára fontos rétegeket. Az eszköz segítségével gombostűket (érdekes pontokat, POI-kat) is szerkeszthet vagy felrajzolhat a térképre, a kérdések megválaszolásával pedig további adatokat szolgáltathat.

    Minden módosítás automatikusan elmentődik az OpenStreetMap globális adatbázisában, és mások szabadon újra felhasználhatják.

    A cyclofix projektről további információkat a cyclofix.osm.be oldalon talál." + "hu": "Ez a térkép kerékpárosoknak kíván könnyen használható megoldást nyújtani a számukra fontos infrastruktúra megtalálásához.

    A bal alsó sarokban nyomon követheti pontos tartózkodási helyét (csak mobilon), és kiválaszthatja az Ön számára fontos rétegeket. Az eszköz segítségével gombostűket (érdekes pontokat, POI-kat) is szerkeszthet vagy felrajzolhat a térképre, a kérdések megválaszolásával pedig további adatokat szolgáltathat.

    Minden módosítás automatikusan elmentődik az OpenStreetMap globális adatbázisában, és mások szabadon újra felhasználhatják.

    A cyclofix projektről további információkat a cyclofix.osm.be oldalon talál.", + "es": "El objetivo de este mapa es presentar a los ciclistas con una solución fácil de utilizar para encontrar la infraestructura apropiada para sus necesidades.

    Puedes seguir tu localización precisa (móvil solo) y seleccionar las capas que son relevantes para ti en la esquina inferior izquierda. Tgambién puedes utilizar esta herramienta para editar o añadir pines (puntos de interés) al mapa y proveer más datos respondiendo a preguntas.

    Todos los cambios que hagas se guardarán de manera automática en la base de datos global de OpenStreetMap y podrán ser utilizados libremente por otros.

    Para más información sobre el proyecto cyclofix, ve a cyclofix.osm.be." }, "maintainer": "MapComplete", "credits": "Originally created during Open Summer of Code by Pieter Fiers, Thibault Declercq, Pierre Barban, Joost Schouppe and Pieter Vander Vennet", diff --git a/assets/themes/drinking_water/drinking_water.json b/assets/themes/drinking_water/drinking_water.json index 54334749bd..3ba8a2f229 100644 --- a/assets/themes/drinking_water/drinking_water.json +++ b/assets/themes/drinking_water/drinking_water.json @@ -8,9 +8,11 @@ "ja": "飲料水", "zh_Hant": "飲用水", "it": "Acqua potabile", - "de": "Trinkwasserstelle", + "de": "Trinkwasserstellen", "nb_NO": "Drikkevann", - "hu": "Ivóvíz" + "hu": "Ivóvíz", + "ca": "Aigua potable", + "es": "Agua Potable" }, "description": { "en": "On this map, publicly accessible drinking water spots are shown and can be easily added", @@ -22,7 +24,8 @@ "ru": "На этой карте показываются и могут быть легко добавлены общедоступные точки питьевой воды", "de": "Eine Karte zum Anzeigen und Bearbeiten öffentlicher Trinkwasserstellen", "nb_NO": "Offentlig tilgjengelig drikkevannssteder", - "hu": "Ezen a térképen a nyilvánosan hozzáférhető ivóvíznyerő helyek láthatók, szerkeszthetők és rajzolhatók fel könnyedén" + "hu": "Ezen a térképen a nyilvánosan hozzáférhető ivóvíznyerő helyek láthatók, szerkeszthetők és rajzolhatók fel könnyedén", + "es": "En este mapa, se muestran los puntos de agua potable accesibles públicamente y pueden añadirse fácilmente" }, "maintainer": "MapComplete", "icon": "./assets/themes/drinking_water/logo.svg", diff --git a/assets/themes/entrances/entrances.json b/assets/themes/entrances/entrances.json index 332d120f31..f723d82149 100644 --- a/assets/themes/entrances/entrances.json +++ b/assets/themes/entrances/entrances.json @@ -3,18 +3,26 @@ "title": { "en": "Entrances", "zh_Hant": "出入口", - "hu": "Épületek bejáratai" + "hu": "Épületek bejáratai", + "de": "Eingänge", + "nl": "Toegangsdeuren", + "ca": "Entrades", + "es": "Entradas" }, "icon": "./assets/layers/entrance/door.svg", "description": { "en": "A map showing all entrances, which surveys for important aspects for wheelchair users", "zh_Hant": "顯示所有出入口的地圖,勘查對輪椅使用者重要的資訊", - "hu": "Épületek bejáratai mutató térkép, amely a kerekesszékkel közlekedőknek fontos szempontokat jeleníti meg" + "hu": "Épületek bejáratai mutató térkép, amely a kerekesszékkel közlekedőknek fontos szempontokat jeleníti meg", + "de": "Eine Karte mit allen Eingängen, die wichtige Aspekte für Rollstuhlfahrer erfasst", + "es": "Un mapa que muestra todas las entradas, que sondea aspectos importantes para usuarios de sillas de ruedas" }, "shortDescription": { "en": "Survey entrances to help wheelchair routing", "zh_Hant": "幫助輪椅導航來勘查出入口", - "hu": "Akadálymentes útvonaltervezést segítő bejáratok feltérképezése" + "hu": "Akadálymentes útvonaltervezést segítő bejáratok feltérképezése", + "de": "Eingänge prüfen, um die Rollstuhlnavigation zu verbessern", + "es": "Sondea entradas para ayudar el enrutado de sillas de ruedas" }, "version": "2021-12-04", "maintainer": "MapComplete", diff --git a/assets/themes/etymology.json b/assets/themes/etymology/etymology.json similarity index 58% rename from assets/themes/etymology.json rename to assets/themes/etymology/etymology.json index 1ed79cf96d..f026c749d9 100644 --- a/assets/themes/etymology.json +++ b/assets/themes/etymology/etymology.json @@ -7,7 +7,9 @@ "it": "Apri Carta Etimologica", "ru": "Открытая этимологическая карта", "zh_Hant": "開放詞源地圖", - "hu": "Etimológiai térkép" + "hu": "Etimológiai térkép", + "fr": "Open Etymology Map", + "ca": "Open Etymology Map" }, "shortDescription": { "en": "What is the origin of a toponym?", @@ -15,12 +17,14 @@ "de": "Was ist der Ursprung eines Ortsnamens?", "it": "Qual è l’origine di un toponimo?", "zh_Hant": "地名的由來是?", - "hu": "Mi az eredete egy helynévnek?" + "hu": "Mi az eredete egy helynévnek?", + "fr": "Quelle est l'origine de ce toponyme ?", + "es": "¿Cual es el origen de un topónimo?" }, "description": { "en": "On this map, you can see what an object is named after. The streets, buildings, ... come from OpenStreetMap which got linked with Wikidata. In the popup, you'll see the Wikipedia article (if it exists) or a wikidata box of what the object is named after. If the object itself has a wikipedia page, that'll be shown too.

    You can help contribute too!Zoom in enough and all streets will show up. You can click one and a Wikidata-search box will popup. With a few clicks, you can add an etymology link. Note that you need a free OpenStreetMap account to do this.", "nl": "Op deze kaart zie je waar een plaats naar is vernoemd. De straten, gebouwen, ... komen uit OpenStreetMap, waar een link naar Wikidata werd gelegd. In de popup zie je het Wikipedia-artikel van hetgeen naarwaar het vernoemd is of de Wikidata-box.

    Je kan zelf ook meehelpen!Als je ver inzoomt, krijg je alle straten te zien. Klik je een straat aan, dan krijg je een zoekfunctie waarmee je snel een nieuwe link kan leggen. Je hebt hiervoor een gratis OpenStreetMap account nodig.", - "de": "Auf dieser Karte können Sie sehen, wonach ein Objekt benannt ist. Die Straßen, Gebäude, ... stammen von OpenStreetMap, das mit Wikidata verknüpft wurde. In dem Popup sehen Sie den Wikipedia-Artikel (falls vorhanden) oder ein Wikidata-Feld, nach dem das Objekt benannt ist. Wenn das Objekt selbst eine Wikipedia-Seite hat, wird auch diese angezeigt.

    Sie können auch einen Beitrag leisten!Zoomen Sie genug hinein und alle Straßen werden angezeigt. Wenn Sie auf eine Straße klicken, öffnet sich ein Wikidata-Suchfeld. Mit ein paar Klicks können Sie einen Etymologie-Link hinzufügen. Beachten Sie, dass Sie dazu ein kostenloses OpenStreetMap-Konto benötigen.", + "de": "Auf dieser Karte können Sie sehen, wonach ein Objekt benannt ist. Die Straßen, Gebäude, ... stammen von OpenStreetMap, und wurden mit Wikidata verknüpft. Im Popup sehen Sie den Wikipedia-Artikel (falls vorhanden) oder ein Wikidata-Feld, nach dem das Objekt benannt ist. Wenn das Objekt selbst eine Wikipedia-Seite hat, wird auch diese angezeigt.

    Sie können auch einen Beitrag leisten!Wenn Sie weit genug hinein zoomen werden alle Straßen angezeigt. Wenn Sie auf eine Straße klicken, öffnet sich ein Wikidata-Suchfeld. Mit ein paar Klicks können Sie einen Etymologie-Link hinzufügen. Beachten Sie, dass Sie dazu ein kostenloses OpenStreetMap-Konto benötigen.", "it": "Su questa cartina sono visibili i nomi a cui sono riferiti gli oggetti. Le strade, gli edifici, etc. provengono da OpenStreetMap che è a sua volta collegata a Wikidata. Nel popup, se esiste, verrà mostrato l’articolo Wikipedia o l'elemento Wikidata a cui si riferisce il nome di quell’oggetto. Se l’oggetto stesso ha una pagina Wikpedia, anch’essa verrà mostrata.

    Anche tu puoi contribuire!Ingrandisci abbastanza e tutte le strade appariranno. Puoi cliccare su una e apparirà un popup con la ricerca Wikidata. Con pochi clic puoi aggiungere un collegamento etimologico. Tieni presente che per farlo, hai bisogno di un account gratuito su OpenStreetMap.", "zh_Hant": "在這份地圖,你可以看到物件是以何命名,道路、 建築等的命名由來連到 Wikidata。在跳出選單,你可以看到物件命名由來的維基條目 (如果有的話),或是 Wikidata 框。如果物件本身有維基頁面,也會顯示。

    你也可以貢獻!放大到夠大的層級,然後所有道路都會顯示。你可以點選一個之後 Wikidata 搜尋框會跳出來。只要點幾下,你可以新增詞源連結。注意你要有開放街圖帳號才能這麼做。", "hu": "Ezen a térképen az látható, hogy egy objektum milyen névre hallgat. Az utcák, épületek stb. az OpenStreetMapről származnak, amely össze van kapcsolva a Wikidata adatbázissal. A felugró ablakban megjelenik a megfelelő Wikipedia-szócikk (ha van) vagy egy Wikidata-doboz arról, amiről az objektumot elnevezték. Ha magának az objektumnak van Wikipédia-oldala, az is megjelenik.

    A térképet Ön is szerkesztheti!nagyítson rá, és az összes utca megjelenik. Ha valamelyikre rákattint, megjelenik Wikidata-kereső doboz. Néhány kattintással hozzáadhat egy etimológiai linket. Ne feledje, hogy ehhez szüksége van egy ingyenes OpenStreetMap-fiókra." @@ -48,7 +52,8 @@ "de": "Straßen ohne Informationen zur Namensherkunft", "it": "Strade senza informazioni etimologiche", "zh_Hant": "道路沒有詞源資訊", - "hu": "Etimológiai adat nélküli utcák" + "hu": "Etimológiai adat nélküli utcák", + "fr": "Route sans origine étymologique" }, "minzoom": 18, "source": { @@ -72,7 +77,8 @@ "de": "Parks und Waldflächen ohne Informationen zur Namensherkunft", "it": "Parchi e foreste senza informazioni etimologiche", "zh_Hant": "公園與森哥沒有詞源資訊", - "hu": "Etimológiai adat nélküli parkok és erdők" + "hu": "Etimológiai adat nélküli parkok és erdők", + "fr": "Parcs et forêts sans origine étymologique" }, "minzoom": 18, "source": { @@ -95,7 +101,9 @@ "override": { "id": "education_institutions_without_etymology", "=name": { - "en": "Education institutions without etymology information" + "en": "Education institutions without etymology information", + "de": "Bildungseinrichtungen ohne Informationen zur Namensherkunft", + "fr": "Institutions d'éducation sans origine étymologique" }, "minzoom": 18, "source": { @@ -107,7 +115,115 @@ "amenity=school", "amenity=kindergarten", "amenity=university", - "amenity=college" + "amenity=college", + "landuse=education" + ] + } + ] + } + } + } + }, + { + "builtin": "etymology", + "override": { + "id": "cultural_places_without_etymology", + "=name": { + "en": "Cultural places without etymology information", + "de": "Kultureinrichtungen ohne Informationen zur Namensherkunft", + "fr": "Lieux culturels sans origine étymologique" + }, + "minzoom": 18, + "source": { + "osmTags": { + "and": [ + "name~*", + { + "or": [ + "amenity=arts_centre", + "amenity=cinema", + "amenity=community_centre", + "amenity=library", + "amenity=theatre" + ] + } + ] + } + } + } + }, + { + "builtin": "etymology", + "override": { + "id": "toursistic_places_without_etymology", + "=name": { + "en": "Toursistic places without etymology information", + "de": "Touristische Einrichtungen ohne Informationen zur Namensherkunft", + "fr": "Lieux touristiques sans origine étymologique" + }, + "minzoom": 18, + "source": { + "osmTags": { + "and": [ + "name~*", + { + "or": [ + "tourism=aquarium", + "tourism=museum", + "tourism=theme_park", + "tourism=zoo" + ] + } + ] + } + } + } + }, + { + "builtin": "etymology", + "override": { + "id": "health_and_social_places_without_etymology", + "=name": { + "en": "Health and social places without etymology information", + "de": "Gesundheits- und Sozialeinrichtungen ohne Informationen zur Namensherkunft", + "fr": "Établissements sociaux ou de soins sans origine étymologique" + }, + "minzoom": 18, + "source": { + "osmTags": { + "and": [ + "name~*", + { + "or": [ + "amenity=clinic", + "amenity=hospital", + "amenity=social_facility" + ] + } + ] + } + } + } + }, + { + "builtin": "etymology", + "override": { + "id": "sport_places_without_etymology", + "=name": { + "en": "Sport places without etymology information", + "de": "Sporteinrichtungen ohne Informationen zur Namensherkunft", + "fr": "Lieux sportifs sans origine étymologique" + }, + "minzoom": 18, + "source": { + "osmTags": { + "and": [ + "name~*", + { + "or": [ + "leisure=sports_centre", + "leisure=stadium", + "leisure=swimming_pool" ] } ] diff --git a/assets/themes/facadegardens/facadegardens.json b/assets/themes/facadegardens/facadegardens.json index 923346ff35..71b5cf63f1 100644 --- a/assets/themes/facadegardens/facadegardens.json +++ b/assets/themes/facadegardens/facadegardens.json @@ -8,7 +8,8 @@ "it": "Giardini verticali", "fr": "Facade gardens", "de": "Fassadengärten", - "hu": "Homlokzati kertek" + "hu": "Homlokzati kertek", + "ca": "Jardins verticals" }, "shortDescription": { "nl": "Deze kaart toont geveltuintjes met foto's en bruikbare info over oriëntatie, zonlicht en planttypes.", @@ -47,7 +48,8 @@ "fr": "Jardins muraux", "de": "Fassadengärten", "it": "Giardini verticali", - "hu": "Homlokzati kertek" + "hu": "Homlokzati kertek", + "ca": "Jardins verticals" }, "minzoom": 12, "source": { @@ -67,7 +69,8 @@ "fr": "Jardin mural", "de": "Fassadengarten", "it": "Giardino verticale", - "hu": "Homlokzati kert" + "hu": "Homlokzati kert", + "ca": "Jardí vertical" } }, "description": { @@ -78,7 +81,8 @@ "fr": "Jardins muraux", "de": "Fassadengärten", "it": "Giardini verticali", - "hu": "Homlokzati kertek" + "hu": "Homlokzati kertek", + "ca": "Jardins verticals" }, "tagRenderings": [ "images", @@ -90,7 +94,8 @@ "fr": "Orientation : {direction} (0 pour le Nord et 90 pour l’Ouest)", "de": "Ausrichtung: {direction} (wobei 0=N und 90=O)", "it": "Orientamento: {direction} (0 per il Nord e 90 per l’Est)", - "hu": "Tájolás: {direction} (0=észak, 90=kelet stb.)" + "hu": "Tájolás: {direction} (0=észak, 90=kelet stb.)", + "es": "Orientación: {direction} (donde 0=N y 90=O)" }, "question": { "nl": "Hoe is de tuin georiënteerd?", @@ -99,7 +104,8 @@ "fr": "Quelle est l’orientation du jardin ?", "de": "Wie ist der Garten ausgerichtet?", "it": "Com’è orientato questo giardino?", - "hu": "Milyen a kert tájolása?" + "hu": "Milyen a kert tájolása?", + "es": "¿Cual es la orientación del jardín?" }, "freeform": { "type": "direction", @@ -123,7 +129,8 @@ "it": "Il giardino è completamente illuminato dal sole", "fr": "Le jardin est en plein soleil", "de": "Der Garten liegt in voller Sonne", - "hu": "A kert teljesen a napon van" + "hu": "A kert teljesen a napon van", + "es": "El jardín está completamente al sol" } }, { @@ -140,7 +147,8 @@ "it": "Il giardino è parzialmente in ombra", "fr": "Le jardin est partiellement ensoleillé", "de": "Der Garten liegt im Halbschatten", - "hu": "A kert részben árnyékban van" + "hu": "A kert részben árnyékban van", + "es": "El jardín está parcialmente a la sombra" } }, { @@ -156,7 +164,8 @@ "it": "Il giardino è in ombra", "fr": "Le jardin est à l’ombre", "de": "Der Garten liegt im Schatten", - "hu": "A kert árnyékban van" + "hu": "A kert árnyékban van", + "es": "El jardín está a la sombra" } } ], @@ -168,7 +177,8 @@ "ru": "Сад расположен на солнечной стороне или в тени?", "fr": "Quel est l’ensoleillement du jardin ?", "de": "Ist der Garten schattig oder sonnig?", - "hu": "Árnyékban vagy napon van a kert?" + "hu": "Árnyékban vagy napon van a kert?", + "es": "¿El jardín está al sol o a la sombra?" } }, { @@ -231,7 +241,8 @@ "it": "Data di realizzazione del giardino: {start_date}", "fr": "Date de construction du jardin : {start_date}", "de": "Errichtungsdatum des Gartens: {start_date}", - "hu": "A kert építésének időpontja: {start_date}" + "hu": "A kert építésének időpontja: {start_date}", + "es": "Fecha de construcción del jardín: {start_date}" }, "question": { "nl": "Wanneer werd de tuin aangelegd? (vul gewoon een jaartal in)", @@ -240,7 +251,8 @@ "it": "Quando è stato realizzato il giardino? (è sufficiente l'anno)", "fr": "Quand le jardin a-t’il été construit ? (L’année suffit)", "de": "Wann wurde der Garten angelegt? (Jahr ist ausreichend)", - "hu": "Mikor épült a kert? (Év megadása is elegendő)" + "hu": "Mikor épült a kert? (Év megadása is elegendő)", + "es": "¿Cuándo se construyó el jardín? (un año es suficiente)" }, "freeform": { "key": "start_date", @@ -264,7 +276,8 @@ "it": "Ci sono piante commestibili", "fr": "Il y a des plantes comestibles", "de": "Es gibt essbare Pflanzen", - "hu": "Van benne ehető növény" + "hu": "Van benne ehető növény", + "es": "Hay plantas comestibles" } }, { @@ -280,7 +293,8 @@ "it": "Non ci sono piante commestibili", "fr": "Il n’y a pas de plantes comestibles", "de": "Es gibt keine essbaren Pflanzen", - "hu": "Nincs benne ehető növény" + "hu": "Nincs benne ehető növény", + "es": "No hay plantas comestibles" } } ], @@ -291,7 +305,8 @@ "it": "Ci sono piante commestibili?", "fr": "Y-a-t’il des plantes comestibles ?", "de": "Gibt es essbare Pflanzen?", - "hu": "Van-e benne ehető növény?" + "hu": "Van-e benne ehető növény?", + "es": "¿Hay alguna planta comestible?" } }, { @@ -304,7 +319,8 @@ "ru": "Какие виды растений обитают здесь?", "fr": "Quel type de plantes pousse ici ?", "de": "Welche Pflanzen wachsen hier?", - "hu": "Milyen jellegű növények nőnek benne?" + "hu": "Milyen jellegű növények nőnek benne?", + "es": "¿Qué tipo de plantas crecen aquí?" }, "mappings": [ { @@ -368,7 +384,8 @@ "fr": "Plus de détails : {description}", "de": "Weitere Details: {description}", "eo": "Pliaj detaloj: {description}", - "hu": "További részletek: {description}" + "hu": "További részletek: {description}", + "es": "Más detalles: {description}" }, "question": { "nl": "Aanvullende omschrijving van de tuin (indien nodig, en voor zover nog niet omschreven hierboven)", @@ -378,7 +395,8 @@ "ru": "Дополнительная информация о саде (если требуется или еще не указана выше)", "fr": "Détails supplémentaires sur le jardin (si nécessaire et non décrit précédemment)", "de": "Zusätzliche Informationen über den Garten (falls erforderlich und oben noch nicht beschrieben)", - "hu": "További leíró jellegű információ a kertről (ha szükséges, és följebb nincs leírva)" + "hu": "További leíró jellegű információ a kertről (ha szükséges, és följebb nincs leírva)", + "es": "Información descriptiva complementaria sobre el jardín (si es necesaria pero no se describe arriba)" }, "freeform": { "key": "description", @@ -394,13 +412,14 @@ "garden:type=facade_garden" ], "title": { - "nl": "geveltuintje", - "en": "facade garden", + "nl": "een geveltuintje", + "en": "a facade garden", "ja": "ファサード庭園", - "it": "giardino verticale", - "fr": "jardin mural", - "de": "Fassadengarten", - "hu": "homlokzatkert" + "it": "una giardino verticale", + "fr": "une jardin mural", + "de": "eine fassadengarten", + "hu": "homlokzatkert", + "ca": "un jardí vertical" }, "description": { "nl": "Voeg geveltuintje toe", @@ -409,7 +428,8 @@ "it": "Aggiungi un giardino verticale", "fr": "Ajouter un jardin mural", "de": "Einen Fassadengarten hinzufügen", - "hu": "Homlokzatkert hozzáadása" + "hu": "Homlokzatkert hozzáadása", + "ca": "Afegeix un jardí vertical" } } ], diff --git a/assets/themes/food/food.json b/assets/themes/food/food.json index 05b4516cea..696c5931d2 100644 --- a/assets/themes/food/food.json +++ b/assets/themes/food/food.json @@ -7,11 +7,15 @@ "it": "Ristoranti e fast food", "nb_NO": "Restauranter og søppelmat", "zh_Hant": "餐廳與快餐店", - "hu": "Éttermek és büfék" + "hu": "Éttermek és büfék", + "ca": "Restaurants i menjar ràpid", + "es": "Restaurantes y comida rápida" }, "description": { "nl": "Restaurants en fast food", - "en": "Restaurants and fast food" + "en": "Restaurants and fast food", + "de": "Restaurants und Schnellimbisse", + "es": "Restaurantes y comida rápida" }, "maintainer": "", "icon": "./assets/layers/food/restaurant.svg", diff --git a/assets/themes/fritures/fritures.json b/assets/themes/fritures/fritures.json index 46d5a4e8ea..5eb7b7f462 100644 --- a/assets/themes/fritures/fritures.json +++ b/assets/themes/fritures/fritures.json @@ -3,11 +3,14 @@ "title": { "nl": "Friturenkaart", "en": "Fries shops", - "fr": "Carte des friteries" + "fr": "Carte des friteries", + "de": "Pommes-frites-Läden", + "ca": "Botigues de patates" }, "description": { "en": "On this map, you'll find your favourite fries shop!", - "nl": "Op deze kaart vind je je favoriete frituur!" + "nl": "Op deze kaart vind je je favoriete frituur!", + "de": "Auf dieser Karte findest du deine Lieblings-Pommesbude!" }, "maintainer": "", "icon": "./assets/themes/fritures/logo.svg", @@ -27,7 +30,8 @@ "fr": "Friteries", "de": "Pommesbude", "it": "Friggitoria", - "hu": "Sültkrumplievő-hely" + "hu": "Sültkrumplievő-hely", + "ca": "Botigues de patates" }, "=presets": [], "source": { diff --git a/assets/themes/fruit_trees/fruit_trees.json b/assets/themes/fruit_trees/fruit_trees.json index 7fe8c93236..617fb84901 100644 --- a/assets/themes/fruit_trees/fruit_trees.json +++ b/assets/themes/fruit_trees/fruit_trees.json @@ -46,7 +46,7 @@ "fixme=Added with mapcomplete - geometry still to draw" ], "title": { - "nl": "Boomgaard" + "nl": "een boomgaard" }, "description": { "nl": "Voeg een boomgaard toe (als punt - omtrek nog te tekenen)" @@ -157,7 +157,7 @@ "natural=tree" ], "title": { - "nl": "Boom" + "nl": "een boom" }, "description": { "nl": "Voeg hier een boom toe" diff --git a/assets/themes/ghostbikes/ghostbikes.json b/assets/themes/ghostbikes/ghostbikes.json index 0b39cc7452..c1bbdf8837 100644 --- a/assets/themes/ghostbikes/ghostbikes.json +++ b/assets/themes/ghostbikes/ghostbikes.json @@ -24,7 +24,7 @@ "description": { "en": "A ghost bike is a memorial for a cyclist who died in a traffic accident, in the form of a white bicycle placed permanently near the accident location.

    On this map, one can see all the ghost bikes which are known by OpenStreetMap. Is a ghost bike missing? Everyone can add or update information here - you only need to have a (free) OpenStreetMap account.", "nl": "Een Witte Fiets of Spookfiets is een aandenken aan een fietser die bij een verkeersongeval om het leven kwam. Het gaat om een fiets die volledig wit is geschilderd en in de buurt van het ongeval werd geinstalleerd.

    Op deze kaart zie je alle witte fietsen die door OpenStreetMap gekend zijn. Ontbreekt er een Witte Fiets of wens je informatie aan te passen? Meld je dan aan met een (gratis) OpenStreetMap account.", - "de": "Ein Geisterrad ist ein weißes Fahrrad, dass zum Gedenken eines tödlich verunglückten Radfahrers vor Ort aufgestellt wurde.

    Auf dieser Karte kann man alle Geisterräder sehen, die OpenStreetMap eingetragen sind. Fehlt ein Geisterrad? Jeder kann hier Informationen hinzufügen oder aktualisieren - Sie benötigen lediglich einen (kostenlosen) OpenStreetMap-Account.", + "de": "Ein Geisterrad ist ein weißes Fahrrad, dass zum Gedenken eines tödlich verunglückten Radfahrers vor Ort aufgestellt wurde.

    Auf dieser Karte sehen Sie alle Geisterräder, die in OpenStreetMap eingetragen sind. Fehlt ein Geisterrad? Jeder kann hier Informationen hinzufügen oder aktualisieren - Sie benötigen nur ein (kostenloses) OpenStreetMap-Konto.", "ja": "ゴーストバイクは、交通事故で死亡したサイクリストを記念するもので、事故現場の近くに恒久的に置かれた白い自転車の形をしています。

    このマップには、OpenStreetMapで知られているゴーストバイクがすべて表示されます。ゴーストバイクは行方不明ですか?誰でもここで情報の追加や更新ができます。必要なのは(無料の)OpenStreetMapアカウントだけです。", "zh_Hant": "幽靈單車是用來紀念死於交通事故的單車騎士,在事發地點附近放置白色單車。

    在這份地圖上面,你可以看到所有在開放街圖已知的幽靈單車。有缺漏的幽靈單車嗎?所有人都可以在這邊新增或是更新資訊-只有你有(免費)開放街圖帳號。", "fr": "Les vélos fantômes sont des mémoriaux pour les cyclistes tuées sur la route, prenant la forme de vélos blancs placés à proximité des faits.

    Cette carte indique leur emplacement à partir d’OpenStreetMap. Il est possible de contribuer aux informations ici, sous réserve d’avoir un compte OpenStreetMap (gratuit).", diff --git a/assets/themes/grb_import/grb.json b/assets/themes/grb_import/grb.json index 28b9c62a44..b8abc07595 100644 --- a/assets/themes/grb_import/grb.json +++ b/assets/themes/grb_import/grb.json @@ -9,7 +9,8 @@ "description": { "nl": "Dit thema helpt het GRB importeren.", "en": "This theme is an attempt to help automating the GRB import.", - "hu": "Ez a sablon a flandriai GRB épületimportálás automatizlását kívánja megkönnyíteni." + "hu": "Ez a sablon a flandriai GRB épületimportálás automatizlását kívánja megkönnyíteni.", + "de": "Dieses Thema ist ein Versuch, die Automatisierung des GRB-Imports zu unterstützen." }, "maintainer": "Pieter Vander Vennet", "icon": "./assets/themes/grb_import/logo.svg", @@ -128,16 +129,12 @@ }, { "if": "building=apartments", - "then": "An apartment building - highrise for living" + "then": "An apartment building (highrise building for living)" }, { "if": "building=office", "then": "An office building - highrise for work" }, - { - "if": "building=apartments", - "then": "An apartment building" - }, { "if": "building=shed", "then": "A small shed, e.g. in a garden" @@ -377,7 +374,15 @@ "tagRenderings+": [ { "id": "render_embedded", - "render": "Dit CRAB-adres ligt in OSM-gebouw {_embedding_id}" + "render": "Dit CRAB-adres ligt in OSM-gebouw {_embedding_id}", + "mappings": [ + { + "if": "_embedding_id=", + "then": { + "nl": "Geen omliggend OSM-gebouw gevonden" + } + } + ] }, { "id": "embedded_address", @@ -412,16 +417,29 @@ }, { "id": "import-button", - "render": "{import_button(address, addr:street=$STRAATNM; addr:housenumber=$_HNRLABEL,Voeg dit adres als een nieuw adrespunt toe,,osm-buildings,5)}", - "condition": { - "and": [ - "_embedding_id!=", - { - "or": [ - "_embedding_street!:={STRAATNM}", - "_embedding_nr!:={_HNRLABEL}" - ] + "render": { + "special": { + "type": "import_button", + "targetLayer": "address", + "tags": "addr:street=$STRAATNM; addr:housenumber=$_HNRLABEL", + "text": { + "nl": "Voeg dit adres als een nieuw adrespunt toe" + }, + "snap_onto_layers": "osm-buildings" + } + }, + "mappings": [ + { + "if": "_embedding_id=", + "then": { + "nl": "Geen omliggend OSM-gebouw gevonden. Een omliggend gebouw is nodig om dit punt als adres punt toe te voegen.
    Importeer eerst de gebouwen. Vernieuw dan de pagina om losse adressen toe te voegen
    " } + } + ], + "condition": { + "or": [ + "_embedding_street!:={STRAATNM}", + "_embedding_nr!:={_HNRLABEL}" ] } } @@ -451,7 +469,7 @@ "_overlaps_with=feat.get('_overlaps_with_buildings').find(f => f.overlap > 1 /* square meter */ )", "_osm_obj:source:ref=feat.get('_overlaps_with')?.feat?.properties['source:geometry:ref']", "_osm_obj:id=feat.get('_overlaps_with')?.feat?.properties?.id", - "_osm_obj:source:date=feat.get('_overlaps_with')?.feat?.properties['source:geometry:date'].replace(/\\//g, '-')", + "_osm_obj:source:date=(feat.get('_overlaps_with')?.feat?.properties ?? {})['source:geometry:date']?.replace(/\\//g, '-')", "_osm_obj:building=feat.get('_overlaps_with')?.feat?.properties?.building", "_osm_obj:addr:street=(feat.get('_overlaps_with')?.feat?.properties ?? {})['addr:street']", "_osm_obj:addr:housenumber=(feat.get('_overlaps_with')?.feat?.properties ?? {})['addr:housenumber']", @@ -472,6 +490,14 @@ "id": "Import-button", "render": "{import_way_button(osm-buildings,building=$building;man_made=$man_made; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref; addr:street=$addr:street; addr:housenumber=$addr:housenumber; building:min_level=$_building:min_level, Upload this building to OpenStreetMap,,_is_part_of_building=true,1,_moveable=true)}", "mappings": [ + { + "#": "Failsafe", + "if": "_grb_ref=", + "then": { + "en": "Did not yet calculate the metatags... Reopen this popup", + "de": "Metatags noch nicht berechnet... Dieses Fenster erneut öffnen" + } + }, { "#": "Actually the same as below, except that the text shows 'add the address' too", "if": { diff --git a/assets/themes/grb_import/grb_fixme.json b/assets/themes/grb_import/grb_fixme.json index 2ae057dfd4..6fecd83f04 100644 --- a/assets/themes/grb_import/grb_fixme.json +++ b/assets/themes/grb_import/grb_fixme.json @@ -110,7 +110,8 @@ "render": "The building type is {building}", "question": { "en": "What kind of building is this?", - "de": "Was ist das für ein Gebäude?" + "de": "Was ist das für ein Gebäude?", + "es": "¿Qué tipo de este edificio es este?" }, "mappings": [ { @@ -127,16 +128,12 @@ }, { "if": "building=apartments", - "then": "An apartment building - highrise for living" + "then": "An apartment building (a highrise building for living)" }, { "if": "building=office", "then": "An office building - highrise for work" }, - { - "if": "building=apartments", - "then": "An apartment building" - }, { "if": "building=shed", "then": "A small shed, e.g. in a garden" diff --git a/assets/themes/hackerspaces/hackerspaces.json b/assets/themes/hackerspaces/hackerspaces.json index c5728cb7ec..0bc66064fc 100644 --- a/assets/themes/hackerspaces/hackerspaces.json +++ b/assets/themes/hackerspaces/hackerspaces.json @@ -6,7 +6,8 @@ "it": "Hackerspace", "ru": "Хакерспейсы", "zh_Hant": "駭客空間", - "hu": "Hackerspace-ek" + "hu": "Hackerspace-ek", + "nl": "Hackerspaces" }, "shortDescription": { "en": "A map of hackerspaces", @@ -30,260 +31,6 @@ "startZoom": 1, "widenFactor": 5, "layers": [ - { - "id": "hackerspaces", - "name": { - "en": "Hackerspace", - "de": "Hackerspace", - "ru": "Хакерспейс", - "zh_Hant": "駭客空間", - "hu": "Hackerspace" - }, - "minzoom": 8, - "title": { - "render": { - "en": "Hackerspace", - "de": "Hackerspace", - "ru": "Хакерспейс", - "zh_Hant": "駭客空間", - "hu": "Hackerspace" - }, - "mappings": [ - { - "if": { - "and": [ - "name~*" - ] - }, - "then": { - "en": " {name}", - "de": " {name}", - "ru": " {name}", - "zh_Hant": " {name}", - "hu": " {name}" - } - } - ] - }, - "description": { - "en": "Hackerspace", - "de": "Hackerspace", - "ru": "Хакерспейс", - "zh_Hant": "駭客空間", - "hu": "Hackerspace" - }, - "tagRenderings": [ - { - "id": "is_makerspace", - "question": { - "en": "Is this a hackerspace or a makerspace?", - "de": "Ist dies ein Hackerspace oder ein Makerspace?", - "zh_Hant": "這邊是駭客空間還是創客空間?", - "hu": "Ez hackerspace vagy makerspace?" - }, - "mappings": [ - { - "if": "hackerspace=makerspace", - "then": { - "en": "This is a makerspace", - "de": "Dies ist ein Makerspace", - "zh_Hant": "這是創客空間", - "hu": "Ez egy makerspace" - } - }, - { - "if": "hackerspace=", - "then": { - "en": "This is a traditional (software oriented) hackerspace", - "de": "Dies ist ein traditioneller (softwareorientierter) Hackerspace", - "zh_Hant": "這是傳統的 (軟體導向) 駭客空間", - "hu": "Ez egy hagyományos (szoftverekkel foglalkozó) hackerspace" - } - } - ] - }, - { - "question": { - "en": "What is the name of this hackerspace?", - "de": "Wie lautet der Name dieses Hackerspace?", - "zh_Hant": "這個駭客空間的名稱是?" - }, - "render": { - "en": "This hackerspace is named {name}", - "de": "Dieser Hackerspace heißt {name}", - "zh_Hant": "這個駭客空間叫 {name}" - }, - "freeform": { - "key": "name" - }, - "id": "hackerspaces-name" - }, - "website", - "email", - "phone", - { - "question": { - "en": "When is this hackerspace opened?", - "de": "Wann hat dieser Hackerspace geöffnet?", - "zh_Hant": "這個駭客空間的營業時間?" - }, - "freeform": { - "key": "opening_hours", - "type": "opening_hours" - }, - "render": { - "en": "{opening_hours_table()}", - "de": "{opening_hours_table()}", - "ru": "{opening_hours_table()}", - "zh_Hant": "{opening_hours_table()}" - }, - "mappings": [ - { - "if": { - "and": [ - "opening_hours=24/7" - ] - }, - "then": { - "en": "Opened 24/7", - "de": "durchgehend geöffnet", - "ru": "Открыто 24/7", - "zh_Hant": "24/7 營業" - } - } - ], - "id": "hackerspaces-opening_hours" - }, - "wheelchair-access", - { - "id": "hs-club-mate", - "question": { - "en": "Does this hackerspace serve Club Mate?", - "de": "Gibt es in diesem Hackerspace Club Mate?", - "zh_Hant": "這個駭客空間是否服務俱樂部伙伴?" - }, - "mappings": [ - { - "if": { - "and": [ - "drink:club-mate=yes" - ] - }, - "then": { - "en": "This hackerspace serves club mate", - "de": "In diesem Hackerspace gibt es Club Mate", - "zh_Hant": "這個駭客空間服務俱樂部伙伴" - } - }, - { - "if": { - "and": [ - "drink:club-mate=no" - ] - }, - "then": { - "en": "This hackerspace does not serve club mate", - "de": "In diesem Hackerspace gibt es kein Club Mate", - "zh_Hant": "這個駭客空間沒有服務俱樂部伙伴" - } - } - ] - }, - { - "render": { - "en": "This hackerspace was founded at {start_date}", - "de": "Dieser Hackerspace wurde gegründet am {start_date}", - "zh_Hant": "這駭客空間是 {start_date} 成立的" - }, - "question": { - "en": "When was this hackerspace founded?", - "de": "Wann wurde dieser Hackerspace gegründet?", - "zh_Hant": "這個駭客空間何時成立的?" - }, - "freeform": { - "key": "start_date", - "type": "date" - }, - "id": "hackerspaces-start_date" - } - ], - "presets": [ - { - "tags": [ - "leisure=hackerspace" - ], - "title": { - "en": "Hackerspace", - "de": "Hackerspace", - "ru": "Хакерспейс", - "zh_Hant": "駭客空間", - "hu": "Hackerspace" - }, - "description": { - "en": "A hackerspace is an area where people interested in software gather", - "de": "Ein Hackerspace ist ein Ort, an dem sich Menschen treffen, die sich für Software interessieren", - "zh_Hant": "駭客空間是對軟體有興趣的人聚集的地方", - "hu": "A hackerspace egy olyan hely, ahol szoftverek iránt érdeklő emberek találkoznak" - } - }, - { - "tags": [ - "leisure=hackerspace", - "hackerspace=makerspace" - ], - "title": { - "en": "Makerspace", - "de": "Makerspace", - "zh_Hant": "創客空間", - "hu": "Makerspace" - }, - "description": { - "en": "A makerspace is a place where DIY-enthusiasts gather to experiment with electronics such as arduino, LEDstrips, ...", - "de": "Ein Makerspace ist ein Ort, an dem Heimwerker-Enthusiasten zusammenkommen, um mit Elektronik zu experimentieren, wie Arduino, LED-Strips, ...", - "zh_Hant": "創客空間是 DIY 愛好者聚集在一起弄電子零件實驗,例如用 arduino、LEDstrips 等...", - "hu": "A makerspace olyan hely, ahol a barkácsolás szerelmesei találkoznak, hogy olyan elektronikai eszközökkel kísérletezzenek, mint például az Arduino vagy a LEDstrips." - } - } - ], - "source": { - "osmTags": { - "and": [ - "leisure=hackerspace" - ] - } - }, - "mapRendering": [ - { - "icon": { - "render": "./assets/themes/hackerspaces/glider.svg", - "mappings": [ - { - "if": { - "and": [ - "hackerspace=makerspace" - ] - }, - "then": "./assets/themes/hackerspaces/led.png" - } - ] - }, - "iconSize": { - "render": "40,40,center" - }, - "location": [ - "point", - "centroid" - ] - }, - { - "color": { - "render": "#00f" - }, - "width": { - "render": "8" - } - } - ] - } + "hackerspace" ] } \ No newline at end of file diff --git a/assets/themes/hailhydrant/hailhydrant.json b/assets/themes/hailhydrant/hailhydrant.json index 0d4007b45d..e904898aa7 100644 --- a/assets/themes/hailhydrant/hailhydrant.json +++ b/assets/themes/hailhydrant/hailhydrant.json @@ -1,15 +1,17 @@ { "id": "hailhydrant", "title": { - "en": "Hydrants, Extinguishers, Fire stations, and Ambulance stations.", + "en": "Hydrants, Extinguishers, Fire stations, and Ambulance stations", "ja": "消火栓、消火器、消防署、救急ステーションです。", "zh_Hant": "消防栓、滅火器、消防隊、以及急救站。", "ru": "Пожарные гидранты, огнетушители, пожарные станции и станции скорой помощи.", "fr": "Bornes incendies, extincteurs, casernes de pompiers et ambulanciers.", "it": "Idranti, estintori, caserme dei vigili del fuoco e stazioni delle ambulanze.", "nb_NO": "Hydranter, brannslukkere, brannstasjoner, og ambulansestasjoner.", - "de": "Hydranten, Feuerlöscher, Feuerwachen und Rettungswachen.", - "hu": "Tűzcsapok, tűzoltó készülékek, tűzoltóságok és mentőállomások." + "de": "Hydranten, Feuerlöscher, Feuerwachen und Rettungswachen", + "hu": "Tűzcsapok, tűzoltó készülékek, tűzoltóságok és mentőállomások.", + "nl": "Brandkranen, brandblussers, brandweerposten en ambulanceposten", + "es": "Hidrantes, Extintores, Parques de bomberos y Parques de ambulancias" }, "shortDescription": { "en": "Map to show hydrants, extinguishers, fire stations, and ambulance stations.", @@ -19,7 +21,8 @@ "fr": "Carte indiquant les bornes incendies, extincteurs, casernes de pompiers et ambulanciers.", "de": "Hydranten, Feuerlöscher, Feuerwachen und Rettungswachen.", "it": "Carta che mostra gli idranti, gli estintori, le caserme dei vigili del fuoco e le stazioni delle ambulanze.", - "hu": "Térkép tűzcsapok, tűzoltó készülékek, tűzoltóságok és mentőállomások megjelenítéséhez." + "hu": "Térkép tűzcsapok, tűzoltó készülékek, tűzoltóságok és mentőállomások megjelenítéséhez.", + "es": "Mapa para mostrar hidrantes, extintores, parques de bomberos y parques de ambulancias." }, "description": { "en": "On this map you can find and update hydrants, fire stations, ambulance stations, and extinguishers in your favorite neighborhoods.\n\nYou can track your precise location (mobile only) and select layers that are relevant for you in the bottom left corner. You can also use this tool to add or edit pins (points of interest) to the map and provide additional details by answering available questions.\n\nAll changes you make will automatically be saved in the global database of OpenStreetMap and can be freely re-used by others.", @@ -28,7 +31,9 @@ "fr": "Sur cette carte on trouve et met à jour les bornes incendies, extincteurs, casernes de pompiers et ambulanciers dans son quartier.
    Les options en haut à gauche permettent de localiser sa position (sur téléphone) et de filtrer les éléments. Il est possible d’utiliser cet outil pour ajouter et éditer les points d’intérêt de la carte et d’y ajouter des détails en répondant aux questions.
    Toutes les modifications sont automatiquement enregistrées dans la base de données OpenStreetMap et peuvent êtres librement réutilisées par d’autres.", "de": "Auf dieser Karte können Sie Hydranten, Feuerwachen, Krankenwagen und Feuerlöscher in Ihren bevorzugten Stadtvierteln finden und aktualisieren.\n\nSie können Ihren genauen Standort verfolgen (nur mobil) und in der unteren linken Ecke die für Sie relevanten Ebenen auswählen. Sie können mit diesem Tool auch Pins (Points of Interest) zur Karte hinzufügen oder bearbeiten und durch die Beantwortung verfügbarer Fragen zusätzliche Angaben machen.\n\nAlle von Ihnen vorgenommenen Änderungen werden automatisch in der globalen Datenbank von OpenStreetMap gespeichert und können von anderen frei weiterverwendet werden.", "it": "In questa cartina puoi vedere e aggiornare idranti, stazioni dei pompieri, stazioni delle ambulanze ed estintori del tuo quartiere preferito.\n\nPuoi seguire la tua posizione precisa (solo su cellulare) e selezionare i livelli che ti interessano nell’angolo in basso a sinistra. Puoi anche usare questo strumento per aggiungere o modificare i PDI sulla mappa e fornire ulteriori dettagli rispondendo alle domande.\n\nTutte le modifiche che farai verranno automaticamente salvate nel database globale di OpenStreetMap e potranno essere riutilizzate liberamente da tutti.", - "hu": "Ezen a térképen tűzcsapokat, tűzoltóállomásokat, mentőállomásokat és tűzoltóállomásokat találhat és szerkeszthet kedvenc városrészeiben (vagy másutt).\n\nA bal alsó sarokban nyomon követheti pontos tartózkodási helyét (csak mobilon), és kiválaszthatja az Ön számára releváns rétegeket. Ezzel az eszközzel gombostűket (érdekes pontokat, POI-kat) is szerkeszthet vagy felrajzolhat a térképre, a rendelkezésre álló kérdések megválaszolásával pedig további részleteket adhat meg.\n\nAz Ön által elvégzett módosítások automatikusan elmentődnek az OpenStreetMap globális adatbázisában, és mások szabadon újra felhasználhatják azokat." + "hu": "Ezen a térképen tűzcsapokat, tűzoltóállomásokat, mentőállomásokat és tűzoltóállomásokat találhat és szerkeszthet kedvenc városrészeiben (vagy másutt).\n\nA bal alsó sarokban nyomon követheti pontos tartózkodási helyét (csak mobilon), és kiválaszthatja az Ön számára releváns rétegeket. Ezzel az eszközzel gombostűket (érdekes pontokat, POI-kat) is szerkeszthet vagy felrajzolhat a térképre, a rendelkezésre álló kérdések megválaszolásával pedig további részleteket adhat meg.\n\nAz Ön által elvégzett módosítások automatikusan elmentődnek az OpenStreetMap globális adatbázisában, és mások szabadon újra felhasználhatják azokat.", + "ru": "На этой карте вы можете найти и обновить местоположение пожарных гидрантов, пожарных станций, станций скорой помощи и огнетушителей в ваших избранных районах населенного пункта. \n\nВы можете записать своё точное месторасположение (только на мобильных устройствах) и выбрать интересующие слои данных в левом нижнем углу. Вы также можете использовать этот инструмент для добавления или изменения точек интереса на карте и дополнять данные, отвечая на вопросы. \n\nВсе сделанные вами изменения автоматически сохраняются в базе данных OpenStreetMap и могут быть свободно переработаны другими пользователями.", + "es": "" }, "maintainer": "Erwin Olario", "icon": "./assets/themes/hailhydrant/logo.svg", diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index 8653e1842f..0a04dea61c 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -81,11 +81,11 @@ "mappings": [ { "if": "theme=aed", - "then": "./assets/themes/aed/logo.svg" + "then": "./assets/themes/aed/aed.svg" }, { "if": "theme=aed_brugge", - "then": "./assets/themes/aed/logo.svg" + "then": "./assets/themes/aed/aed.svg" }, { "if": "theme=artwork", @@ -239,6 +239,10 @@ "if": "theme=personal", "then": "./assets/svg/addSmall.svg" }, + { + "if": "theme=pets", + "then": "./assets/layers/dogpark/dog-park.svg" + }, { "if": "theme=play_forests", "then": "./assets/layers/play_forest/icon.svg" @@ -383,7 +387,7 @@ "render": "{histogram(_embedded_cs:themes, Themename, Number of changesets)}" }, { - "id": "hist_themes", + "id": "hist_users", "render": "{histogram(_embedded_cs:users, Contributor, Number of changesets)}" } ], diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json index 88efbbdd0e..2f198e4cce 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json @@ -149,7 +149,7 @@ "render": "{histogram(_embedded_cs:themes, Themename, Number of changesets)}" }, { - "id": "hist_themes", + "id": "hist_users", "render": "{histogram(_embedded_cs:users, Contributor, Number of changesets)}" } ], diff --git a/assets/themes/maps/maps.json b/assets/themes/maps/maps.json index b18aecf4f6..cc0e372c86 100644 --- a/assets/themes/maps/maps.json +++ b/assets/themes/maps/maps.json @@ -9,8 +9,10 @@ "ru": "Карта карт", "de": "Eine Karte der Karten", "eo": "Mapo de mapoj", - "it": "Una cartina delle cartine", - "nb_NO": "Et kart over kart" + "it": "Una mappa di mappe", + "nb_NO": "Et kart over kart", + "ca": "Un mapa de mapes", + "es": "Un mapa de mapas" }, "shortDescription": { "en": "This theme shows all (touristic) maps that OpenStreetMap knows of", @@ -19,7 +21,8 @@ "ja": "このテーマには、OpenStreetMapが知っているすべての(観光)マップが表示されます", "zh_Hant": "這份主題顯示所有已知的開放街圖上的 (旅遊) 地圖", "de": "Dieses Thema zeigt alle (touristischen) Karten, die OpenStreetMap kennt", - "it": "Questo tema mostra tutte le mappe (turistiche) conosciute da OpenStreetMap" + "it": "Questo tema mostra tutte le mappe (turistiche) di cui OpenStreetMap dispone", + "es": "Este tema muestra todos los mapas (turísticos) que OpenStreetMap conoce" }, "description": { "en": "On this map you can find all maps OpenStreetMap knows - typically a big map on an information board showing the area, city or region, e.g. a tourist map on the back of a billboard, a map of a nature reserve, a map of cycling networks in the region, ...)

    If a map is missing, you can easily map this map on OpenStreetMap.", @@ -28,7 +31,8 @@ "ja": "このマップには、OpenStreetMapが知っているすべてのマップが表示されます。通常は、エリア、都市、または地域を示す情報ボード上の大きなマップが表示されます。たとえば、ビルボードの背面にある観光マップ、自然保護区のマップ、地域内のサイクリングネットワークのマップなどです。)

    マップがない場合は、このマップをOpenStreetMapに簡単にマップできます。", "zh_Hant": "在這份地圖你可以找到所在在開放街圖上已知的地圖 - 特別是顯示地區、城市、區域的資訊版面上的大型地圖,例如佈告欄背面的旅遊地圖,自然保護區的地圖,區域的單車網路地圖,...)

    如果有缺少的地圖,你可以輕易在開放街圖上新增這地圖。", "de": "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.", - "it": "In questa carta puoi trovare tutte le mappe conosciute da OpenStreetMap (tipicamente una grossa mappa su di un pannello informativo che mostra l’area, la città o la regione, ad es. una mappa turistica dietro a un manifesto, la mappa di una riserva naturale, la mappa della rete ciclistica regionale, etc.)

    Se manca una mappa, puoi aggiungerla facilmente a questa su OpenStreetMap." + "it": "In questa carta puoi trovare tutte le mappe conosciute da OpenStreetMap (tipicamente una grossa mappa su di un pannello informativo che mostra l’area, la città o la regione, ad es. una mappa turistica dietro a un manifesto, la mappa di una riserva naturale, la mappa della rete ciclistica regionale, etc.)

    Se manca una mappa, puoi aggiungerla facilmente a questa su OpenStreetMap.", + "es": "En este mapa puedes encontrar todos los mapas que OpenStreetMap conoce - típicamente un mapa grande con un tablero que muestra el área, la ciudad o la región, ej. un mapa turista detrás de una vaya publicitaria, un mapa de una reserva natura, un mapa de redes ciclistas en la región, ...)

    Si falta un mapa, puedes mapear este mapa fácilmente en OpenStreetMap." }, "maintainer": "MapComplete", "icon": "./assets/themes/maps/logo.svg", diff --git a/assets/themes/nature/nature.json b/assets/themes/nature/nature.json index 294d6be521..e0010b285c 100644 --- a/assets/themes/nature/nature.json +++ b/assets/themes/nature/nature.json @@ -2,15 +2,21 @@ "id": "nature", "title": { "en": "Into nature", - "nl": "De Natuur in" + "nl": "De Natuur in", + "de": "In die Natur", + "ca": "A la natura" }, "shortDescription": { "en": "A map for nature lovers, with interesting POI's", - "nl": "Deze kaart bevat informatie voor natuurliefhebbers" + "nl": "Deze kaart bevat informatie voor natuurliefhebbers", + "de": "Eine Karte für Naturliebhaber, mit interessanten Orten", + "es": "Un mapa para amantes de la naturaleza, con PDIs interesantes" }, "description": { "en": "On this map, one can find interesting infromation for tourists and nature lovers, such as ", - "nl": "Op deze kaart vind je informatie voor natuurliefhebbers, zoals info over het natuurgebied waar je inzit, vogelkijkhutten, informatieborden, ..." + "nl": "Op deze kaart vind je informatie voor natuurliefhebbers, zoals info over het natuurgebied waar je inzit, vogelkijkhutten, informatieborden, ...", + "de": "Auf dieser Karte findet man interessante Informationen für Touristen und Naturliebhaber. ", + "es": "En este mapa, uno puede encontrar información interesante para turistas y amantes de la naturaleza, como " }, "maintainer": "", "icon": "./assets/themes/nature/logo.svg", diff --git a/assets/themes/natuurpunt/natuurpunt.css b/assets/themes/natuurpunt/natuurpunt.css index 1839fd8962..a8952f42ea 100644 --- a/assets/themes/natuurpunt/natuurpunt.css +++ b/assets/themes/natuurpunt/natuurpunt.css @@ -20,12 +20,12 @@ @font-face{ font-family:"Open Sans Regular"; - src:url("./assets/themes/natuurpunt/fonts/OpenSans-Regular.ttf"); + src:url("/assets/themes/natuurpunt/fonts/OpenSans-Regular.ttf"); } @font-face{ font-family:"Amaranth"; - src:url("./assets/themes/natuurpunt/fonts/Amaranth-Regular.otf"); + src:url("/assets/themes/natuurpunt/fonts/Amaranth-Regular.otf"); } body { @@ -109,4 +109,4 @@ h1, h2, h3, h4 { .first-filter-panel { /* Additional class on the first layer filter */ border-top: unset !important; -} \ No newline at end of file +} diff --git a/assets/themes/notes/notes.json b/assets/themes/notes/notes.json index a91f9eab90..8d329c85fb 100644 --- a/assets/themes/notes/notes.json +++ b/assets/themes/notes/notes.json @@ -6,12 +6,19 @@ "startZoom": 0, "title": { "en": "Notes on OpenStreetMap", - "hu": "Jegyzetek az OpenStreetMapen" + "hu": "Jegyzetek az OpenStreetMapen", + "nl": "Kaartnotas op OpenStreetMap", + "de": "Notizen von OpenStreetMap", + "ca": "Notes a OpenStreetMap", + "es": "Notas en OpenStreetMap" }, "version": "0.1", "description": { "en": "A note is a pin on the map with some text to indicate something wrong.

    Make sure to checkout the filter view to search for users and text.", - "hu": "A jegyzet egy gombostű a térképen egy szöveggel, amely azt jelzi, hogy valami nem stimmel.

    Felhasználók vagy szövegek kereséséhez nézd meg a szűrő nézetet." + "hu": "A jegyzet egy gombostű a térképen egy szöveggel, amely azt jelzi, hogy valami nem stimmel.

    Felhasználók vagy szövegek kereséséhez nézd meg a szűrő nézetet.", + "nl": "Een kaartnota bevat tekst op een specifieke locatie om aan te duiden dat er iets mis is of ontbreekt.

    Bekijk ook het filtermenu om de notas te filteren op tekst, gebruiker, datum, ...", + "de": "Eine Notiz ist eine Stecknadel auf der Karte mit einer Fehlerbeschreibung.

    Über die Filteransicht kann nach Benutzer und Text gesucht werden.", + "es": "Una nota es un pin en el mapa con algún texto para indicar algo erróneo.

    Asegúrate de comprobar la vista de filtros para buscar usuarios y texto." }, "icon": "./assets/themes/notes/logo.svg", "clustering": false, diff --git a/assets/themes/observation_towers/observation_towers.json b/assets/themes/observation_towers/observation_towers.json index f6bf823f9d..1cfbe97bc1 100644 --- a/assets/themes/observation_towers/observation_towers.json +++ b/assets/themes/observation_towers/observation_towers.json @@ -7,7 +7,9 @@ "it": "Torri di osservazione", "ru": "Смотровые башни", "zh_Hant": "觀景塔", - "hu": "Kilátótornyok" + "hu": "Kilátótornyok", + "ca": "Torres d'observació", + "es": "Torres de observación" }, "shortDescription": { "en": "Publicly accessible towers to enjoy the view", @@ -15,15 +17,17 @@ "de": "Öffentlich zugänglicher Aussichtsturm", "it": "Torri pubblicamente accessibili per godere della vista", "zh_Hant": "開發可及能觀景的高塔", - "hu": "Nyilvános tornyok, hogy gyönyörködhessünk a kilátásban" + "hu": "Nyilvános tornyok, hogy gyönyörködhessünk a kilátásban", + "es": "Torres accesibles públicamente para disfrutar de la vista" }, "description": { "nl": "Publieke uitkijktorens om van het panorama te genieten", "en": "Publicly accessible towers to enjoy the view", - "de": "Öffentlich zugänglicher Aussichtsturm", + "de": "Eine Karte mit öffentlich zugänglichen Aussichtstürmen", "it": "Torri pubblicamente accessibili per godere della vista", "zh_Hant": "開放可及能觀景的高塔", - "hu": "Nyilvános tornyok, hogy gyönyörködhessünk a kilátásban" + "hu": "Nyilvános tornyok, hogy gyönyörködhessünk a kilátásban", + "es": "Torres accesibles públicamente para disfrutar de la vista" }, "maintainer": "", "icon": "./assets/layers/observation_tower/Tower_observation.svg", diff --git a/assets/themes/openwindpowermap/openwindpowermap.json b/assets/themes/openwindpowermap/openwindpowermap.json index 7c1d079784..2833dec13b 100644 --- a/assets/themes/openwindpowermap/openwindpowermap.json +++ b/assets/themes/openwindpowermap/openwindpowermap.json @@ -8,7 +8,9 @@ "ru": "Открытая карта ветроэнергетики", "zh_Hant": "開放風力地圖", "id": "OpenWindPowerMap", - "hu": "OpenWindPowerMap" + "hu": "OpenWindPowerMap", + "nl": "Windmolens", + "ca": "OpenWindPowerMap" }, "maintainer": "Seppe Santens", "icon": "./assets/themes/openwindpowermap/logo.svg", @@ -18,7 +20,8 @@ "de": "Eine Karte zum Anzeigen und Bearbeiten von Windkraftanlagen.", "it": "Una cartina per la visione e la modifica delle turbine eoliche.", "zh_Hant": "顯示與編輯風機的地圖。", - "hu": "Szélerőművek megjelenítésére és szerkesztésére szolgáló térkép." + "hu": "Szélerőművek megjelenítésére és szerkesztésére szolgáló térkép.", + "es": "Un para mostrar y editar turbinas de viento" }, "version": "2021-06-18", "startLat": 50.52, @@ -28,308 +31,7 @@ "maxZoom": 8 }, "layers": [ - { - "id": "windturbine", - "name": { - "en": "wind turbine", - "nl": "windturbine", - "fr": "Éolienne", - "de": "Windrad", - "it": "pala eolica", - "zh_Hant": "風機", - "hu": "Szélerőmű" - }, - "source": { - "osmTags": "generator:source=wind" - }, - "minzoom": 10, - "title": { - "render": { - "en": "wind turbine", - "nl": "windturbine", - "fr": "éolienne", - "de": "Windrad", - "it": "pala eolica", - "zh_Hant": "風機", - "id": "turbin angin", - "hu": "szélerőmű" - }, - "mappings": [ - { - "if": "name~*", - "then": { - "en": "{name}", - "fr": "{name}", - "eo": "{name}", - "it": "{name}", - "ru": "{name}", - "zh_Hant": "{name}", - "id": "{name}" - } - } - ] - }, - "tagRenderings": [ - { - "id": "turbine-output", - "render": { - "en": "The power output of this wind turbine is {generator:output:electricity}.", - "fr": "La puissance générée par cette éolienne est de {generator:output:electricity}.", - "it": "La potenza generata da questa pala eolica è {generator:output:electricity}.", - "zh_Hant": "這個風機的電力輸出是 {generator:output:electricity}。", - "id": "Output daya dari turbin angin ini adalah {generator:output:electricity}.", - "hu": "A szélerőmű teljesítménye: {generator:output:electricity}." - }, - "question": { - "en": "What is the power output of this wind turbine? (e.g. 2.3 MW)", - "fr": "Quel est la puissance générée par cette éolienne ?", - "it": "Quant’è la potenza generata da questa pala eolica? (ad es. 2.3 MW)", - "zh_Hant": "這個風機的電力輸出是多少?(例如 2.3 MW)", - "id": "Berapa output daya dari turbin angin ini? (misalnya 2,3 MW)", - "hu": "Mekkora a teljesítménye ennek a szélturbinának? (pl. 2.3 MW)" - }, - "freeform": { - "key": "generator:output:electricity", - "type": "pfloat" - } - }, - { - "id": "turbine-operator", - "render": { - "en": "This wind turbine is operated by {operator}.", - "fr": "Cette éolienne est opérée par {operator}.", - "it": "Questa pala eolica è gestita da {operator}.", - "zh_Hant": "這個風機營業商是 {operator}。", - "id": "Turbin angin ini dioperasikan oleh {operator}.", - "hu": "Ennek a szélerőműnek az üzemeltetője: {operator}." - }, - "question": { - "en": "Who operates this wind turbine?", - "fr": "Qui est l’exploitant de cette éolienne ?", - "it": "Chi gestisce questa pala eolica?", - "zh_Hant": "這個風機營業商是?", - "hu": "Ki üzemelteti ezt a szélturbinát?" - }, - "freeform": { - "key": "operator" - } - }, - { - "id": "turbine-height", - "render": { - "en": "The total height (including rotor radius) of this wind turbine is {height} metres.", - "fr": "La hauteur totale, incluant les pales, est de {height} mètres.", - "it": "L’altezza totale (raggio del rotore incluso) di questa pala eolica è di {height} metri.", - "zh_Hant": "這風機的總高度 (包括風葉直徑) 是 {height} 公尺。", - "hu": "A szélerőmű teljes (rotor sugarával együtt számított) magassága: {height} méter." - }, - "question": { - "en": "What is the total height of this wind turbine (including rotor radius), in metres?", - "fr": "Quelle est la hauteur totale de l’éolienne en mètres, pales incluses ?", - "it": "Qual è l’altezza (in metri e raggio del rotore incluso) di questa pala eolica?", - "zh_Hant": "這個風機的總高度是多少 (包括風葉大小) 公尺?", - "hu": "Hány méter a szélerőmű teljes magassága (a rotor sugarával együtt)?" - }, - "freeform": { - "key": "height", - "type": "pfloat" - } - }, - { - "id": "turbine-diameter", - "render": { - "en": "The rotor diameter of this wind turbine is {rotor:diameter} metres.", - "fr": "Le diamètre du rotor est de {rotor:diameter} mètres.", - "it": "Il diametro del rotore di questa pala eolica è di {rotor:diameter} metri.", - "zh_Hant": "這個風力渦輪機的風葉直徑是 {rotor:diameter} 公尺。", - "hu": "A szélturbina rotorátmérője: {rotor:diameter} méter." - }, - "question": { - "en": "What is the rotor diameter of this wind turbine, in metres?", - "fr": "Quel est le diamètre du rotor en mètres ?", - "it": "Qual è il diametro (in metri) del rotore di questa pala eolica?", - "zh_Hant": "這個風力渦輪機的風葉直徑是多少公尺?", - "hu": "Hány méter a rotorátmérője ennek a szélturbinának?" - }, - "freeform": { - "key": "rotor:diameter", - "type": "float" - } - }, - { - "id": "turbine-start-date", - "render": { - "en": "This wind turbine went into operation on/in {start_date}.", - "fr": "L’éolienne est active depuis {start_date}.", - "it": "Questa pala eolica è entrata in funzione in data {start_date}.", - "zh_Hant": "這個風機從 {start_date} 開始運轉。", - "id": "Turbin angin ini mulai beroperasi pada/dalam {start_date}.", - "hu": "A szélerőmű üzembe helyezése: {start_date}." - }, - "question": { - "en": "When did this wind turbine go into operation?", - "fr": "Depuis quand l’éolienne est-elle en fonctionnement ?", - "it": "Quando è entrata in funzione questa pala eolica?", - "zh_Hant": "這個風機何時開始營運?", - "id": "Kapan turbin angin ini mulai beroperasi?", - "hu": "Mikor helyezték üzembe ezt a szélerőművet?" - }, - "freeform": { - "key": "start_date", - "type": "date" - } - }, - "images" - ], - "presets": [ - { - "tags": [ - "power=generator", - "generator:source=wind" - ], - "title": { - "en": "wind turbine", - "nl": "windturbine", - "fr": "Éolienne", - "de": "Windrad", - "it": "pala eolica", - "zh_Hant": "風機", - "hu": "Szélerőmű" - } - } - ], - "units": [ - { - "appliesToKey": [ - "generator:output:electricity" - ], - "applicableUnits": [ - { - "canonicalDenomination": "MW", - "alternativeDenomination": [ - "megawatts", - "megawatt" - ], - "human": { - "en": " megawatts", - "nl": " megawatt", - "fr": " megawatts", - "de": " Megawatt", - "eo": " megavatoj", - "it": " megawatt", - "ru": " мегаватт", - "zh_Hant": " 百萬瓦", - "id": " megawat", - "hu": " megawatt" - } - }, - { - "canonicalDenomination": "kW", - "alternativeDenomination": [ - "kilowatts", - "kilowatt" - ], - "human": { - "en": " kilowatts", - "nl": " kilowatt", - "fr": " kilowatts", - "de": " Kilowatt", - "eo": " kilovatoj", - "it": " kilowatt", - "nb_NO": " kilowatt", - "ru": " киловатт", - "zh_Hant": " 千瓦", - "id": " kilowat", - "hu": " kilowatt" - } - }, - { - "canonicalDenomination": "W", - "alternativeDenomination": [ - "watts", - "watt" - ], - "human": { - "en": " watts", - "nl": " watt", - "fr": " watts", - "de": " Watt", - "eo": " vatoj", - "it": " watt", - "ru": " ватт", - "zh_Hant": " 瓦", - "id": " watt", - "hu": " watt" - } - }, - { - "canonicalDenomination": "GW", - "alternativeDenomination": [ - "gigawatts", - "gigawatt" - ], - "human": { - "en": " gigawatts", - "nl": " gigawatt", - "fr": " gigawatts", - "de": " Gigawatt", - "eo": " gigavatoj", - "it": " gigawatt", - "ru": " гигаватт", - "zh_Hant": " 千兆瓦", - "id": " gigawatt", - "hu": " gigawatt" - } - } - ], - "eraseInvalidValues": true - }, - { - "appliesToKey": [ - "height", - "rotor:diameter" - ], - "applicableUnits": [ - { - "canonicalDenomination": "m", - "alternativeDenomination": [ - "meter" - ], - "human": { - "en": " meter", - "nl": " meter", - "fr": " mètres", - "de": " Meter", - "eo": " metro", - "it": " metri", - "ru": " метр", - "zh_Hant": " 公尺", - "id": " meter", - "hu": " méter" - } - } - ] - } - ], - "mapRendering": [ - { - "icon": "./assets/themes/openwindpowermap/wind_turbine.svg", - "label": { - "mappings": [ - { - "if": "generator:output:electricity~^[0-9]+.*[W]$", - "then": "
    {generator:output:electricity}
    " - } - ] - }, - "iconSize": "40, 40, bottom", - "location": [ - "point", - "centroid" - ] - } - ] - } + "windturbine" ], "defaultBackgroundId": "CartoDB.Voyager" } \ No newline at end of file diff --git a/assets/themes/parkings/parkings.json b/assets/themes/parkings/parkings.json index 34b8293cce..1a09bd0bbf 100644 --- a/assets/themes/parkings/parkings.json +++ b/assets/themes/parkings/parkings.json @@ -3,13 +3,15 @@ "title": { "nl": "Parking", "en": "Parking", - "de": "Parken", + "de": "Parkplatzkarte", "it": "Parcheggio", "nb_NO": "Parkering", "ru": "Парковка", "zh_Hant": "停車場", "id": "Tempat parkir", - "hu": "Parkolás" + "hu": "Parkolás", + "fr": "Stationnement", + "es": "Aparcamiento" }, "shortDescription": { "nl": "Deze kaart toont verschillende parkeerplekken", @@ -19,16 +21,19 @@ "nb_NO": "Dette kartet viser forskjellige parkeringsplasser", "zh_Hant": "這地圖顯示不同的停車空間", "id": "Peta ini menunjukkan tempat parkir yang berbeda", - "hu": "Ez a térkép különböző parkolókat jelenít meg" + "hu": "Ez a térkép különböző parkolókat jelenít meg", + "es": "Este mapa muestra diferentes puntos de aparcamiento" }, "description": { "nl": "Deze kaart toont verschillende parkeerplekken", "en": "This map shows different parking spots", - "de": "Diese Karte zeigt Parkplätze", + "de": "Eine Karte für verschiedene Parkplätze", "it": "Questa cartina mostra diversi posti dove parcheggiare", "zh_Hant": "這地圖顯示不同的停車空間", "id": "Peta ini menunjukkan tempat parkir yang berbeda", - "hu": "Ez a térkép különböző parkolókat jelenít meg" + "hu": "Ez a térkép különböző parkolókat jelenít meg", + "fr": "Cette carte affiche différents lieux de stationnement", + "es": "Este mapa muestra diferentes puntos de aparcamiento" }, "maintainer": "", "icon": "./assets/themes/parkings/parkings.svg", diff --git a/assets/themes/personal/personal.json b/assets/themes/personal/personal.json index c9e7d8d571..12b9d29509 100644 --- a/assets/themes/personal/personal.json +++ b/assets/themes/personal/personal.json @@ -10,7 +10,7 @@ "de": "Persönliches Thema", "ja": "個人的なテーマ", "zh_Hant": "個人化主題", - "it": "Tema personalizzato", + "it": "Tema personale", "nb_NO": "Personlig tema", "id": "Tema pribadi" }, @@ -37,10 +37,10 @@ "startLon": 0, "startZoom": 0, "widenFactor": 1.2, - "#note": "The 'overpassMaxZoom' should be exactly the same as or less then the overrideAll", + "#note": "The 'overpassMaxZoom' should be exactly the same as or less then the minzzom in overrideAll", "overpassMaxZoom": 15, "overrideAll": { - "minZoom": 16, + "minzoom": 17, "syncSelection": "theme", "shownByDefault": false }, diff --git a/assets/themes/pets/dog-food.svg b/assets/themes/pets/dog-food.svg new file mode 100644 index 0000000000..348f3cbafc --- /dev/null +++ b/assets/themes/pets/dog-food.svg @@ -0,0 +1,66 @@ + +image/svg+xml diff --git a/assets/themes/pets/dogshop.svg b/assets/themes/pets/dogshop.svg new file mode 100644 index 0000000000..2383aeb5bd --- /dev/null +++ b/assets/themes/pets/dogshop.svg @@ -0,0 +1,68 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/assets/themes/pets/license_info.json b/assets/themes/pets/license_info.json new file mode 100644 index 0000000000..cbdbb93c73 --- /dev/null +++ b/assets/themes/pets/license_info.json @@ -0,0 +1,37 @@ +[ + { + "path": "dog-food.svg", + "license": "PD", + "authors": [ + "Public Domain Symbols", + "Jean Victor Balin ", + "Niels Elgaard Larsen" + ], + "sources": [ + "https://openclipart.org/detail/260714/dogpark15", + "https://openclipart.org/detail/25719/aiga-restaurant" + ] + }, + { + "path": "dogshop.svg", + "license": "CC0 1.0", + "authors": [ + "Public Domain Symbols", + "Niels Elgaard Larsen" + ], + "sources": [ + "https://openclipart.org/detail/260714/dogpark15" + ] + }, + { + "path": "petshop.svg", + "license": "CC0 1.0", + "authors": [ + "Niels Elgaard Larsen", + "Public Domain Symbols" + ], + "sources": [ + "https://openclipart.org/detail/260857/veterinary15" + ] + } +] \ No newline at end of file diff --git a/assets/themes/pets/pets.json b/assets/themes/pets/pets.json new file mode 100644 index 0000000000..c0bb4b0f9b --- /dev/null +++ b/assets/themes/pets/pets.json @@ -0,0 +1,175 @@ +{ + "id": "pets", + "maintainer": "Niels Elgaard Larsen", + "version": "1", + "title": { + "en": "Veterinarians, dog parks and other pet-amenities", + "da": "hundesteder" + }, + "description": { + "en": "On this map, you'll find various interesting places for you pets: veterinarians, dog parks, pet shops, dog-friendly restaurants, ...", + "da": "Hundsteder" + }, + "icon": "./assets/layers/dogpark/dog-park.svg", + "startZoom": 10, + "startLat": 55, + "startLon": 12, + "layers": [ + "dogpark", + { + "builtin": "food", + "override": { + "id": "dogfoodb", + "name": { + "en": "Dog friendly eateries", + "da": "Hundevenlige madsteder" + }, + "mapRendering": [ + { + "location": [ + "point", + "centroid" + ], + "icon": "./assets/themes/pets/dog-food.svg", + "iconSize": "30,30,center" + } + ], + "=presets": [], + "source": { + "=osmTags": { + "and": [ + { + "or": [ + "amenity=restaurant", + "amenity=cafe" + ] + }, + { + "or": [ + "dog=unleashed", + "dog=leashed", + "dog=yes" + ] + } + ] + } + } + } + }, + { + "builtin": "shops", + "id": "dogshop", + "override": { + "id": "dogshop", + "name": { + "en": "dog-friendly shop", + "da": "hundevenlig butik" + }, + "title": { + "render": { + "en": "dog-friendly shop", + "da": "hundevenlig butik" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "*": "{name}" + } + } + ] + }, + "mapRendering": [ + { + "location": [ + "point", + "centroid" + ], + "icon": { + "render": "./assets/themes/pets/dogshop.svg", + "mappings": [ + { + "if": { + "and": [ + "shop=pet" + ] + }, + "then": "./assets/themes/pets/petshop.svg" + } + ] + }, + "iconSize": "30,30,center" + }, + { + "#": "Rendering of a line", + "color": "#ff0", + "width": 5 + } + ], + "presets": [ + { + "tags": [ + "shop=yes", + "dog=yes" + ] + } + ], + "source": { + "=osmTags": { + "and": [ + "shop~*", + { + "or": [ + "dog=leashed", + "dog=yes", + "shop=pet" + ] + } + ] + } + } + } + }, + "veterinary", + { + "builtin": "food", + "override": { + "minzoom": 19, + "filter": null, + "name": null + } + }, + { + "builtin": "waste_basket", + "override": { + "minzoom": 16, + "filter": null, + "name": null + } + }, + { + "builtin": "shops", + "override": { + "minzoom": 19, + "filter": null, + "presets": [ + { + "title": { + "en": "dog-friendly shop", + "da": "EN hundevenlig butik" + }, + "tags": [ + "dog=yes", + "shop=yes" + ], + "description": { + "en": "A shop whery you can bring a dog almost everywhere", + "da": "En butik hvor man kan tage en hund med næsten overalt" + } + } + ], + "name": null + } + } + ] +} \ No newline at end of file diff --git a/assets/themes/pets/petshop.svg b/assets/themes/pets/petshop.svg new file mode 100644 index 0000000000..22d104fd6f --- /dev/null +++ b/assets/themes/pets/petshop.svg @@ -0,0 +1,93 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/assets/themes/playgrounds/playgrounds.json b/assets/themes/playgrounds/playgrounds.json index 8ab906ae80..7c0ca27dfa 100644 --- a/assets/themes/playgrounds/playgrounds.json +++ b/assets/themes/playgrounds/playgrounds.json @@ -7,11 +7,13 @@ "ja": "遊び場", "zh_Hant": "遊樂場", "ru": "Игровые площадки", - "de": "Spielpläzte", + "de": "Spielplätze", "it": "Parchi giochi", "nb_NO": "Lekeplasser", "id": "Taman bermain", - "hu": "Játszóterek" + "hu": "Játszóterek", + "ca": "Parcs infantils", + "es": "Parques infanties" }, "shortDescription": { "nl": "Een kaart met speeltuinen", @@ -24,7 +26,9 @@ "it": "Una cartina dei parchi giochi", "nb_NO": "Et kart med lekeplasser", "id": "Peta dengan taman bermain", - "hu": "Egy térkép játszóterekkel" + "hu": "Egy térkép játszóterekkel", + "ca": "Un mapa de parcs infantils", + "es": "Un mapa con parques infantiles" }, "description": { "nl": "Op deze kaart vind je speeltuinen en kan je zelf meer informatie en foto's toevoegen", @@ -36,7 +40,8 @@ "de": "Auf dieser Karte finden Sie Spielplätze und können weitere Informationen hinzufügen", "it": "In questa cartina vengono mostrati i parchi giochi a cui è possibile aggiungere dettagli", "id": "Di peta ini, Anda menemukan taman bermain dan dapat menambahkan lebih banyak informasi", - "hu": "Ezen a térképen játszótereket találsz, és további információkat adhatsz hozzájuk" + "hu": "Ezen a térképen játszótereket találsz, és további információkat adhatsz hozzájuk", + "es": "En este mapa, puedes encontrar parques y añadir más información" }, "maintainer": "", "icon": "./assets/themes/playgrounds/playground.svg", diff --git a/assets/themes/postal_codes/postal_codes.json b/assets/themes/postal_codes/postal_codes.json index 247b4de33e..061ee75755 100644 --- a/assets/themes/postal_codes/postal_codes.json +++ b/assets/themes/postal_codes/postal_codes.json @@ -3,17 +3,26 @@ "title": { "en": "Postal codes", "id": "Kode pos", - "hu": "Irányítószámok" + "hu": "Irányítószámok", + "de": "Postleitzahlen", + "ca": "Codis postals", + "es": "Códigos postales" }, "shortDescription": { "en": "Postal codes", "id": "Kode pos", - "hu": "Irányítószámok" + "hu": "Irányítószámok", + "de": "Postleitzahlen", + "ca": "Codis postals", + "es": "Códigos postales" }, "description": { "en": "Postal codes", "id": "Kode pos", - "hu": "Irányítószámok" + "hu": "Irányítószámok", + "de": "Postleitzahlen", + "ca": "Codis postals", + "es": "Códigos postales" }, "maintainer": "", "icon": "./assets/themes/postal_codes/townhall.svg", @@ -31,14 +40,19 @@ "name": { "en": "postal codes", "id": "kode pos", - "hu": "irányítószámok" + "hu": "irányítószámok", + "de": "Postleitzahlen", + "ca": "codis postals", + "es": "códigos postales" }, "minzoom": 8, "title": { "render": { "en": "Postal code {postal_code}", "id": "Kode pos {postal_code}", - "hu": "Irányítószám: {postal_code}" + "hu": "Irányítószám: {postal_code}", + "de": "Postleitzahl {postal_code}", + "es": "Código postal {postal_code}" } }, "description": {}, @@ -48,7 +62,9 @@ "render": { "en": "The postal code is {postal_code}", "id": "Kode posnya adalah {postal_code}", - "hu": "Irányítószám: {postal_code}" + "hu": "Irányítószám: {postal_code}", + "de": "Die Postleitzahl lautet {postal_code}", + "es": "El código postal es {postal_code}" } } ], @@ -117,14 +133,17 @@ "name": { "en": "town halls", "id": "balai kota", - "hu": "polgármesteri hivatalok" + "hu": "polgármesteri hivatalok", + "de": "Rathäuser", + "ca": "ajuntaments" }, "minzoom": 12, "title": { "render": { "en": "Town hall {name}", "id": "Balai kota {name}", - "hu": "{name} városháza" + "hu": "{name} városháza", + "de": "Rathaus {name}" } }, "calculatedTags": [ diff --git a/assets/themes/postboxes/postboxes.json b/assets/themes/postboxes/postboxes.json index a7af421822..a1ee435f7f 100644 --- a/assets/themes/postboxes/postboxes.json +++ b/assets/themes/postboxes/postboxes.json @@ -2,24 +2,28 @@ "id": "postboxes", "title": { "en": "Postbox and Post Office Map", - "de": "Karte mit Briefkästen und Poststellen", + "de": "Post- und Briefkastenkarte", "nb_NO": "Postboks og postkontor-kart", "it": "Buche delle lettere e uffici postali", "zh_Hant": "郵筒與郵局地圖", - "hu": "Posta- és postaládatérkép" + "hu": "Posta- és postaládatérkép", + "nl": "Brievenbussen en postkantoren" }, "shortDescription": { "en": "A map showing postboxes and post offices", "de": "Eine Karte die Briefkästen und Poststellen anzeigt", "it": "Una cartina che mostra le buche delle lettere e gli uffici postali", "zh_Hant": "顯示郵筒與郵局的地圖", - "hu": "Posták és postaládák térképe" + "hu": "Posták és postaládák térképe", + "es": "Un mapa que muestra buzones y oficinas de correo" }, "description": { "en": "On this map you can find and add data of post offices and post boxes. You can use this map to find where you can mail your next postcard! :)
    Spotted an error or is a post box missing? You can edit this map with a free OpenStreetMap account. ", "it": "In questa cartina puoi veder e modificare gli uffici postali e le buche delle lettere. Puoi usare questa cartina per trovare dove imbucare la tua prossima cartolina! :)
    Hai trovato un errore o una buca delle lettere mancante? Puoi modificare questa cartina con un account gratuito su OpenStreetMap. ", "zh_Hant": "在這份地圖你能找到與新增有關郵局與郵筒的資料,你可以用這份地圖找到寄送您下張明信片的地方!:)
    發現錯誤或是有郵筒遺漏嗎?你可以用免費的開放街圖帳號來編輯。 ", - "hu": "Ezen a térképen postahivatalok és postaládák adatait találod és egészítheted ki. Utánanézhetsz, hogy hol adhatod fel a következő képeslapodat! :)
    Hibát találtál, vagy hiányzik egy postaláda? Ezt a térképet mindössze egy ingyenes OpenStreetMap-fiókkal szerkesztheted. " + "hu": "Ezen a térképen postahivatalok és postaládák adatait találod és egészítheted ki. Utánanézhetsz, hogy hol adhatod fel a következő képeslapodat! :)
    Hibát találtál, vagy hiányzik egy postaláda? Ezt a térképet mindössze egy ingyenes OpenStreetMap-fiókkal szerkesztheted. ", + "de": "Auf dieser Karte können Sie Daten von Poststellen und Briefkästen finden und ergänzen. Sie können diese Karte nutzen, um herauszufinden, wo Sie Ihre nächste Postkarte versenden können :)
    Haben Sie einen Fehler entdeckt oder fehlt ein Briefkasten? Sie können die Kartenddaten mit einem kostenlosen OpenStreetMap-Konto bearbeiten. ", + "es": "En este mapa puedes encontrar y añadir datos de oficinas de correo y buzones de correo. ¡Puedes utilizar este mapa para encontrar donde puedes enviar tu próxima postal! :)
    ¿Has encontrado un error o algo que falta? Puedes editar este mapa con una cuenta de OpenStreetMap gratuíta. " }, "maintainer": "nicolelaine", "icon": "./assets/themes/postboxes/postbox.svg", @@ -38,11 +42,14 @@ "id": "postboxes", "name": { "en": "Postboxes", - "de": "Brieflästen", + "de": "Briefkästen", "ru": "Почтовые ящики", "zh_Hant": "郵筒", "id": "Kotak pos", - "hu": "Postaládák" + "hu": "Postaládák", + "nl": "Brievenbussen", + "ca": "Bústies", + "es": "Buzones de correo" }, "minzoom": 12, "source": { @@ -55,7 +62,10 @@ "ru": "Почтовый ящик", "zh_Hant": "郵筒", "id": "Kotak pos", - "hu": "Postaláda" + "hu": "Postaláda", + "nl": "Brievenbus", + "ca": "Bústia", + "es": "Buzón de correo" }, "mappings": [ { @@ -89,7 +99,9 @@ "de": "Die Ebene zeigt Briefkästen.", "zh_Hant": "這圖層顯示郵筒。", "id": "Layer yang memperlihatkan kotak pos.", - "hu": "A postaládákat megjelenítő réteg." + "hu": "A postaládákat megjelenítő réteg.", + "nl": "Deze laag toont brievenbussen.", + "es": "La capa que muestra buzones de correo." }, "tagRenderings": [ "images", @@ -104,12 +116,15 @@ "amenity=post_box" ], "title": { - "en": "postbox", - "de": "Briefkasten", + "en": "a postbox", + "de": "ein Briefkasten", "ru": "почтовый ящик", "zh_Hant": "郵筒", "id": "kotak pos", - "hu": "postaláda" + "hu": "postaláda", + "nl": "een brievenbus", + "ca": "una bústia", + "es": "un buzón de correo" } } ], @@ -152,7 +167,10 @@ "ru": "Почтовые отделения", "zh_Hant": "郵局", "id": "Kantor pos", - "hu": "Posták" + "hu": "Posták", + "nl": "Postkantoren", + "ca": "Oficines de correus", + "es": "Oficinas de correo" }, "minzoom": 12, "source": { @@ -170,7 +188,10 @@ "ru": "Почтовое отделение", "zh_Hant": "郵局", "id": "Kantor Pos", - "hu": "Posta" + "hu": "Posta", + "nl": "Postkantoor", + "ca": "Oficina de correus", + "es": "Oficina de Correo" } }, "description": { @@ -178,7 +199,9 @@ "de": "Eine Ebene mit Postämtern.", "zh_Hant": "圖層顯示郵局。", "id": "Layer yang menunjukkan kantor pos.", - "hu": "Postákat megjelenítő réteg." + "hu": "Postákat megjelenítő réteg.", + "nl": "Een laag die postkantoren toont.", + "es": "Una capa que muestra oficinas de correo." }, "tagRenderings": [ "images", @@ -192,7 +215,9 @@ "ru": "Часы работы: {opening_hours_table()}", "zh_Hant": "開放時間:{opening_hours_table()}", "id": "Jam Buka: {opening_hours_table()}", - "hu": "Nyitva tartás: {opening_hours_table()}" + "hu": "Nyitva tartás: {opening_hours_table()}", + "de": "Öffnungszeiten: {opening_hours_table()}", + "es": "Horas de Apertura: {opening_hours_table()}" }, "freeform": { "key": "opening_hours", @@ -202,7 +227,9 @@ "en": "What are the opening hours for this post office?", "zh_Hant": "這間郵局的開放時間是?", "id": "Jam berapa kantor pos ini buka?", - "hu": "Mikor van nyitva ez a posta?" + "hu": "Mikor van nyitva ez a posta?", + "de": "Wie sind die Öffnungszeiten dieser Poststelle?", + "es": "¿Cuáles son las horas de apertura para esta oficina de correos?" }, "mappings": [ { @@ -212,7 +239,8 @@ "de": "durchgehend geöffnet (auch an Feiertagen)", "zh_Hant": "24/7 開放 (包括假日)", "id": "Buka 24 jam (termasuk hari libur)", - "hu": "Éjjel-nappal nyitva (munkaszüneti napokon is)" + "hu": "Éjjel-nappal nyitva (munkaszüneti napokon is)", + "es": "Abierta 24/7 (incluyendo festivos)" } } ], @@ -459,12 +487,15 @@ "amenity=post_office" ], "title": { - "en": "Post Office", - "de": "Poststelle", + "en": "a post office", + "de": "eine Poststelle", "ru": "Почтовое отделение", "zh_Hant": "郵局", "id": "Kantor Pos", - "hu": "Posta" + "hu": "Posta", + "nl": "een postkantoor", + "ca": "una oficina de correus", + "es": "una oficina de correo" } } ], @@ -478,7 +509,10 @@ "de": "Aktuell geöffnet", "zh_Hant": "目前開放", "id": "Saat ini buka", - "hu": "Most nyitva" + "hu": "Most nyitva", + "nl": "Momenteel geopend", + "ca": "Actualment obert", + "es": "Actualmente abierta" }, "osmTags": "_isOpen=yes" } diff --git a/assets/themes/shops/shops.json b/assets/themes/shops/shops.json index 0c058075e5..57b77be13b 100644 --- a/assets/themes/shops/shops.json +++ b/assets/themes/shops/shops.json @@ -9,7 +9,9 @@ "de": "Freie Geschäftskarte", "it": "Mappa dei negozi", "nb_NO": "Kart over åpne butikker", - "hu": "Bolttérkép" + "hu": "Bolttérkép", + "nl": "Winkels", + "ca": "Open Shop Map" }, "shortDescription": { "en": "An editable map with basic shop information", @@ -17,7 +19,8 @@ "ja": "基本的なショップ情報を含む編集可能なマップ", "de": "Eine bearbeitbare Karte mit grundlegenden Geschäftsinformationen", "it": "Una cartina modificabile con informazioni di base dei negozi", - "hu": "Szerkeszthető térkép üzletek alapvető adataival" + "hu": "Szerkeszthető térkép üzletek alapvető adataival", + "es": "Un mapa editable con información básica sobre tiendas" }, "description": { "en": "On this map, one can mark basic information about shops, add opening hours and phone numbers", @@ -26,7 +29,8 @@ "zh_Hant": "這份地圖上,你可以標記商家基本資訊,新增營業時間以及聯絡電話", "de": "Auf dieser Karte kann man grundlegende Informationen über Geschäfte markieren, Öffnungszeiten und Telefonnummern hinzufügen", "it": "In questa cartina è possibile aggiungere informazioni di base di un negozio, orari di apertura e numeri di telefono", - "hu": "Ezen a térképen az üzletek alapvető adatait lehet megadni, például nyitvatartási időt és telefonszámokat." + "hu": "Ezen a térképen az üzletek alapvető adatait lehet megadni, például nyitvatartási időt és telefonszámokat.", + "es": "En este mapa, se puede marcar información básica sobre tiendas, añadir horarios de apertura y números de teléfono" }, "maintainer": "MapComplete", "icon": "./assets/themes/shops/shop.svg", diff --git a/assets/themes/sidewalks/sidewalks.json b/assets/themes/sidewalks/sidewalks.json index 28cbe8ae87..3444878933 100644 --- a/assets/themes/sidewalks/sidewalks.json +++ b/assets/themes/sidewalks/sidewalks.json @@ -2,14 +2,24 @@ "id": "sidewalks", "title": { "en": "Sidewalks", - "ru": "Тротуары" + "ru": "Тротуары", + "nl": "Voetpaden", + "de": "Gehwege", + "ca": "Voreres", + "es": "Aceras" }, "shortDescription": { - "en": "Sidewalk mapping" + "en": "Sidewalk mapping", + "ca": "Mapejat de voreres", + "de": "Kartierung von Bürgersteigen", + "es": "Mapeo de aceras" }, "description": { "en": "Experimental theme", - "ru": "Экспериментальная тема" + "ru": "Экспериментальная тема", + "ca": "Petició experimental", + "de": "Experimentelles Thema", + "es": "Tema experimental" }, "maintainer": "", "icon": "./assets/svg/bug.svg", @@ -24,7 +34,10 @@ "id": "sidewalks", "name": { "en": "Sidewalks", - "ru": "Тротуары" + "ru": "Тротуары", + "de": "Gehwege", + "ca": "Voreres", + "es": "Aceras" }, "minzoom": 12, "source": { @@ -40,7 +53,10 @@ "title": { "render": { "en": "{name}", - "ru": "{name}" + "ru": "{name}", + "de": "{name}", + "ca": "{name}", + "es": "{name}" }, "mappings": [ { @@ -50,13 +66,17 @@ ] }, "description": { - "en": "Layer showing sidewalks of highways" + "en": "Layer showing sidewalks of highways", + "de": "Ebene mit Bürgersteigen", + "es": "Una capa que muestra aceras de autovías" }, "tagRenderings": [ { "id": "streetname", "render": { - "en": "This street is named {name}" + "en": "This street is named {name}", + "de": "Diese Straße heißt {name}", + "es": "Esta calle se llama {name}" } }, { diff --git a/assets/themes/sport_pitches/sport_pitches.json b/assets/themes/sport_pitches/sport_pitches.json index b0237a414b..023f28af70 100644 --- a/assets/themes/sport_pitches/sport_pitches.json +++ b/assets/themes/sport_pitches/sport_pitches.json @@ -9,7 +9,9 @@ "ru": "Спортивные площадки", "de": "Sportplätze", "it": "Campi sportivi", - "hu": "Sportpályák" + "hu": "Sportpályák", + "ca": "Camps d'esports", + "es": "Pistas de deportes" }, "shortDescription": { "nl": "Deze kaart toont sportvelden", @@ -20,7 +22,8 @@ "ru": "Карта, отображающая спортивные площадки", "de": "Eine Karte mit Sportplätzen", "it": "Una cartina che mostra i campi sportivi", - "hu": "Sportpályatérkép" + "hu": "Sportpályatérkép", + "es": "Un mapa que muestra pistas de deportes" }, "description": { "nl": "Een sportveld is een ingerichte plaats met infrastructuur om een sport te beoefenen", @@ -29,8 +32,10 @@ "ja": "スポーツ競技場は、スポーツが行われる場所です", "zh_Hant": "運動場地是進行運動的地方", "de": "Ein Sportplatz ist eine Fläche, auf der Sportarten gespielt werden", - "it": "Una campo sportivo è un’area dove vengono praticati gli sport", - "hu": "A sportpálya egy olyan terület, amelyen valamilyen sportot űznek" + "it": "Un campo sportivo è un'area dove vengono praticati sport", + "hu": "A sportpálya egy olyan terület, amelyen valamilyen sportot űznek", + "ru": "Спортивная площадка - пространство для занятий спортом", + "es": "Una pista de deportes es una área donde so practican deportes" }, "maintainer": "", "icon": "./assets/layers/sport_pitch/table_tennis.svg", diff --git a/assets/themes/street_lighting/street_lighting.json b/assets/themes/street_lighting/street_lighting.json index 1997880511..3a170ee966 100644 --- a/assets/themes/street_lighting/street_lighting.json +++ b/assets/themes/street_lighting/street_lighting.json @@ -7,13 +7,17 @@ "nl": "Straatverlichting", "ru": "Уличное освещение", "zh_Hant": "道路照明", - "hu": "Közvilágítás" + "hu": "Közvilágítás", + "de": "Straßenbeleuchtung", + "ca": "Il·luminació als carrers" }, "description": { "en": "On this map you can find everything about street lighting", "nl": "Op deze kaart vind je alles over straatlantaarns", "zh_Hant": "在這份地圖你可以找到任何有關路燈的事情", - "hu": "Ezen a térképen minden megtalálható, ami a közvilágítással kapcsolatos" + "hu": "Ezen a térképen minden megtalálható, ami a közvilágítással kapcsolatos", + "de": "Eine Karte für alles zum Thema Straßenbeleuchtung", + "es": "En este mapa puedes encontrar todo sobre la iluminación callejera" }, "icon": "./assets/layers/street_lamps/street_lamp.svg", "startZoom": 19, @@ -27,7 +31,10 @@ "en": "Lit streets", "nl": "Verlichte straten", "zh_Hant": "有照明的道路", - "hu": "Kivilágított utcák" + "hu": "Kivilágított utcák", + "de": "Beleuchtete Straßen", + "ca": "Il·luminació de carrers", + "es": "Calles iluminadas" }, "source": { "osmTags": { @@ -45,7 +52,10 @@ "en": "Lit street", "nl": "Verlichte straat", "zh_Hant": "照明道路", - "hu": "Kivilágított utca" + "hu": "Kivilágított utca", + "de": "Beleuchtete Straße", + "ca": "Il·luminació del carrer", + "es": "Calle iluminada" }, "mappings": [ { @@ -66,7 +76,9 @@ "en": "Is this street lit?", "nl": "Is deze straat verlicht?", "zh_Hant": "這道路有路燈嗎?", - "hu": "Ki van-e világítva ez az utca?" + "hu": "Ki van-e világítva ez az utca?", + "de": "Ist diese Straße beleuchtet?", + "es": "¿Está iluminada esta calle?" }, "mappings": [ { @@ -75,7 +87,9 @@ "en": "This street is lit", "nl": "Deze straat is verlicht", "zh_Hant": "這個道路有照明", - "hu": "Ezen az utcán van közvilágítás" + "hu": "Ezen az utcán van közvilágítás", + "de": "Diese Straße ist beleuchtet", + "es": "Esta calle está iluminada" } }, { @@ -84,7 +98,9 @@ "en": "This street is not lit", "nl": "Deze straat is niet verlicht", "zh_Hant": "這個道路沒有照明", - "hu": "Ezen az utcán nincs közvilágítás" + "hu": "Ezen az utcán nincs közvilágítás", + "de": "Diese Straße ist nicht beleuchtet", + "es": "Esta calle no está iluminada" } }, { @@ -93,7 +109,9 @@ "en": "This street is lit at night", "nl": "Deze straat is 's nachts verlicht", "zh_Hant": "這個道路晚上有照明", - "hu": "Ez az utca éjszaka ki van világítva" + "hu": "Ez az utca éjszaka ki van világítva", + "de": "Diese Straße ist nachts beleuchtet", + "es": "Esta calle está iluminada por la noche" }, "hideInAnswer": true }, @@ -103,7 +121,9 @@ "en": "This street is lit 24/7", "nl": "Deze straat is 24/7 verlicht", "zh_Hant": "這個道路 24/7 有照明", - "hu": "Ez az utca éjjel-nappal ki van világítva" + "hu": "Ez az utca éjjel-nappal ki van világítva", + "de": "Diese Straße ist durchgehend beleuchtet", + "es": "Esta calle está iluminada todo el día" } } ] @@ -118,7 +138,10 @@ "nl": "Alle straten", "ru": "Все улицы", "zh_Hant": "所有道路", - "hu": "Minden utca" + "hu": "Minden utca", + "de": "Alle Straßen", + "ca": "Tots els carrers", + "es": "Todas las calles" }, "source": { "osmTags": { @@ -136,7 +159,9 @@ "nl": "Straat", "ru": "Улица", "zh_Hant": "照明", - "hu": "Utca" + "hu": "Utca", + "de": "Straße", + "ca": "Carrer" }, "mappings": [ { @@ -165,7 +190,8 @@ "en": "Is this street lit?", "nl": "Is deze straat verlicht?", "zh_Hant": "這道路有照明嗎?", - "hu": "Ki van-e világítva ez az utca?" + "hu": "Ki van-e világítva ez az utca?", + "de": "Ist diese Straße beleuchtet?" }, "mappings": [ { @@ -174,7 +200,9 @@ "en": "This street is lit", "nl": "Deze straat is verlicht", "zh_Hant": "這道路有照明", - "hu": "Ez az utca ki van világítva" + "hu": "Ez az utca ki van világítva", + "de": "Diese Straße ist beleuchtet", + "es": "Esta calle está iluminada" } }, { @@ -183,7 +211,9 @@ "en": "This street is not lit", "nl": "Deze straat is niet verlicht", "zh_Hant": "這道路沒有照明", - "hu": "Ez az utca nincs kivilágítva" + "hu": "Ez az utca nincs kivilágítva", + "de": "Diese Straße ist nicht beleuchtet", + "es": "Esta calle no está iluminada" } }, { @@ -192,7 +222,8 @@ "en": "This street is lit at night", "nl": "Deze straat is 's nachts verlicht", "zh_Hant": "這道路晚上有照明", - "hu": "Ez az utca éjjel ki van világítva" + "hu": "Ez az utca éjjel ki van világítva", + "de": "Diese Straße ist nachts beleuchtet" }, "hideInAnswer": true }, @@ -202,7 +233,8 @@ "en": "This street is lit 24/7", "nl": "Deze straat is 24/7 verlicht", "zh_Hant": "這道路 24/7 有照明", - "hu": "Ez az utca éjjel-nappal ki van világítva" + "hu": "Ez az utca éjjel-nappal ki van világítva", + "de": "Diese Straße ist durchgehend beleuchtet" } } ] diff --git a/assets/themes/surveillance/surveillance.json b/assets/themes/surveillance/surveillance.json index 197362a86d..b723e4e0f6 100644 --- a/assets/themes/surveillance/surveillance.json +++ b/assets/themes/surveillance/surveillance.json @@ -8,7 +8,8 @@ "fr": "Surveillance", "de": "Überwachung unter Überwachung", "it": "Sorveglianza sotto controllo", - "hu": "Megfigyelt térfigyelés" + "hu": "Megfigyelt térfigyelés", + "ca": "Vigilància sota vigilància" }, "shortDescription": { "en": "Surveillance cameras and other means of surveillance", @@ -18,7 +19,7 @@ "fr": "Caméras et autres dispositifs de surveillance", "pl": "Kamery monitorujące i inne środki nadzoru", "de": "Überwachungskameras und andere Mittel zur Überwachung", - "it": "Telecamere e altri di mezzi di sorveglianza", + "it": "Telecamere di sorveglianza e altri mezzi di sorveglianza.", "hu": "Térfigyelő kamerák és más figyelőeszközök" }, "description": { @@ -30,7 +31,8 @@ "pl": "Na tej otwartej mapie można znaleźć kamery monitoringu.", "de": "Auf dieser offenen Karte finden Sie Überwachungskameras.", "it": "In questa cartina puoi trovare le telecamera di sorveglianza.", - "hu": "Ezen a térképen térfigyelő kamerák láthatók." + "hu": "Ezen a térképen térfigyelő kamerák láthatók.", + "ru": "На этой открытой карте можно найти камеры слежения." }, "maintainer": "", "icon": "./assets/themes/surveillance/logo.svg", diff --git a/assets/themes/toerisme_vlaanderen/custom.css b/assets/themes/toerisme_vlaanderen/custom.css index 2ea3bdf21e..27a4894ba6 100644 --- a/assets/themes/toerisme_vlaanderen/custom.css +++ b/assets/themes/toerisme_vlaanderen/custom.css @@ -4,12 +4,12 @@ @font-face{ font-family:"FlandersArt"; - src:url("./assets/themes/toerisme_vlaanderen/FlandersArtSans-Light.woff"); + src:url("/assets/themes/toerisme_vlaanderen/FlandersArtSans-Light.woff"); } @font-face{ font-family:"FlandersArtSerif"; - src:url("./assets/themes/toerisme_vlaanderen/FlandersArtSerif-Medium.woff"); + src:url("/assets/themes/toerisme_vlaanderen/FlandersArtSerif-Medium.woff"); } h1, h2, h3, h4 { diff --git a/assets/themes/toerisme_vlaanderen/license_info.json b/assets/themes/toerisme_vlaanderen/license_info.json index 0013ceba58..feefa82985 100644 --- a/assets/themes/toerisme_vlaanderen/license_info.json +++ b/assets/themes/toerisme_vlaanderen/license_info.json @@ -144,6 +144,72 @@ "https://mapcomplete.osm.be/toerisme_vlaanderen" ] }, + { + "path": "pin je punt1.jpg", + "license": "CC0", + "authors": [ + "Toerisme Vlaanderen" + ], + "sources": [ + "https://toerismevlaanderen.be/pinjepunt", + "https://mapcomplete.osm.be/toerisme_vlaanderenn" + ] + }, + { + "path": "pin je punt2.jpg", + "license": "CC0", + "authors": [ + "Toerisme Vlaanderen" + ], + "sources": [ + "https://toerismevlaanderen.be/pinjepunt", + "https://mapcomplete.osm.be/toerisme_vlaanderenn" + ] + }, + { + "path": "pin je punt3.jpg", + "license": "CC0", + "authors": [ + "Toerisme Vlaanderen" + ], + "sources": [ + "https://toerismevlaanderen.be/pinjepunt", + "https://mapcomplete.osm.be/toerisme_vlaanderenn" + ] + }, + { + "path": "pin je punt4.jpg", + "license": "CC0", + "authors": [ + "Toerisme Vlaanderen" + ], + "sources": [ + "https://toerismevlaanderen.be/pinjepunt", + "https://mapcomplete.osm.be/toerisme_vlaanderenn" + ] + }, + { + "path": "pin je punt5.jpg", + "license": "CC0", + "authors": [ + "Toerisme Vlaanderen" + ], + "sources": [ + "https://toerismevlaanderen.be/pinjepunt", + "https://mapcomplete.osm.be/toerisme_vlaanderenn" + ] + }, + { + "path": "pin je punt6.jpg", + "license": "CC0", + "authors": [ + "Toerisme Vlaanderen" + ], + "sources": [ + "https://toerismevlaanderen.be/pinjepunt", + "https://mapcomplete.osm.be/toerisme_vlaanderenn" + ] + }, { "path": "playground.svg", "license": "CC0", diff --git a/assets/themes/toerisme_vlaanderen/pin je punt1.jpg b/assets/themes/toerisme_vlaanderen/pin je punt1.jpg new file mode 100755 index 0000000000..303bedcefd Binary files /dev/null and b/assets/themes/toerisme_vlaanderen/pin je punt1.jpg differ diff --git a/assets/themes/toerisme_vlaanderen/pin je punt2.jpg b/assets/themes/toerisme_vlaanderen/pin je punt2.jpg new file mode 100755 index 0000000000..d947dec7dd Binary files /dev/null and b/assets/themes/toerisme_vlaanderen/pin je punt2.jpg differ diff --git a/assets/themes/toerisme_vlaanderen/pin je punt3.jpg b/assets/themes/toerisme_vlaanderen/pin je punt3.jpg new file mode 100755 index 0000000000..7371d9ff83 Binary files /dev/null and b/assets/themes/toerisme_vlaanderen/pin je punt3.jpg differ diff --git a/assets/themes/toerisme_vlaanderen/pin je punt4.jpg b/assets/themes/toerisme_vlaanderen/pin je punt4.jpg new file mode 100755 index 0000000000..04188ac73c Binary files /dev/null and b/assets/themes/toerisme_vlaanderen/pin je punt4.jpg differ diff --git a/assets/themes/toerisme_vlaanderen/pin je punt5.jpg b/assets/themes/toerisme_vlaanderen/pin je punt5.jpg new file mode 100755 index 0000000000..f8b38dba87 Binary files /dev/null and b/assets/themes/toerisme_vlaanderen/pin je punt5.jpg differ diff --git a/assets/themes/toerisme_vlaanderen/pin je punt6.jpg b/assets/themes/toerisme_vlaanderen/pin je punt6.jpg new file mode 100755 index 0000000000..59455fd5dd Binary files /dev/null and b/assets/themes/toerisme_vlaanderen/pin je punt6.jpg differ diff --git a/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json b/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json index 1040cfac49..fa0f7383fb 100644 --- a/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json +++ b/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json @@ -50,7 +50,7 @@ ] } }, - "=filter": null, + "filter": null, "=mapRendering": [ { "location": [ @@ -65,8 +65,7 @@ "tags": [ "amenity=charging_station", "motorcar=no", - "bicycle=yes", - "socket:typee=1" + "bicycle=yes" ], "title": { "nl": "laadpunt voor elektrische fietsen" @@ -203,7 +202,33 @@ "bike_repair_station-valves" ] }, - "bicycle_rental", + { + "builtin": [ + "bicycle_rental" + ], + "override": { + "id": "charging_station_non_docking", + "minzoom": 14, + "source": { + "osmTags": { + "and+": [ + "bicycle_rental!=docking_station" + ] + } + } + } + }, + { + "#": "All bicycle rental at a high zoom level, to avoid duplicates", + "builtin": "bicycle_rental", + "override": { + "name": null, + "filter": { + "sameAs": "charging_station_non_docking" + }, + "minzoom": 18 + } + }, { "builtin": "playground", "override": { @@ -217,7 +242,8 @@ ] }, "hideTagRenderingsWithLabels": [ - "extra" + "extra", + "website" ] } ], diff --git a/assets/themes/toilets/toilets.json b/assets/themes/toilets/toilets.json index 306af8c3f6..7b0de72ba8 100644 --- a/assets/themes/toilets/toilets.json +++ b/assets/themes/toilets/toilets.json @@ -11,7 +11,8 @@ "pl": "Mapa otwartych toalet", "it": "Mappa libera delle toilet", "nb_NO": "Åpent toalettkart", - "hu": "WC-térkép" + "hu": "WC-térkép", + "ca": "Open Toilet Map" }, "description": { "en": "A map of public toilets", diff --git a/assets/themes/trees/trees.json b/assets/themes/trees/trees.json index 31cabf0e7d..393e0cadb1 100644 --- a/assets/themes/trees/trees.json +++ b/assets/themes/trees/trees.json @@ -12,11 +12,13 @@ "de": "Bäume", "nb_NO": "Trær", "id": "Pohon", - "hu": "Fatérkép" + "hu": "Fatérkép", + "ca": "Arbres", + "es": "Árboles" }, "shortDescription": { - "nl": "Breng bomen in kaart", "en": "Map all the trees", + "nl": "Breng bomen in kaart", "fr": "Carte des arbres", "it": "Mappa tutti gli alberi", "ja": "すべての樹木をマッピングする", @@ -25,7 +27,9 @@ "pl": "Sporządzić mapę wszystkich drzew", "de": "Kartieren Sie alle Bäume", "nb_NO": "Kartlegg alle trærne", - "hu": "Az összes fa feltérképezése" + "hu": "Az összes fa feltérképezése", + "ca": "Mapeja tots els arbres", + "es": "Mapa de los Árboles" }, "description": { "nl": "Breng bomen in kaart!", @@ -37,7 +41,9 @@ "ru": "Нанесите все деревья на карту!", "de": "Kartieren Sie alle Bäume!", "nb_NO": "Kartlegg trærne.", - "hu": "Térképezzünk fel minden fát!" + "hu": "Térképezzünk fel minden fát!", + "ca": "Mapeja tots els arbres.", + "es": "Mapa de todos los Árboles" }, "maintainer": "Midgard", "icon": "./assets/themes/trees/logo.svg", diff --git a/assets/themes/uk_addresses/uk_addresses.json b/assets/themes/uk_addresses/uk_addresses.json index 4a46793bf1..80bccb856b 100644 --- a/assets/themes/uk_addresses/uk_addresses.json +++ b/assets/themes/uk_addresses/uk_addresses.json @@ -123,7 +123,16 @@ }, { "id": "uk_addresses_import_button", - "render": "{import_button(address,urpn_count=$urpn_count;ref:GB:uprn=$ref:GB:uprn$, Add this address, ./assets/themes/uk_addresses/housenumber_add.svg)}" + "render": { + "special": { + "type": "import_button", + "targetLayer": "address", + "tags": "urpn_count=$urpn_count;ref:GB:uprn=$ref:GB:uprn$", + "text": "Add this address", + "icon": "./assets/themes/uk_addresses/housenumber_add.svg", + "location_picker": "none" + } + } } ], "calculatedTags": [ @@ -256,13 +265,16 @@ }, "mappings": [ { - "if": "addr:unit=", - "then": "
    Sub-unit (e.g. \"1\", \"Flat 2\", \"Unit C\")
    ", - "hideInAnswer": true + "if": "not:addr:unit=yes", + "then": "There is no sub-unit within this address", + "addExtraTags": [ + "addr:unit=" + ] }, { "if": "addr:unit=", - "then": "There is no sub-unit within this address" + "then": "
    Sub-unit (e.g. \"1\", \"Flat 2\", \"Unit C\")
    ", + "hideInAnswer": true } ], "condition": { @@ -291,17 +303,12 @@ "addr:housename=" ] }, - "then": "
    House or building name
    ", - "hideInAnswer": true + "then": "This building has no housename" }, { - "if": { - "and": [ - "nohousename=yes", - "addr:housename=" - ] - }, - "then": "This building has no housename" + "if": "addr:housename=", + "then": "
    House or building name
    ", + "hideInAnswer": true }, { "#": "By adding nohousenumber!=yes, this option will trigger when first added, but will be untriggered if a housenumber is added, resulting in the question poping up!", @@ -329,10 +336,20 @@ ] }, "mappings": [ + { + "if": "nohousenumber=yes", + "then": { + "en": "This building has no house number", + "nl": "Dit gebouw heeft geen huisnummer", + "de": "Dieses Gebäude hat keine Hausnummer" + }, + "addExtraTags": [ + "addr:housenumber=" + ] + }, { "if": { "and": [ - "nohousenumber=yes", "addr:housenumber=" ] }, @@ -340,19 +357,6 @@ "en": "
    Number (e.g. 1, 1A, 2)
    " }, "hideInAnswer": true - }, - { - "if": { - "and": [ - "nohousenumber=yes", - "addr:housenumber=" - ] - }, - "then": { - "en": "This building has no house number", - "nl": "Dit gebouw heeft geen huisnummer", - "de": "Dieses Gebäude hat keine Hausnummer" - } } ] }, @@ -372,18 +376,21 @@ ] }, "mappings": [ + { + "if": "not:addr:substreet=yes", + "then": { + "en": "No extra place name is given or needed" + }, + "addExtraTags": [ + "addr:substreet=" + ] + }, { "if": "addr:substreet=", "then": { "en": "
    Place (e.g. \"Castle Mews\", \"West Business Park\")
    " }, "hideInAnswer": true - }, - { - "if": "addr:substreet=", - "then": { - "en": "No extra place name is given or needed" - } } ], "condition": "addr:parentstreet=" @@ -403,18 +410,21 @@ ] }, "mappings": [ + { + "if": "not:addr:substreet=yes", + "then": { + "en": "No extra place name is given or needed" + }, + "addExtraTags": [ + "addr:substreet=" + ] + }, { "if": "addr:substreet=", "then": { "en": "
    Place (e.g. \"Castle Mews\", \"West Business Park\")
    " }, "hideInAnswer": true - }, - { - "if": "addr:substreet=", - "then": { - "en": "No extra place name is given or needed" - } } ], "condition": { @@ -479,15 +489,11 @@ }, "mappings": [ { - "if": "addr:parentstreet=", - "then": { - "en": "
    Parent street name
    " - }, - "hideInAnswer": true - }, - { - "if": "addr:parentstreet=", - "then": "No parent street name is needed within this address" + "if": "not:addr:parentstreet=yes", + "then": "No parent street name is needed within this address", + "addExtraTags": [ + "addr:parentstreet=" + ] }, { "if": "addr:parentstreet:={_closest_street:0:name}", @@ -503,6 +509,13 @@ "if": "addr:parentstreet:={_closest_street:2:name}", "then": "{_closest_street:2:name}", "hideInAnswer": "_closest_street:2:name=" + }, + { + "if": "addr:parentstreet=", + "then": { + "en": "
    Parent street name
    " + }, + "hideInAnswer": true } ], "condition": { diff --git a/assets/themes/waste/waste.json b/assets/themes/waste/waste.json index 1998b893a8..694546043d 100644 --- a/assets/themes/waste/waste.json +++ b/assets/themes/waste/waste.json @@ -2,17 +2,16 @@ "id": "waste", "maintainer": "", "version": "2022-01-19", - "language": [ - "en", - "nl" - ], "title": { "en": "Waste", - "nl": "Afval" + "nl": "Afval", + "de": "Abfall", + "ca": "Brossa" }, "description": { "en": "Map showing waste baskets and recycling facilities.", - "nl": "Kaart met afvalbakken en recyclingfaciliteiten." + "nl": "Kaart met afvalbakken en recyclingfaciliteiten.", + "de": "Die Karte zeigt Abfalleimer und Recyclinganlagen." }, "icon": "./assets/layers/recycling/recycling-14.svg", "startZoom": 19, diff --git a/assets/themes/waste/waste_assen.json b/assets/themes/waste/waste_assen.json index 810c64a317..2a4d495589 100644 --- a/assets/themes/waste/waste_assen.json +++ b/assets/themes/waste/waste_assen.json @@ -2,10 +2,6 @@ "id": "waste_assen", "maintainer": "Robin van der Linde", "version": "2022-01-09", - "language": [ - "en", - "nl" - ], "title": { "nl": "Afval - Assen" }, diff --git a/assets/themes/waste_basket/waste_basket.json b/assets/themes/waste_basket/waste_basket.json index d312125a82..2c5d9f3f07 100644 --- a/assets/themes/waste_basket/waste_basket.json +++ b/assets/themes/waste_basket/waste_basket.json @@ -7,7 +7,8 @@ "it": "Cestino dei rifiuti", "zh_Hant": "垃圾筒", "hu": "Kukatérkép", - "id": "Keranjang Sampah" + "id": "Keranjang Sampah", + "ca": "Papepera" }, "shortDescription": { "en": "A map with waste baskets", @@ -20,7 +21,7 @@ "description": { "en": "On this map, you'll find waste baskets near you. If a waste basket is missing on this map, you can add it yourself", "nl": "Op deze kaart vind je vuilnisbakken waar je afval in kan smijten. Ontbreekt er een vuilnisbak? Dan kan je die zelf toevoegen", - "de": "Auf dieser Karte finden Sie Abfalleimer in Ihrer Nähe. Wenn ein Abfalleimer auf dieser Karte fehlt, können Sie ihn selbst hinzufügen", + "de": "Auf dieser Karte findest Du Abfalleimer in Deiner Nähe. Wenn ein Abfalleimer auf dieser Karte fehlt, kannst du ihn selbst hinzufügen", "it": "In questa cartina troverai i cestini dei rifiuti nei tuoi paraggi. Se manca un cestino, puoi inserirlo tu stesso", "zh_Hant": "在這份地圖當中,你可以找到你附近的垃圾筒。如果地圖有遺漏垃圾筒,你可以自己加上去", "hu": "Ezen a térképen megtalálhatod a közeledben lévő szemeteskosarakat. Ha hiányzik egy kuka a térképről, te is felrajzolhatod" diff --git a/assets/translators.json b/assets/translators.json index b2d361f78f..0bff98565d 100644 --- a/assets/translators.json +++ b/assets/translators.json @@ -1 +1,340 @@ -{"contributors":[{"commits":60,"contributor":"danieldegroot2"},{"commits":41,"contributor":"kjon"},{"commits":29,"contributor":"Artem"},{"commits":23,"contributor":"Pieter Vander Vennet"},{"commits":22,"contributor":"Supaplex"},{"commits":22,"contributor":"Marco"},{"commits":22,"contributor":"Allan Nordhøy"},{"commits":21,"contributor":"Babos Gábor"},{"commits":21,"contributor":"Anonymous"},{"commits":15,"contributor":"WaldiS"},{"commits":14,"contributor":"J. Lavoie"},{"commits":13,"contributor":"SC"},{"commits":10,"contributor":"Reza Almanda"},{"commits":9,"contributor":"Jacque Fresco"},{"commits":8,"contributor":"LeJun"},{"commits":8,"contributor":"Irina"},{"commits":6,"contributor":"Nikolay Korotkiy"},{"commits":6,"contributor":"William Weber Berrutti"},{"commits":6,"contributor":"lvgx"},{"commits":5,"contributor":"Piotr"},{"commits":5,"contributor":"Robin van der Linde"},{"commits":5,"contributor":"seppesantens"},{"commits":5,"contributor":"Vinicius"},{"commits":5,"contributor":"Alexey Shabanov"},{"commits":4,"contributor":"Jeff Huang"},{"commits":4,"contributor":"Joost"},{"commits":4,"contributor":"Adolfo Jayme Barrientos"},{"commits":4,"contributor":"Polgár Sándor"},{"commits":4,"contributor":"David Haberthür"},{"commits":4,"contributor":"phlostically"},{"commits":4,"contributor":"Jan Zabel"},{"commits":4,"contributor":"Fabio Bettani"},{"commits":3,"contributor":"Sasha"},{"commits":3,"contributor":"Jose Luis Infante"},{"commits":3,"contributor":"Francois"},{"commits":3,"contributor":"Eduardo Addad de Oliveira"},{"commits":3,"contributor":"Wiktor Przybylski"},{"commits":3,"contributor":"Erik Palm"},{"commits":3,"contributor":"vankos"},{"commits":3,"contributor":"JCGF-OSM"},{"commits":3,"contributor":"Hiroshi Miura"},{"commits":3,"contributor":"SiegbjornSitumeang"},{"commits":2,"contributor":"わたなべけんご"},{"commits":2,"contributor":"Mateusz Konieczny"},{"commits":2,"contributor":"Kristoffer Grundström"},{"commits":2,"contributor":"el_libre como el chaval"},{"commits":2,"contributor":"Sebastian Kürten"},{"commits":2,"contributor":"Damian Tokarski"},{"commits":2,"contributor":"mic140"},{"commits":2,"contributor":"Heiko"},{"commits":2,"contributor":"Leo Alcaraz"},{"commits":1,"contributor":"sparky-oxford"},{"commits":1,"contributor":"jcn706"},{"commits":1,"contributor":"whatismoss"},{"commits":1,"contributor":"LePirlouit"},{"commits":1,"contributor":"SoftwareByRedline"},{"commits":1,"contributor":"plic ploc"},{"commits":1,"contributor":"Janina Ellinghaus"},{"commits":1,"contributor":"ssantos"},{"commits":1,"contributor":"Andre Fajar N"},{"commits":1,"contributor":"Ahen Purwakarta"},{"commits":1,"contributor":"Luna Jernberg"},{"commits":1,"contributor":"Rodrigo Tavares"},{"commits":1,"contributor":"liimee"},{"commits":1,"contributor":"Michał Targoński"},{"commits":1,"contributor":"Sean Young"},{"commits":1,"contributor":"Damian Pułka"},{"commits":1,"contributor":"Iváns"},{"commits":1,"contributor":"快乐的老鼠宝宝"},{"commits":1,"contributor":"Eric Armijo"},{"commits":1,"contributor":"Beardhatcode"},{"commits":1,"contributor":"riiga"},{"commits":1,"contributor":"Carlos Ramos Carreño"}]} \ No newline at end of file +{ + "contributors": [ + { + "commits": 115, + "contributor": "Pieter Vander Vennet" + }, + { + "commits": 60, + "contributor": "danieldegroot2" + }, + { + "commits": 58, + "contributor": "kjon" + }, + { + "commits": 29, + "contributor": "Artem" + }, + { + "commits": 25, + "contributor": "Babos Gábor" + }, + { + "commits": 22, + "contributor": "Supaplex" + }, + { + "commits": 22, + "contributor": "Marco" + }, + { + "commits": 22, + "contributor": "Allan Nordhøy" + }, + { + "commits": 21, + "contributor": "Anonymous" + }, + { + "commits": 16, + "contributor": "el_libre como el chaval" + }, + { + "commits": 16, + "contributor": "Robin van der Linde" + }, + { + "commits": 15, + "contributor": "WaldiS" + }, + { + "commits": 14, + "contributor": "Reza Almanda" + }, + { + "commits": 14, + "contributor": "J. Lavoie" + }, + { + "commits": 13, + "contributor": "SC" + }, + { + "commits": 12, + "contributor": "Joost" + }, + { + "commits": 10, + "contributor": "Irina" + }, + { + "commits": 9, + "contributor": "Jacque Fresco" + }, + { + "commits": 8, + "contributor": "LeJun" + }, + { + "commits": 7, + "contributor": "Win Olario" + }, + { + "commits": 6, + "contributor": "Štefan Baebler" + }, + { + "commits": 6, + "contributor": "seppesantens" + }, + { + "commits": 6, + "contributor": "Nikolay Korotkiy" + }, + { + "commits": 6, + "contributor": "William Weber Berrutti" + }, + { + "commits": 6, + "contributor": "lvgx" + }, + { + "commits": 5, + "contributor": "David Haberthür" + }, + { + "commits": 5, + "contributor": "Romain de Bossoreille" + }, + { + "commits": 5, + "contributor": "Piotr" + }, + { + "commits": 5, + "contributor": "Vinicius" + }, + { + "commits": 5, + "contributor": "Alexey Shabanov" + }, + { + "commits": 4, + "contributor": "Hiroshi Miura" + }, + { + "commits": 4, + "contributor": "Jeff Huang" + }, + { + "commits": 4, + "contributor": "Adolfo Jayme Barrientos" + }, + { + "commits": 4, + "contributor": "Polgár Sándor" + }, + { + "commits": 4, + "contributor": "phlostically" + }, + { + "commits": 4, + "contributor": "Jan Zabel" + }, + { + "commits": 4, + "contributor": "Fabio Bettani" + }, + { + "commits": 3, + "contributor": "Sasha" + }, + { + "commits": 3, + "contributor": "Jose Luis Infante" + }, + { + "commits": 3, + "contributor": "Francois" + }, + { + "commits": 3, + "contributor": "Eduardo Addad de Oliveira" + }, + { + "commits": 3, + "contributor": "Wiktor Przybylski" + }, + { + "commits": 3, + "contributor": "Erik Palm" + }, + { + "commits": 3, + "contributor": "vankos" + }, + { + "commits": 3, + "contributor": "JCGF-OSM" + }, + { + "commits": 3, + "contributor": "SiegbjornSitumeang" + }, + { + "commits": 2, + "contributor": "paunofu" + }, + { + "commits": 2, + "contributor": "Localizer" + }, + { + "commits": 2, + "contributor": "foxandpotatoes" + }, + { + "commits": 2, + "contributor": "Eric Armijo" + }, + { + "commits": 2, + "contributor": "MeblIkea" + }, + { + "commits": 2, + "contributor": "快乐的老鼠宝宝" + }, + { + "commits": 2, + "contributor": "わたなべけんご" + }, + { + "commits": 2, + "contributor": "Mateusz Konieczny" + }, + { + "commits": 2, + "contributor": "Kristoffer Grundström" + }, + { + "commits": 2, + "contributor": "Sebastian Kürten" + }, + { + "commits": 2, + "contributor": "Damian Tokarski" + }, + { + "commits": 2, + "contributor": "mic140" + }, + { + "commits": 2, + "contributor": "Heiko" + }, + { + "commits": 2, + "contributor": "Leo Alcaraz" + }, + { + "commits": 1, + "contributor": "deep map" + }, + { + "commits": 1, + "contributor": "HO Gin Wang" + }, + { + "commits": 1, + "contributor": "Falk Rund" + }, + { + "commits": 1, + "contributor": "pdassori" + }, + { + "commits": 1, + "contributor": "sparky-oxford" + }, + { + "commits": 1, + "contributor": "jcn706" + }, + { + "commits": 1, + "contributor": "whatismoss" + }, + { + "commits": 1, + "contributor": "LePirlouit" + }, + { + "commits": 1, + "contributor": "SoftwareByRedline" + }, + { + "commits": 1, + "contributor": "plic ploc" + }, + { + "commits": 1, + "contributor": "Janina Ellinghaus" + }, + { + "commits": 1, + "contributor": "ssantos" + }, + { + "commits": 1, + "contributor": "Andre Fajar N" + }, + { + "commits": 1, + "contributor": "Ahen Purwakarta" + }, + { + "commits": 1, + "contributor": "Luna Jernberg" + }, + { + "commits": 1, + "contributor": "Rodrigo Tavares" + }, + { + "commits": 1, + "contributor": "liimee" + }, + { + "commits": 1, + "contributor": "Michał Targoński" + }, + { + "commits": 1, + "contributor": "Sean Young" + }, + { + "commits": 1, + "contributor": "Damian Pułka" + }, + { + "commits": 1, + "contributor": "Iváns" + }, + { + "commits": 1, + "contributor": "Beardhatcode" + }, + { + "commits": 1, + "contributor": "riiga" + }, + { + "commits": 1, + "contributor": "Carlos Ramos Carreño" + } + ] +} \ No newline at end of file diff --git a/assets/welcome_message.json b/assets/welcome_message.json index 0d53ded19a..31f736510a 100644 --- a/assets/welcome_message.json +++ b/assets/welcome_message.json @@ -1,4 +1,15 @@ [ + { + "start_date": "2022-05-30", + "end_date":"2022-06-05", + "message": "The 3rd of June is World Bicycle DayX. Go find a bike shop or bike pump nearby", + "featured_theme": "cyclofix" + }, + { + "start_date": "2022-04-24", + "end_date": "2022-05-30", + "message": "Help translating MapComplete! If you have some free time, please translate MapComplete to your favourite language. Read the instructions here" + }, { "start_date": "2022-04-18", "end_date": "2022-04-24", diff --git a/automaton.html b/automaton.html index d4c9ffb3e7..bff744cd49 100644 --- a/automaton.html +++ b/automaton.html @@ -21,16 +21,16 @@ - - - - - - - - - - + + + + + + + + + +