diff --git a/Docs/Making_Your_Own_Theme.md b/Docs/Making_Your_Own_Theme.md index 0a1cca965b..8549a8ab6f 100644 --- a/Docs/Making_Your_Own_Theme.md +++ b/Docs/Making_Your_Own_Theme.md @@ -13,7 +13,8 @@ Before you start, you should have the following qualifications: - You're theme will add well-understood tags (aka: the tags have a wiki page, are not controversial and are objective) - You are in contact with your local OpenStreetMap community and do know some other members to discuss tagging and to help testing -If you do not have those qualifications, reach out to the MapComplete community channel on [Telegram](https://t.me/joinchat/HiMUavahRG--SCvC) +If you do not have those qualifications, reach out to the MapComplete community channel on [Telegram](https://t.me/MapComplete) +or [Matrix](https://app.element.io/#/room/#MapComplete:matrix.org). The custom theme generator -------------------------- @@ -55,12 +56,9 @@ The preferred way to add your theme is via a Pull Request. A Pull Request is les - If an SVG version is available, use the SVG version - Make sure all the links in `yourtheme.json` are updated. You can use `./assets/themes/yourtheme/yourimage.svg` instead of the HTML link - Create a file `license_info.json` in the theme directory, which contains metadata on every artwork source - 5) Add your theme to the code base: - - Open [AllKnownLayouts.ts](https://github.com/pietervdvn/MapComplete/blob/master/Customizations/AllKnownLayouts.ts) - - Add an import statement, e.g. `import * as yourtheme from "../assets/themes/yourtheme/yourthemes.json";` - - Add your theme to the `LayoutsList`, by adding a line `new LayoutConfig(yourtheme)` + 5) Add your theme to the code base: add it into "assets/themes" and make sure all the images are there too. Running 'ts-node scripts/fixTheme ' will help downloading the images and attempts to get the licenses if on wikimedia. 6) Add some finishing touches, such as a social image. See [this blog post](https://www.h3xed.com/web-and-internet/how-to-use-og-image-meta-tag-facebook-reddit) for some hints - 7) Test your theme: run the project as described [above](../README.md#Dev) + 7) Test your theme: run the project as described in [development_deployment](Development_deployment.md) 8) Happy with your theme? Time to open a Pull Request! 9) Thanks a lot for improving MapComplete! diff --git a/Logic/Osm/Changes.ts b/Logic/Osm/Changes.ts index ff5de32bf7..c9efc979b2 100644 --- a/Logic/Osm/Changes.ts +++ b/Logic/Osm/Changes.ts @@ -136,7 +136,14 @@ export class Changes implements FeatureSource{ } private uploadChangesWithLatestVersions( - knownElements, newElements: OsmObject[], pending: { elementId: string; key: string; value: string }[]) { + knownElements: OsmObject[], newElements: OsmObject[], pending: { elementId: string; key: string; value: string }[]) { + const knownById = new Map(); + + knownElements.forEach(knownElement => { + knownById.set(knownElement.type + "/" + knownElement.id, knownElement) + }) + + // Here, inside the continuation, we know that all 'neededIds' are loaded in 'knownElements', which maps the ids onto the elements // We apply the changes on them for (const change of pending) { @@ -147,9 +154,8 @@ export class Changes implements FeatureSource{ newElement.addTag(change.key, change.value); } } - } else { - knownElements[change.elementId].addTag(change.key, change.value); + knownById.get(change.elementId).addTag(change.key, change.value); } } @@ -230,6 +236,7 @@ export class Changes implements FeatureSource{ neededIds = Utils.Dedup(neededIds); OsmObject.DownloadAll(neededIds).addCallbackAndRunD(knownElements => { + console.log("KnownElements:", knownElements) self.uploadChangesWithLatestVersions(knownElements, newElements, pending) }) } diff --git a/Logic/Osm/OsmObject.ts b/Logic/Osm/OsmObject.ts index 6f9ec95b3e..e8f2047591 100644 --- a/Logic/Osm/OsmObject.ts +++ b/Logic/Osm/OsmObject.ts @@ -36,15 +36,22 @@ export abstract class OsmObject { this.backendURL = url; } - static DownloadObject(id): UIEventSource { + static DownloadObject(id: string, forceRefresh: boolean = false): UIEventSource { + let src : UIEventSource; if (OsmObject.objectCache.has(id)) { - return OsmObject.objectCache.get(id) + src = OsmObject.objectCache.get(id) + if(forceRefresh){ + src.setData(undefined) + }else{ + return src; + } + }else{ + src = new UIEventSource(undefined) } const splitted = id.split("/"); const type = splitted[0]; const idN = splitted[1]; - const src = new UIEventSource(undefined) OsmObject.objectCache.set(id, src); const newContinuation = (element: OsmObject) => { src.setData(element) @@ -158,11 +165,11 @@ export abstract class OsmObject { }) } - public static DownloadAll(neededIds): UIEventSource { + public static DownloadAll(neededIds, forceRefresh = true): UIEventSource { // local function which downloads all the objects one by one // this is one big loop, running one download, then rerunning the entire function - const allSources: UIEventSource [] = neededIds.map(id => OsmObject.DownloadObject(id)) + const allSources: UIEventSource [] = neededIds.map(id => OsmObject.DownloadObject(id, forceRefresh)) const allCompleted = new UIEventSource(undefined).map(_ => { return !allSources.some(uiEventSource => uiEventSource.data === undefined) }, allSources) @@ -170,7 +177,7 @@ export abstract class OsmObject { if (completed) { return allSources.map(src => src.data) } - return [] + return undefined }); } diff --git a/Models/Constants.ts b/Models/Constants.ts index f4fc0ba69a..6747a64a3d 100644 --- a/Models/Constants.ts +++ b/Models/Constants.ts @@ -2,7 +2,7 @@ import { Utils } from "../Utils"; export default class Constants { - public static vNumber = "0.8.3a"; + public static vNumber = "0.8.3f"; // The user journey states thresholds when a new feature gets unlocked public static userJourney = { diff --git a/UI/BigComponents/UserBadge.ts b/UI/BigComponents/UserBadge.ts index cb84951dac..ab7292b4b6 100644 --- a/UI/BigComponents/UserBadge.ts +++ b/UI/BigComponents/UserBadge.ts @@ -68,7 +68,7 @@ export default class UserBadge extends Toggle { if (user.unreadMessages > 0) { messageSpan = new Link( new Combine([Svg.envelope, "" + user.unreadMessages]), - '${user.backend}/messages/inbox', + `${user.backend}/messages/inbox`, true ).SetClass("alert") } diff --git a/assets/layers/bench/bench.json b/assets/layers/bench/bench.json index 2a08e20768..3796a24b50 100644 --- a/assets/layers/bench/bench.json +++ b/assets/layers/bench/bench.json @@ -12,7 +12,8 @@ "ru": "Скамейки", "zh_Hans": "长椅", "zh_Hant": "長椅", - "nb_NO": "Benker" + "nb_NO": "Benker", + "fi": "Penkit" }, "minzoom": 14, "source": { @@ -31,7 +32,8 @@ "ru": "Скамейка", "zh_Hans": "长椅", "zh_Hant": "長椅", - "nb_NO": "Benk" + "nb_NO": "Benk", + "fi": "Penkki" } }, "tagRenderings": [ @@ -49,7 +51,8 @@ "ru": "Спинка", "zh_Hans": "靠背", "zh_Hant": "靠背", - "nb_NO": "Rygglene" + "nb_NO": "Rygglene", + "fi": "Selkänoja" }, "freeform": { "key": "backrest" @@ -69,7 +72,8 @@ "ru": "Со спинкой", "zh_Hans": "靠背:有", "zh_Hant": "靠背:有", - "nb_NO": "Rygglene: Ja" + "nb_NO": "Rygglene: Ja", + "fi": "Selkänoja: kyllä" } }, { @@ -86,7 +90,8 @@ "ru": "Без спинки", "zh_Hans": "靠背:无", "zh_Hant": "靠背:無", - "nb_NO": "Rygglene: Nei" + "nb_NO": "Rygglene: Nei", + "fi": "Selkänoja: ei" } } ], @@ -149,7 +154,8 @@ "ru": "Материал: {material}", "zh_Hanå¨s": "材质: {material}", "zh_Hant": "材質:{material}", - "nb_NO": "Materiale: {material}" + "nb_NO": "Materiale: {material}", + "fi": "Materiaali: {material}" }, "freeform": { "key": "material", @@ -170,7 +176,8 @@ "zh_Hans": "材质:木", "nb_NO": "Materiale: tre", "zh_Hant": "材質:木頭", - "pt_BR": "Material: madeira" + "pt_BR": "Material: madeira", + "fi": "Materiaali: puu" } }, { @@ -203,7 +210,8 @@ "zh_Hans": "材质:石头", "nb_NO": "Materiale: stein", "zh_Hant": "材質:石頭", - "pt_BR": "Material: pedra" + "pt_BR": "Material: pedra", + "fi": "Materiaali: kivi" } }, { @@ -220,7 +228,8 @@ "zh_Hans": "材质:混凝土", "nb_NO": "Materiale: betong", "zh_Hant": "材質:水泥", - "pt_BR": "Material: concreto" + "pt_BR": "Material: concreto", + "fi": "Materiaali: betoni" } }, { @@ -237,7 +246,8 @@ "zh_Hans": "材质:塑料", "nb_NO": "Materiale: plastikk", "zh_Hant": "材質:塑膠", - "pt_BR": "Material: plástico" + "pt_BR": "Material: plástico", + "fi": "Materiaali: muovi" } }, { @@ -254,7 +264,8 @@ "zh_Hans": "材质:不锈钢", "nb_NO": "Materiale: stål", "zh_Hant": "材質:鋼鐵", - "pt_BR": "Material: aço" + "pt_BR": "Material: aço", + "fi": "Materiaali: teräs" } } ], @@ -313,7 +324,8 @@ "zh_Hans": "颜色: {colour}", "zh_Hant": "顏色:{colour}", "nb_NO": "Farge: {colour}", - "pt_BR": "Cor: {colour}" + "pt_BR": "Cor: {colour}", + "fi": "Väri: {colour}" }, "question": { "en": "Which colour does this bench have?", @@ -345,7 +357,8 @@ "zh_Hans": "颜色:棕", "zh_Hant": "顏色:棕色", "nb_NO": "Farge: brun", - "pt_BR": "Cor: marrom" + "pt_BR": "Cor: marrom", + "fi": "Väri: ruskea" } }, { @@ -361,7 +374,8 @@ "zh_Hans": "颜色:绿", "zh_Hant": "顏色:綠色", "nb_NO": "Farge: grønn", - "pt_BR": "Cor: verde" + "pt_BR": "Cor: verde", + "fi": "Väri: vihreä" } }, { @@ -377,7 +391,8 @@ "zh_Hans": "颜色:灰", "zh_Hant": "顏色:灰色", "nb_NO": "Farge: grå", - "pt_BR": "Cor: cinza" + "pt_BR": "Cor: cinza", + "fi": "Väri: harmaa" } }, { @@ -393,7 +408,8 @@ "zh_Hans": "颜色:白", "zh_Hant": "顏色:白色", "nb_NO": "Farge: hvit", - "pt_BR": "Cor: branco" + "pt_BR": "Cor: branco", + "fi": "Väri: valkoinen" } }, { @@ -409,7 +425,8 @@ "zh_Hans": "颜色:红", "zh_Hant": "顏色:紅色", "nb_NO": "Farge: rød", - "pt_BR": "Cor: vermelho" + "pt_BR": "Cor: vermelho", + "fi": "Väri: punainen" } }, { @@ -425,7 +442,8 @@ "zh_Hans": "颜色:黑", "zh_Hant": "顏色:黑色", "nb_NO": "Farge: svart", - "pt_BR": "Cor: preto" + "pt_BR": "Cor: preto", + "fi": "Väri: musta" } }, { @@ -441,7 +459,8 @@ "zh_Hans": "颜色:蓝", "zh_Hant": "顏色:藍色", "nb_NO": "Farge: blå", - "pt_BR": "Cor: azul" + "pt_BR": "Cor: azul", + "fi": "Väri: sininen" } }, { @@ -457,7 +476,8 @@ "zh_Hans": "颜色:黄", "zh_Hant": "顏色:黃色", "nb_NO": "Farge: gul", - "pt_BR": "Cor: amarelo" + "pt_BR": "Cor: amarelo", + "fi": "Väri: keltainen" } } ] @@ -528,7 +548,8 @@ "zh_Hans": "长椅", "nb_NO": "Benk", "zh_Hant": "長椅", - "pt_BR": "Banco" + "pt_BR": "Banco", + "fi": "Penkki" }, "description": { "en": "Add a new bench", @@ -542,7 +563,8 @@ "zh_Hans": "增加一个新的长椅", "nb_NO": "Legg til en ny benk", "zh_Hant": "新增長椅", - "pt_BR": "Adicionar um novo banco" + "pt_BR": "Adicionar um novo banco", + "fi": "Lisää uusi penkki" } } ] diff --git a/assets/layers/bench_at_pt/bench_at_pt.json b/assets/layers/bench_at_pt/bench_at_pt.json index 85cadb86ec..bb2661e25f 100644 --- a/assets/layers/bench_at_pt/bench_at_pt.json +++ b/assets/layers/bench_at_pt/bench_at_pt.json @@ -37,7 +37,8 @@ "zh_Hans": "长椅", "nb_NO": "Benk", "zh_Hant": "長椅", - "pt_BR": "Banco" + "pt_BR": "Banco", + "fi": "Penkki" }, "mappings": [ { @@ -96,7 +97,8 @@ "id": "{name}", "zh_Hans": "{name}", "zh_Hant": "{name}", - "pt_BR": "{name}" + "pt_BR": "{name}", + "fi": "{name}" }, "freeform": { "key": "name" diff --git a/assets/layers/bicycle_library/bicycle_library.json b/assets/layers/bicycle_library/bicycle_library.json index cb6cb2f2e1..d56f3bc428 100644 --- a/assets/layers/bicycle_library/bicycle_library.json +++ b/assets/layers/bicycle_library/bicycle_library.json @@ -145,7 +145,8 @@ "fr": "Emprunter un vélo coûte 20 €/an et 20 € de garantie", "it": "Il prestito di una bicicletta costa 20 €/anno più 20 € di garanzia", "de": "Das Ausleihen eines Fahrrads kostet 20€ pro Jahr und 20€ Gebühr", - "zh_Hant": "租借單車價錢 €20/year 與 €20 保證金" + "zh_Hant": "租借單車價錢 €20/year 與 €20 保證金", + "ru": "Прокат велосипеда стоит €20/год и €20 залог" } } ] diff --git a/assets/layers/bike_cafe/bike_cafe.json b/assets/layers/bike_cafe/bike_cafe.json index 77b5823950..30dcb1760a 100644 --- a/assets/layers/bike_cafe/bike_cafe.json +++ b/assets/layers/bike_cafe/bike_cafe.json @@ -117,7 +117,8 @@ "de": "Dieses Fahrrad-Café bietet eine Fahrradpumpe an, die von jedem benutzt werden kann", "it": "Questo caffè in bici offre una pompa per bici liberamente utilizzabile", "zh_Hans": "这家自行车咖啡为每个人提供打气筒", - "zh_Hant": "這個單車咖啡廳有提供給任何人都能使用的單車打氣甬" + "zh_Hant": "這個單車咖啡廳有提供給任何人都能使用的單車打氣甬", + "ru": "В этом велосипедном кафе есть велосипедный насос для всеобщего использования" } }, { @@ -130,7 +131,8 @@ "de": "Dieses Fahrrad-Café bietet keine Fahrradpumpe an, die von jedem benutzt werden kann", "it": "Questo caffè in bici non offre una pompa per bici liberamente utilizzabile", "zh_Hans": "这家自行车咖啡不为每个人提供打气筒", - "zh_Hant": "這個單車咖啡廳並沒有為所有人提供單車打氣甬" + "zh_Hant": "這個單車咖啡廳並沒有為所有人提供單車打氣甬", + "ru": "В этом велосипедном кафе нет велосипедного насоса для всеобщего использования" } } ] @@ -144,7 +146,8 @@ "de": "Gibt es hier Werkzeuge, um das eigene Fahrrad zu reparieren?", "it": "Ci sono degli strumenti per riparare la propria bicicletta?", "zh_Hans": "这里有供你修车用的工具吗?", - "zh_Hant": "這裡是否有工具修理你的單車嗎?" + "zh_Hant": "這裡是否有工具修理你的單車嗎?", + "ru": "Есть ли здесь инструменты для починки вашего велосипеда?" }, "mappings": [ { @@ -157,7 +160,8 @@ "de": "Dieses Fahrrad-Café bietet Werkzeuge für die selbständige Reparatur an", "it": "Questo caffè in bici fornisce degli attrezzi per la riparazione fai-da-te", "zh_Hans": "这家自行车咖啡为DIY修理者提供工具", - "zh_Hant": "這個單車咖啡廳提供工具讓你修理" + "zh_Hant": "這個單車咖啡廳提供工具讓你修理", + "ru": "В этом велосипедном кафе есть инструменты для починки своего велосипеда" } }, { @@ -170,7 +174,8 @@ "de": "Dieses Fahrrad-Café bietet keine Werkzeuge für die selbständige Reparatur an", "it": "Questo caffè in bici non fornisce degli attrezzi per la riparazione fai-da-te", "zh_Hans": "这家自行车咖啡不为DIY修理者提供工具", - "zh_Hant": "這個單車咖啡廳並沒有提供工具讓你修理" + "zh_Hant": "這個單車咖啡廳並沒有提供工具讓你修理", + "ru": "В этом велосипедном кафе нет инструментов для починки своего велосипеда" } } ] @@ -184,7 +189,8 @@ "de": "Repariert dieses Fahrrad-Café Fahrräder?", "it": "Questo caffè in bici ripara le bici?", "zh_Hans": "这家自行车咖啡t提供修车服务吗?", - "zh_Hant": "這個單車咖啡廳是否能修理單車?" + "zh_Hant": "這個單車咖啡廳是否能修理單車?", + "ru": "Есть ли услуги ремонта велосипедов в этом велосипедном кафе?" }, "mappings": [ { @@ -197,7 +203,8 @@ "de": "Dieses Fahrrad-Café repariert Fahrräder", "it": "Questo caffè in bici ripara le bici", "zh_Hans": "这家自行车咖啡可以修车", - "zh_Hant": "這個單車咖啡廳修理單車" + "zh_Hant": "這個單車咖啡廳修理單車", + "ru": "В этом велосипедном кафе есть услуги ремонта велосипедов" } }, { @@ -210,7 +217,8 @@ "de": "Dieses Fahrrad-Café repariert keine Fahrräder", "it": "Questo caffè in bici non ripara le bici", "zh_Hans": "这家自行车咖啡不能修车", - "zh_Hant": "這個單車咖啡廳並不修理單車" + "zh_Hant": "這個單車咖啡廳並不修理單車", + "ru": "В этом велосипедном кафе нет услуг ремонта велосипедов" } } ] @@ -275,7 +283,8 @@ "fr": "Quand ce Café vélo est-t-il ouvert ?", "it": "Quando è aperto questo caffè in bici?", "zh_Hans": "这家自行车咖啡什么时候开门营业?", - "zh_Hant": "何時這個單車咖啡廳營運?" + "zh_Hant": "何時這個單車咖啡廳營運?", + "ru": "Каков режим работы этого велосипедного кафе?" }, "render": "{opening_hours_table(opening_hours)}", "freeform": { diff --git a/assets/layers/bike_monitoring_station/bike_monitoring_station.json b/assets/layers/bike_monitoring_station/bike_monitoring_station.json index 0f54f36de9..34b4d1b630 100644 --- a/assets/layers/bike_monitoring_station/bike_monitoring_station.json +++ b/assets/layers/bike_monitoring_station/bike_monitoring_station.json @@ -5,7 +5,8 @@ "nl": "Telstation", "fr": "Stations de contrôle", "it": "Stazioni di monitoraggio", - "zh_Hant": "監視站" + "zh_Hant": "監視站", + "ru": "Станции мониторинга" }, "minzoom": 12, "source": { diff --git a/assets/layers/bike_parking/bike_parking.json b/assets/layers/bike_parking/bike_parking.json index 368931aa87..be24e0a6d1 100644 --- a/assets/layers/bike_parking/bike_parking.json +++ b/assets/layers/bike_parking/bike_parking.json @@ -77,7 +77,8 @@ "de": "Dies ist ein Fahrrad-Parkplatz der Art: {bicycle_parking}", "hu": "Ez egy {bicycle_parking} típusú kerékpáros parkoló", "it": "È un parcheggio bici del tipo: {bicycle_parking}", - "zh_Hant": "這個單車停車場的類型是:{bicycle_parking}" + "zh_Hant": "這個單車停車場的類型是:{bicycle_parking}", + "ru": "Это велопарковка типа {bicycle_parking}" }, "freeform": { "key": "bicycle_parking", @@ -288,7 +289,8 @@ "fr": "Ce parking est couvert (il a un toit)", "hu": "A parkoló fedett", "it": "È un parcheggio coperto (ha un tetto)", - "zh_Hant": "這個停車場有遮蔽 (有屋頂)" + "zh_Hant": "這個停車場有遮蔽 (有屋頂)", + "ru": "Это крытая парковка (есть крыша/навес)" } }, { @@ -301,7 +303,8 @@ "fr": "Ce parking n'est pas couvert", "hu": "A parkoló nem fedett", "it": "Non è un parcheggio coperto", - "zh_Hant": "這個停車場沒有遮蔽" + "zh_Hant": "這個停車場沒有遮蔽", + "ru": "Это открытая парковка" } } ] @@ -324,7 +327,8 @@ "gl": "Lugar para {capacity} bicicletas", "de": "Platz für {capacity} Fahrräder", "it": "Posti per {capacity} bici", - "zh_Hant": "{capacity} 單車的地方" + "zh_Hant": "{capacity} 單車的地方", + "ru": "Место для {capacity} велосипеда(ов)" }, "freeform": { "key": "capacity", @@ -339,7 +343,8 @@ "fr": "Qui peut utiliser ce parking à vélo ?", "it": "Chi può usare questo parcheggio bici?", "de": "Wer kann diesen Fahrradparplatz nutzen?", - "zh_Hant": "誰可以使用這個單車停車場?" + "zh_Hant": "誰可以使用這個單車停車場?", + "ru": "Кто может пользоваться этой велопарковкой?" }, "render": { "en": "{access}", @@ -349,7 +354,8 @@ "it": "{access}", "ru": "{access}", "id": "{access}", - "zh_Hant": "{access}" + "zh_Hant": "{access}", + "fi": "{access}" }, "freeform": { "key": "access", diff --git a/assets/layers/bike_repair_station/bike_repair_station.json b/assets/layers/bike_repair_station/bike_repair_station.json index cc08a9acf9..6f59d8a5cf 100644 --- a/assets/layers/bike_repair_station/bike_repair_station.json +++ b/assets/layers/bike_repair_station/bike_repair_station.json @@ -218,7 +218,8 @@ "en": "When is this bicycle repair point open?", "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?" + "de": "Wann ist diese Fahrradreparaturstelle geöffnet?", + "ru": "Когда работает эта точка обслуживания велосипедов?" }, "render": "{opening_hours_table()}", "freeform": { @@ -233,7 +234,8 @@ "en": "Always open", "fr": "Ouvert en permanence", "it": "Sempre aperto", - "de": "Immer geöffnet" + "de": "Immer geöffnet", + "ru": "Всегда открыто" } }, { @@ -506,13 +508,15 @@ } } ] - } + }, + "level" ], "icon": { "render": { "en": "./assets/layers/bike_repair_station/repair_station.svg", "ru": "./assets/layers/bike_repair_station/repair_station.svg", - "it": "./assets/layers/bike_repair_station/repair_station.svg" + "it": "./assets/layers/bike_repair_station/repair_station.svg", + "fi": "./assets/layers/bike_repair_station/repair_station.svg" }, "mappings": [ { @@ -584,7 +588,8 @@ "gl": "Bomba de ar", "de": "Fahrradpumpe", "it": "Pompa per bici", - "ru": "Велосипедный насос" + "ru": "Велосипедный насос", + "fi": "Pyöräpumppu" }, "tags": [ "amenity=bicycle_repair_station", diff --git a/assets/layers/bike_shop/bike_shop.json b/assets/layers/bike_shop/bike_shop.json index 72ced485e6..7f60ced897 100644 --- a/assets/layers/bike_shop/bike_shop.json +++ b/assets/layers/bike_shop/bike_shop.json @@ -6,7 +6,8 @@ "fr": "Magasin ou réparateur de vélo", "gl": "Tenda/arranxo de bicicletas", "de": "Fahrradwerkstatt/geschäft", - "it": "Venditore/riparatore bici" + "it": "Venditore/riparatore bici", + "ru": "Обслуживание велосипедов/магазин" }, "minzoom": 13, "source": { @@ -54,7 +55,8 @@ "fr": "Magasin ou réparateur de vélo", "gl": "Tenda/arranxo de bicicletas", "de": "Fahrradwerkstatt/geschäft", - "it": "Venditore/riparatore bici" + "it": "Venditore/riparatore bici", + "ru": "Обслуживание велосипедов/магазин" }, "mappings": [ { @@ -207,7 +209,8 @@ "fr": "Ce magasin s'appelle {name}", "gl": "Esta tenda de bicicletas chámase {name}", "de": "Dieses Fahrradgeschäft heißt {name}", - "it": "Questo negozio di biciclette è chiamato {name}" + "it": "Questo negozio di biciclette è chiamato {name}", + "ru": "Этот магазин велосипедов называется {name}" }, "freeform": { "key": "name" @@ -284,7 +287,8 @@ "fr": "Est-ce que ce magasin vend des vélos ?", "gl": "Esta tenda vende bicicletas?", "de": "Verkauft dieser Laden Fahrräder?", - "it": "Questo negozio vende bici?" + "it": "Questo negozio vende bici?", + "ru": "Продаются ли велосипеды в этом магазине?" }, "mappings": [ { @@ -368,7 +372,8 @@ "fr": "Ce magasin ne répare seulement des marques spécifiques", "gl": "Esta tenda só arranxa bicicletas dunha certa marca", "de": "Dieses Geschäft repariert nur Fahrräder einer bestimmten Marke", - "it": "Questo negozio ripara solo le biciclette di una certa marca" + "it": "Questo negozio ripara solo le biciclette di una certa marca", + "ru": "В этом магазине обслуживают велосипеды определённого бренда" } } ] @@ -466,7 +471,8 @@ "fr": "Est-ce que ce magasin offre une pompe en accès libre ?", "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?" + "it": "Questo negozio offre l’uso a chiunque di una pompa per bici?", + "ru": "Предлагается ли в этом магазине велосипедный насос для всеобщего пользования?" }, "mappings": [ { @@ -477,7 +483,8 @@ "fr": "Ce magasin offre une pompe en acces libre", "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" + "it": "Questo negozio offre l’uso pubblico di una pompa per bici", + "ru": "В этом магазине есть велосипедный насос для всеобщего пользования" } }, { @@ -488,7 +495,8 @@ "fr": "Ce magasin n'offre pas de pompe en libre accès", "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" + "it": "Questo negozio non offre l’uso pubblico di una pompa per bici", + "ru": "В этом магазине нет велосипедного насоса для всеобщего пользования" } }, { @@ -509,7 +517,8 @@ "fr": "Est-ce qu'il y a des outils pour réparer son vélo dans ce magasin ?", "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?" + "it": "Sono presenti degli attrezzi per riparare la propria bici?", + "ru": "Есть ли здесь инструменты для починки собственного велосипеда?" }, "mappings": [ { @@ -541,7 +550,8 @@ "nl": "Het gereedschap aan om je fiets zelf te herstellen is enkel voor als je de fiets er kocht of huurt", "fr": "Des outils d'auto-réparation sont disponibles uniquement si vous avez acheté ou loué le vélo dans ce magasin", "it": "Gli attrezzi per la riparazione fai-da-te sono disponibili solamente se hai acquistato/noleggiato la bici nel negozio", - "de": "Werkzeuge für die Selbstreparatur sind nur verfügbar, wenn Sie das Fahrrad im Laden gekauft/gemietet haben" + "de": "Werkzeuge für die Selbstreparatur sind nur verfügbar, wenn Sie das Fahrrad im Laden gekauft/gemietet haben", + "ru": "Инструменты для починки доступны только при покупке/аренде велосипеда в магазине" } } ] @@ -563,7 +573,8 @@ "nl": "Deze winkel biedt fietsschoonmaak aan", "fr": "Ce magasin lave les vélos", "it": "Questo negozio lava le biciclette", - "de": "Dieses Geschäft reinigt Fahrräder" + "de": "Dieses Geschäft reinigt Fahrräder", + "ru": "В этом магазине оказываются услуги мойки/чистки велосипедов" } }, { @@ -583,7 +594,8 @@ "nl": "Deze winkel biedt geen fietsschoonmaak aan", "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" + "de": "Dieser Laden bietet keine Fahrradreinigung an", + "ru": "В этом магазине нет услуг мойки/чистки велосипедов" } } ] diff --git a/assets/layers/defibrillator/defibrillator.json b/assets/layers/defibrillator/defibrillator.json index 04e3d29256..4074ee963c 100644 --- a/assets/layers/defibrillator/defibrillator.json +++ b/assets/layers/defibrillator/defibrillator.json @@ -567,7 +567,8 @@ "nl": "Extra informatie voor OpenStreetMap experts: {fixme}", "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}" + "de": "Zusätzliche Informationen für OpenStreetMap-Experten: {fixme}", + "ru": "Дополнительная информация для экспертов OpenStreetMap: {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)", diff --git a/assets/layers/ghost_bike/ghost_bike.json b/assets/layers/ghost_bike/ghost_bike.json index b7951da3d4..2a2b8342d3 100644 --- a/assets/layers/ghost_bike/ghost_bike.json +++ b/assets/layers/ghost_bike/ghost_bike.json @@ -76,7 +76,8 @@ "nl": "Ter nagedachtenis van {name}", "de": "Im Gedenken an {name}", "it": "In ricordo di {name}", - "fr": "En souvenir de {name}" + "fr": "En souvenir de {name}", + "ru": "В знак памяти о {name}" }, "freeform": { "key": "name" @@ -149,7 +150,8 @@ "nl": "Geplaatst op {start_date}", "en": "Placed on {start_date}", "it": "Piazzata in data {start_date}", - "fr": "Placé le {start_date}" + "fr": "Placé le {start_date}", + "ru": "Установлен {start_date}" }, "freeform": { "key": "start_date", diff --git a/assets/layers/picnic_table/picnic_table.json b/assets/layers/picnic_table/picnic_table.json index e5be9d0774..672e41f07f 100644 --- a/assets/layers/picnic_table/picnic_table.json +++ b/assets/layers/picnic_table/picnic_table.json @@ -26,7 +26,8 @@ "en": "The layer showing picnic tables", "nl": "Deze laag toont picnictafels", "it": "Il livello che mostra i tavoli da picnic", - "fr": "La couche montrant les tables de pique-nique" + "fr": "La couche montrant les tables de pique-nique", + "ru": "Слой, отображающий столы для пикника" }, "tagRenderings": [ { @@ -34,13 +35,15 @@ "en": "What material is this picnic table made of?", "nl": "Van welk materiaal is deze picnictafel gemaakt?", "it": "Di che materiale è fatto questo tavolo da picnic?", - "de": "Aus welchem Material besteht dieser Picknicktisch?" + "de": "Aus welchem Material besteht dieser Picknicktisch?", + "ru": "Из чего изготовлен этот стол для пикника?" }, "render": { "en": "This picnic table is made of {material}", "nl": "Deze picnictafel is gemaakt van {material}", "it": "Questo tavolo da picnic è fatto di {material}", - "de": "Dieser Picknicktisch besteht aus {material}" + "de": "Dieser Picknicktisch besteht aus {material}", + "ru": "Этот стол для пикника сделан из {material}" }, "freeform": { "key": "material" diff --git a/assets/layers/playground/playground.json b/assets/layers/playground/playground.json index 54afa9a4c6..ec97eca2bf 100644 --- a/assets/layers/playground/playground.json +++ b/assets/layers/playground/playground.json @@ -93,7 +93,8 @@ "nl": "De ondergrond bestaat uit houtsnippers", "en": "The surface consist of woodchips", "it": "La superficie consiste di trucioli di legno", - "de": "Die Oberfläche besteht aus Holzschnitzeln" + "de": "Die Oberfläche besteht aus Holzschnitzeln", + "ru": "Покрытие из щепы" } }, { @@ -154,7 +155,8 @@ "en": "Is this playground lit at night?", "it": "È illuminato di notte questo parco giochi?", "fr": "Ce terrain de jeux est-il éclairé la nuit ?", - "de": "Ist dieser Spielplatz nachts beleuchtet?" + "de": "Ist dieser Spielplatz nachts beleuchtet?", + "ru": "Эта игровая площадка освещается ночью?" }, "mappings": [ { @@ -163,7 +165,8 @@ "nl": "Deze speeltuin is 's nachts verlicht", "en": "This playground is lit at night", "it": "Questo parco giochi è illuminato di notte", - "de": "Dieser Spielplatz ist nachts beleuchtet" + "de": "Dieser Spielplatz ist nachts beleuchtet", + "ru": "Эта детская площадка освещается ночью" } }, { @@ -172,7 +175,8 @@ "nl": "Deze speeltuin is 's nachts niet verlicht", "en": "This playground is not lit at night", "it": "Questo parco giochi non è illuminato di notte", - "de": "Dieser Spielplatz ist nachts nicht beleuchtet" + "de": "Dieser Spielplatz ist nachts nicht beleuchtet", + "ru": "Эта детская площадка не освещается ночью" } } ] @@ -189,7 +193,8 @@ "nl": "Wat is de minimale leeftijd om op deze speeltuin te mogen?", "en": "What is the minimum age required to access this playground?", "it": "Qual è l’età minima per accedere a questo parco giochi?", - "fr": "Quel est l'âge minimal requis pour accéder à ce terrain de jeux ?" + "fr": "Quel est l'âge minimal requis pour accéder à ce terrain de jeux ?", + "ru": "С какого возраста доступна эта детская площадка?" }, "freeform": { "key": "min_age", @@ -201,7 +206,8 @@ "nl": "Toegankelijk tot {max_age}", "en": "Accessible to kids of at most {max_age}", "it": "Accessibile ai bambini di età inferiore a {max_age}", - "fr": "Accessible aux enfants de {max_age} au maximum" + "fr": "Accessible aux enfants de {max_age} au maximum", + "ru": "Доступно детям до {max_age}" }, "question": { "nl": "Wat is de maximaal toegestane leeftijd voor deze speeltuin?", @@ -340,7 +346,8 @@ "en": "Is this playground accessible to wheelchair users?", "fr": "Ce terrain de jeux est-il accessible aux personnes en fauteuil roulant ?", "de": "Ist dieser Spielplatz für Rollstuhlfahrer zugänglich?", - "it": "Il campetto è accessibile a persone in sedia a rotelle?" + "it": "Il campetto è accessibile a persone in sedia a rotelle?", + "ru": "Доступна ли детская площадка пользователям кресел-колясок?" }, "mappings": [ { @@ -350,7 +357,8 @@ "en": "Completely accessible for wheelchair users", "fr": "Entièrement accessible aux personnes en fauteuil roulant", "de": "Vollständig zugänglich für Rollstuhlfahrer", - "it": "Completamente accessibile in sedia a rotelle" + "it": "Completamente accessibile in sedia a rotelle", + "ru": "Полностью доступна пользователям кресел-колясок" } }, { @@ -360,7 +368,8 @@ "en": "Limited accessibility for wheelchair users", "fr": "Accessibilité limitée pour les personnes en fauteuil roulant", "de": "Eingeschränkte Zugänglichkeit für Rollstuhlfahrer", - "it": "Accesso limitato in sedia a rotelle" + "it": "Accesso limitato in sedia a rotelle", + "ru": "Частично доступна пользователям кресел-колясок" } }, { @@ -370,7 +379,8 @@ "en": "Not accessible for wheelchair users", "fr": "Non accessible aux personnes en fauteuil roulant", "de": "Nicht zugänglich für Rollstuhlfahrer", - "it": "Non accessibile in sedia a rotelle" + "it": "Non accessibile in sedia a rotelle", + "ru": "Недоступна пользователям кресел-колясок" } } ] @@ -385,7 +395,8 @@ "nl": "Op welke uren is deze speeltuin toegankelijk?", "en": "When is this playground accessible?", "fr": "Quand ce terrain de jeux est-il accessible ?", - "it": "Quando si può accedere a questo campetto?" + "it": "Quando si può accedere a questo campetto?", + "ru": "Когда открыта эта игровая площадка?" }, "mappings": [ { @@ -394,7 +405,8 @@ "nl": "Van zonsopgang tot zonsondergang", "en": "Accessible from sunrise till sunset", "fr": "Accessible du lever au coucher du soleil", - "it": "Si può accedere dall'alba al tramonto" + "it": "Si può accedere dall'alba al tramonto", + "ru": "Открыто от рассвета до заката" } }, { diff --git a/assets/layers/public_bookcase/public_bookcase.json b/assets/layers/public_bookcase/public_bookcase.json index 896f97cea3..b2a03e4c86 100644 --- a/assets/layers/public_bookcase/public_bookcase.json +++ b/assets/layers/public_bookcase/public_bookcase.json @@ -13,7 +13,8 @@ "nl": "Een straatkastje met boeken voor iedereen", "de": "Ein Bücherschrank am Straßenrand mit Büchern, für jedermann zugänglich", "fr": "Une armoire ou une boite contenant des livres en libre accès", - "it": "Una vetrinetta ai bordi della strada contenente libri, aperta al pubblico" + "it": "Una vetrinetta ai bordi della strada contenente libri, aperta al pubblico", + "ru": "Уличный шкаф с книгами, доступными для всех" }, "source": { "osmTags": "amenity=public_bookcase" @@ -94,7 +95,7 @@ "nl": "Wat is de naam van dit boekenuilkastje?", "de": "Wie heißt dieser öffentliche Bücherschrank?", "fr": "Quel est le nom de cette microbibliothèque ?", - "ru": "Как называется общественный книжный шкаф?", + "ru": "Как называется этот общественный книжный шкаф?", "it": "Come si chiama questa microbiblioteca pubblica?" }, "freeform": { @@ -125,7 +126,8 @@ "nl": "Er passen {capacity} boeken", "de": "{capacity} Bücher passen in diesen Bücherschrank", "fr": "{capacity} livres peuvent entrer dans cette microbibliothèque", - "it": "Questa microbiblioteca può contenere fino a {capacity} libri" + "it": "Questa microbiblioteca può contenere fino a {capacity} libri", + "ru": "{capacity} книг помещается в этот книжный шкаф" }, "question": { "en": "How many books fit into this public bookcase?", @@ -146,7 +148,8 @@ "nl": "Voor welke doelgroep zijn de meeste boeken in dit boekenruilkastje?", "de": "Welche Art von Büchern sind in diesem öffentlichen Bücherschrank zu finden?", "fr": "Quel type de livres peut-on dans cette microbibliothèque ?", - "it": "Che tipo di libri si possono trovare in questa microbiblioteca?" + "it": "Che tipo di libri si possono trovare in questa microbiblioteca?", + "ru": "Какие книги можно найти в этом общественном книжном шкафу?" }, "mappings": [ { @@ -178,7 +181,8 @@ "nl": "Boeken voor zowel kinderen als volwassenen", "de": "Sowohl Bücher für Kinder als auch für Erwachsene", "fr": "Livres pour enfants et adultes également", - "it": "Sia libri per l'infanzia, sia per l'età adulta" + "it": "Sia libri per l'infanzia, sia per l'età adulta", + "ru": "Книги и для детей, и для взрослых" } } ] @@ -231,7 +235,8 @@ "nl": "Is dit boekenruilkastje publiek toegankelijk?", "de": "Ist dieser öffentliche Bücherschrank frei zugänglich?", "fr": "Cette microbibliothèque est-elle librement accèssible ?", - "it": "Questa microbiblioteca è ad accesso libero?" + "it": "Questa microbiblioteca è ad accesso libero?", + "ru": "Имеется ли свободный доступ к этому общественному книжному шкафу?" }, "condition": "indoor=yes", "mappings": [ @@ -241,7 +246,8 @@ "nl": "Publiek toegankelijk", "de": "Öffentlich zugänglich", "fr": "Accèssible au public", - "it": "È ad accesso libero" + "it": "È ad accesso libero", + "ru": "Свободный доступ" }, "if": "access=yes" }, @@ -373,14 +379,16 @@ "nl": "Op welke dag werd dit boekenruilkastje geinstalleerd?", "de": "Wann wurde dieser öffentliche Bücherschrank installiert?", "fr": "Quand a été installée cette microbibliothèque ?", - "it": "Quando è stata inaugurata questa microbiblioteca?" + "it": "Quando è stata inaugurata questa microbiblioteca?", + "ru": "Когда был установлен этот общественный книжный шкаф?" }, "render": { "en": "Installed on {start_date}", "nl": "Geplaatst op {start_date}", "de": "Installiert am {start_date}", "fr": "Installée le {start_date}", - "it": "È stata inaugurata il {start_date}" + "it": "È stata inaugurata il {start_date}", + "ru": "Установлен {start_date}" }, "freeform": { "key": "start_date", @@ -401,7 +409,8 @@ "nl": "Is er een website over dit boekenruilkastje?", "de": "Gibt es eine Website mit weiteren Informationen über diesen öffentlichen Bücherschrank?", "fr": "Y a-t-il un site web avec plus d'informations sur cette microbibliothèque ?", - "it": "C'è un sito web con maggiori informazioni su questa microbiblioteca?" + "it": "C'è un sito web con maggiori informazioni su questa microbiblioteca?", + "ru": "Есть ли веб-сайт с более подробной информацией об этом общественном книжном шкафе?" }, "freeform": { "key": "website", diff --git a/assets/layers/sport_pitch/sport_pitch.json b/assets/layers/sport_pitch/sport_pitch.json index efb49a0b2d..140e222b2a 100644 --- a/assets/layers/sport_pitch/sport_pitch.json +++ b/assets/layers/sport_pitch/sport_pitch.json @@ -32,7 +32,8 @@ "nl": "Een sportterrein", "fr": "Un terrain de sport", "en": "A sport pitch", - "it": "Un campo sportivo" + "it": "Un campo sportivo", + "ru": "Спортивная площадка" }, "tagRenderings": [ "images", @@ -64,7 +65,8 @@ "nl": "Hier kan men basketbal spelen", "fr": "Ici, on joue au basketball", "en": "Basketball is played here", - "it": "Qui si gioca a basket" + "it": "Qui si gioca a basket", + "ru": "Здесь можно играть в баскетбол" } }, { @@ -77,7 +79,8 @@ "nl": "Hier kan men voetbal spelen", "fr": "Ici, on joue au football", "en": "Soccer is played here", - "it": "Qui si gioca a calcio" + "it": "Qui si gioca a calcio", + "ru": "Здесь можно играть в футбол" } }, { @@ -104,7 +107,8 @@ "nl": "Hier kan men tennis spelen", "fr": "Ici, on joue au tennis", "en": "Tennis is played here", - "it": "Qui si gioca a tennis" + "it": "Qui si gioca a tennis", + "ru": "Здесь можно играть в теннис" } }, { @@ -117,7 +121,8 @@ "nl": "Hier kan men korfbal spelen", "fr": "Ici, on joue au korfball", "en": "Korfball is played here", - "it": "Qui si gioca a korfball" + "it": "Qui si gioca a korfball", + "ru": "Здесь можно играть в корфбол" } }, { @@ -130,7 +135,8 @@ "nl": "Hier kan men basketbal beoefenen", "fr": "Ici, on joue au basketball", "en": "Basketball is played here", - "it": "Qui si gioca a basket" + "it": "Qui si gioca a basket", + "ru": "Здесь можно играть в баскетбол" }, "hideInAnswer": true } @@ -141,7 +147,8 @@ "nl": "Wat is de ondergrond van dit sportveld?", "fr": "De quelle surface est fait ce terrain de sport ?", "en": "Which is the surface of this sport pitch?", - "it": "Qual è la superficie di questo campo sportivo?" + "it": "Qual è la superficie di questo campo sportivo?", + "ru": "Какое покрытие на этой спортивной площадке?" }, "render": { "nl": "De ondergrond is {surface}", @@ -211,7 +218,8 @@ "nl": "Is dit sportterrein publiek toegankelijk?", "fr": "Est-ce que ce terrain de sport est accessible au public ?", "en": "Is this sport pitch publicly accessible?", - "it": "Questo campo sportivo è aperto al pubblico?" + "it": "Questo campo sportivo è aperto al pubblico?", + "ru": "Есть ли свободный доступ к этой спортивной площадке?" }, "mappings": [ { @@ -220,7 +228,8 @@ "nl": "Publiek toegankelijk", "fr": "Accessible au public", "en": "Public access", - "it": "Aperto al pubblico" + "it": "Aperto al pubblico", + "ru": "Свободный доступ" } }, { @@ -229,7 +238,8 @@ "nl": "Beperkt toegankelijk (enkel na reservatie, tijdens bepaalde uren, ...)", "fr": "Accès limité (par exemple uniquement sur réservation, à certains horaires…)", "en": "Limited access (e.g. only with an appointment, during certain hours, ...)", - "it": "Accesso limitato (p.es. solo con prenotazione, in certi orari, ...)" + "it": "Accesso limitato (p.es. solo con prenotazione, in certi orari, ...)", + "ru": "Ограниченный доступ (напр., только по записи, в определённые часы, ...)" } }, { @@ -238,7 +248,8 @@ "nl": "Enkel toegankelijk voor leden van de bijhorende sportclub", "fr": "Accessible uniquement aux membres du club", "en": "Only accessible for members of the club", - "it": "Accesso limitato ai membri dell'associazione" + "it": "Accesso limitato ai membri dell'associazione", + "ru": "Доступ только членам клуба" } }, { @@ -257,7 +268,8 @@ "nl": "Moet men reserveren om gebruik te maken van dit sportveld?", "fr": "Doit-on réserver pour utiliser ce terrain de sport ?", "en": "Does one have to make an appointment to use this sport pitch?", - "it": "È necessario prenotarsi per usare questo campo sportivo?" + "it": "È necessario prenotarsi per usare questo campo sportivo?", + "ru": "Нужна ли предварительная запись для доступа на эту спортивную площадку?" }, "condition": { "and": [ @@ -282,7 +294,8 @@ "nl": "Reserveren is sterk aangeraden om gebruik te maken van dit sportterrein", "fr": "Il est recommendé de réserver pour utiliser ce terrain de sport", "en": "Making an appointment is recommended when using this sport pitch", - "it": "La prenotazione è consigliata per usare questo campo sportivo" + "it": "La prenotazione è consigliata per usare questo campo sportivo", + "ru": "Желательна предварительная запись для доступа на эту спортивную площадку" } }, { @@ -291,7 +304,8 @@ "nl": "Reserveren is mogelijk, maar geen voorwaarde", "fr": "Il est possible de réserver, mais ce n'est pas nécéssaire pour utiliser ce terrain de sport", "en": "Making an appointment is possible, but not necessary to use this sport pitch", - "it": "La prenotazione è consentita, ma non è obbligatoria per usare questo campo sportivo" + "it": "La prenotazione è consentita, ma non è obbligatoria per usare questo campo sportivo", + "ru": "Предварительная запись для доступа на эту спортивную площадку возможна, но не обязательна" } }, { @@ -300,7 +314,8 @@ "nl": "Reserveren is niet mogelijk", "fr": "On ne peut pas réserver", "en": "Making an appointment is not possible", - "it": "Non è possibile prenotare" + "it": "Non è possibile prenotare", + "ru": "Невозможна предварительная запись" } } ] @@ -336,7 +351,8 @@ "nl": "Wanneer is dit sportveld toegankelijk?", "fr": "Quand ce terrain est-il accessible ?", "en": "When is this pitch accessible?", - "it": "Quando è aperto questo campo sportivo?" + "it": "Quando è aperto questo campo sportivo?", + "ru": "В какое время доступна эта площадка?" }, "render": "Openingsuren: {opening_hours_table()}", "freeform": { @@ -446,7 +462,8 @@ "nl": "Ping-pong tafel", "fr": "Table de ping-pong", "en": "Tabletennis table", - "it": "Tavolo da tennistavolo" + "it": "Tavolo da tennistavolo", + "ru": "Стол для настольного тенниса" }, "tags": [ "leisure=pitch", diff --git a/assets/layers/surveillance_camera/surveillance_camera.json b/assets/layers/surveillance_camera/surveillance_camera.json index e5c872be25..20f1e77bf0 100644 --- a/assets/layers/surveillance_camera/surveillance_camera.json +++ b/assets/layers/surveillance_camera/surveillance_camera.json @@ -39,7 +39,8 @@ "en": "What kind of camera is this?", "nl": "Wat voor soort camera is dit?", "fr": "Quel genre de caméra est-ce ?", - "it": "Di che tipo di videocamera si tratta?" + "it": "Di che tipo di videocamera si tratta?", + "ru": "Какая это камера?" }, "mappings": [ { @@ -65,7 +66,8 @@ "en": "A dome camera (which can turn)", "nl": "Een dome (bolvormige camera die kan draaien)", "fr": "Une caméra dôme (qui peut tourner)", - "it": "Una videocamera a cupola (che può ruotare)" + "it": "Una videocamera a cupola (che può ruotare)", + "ru": "Камера с поворотным механизмом" } }, { @@ -230,7 +232,8 @@ "en": "This camera is located outdoors", "nl": "Deze camera bevindt zich buiten", "fr": "Cette caméra est située à l'extérieur", - "it": "Questa videocamera si trova all'aperto" + "it": "Questa videocamera si trova all'aperto", + "ru": "Эта камера расположена снаружи" } }, { @@ -239,7 +242,8 @@ "en": "This camera is probably located outdoors", "nl": "Deze camera bevindt zich waarschijnlijk buiten", "fr": "Cette caméra est probablement située à l'extérieur", - "it": "Questa videocamera si trova probabilmente all'esterno" + "it": "Questa videocamera si trova probabilmente all'esterno", + "ru": "Возможно, эта камера расположена снаружи" }, "hideInAnswer": true } @@ -374,7 +378,8 @@ "en": "How is this camera placed?", "nl": "Hoe is deze camera geplaatst?", "fr": "Comment cette caméra est-elle placée ?", - "it": "Com'è posizionata questa telecamera?" + "it": "Com'è posizionata questa telecamera?", + "ru": "Как расположена эта камера?" }, "render": { "en": "Mounting method: {mount}", diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json index 206de225ca..b7a44457e2 100644 --- a/assets/layers/toilet/toilet.json +++ b/assets/layers/toilet/toilet.json @@ -57,7 +57,8 @@ "de": "Eine öffentlich zugängliche Toilette", "fr": "Des toilettes", "nl": "Een publieke toilet", - "it": "Servizi igienici aperti al pubblico" + "it": "Servizi igienici aperti al pubblico", + "ru": "Туалет или комната отдыха со свободным доступом" } }, { @@ -66,7 +67,8 @@ "de": "Toiletten mit rollstuhlgerechter Toilette", "fr": "Toilettes accessible aux personnes à mobilité réduite", "nl": "Een rolstoeltoegankelijke toilet", - "it": "Servizi igienici accessibili per persone in sedia a rotelle" + "it": "Servizi igienici accessibili per persone in sedia a rotelle", + "ru": "Туалет с доступом для пользователей кресел-колясок" }, "tags": [ "amenity=toilets", @@ -89,7 +91,8 @@ "de": "Sind diese Toiletten öffentlich zugänglich?", "fr": "Ces toilettes sont-elles accessibles au public ?", "nl": "Zijn deze toiletten publiek toegankelijk?", - "it": "Questi servizi igienici sono aperti al pubblico?" + "it": "Questi servizi igienici sono aperti al pubblico?", + "ru": "Есть ли свободный доступ к этим туалетам?" }, "render": { "en": "Access is {access}", @@ -112,7 +115,8 @@ "de": "Öffentlicher Zugang", "fr": "Accès publique", "nl": "Publiek toegankelijk", - "it": "Accesso pubblico" + "it": "Accesso pubblico", + "ru": "Свободный доступ" } }, { @@ -186,14 +190,16 @@ "de": "Wie viel muss man für diese Toiletten bezahlen?", "fr": "Quel est le prix d'accès de ces toilettes ?", "nl": "Hoeveel moet men betalen om deze toiletten te gebruiken?", - "it": "Quanto costa l'accesso a questi servizi igienici?" + "it": "Quanto costa l'accesso a questi servizi igienici?", + "ru": "Сколько стоит посещение туалета?" }, "render": { "en": "The fee is {charge}", "de": "Die Gebühr beträgt {charge}", "fr": "Le prix est {charge}", "nl": "De toiletten gebruiken kost {charge}", - "it": "La tariffa è {charge}" + "it": "La tariffa è {charge}", + "ru": "Стоимость {charge}" }, "condition": "fee=yes", "freeform": { @@ -227,7 +233,8 @@ "de": "Kein Zugang für Rollstuhlfahrer", "fr": "Non accessible aux personnes à mobilité réduite", "nl": "Niet toegankelijk voor rolstoelgebruikers", - "it": "Non accessibile in sedia a rotelle" + "it": "Non accessibile in sedia a rotelle", + "ru": "Недоступно пользователям кресел-колясок" } } ] @@ -238,7 +245,8 @@ "de": "Welche Art von Toiletten sind das?", "fr": "De quel type sont ces toilettes ?", "nl": "Welke toiletten zijn dit?", - "it": "Di che tipo di servizi igienici si tratta?" + "it": "Di che tipo di servizi igienici si tratta?", + "ru": "Какие это туалеты?" }, "mappings": [ { diff --git a/assets/layers/tree_node/tree_node.json b/assets/layers/tree_node/tree_node.json index a95bfdb013..1f3cc7fdeb 100644 --- a/assets/layers/tree_node/tree_node.json +++ b/assets/layers/tree_node/tree_node.json @@ -230,7 +230,8 @@ "question": { "nl": "Is deze boom groenblijvend of bladverliezend?", "en": "Is this tree evergreen or deciduous?", - "it": "È un sempreverde o caduco?" + "it": "È un sempreverde o caduco?", + "ru": "Это дерево вечнозелёное или листопадное?" }, "mappings": [ { @@ -242,7 +243,8 @@ "then": { "nl": "Bladverliezend: de boom is een periode van het jaar kaal.", "en": "Deciduous: the tree loses its leaves for some time of the year.", - "it": "Caduco: l’albero perde le sue foglie per un periodo dell’anno." + "it": "Caduco: l’albero perde le sue foglie per un periodo dell’anno.", + "ru": "Листопадное: у дерева опадают листья в определённое время года." } }, { @@ -255,7 +257,8 @@ "nl": "Groenblijvend.", "en": "Evergreen.", "it": "Sempreverde.", - "fr": "À feuilles persistantes." + "fr": "À feuilles persistantes.", + "ru": "Вечнозелёное." } } ], @@ -278,7 +281,8 @@ "nl": "Heeft de boom een naam?", "en": "Does the tree have a name?", "it": "L’albero ha un nome?", - "fr": "L'arbre a-t-il un nom ?" + "fr": "L'arbre a-t-il un nom ?", + "ru": "Есть ли у этого дерева название?" }, "freeform": { "key": "name", @@ -298,7 +302,8 @@ "nl": "De boom heeft geen naam.", "en": "The tree does not have a name.", "it": "L’albero non ha un nome.", - "fr": "L'arbre n'a pas de nom." + "fr": "L'arbre n'a pas de nom.", + "ru": "У этого дерева нет названия." } } ], @@ -399,7 +404,8 @@ "render": { "nl": "\"\"/ Onroerend Erfgoed-ID: {ref:OnroerendErfgoed}", "en": "\"\"/ Onroerend Erfgoed ID: {ref:OnroerendErfgoed}", - "it": "\"\"/ Onroerend Erfgoed ID: {ref:OnroerendErfgoed}" + "it": "\"\"/ Onroerend Erfgoed ID: {ref:OnroerendErfgoed}", + "ru": "\"\"/ Onroerend Erfgoed ID: {ref:OnroerendErfgoed}" }, "question": { "nl": "Wat is het ID uitgegeven door Onroerend Erfgoed Vlaanderen?", @@ -421,7 +427,8 @@ "render": { "nl": "\"\"/ Wikidata: {wikidata}", "en": "\"\"/ Wikidata: {wikidata}", - "it": "\"\"/ Wikidata: {wikidata}" + "it": "\"\"/ Wikidata: {wikidata}", + "ru": "\"\"/ Wikidata: {wikidata}" }, "question": { "nl": "Wat is het Wikidata-ID van deze boom?", @@ -484,7 +491,8 @@ "nl": "Loofboom", "en": "Broadleaved tree", "it": "Albero latifoglia", - "fr": "Arbre feuillu" + "fr": "Arbre feuillu", + "ru": "Лиственное дерево" }, "description": { "nl": "Een boom van een soort die blaadjes heeft, bijvoorbeeld eik of populier.", @@ -501,12 +509,14 @@ "title": { "nl": "Naaldboom", "en": "Needleleaved tree", - "it": "Albero aghifoglia" + "it": "Albero aghifoglia", + "ru": "Хвойное дерево" }, "description": { "nl": "Een boom van een soort met naalden, bijvoorbeeld den of spar.", "en": "A tree of a species with needles, such as pine or spruce.", - "it": "Un albero di una specie con aghi come il pino o l’abete." + "it": "Un albero di una specie con aghi come il pino o l’abete.", + "ru": "Дерево с хвоей (иглами), например, сосна или ель." } }, { @@ -524,7 +534,8 @@ "nl": "Wanneer je niet zeker bent of het nu een loof- of naaldboom is.", "en": "If you're not sure whether it's a broadleaved or needleleaved tree.", "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." + "fr": "Si vous n'êtes pas sûr(e) de savoir s'il s'agit d'un arbre à feuilles larges ou à aiguilles.", + "ru": "Если вы не уверены в том, лиственное это дерево или хвойное." } } ] diff --git a/assets/tagRenderings/questions.json b/assets/tagRenderings/questions.json index 7bff3270a3..3fabc4deb8 100644 --- a/assets/tagRenderings/questions.json +++ b/assets/tagRenderings/questions.json @@ -123,5 +123,43 @@ "all_tags": { "#": "Prints all the tags", "render": "{all_tags()}" + }, + "level": { + "question": { + "nl": "Op welke verdieping bevindt dit punt zich?", + "en": "On what level is this feature located?" + }, + "render": { + "en": "Located on the {level}th floor", + "nl": "Bevindt zich op de {level}de verdieping" + }, + "freeform": { + "key": "level", + "type": "float" + }, + "mappings": [ + { + "if": "location=underground", + "then": { + "en": "Located underground", + "nl": "Bevindt zich ondergrounds" + }, + "hideInAnswer": true + }, + { + "if": "level=0", + "then": { + "en": "Located on the ground floor", + "nl": "Bevindt zich gelijkvloers" + } + }, + { + "if": "level=1", + "then": { + "en": "Located on the first floor", + "nl": "Bevindt zich op de eerste verdieping" + } + } + ] } } \ No newline at end of file diff --git a/assets/themes/artwork/artwork.json b/assets/themes/artwork/artwork.json index 7b8cc876c1..c3b7b7c552 100644 --- a/assets/themes/artwork/artwork.json +++ b/assets/themes/artwork/artwork.json @@ -374,7 +374,7 @@ "en": "Is there a website with more information about this artwork?", "nl": "Op welke website kan men meer informatie vinden over dit kunstwerk?", "fr": "Sur quel site web pouvons-nous trouver plus d'informations sur cette œuvre d'art?", - "de": "Auf welcher Website gibt es mehr Informationen über dieses Kunstwerk?", + "de": "Gibt es eine Website mit weiteren Informationen über dieses Kunstwerk?", "it": "Esiste un sito web con maggiori informazioni su quest’opera?", "ru": "Есть ли сайт с более подробной информацией об этой работе?", "ja": "この作品についての詳しい情報はどのウェブサイトにありますか?", diff --git a/assets/themes/bicycle_library/bicycle_library.json b/assets/themes/bicycle_library/bicycle_library.json index 437020a3fc..6d0cf61e2b 100644 --- a/assets/themes/bicycle_library/bicycle_library.json +++ b/assets/themes/bicycle_library/bicycle_library.json @@ -10,7 +10,8 @@ "ja", "fr", "zh_Hant", - "nb_NO" + "nb_NO", + "de" ], "title": { "en": "Bicycle libraries", @@ -20,7 +21,8 @@ "ja": "自転車ライブラリ", "fr": "Vélothèques", "zh_Hant": "單車圖書館", - "nb_NO": "Sykkelbibliotek" + "nb_NO": "Sykkelbibliotek", + "de": "Fahrradbibliothek" }, "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/campersites/campersites.json b/assets/themes/campersites/campersites.json index 76039862d6..cc248f2780 100644 --- a/assets/themes/campersites/campersites.json +++ b/assets/themes/campersites/campersites.json @@ -23,7 +23,8 @@ "it": "Questo sito raccoglie tutti i luoghi ufficiali dove sostare con il camper e aree dove è possibile scaricare acque grigie e nere. Puoi aggiungere dettagli riguardanti i servizi forniti e il loro costo. Aggiungi foto e recensioni. Questo è al contempo un sito web e una web app. I dati sono memorizzati su OpenStreetMap in modo tale che siano per sempre liberi e riutilizzabili da qualsiasi app.", "ru": "На этом сайте собраны все официальные места остановки кемперов и места, где можно сбросить серую и черную воду. Вы можете добавить подробную информацию о предоставляемых услугах и их стоимости. Добавлять фотографии и отзывы. Это веб-сайт и веб-приложение. Данные хранятся в OpenStreetMap, поэтому они будут бесплатными всегда и могут быть повторно использованы любым приложением.", "ja": "このWebサイトでは、すべてのキャンピングカーの公式停車場所と、汚水を捨てることができる場所を収集します。提供されるサービスとコストに関する詳細を追加できます。写真とレビューを追加します。これはウェブサイトとウェブアプリです。データはOpenStreetMapに保存されるので、永遠に無料で、どんなアプリからでも再利用できます。", - "zh_Hant": "這個網站收集所有官方露營地點,以及那邊能排放廢水。你可以加上詳細的服務項目與價格,加上圖片以及評價。這是網站與網路 app,資料則是存在開放街圖,因此會永遠免費,而且可以被所有 app 再利用。" + "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 opgeslaan en is dus altijd gratis te hergebruiken, ook door andere applicaties." }, "language": [ "en", @@ -53,7 +54,8 @@ "ru": "Площадки для кемпинга", "ja": "キャンプサイト", "fr": "Campings", - "zh_Hant": "露營地" + "zh_Hant": "露營地", + "nl": "Camperplaatsen" }, "minzoom": 10, "source": { @@ -71,7 +73,8 @@ "ru": "Место для кемпинга {name}", "ja": "キャンプサイト {name}", "fr": "Camping {name}", - "zh_Hant": "露營地 {name}" + "zh_Hant": "露營地 {name}", + "nl": "Camperplaats {name}" }, "mappings": [ { @@ -86,7 +89,8 @@ "ru": "Место для кемпинга без названия", "ja": "無名のキャンプサイト", "fr": "Camping sans nom", - "zh_Hant": "沒有名稱的露營地" + "zh_Hant": "沒有名稱的露營地", + "nl": "Camper site" } } ] @@ -97,7 +101,8 @@ "ru": "площадки для кемпинга", "ja": "キャンプサイト", "fr": "campings", - "zh_Hant": "露營地" + "zh_Hant": "露營地", + "nl": "camperplaatsen" }, "tagRenderings": [ "images", @@ -108,7 +113,8 @@ "ru": "Это место называется {name}", "ja": "この場所は {name} と呼ばれています", "fr": "Cet endroit s'appelle {nom}", - "zh_Hant": "這個地方叫做 {name}" + "zh_Hant": "這個地方叫做 {name}", + "nl": "Deze plaats heet {name}" }, "question": { "en": "What is this place called?", @@ -117,7 +123,8 @@ "it": "Come viene chiamato questo luogo?", "ja": "ここは何というところですか?", "fr": "Comment s'appelle cet endroit ?", - "zh_Hant": "這個地方叫做什麼?" + "zh_Hant": "這個地方叫做什麼?", + "nl": "Wat is de naam van deze plaats?" }, "freeform": { "key": "name" @@ -130,7 +137,8 @@ "ru": "Взимается ли в этом месте плата?", "ja": "ここは有料ですか?", "fr": "Cet endroit est-il payant ?", - "zh_Hant": "這個地方收費嗎?" + "zh_Hant": "這個地方收費嗎?", + "nl": "Moet men betalen om deze camperplaats te gebruiken?" }, "mappings": [ { @@ -144,7 +152,8 @@ "it": "Devi pagare per usarlo", "ru": "За использование нужно платить", "ja": "使用料を支払う必要がある", - "zh_Hant": "你要付費才能使用" + "zh_Hant": "你要付費才能使用", + "nl": "Gebruik is betalend" } }, { @@ -162,7 +171,8 @@ "ja": "無料で使用可能", "fr": "Peut être utilisé gratuitement", "nb_NO": "Kan brukes gratis", - "zh_Hant": "可以免費使用" + "zh_Hant": "可以免費使用", + "nl": "Kan gratis gebruikt worden" } }, { @@ -179,7 +189,8 @@ "ru": "Это место взимает {charge}", "ja": "この場所は{charge} が必要", "nb_NO": "Dette stedet tar {charge}", - "zh_Hant": "這個地方收費 {charge}" + "zh_Hant": "這個地方收費 {charge}", + "nl": "Deze plaats vraagt {charge}" }, "question": { "en": "How much does this place charge?", @@ -188,7 +199,8 @@ "ja": "ここはいくらかかりますか?", "fr": "Combien coûte cet endroit ?", "nb_NO": "pø", - "zh_Hant": "這個地方收多少費用?" + "zh_Hant": "這個地方收多少費用?", + "nl": "Hoeveel kost deze plaats?" }, "freeform": { "key": "charge" @@ -415,7 +427,8 @@ "it": "Sito web ufficiale: {website}", "ja": "公式Webサイト: {website}", "nb_NO": "Offisiell nettside: {website}", - "zh_Hant": "官方網站:{website}" + "zh_Hant": "官方網站:{website}", + "nl": "Officiële website: : {website}" }, "freeform": { "type": "url", @@ -774,7 +787,8 @@ "question": { "en": "Who can use this dump station?", "ja": "このゴミ捨て場は誰が使えるんですか?", - "it": "Chi può utilizzare questo luogo di sversamento?" + "it": "Chi può utilizzare questo luogo di sversamento?", + "ru": "Кто может использовать эту станцию утилизации?" }, "mappings": [ { @@ -810,7 +824,8 @@ "then": { "en": "Anyone can use this dump station", "ja": "誰でもこのゴミ捨て場を使用できます", - "it": "Chiunque può farne uso" + "it": "Chiunque può farne uso", + "ru": "Любой может воспользоваться этой станцией утилизации" }, "hideInAnswer": true }, @@ -823,7 +838,8 @@ "then": { "en": "Anyone can use this dump station", "ja": "誰でもこのゴミ捨て場を使用できます", - "it": "Chiunque può farne uso" + "it": "Chiunque può farne uso", + "ru": "Любой может воспользоваться этой станцией утилизации" } } ] @@ -832,12 +848,14 @@ "render": { "en": "This station is part of network {network}", "ja": "このステーションはネットワーク{network}の一部です", - "it": "Questo luogo è parte della rete {network}" + "it": "Questo luogo è parte della rete {network}", + "ru": "Эта станция - часть сети {network}" }, "question": { "en": "What network is this place a part of? (skip if none)", "ja": "ここは何のネットワークの一部ですか?(なければスキップ)", - "it": "Di quale rete fa parte questo luogo? (se non fa parte di nessuna rete, salta)" + "it": "Di quale rete fa parte questo luogo? (se non fa parte di nessuna rete, salta)", + "ru": "К какой сети относится эта станция? (пропустите, если неприменимо)" }, "freeform": { "key": "network" diff --git a/assets/themes/charging_stations/charging_stations.json b/assets/themes/charging_stations/charging_stations.json index fc5040c6cb..16bc127864 100644 --- a/assets/themes/charging_stations/charging_stations.json +++ b/assets/themes/charging_stations/charging_stations.json @@ -6,14 +6,16 @@ "ru": "Зарядные станции", "ja": "充電ステーション", "zh_Hant": "充電站", - "it": "Stazioni di ricarica" + "it": "Stazioni di ricarica", + "nl": "Oplaadpunten" }, "shortDescription": { "en": "A worldwide map of charging stations", "ru": "Карта зарядных станций по всему миру", "ja": "充電ステーションの世界地図", "zh_Hant": "全世界的充電站地圖", - "it": "Una mappa mondiale delle stazioni di ricarica" + "it": "Una mappa mondiale delle stazioni di ricarica", + "nl": "Een wereldwijde kaart van oplaadpunten" }, "description": { "en": "On this open map, one can find and mark information about charging stations", @@ -29,6 +31,7 @@ "ja", "zh_Hant", "it", + "nl", "nb_NO" ], "maintainer": "", @@ -48,7 +51,8 @@ "ja": "充電ステーション", "zh_Hant": "充電站", "nb_NO": "Ladestasjoner", - "it": "Stazioni di ricarica" + "it": "Stazioni di ricarica", + "nl": "Oplaadpunten" }, "minzoom": 10, "source": { @@ -65,7 +69,8 @@ "ja": "充電ステーション", "zh_Hant": "充電站", "nb_NO": "Ladestasjon", - "it": "Stazione di ricarica" + "it": "Stazione di ricarica", + "nl": "Oplaadpunt" } }, "description": { @@ -74,7 +79,8 @@ "ja": "充電ステーション", "zh_Hant": "充電站", "nb_NO": "En ladestasjon", - "it": "Una stazione di ricarica" + "it": "Una stazione di ricarica", + "nl": "Een oplaadpunt" }, "tagRenderings": [ "images", @@ -224,11 +230,12 @@ "ja": "{network}", "zh_Hant": "{network}", "nb_NO": "{network}", - "it": "{network}" + "it": "{network}", + "nl": "{network}" }, "question": { "en": "What network of this charging station under?", - "ru": "К какой сети относится эта станция?", + "ru": "К какой сети относится эта зарядная станция?", "ja": "この充電ステーションの運営チェーンはどこですか?", "zh_Hant": "充電站所屬的網路是?", "it": "A quale rete appartiene questa stazione di ricarica?" @@ -248,7 +255,8 @@ "ru": "Не является частью более крупной сети", "ja": "大規模な運営チェーンの一部ではない", "zh_Hant": "不屬於大型網路", - "it": "Non appartiene a una rete" + "it": "Non appartiene a una rete", + "nl": "Maakt geen deel uit van een netwerk" } }, { @@ -262,7 +270,8 @@ "ru": "AeroVironment", "ja": "AeroVironment", "zh_Hant": "AeroVironment", - "it": "AeroVironment" + "it": "AeroVironment", + "nl": "AeroVironment" } }, { @@ -276,7 +285,8 @@ "ru": "Blink", "ja": "Blink", "zh_Hant": "Blink", - "it": "Blink" + "it": "Blink", + "nl": "Blink" } }, { @@ -290,7 +300,8 @@ "ru": "eVgo", "ja": "eVgo", "zh_Hant": "eVgo", - "it": "eVgo" + "it": "eVgo", + "nl": "eVgo" } } ] diff --git a/assets/themes/climbing/climbing.json b/assets/themes/climbing/climbing.json index aa8d113106..71a841e54d 100644 --- a/assets/themes/climbing/climbing.json +++ b/assets/themes/climbing/climbing.json @@ -171,14 +171,16 @@ "en": "Climbing club", "nl": "Klimclub", "ja": "クライミングクラブ", - "nb_NO": "Klatreklubb" + "nb_NO": "Klatreklubb", + "ru": "Клуб скалолазания" }, "description": { "de": "Ein Kletterverein", "nl": "Een klimclub", "en": "A climbing club", "ja": "クライミングクラブ", - "nb_NO": "En klatreklubb" + "nb_NO": "En klatreklubb", + "ru": "Клуб скалолазания" } }, { @@ -241,7 +243,8 @@ "description": { "de": "Eine Kletterhalle", "en": "A climbing gym", - "ja": "クライミングジム" + "ja": "クライミングジム", + "nl": "Een klimzaal" }, "tagRenderings": [ "images", @@ -484,7 +487,8 @@ "presets": [ { "title": { - "en": "Climbing route" + "en": "Climbing route", + "nl": "Klimroute" }, "tags": [ "sport=climbing", @@ -547,7 +551,12 @@ } }, { - "if": "climbing=site", + "if": { + "or": [ + "climbing=site", + "climbing=area" + ] + }, "then": { "en": "Climbing site", "nl": "Klimsite" @@ -785,7 +794,8 @@ "fr": "{name}", "id": "{name}", "ru": "{name}", - "ja": "{name}" + "ja": "{name}", + "nl": "{name}" }, "condition": "name~*" }, @@ -892,7 +902,8 @@ "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)?" + "nl": "Is er een (onofficiële) website met meer informatie (b.v. met topos)?", + "ru": "Есть ли (неофициальный) веб-сайт с более подробной информацией (напр., topos)?" }, "condition": { "and": [ @@ -971,7 +982,8 @@ { "if": "access=members", "then": { - "en": "Only club members" + "en": "Only club members", + "ru": "Только членам клуба" } }, { diff --git a/assets/themes/cyclestreets/cyclestreets.json b/assets/themes/cyclestreets/cyclestreets.json index 8a5956cd1a..b3b3abbf4c 100644 --- a/assets/themes/cyclestreets/cyclestreets.json +++ b/assets/themes/cyclestreets/cyclestreets.json @@ -27,7 +27,8 @@ "ja", "zh_Hant", "nb_NO", - "it" + "it", + "ru" ], "startLat": 51.2095, "startZoom": 14, @@ -222,7 +223,8 @@ "en": "All streets", "ja": "すべての道路", "nb_NO": "Alle gater", - "it": "Tutte le strade" + "it": "Tutte le strade", + "ru": "Все улицы" }, "description": { "nl": "Laag waar je een straat als fietsstraat kan markeren", @@ -247,7 +249,8 @@ "nl": "Straat", "en": "Street", "ja": "ストリート", - "it": "Strada" + "it": "Strada", + "ru": "Улица" }, "mappings": [ { diff --git a/assets/themes/drinking_water/drinking_water.json b/assets/themes/drinking_water/drinking_water.json index da21f5296b..9dee5a8a36 100644 --- a/assets/themes/drinking_water/drinking_water.json +++ b/assets/themes/drinking_water/drinking_water.json @@ -15,7 +15,8 @@ "fr": "Cette carte affiche les points d'accès public à de l'eau potable, et permet d'en ajouter facilement", "ja": "この地図には、一般にアクセス可能な飲料水スポットが示されており、簡単に追加することができる", "zh_Hant": "在這份地圖上,公共可及的飲水點可以顯示出來,也能輕易的增加", - "it": "Questa mappa mostra tutti i luoghi in cui è disponibile acqua potabile ed è possibile aggiungerne di nuovi" + "it": "Questa mappa mostra tutti i luoghi in cui è disponibile acqua potabile ed è possibile aggiungerne di nuovi", + "ru": "На этой карте показываются и могут быть легко добавлены общедоступные точки питьевой воды" }, "language": [ "en", diff --git a/assets/themes/facadegardens/facadegardens.json b/assets/themes/facadegardens/facadegardens.json index b472fdf051..8cc9369815 100644 --- a/assets/themes/facadegardens/facadegardens.json +++ b/assets/themes/facadegardens/facadegardens.json @@ -165,7 +165,8 @@ "nl": "Ligt de tuin in zon/half schaduw of schaduw?", "en": "Is the garden shaded or sunny?", "ja": "庭は日陰ですか、日当たりがいいですか?", - "it": "Il giardino è al sole o in ombra?" + "it": "Il giardino è al sole o in ombra?", + "ru": "Сад расположен на солнечной стороне или в тени?" } }, { @@ -185,7 +186,8 @@ "nl": "Er is een regenton", "en": "There is a rain barrel", "ja": "雨樽がある", - "it": "C'è un contenitore per raccogliere la pioggia" + "it": "C'è un contenitore per raccogliere la pioggia", + "ru": "Есть бочка с дождевой водой" } }, { @@ -198,7 +200,8 @@ "nl": "Er is geen regenton", "en": "There is no rain barrel", "ja": "雨樽はありません", - "it": "Non c'è un contenitore per raccogliere la pioggia" + "it": "Non c'è un contenitore per raccogliere la pioggia", + "ru": "Нет бочки с дождевой водой" } } ] @@ -263,7 +266,8 @@ "nl": "Wat voor planten staan hier?", "en": "What kinds of plants grow here?", "ja": "ここではどんな植物が育つんですか?", - "it": "Che tipi di piante sono presenti qui?" + "it": "Che tipi di piante sono presenti qui?", + "ru": "Какие виды растений обитают здесь?" }, "mappings": [ { @@ -310,13 +314,15 @@ "nl": "Meer details: {description}", "en": "More details: {description}", "ja": "詳細情報: {description}", - "it": "Maggiori dettagli: {description}" + "it": "Maggiori dettagli: {description}", + "ru": "Подробнее: {description}" }, "question": { "nl": "Aanvullende omschrijving van de tuin (indien nodig, en voor zover nog niet omschreven hierboven)", "en": "Extra describing info about the garden (if needed and not yet described above)", "ja": "庭園に関する追加の説明情報(必要な場合でまだ上記に記載されていない場合)", - "it": "Altre informazioni per descrivere il giardino (se necessarie e non riportate qui sopra)" + "it": "Altre informazioni per descrivere il giardino (se necessarie e non riportate qui sopra)", + "ru": "Дополнительная информация о саде (если требуется или еще не указана выше)" }, "freeform": { "key": "description", diff --git a/assets/themes/fritures/fritures.json b/assets/themes/fritures/fritures.json index 36cef08a01..3f3c51f425 100644 --- a/assets/themes/fritures/fritures.json +++ b/assets/themes/fritures/fritures.json @@ -118,7 +118,8 @@ "nl": "Wat is de website van deze frituur?", "fr": "Quel est le site web de cette friterie?", "ja": "このお店のホームページは何ですか?", - "it": "Qual è il sito web di questo negozio?" + "it": "Qual è il sito web di questo negozio?", + "ru": "Какой веб-сайт у этого магазина?" }, "freeform": { "key": "website", @@ -136,7 +137,8 @@ "fr": "Quel est le numéro de téléphone de cette friterie?", "ja": "電話番号は何番ですか?", "nb_NO": "Hva er telefonnummeret?", - "it": "Qual è il numero di telefono?" + "it": "Qual è il numero di telefono?", + "ru": "Какой телефон?" }, "freeform": { "key": "phone", @@ -275,7 +277,8 @@ "then": { "nl": "Je mag geen eigen containers meenemen om je bestelling in mee te nemen", "en": "Bringing your own container is not allowed", - "ja": "独自の容器を持参することはできません" + "ja": "独自の容器を持参することはできません", + "ru": "Приносить свою тару не разрешено" } }, { diff --git a/assets/themes/hailhydrant/hailhydrant.json b/assets/themes/hailhydrant/hailhydrant.json index fef5c8ab28..d465b72eb2 100644 --- a/assets/themes/hailhydrant/hailhydrant.json +++ b/assets/themes/hailhydrant/hailhydrant.json @@ -3,12 +3,14 @@ "title": { "en": "Hydrants, Extinguishers, Fire stations, and Ambulance stations.", "ja": "消火栓、消火器、消防署、救急ステーションです。", - "zh_Hant": "消防栓、滅火器、消防隊、以及急救站。" + "zh_Hant": "消防栓、滅火器、消防隊、以及急救站。", + "ru": "Пожарные гидранты, огнетушители, пожарные станции и станции скорой помощи." }, "shortDescription": { "en": "Map to show hydrants, extinguishers, fire stations, and ambulance stations.", "ja": "消火栓、消火器、消防署消火栓、消火器、消防署、および救急ステーションを表示します。", - "zh_Hant": "顯示消防栓、滅火器、消防隊與急救站的地圖。" + "zh_Hant": "顯示消防栓、滅火器、消防隊與急救站的地圖。", + "ru": "Карта пожарных гидрантов, огнетушителей, пожарных станций и станций скорой помощи." }, "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.", @@ -39,7 +41,8 @@ "en": "Map of hydrants", "ja": "消火栓の地図", "zh_Hant": "消防栓地圖", - "nb_NO": "Kart over brannhydranter" + "nb_NO": "Kart over brannhydranter", + "ru": "Карта пожарных гидрантов" }, "minzoom": 14, "source": { @@ -61,19 +64,22 @@ "en": "Map layer to show fire hydrants.", "ja": "消火栓を表示するマップレイヤ。", "zh_Hant": "顯示消防栓的地圖圖層。", - "nb_NO": "Kartlag for å vise brannhydranter." + "nb_NO": "Kartlag for å vise brannhydranter.", + "ru": "Слой карты, отображающий пожарные гидранты." }, "tagRenderings": [ { "question": { "en": "What color is the hydrant?", "ja": "消火栓の色は何色ですか?", - "nb_NO": "Hvilken farge har brannhydranten?" + "nb_NO": "Hvilken farge har brannhydranten?", + "ru": "Какого цвета гидрант?" }, "render": { "en": "The hydrant color is {colour}", "ja": "消火栓の色は{color}です", - "nb_NO": "Brannhydranter er {colour}" + "nb_NO": "Brannhydranter er {colour}", + "ru": "Цвет гидранта {colour}" }, "freeform": { "key": "colour" @@ -87,7 +93,8 @@ }, "then": { "en": "The hydrant color is unknown.", - "ja": "消火栓の色は不明です。" + "ja": "消火栓の色は不明です。", + "ru": "Цвет гидранта не определён." }, "hideInAnswer": true }, @@ -99,7 +106,8 @@ }, "then": { "en": "The hydrant color is yellow.", - "ja": "消火栓の色は黄色です。" + "ja": "消火栓の色は黄色です。", + "ru": "Гидрант жёлтого цвета." } }, { @@ -111,7 +119,8 @@ "then": { "en": "The hydrant color is red.", "ja": "消火栓の色は赤です。", - "it": "L'idrante è rosso." + "it": "L'idrante è rosso.", + "ru": "Гидрант красного цвета." } } ] @@ -120,7 +129,8 @@ "question": { "en": "What type of hydrant is it?", "ja": "どんな消火栓なんですか?", - "it": "Di che tipo è questo idrante?" + "it": "Di che tipo è questo idrante?", + "ru": "К какому типу относится этот гидрант?" }, "freeform": { "key": "fire_hydrant:type" @@ -141,7 +151,8 @@ "then": { "en": "The hydrant type is unknown.", "ja": "消火栓の種類は不明です。", - "it": "Il tipo di idrante è sconosciuto." + "it": "Il tipo di idrante è sconosciuto.", + "ru": "Тип гидранта не определён." }, "hideInAnswer": true }, @@ -214,7 +225,8 @@ }, "then": { "en": "The hydrant is (fully or partially) working.", - "ja": "消火栓は(完全にまたは部分的に)機能しています。" + "ja": "消火栓は(完全にまたは部分的に)機能しています。", + "ru": "Гидрант (полностью или частично) в рабочем состоянии." } }, { @@ -238,7 +250,8 @@ }, "then": { "en": "The hydrant has been removed.", - "ja": "消火栓が撤去されました。" + "ja": "消火栓が撤去されました。", + "ru": "Гидрант демонтирован." } } ] @@ -282,7 +295,8 @@ "name": { "en": "Map of fire extinguishers.", "ja": "消火器の地図です。", - "nb_NO": "Kart over brannhydranter" + "nb_NO": "Kart over brannhydranter", + "ru": "Карта огнетушителей." }, "minzoom": 14, "source": { @@ -304,17 +318,20 @@ "en": "Map layer to show fire hydrants.", "ja": "消火栓を表示するマップレイヤ。", "zh_Hant": "顯示消防栓的地圖圖層。", - "nb_NO": "Kartlag for å vise brannslokkere." + "nb_NO": "Kartlag for å vise brannslokkere.", + "ru": "Слой карты, отображающий огнетушители." }, "tagRenderings": [ { "render": { "en": "Location: {location}", - "ja": "場所:{location}" + "ja": "場所:{location}", + "ru": "Местоположение: {location}" }, "question": { "en": "Where is it positioned?", - "ja": "どこにあるんですか?" + "ja": "どこにあるんですか?", + "ru": "Где это расположено?" }, "mappings": [ { @@ -325,7 +342,8 @@ }, "then": { "en": "Found indoors.", - "ja": "屋内にある。" + "ja": "屋内にある。", + "ru": "Внутри." } }, { @@ -336,7 +354,8 @@ }, "then": { "en": "Found outdoors.", - "ja": "屋外にある。" + "ja": "屋外にある。", + "ru": "Снаружи." } } ], @@ -367,11 +386,13 @@ "title": { "en": "Fire extinguisher", "ja": "消火器", - "nb_NO": "Brannslukker" + "nb_NO": "Brannslukker", + "ru": "Огнетушитель" }, "description": { "en": "A fire extinguisher is a small, portable device used to stop a fire", - "ja": "消火器は、火災を止めるために使用される小型で携帯可能な装置である" + "ja": "消火器は、火災を止めるために使用される小型で携帯可能な装置である", + "ru": "Огнетушитель - небольшое переносное устройство для тушения огня" } } ], @@ -383,7 +404,8 @@ "en": "Map of fire stations", "ja": "消防署の地図", "nb_NO": "Kart over brannstasjoner", - "it": "Mappa delle caserme dei vigili del fuoco" + "it": "Mappa delle caserme dei vigili del fuoco", + "ru": "Карта пожарных частей" }, "minzoom": 12, "source": { @@ -406,7 +428,8 @@ "description": { "en": "Map layer to show fire stations.", "ja": "消防署を表示するためのマップレイヤ。", - "it": "Livello che mostra le caserme dei vigili del fuoco." + "it": "Livello che mostra le caserme dei vigili del fuoco.", + "ru": "Слой карты, отображающий пожарные части." }, "tagRenderings": [ { @@ -416,13 +439,14 @@ "question": { "en": "What is the name of this fire station?", "ja": "この消防署の名前は何ですか?", - "ru": "Как называется пожарная часть?", + "ru": "Как называется эта пожарная часть?", "it": "Come si chiama questa caserma dei vigili del fuoco?" }, "render": { "en": "This station is called {name}.", "ja": "このステーションの名前は{name}です。", - "it": "Questa caserma si chiama {name}." + "it": "Questa caserma si chiama {name}.", + "ru": "Эта часть называется {name}." } }, { @@ -432,24 +456,28 @@ "question": { "en": " What is the street name where the station located?", "ja": " 救急ステーションの所在地はどこですか?", - "it": " Qual è il nome della via in cui si trova la caserma?" + "it": " Qual è il nome della via in cui si trova la caserma?", + "ru": " По какому адресу расположена эта часть?" }, "render": { "en": "This station is along a highway called {addr:street}.", - "ja": "{addr:street} 沿いにあります。" + "ja": "{addr:street} 沿いにあります。", + "ru": "Часть расположена вдоль шоссе {addr:street}." } }, { "question": { "en": "Where is the station located? (e.g. name of neighborhood, villlage, or town)", - "ja": "このステーションの住所は?(例: 地区、村、または町の名称)" + "ja": "このステーションの住所は?(例: 地区、村、または町の名称)", + "ru": "Где расположена часть? (напр., название населённого пункта)" }, "freeform": { "key": "addr:place" }, "render": { "en": "This station is found within {addr:place}.", - "ja": "このステーションは{addr:place}にあります。" + "ja": "このステーションは{addr:place}にあります。", + "ru": "Эта часть расположена в {addr:place}." } }, { @@ -560,7 +588,8 @@ ], "title": { "en": "Fire station", - "ja": "消防署" + "ja": "消防署", + "ru": "Пожарная часть" }, "description": { "en": "A fire station is a place where the fire trucks and firefighters are located when not in operation.", @@ -573,7 +602,8 @@ "id": "ambulancestation", "name": { "en": "Map of ambulance stations", - "ja": "救急ステーションの地図" + "ja": "救急ステーションの地図", + "ru": "Карта станций скорой помощи" }, "minzoom": 12, "source": { @@ -602,11 +632,12 @@ "question": { "en": "What is the name of this ambulance station?", "ja": "この救急ステーションの名前は何ですか?", - "ru": "Как называется станция скорой помощи?" + "ru": "Как называется эта станция скорой помощи?" }, "render": { "en": "This station is called {name}.", - "ja": "このステーションの名前は{name}です。" + "ja": "このステーションの名前は{name}です。", + "ru": "Эта станция называется {name}." } }, { @@ -615,17 +646,20 @@ }, "question": { "en": " What is the street name where the station located?", - "ja": " 救急ステーションの所在地はどこですか?" + "ja": " 救急ステーションの所在地はどこですか?", + "ru": " По какому адресу расположена эта станция?" }, "render": { "en": "This station is along a highway called {addr:street}.", - "ja": "{addr:street} 沿いにあります。" + "ja": "{addr:street} 沿いにあります。", + "ru": "Эта станция расположена вдоль шоссе {addr:street}." } }, { "question": { "en": "Where is the station located? (e.g. name of neighborhood, villlage, or town)", - "ja": "このステーションの住所は?(例: 地区、村、または町の名称)" + "ja": "このステーションの住所は?(例: 地区、村、または町の名称)", + "ru": "Где расположена станция? (напр., название населённого пункта)" }, "freeform": { "key": "addr:place" @@ -735,7 +769,8 @@ }, "description": { "en": "Add an ambulance station to the map", - "ja": "救急ステーション(消防署)をマップに追加する" + "ja": "救急ステーション(消防署)をマップに追加する", + "ru": "Добавить станцию скорой помощи на карту" } } ], diff --git a/assets/themes/maps/maps.json b/assets/themes/maps/maps.json index cc0d114e3f..e34cdce30b 100644 --- a/assets/themes/maps/maps.json +++ b/assets/themes/maps/maps.json @@ -5,7 +5,8 @@ "nl": "Een kaart met Kaarten", "fr": "Carte des cartes", "ja": "マップのマップ", - "zh_Hant": "地圖的地圖" + "zh_Hant": "地圖的地圖", + "ru": "Карта карт" }, "shortDescription": { "en": "This theme shows all (touristic) maps that OpenStreetMap knows of", @@ -26,7 +27,8 @@ "nl", "fr", "ja", - "zh_Hant" + "zh_Hant", + "ru" ], "maintainer": "MapComplete", "icon": "./assets/themes/maps/logo.svg", diff --git a/assets/themes/natuurpunt/natuurpunt.json b/assets/themes/natuurpunt/natuurpunt.json index fe90675754..277420610c 100644 --- a/assets/themes/natuurpunt/natuurpunt.json +++ b/assets/themes/natuurpunt/natuurpunt.json @@ -37,7 +37,10 @@ "+and": [ "operator~.*[nN]atuurpunt.*" ] - } + }, + "geoJson": "https://pietervdvn.github.io/natuurpunt_cache/natuurpunt_{layer}_{z}_{x}_{y}.geojson", + "geoJsonZoomLevel": 8, + "isOsmCache": true } } }, diff --git a/assets/themes/openwindpowermap/license_info.json b/assets/themes/openwindpowermap/license_info.json new file mode 100644 index 0000000000..1ca28a0914 --- /dev/null +++ b/assets/themes/openwindpowermap/license_info.json @@ -0,0 +1,12 @@ +[ + { + "authors": [ + "Iconathon" + ], + "path": "wind_turbine.svg", + "license": "CC0", + "sources": [ + "https://commons.wikimedia.org/wiki/File:Wind_Turbine_(2076)_-_The_Noun_Project.svg" + ] + } +] \ No newline at end of file diff --git a/assets/themes/openwindpowermap/openwindpowermap.json b/assets/themes/openwindpowermap/openwindpowermap.json new file mode 100644 index 0000000000..2330b885ec --- /dev/null +++ b/assets/themes/openwindpowermap/openwindpowermap.json @@ -0,0 +1,185 @@ +{ + "id": "openwindpowermap", + "title": { + "en": "OpenWindPowerMap" + }, + "maintainer": "Seppe Santens", + "icon": "./assets/themes/openwindpowermap/wind_turbine.svg", + "description": { + "en": "A map for showing and editing wind turbines." + }, + "language": [ + "en", + "nl" + ], + "version": "2021-06-18", + "startLat": 50.52, + "startLon": 4.643, + "startZoom": 8, + "clustering": { + "maxZoom": 8 + }, + "layers": [ + { + "id": "windturbine", + "name": { + "en": "wind turbine" + }, + "source": { + "osmTags": "generator:source=wind" + }, + "minzoom": 10, + "wayHandling": 1, + "title": { + "render": { + "en": "wind turbine" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "en": "{name}" + } + } + ] + }, + "icon": "./assets/themes/openwindpowermap/wind_turbine.svg", + "iconSize": "40, 40, bottom", + "label": { + "mappings": [ + { + "if": "generator:output:electricity~^[0-9]+.*[W]$", + "then": "
{generator:output:electricity}
" + } + ] + }, + "tagRenderings": [ + { + "render": { + "en": "The power output of this wind turbine is {generator:output:electricity}." + }, + "question": { + "en": "What is the power output of this wind turbine? (e.g. 2.3 MW)" + }, + "freeform": { + "key": "generator:output:electricity" + } + }, + { + "render": { + "en": "This wind turbine is operated by {operator}." + }, + "question": { + "en": "Who operates this wind turbine?" + }, + "freeform": { + "key": "operator" + } + }, + { + "render": { + "en": "The total height (including rotor radius) of this wind turbine is {height} metres." + }, + "question": { + "en": "What is the total height of this wind turbine (including rotor radius), in metres?" + }, + "freeform": { + "key": "height", + "type": "float" + } + }, + { + "render": { + "en": "The rotor diameter of this wind turbine is {rotor:diameter} metres." + }, + "question": { + "en": "What is the rotor diameter of this wind turbine, in metres?" + }, + "freeform": { + "key": "rotor:diameter", + "type": "float" + } + }, + { + "render": { + "en": "This wind turbine went into operation on/in {start_date}." + }, + "question": { + "en": "When did this wind turbine go into operation?" + }, + "freeform": { + "key": "start_date", + "type": "date" + } + }, + "images" + ], + "presets": [ + { + "tags": [ + "power=generator", + "generator:source=wind" + ], + "title": { + "en": "wind turbine" + } + } + ] + } + ], + "units": [ + { + "appliesToKey": [ + "generator:output:electricity" + ], + "applicableUnits": [ + { + "canonicalDenomination": "MW", + "alternativeDenomination": [ + "megawatts", + "megawatt" + ], + "human": { + "en": " megawatts", + "nl": " megawatt" + } + }, + { + "canonicalDenomination": "kW", + "alternativeDenomination": [ + "kilowatts", + "kilowatt" + ], + "human": { + "en": " kilowatts", + "nl": " kilowatt" + } + }, + { + "canonicalDenomination": "W", + "alternativeDenomination": [ + "watts", + "watt" + ], + "human": { + "en": " watts", + "nl": " watt" + } + }, + { + "canonicalDenomination": "GW", + "alternativeDenomination": [ + "gigawatts", + "gigawatt" + ], + "human": { + "en": " gigawatts", + "nl": " gigawatt" + } + } + ], + "eraseInvalidValues": true + } + ], + "defaultBackgroundId": "CartoDB.Voyager" +} \ No newline at end of file diff --git a/assets/themes/openwindpowermap/wind_turbine.svg b/assets/themes/openwindpowermap/wind_turbine.svg new file mode 100644 index 0000000000..a388b8faee --- /dev/null +++ b/assets/themes/openwindpowermap/wind_turbine.svg @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/assets/themes/personalLayout/personalLayout.json b/assets/themes/personalLayout/personalLayout.json index b834fbdc3c..02e26cdbd2 100644 --- a/assets/themes/personalLayout/personalLayout.json +++ b/assets/themes/personalLayout/personalLayout.json @@ -20,7 +20,8 @@ "fr": "Crée un thème personnalisé basé sur toutes les couches disponibles de tous les thèmes", "de": "Erstellen Sie ein persönliches Thema auf der Grundlage aller verfügbaren Ebenen aller Themen", "ja": "すべてのテーマの使用可能なすべてのレイヤーに基づいて個人用テーマを作成する", - "zh_Hant": "從所有可用的主題圖層創建個人化主題" + "zh_Hant": "從所有可用的主題圖層創建個人化主題", + "ru": "Создать персональную тему на основе доступных слоёв тем" }, "language": [ "en", @@ -31,7 +32,8 @@ "fr", "de", "ja", - "zh_Hant" + "zh_Hant", + "ru" ], "maintainer": "MapComplete", "icon": "./assets/svg/addSmall.svg", diff --git a/assets/themes/playgrounds/playgrounds.json b/assets/themes/playgrounds/playgrounds.json index ce3a2b398b..418aa36bc4 100644 --- a/assets/themes/playgrounds/playgrounds.json +++ b/assets/themes/playgrounds/playgrounds.json @@ -5,28 +5,32 @@ "en": "Playgrounds", "fr": "Aires de jeux", "ja": "遊び場", - "zh_Hant": "遊樂場" + "zh_Hant": "遊樂場", + "ru": "Игровые площадки" }, "shortDescription": { "nl": "Een kaart met speeltuinen", "en": "A map with playgrounds", "fr": "Une carte des aires de jeux", "ja": "遊び場のある地図", - "zh_Hant": "遊樂場的地圖" + "zh_Hant": "遊樂場的地圖", + "ru": "Карта игровых площадок" }, "description": { "nl": "Op deze kaart vind je speeltuinen en kan je zelf meer informatie en foto's toevoegen", "en": "On this map, you find playgrounds and can add more information", "fr": "Cette carte affiche les aires de jeux et permet d'ajouter plus d'informations", "ja": "この地図では遊び場を見つけ情報を追加することができます", - "zh_Hant": "在這份地圖上,你可以尋找遊樂場以及其相關資訊" + "zh_Hant": "在這份地圖上,你可以尋找遊樂場以及其相關資訊", + "ru": "На этой карте можно найти игровые площадки и добавить дополнительную информацию" }, "language": [ "nl", "en", "fr", "ja", - "zh_Hant" + "zh_Hant", + "ru" ], "maintainer": "", "icon": "./assets/themes/playgrounds/playground.svg", diff --git a/assets/themes/shops/shops.json b/assets/themes/shops/shops.json index e50029a62b..571d0e1b6d 100644 --- a/assets/themes/shops/shops.json +++ b/assets/themes/shops/shops.json @@ -4,7 +4,8 @@ "en": "Open Shop Map", "fr": "Carte des magasins", "ja": "オープン ショップ マップ", - "zh_Hant": "開放商店地圖" + "zh_Hant": "開放商店地圖", + "ru": "Открыть карту магазинов" }, "shortDescription": { "en": "An editable map with basic shop information", @@ -23,6 +24,7 @@ "ja", "zh_Hant", "ru", + "nl", "ca", "id" ], @@ -41,7 +43,8 @@ "en": "Shop", "fr": "Magasin", "ru": "Магазин", - "ja": "店" + "ja": "店", + "nl": "Winkel" }, "minzoom": 16, "source": { @@ -56,7 +59,8 @@ "en": "Shop", "fr": "Magasin", "ru": "Магазин", - "ja": "店" + "ja": "店", + "nl": "Winkel" }, "mappings": [ { @@ -90,7 +94,9 @@ "description": { "en": "A shop", "fr": "Un magasin", - "ja": "ショップ" + "ja": "ショップ", + "nl": "Een winkel", + "ru": "Магазин" }, "tagRenderings": [ "images", @@ -98,8 +104,9 @@ "question": { "en": "What is the name of this shop?", "fr": "Qu'est-ce que le nom de ce magasin?", - "ru": "Как называется магазин?", - "ja": "このお店の名前は何ですか?" + "ru": "Как называется этот магазин?", + "ja": "このお店の名前は何ですか?", + "nl": "Wat is de naam van deze winkel?" }, "render": "This shop is called {name}", "freeform": { @@ -115,7 +122,8 @@ "question": { "en": "What does this shop sell?", "fr": "Que vends ce magasin ?", - "ja": "このお店では何を売っていますか?" + "ja": "このお店では何を売っていますか?", + "ru": "Что продаётся в этом магазине?" }, "freeform": { "key": "shop" @@ -143,7 +151,8 @@ "en": "Supermarket", "fr": "Supermarché", "ru": "Супермаркет", - "ja": "スーパーマーケット" + "ja": "スーパーマーケット", + "nl": "Supermarkt" } }, { @@ -169,7 +178,8 @@ "en": "Hairdresser", "fr": "Coiffeur", "ru": "Парикмахерская", - "ja": "理容師" + "ja": "理容師", + "nl": "Kapper" } }, { @@ -181,7 +191,8 @@ "then": { "en": "Bakery", "fr": "Boulangerie", - "ja": "ベーカリー" + "ja": "ベーカリー", + "nl": "Bakkerij" } }, { @@ -223,7 +234,9 @@ "question": { "en": "What is the phone number?", "fr": "Quel est le numéro de téléphone ?", - "ja": "電話番号は何番ですか?" + "ja": "電話番号は何番ですか?", + "nl": "Wat is het telefoonnummer?", + "ru": "Какой телефон?" }, "freeform": { "key": "phone", @@ -242,7 +255,9 @@ "question": { "en": "What is the website of this shop?", "fr": "Quel est le site internet de ce magasin ?", - "ja": "このお店のホームページは何ですか?" + "ja": "このお店のホームページは何ですか?", + "nl": "Wat is de website van deze winkel?", + "ru": "Какой веб-сайт у этого магазина?" }, "freeform": { "key": "website", @@ -260,7 +275,8 @@ "question": { "en": "What is the email address of this shop?", "fr": "Quelle est l'adresse électronique de ce magasin ?", - "ja": "このお店のメールアドレスは何ですか?" + "ja": "このお店のメールアドレスは何ですか?", + "ru": "Каков адрес электронной почты этого магазина?" }, "freeform": { "key": "email", @@ -277,7 +293,9 @@ "question": { "en": "What are the opening hours of this shop?", "fr": "Quels sont les horaires d'ouverture de ce magasin ?", - "ja": "この店の営業時間は何時から何時までですか?" + "ja": "この店の営業時間は何時から何時までですか?", + "nl": "Wat zijn de openingsuren van deze winkel?", + "ru": "Каковы часы работы этого магазина?" }, "freeform": { "key": "opening_hours", @@ -316,13 +334,15 @@ "en": "Shop", "fr": "Magasin", "ru": "Магазин", - "ja": "店" + "ja": "店", + "nl": "Winkel" }, "description": { "en": "Add a new shop", "fr": "Ajouter un nouveau magasin", "ru": "Добавить новый магазин", - "ja": "新しい店を追加する" + "ja": "新しい店を追加する", + "nl": "Voeg een nieuwe winkel toe" } } ], diff --git a/assets/themes/speelplekken/speelplekken_temp.json b/assets/themes/speelplekken/speelplekken_temp.json index ebd10cb367..62941467b8 100644 --- a/assets/themes/speelplekken/speelplekken_temp.json +++ b/assets/themes/speelplekken/speelplekken_temp.json @@ -28,7 +28,7 @@ "builtin": "play_forest", "override": { "source": { - "geoJson": "https://pietervdvn.github.io/speelplekken_cache/speelplekken_{z}_{x}_{y}.geojson", + "geoJson": "https://pietervdvn.github.io/speelplekken_cache/speelplekken_{layer}_{z}_{x}_{y}.geojson", "geoJsonZoomLevel": 14, "isOsmCache": true }, @@ -105,6 +105,26 @@ { "builtin": "slow_roads", "override": { + "+tagRenderings": [ + { + "question": "Is dit een publiek toegankelijk pad?", + "mappings": [ + { + "if": "access=private", + "then": "Dit is een privaat pad" + }, + { + "if": "access=no", + "then": "Dit is een privaat pad", + "hideInAnswer": true + }, + { + "if": "access=permissive", + "then": "Dit pad is duidelijk in private eigendom, maar er hangen geen verbodsborden dus mag men erover" + } + ] + } + ], "calculatedTags": [ "_part_of_walking_routes=Array.from(new Set(feat.memberships().map(r => \"\" + r.relation.tags.name + \"\"))).join(', ')", "_is_shadowed=feat.overlapWith('shadow').length > 0 ? 'yes': ''" @@ -137,21 +157,21 @@ "maxZoom": 16, "minNeededElements": 100 }, - "roamingRenderings": [ - { - "render": "Maakt deel uit van {_part_of_walking_routes}", - "condition": "_part_of_walking_routes~*" - }, - { - "render": "Een kinder-reportage vinden jullie hier", - "freeform": { - "key": "video", - "type": "url" - }, - "question": "Wat is de link naar de video-reportage?" - } - ], "overrideAll": { + "+tagRenderings": [ + { + "render": "Maakt deel uit van {_part_of_walking_routes}", + "condition": "_part_of_walking_routes~*" + }, + { + "render": "Een kinder-reportage vinden jullie hier", + "freeform": { + "key": "video", + "type": "url" + }, + "question": "Wat is de link naar de video-reportage?" + } + ], "isShown": { "render": "yes", "mappings": [ diff --git a/assets/themes/sport_pitches/sport_pitches.json b/assets/themes/sport_pitches/sport_pitches.json index 5d872c8dca..7f1fdeebda 100644 --- a/assets/themes/sport_pitches/sport_pitches.json +++ b/assets/themes/sport_pitches/sport_pitches.json @@ -5,14 +5,16 @@ "fr": "Terrains de sport", "en": "Sport pitches", "ja": "スポーツ競技場", - "zh_Hant": "運動場地" + "zh_Hant": "運動場地", + "ru": "Спортивные площадки" }, "shortDescription": { "nl": "Deze kaart toont sportvelden", "fr": "Une carte montrant les terrains de sport", "en": "A map showing sport pitches", "ja": "スポーツ競技場を示す地図", - "zh_Hant": "顯示運動場地的地圖" + "zh_Hant": "顯示運動場地的地圖", + "ru": "Карта, отображающая спортивные площадки" }, "description": { "nl": "Een sportveld is een ingerichte plaats met infrastructuur om een sport te beoefenen", @@ -26,7 +28,8 @@ "fr", "en", "ja", - "zh_Hant" + "zh_Hant", + "ru" ], "maintainer": "", "icon": "./assets/layers/sport_pitch/table_tennis.svg", diff --git a/assets/themes/trees/trees.json b/assets/themes/trees/trees.json index daf26fe5b7..8545caa9a9 100644 --- a/assets/themes/trees/trees.json +++ b/assets/themes/trees/trees.json @@ -15,7 +15,8 @@ "fr": "Carte des arbres", "it": "Mappa tutti gli alberi", "ja": "すべての樹木をマッピングする", - "zh_Hant": "所有樹木的地圖" + "zh_Hant": "所有樹木的地圖", + "ru": "Карта деревьев" }, "description": { "nl": "Breng bomen in kaart!", @@ -23,7 +24,8 @@ "fr": "Cartographions tous les arbres !", "it": "Mappa tutti gli alberi!", "ja": "すべての樹木をマッピングします!", - "zh_Hant": "繪製所有樹木!" + "zh_Hant": "繪製所有樹木!", + "ru": "Нанесите все деревья на карту!" }, "language": [ "nl", diff --git a/langs/eo.json b/langs/eo.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/langs/eo.json @@ -0,0 +1 @@ +{} diff --git a/langs/fi.json b/langs/fi.json new file mode 100644 index 0000000000..9b15cc0e69 --- /dev/null +++ b/langs/fi.json @@ -0,0 +1,43 @@ +{ + "general": { + "opening_hours": { + "ph_open": "avattu", + "ph_closed": "suljettu", + "ph_not_known": " " + }, + "weekdays": { + "sunday": "Sunnuntai", + "saturday": "Lauantai", + "friday": "Perjantai", + "thursday": "Torstai", + "wednesday": "Keskiviikko", + "tuesday": "Tiistai", + "monday": "Maanantai", + "abbreviations": { + "sunday": "Su", + "saturday": "La", + "friday": "Pe", + "thursday": "To", + "wednesday": "Ke", + "tuesday": "Ti", + "monday": "Ma" + } + }, + "backgroundMap": "Taustakartta", + "pickLanguage": "Valitse kieli: ", + "number": "numero", + "cancel": "Peruuta", + "save": "Tallenna", + "search": { + "searching": "Etsitään…" + } + }, + "centerMessage": { + "ready": "Valmis!" + }, + "image": { + "doDelete": "Poista kuva", + "dontDelete": "Peruuta", + "addPicture": "Lisää kuva" + } +} diff --git a/langs/layers/eo.json b/langs/layers/eo.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/langs/layers/eo.json @@ -0,0 +1 @@ +{} diff --git a/langs/layers/fi.json b/langs/layers/fi.json new file mode 100644 index 0000000000..71e6a3ca12 --- /dev/null +++ b/langs/layers/fi.json @@ -0,0 +1,103 @@ +{ + "bench": { + "name": "Penkit", + "title": { + "render": "Penkki" + }, + "tagRenderings": { + "1": { + "render": "Selkänoja", + "mappings": { + "0": { + "then": "Selkänoja: kyllä" + }, + "1": { + "then": "Selkänoja: ei" + } + } + }, + "3": { + "render": "Materiaali: {material}", + "mappings": { + "0": { + "then": "Materiaali: puu" + }, + "2": { + "then": "Materiaali: kivi" + }, + "3": { + "then": "Materiaali: betoni" + }, + "4": { + "then": "Materiaali: muovi" + }, + "5": { + "then": "Materiaali: teräs" + } + } + }, + "5": { + "render": "Väri: {colour}", + "mappings": { + "0": { + "then": "Väri: ruskea" + }, + "1": { + "then": "Väri: vihreä" + }, + "2": { + "then": "Väri: harmaa" + }, + "3": { + "then": "Väri: valkoinen" + }, + "4": { + "then": "Väri: punainen" + }, + "5": { + "then": "Väri: musta" + }, + "6": { + "then": "Väri: sininen" + }, + "7": { + "then": "Väri: keltainen" + } + } + } + }, + "presets": { + "0": { + "title": "Penkki", + "description": "Lisää uusi penkki" + } + } + }, + "bench_at_pt": { + "title": { + "render": "Penkki" + }, + "tagRenderings": { + "1": { + "render": "{name}" + } + } + }, + "bike_parking": { + "tagRenderings": { + "5": { + "render": "{access}" + } + } + }, + "bike_repair_station": { + "icon": { + "render": "./assets/layers/bike_repair_station/repair_station.svg" + }, + "presets": { + "0": { + "title": "Pyöräpumppu" + } + } + } +} \ No newline at end of file diff --git a/langs/layers/ru.json b/langs/layers/ru.json index 1dd32d398d..13a18978d2 100644 --- a/langs/layers/ru.json +++ b/langs/layers/ru.json @@ -130,6 +130,9 @@ "mappings": { "0": { "then": "Прокат велосипедов бесплатен" + }, + "1": { + "then": "Прокат велосипеда стоит €20/год и €20 залог" } } }, @@ -199,7 +202,37 @@ "render": "Это велосипедное кафе называется {name}" }, "2": { - "question": "Есть ли в этом велосипедном кафе велосипедный насос для всеобщего использования?" + "question": "Есть ли в этом велосипедном кафе велосипедный насос для всеобщего использования?", + "mappings": { + "0": { + "then": "В этом велосипедном кафе есть велосипедный насос для всеобщего использования" + }, + "1": { + "then": "В этом велосипедном кафе нет велосипедного насоса для всеобщего использования" + } + } + }, + "3": { + "question": "Есть ли здесь инструменты для починки вашего велосипеда?", + "mappings": { + "0": { + "then": "В этом велосипедном кафе есть инструменты для починки своего велосипеда" + }, + "1": { + "then": "В этом велосипедном кафе нет инструментов для починки своего велосипеда" + } + } + }, + "4": { + "question": "Есть ли услуги ремонта велосипедов в этом велосипедном кафе?", + "mappings": { + "0": { + "then": "В этом велосипедном кафе есть услуги ремонта велосипедов" + }, + "1": { + "then": "В этом велосипедном кафе нет услуг ремонта велосипедов" + } + } }, "5": { "question": "Какой сайт у {name}?" @@ -209,6 +242,9 @@ }, "7": { "question": "Какой адрес электронной почты у {name}?" + }, + "8": { + "question": "Каков режим работы этого велосипедного кафе?" } }, "presets": { @@ -217,10 +253,14 @@ } } }, + "bike_monitoring_station": { + "name": "Станции мониторинга" + }, "bike_parking": { "tagRenderings": { "1": { - "question": "К какому типу относится эта велопарковка?" + "question": "К какому типу относится эта велопарковка?", + "render": "Это велопарковка типа {bicycle_parking}" }, "2": { "mappings": { @@ -235,7 +275,21 @@ } } }, + "3": { + "mappings": { + "0": { + "then": "Это крытая парковка (есть крыша/навес)" + }, + "1": { + "then": "Это открытая парковка" + } + } + }, + "4": { + "render": "Место для {capacity} велосипеда(ов)" + }, "5": { + "question": "Кто может пользоваться этой велопарковкой?", "render": "{access}" } } @@ -252,6 +306,14 @@ } }, "tagRenderings": { + "3": { + "question": "Когда работает эта точка обслуживания велосипедов?", + "mappings": { + "0": { + "then": "Всегда открыто" + } + } + }, "6": { "question": "Велосипедный насос все еще работает?", "mappings": { @@ -309,7 +371,9 @@ } }, "bike_shop": { + "name": "Обслуживание велосипедов/магазин", "title": { + "render": "Обслуживание велосипедов/магазин", "mappings": { "0": { "then": "Магазин спортивного инвентаря {name}" @@ -328,7 +392,8 @@ "description": "Магазин, специализирующийся на продаже велосипедов или сопутствующих товаров", "tagRenderings": { "2": { - "question": "Как называется магазин велосипедов?" + "question": "Как называется магазин велосипедов?", + "render": "Этот магазин велосипедов называется {name}" }, "3": { "question": "Какой сайт у {name}?" @@ -340,6 +405,7 @@ "question": "Какой адрес электронной почты у {name}?" }, "9": { + "question": "Продаются ли велосипеды в этом магазине?", "mappings": { "0": { "then": "В этом магазине продаются велосипеды" @@ -360,6 +426,9 @@ }, "2": { "then": "Этот магазин ремонтирует только велосипеды, купленные здесь" + }, + "3": { + "then": "В этом магазине обслуживают велосипеды определённого бренда" } } }, @@ -388,8 +457,35 @@ } } }, + "13": { + "question": "Предлагается ли в этом магазине велосипедный насос для всеобщего пользования?", + "mappings": { + "0": { + "then": "В этом магазине есть велосипедный насос для всеобщего пользования" + }, + "1": { + "then": "В этом магазине нет велосипедного насоса для всеобщего пользования" + } + } + }, + "14": { + "question": "Есть ли здесь инструменты для починки собственного велосипеда?", + "mappings": { + "2": { + "then": "Инструменты для починки доступны только при покупке/аренде велосипеда в магазине" + } + } + }, "15": { - "question": "Здесь моют велосипеды?" + "question": "Здесь моют велосипеды?", + "mappings": { + "0": { + "then": "В этом магазине оказываются услуги мойки/чистки велосипедов" + }, + "2": { + "then": "В этом магазине нет услуг мойки/чистки велосипедов" + } + } } } }, @@ -424,6 +520,9 @@ "then": "Проверено сегодня!" } } + }, + "15": { + "render": "Дополнительная информация для экспертов OpenStreetMap: {fixme}" } } }, @@ -443,11 +542,17 @@ }, "ghost_bike": { "tagRenderings": { + "2": { + "render": "В знак памяти о {name}" + }, "3": { "render": "Доступна более подробная информация" }, "4": { "render": "{inscription}" + }, + "5": { + "render": "Установлен {start_date}" } } }, @@ -508,8 +613,11 @@ "title": { "render": "Стол для пикника" }, + "description": "Слой, отображающий столы для пикника", "tagRenderings": { "0": { + "question": "Из чего изготовлен этот стол для пикника?", + "render": "Этот стол для пикника сделан из {material}", "mappings": { "0": { "then": "Это деревянный стол для пикника" @@ -547,6 +655,9 @@ "1": { "then": "Поверхность - песок" }, + "2": { + "then": "Покрытие из щепы" + }, "3": { "then": "Поверхность - брусчатка" }, @@ -558,8 +669,23 @@ } } }, + "2": { + "question": "Эта игровая площадка освещается ночью?", + "mappings": { + "0": { + "then": "Эта детская площадка освещается ночью" + }, + "1": { + "then": "Эта детская площадка не освещается ночью" + } + } + }, "3": { - "render": "Доступно для детей старше {min_age} лет" + "render": "Доступно для детей старше {min_age} лет", + "question": "С какого возраста доступна эта детская площадка?" + }, + "4": { + "render": "Доступно детям до {max_age}" }, "6": { "mappings": { @@ -574,8 +700,26 @@ "8": { "render": "{phone}" }, - "10": { + "9": { + "question": "Доступна ли детская площадка пользователям кресел-колясок?", "mappings": { + "0": { + "then": "Полностью доступна пользователям кресел-колясок" + }, + "1": { + "then": "Частично доступна пользователям кресел-колясок" + }, + "2": { + "then": "Недоступна пользователям кресел-колясок" + } + } + }, + "10": { + "question": "Когда открыта эта игровая площадка?", + "mappings": { + "0": { + "then": "Открыто от рассвета до заката" + }, "1": { "then": "Всегда доступен" }, @@ -593,6 +737,7 @@ }, "public_bookcase": { "name": "Книжные шкафы", + "description": "Уличный шкаф с книгами, доступными для всех", "title": { "render": "Книжный шкаф", "mappings": { @@ -609,7 +754,7 @@ "tagRenderings": { "2": { "render": "Название книжного шкафа — {name}", - "question": "Как называется общественный книжный шкаф?", + "question": "Как называется этот общественный книжный шкаф?", "mappings": { "0": { "then": "У этого книжного шкафа нет названия" @@ -617,20 +762,38 @@ } }, "3": { + "render": "{capacity} книг помещается в этот книжный шкаф", "question": "Сколько книг помещается в этом общественном книжном шкафу?" }, "4": { + "question": "Какие книги можно найти в этом общественном книжном шкафу?", "mappings": { "0": { "then": "В основном детские книги" }, "1": { "then": "В основном книги для взрослых" + }, + "2": { + "then": "Книги и для детей, и для взрослых" } } }, + "6": { + "question": "Имеется ли свободный доступ к этому общественному книжному шкафу?", + "mappings": { + "0": { + "then": "Свободный доступ" + } + } + }, + "10": { + "question": "Когда был установлен этот общественный книжный шкаф?", + "render": "Установлен {start_date}" + }, "11": { - "render": "Более подробная информация на сайте" + "render": "Более подробная информация на сайте", + "question": "Есть ли веб-сайт с более подробной информацией об этом общественном книжном шкафе?" } } }, @@ -666,15 +829,32 @@ "title": { "render": "Спортивная площадка" }, + "description": "Спортивная площадка", "tagRenderings": { "1": { "mappings": { + "0": { + "then": "Здесь можно играть в баскетбол" + }, + "1": { + "then": "Здесь можно играть в футбол" + }, "2": { "then": "Это стол для пинг-понга" + }, + "3": { + "then": "Здесь можно играть в теннис" + }, + "4": { + "then": "Здесь можно играть в корфбол" + }, + "5": { + "then": "Здесь можно играть в баскетбол" } } }, "2": { + "question": "Какое покрытие на этой спортивной площадке?", "render": "Поверхность - {surface}", "mappings": { "0": { @@ -694,7 +874,36 @@ } } }, + "3": { + "question": "Есть ли свободный доступ к этой спортивной площадке?", + "mappings": { + "0": { + "then": "Свободный доступ" + }, + "1": { + "then": "Ограниченный доступ (напр., только по записи, в определённые часы, ...)" + }, + "2": { + "then": "Доступ только членам клуба" + } + } + }, + "4": { + "question": "Нужна ли предварительная запись для доступа на эту спортивную площадку?", + "mappings": { + "1": { + "then": "Желательна предварительная запись для доступа на эту спортивную площадку" + }, + "2": { + "then": "Предварительная запись для доступа на эту спортивную площадку возможна, но не обязательна" + }, + "3": { + "then": "Невозможна предварительная запись" + } + } + }, "7": { + "question": "В какое время доступна эта площадка?", "mappings": { "1": { "then": "Всегда доступен" @@ -703,6 +912,9 @@ } }, "presets": { + "0": { + "title": "Стол для настольного тенниса" + }, "1": { "title": "Спортивная площадка" } @@ -715,11 +927,28 @@ }, "tagRenderings": { "1": { + "question": "Какая это камера?", "mappings": { + "1": { + "then": "Камера с поворотным механизмом" + }, "2": { "then": "Панорамная камера" } } + }, + "5": { + "mappings": { + "1": { + "then": "Эта камера расположена снаружи" + }, + "2": { + "then": "Возможно, эта камера расположена снаружи" + } + } + }, + "8": { + "question": "Как расположена эта камера?" } } }, @@ -730,12 +959,20 @@ }, "presets": { "0": { - "title": "Туалет" + "title": "Туалет", + "description": "Туалет или комната отдыха со свободным доступом" + }, + "1": { + "title": "Туалет с доступом для пользователей кресел-колясок" } }, "tagRenderings": { "1": { + "question": "Есть ли свободный доступ к этим туалетам?", "mappings": { + "0": { + "then": "Свободный доступ" + }, "2": { "then": "Недоступно" } @@ -747,6 +984,20 @@ "then": "Это платные туалеты" } } + }, + "3": { + "question": "Сколько стоит посещение туалета?", + "render": "Стоимость {charge}" + }, + "4": { + "mappings": { + "1": { + "then": "Недоступно пользователям кресел-колясок" + } + } + }, + "5": { + "question": "Какие это туалеты?" } } }, @@ -769,13 +1020,44 @@ } } }, + "4": { + "question": "Это дерево вечнозелёное или листопадное?", + "mappings": { + "0": { + "then": "Листопадное: у дерева опадают листья в определённое время года." + }, + "1": { + "then": "Вечнозелёное." + } + } + }, "5": { - "render": "Название: {name}" + "render": "Название: {name}", + "question": "Есть ли у этого дерева название?", + "mappings": { + "0": { + "then": "У этого дерева нет названия." + } + } + }, + "7": { + "render": "\"\"/ Onroerend Erfgoed ID: {ref:OnroerendErfgoed}" + }, + "8": { + "render": "\"\"/ Wikidata: {wikidata}" } }, "presets": { + "0": { + "title": "Лиственное дерево" + }, + "1": { + "title": "Хвойное дерево", + "description": "Дерево с хвоей (иглами), например, сосна или ель." + }, "2": { - "title": "Дерево" + "title": "Дерево", + "description": "Если вы не уверены в том, лиственное это дерево или хвойное." } } }, diff --git a/langs/ru.json b/langs/ru.json index 6d24b6ec49..19feb61d8f 100644 --- a/langs/ru.json +++ b/langs/ru.json @@ -98,7 +98,7 @@ "fsGeolocation": "Включить кнопку \"найди меня\" (только в мобильной версии)", "fsSearch": "Включить строку поиска", "fsUserbadge": "Включить кнопку входа в систему", - "fsWelcomeMessage": "Показать всплывающее окно с приветствием и соответсвующие вкладки", + "fsWelcomeMessage": "Показать всплывающее окно с приветствием и соответствующие вкладки", "fsLayers": "Включить выбор слоя карты", "fsAddNew": "Включить кнопку \"добавить новую точку интереса\"", "fsLayerControlToggle": "Открыть панель выбора слоя", @@ -106,7 +106,7 @@ "editThisTheme": "Редактировать эту тему", "thanksForSharing": "Спасибо, что поделились!", "copiedToClipboard": "Ссылка скопирована в буфер обмена", - "embedIntro": "

Встроить на свой сайт

Пожалуйста, вставьте эту карту на свой сайт.
Мы призываем вас сделать это - вам даже не нужно спрашивать разрешения.
Она бесплатна и всегда будет бесплатной. Чем больше людей пользуются ею, тем более ценной она становится.", + "embedIntro": "

Встроить на свой сайт

Пожалуйста, вставьте эту карту на свой сайт.
Мы призываем вас сделать это - вам даже не нужно спрашивать разрешения.
Карта бесплатна и всегда будет бесплатной. Чем больше людей пользуются ею, тем более ценной она становится.", "addToHomeScreen": "

Добавить на домашний экран

Вы можете легко добавить этот сайт на домашний экран вашего смартфона. Для этого нажмите кнопку \"Добавить на главный экран\" в строке URL.", "intro": "

Поделиться этой картой

Поделитесь этой картой, скопировав ссылку ниже и отправив её друзьям и близким:" }, @@ -140,12 +140,12 @@ "doDelete": "Удалить изображение", "dontDelete": "Отмена", "uploadDone": "Ваше изображение добавлено. Спасибо за помощь!", - "respectPrivacy": "Не фотографируйте людей и номерные знаки. Не загружайте снимки Google Maps, Google Streetview и иные источники с закрытой лицензией.", + "respectPrivacy": "Не фотографируйте людей и номерные знаки. Не загружайте снимки Google Maps, Google Street View и иные источники с закрытой лицензией.", "uploadFailed": "Не удалось загрузить изображение. Проверьте, есть ли у вас доступ в Интернет и разрешены ли сторонние API? Браузеры Brave и UMatrix могут блокировать их.", "ccb": "под лицензией CC-BY", "ccbs": "под лицензией CC-BY-SA", "cco": "в открытом доступе", - "willBePublished": "Ваше изображение будет опубликоавано: ", + "willBePublished": "Ваше изображение будет опубликовано: ", "pleaseLogin": "Пожалуйста, войдите в систему, чтобы добавить изображение", "uploadingMultiple": "Загружаем {count} изображений…", "uploadingPicture": "Загружаем изображение…", diff --git a/langs/shared-questions/en.json b/langs/shared-questions/en.json index a8b983d9e6..d11785526e 100644 --- a/langs/shared-questions/en.json +++ b/langs/shared-questions/en.json @@ -15,6 +15,21 @@ "opening_hours": { "question": "What are the opening hours of {name}?", "render": "

Opening hours

{opening_hours_table(opening_hours)}" + }, + "level": { + "question": "On what level is this feature located?", + "render": "Located on the {level}th floor", + "mappings": { + "0": { + "then": "Located underground" + }, + "1": { + "then": "Located on the ground floor" + }, + "2": { + "then": "Located on the first floor" + } + } } } } \ No newline at end of file diff --git a/langs/shared-questions/eo.json b/langs/shared-questions/eo.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/langs/shared-questions/eo.json @@ -0,0 +1 @@ +{} diff --git a/langs/shared-questions/fi.json b/langs/shared-questions/fi.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/langs/shared-questions/fi.json @@ -0,0 +1 @@ +{} diff --git a/langs/shared-questions/nl.json b/langs/shared-questions/nl.json index 2e50d77b1e..fd5a2a9b69 100644 --- a/langs/shared-questions/nl.json +++ b/langs/shared-questions/nl.json @@ -15,6 +15,21 @@ "opening_hours": { "question": "Wat zijn de openingsuren van {name}?", "render": "

Openingsuren

{opening_hours_table(opening_hours)}" + }, + "level": { + "question": "Op welke verdieping bevindt dit punt zich?", + "render": "Bevindt zich op de {level}de verdieping", + "mappings": { + "0": { + "then": "Bevindt zich ondergronds" + }, + "1": { + "then": "Bevindt zich gelijkvloers" + }, + "2": { + "then": "Bevindt zich op de eerste verdieping" + } + } } } } \ No newline at end of file diff --git a/langs/themes/de.json b/langs/themes/de.json index 3588564f03..6a0b29fad1 100644 --- a/langs/themes/de.json +++ b/langs/themes/de.json @@ -71,7 +71,7 @@ "render": "Erstellt von {artist_name}" }, "3": { - "question": "Auf welcher Website gibt es mehr Informationen über dieses Kunstwerk?", + "question": "Gibt es eine Website mit weiteren Informationen über dieses Kunstwerk?", "render": "Weitere Informationen auf dieser Webseite" }, "4": { @@ -87,6 +87,9 @@ "shortDescription": "Eine Karte aller Sitzbänke", "description": "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." }, + "bicyclelib": { + "title": "Fahrradbibliothek" + }, "bookcases": { "title": "Öffentliche Bücherschränke Karte", "description": "Ein öffentlicher Bücherschrank ist ein kleiner Bücherschrank am Straßenrand, ein Kasten, eine alte Telefonzelle oder andere Gegenstände, in denen Bücher aufbewahrt werden. Jeder kann ein Buch hinstellen oder mitnehmen. Diese Karte zielt darauf ab, all diese Bücherschränke zu sammeln. Sie können neue Bücherschränke in der Nähe entdecken und mit einem kostenlosen OpenStreetMap-Account schnell Ihre Lieblingsbücherschränke hinzufügen." diff --git a/langs/themes/en.json b/langs/themes/en.json index 7694c89984..0e547a2f6b 100644 --- a/langs/themes/en.json +++ b/langs/themes/en.json @@ -1,1223 +1,1285 @@ { - "aed": { - "title": "Open AED Map", - "description": "On this map, one can find and mark nearby defibrillators" - }, - "artworks": { - "title": "Open Artwork Map", - "description": "Welcome to Open Artwork Map, a map of statues, busts, grafittis and other artwork all over the world", - "layers": { + "aed": { + "title": "Open AED Map", + "description": "On this map, one can find and mark nearby defibrillators" + }, + "artworks": { + "title": "Open Artwork Map", + "description": "Welcome to Open Artwork Map, a map of statues, busts, grafittis and other artwork all over the world", + "layers": { + "0": { + "name": "Artworks", + "title": { + "render": "Artwork", + "mappings": { "0": { - "name": "Artworks", - "title": { - "render": "Artwork", - "mappings": { - "0": { - "then": "Artwork {name}" - } - } - }, - "description": "Diverse pieces of artwork", - "presets": { - "0": { - "title": "Artwork" - } - }, - "tagRenderings": { - "1": { - "render": "This is a {artwork_type}", - "question": "What is the type of this artwork?", - "mappings": { - "0": { - "then": "Architecture" - }, - "1": { - "then": "Mural" - }, - "2": { - "then": "Painting" - }, - "3": { - "then": "Sculpture" - }, - "4": { - "then": "Statue" - }, - "5": { - "then": "Bust" - }, - "6": { - "then": "Stone" - }, - "7": { - "then": "Installation" - }, - "8": { - "then": "Graffiti" - }, - "9": { - "then": "Relief" - }, - "10": { - "then": "Azulejo (Spanish decorative tilework)" - }, - "11": { - "then": "Tilework" - } - } - }, - "2": { - "question": "Which artist created this?", - "render": "Created by {artist_name}" - }, - "3": { - "question": "Is there a website with more information about this artwork?", - "render": "More information on this website" - }, - "4": { - "question": "Which Wikidata-entry corresponds with this artwork?", - "render": "Corresponds with {wikidata}" - } - } - } - } - }, - "benches": { - "title": "Benches", - "shortDescription": "A map of benches", - "description": "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." - }, - "bicyclelib": { - "title": "Bicycle libraries", - "description": "A bicycle library is a place where bicycles can be lent, often for a small yearly fee. A notable use case are bicycle libraries for kids, which allows them to change for a bigger bike when they've outgrown their current bike" - }, - "bike_monitoring_stations": { - "title": "Bike Monitoring stations", - "shortDescription": "Bike monitoring stations with live data from Brussels Mobility", - "description": "This theme shows bike monitoring stations with live data" - }, - "bookcases": { - "title": "Open Bookcase Map", - "description": "A public bookcase is a small streetside cabinet, box, old phone boot 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." - }, - "campersite": { - "title": "Campersites", - "shortDescription": "Find sites to spend the night with your camper", - "description": "This site collects all official camper stopover places and places where you can dump grey and black water. You can add details about the services provided and the cost. Add pictures and reviews. This is a website and a webapp. The data is stored in OpenStreetMap, so it will be free forever and can be re-used by any app.", - "layers": { - "0": { - "name": "Camper sites", - "title": { - "render": "Camper site {name}", - "mappings": { - "0": { - "then": "Unnamed camper site" - } - } - }, - "description": "camper sites", - "tagRenderings": { - "1": { - "render": "This place is called {name}", - "question": "What is this place called?" - }, - "2": { - "question": "Does this place charge a fee?", - "mappings": { - "0": { - "then": "You need to pay for use" - }, - "1": { - "then": "Can be used for free" - } - } - }, - "3": { - "render": "This place charges {charge}", - "question": "How much does this place charge?" - }, - "4": { - "question": "Does this place have a sanitary dump station?", - "mappings": { - "0": { - "then": "This place has a sanitary dump station" - }, - "1": { - "then": "This place does not have a sanitary dump station" - } - } - }, - "5": { - "render": "{capacity} campers can use this place at the same time", - "question": "How many campers can stay here? (skip if there is no obvious number of spaces or allowed vehicles)" - }, - "6": { - "question": "Does this place provide internet access?", - "mappings": { - "0": { - "then": "There is internet access" - }, - "1": { - "then": "There is internet access" - }, - "2": { - "then": "There is no internet access" - } - } - }, - "7": { - "question": "Do you have to pay for the internet access?", - "mappings": { - "0": { - "then": "You need to pay extra for internet access" - }, - "1": { - "then": "You do not need to pay extra for internet access" - } - } - }, - "8": { - "question": "Does this place have toilets?", - "mappings": { - "0": { - "then": "This place has toilets" - }, - "1": { - "then": "This place does not have toilets" - } - } - }, - "9": { - "render": "Official website: {website}", - "question": "Does this place have a website?" - }, - "10": { - "question": "Does this place offer spots for long term rental?", - "mappings": { - "0": { - "then": "Yes, there are some spots for long term rental, but you can also stay on a daily basis" - }, - "1": { - "then": "No, there are no permanent guests here" - }, - "2": { - "then": "It is only possible to stay here if you have a long term contract(this place will disappear from this map if you choose this)" - } - } - }, - "11": { - "render": "More details about this place: {description}", - "question": "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)" - } - }, - "presets": { - "0": { - "title": "camper site", - "description": "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 " - } - } - }, - "1": { - "name": "Sanitary dump stations", - "title": { - "render": "Dump station {name}", - "mappings": { - "0": { - "then": "Dump station" - } - } - }, - "description": "Sanitary dump stations", - "tagRenderings": { - "1": { - "question": "Does this place charge a fee?", - "mappings": { - "0": { - "then": "You need to pay for use" - }, - "1": { - "then": "Can be used for free" - } - } - }, - "2": { - "render": "This place charges {charge}", - "question": "How much does this place charge?" - }, - "3": { - "question": "Does this place have a water point?", - "mappings": { - "0": { - "then": "This place has a water point" - }, - "1": { - "then": "This place does not have a water point" - } - } - }, - "4": { - "question": "Can you dispose of grey water here?", - "mappings": { - "0": { - "then": "You can dispose of grey water here" - }, - "1": { - "then": "You cannot dispose of gray water here" - } - } - }, - "5": { - "question": "Can you dispose of chemical toilet waste here?", - "mappings": { - "0": { - "then": "You can dispose of chemical toilet waste here" - }, - "1": { - "then": "You cannot dispose of chemical toilet waste here" - } - } - }, - "6": { - "question": "Who can use this dump station?", - "mappings": { - "0": { - "then": "You need a network key/code to use this" - }, - "1": { - "then": "You need to be a customer of camping/campersite to use this place" - }, - "2": { - "then": "Anyone can use this dump station" - }, - "3": { - "then": "Anyone can use this dump station" - } - } - }, - "7": { - "render": "This station is part of network {network}", - "question": "What network is this place a part of? (skip if none)" - } - }, - "presets": { - "0": { - "title": "sanitary dump station", - "description": "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." - } - } + "then": "Artwork {name}" } + } }, - "roamingRenderings": { - "0": { - "render": "This place is operated by {operator}", - "question": "Who operates this place?" - }, - "1": { - "question": "Does this place have a power supply?", - "mappings": { - "0": { - "then": "This place has a power supply" - }, - "1": { - "then": "This place does not have power supply" - } - } - } - } - }, - "charging_stations": { - "title": "Charging stations", - "shortDescription": "A worldwide map of charging stations", - "description": "On this open map, one can find and mark information about charging stations", - "layers": { - "0": { - "name": "Charging stations", - "title": { - "render": "Charging station" - }, - "description": "A charging station", - "tagRenderings": { - "5": { - "question": "When is this charging station opened?" - }, - "6": { - "render": "{network}", - "question": "What network of this charging station under?", - "mappings": { - "0": { - "then": "Not part of a bigger network" - }, - "1": { - "then": "AeroVironment" - }, - "2": { - "then": "Blink" - }, - "3": { - "then": "eVgo" - } - } - } - } - } - } - }, - "climbing": { - "title": "Open Climbing Map", - "description": "On this map you will find various climbing opportunities such as climbing gyms, bouldering halls and rocks in nature.", - "descriptionTail": "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.

", - "layers": { - "0": { - "name": "Climbing club", - "title": { - "render": "Climbing club", - "mappings": { - "0": { - "then": "Climbing NGO" - } - } - }, - "description": "A climbing club or organisations", - "tagRenderings": { - "0": { - "render": "{name}", - "question": "What is the name of this climbing club or NGO?" - } - }, - "presets": { - "0": { - "title": "Climbing club", - "description": "A climbing club" - }, - "1": { - "title": "Climbing NGO", - "description": "A NGO working around climbing" - } - } - }, - "1": { - "name": "Climbing gyms", - "title": { - "render": "Climbing gym", - "mappings": { - "0": { - "then": "Climbing gym {name}" - } - } - }, - "description": "A climbing gym", - "tagRenderings": { - "3": { - "render": "{name}", - "question": "What is the name of this climbing gym?" - } - } - }, - "2": { - "name": "Climbing routes", - "title": { - "render": "Climbing route", - "mappings": { - "0": { - "then": "Climbing route {name}" - } - } - }, - "tagRenderings": { - "3": { - "render": "{name}", - "question": "What is the name of this climbing route?", - "mappings": { - "0": { - "then": "This climbing route doesn't have a name" - } - } - }, - "4": { - "question": "How long is this climbing route (in meters)?", - "render": "This route is {canonical(climbing:length)} long" - }, - "5": { - "question": "What is the difficulty of this climbing route according to the french/belgian system?", - "render": "The difficulty is {climbing:grade:french} according to the french/belgian system" - }, - "6": { - "question": "How much bolts does this route have before reaching the moulinette?", - "render": "This route has {climbing:bolts} bolts", - "mappings": { - "0": { - "then": "This route is not bolted" - }, - "1": { - "then": "This route is not bolted" - } - } - }, - "8": { - "render": "The rock type is {_embedding_features_with_rock:rock} as stated on the surrounding crag" - } - }, - "presets": { - "0": { - "title": "Climbing route" - } - } - }, - "3": { - "name": "Climbing opportunities", - "title": { - "render": "Climbing opportunity", - "mappings": { - "0": { - "then": "Climbing crag {name}" - }, - "1": { - "then": "Climbing area {name}" - }, - "2": { - "then": "Climbing site" - }, - "3": { - "then": "Climbing opportunity {name}" - } - } - }, - "description": "A climbing opportunity", - "tagRenderings": { - "3": { - "render": "

Length overview

{histogram(_length_hist)}" - }, - "4": { - "render": "

Difficulties overview

{histogram(_difficulty_hist)}" - }, - "5": { - "render": "

Contains {_contained_climbing_routes_count} routes

    {_contained_climbing_routes}
" - }, - "6": { - "render": "{name}", - "question": "What is the name of this climbing opportunity?", - "mappings": { - "0": { - "then": "This climbing opportunity doesn't have a name" - } - } - }, - "7": { - "mappings": { - "0": { - "then": "A climbing boulder - a single rock or cliff with one or a few climbing routes which can be climbed safely without rope" - }, - "1": { - "then": "A climbing crag - a single rock or cliff with at least a few climbing routes" - } - } - }, - "8": { - "question": "What is the rock type here?", - "render": "The rock type is {rock}", - "mappings": { - "0": { - "then": "Limestone" - } - } - } - }, - "presets": { - "0": { - "title": "Climbing opportunity", - "description": "A climbing opportunity" - } - } - }, - "4": { - "name": "Climbing opportunities?", - "title": { - "render": "Climbing opportunity?" - }, - "description": "A climbing opportunity?", - "tagRenderings": { - "1": { - "render": "{name}" - }, - "2": { - "question": "Is climbing possible here?", - "mappings": { - "0": { - "then": "Climbing is not possible here" - }, - "1": { - "then": "Climbing is possible here" - }, - "2": { - "then": "Climbing is not possible here" - } - } - } - } - } + "description": "Diverse pieces of artwork", + "presets": { + "0": { + "title": "Artwork" + } }, - "units": { - "0": { - "applicableUnits": { - "0": { - "human": " meter" - }, - "1": { - "human": " feet" - } - } - } - }, - "roamingRenderings": { - "0": { - "question": "Is there a (unofficial) website with more informations (e.g. topos)?" - }, - "1": { - "mappings": { - "0": { - "then": "The containing feature states that this is publicly accessible
{_embedding_feature:access:description}" - }, - "1": { - "then": "The containing feature states that a permit is needed to access
{_embedding_feature:access:description}" - }, - "2": { - "then": "The containing feature states that this is only accessible to customers
{_embedding_feature:access:description}" - }, - "3": { - "then": "The containing feature states that this is only accessible to club members
{_embedding_feature:access:description}" - } - } - }, - "2": { - "question": "Who can access here?", - "mappings": { - "0": { - "then": "Publicly accessible to anyone" - }, - "1": { - "then": "You need a permit to access here" - }, - "2": { - "then": "Only custumers" - }, - "3": { - "then": "Only club members" - } - } - }, - "4": { - "render": "The routes are {canonical(climbing:length)} long on average", - "question": "What is the (average) length of the routes in meters?" - }, - "5": { - "question": "What is the level of the easiest route here, accoring to the french classification system?", - "render": "The minimal difficulty is {climbing:grade:french:min} according to the french/belgian system" - }, - "6": { - "question": "What is the level of the most difficult route here, accoring to the french classification system?", - "render": "The maximal difficulty is {climbing:grade:french:max} according to the french/belgian system" - }, - "7": { - "question": "Is bouldering possible here?", - "mappings": { - "0": { - "then": "Bouldering is possible here" - }, - "1": { - "then": "Bouldering is not possible here" - }, - "2": { - "then": "Bouldering is possible, allthough there are only a few routes" - }, - "3": { - "then": "There are {climbing:boulder} boulder routes" - } - } - }, - "8": { - "question": "Is toprope climbing possible here?", - "mappings": { - "0": { - "then": "Toprope climbing is possible here" - }, - "1": { - "then": "Toprope climbing is not possible here" - }, - "2": { - "then": "There are {climbing:toprope} toprope routes" - } - } - }, - "9": { - "question": "Is sport climbing possible here on fixed anchors?", - "mappings": { - "0": { - "then": "Sport climbing is possible here" - }, - "1": { - "then": "Sport climbing is not possible here" - }, - "2": { - "then": "There are {climbing:sport} sport climbing routes" - } - } - }, - "10": { - "question": "Is traditional climbing possible here (using own gear e.g. chocks)?", - "mappings": { - "0": { - "then": "Traditional climbing is possible here" - }, - "1": { - "then": "Traditional climbing is not possible here" - }, - "2": { - "then": "There are {climbing:traditional} traditional climbing routes" - } - } - }, - "11": { - "question": "Is there a speed climbing wall?", - "mappings": { - "0": { - "then": "There is a speed climbing wall" - }, - "1": { - "then": "There is no speed climbing wall" - }, - "2": { - "then": "There are {climbing:speed} speed climbing walls" - } - } - } - } - }, - "fietsstraten": { - "title": "Cyclestreets", - "shortDescription": "A map of cyclestreets", - "description": "A cyclestreet is is a street where motorized traffic is not allowed to overtake cyclists. They are signposted by a special traffic sign. Cyclestreets can be found in the Netherlands and Belgium, but also in Germany and France. ", - "roamingRenderings": { - "0": { - "question": "Is this street a cyclestreet?", - "mappings": { - "0": { - "then": "This street is a cyclestreet (and has a speed limit of 30 km/h)" - }, - "1": { - "then": "This street is a cyclestreet" - }, - "2": { - "then": "This street will become a cyclstreet soon" - }, - "3": { - "then": "This street is not a cyclestreet" - } - } - }, - "1": { - "question": "When will this street become a cyclestreet?", - "render": "This street will become a cyclestreet at {cyclestreet:start_date}" - } - }, - "layers": { - "0": { - "name": "Cyclestreets", - "description": "A cyclestreet is a street where motorized traffic is not allowed to overtake a cyclist" - }, - "1": { - "name": "Future cyclestreet", - "description": "This street will become a cyclestreet soon", - "title": { - "render": "Future cyclestreet", - "mappings": { - "0": { - "then": "{name} will become a cyclestreet soon" - } - } - } - }, - "2": { - "name": "All streets", - "description": "Layer to mark any street as cyclestreet", - "title": { - "render": "Street" - } - } - } - }, - "cyclofix": { - "title": "Cyclofix - an open map for cyclists", - "description": "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." - }, - "drinking_water": { - "title": "Drinking Water", - "description": "On this map, publicly accessible drinking water spots are shown and can be easily added" - }, - "facadegardens": { - "title": "Facade gardens", - "shortDescription": "This map shows facade gardens with pictures and useful info about orientation, sunshine and plant types.", - "description": "Facade gardens, green facades and trees in the city not only bring peace and quiet, but also a more beautiful city, greater biodiversity, a cooling effect and better air quality.
Klimaan VZW and Mechelen Klimaatneutraal want to map existing and new facade gardens as an example for people who want to build their own garden or for city walkers who love nature.
More info about the project at klimaan.be.", - "layers": { - "0": { - "name": "Facade gardens", - "title": { - "render": "Facade garden" - }, - "description": "Facade gardens", - "tagRenderings": { - "1": { - "render": "Orientation: {direction} (where 0=N and 90=O)", - "question": "What is the orientation of the garden?" - }, - "2": { - "mappings": { - "0": { - "then": "The garden is in full sun" - }, - "1": { - "then": "The garden is in partial shade" - }, - "2": { - "then": "The sun is in the shade" - } - }, - "question": "Is the garden shaded or sunny?" - }, - "3": { - "question": "Is there a water barrel installed for the garden?", - "mappings": { - "0": { - "then": "There is a rain barrel" - }, - "1": { - "then": "There is no rain barrel" - } - } - }, - "4": { - "render": "Construction date of the garden: {start_date}", - "question": "When was the garden constructed? (a year is sufficient)" - }, - "5": { - "mappings": { - "0": { - "then": "There are edible plants" - }, - "1": { - "then": "There are no edible plants" - } - }, - "question": "Are there any edible plants?" - }, - "6": { - "question": "What kinds of plants grow here?", - "mappings": { - "0": { - "then": "There are vines" - }, - "1": { - "then": "There are flowering plants" - }, - "2": { - "then": "There are shrubs" - }, - "3": { - "then": "There are groundcovering plants" - } - } - }, - "7": { - "render": "More details: {description}", - "question": "Extra describing info about the garden (if needed and not yet described above)" - } - }, - "presets": { - "0": { - "title": "facade garden", - "description": "Add a facade garden" - } - } - } - } - }, - "fritures": { - "layers": { - "0": { - "tagRenderings": { - "1": { - "question": "What is the name of this friture?" - }, - "3": { - "render": "{website}", - "question": "What is the website of this shop?" - }, - "4": { - "question": "What is the phone number?" - }, - "8": { - "question": "If you bring your own container (such as a cooking pot and small pots), is it used to package your order?
", - "mappings": { - "0": { - "then": "You can bring your own containers to get your order, saving on single-use packaging material and thus waste" - }, - "1": { - "then": "Bringing your own container is not allowed" - }, - "2": { - "then": "You must bring your own container to order here." - } - } - } - } - } - } - }, - "ghostbikes": { - "title": "Ghost bikes", - "description": "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." - }, - "hailhydrant": { - "title": "Hydrants, Extinguishers, Fire stations, and Ambulance stations.", - "shortDescription": "Map to show hydrants, extinguishers, fire stations, and ambulance stations.", - "description": "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.", - "layers": { - "0": { - "name": "Map of hydrants", - "title": { - "render": "Hydrant" - }, - "description": "Map layer to show fire hydrants.", - "tagRenderings": { - "0": { - "question": "What color is the hydrant?", - "render": "The hydrant color is {colour}", - "mappings": { - "0": { - "then": "The hydrant color is unknown." - }, - "1": { - "then": "The hydrant color is yellow." - }, - "2": { - "then": "The hydrant color is red." - } - } - }, - "1": { - "question": "What type of hydrant is it?", - "render": " Hydrant type: {fire_hydrant:type}", - "mappings": { - "0": { - "then": "The hydrant type is unknown." - }, - "1": { - "then": " Pillar type." - }, - "2": { - "then": " Pipe type." - }, - "3": { - "then": " Wall type." - }, - "4": { - "then": " Underground type." - } - } - }, - "2": { - "question": "Update the lifecycle status of the hydrant.", - "render": "Lifecycle status", - "mappings": { - "0": { - "then": "The hydrant is (fully or partially) working." - }, - "1": { - "then": "The hydrant is unavailable." - }, - "2": { - "then": "The hydrant has been removed." - } - } - } - }, - "presets": { - "0": { - "title": "Fire hydrant", - "description": "A hydrant is a connection point where firefighters can tap water. It might be located underground." - } - } - }, - "1": { - "name": "Map of fire extinguishers.", - "title": { - "render": "Extinguishers" - }, - "description": "Map layer to show fire hydrants.", - "tagRenderings": { - "0": { - "render": "Location: {location}", - "question": "Where is it positioned?", - "mappings": { - "0": { - "then": "Found indoors." - }, - "1": { - "then": "Found outdoors." - } - } - } - }, - "presets": { - "0": { - "title": "Fire extinguisher", - "description": "A fire extinguisher is a small, portable device used to stop a fire" - } - } - }, - "2": { - "name": "Map of fire stations", - "title": { - "render": "Fire Station" - }, - "description": "Map layer to show fire stations.", - "tagRenderings": { - "0": { - "question": "What is the name of this fire station?", - "render": "This station is called {name}." - }, - "1": { - "question": " What is the street name where the station located?", - "render": "This station is along a highway called {addr:street}." - }, - "2": { - "question": "Where is the station located? (e.g. name of neighborhood, villlage, or town)", - "render": "This station is found within {addr:place}." - }, - "3": { - "question": "What agency operates this station?", - "render": "This station is operated by {operator}.", - "mappings": { - "0": { - "then": "Bureau of Fire Protection" - } - } - }, - "4": { - "question": "How is the station operator classified?", - "render": "The operator is a(n) {operator:type} entity.", - "mappings": { - "0": { - "then": "The station is operated by the government." - }, - "1": { - "then": "The station is operated by a community-based, or informal organization." - }, - "2": { - "then": "The station is operated by a formal group of volunteers." - }, - "3": { - "then": "The station is privately operated." - } - } - } - }, - "presets": { - "0": { - "title": "Fire station", - "description": "A fire station is a place where the fire trucks and firefighters are located when not in operation." - } - } - }, - "3": { - "name": "Map of ambulance stations", - "title": { - "render": "Ambulance Station" - }, - "description": "An ambulance station is an area for storage of ambulance vehicles, medical equipment, personal protective equipment, and other medical supplies.", - "tagRenderings": { - "0": { - "question": "What is the name of this ambulance station?", - "render": "This station is called {name}." - }, - "1": { - "question": " What is the street name where the station located?", - "render": "This station is along a highway called {addr:street}." - }, - "2": { - "question": "Where is the station located? (e.g. name of neighborhood, villlage, or town)", - "render": "This station is found within {addr:place}." - }, - "3": { - "question": "What agency operates this station?", - "render": "This station is operated by {operator}." - }, - "4": { - "question": "How is the station operator classified?", - "render": "The operator is a(n) {operator:type} entity.", - "mappings": { - "0": { - "then": "The station is operated by the government." - }, - "1": { - "then": "The station is operated by a community-based, or informal organization." - }, - "2": { - "then": "The station is operated by a formal group of volunteers." - }, - "3": { - "then": "The station is privately operated." - } - } - } - }, - "presets": { - "0": { - "title": "Ambulance station", - "description": "Add an ambulance station to the map" - } - } - } - } - }, - "maps": { - "title": "A map of maps", - "shortDescription": "This theme shows all (touristic) maps that OpenStreetMap knows of", - "description": "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." - }, - "natuurpunt": { - "title": "Nature Reserves", - "shortDescription": "This map shows the nature reserves of Natuurpunt", - "description": "On this map you can find all the nature reserves that Natuurpunt offers " - }, - "personal": { - "title": "Personal theme", - "description": "Create a personal theme based on all the available layers of all themes" - }, - "playgrounds": { - "title": "Playgrounds", - "shortDescription": "A map with playgrounds", - "description": "On this map, you find playgrounds and can add more information" - }, - "shops": { - "title": "Open Shop Map", - "shortDescription": "An editable map with basic shop information", - "description": "On this map, one can mark basic information about shops, add opening hours and phone numbers", - "layers": { - "0": { - "name": "Shop", - "title": { - "render": "Shop", - "mappings": { - "0": { - "then": "{name}" - }, - "1": { - "then": "{shop}" - } - } - }, - "description": "A shop", - "tagRenderings": { - "1": { - "question": "What is the name of this shop?" - }, - "2": { - "render": "This shop sells {shop}", - "question": "What does this shop sell?", - "mappings": { - "0": { - "then": "Convenience store" - }, - "1": { - "then": "Supermarket" - }, - "2": { - "then": "Clothing store" - }, - "3": { - "then": "Hairdresser" - }, - "4": { - "then": "Bakery" - }, - "5": { - "then": "Car repair (garage)" - }, - "6": { - "then": "Car dealer" - } - } - }, - "3": { - "render": "{phone}", - "question": "What is the phone number?" - }, - "4": { - "render": "{website}", - "question": "What is the website of this shop?" - }, - "5": { - "render": "{email}", - "question": "What is the email address of this shop?" - }, - "6": { - "render": "{opening_hours_table(opening_hours)}", - "question": "What are the opening hours of this shop?" - } - }, - "presets": { - "0": { - "title": "Shop", - "description": "Add a new shop" - } - } - } - } - }, - "sport_pitches": { - "title": "Sport pitches", - "shortDescription": "A map showing sport pitches", - "description": "A sport pitch is an area where sports are played" - }, - "surveillance": { - "title": "Surveillance under Surveillance", - "shortDescription": "Surveillance cameras and other means of surveillance", - "description": "On this open map, you can find surveillance cameras." - }, - "toilets": { - "title": "Open Toilet Map", - "description": "A map of public toilets" - }, - "trees": { - "title": "Trees", - "shortDescription": "Map all the trees", - "description": "Map all the trees!" - }, - "waste_basket": { - "title": "Waste Basket", - "shortDescription": "Throw away waste", - "description": "This is a public waste basket, thrash can, where you can throw away your thrash.", - "layers": { - "0": { - "name": "Waste Basket", - "title": { - "render": "Waste Basket" - }, - "description": "This is a public waste basket, thrash can, where you can throw away your thrash.", - "iconSize": { - "mappings": { - "0": { - "then": "Waste Basket" - } - } - }, - "presets": { - "0": { - "title": "Waste Basket", - "description": "Throw away waste" - } - } + "tagRenderings": { + "1": { + "render": "This is a {artwork_type}", + "question": "What is the type of this artwork?", + "mappings": { + "0": { + "then": "Architecture" + }, + "1": { + "then": "Mural" + }, + "2": { + "then": "Painting" + }, + "3": { + "then": "Sculpture" + }, + "4": { + "then": "Statue" + }, + "5": { + "then": "Bust" + }, + "6": { + "then": "Stone" + }, + "7": { + "then": "Installation" + }, + "8": { + "then": "Graffiti" + }, + "9": { + "then": "Relief" + }, + "10": { + "then": "Azulejo (Spanish decorative tilework)" + }, + "11": { + "then": "Tilework" + } } + }, + "2": { + "question": "Which artist created this?", + "render": "Created by {artist_name}" + }, + "3": { + "question": "Is there a website with more information about this artwork?", + "render": "More information on this website" + }, + "4": { + "question": "Which Wikidata-entry corresponds with this artwork?", + "render": "Corresponds with {wikidata}" + } } + } } + }, + "benches": { + "title": "Benches", + "shortDescription": "A map of benches", + "description": "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." + }, + "bicyclelib": { + "title": "Bicycle libraries", + "description": "A bicycle library is a place where bicycles can be lent, often for a small yearly fee. A notable use case are bicycle libraries for kids, which allows them to change for a bigger bike when they've outgrown their current bike" + }, + "bike_monitoring_stations": { + "title": "Bike Monitoring stations", + "shortDescription": "Bike monitoring stations with live data from Brussels Mobility", + "description": "This theme shows bike monitoring stations with live data" + }, + "bookcases": { + "title": "Open Bookcase Map", + "description": "A public bookcase is a small streetside cabinet, box, old phone boot 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." + }, + "campersite": { + "title": "Campersites", + "shortDescription": "Find sites to spend the night with your camper", + "description": "This site collects all official camper stopover places and places where you can dump grey and black water. You can add details about the services provided and the cost. Add pictures and reviews. This is a website and a webapp. The data is stored in OpenStreetMap, so it will be free forever and can be re-used by any app.", + "layers": { + "0": { + "name": "Camper sites", + "title": { + "render": "Camper site {name}", + "mappings": { + "0": { + "then": "Unnamed camper site" + } + } + }, + "description": "camper sites", + "tagRenderings": { + "1": { + "render": "This place is called {name}", + "question": "What is this place called?" + }, + "2": { + "question": "Does this place charge a fee?", + "mappings": { + "0": { + "then": "You need to pay for use" + }, + "1": { + "then": "Can be used for free" + } + } + }, + "3": { + "render": "This place charges {charge}", + "question": "How much does this place charge?" + }, + "4": { + "question": "Does this place have a sanitary dump station?", + "mappings": { + "0": { + "then": "This place has a sanitary dump station" + }, + "1": { + "then": "This place does not have a sanitary dump station" + } + } + }, + "5": { + "render": "{capacity} campers can use this place at the same time", + "question": "How many campers can stay here? (skip if there is no obvious number of spaces or allowed vehicles)" + }, + "6": { + "question": "Does this place provide internet access?", + "mappings": { + "0": { + "then": "There is internet access" + }, + "1": { + "then": "There is internet access" + }, + "2": { + "then": "There is no internet access" + } + } + }, + "7": { + "question": "Do you have to pay for the internet access?", + "mappings": { + "0": { + "then": "You need to pay extra for internet access" + }, + "1": { + "then": "You do not need to pay extra for internet access" + } + } + }, + "8": { + "question": "Does this place have toilets?", + "mappings": { + "0": { + "then": "This place has toilets" + }, + "1": { + "then": "This place does not have toilets" + } + } + }, + "9": { + "render": "Official website: {website}", + "question": "Does this place have a website?" + }, + "10": { + "question": "Does this place offer spots for long term rental?", + "mappings": { + "0": { + "then": "Yes, there are some spots for long term rental, but you can also stay on a daily basis" + }, + "1": { + "then": "No, there are no permanent guests here" + }, + "2": { + "then": "It is only possible to stay here if you have a long term contract(this place will disappear from this map if you choose this)" + } + } + }, + "11": { + "render": "More details about this place: {description}", + "question": "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)" + } + }, + "presets": { + "0": { + "title": "camper site", + "description": "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 " + } + } + }, + "1": { + "name": "Sanitary dump stations", + "title": { + "render": "Dump station {name}", + "mappings": { + "0": { + "then": "Dump station" + } + } + }, + "description": "Sanitary dump stations", + "tagRenderings": { + "1": { + "question": "Does this place charge a fee?", + "mappings": { + "0": { + "then": "You need to pay for use" + }, + "1": { + "then": "Can be used for free" + } + } + }, + "2": { + "render": "This place charges {charge}", + "question": "How much does this place charge?" + }, + "3": { + "question": "Does this place have a water point?", + "mappings": { + "0": { + "then": "This place has a water point" + }, + "1": { + "then": "This place does not have a water point" + } + } + }, + "4": { + "question": "Can you dispose of grey water here?", + "mappings": { + "0": { + "then": "You can dispose of grey water here" + }, + "1": { + "then": "You cannot dispose of gray water here" + } + } + }, + "5": { + "question": "Can you dispose of chemical toilet waste here?", + "mappings": { + "0": { + "then": "You can dispose of chemical toilet waste here" + }, + "1": { + "then": "You cannot dispose of chemical toilet waste here" + } + } + }, + "6": { + "question": "Who can use this dump station?", + "mappings": { + "0": { + "then": "You need a network key/code to use this" + }, + "1": { + "then": "You need to be a customer of camping/campersite to use this place" + }, + "2": { + "then": "Anyone can use this dump station" + }, + "3": { + "then": "Anyone can use this dump station" + } + } + }, + "7": { + "render": "This station is part of network {network}", + "question": "What network is this place a part of? (skip if none)" + } + }, + "presets": { + "0": { + "title": "sanitary dump station", + "description": "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." + } + } + } + }, + "roamingRenderings": { + "0": { + "render": "This place is operated by {operator}", + "question": "Who operates this place?" + }, + "1": { + "question": "Does this place have a power supply?", + "mappings": { + "0": { + "then": "This place has a power supply" + }, + "1": { + "then": "This place does not have power supply" + } + } + } + } + }, + "charging_stations": { + "title": "Charging stations", + "shortDescription": "A worldwide map of charging stations", + "description": "On this open map, one can find and mark information about charging stations", + "layers": { + "0": { + "name": "Charging stations", + "title": { + "render": "Charging station" + }, + "description": "A charging station", + "tagRenderings": { + "5": { + "question": "When is this charging station opened?" + }, + "6": { + "render": "{network}", + "question": "What network of this charging station under?", + "mappings": { + "0": { + "then": "Not part of a bigger network" + }, + "1": { + "then": "AeroVironment" + }, + "2": { + "then": "Blink" + }, + "3": { + "then": "eVgo" + } + } + } + } + } + } + }, + "climbing": { + "title": "Open Climbing Map", + "description": "On this map you will find various climbing opportunities such as climbing gyms, bouldering halls and rocks in nature.", + "descriptionTail": "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.

", + "layers": { + "0": { + "name": "Climbing club", + "title": { + "render": "Climbing club", + "mappings": { + "0": { + "then": "Climbing NGO" + } + } + }, + "description": "A climbing club or organisations", + "tagRenderings": { + "0": { + "render": "{name}", + "question": "What is the name of this climbing club or NGO?" + } + }, + "presets": { + "0": { + "title": "Climbing club", + "description": "A climbing club" + }, + "1": { + "title": "Climbing NGO", + "description": "A NGO working around climbing" + } + } + }, + "1": { + "name": "Climbing gyms", + "title": { + "render": "Climbing gym", + "mappings": { + "0": { + "then": "Climbing gym {name}" + } + } + }, + "description": "A climbing gym", + "tagRenderings": { + "3": { + "render": "{name}", + "question": "What is the name of this climbing gym?" + } + } + }, + "2": { + "name": "Climbing routes", + "title": { + "render": "Climbing route", + "mappings": { + "0": { + "then": "Climbing route {name}" + } + } + }, + "tagRenderings": { + "3": { + "render": "{name}", + "question": "What is the name of this climbing route?", + "mappings": { + "0": { + "then": "This climbing route doesn't have a name" + } + } + }, + "4": { + "question": "How long is this climbing route (in meters)?", + "render": "This route is {canonical(climbing:length)} long" + }, + "5": { + "question": "What is the difficulty of this climbing route according to the french/belgian system?", + "render": "The difficulty is {climbing:grade:french} according to the french/belgian system" + }, + "6": { + "question": "How much bolts does this route have before reaching the moulinette?", + "render": "This route has {climbing:bolts} bolts", + "mappings": { + "0": { + "then": "This route is not bolted" + }, + "1": { + "then": "This route is not bolted" + } + } + }, + "8": { + "render": "The rock type is {_embedding_features_with_rock:rock} as stated on the surrounding crag" + } + }, + "presets": { + "0": { + "title": "Climbing route" + } + } + }, + "3": { + "name": "Climbing opportunities", + "title": { + "render": "Climbing opportunity", + "mappings": { + "0": { + "then": "Climbing crag {name}" + }, + "1": { + "then": "Climbing area {name}" + }, + "2": { + "then": "Climbing site" + }, + "3": { + "then": "Climbing opportunity {name}" + } + } + }, + "description": "A climbing opportunity", + "tagRenderings": { + "3": { + "render": "

Length overview

{histogram(_length_hist)}" + }, + "4": { + "render": "

Difficulties overview

{histogram(_difficulty_hist)}" + }, + "5": { + "render": "

Contains {_contained_climbing_routes_count} routes

    {_contained_climbing_routes}
" + }, + "6": { + "render": "{name}", + "question": "What is the name of this climbing opportunity?", + "mappings": { + "0": { + "then": "This climbing opportunity doesn't have a name" + } + } + }, + "7": { + "mappings": { + "0": { + "then": "A climbing boulder - a single rock or cliff with one or a few climbing routes which can be climbed safely without rope" + }, + "1": { + "then": "A climbing crag - a single rock or cliff with at least a few climbing routes" + } + } + }, + "8": { + "question": "What is the rock type here?", + "render": "The rock type is {rock}", + "mappings": { + "0": { + "then": "Limestone" + } + } + } + }, + "presets": { + "0": { + "title": "Climbing opportunity", + "description": "A climbing opportunity" + } + } + }, + "4": { + "name": "Climbing opportunities?", + "title": { + "render": "Climbing opportunity?" + }, + "description": "A climbing opportunity?", + "tagRenderings": { + "1": { + "render": "{name}" + }, + "2": { + "question": "Is climbing possible here?", + "mappings": { + "0": { + "then": "Climbing is not possible here" + }, + "1": { + "then": "Climbing is possible here" + }, + "2": { + "then": "Climbing is not possible here" + } + } + } + } + } + }, + "units": { + "0": { + "applicableUnits": { + "0": { + "human": " meter" + }, + "1": { + "human": " feet" + } + } + } + }, + "roamingRenderings": { + "0": { + "question": "Is there a (unofficial) website with more informations (e.g. topos)?" + }, + "1": { + "mappings": { + "0": { + "then": "The containing feature states that this is publicly accessible
{_embedding_feature:access:description}" + }, + "1": { + "then": "The containing feature states that a permit is needed to access
{_embedding_feature:access:description}" + }, + "2": { + "then": "The containing feature states that this is only accessible to customers
{_embedding_feature:access:description}" + }, + "3": { + "then": "The containing feature states that this is only accessible to club members
{_embedding_feature:access:description}" + } + } + }, + "2": { + "question": "Who can access here?", + "mappings": { + "0": { + "then": "Publicly accessible to anyone" + }, + "1": { + "then": "You need a permit to access here" + }, + "2": { + "then": "Only custumers" + }, + "3": { + "then": "Only club members" + } + } + }, + "4": { + "render": "The routes are {canonical(climbing:length)} long on average", + "question": "What is the (average) length of the routes in meters?" + }, + "5": { + "question": "What is the level of the easiest route here, accoring to the french classification system?", + "render": "The minimal difficulty is {climbing:grade:french:min} according to the french/belgian system" + }, + "6": { + "question": "What is the level of the most difficult route here, accoring to the french classification system?", + "render": "The maximal difficulty is {climbing:grade:french:max} according to the french/belgian system" + }, + "7": { + "question": "Is bouldering possible here?", + "mappings": { + "0": { + "then": "Bouldering is possible here" + }, + "1": { + "then": "Bouldering is not possible here" + }, + "2": { + "then": "Bouldering is possible, allthough there are only a few routes" + }, + "3": { + "then": "There are {climbing:boulder} boulder routes" + } + } + }, + "8": { + "question": "Is toprope climbing possible here?", + "mappings": { + "0": { + "then": "Toprope climbing is possible here" + }, + "1": { + "then": "Toprope climbing is not possible here" + }, + "2": { + "then": "There are {climbing:toprope} toprope routes" + } + } + }, + "9": { + "question": "Is sport climbing possible here on fixed anchors?", + "mappings": { + "0": { + "then": "Sport climbing is possible here" + }, + "1": { + "then": "Sport climbing is not possible here" + }, + "2": { + "then": "There are {climbing:sport} sport climbing routes" + } + } + }, + "10": { + "question": "Is traditional climbing possible here (using own gear e.g. chocks)?", + "mappings": { + "0": { + "then": "Traditional climbing is possible here" + }, + "1": { + "then": "Traditional climbing is not possible here" + }, + "2": { + "then": "There are {climbing:traditional} traditional climbing routes" + } + } + }, + "11": { + "question": "Is there a speed climbing wall?", + "mappings": { + "0": { + "then": "There is a speed climbing wall" + }, + "1": { + "then": "There is no speed climbing wall" + }, + "2": { + "then": "There are {climbing:speed} speed climbing walls" + } + } + } + } + }, + "fietsstraten": { + "title": "Cyclestreets", + "shortDescription": "A map of cyclestreets", + "description": "A cyclestreet is is a street where motorized traffic is not allowed to overtake cyclists. They are signposted by a special traffic sign. Cyclestreets can be found in the Netherlands and Belgium, but also in Germany and France. ", + "roamingRenderings": { + "0": { + "question": "Is this street a cyclestreet?", + "mappings": { + "0": { + "then": "This street is a cyclestreet (and has a speed limit of 30 km/h)" + }, + "1": { + "then": "This street is a cyclestreet" + }, + "2": { + "then": "This street will become a cyclstreet soon" + }, + "3": { + "then": "This street is not a cyclestreet" + } + } + }, + "1": { + "question": "When will this street become a cyclestreet?", + "render": "This street will become a cyclestreet at {cyclestreet:start_date}" + } + }, + "layers": { + "0": { + "name": "Cyclestreets", + "description": "A cyclestreet is a street where motorized traffic is not allowed to overtake a cyclist" + }, + "1": { + "name": "Future cyclestreet", + "description": "This street will become a cyclestreet soon", + "title": { + "render": "Future cyclestreet", + "mappings": { + "0": { + "then": "{name} will become a cyclestreet soon" + } + } + } + }, + "2": { + "name": "All streets", + "description": "Layer to mark any street as cyclestreet", + "title": { + "render": "Street" + } + } + } + }, + "cyclofix": { + "title": "Cyclofix - an open map for cyclists", + "description": "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." + }, + "drinking_water": { + "title": "Drinking Water", + "description": "On this map, publicly accessible drinking water spots are shown and can be easily added" + }, + "facadegardens": { + "title": "Facade gardens", + "shortDescription": "This map shows facade gardens with pictures and useful info about orientation, sunshine and plant types.", + "description": "Facade gardens, green facades and trees in the city not only bring peace and quiet, but also a more beautiful city, greater biodiversity, a cooling effect and better air quality.
Klimaan VZW and Mechelen Klimaatneutraal want to map existing and new facade gardens as an example for people who want to build their own garden or for city walkers who love nature.
More info about the project at klimaan.be.", + "layers": { + "0": { + "name": "Facade gardens", + "title": { + "render": "Facade garden" + }, + "description": "Facade gardens", + "tagRenderings": { + "1": { + "render": "Orientation: {direction} (where 0=N and 90=O)", + "question": "What is the orientation of the garden?" + }, + "2": { + "mappings": { + "0": { + "then": "The garden is in full sun" + }, + "1": { + "then": "The garden is in partial shade" + }, + "2": { + "then": "The sun is in the shade" + } + }, + "question": "Is the garden shaded or sunny?" + }, + "3": { + "question": "Is there a water barrel installed for the garden?", + "mappings": { + "0": { + "then": "There is a rain barrel" + }, + "1": { + "then": "There is no rain barrel" + } + } + }, + "4": { + "render": "Construction date of the garden: {start_date}", + "question": "When was the garden constructed? (a year is sufficient)" + }, + "5": { + "mappings": { + "0": { + "then": "There are edible plants" + }, + "1": { + "then": "There are no edible plants" + } + }, + "question": "Are there any edible plants?" + }, + "6": { + "question": "What kinds of plants grow here?", + "mappings": { + "0": { + "then": "There are vines" + }, + "1": { + "then": "There are flowering plants" + }, + "2": { + "then": "There are shrubs" + }, + "3": { + "then": "There are groundcovering plants" + } + } + }, + "7": { + "render": "More details: {description}", + "question": "Extra describing info about the garden (if needed and not yet described above)" + } + }, + "presets": { + "0": { + "title": "facade garden", + "description": "Add a facade garden" + } + } + } + } + }, + "fritures": { + "layers": { + "0": { + "tagRenderings": { + "1": { + "question": "What is the name of this friture?" + }, + "3": { + "render": "{website}", + "question": "What is the website of this shop?" + }, + "4": { + "question": "What is the phone number?" + }, + "8": { + "question": "If you bring your own container (such as a cooking pot and small pots), is it used to package your order?
", + "mappings": { + "0": { + "then": "You can bring your own containers to get your order, saving on single-use packaging material and thus waste" + }, + "1": { + "then": "Bringing your own container is not allowed" + }, + "2": { + "then": "You must bring your own container to order here." + } + } + } + } + } + } + }, + "ghostbikes": { + "title": "Ghost bikes", + "description": "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." + }, + "hailhydrant": { + "title": "Hydrants, Extinguishers, Fire stations, and Ambulance stations.", + "shortDescription": "Map to show hydrants, extinguishers, fire stations, and ambulance stations.", + "description": "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.", + "layers": { + "0": { + "name": "Map of hydrants", + "title": { + "render": "Hydrant" + }, + "description": "Map layer to show fire hydrants.", + "tagRenderings": { + "0": { + "question": "What color is the hydrant?", + "render": "The hydrant color is {colour}", + "mappings": { + "0": { + "then": "The hydrant color is unknown." + }, + "1": { + "then": "The hydrant color is yellow." + }, + "2": { + "then": "The hydrant color is red." + } + } + }, + "1": { + "question": "What type of hydrant is it?", + "render": " Hydrant type: {fire_hydrant:type}", + "mappings": { + "0": { + "then": "The hydrant type is unknown." + }, + "1": { + "then": " Pillar type." + }, + "2": { + "then": " Pipe type." + }, + "3": { + "then": " Wall type." + }, + "4": { + "then": " Underground type." + } + } + }, + "2": { + "question": "Update the lifecycle status of the hydrant.", + "render": "Lifecycle status", + "mappings": { + "0": { + "then": "The hydrant is (fully or partially) working." + }, + "1": { + "then": "The hydrant is unavailable." + }, + "2": { + "then": "The hydrant has been removed." + } + } + } + }, + "presets": { + "0": { + "title": "Fire hydrant", + "description": "A hydrant is a connection point where firefighters can tap water. It might be located underground." + } + } + }, + "1": { + "name": "Map of fire extinguishers.", + "title": { + "render": "Extinguishers" + }, + "description": "Map layer to show fire hydrants.", + "tagRenderings": { + "0": { + "render": "Location: {location}", + "question": "Where is it positioned?", + "mappings": { + "0": { + "then": "Found indoors." + }, + "1": { + "then": "Found outdoors." + } + } + } + }, + "presets": { + "0": { + "title": "Fire extinguisher", + "description": "A fire extinguisher is a small, portable device used to stop a fire" + } + } + }, + "2": { + "name": "Map of fire stations", + "title": { + "render": "Fire Station" + }, + "description": "Map layer to show fire stations.", + "tagRenderings": { + "0": { + "question": "What is the name of this fire station?", + "render": "This station is called {name}." + }, + "1": { + "question": " What is the street name where the station located?", + "render": "This station is along a highway called {addr:street}." + }, + "2": { + "question": "Where is the station located? (e.g. name of neighborhood, villlage, or town)", + "render": "This station is found within {addr:place}." + }, + "3": { + "question": "What agency operates this station?", + "render": "This station is operated by {operator}.", + "mappings": { + "0": { + "then": "Bureau of Fire Protection" + } + } + }, + "4": { + "question": "How is the station operator classified?", + "render": "The operator is a(n) {operator:type} entity.", + "mappings": { + "0": { + "then": "The station is operated by the government." + }, + "1": { + "then": "The station is operated by a community-based, or informal organization." + }, + "2": { + "then": "The station is operated by a formal group of volunteers." + }, + "3": { + "then": "The station is privately operated." + } + } + } + }, + "presets": { + "0": { + "title": "Fire station", + "description": "A fire station is a place where the fire trucks and firefighters are located when not in operation." + } + } + }, + "3": { + "name": "Map of ambulance stations", + "title": { + "render": "Ambulance Station" + }, + "description": "An ambulance station is an area for storage of ambulance vehicles, medical equipment, personal protective equipment, and other medical supplies.", + "tagRenderings": { + "0": { + "question": "What is the name of this ambulance station?", + "render": "This station is called {name}." + }, + "1": { + "question": " What is the street name where the station located?", + "render": "This station is along a highway called {addr:street}." + }, + "2": { + "question": "Where is the station located? (e.g. name of neighborhood, villlage, or town)", + "render": "This station is found within {addr:place}." + }, + "3": { + "question": "What agency operates this station?", + "render": "This station is operated by {operator}." + }, + "4": { + "question": "How is the station operator classified?", + "render": "The operator is a(n) {operator:type} entity.", + "mappings": { + "0": { + "then": "The station is operated by the government." + }, + "1": { + "then": "The station is operated by a community-based, or informal organization." + }, + "2": { + "then": "The station is operated by a formal group of volunteers." + }, + "3": { + "then": "The station is privately operated." + } + } + } + }, + "presets": { + "0": { + "title": "Ambulance station", + "description": "Add an ambulance station to the map" + } + } + } + } + }, + "maps": { + "title": "A map of maps", + "shortDescription": "This theme shows all (touristic) maps that OpenStreetMap knows of", + "description": "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." + }, + "natuurpunt": { + "title": "Nature Reserves", + "shortDescription": "This map shows the nature reserves of Natuurpunt", + "description": "On this map you can find all the nature reserves that Natuurpunt offers " + }, + "openwindpowermap": { + "title": "OpenWindPowerMap", + "description": "A map for showing and editing wind turbines.", + "layers": { + "0": { + "name": "wind turbine", + "title": { + "render": "wind turbine", + "mappings": { + "0": { + "then": "{name}" + } + } + }, + "tagRenderings": { + "0": { + "render": "The power output of this wind turbine is {generator:output:electricity}.", + "question": "What is the power output of this wind turbine? (e.g. 2.3 MW)" + }, + "1": { + "render": "This wind turbine is operated by {operator}.", + "question": "Who operates this wind turbine?" + }, + "2": { + "render": "The total height (including rotor radius) of this wind turbine is {height} metres.", + "question": "What is the total height of this wind turbine (including rotor radius), in metres?" + }, + "3": { + "render": "The rotor diameter of this wind turbine is {rotor:diameter} metres.", + "question": "What is the rotor diameter of this wind turbine, in metres?" + }, + "4": { + "render": "This wind turbine went into operation on/in {start_date}.", + "question": "When did this wind turbine go into operation?" + } + }, + "presets": { + "0": { + "title": "wind turbine" + } + } + } + }, + "units": { + "0": { + "applicableUnits": { + "0": { + "human": " megawatts" + }, + "1": { + "human": " kilowatts" + }, + "2": { + "human": " watts" + }, + "3": { + "human": " gigawatts" + } + } + } + } + }, + "personal": { + "title": "Personal theme", + "description": "Create a personal theme based on all the available layers of all themes" + }, + "playgrounds": { + "title": "Playgrounds", + "shortDescription": "A map with playgrounds", + "description": "On this map, you find playgrounds and can add more information" + }, + "shops": { + "title": "Open Shop Map", + "shortDescription": "An editable map with basic shop information", + "description": "On this map, one can mark basic information about shops, add opening hours and phone numbers", + "layers": { + "0": { + "name": "Shop", + "title": { + "render": "Shop", + "mappings": { + "0": { + "then": "{name}" + }, + "1": { + "then": "{shop}" + } + } + }, + "description": "A shop", + "tagRenderings": { + "1": { + "question": "What is the name of this shop?" + }, + "2": { + "render": "This shop sells {shop}", + "question": "What does this shop sell?", + "mappings": { + "0": { + "then": "Convenience store" + }, + "1": { + "then": "Supermarket" + }, + "2": { + "then": "Clothing store" + }, + "3": { + "then": "Hairdresser" + }, + "4": { + "then": "Bakery" + }, + "5": { + "then": "Car repair (garage)" + }, + "6": { + "then": "Car dealer" + } + } + }, + "3": { + "render": "{phone}", + "question": "What is the phone number?" + }, + "4": { + "render": "{website}", + "question": "What is the website of this shop?" + }, + "5": { + "render": "{email}", + "question": "What is the email address of this shop?" + }, + "6": { + "render": "{opening_hours_table(opening_hours)}", + "question": "What are the opening hours of this shop?" + } + }, + "presets": { + "0": { + "title": "Shop", + "description": "Add a new shop" + } + } + } + } + }, + "sport_pitches": { + "title": "Sport pitches", + "shortDescription": "A map showing sport pitches", + "description": "A sport pitch is an area where sports are played" + }, + "surveillance": { + "title": "Surveillance under Surveillance", + "shortDescription": "Surveillance cameras and other means of surveillance", + "description": "On this open map, you can find surveillance cameras." + }, + "toilets": { + "title": "Open Toilet Map", + "description": "A map of public toilets" + }, + "trees": { + "title": "Trees", + "shortDescription": "Map all the trees", + "description": "Map all the trees!" + }, + "waste_basket": { + "title": "Waste Basket", + "shortDescription": "Throw away waste", + "description": "This is a public waste basket, thrash can, where you can throw away your thrash.", + "layers": { + "0": { + "name": "Waste Basket", + "title": { + "render": "Waste Basket" + }, + "description": "This is a public waste basket, thrash can, where you can throw away your thrash.", + "iconSize": { + "mappings": { + "0": { + "then": "Waste Basket" + } + } + }, + "presets": { + "0": { + "title": "Waste Basket", + "description": "Throw away waste" + } + } + } + } + } } \ No newline at end of file diff --git a/langs/themes/eo.json b/langs/themes/eo.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/langs/themes/eo.json @@ -0,0 +1 @@ +{} diff --git a/langs/themes/fi.json b/langs/themes/fi.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/langs/themes/fi.json @@ -0,0 +1 @@ +{} diff --git a/langs/themes/nl.json b/langs/themes/nl.json index 0086e2f343..ece1f70f2b 100644 --- a/langs/themes/nl.json +++ b/langs/themes/nl.json @@ -1,1022 +1,1166 @@ { - "aed": { - "title": "Open AED-kaart", - "description": "Op deze kaart kan je informatie over AEDs vinden en verbeteren" - }, - "aed_brugge": { - "title": "Open AED-kaart - Brugge edition", - "description": "Op deze kaart kan je informatie over AEDs vinden en verbeteren + een export van de brugse defibrillatoren" - }, - "artworks": { - "title": "Kunstwerkenkaart", - "description": "Welkom op de Open Kunstwerken Kaart", - "layers": { + "aed": { + "title": "Open AED-kaart", + "description": "Op deze kaart kan je informatie over AEDs vinden en verbeteren" + }, + "aed_brugge": { + "title": "Open AED-kaart - Brugge edition", + "description": "Op deze kaart kan je informatie over AEDs vinden en verbeteren + een export van de brugse defibrillatoren" + }, + "artworks": { + "title": "Kunstwerkenkaart", + "description": "Welkom op de Open Kunstwerken Kaart", + "layers": { + "0": { + "name": "Kunstwerken", + "title": { + "render": "Kunstwerk", + "mappings": { "0": { - "name": "Kunstwerken", - "title": { - "render": "Kunstwerk", - "mappings": { - "0": { - "then": "Kunstwerk {name}" - } - } - }, - "description": "Verschillende soorten kunstwerken", - "presets": { - "0": { - "title": "Kunstwerk" - } - }, - "tagRenderings": { - "1": { - "render": "Dit is een {artwork_type}", - "question": "Wat voor soort kunstwerk is dit?", - "mappings": { - "0": { - "then": "Architectuur" - }, - "1": { - "then": "Muurschildering" - }, - "2": { - "then": "Schilderij" - }, - "3": { - "then": "Beeldhouwwerk" - }, - "4": { - "then": "Standbeeld" - }, - "5": { - "then": "Buste" - }, - "6": { - "then": "Steen" - }, - "7": { - "then": "Installatie" - }, - "8": { - "then": "Graffiti" - }, - "9": { - "then": "Reliëf" - }, - "10": { - "then": "Azulejo (Spaanse siertegels)" - }, - "11": { - "then": "Tegelwerk" - } - } - }, - "2": { - "question": "Welke artist creëerde dit kunstwerk?", - "render": "Gecreëerd door {artist_name}" - }, - "3": { - "question": "Op welke website kan men meer informatie vinden over dit kunstwerk?", - "render": "Meer informatie op deze website" - }, - "4": { - "question": "Welk Wikidata-item beschrijft dit kunstwerk?", - "render": "Komt overeen met {wikidata}" - } - } - } - } - }, - "benches": { - "title": "Zitbanken", - "shortDescription": "Een kaart met zitbanken", - "description": "Deze kaart toont alle zitbanken die in OpenStreetMap gekend zijn: individuele banken en banken bij bushaltes. Met een OpenStreetMap-account can je informatie verbeteren en nieuwe zitbanken in toevoegen." - }, - "bicyclelib": { - "title": "Fietsbibliotheken", - "description": "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." - }, - "bike_monitoring_stations": { - "title": "Fietstelstations", - "shortDescription": "Fietstelstations met live data van Brussels Mobiliteit", - "description": "Dit thema toont fietstelstations met live data" - }, - "bookcases": { - "title": "Open Boekenruilkastenkaart", - "description": "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" - }, - "buurtnatuur": { - "title": "Breng jouw buurtnatuur in kaart", - "shortDescription": "Met deze tool kan je natuur in je buurt in kaart brengen en meer informatie geven over je favoriete plekje", - "description": "logo-groenmeld je aan voor e-mailupdates.", - "descriptionTail": "

Tips

  • Over groen ingekleurde gebieden weten we alles wat we willen weten.
  • Bij rood ingekleurde gebieden ontbreekt nog heel wat info: klik een gebied aan en beantwoord de vragen.
  • Je kan altijd een vraag overslaan als je het antwoord niet weet of niet zeker bent
  • Je kan altijd een foto toevoegen
  • Je kan ook zelf een gebied toevoegen door op de kaart te klikken
  • Open buurtnatuur.be op je smartphone om al wandelend foto's te maken en vragen te beantwoorden

De oorspronkelijke data komt van OpenStreetMap en je antwoorden worden daar bewaard.
Omdat iedereen vrij kan meewerken aan dit project, kunnen we niet garanderen dat er geen fouten opduiken.Kan je hier niet aanpassen wat je wilt, dan kan je dat zelf via OpenStreetMap.org doen. Groen kan geen enkele verantwoordelijkheid nemen over de kaart.

Je privacy is belangrijk. We tellen wel hoeveel gebruikers deze website bezoeken. We plaatsen een cookie waar geen persoonlijke informatie in bewaard wordt. Als je inlogt, komt er een tweede cookie bij met je inloggegevens.
", - "layers": { - "0": { - "name": "Natuurgebied", - "title": { - "render": "Natuurgebied", - "mappings": { - "0": { - "then": "{name:nl}" - }, - "1": { - "then": "{name}" - } - } - }, - "description": "Een natuurgebied is een gebied waar actief ruimte gemaakt word voor de natuur. Typisch zijn deze in beheer van Natuurpunt of het Agentschap Natuur en Bos of zijn deze erkend door de overheid.", - "presets": { - "0": { - "title": "Natuurreservaat", - "description": "Voeg een ontbrekend, erkend natuurreservaat toe, bv. een gebied dat beheerd wordt door het ANB of natuurpunt" - } - } - }, - "1": { - "name": "Park", - "title": { - "render": "Park", - "mappings": { - "0": { - "then": "{name:nl}" - }, - "1": { - "then": "{name}" - } - } - }, - "description": "Een park is een publiek toegankelijke, groene ruimte binnen de stad. Ze is typisch ingericht voor recreatief gebruik, met (verharde) wandelpaden, zitbanken, vuilnisbakken, een gezellig vijvertje, ...", - "presets": { - "0": { - "title": "Park", - "description": "Voeg een ontbrekend park toe" - } - } - }, - "2": { - "name": "Bos", - "title": { - "render": "Bos", - "mappings": { - "0": { - "then": "{name:nl}" - }, - "1": { - "then": "{name}" - } - } - }, - "description": "Een bos is een verzameling bomen, al dan niet als productiehout.", - "presets": { - "0": { - "title": "Bos", - "description": "Voeg een ontbrekend bos toe aan de kaart" - } - } + "then": "Kunstwerk {name}" } + } }, - "roamingRenderings": { - "0": { - "render": "De toegankelijkheid van dit gebied is: {access:description}", - "question": "Is dit gebied toegankelijk?", - "mappings": { - "0": { - "then": "Dit gebied is vrij toegankelijk" - }, - "1": { - "then": "Vrij toegankelijk" - }, - "2": { - "then": "Niet toegankelijk" - }, - "3": { - "then": "Niet toegankelijk, want privégebied" - }, - "4": { - "then": "Toegankelijk, ondanks dat het privegebied is" - }, - "5": { - "then": "Enkel toegankelijk met een gids of tijdens een activiteit" - }, - "6": { - "then": "Toegankelijk mits betaling" - } - } - }, - "1": { - "render": "Beheer door {operator}", - "question": "Wie beheert dit gebied?", - "mappings": { - "1": { - "then": "Dit gebied wordt beheerd door Natuurpunt" - }, - "2": { - "then": "Dit gebied wordt beheerd door {operator}" - }, - "3": { - "then": "Dit gebied wordt beheerd door het Agentschap Natuur en Bos" - } - } - }, - "2": { - "render": "Extra info: {description}" - }, - "3": { - "render": "Extra info via buurtnatuur.be: {description:0}" - }, - "4": { - "render": "Dit gebied heet {name:nl}", - "question": "Wat is de Nederlandstalige naam van dit gebied?" - }, - "5": { - "render": "Dit gebied heet {name}", - "question": "Wat is de naam van dit gebied?", - "mappings": { - "0": { - "then": "Dit gebied heeft geen naam" - } - } - } - } - }, - "campersite": { - "title": "Kampeersite", - "shortDescription": "Vind locaties waar je de nacht kan doorbrengen met je mobilehome" - }, - "climbing": { - "title": "Open Klimkaart", - "description": "Op deze kaart vind je verschillende klimgelegenheden, zoals klimzalen, bolderzalen en klimmen in de natuur", - "descriptionTail": "De Open Klimkaart is oorspronkelijk gemaakt door Christian Neumann op kletterspots.de.", - "layers": { - "0": { - "name": "Klimclub", - "title": { - "render": "Klimclub", - "mappings": { - "0": { - "then": "Klimorganisatie" - } - } - }, - "description": "Een klimclub of organisatie", - "tagRenderings": { - "0": { - "render": "{name}", - "question": "Wat is de naam van deze klimclub?" - } - }, - "presets": { - "0": { - "title": "Klimclub", - "description": "Een klimclub" - }, - "1": { - "title": "Een klimorganisatie", - "description": "Een VZW die werkt rond klimmen" - } - } - }, - "1": { - "name": "Klimzalen", - "title": { - "render": "Klimzaal", - "mappings": { - "0": { - "then": "Klimzaal {name}" - } - } - }, - "tagRenderings": { - "3": { - "render": "{name}", - "question": "Wat is de naam van dit Klimzaal?" - } - } - }, - "2": { - "name": "Klimroute", - "title": { - "render": "Klimroute", - "mappings": { - "0": { - "then": "Klimroute {name}" - } - } - }, - "tagRenderings": { - "3": { - "render": "{name}", - "question": "Hoe heet deze klimroute?", - "mappings": { - "0": { - "then": "Deze klimroute heeft geen naam" - } - } - }, - "4": { - "question": "Hoe lang is deze klimroute (in meters)?", - "render": "Deze klimroute is {canonical(climbing:length)} lang" - }, - "5": { - "question": "Hoe moeilijk is deze klimroute volgens het Franse/Belgische systeem?", - "render": "De klimmoeilijkheid is {climbing:grade:french} volgens het Franse/Belgische systeem" - } - } - }, - "3": { - "name": "Klimgelegenheden", - "title": { - "render": "Klimgelegenheid", - "mappings": { - "1": { - "then": "Klimsite {name}" - }, - "2": { - "then": "Klimsite" - }, - "3": { - "then": "Klimgelegenheid {name}" - } - } - }, - "description": "Een klimgelegenheid", - "tagRenderings": { - "6": { - "render": "{name}", - "question": "Wat is de naam van dit Klimgelegenheid?", - "mappings": { - "0": { - "then": "Dit Klimgelegenheid heeft geen naam" - } - } - }, - "8": { - "mappings": { - "0": { - "then": "Kalksteen" - } - } - } - }, - "presets": { - "0": { - "title": "Klimgelegenheid", - "description": "Een klimgelegenheid" - } - } - }, - "4": { - "name": "Klimgelegenheiden?", - "title": { - "render": "Klimgelegenheid?" - }, - "description": "Een klimgelegenheid?", - "tagRenderings": { - "2": { - "mappings": { - "0": { - "then": "Klimmen is hier niet mogelijk" - }, - "1": { - "then": "Klimmen is hier niet toegelaten" - }, - "2": { - "then": "Klimmen is hier niet toegelaten" - } - } - } - } - } + "description": "Verschillende soorten kunstwerken", + "presets": { + "0": { + "title": "Kunstwerk" + } }, - "units": { - "0": { - "applicableUnits": { - "0": { - "human": " meter" - }, - "1": { - "human": " voet" - } - } - } - }, - "roamingRenderings": { - "0": { - "question": "Is er een (onofficiële) website met meer informatie (b.v. met topos)?" - }, - "1": { - "mappings": { - "0": { - "then": "Een omvattend element geeft aan dat dit publiek toegangkelijk is
{_embedding_feature:access:description}" - }, - "1": { - "then": "Een omvattend element geeft aan dat een toelating nodig is om hier te klimmen
{_embedding_feature:access:description}" - } - } - }, - "4": { - "render": "De klimroutes zijn gemiddeld {canonical(climbing:length)} lang", - "question": "Wat is de (gemiddelde) lengte van de klimroutes, in meter?" - }, - "5": { - "question": "Wat is het niveau van de makkelijkste route, volgens het Franse classificatiesysteem?", - "render": "De minimale klimmoeilijkheid is {climbing:grade:french:min} volgens het Franse/Belgische systeem" - }, - "6": { - "question": "Wat is het niveau van de moeilijkste route, volgens het Franse classificatiesysteem?", - "render": "De maximale klimmoeilijkheid is {climbing:grade:french:max} volgens het Franse/Belgische systeem" - }, - "7": { - "question": "Is het mogelijk om hier te bolderen?", - "mappings": { - "0": { - "then": "Bolderen kan hier" - }, - "1": { - "then": "Bolderen kan hier niet" - }, - "2": { - "then": "Bolderen kan hier, maar er zijn niet zoveel routes" - }, - "3": { - "then": "Er zijn hier {climbing:boulder} bolderroutes" - } - } - }, - "8": { - "question": "Is het mogelijk om hier te toprope-klimmen?", - "mappings": { - "0": { - "then": "Toprope-klimmen kan hier" - }, - "1": { - "then": "Toprope-klimmen kan hier niet" - }, - "2": { - "then": "Er zijn hier {climbing:toprope} toprope routes" - } - } - }, - "9": { - "question": "Is het mogelijk om hier te sportklimmen/voorklimmen op reeds aangebrachte haken?", - "mappings": { - "0": { - "then": "Sportklimmen/voorklimmen kan hier" - }, - "1": { - "then": "Sportklimmen/voorklimmen kan hier niet" - }, - "2": { - "then": "Er zijn hier {climbing:sport} sportklimroutes/voorklimroutes" - } - } - }, - "10": { - "question": "Is het mogelijk om hier traditioneel te klimmen?
(Dit is klimmen met klemblokjes en friends)", - "mappings": { - "0": { - "then": "Traditioneel klimmen kan hier" - }, - "1": { - "then": "Traditioneel klimmen kan hier niet" - }, - "2": { - "then": "Er zijn hier {climbing:traditional} traditionele klimroutes" - } - } - }, - "11": { - "question": "Is er een snelklimmuur (speed climbing)?", - "mappings": { - "0": { - "then": "Er is een snelklimmuur voor speed climbing" - }, - "1": { - "then": "Er is geen snelklimmuur voor speed climbing" - }, - "2": { - "then": "Er zijn hier {climbing:speed} snelklimmuren" - } - } - } - } - }, - "fietsstraten": { - "title": "Fietsstraten", - "shortDescription": "Een kaart met alle gekende fietsstraten", - "description": "Een fietsstraat is een straat waar
  • automobilisten geen fietsers mogen inhalen
  • Er een maximumsnelheid van 30km/u geldt
  • Fietsers gemotoriseerde voortuigen 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.", - "roamingRenderings": { - "0": { - "question": "Is deze straat een fietsstraat?", - "mappings": { - "0": { - "then": "Deze straat is een fietsstraat (en dus zone 30)" - }, - "1": { - "then": "Deze straat is een fietsstraat" - }, - "2": { - "then": "Deze straat wordt binnenkort een fietsstraat" - }, - "3": { - "then": "Deze straat is geen fietsstraat" - } - } - }, - "1": { - "question": "Wanneer wordt deze straat een fietsstraat?", - "render": "Deze straat wordt fietsstraat op {cyclestreet:start_date}" - } - }, - "layers": { - "0": { - "name": "Fietsstraten", - "description": "Een fietsstraat is een straat waar gemotoriseerd verkeer een fietser niet mag inhalen." - }, - "1": { - "name": "Toekomstige fietsstraat", - "description": "Deze straat wordt binnenkort een fietsstraat", - "title": { - "render": "Toekomstige fietsstraat", - "mappings": { - "0": { - "then": "{name} wordt fietsstraat" - } - } - } - }, - "2": { - "name": "Alle straten", - "description": "Laag waar je een straat als fietsstraat kan markeren", - "title": { - "render": "Straat" - } - } - } - }, - "cyclofix": { - "title": "Cyclofix - een open kaart voor fietsers", - "description": "Het doel van deze kaart is om fietsers een gebruiksvriendelijke oplossing te bieden voor het vinden van de juiste infrastructuur voor hun behoeften.

U kunt uw exacte locatie volgen (enkel mobiel) en in de linkerbenedenhoek categorieën selecteren die voor u relevant zijn. U kunt deze tool ook gebruiken om 'spelden' aan de kaart toe te voegen of te bewerken en meer gegevens te verstrekken door de vragen te beantwoorden.

Alle wijzigingen die u maakt worden automatisch opgeslagen in de wereldwijde database van OpenStreetMap en kunnen door anderen vrij worden hergebruikt.

Bekijk voor meer info over cyclofix ook cyclofix.osm.be." - }, - "drinking_water": { - "title": "Drinkwaterpunten", - "description": "Op deze kaart staan publiek toegankelijke drinkwaterpunten en kan je makkelijk een nieuw drinkwaterpunt toevoegen" - }, - "facadegardens": { - "title": "Straatgeveltuintjes", - "shortDescription": "Deze kaart toont geveltuintjes met foto's en bruikbare info over oriëntatie, zonlicht en planttypes.", - "description": "Ontharde voortuintjes, groene gevels en bomen ín de stad brengen naast rust ook een mooiere stad, een grotere biodiversiteit, een verkoelend effect en een betere luchtkwaliteit.
Klimaan VZW en 'Mechelen Klimaatneutraal' willen met het project Klim(t)aan je Gevel bestaande en nieuwe geveltuintjes in kaart brengen als voorbeeld voor mensen zelf een tuintje willen aanleggen of voor stadwandelaars die houden van de natuur.
Meer info over het project op klimaan.be.", - "layers": { - "0": { - "name": "Geveltuintjes", - "title": { - "render": "Geveltuintje" - }, - "description": "Geveltuintjes", - "tagRenderings": { - "1": { - "render": "Oriëntatie: {direction} (waarbij 0=N en 90=O)", - "question": "Hoe is de tuin georiënteerd?" - }, - "2": { - "mappings": { - "0": { - "then": "Het is een volle zon tuintje" - }, - "1": { - "then": "Het is een halfschaduw tuintje" - }, - "2": { - "then": "Het is een schaduw tuintje" - } - }, - "question": "Ligt de tuin in zon/half schaduw of schaduw?" - }, - "3": { - "question": "Is er een regenton voorzien bij het tuintje?", - "mappings": { - "0": { - "then": "Er is een regenton" - }, - "1": { - "then": "Er is geen regenton" - } - } - }, - "4": { - "render": "Aanlegdatum van de tuin: {start_date}", - "question": "Wanneer werd de tuin aangelegd? (vul gewoon een jaartal in)" - }, - "5": { - "mappings": { - "0": { - "then": "Er staan eetbare planten" - }, - "1": { - "then": "Er staan geen eetbare planten" - } - }, - "question": "Staan er eetbare planten?" - }, - "6": { - "question": "Wat voor planten staan hier?", - "mappings": { - "0": { - "then": "Er staat een klimplant" - }, - "1": { - "then": "Er staan bloeiende planten" - }, - "2": { - "then": "Er staan struiken" - }, - "3": { - "then": "Er staan bodembedekkers" - } - } - }, - "7": { - "render": "Meer details: {description}", - "question": "Aanvullende omschrijving van de tuin (indien nodig, en voor zover nog niet omschreven hierboven)" - } - }, - "presets": { - "0": { - "title": "geveltuintje", - "description": "Voeg geveltuintje toe" - } - } - } - } - }, - "fritures": { - "title": "Friturenkaart", - "description": "Op deze kaart vind je je favoriete frituur!", - "layers": { - "0": { - "name": "Frituren", - "title": { - "render": "Frituur", - "mappings": { - "0": { - "then": " {name}" - } - } - }, - "tagRenderings": { - "1": { - "render": "{name}", - "question": "Wat is de naam van deze frituur?" - }, - "2": { - "render": "

Openingsuren

{opening_hours_table(opening_hours)}", - "question": "Wat zijn de openinguren van deze frituur?" - }, - "3": { - "question": "Wat is de website van deze frituur?" - }, - "4": { - "render": "{phone}", - "question": "Wat is het telefoonnummer van deze frituur?" - }, - "5": { - "question": "Heeft deze frituur vegetarische snacks?", - "mappings": { - "0": { - "then": "Er zijn vegetarische snacks aanwezig" - }, - "1": { - "then": "Slechts enkele vegetarische snacks" - }, - "2": { - "then": "Geen vegetarische snacks beschikbaar" - } - } - }, - "6": { - "question": "Heeft deze frituur veganistische snacks?", - "mappings": { - "0": { - "then": "Er zijn veganistische snacks aanwezig" - }, - "1": { - "then": "Slechts enkele veganistische snacks" - }, - "2": { - "then": "Geen veganistische snacks beschikbaar" - } - } - }, - "7": { - "question": "Bakt deze frituur in dierlijk vetof plantaardig olie?", - "mappings": { - "0": { - "then": "Plantaardige olie" - }, - "1": { - "then": "Dierlijk vet" - } - } - }, - "8": { - "question": "Als je je eigen container (bv. kookpot of kleine potjes voor saus) meeneemt, gebruikt de frituur deze dan om je bestelling in te doen?", - "mappings": { - "0": { - "then": "Je mag je eigen containers meenemen om je bestelling in mee te nemen en zo minder afval te maken" - }, - "1": { - "then": "Je mag geen eigen containers meenemen om je bestelling in mee te nemen" - }, - "2": { - "then": "Je moet je eigen containers meenemen om je bestelling in mee te nemen." - } - } - } - }, - "presets": { - "0": { - "title": "Frituur" - } - } - } - } - }, - "boomgaarden": { - "title": "Open Boomgaardenkaart", - "shortDescription": "Boomgaarden en fruitbomen", - "description": "Op deze kaart vindt je boomgaarden en fruitbomen", - "layers": { - "0": { - "name": "Boomgaarden", - "title": { - "render": "Boomgaard" - }, - "presets": { - "0": { - "title": "Boomgaard", - "description": "Voeg een boomgaard toe (als punt - omtrek nog te tekenen)" - } - } - }, - "1": { - "name": "Boom", - "title": { - "render": "Boom" - }, - "description": "Een boom", - "tagRenderings": { - "0": { - "render": "De soort is {species:nl}", - "question": "Wat is de soort van deze boom (in het Nederlands)?" - }, - "1": { - "render": "Het ras (taxon) van deze boom is {taxon}", - "question": "Wat is het taxon (ras) van deze boom?" - }, - "2": { - "render": "Beschrijving: {description}", - "question": "Welke beschrijving past bij deze boom?" - }, - "3": { - "render": "Referentienummer: {ref}", - "question": "Is er een refernetienummer?" - } - }, - "presets": { - "0": { - "title": "Boom", - "description": "Voeg hier een boom toe" - } - } - } - } - }, - "ghostbikes": { - "title": "Witte Fietsen", - "description": "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." - }, - "grb": { - "title": "GRB Fixup", - "shortDescription": "Grb Fixup", - "description": "GRB Fixup", - "layers": { - "0": { - "name": "Fixmes op gebouwen", - "title": { - "render": "{addr:street} {addr:housenumber}", - "mappings": { - "0": { - "then": "{fixme}" - } - } - }, - "description": "Dit gebouw heeft een foutmelding", - "tagRenderings": { - "0": { - "render": "Het huisnummer is {addr:housenumber}", - "question": "Wat is het huisnummer?", - "mappings": { - "0": { - "then": "Geen huisnummer" - } - } - }, - "1": { - "render": "De wooneenheid-aanduiding is {addr:unit} " - }, - "2": { - "render": "De straat is {addr:street}", - "question": "Wat is de straat?" - }, - "3": { - "render": "De fixme is {fixme}", - "question": "Wat zegt de fixme?", - "mappings": { - "0": { - "then": "Geen fixme" - } - } - }, - "4": { - "render": "Dit gebouw begint maar op de {building:min_level} verdieping", - "question": "Hoeveel verdiepingen ontbreken?" - } - } - } - } - }, - "maps": { - "title": "Een kaart met Kaarten", - "shortDescription": "Een kaart met alle kaarten die OpenStreetMap kent", - "description": "Op deze kaart kan je alle kaarten zien die OpenStreetMap kent.

Ontbreekt er een kaart, dan kan je die kaart hier ook gemakelijk aan deze kaart toevoegen." - }, - "nature": { - "title": "De Natuur in", - "shortDescription": "Deze kaart bevat informatie voor natuurliefhebbers", - "description": "Op deze kaart vind je informatie voor natuurliefhebbers, zoals info over het natuurgebied waar je inzit, vogelkijkhutten, informatieborden, ..." - }, - "natuurpunt": { - "title": "Natuurgebieden", - "shortDescription": "Deze kaart toont de natuurgebieden van Natuurpunt", - "description": "Op deze kaart vind je alle natuurgebieden die Natuurpunt ter beschikking stelt" - }, - "personal": { - "title": "Persoonlijk thema", - "description": "Stel je eigen thema samen door lagen te combineren van alle andere themas" - }, - "play_forests": { - "title": "Speelbossen", - "shortDescription": "Deze kaart toont speelbossen", - "description": "Een speelbos is een zone in een bos die vrij toegankelijk is voor spelende kinderen. Deze wordt in bossen van het Agentschap Natuur en bos altijd aangeduid met het overeenkomstige bord." - }, - "playgrounds": { - "title": "Speelplekken", - "shortDescription": "Een kaart met speeltuinen", - "description": "Op deze kaart vind je speeltuinen en kan je zelf meer informatie en foto's toevoegen" - }, - "speelplekken": { - "title": "Welkom bij de groendoener!", - "shortDescription": "Speelplekken in de Antwerpse Zuidrand", - "description": "

Welkom bij de Groendoener!

De Zuidrand dat is spelen, ravotten, chillen, wandelen,… in het groen. Meer dan 200 grote en kleine speelplekken liggen er in parken, in bossen en op pleintjes te wachten om ontdekt te worden. De verschillende speelplekken werden getest én goedgekeurd door kinder- en jongerenreporters uit de Zuidrand. Met leuke challenges dagen de reporters jou uit om ook op ontdekking te gaan. Klik op een speelplek op de kaart, bekijk het filmpje en ga op verkenning!

Het project groendoener kadert binnen het strategisch project Beleefbare Open Ruimte in de Antwerpse Zuidrand en is een samenwerking tussen het departement Leefmilieu van provincie Antwerpen, Sportpret vzw, een OpenStreetMap-België Consultent en Createlli vzw. Het project kwam tot stand met steun van Departement Omgeving van de Vlaamse Overheid.
", - "layers": { - "7": { - "name": "Wandelroutes van provincie Antwerpen", - "tagRenderings": { - "0": { - "render": "Deze wandeling is {_length:km}km lang" - }, - "1": { - "mappings": { - "0": { - "then": "Dit is een internationale wandelroute" - }, - "1": { - "then": "Dit is een nationale wandelroute" - }, - "2": { - "then": "Dit is een regionale wandelroute" - }, - "3": { - "then": "Dit is een lokale wandelroute" - } - } - }, - "2": { - "render": "

Korte beschrijving:

{description}" - }, - "3": { - "question": "Wie beheert deze wandeling en plaatst dus de signalisatiebordjes?" - }, - "4": { - "question": "Naar wie kan men emailen bij problemen rond signalisatie?", - "render": "Bij problemen met signalisatie kan men emailen naar {operator:email}" - } - } - } - } - }, - "speelplekken_temp": { - "title": "Speelplekken in de Antwerpse Zuidrand", - "shortDescription": "Speelplekken in de Antwerpse Zuidrand", - "description": "Speelplekken in de Antwerpse Zuidrand. Een project van Provincie Antwerpen, in samenwerking met Createlli, Sportpret en OpenStreetMap België", - "layers": { - "6": { - "name": "Wandelroutes van provincie Antwerpen", - "tagRenderings": { - "0": { - "render": "Deze wandeling is {_length:km}km lang" - }, - "1": { - "mappings": { - "0": { - "then": "Dit is een internationale wandelroute" - }, - "1": { - "then": "Dit is een nationale wandelroute" - }, - "2": { - "then": "Dit is een regionale wandelroute" - }, - "3": { - "then": "Dit is een lokale wandelroute" - } - } - }, - "2": { - "render": "

Korte beschrijving:

{description}" - }, - "3": { - "question": "Wie beheert deze wandeling en plaatst dus de signalisatiebordjes?" - }, - "4": { - "question": "Naar wie kan men emailen bij problemen rond signalisatie?", - "render": "Bij problemen met signalisatie kan men emailen naar {operator:email}" - } - } - } - } - }, - "sport_pitches": { - "title": "Sportvelden", - "shortDescription": "Deze kaart toont sportvelden", - "description": "Een sportveld is een ingerichte plaats met infrastructuur om een sport te beoefenen" - }, - "surveillance": { - "title": "Surveillance under Surveillance", - "shortDescription": "Bewakingscameras en dergelijke", - "description": "Op deze open kaart kan je bewakingscamera's vinden." - }, - "toilets": { - "title": "Open Toilettenkaart", - "description": "Een kaart met openbare toiletten" - }, - "trees": { - "title": "Bomen", - "shortDescription": "Breng bomen in kaart", - "description": "Breng bomen in kaart!" - }, - "waste_basket": { - "title": "Vuilnisbak", - "shortDescription": "Afval weggooien", - "description": "Dit is een publieke vuilnisbak waar je je afval kan weggooien.", - "layers": { - "0": { - "name": "Vuilnisbak", - "title": { - "render": "Vuilnisbak" - }, - "description": "Dit is een publieke vuilnisbak waar je je afval kan weggooien.", - "iconSize": { - "mappings": { - "0": { - "then": "Vuilnisbak" - } - } - }, - "presets": { - "0": { - "title": "Vuilnisbak", - "description": "Afval weggooien" - } - } - } - } - }, - "width": { - "title": "Straatbreedtes", - "shortDescription": "Is de straat breed genoeg?", - "description": "

De straat is opgebruikt

\n

Er is steeds meer druk op de openbare ruimte. Voetgangers, fietsers, steps, auto's, bussen, bestelwagens, buggies, cargobikes, ... willen allemaal hun deel van de openbare ruimte.

\n

In deze studie nemen we Brugge onder de loep en kijken we hoe breed elke straat is én hoe breed elke straat zou moeten zijn voor een veilig én vlot verkeer.

\n

Legende

\n     Straat te smal voor veilig verkeer
\n     Straat is breed genoeg veilig verkeer
\n     Straat zonder voetpad, te smal als ook voetgangers plaats krijgen
\n     Woonerf, autoluw, autoloos of enkel plaatselijk verkeer
\n
\n
\n Een gestippelde lijn is een straat waar ook voor fietsers éénrichtingsverkeer geldt.
\n Klik op een straat om meer informatie te zien.\n

Hoe gaan we verder?

\n Verschillende ingrepen kunnen de stad teruggeven aan de inwoners en de stad leefbaarder en levendiger maken.
\n Denk aan:\n
    \n
  • De autovrije zone's uitbreiden
  • \n
  • De binnenstad fietszone maken
  • \n
  • Het aantal woonerven uitbreiden
  • \n
  • Grotere auto's meer belasten - ze nemen immers meer parkeerruimte in.
  • \n
  • Laat toeristen verplicht parkeren onder het zand; een (fiets)taxi kan hen naar hun hotel brengen
  • \n
  • Voorzie in elke straat enkele parkeerplaatsen voor kortparkeren. Zo kunnen leveringen, iemand afzetten,... gebeuren zonder op het voetpad en fietspad te parkeren
  • \n
", - "layers": { - "0": { - "name": "Straten met een breedte", - "title": { - "render": "{name}", - "mappings": { - "0": { - "then": "Naamloos segmet" - } - } - } + "tagRenderings": { + "1": { + "render": "Dit is een {artwork_type}", + "question": "Wat voor soort kunstwerk is dit?", + "mappings": { + "0": { + "then": "Architectuur" + }, + "1": { + "then": "Muurschildering" + }, + "2": { + "then": "Schilderij" + }, + "3": { + "then": "Beeldhouwwerk" + }, + "4": { + "then": "Standbeeld" + }, + "5": { + "then": "Buste" + }, + "6": { + "then": "Steen" + }, + "7": { + "then": "Installatie" + }, + "8": { + "then": "Graffiti" + }, + "9": { + "then": "Reliëf" + }, + "10": { + "then": "Azulejo (Spaanse siertegels)" + }, + "11": { + "then": "Tegelwerk" + } } + }, + "2": { + "question": "Welke artist creëerde dit kunstwerk?", + "render": "Gecreëerd door {artist_name}" + }, + "3": { + "question": "Op welke website kan men meer informatie vinden over dit kunstwerk?", + "render": "Meer informatie op deze website" + }, + "4": { + "question": "Welk Wikidata-item beschrijft dit kunstwerk?", + "render": "Komt overeen met {wikidata}" + } } + } } + }, + "benches": { + "title": "Zitbanken", + "shortDescription": "Een kaart met zitbanken", + "description": "Deze kaart toont alle zitbanken die in OpenStreetMap gekend zijn: individuele banken en banken bij bushaltes. Met een OpenStreetMap-account can je informatie verbeteren en nieuwe zitbanken in toevoegen." + }, + "bicyclelib": { + "title": "Fietsbibliotheken", + "description": "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." + }, + "bike_monitoring_stations": { + "title": "Fietstelstations", + "shortDescription": "Fietstelstations met live data van Brussels Mobiliteit", + "description": "Dit thema toont fietstelstations met live data" + }, + "bookcases": { + "title": "Open Boekenruilkastenkaart", + "description": "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" + }, + "buurtnatuur": { + "title": "Breng jouw buurtnatuur in kaart", + "shortDescription": "Met deze tool kan je natuur in je buurt in kaart brengen en meer informatie geven over je favoriete plekje", + "description": "logo-groenmeld je aan voor e-mailupdates.", + "descriptionTail": "

Tips

  • Over groen ingekleurde gebieden weten we alles wat we willen weten.
  • Bij rood ingekleurde gebieden ontbreekt nog heel wat info: klik een gebied aan en beantwoord de vragen.
  • Je kan altijd een vraag overslaan als je het antwoord niet weet of niet zeker bent
  • Je kan altijd een foto toevoegen
  • Je kan ook zelf een gebied toevoegen door op de kaart te klikken
  • Open buurtnatuur.be op je smartphone om al wandelend foto's te maken en vragen te beantwoorden

De oorspronkelijke data komt van OpenStreetMap en je antwoorden worden daar bewaard.
Omdat iedereen vrij kan meewerken aan dit project, kunnen we niet garanderen dat er geen fouten opduiken.Kan je hier niet aanpassen wat je wilt, dan kan je dat zelf via OpenStreetMap.org doen. Groen kan geen enkele verantwoordelijkheid nemen over de kaart.

Je privacy is belangrijk. We tellen wel hoeveel gebruikers deze website bezoeken. We plaatsen een cookie waar geen persoonlijke informatie in bewaard wordt. Als je inlogt, komt er een tweede cookie bij met je inloggegevens.
", + "layers": { + "0": { + "name": "Natuurgebied", + "title": { + "render": "Natuurgebied", + "mappings": { + "0": { + "then": "{name:nl}" + }, + "1": { + "then": "{name}" + } + } + }, + "description": "Een natuurgebied is een gebied waar actief ruimte gemaakt word voor de natuur. Typisch zijn deze in beheer van Natuurpunt of het Agentschap Natuur en Bos of zijn deze erkend door de overheid.", + "presets": { + "0": { + "title": "Natuurreservaat", + "description": "Voeg een ontbrekend, erkend natuurreservaat toe, bv. een gebied dat beheerd wordt door het ANB of natuurpunt" + } + } + }, + "1": { + "name": "Park", + "title": { + "render": "Park", + "mappings": { + "0": { + "then": "{name:nl}" + }, + "1": { + "then": "{name}" + } + } + }, + "description": "Een park is een publiek toegankelijke, groene ruimte binnen de stad. Ze is typisch ingericht voor recreatief gebruik, met (verharde) wandelpaden, zitbanken, vuilnisbakken, een gezellig vijvertje, ...", + "presets": { + "0": { + "title": "Park", + "description": "Voeg een ontbrekend park toe" + } + } + }, + "2": { + "name": "Bos", + "title": { + "render": "Bos", + "mappings": { + "0": { + "then": "{name:nl}" + }, + "1": { + "then": "{name}" + } + } + }, + "description": "Een bos is een verzameling bomen, al dan niet als productiehout.", + "presets": { + "0": { + "title": "Bos", + "description": "Voeg een ontbrekend bos toe aan de kaart" + } + } + } + }, + "roamingRenderings": { + "0": { + "render": "De toegankelijkheid van dit gebied is: {access:description}", + "question": "Is dit gebied toegankelijk?", + "mappings": { + "0": { + "then": "Dit gebied is vrij toegankelijk" + }, + "1": { + "then": "Vrij toegankelijk" + }, + "2": { + "then": "Niet toegankelijk" + }, + "3": { + "then": "Niet toegankelijk, want privégebied" + }, + "4": { + "then": "Toegankelijk, ondanks dat het privegebied is" + }, + "5": { + "then": "Enkel toegankelijk met een gids of tijdens een activiteit" + }, + "6": { + "then": "Toegankelijk mits betaling" + } + } + }, + "1": { + "render": "Beheer door {operator}", + "question": "Wie beheert dit gebied?", + "mappings": { + "1": { + "then": "Dit gebied wordt beheerd door Natuurpunt" + }, + "2": { + "then": "Dit gebied wordt beheerd door {operator}" + }, + "3": { + "then": "Dit gebied wordt beheerd door het Agentschap Natuur en Bos" + } + } + }, + "2": { + "render": "Extra info: {description}" + }, + "3": { + "render": "Extra info via buurtnatuur.be: {description:0}" + }, + "4": { + "render": "Dit gebied heet {name:nl}", + "question": "Wat is de Nederlandstalige naam van dit gebied?" + }, + "5": { + "render": "Dit gebied heet {name}", + "question": "Wat is de naam van dit gebied?", + "mappings": { + "0": { + "then": "Dit gebied heeft geen naam" + } + } + } + } + }, + "campersite": { + "title": "Kampeersite", + "shortDescription": "Vind locaties waar je de nacht kan doorbrengen met je mobilehome", + "description": "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 opgeslaan en is dus altijd gratis te hergebruiken, ook door andere applicaties.", + "layers": { + "0": { + "name": "Camperplaatsen", + "title": { + "render": "Camperplaats {name}", + "mappings": { + "0": { + "then": "Camper site" + } + } + }, + "description": "camperplaatsen", + "tagRenderings": { + "1": { + "render": "Deze plaats heet {name}", + "question": "Wat is de naam van deze plaats?" + }, + "2": { + "question": "Moet men betalen om deze camperplaats te gebruiken?", + "mappings": { + "0": { + "then": "Gebruik is betalend" + }, + "1": { + "then": "Kan gratis gebruikt worden" + } + } + }, + "3": { + "render": "Deze plaats vraagt {charge}", + "question": "Hoeveel kost deze plaats?" + }, + "9": { + "render": "Officiële website: : {website}" + } + } + } + } + }, + "charging_stations": { + "title": "Oplaadpunten", + "shortDescription": "Een wereldwijde kaart van oplaadpunten", + "layers": { + "0": { + "name": "Oplaadpunten", + "title": { + "render": "Oplaadpunt" + }, + "description": "Een oplaadpunt", + "tagRenderings": { + "6": { + "render": "{network}", + "mappings": { + "0": { + "then": "Maakt geen deel uit van een netwerk" + }, + "1": { + "then": "AeroVironment" + }, + "2": { + "then": "Blink" + }, + "3": { + "then": "eVgo" + } + } + } + } + } + } + }, + "climbing": { + "title": "Open Klimkaart", + "description": "Op deze kaart vind je verschillende klimgelegenheden, zoals klimzalen, bolderzalen en klimmen in de natuur", + "descriptionTail": "De Open Klimkaart is oorspronkelijk gemaakt door Christian Neumann op kletterspots.de.", + "layers": { + "0": { + "name": "Klimclub", + "title": { + "render": "Klimclub", + "mappings": { + "0": { + "then": "Klimorganisatie" + } + } + }, + "description": "Een klimclub of organisatie", + "tagRenderings": { + "0": { + "render": "{name}", + "question": "Wat is de naam van deze klimclub?" + } + }, + "presets": { + "0": { + "title": "Klimclub", + "description": "Een klimclub" + }, + "1": { + "title": "Een klimorganisatie", + "description": "Een VZW die werkt rond klimmen" + } + } + }, + "1": { + "name": "Klimzalen", + "title": { + "render": "Klimzaal", + "mappings": { + "0": { + "then": "Klimzaal {name}" + } + } + }, + "description": "Een klimzaal", + "tagRenderings": { + "3": { + "render": "{name}", + "question": "Wat is de naam van dit Klimzaal?" + } + } + }, + "2": { + "name": "Klimroute", + "title": { + "render": "Klimroute", + "mappings": { + "0": { + "then": "Klimroute {name}" + } + } + }, + "tagRenderings": { + "3": { + "render": "{name}", + "question": "Hoe heet deze klimroute?", + "mappings": { + "0": { + "then": "Deze klimroute heeft geen naam" + } + } + }, + "4": { + "question": "Hoe lang is deze klimroute (in meters)?", + "render": "Deze klimroute is {canonical(climbing:length)} lang" + }, + "5": { + "question": "Hoe moeilijk is deze klimroute volgens het Franse/Belgische systeem?", + "render": "De klimmoeilijkheid is {climbing:grade:french} volgens het Franse/Belgische systeem" + } + }, + "presets": { + "0": { + "title": "Klimroute" + } + } + }, + "3": { + "name": "Klimgelegenheden", + "title": { + "render": "Klimgelegenheid", + "mappings": { + "1": { + "then": "Klimsite {name}" + }, + "2": { + "then": "Klimsite" + }, + "3": { + "then": "Klimgelegenheid {name}" + } + } + }, + "description": "Een klimgelegenheid", + "tagRenderings": { + "6": { + "render": "{name}", + "question": "Wat is de naam van dit Klimgelegenheid?", + "mappings": { + "0": { + "then": "Dit Klimgelegenheid heeft geen naam" + } + } + }, + "8": { + "mappings": { + "0": { + "then": "Kalksteen" + } + } + } + }, + "presets": { + "0": { + "title": "Klimgelegenheid", + "description": "Een klimgelegenheid" + } + } + }, + "4": { + "name": "Klimgelegenheiden?", + "title": { + "render": "Klimgelegenheid?" + }, + "description": "Een klimgelegenheid?", + "tagRenderings": { + "1": { + "render": "{name}" + }, + "2": { + "mappings": { + "0": { + "then": "Klimmen is hier niet mogelijk" + }, + "1": { + "then": "Klimmen is hier niet toegelaten" + }, + "2": { + "then": "Klimmen is hier niet toegelaten" + } + } + } + } + } + }, + "units": { + "0": { + "applicableUnits": { + "0": { + "human": " meter" + }, + "1": { + "human": " voet" + } + } + } + }, + "roamingRenderings": { + "0": { + "question": "Is er een (onofficiële) website met meer informatie (b.v. met topos)?" + }, + "1": { + "mappings": { + "0": { + "then": "Een omvattend element geeft aan dat dit publiek toegangkelijk is
{_embedding_feature:access:description}" + }, + "1": { + "then": "Een omvattend element geeft aan dat een toelating nodig is om hier te klimmen
{_embedding_feature:access:description}" + } + } + }, + "4": { + "render": "De klimroutes zijn gemiddeld {canonical(climbing:length)} lang", + "question": "Wat is de (gemiddelde) lengte van de klimroutes, in meter?" + }, + "5": { + "question": "Wat is het niveau van de makkelijkste route, volgens het Franse classificatiesysteem?", + "render": "De minimale klimmoeilijkheid is {climbing:grade:french:min} volgens het Franse/Belgische systeem" + }, + "6": { + "question": "Wat is het niveau van de moeilijkste route, volgens het Franse classificatiesysteem?", + "render": "De maximale klimmoeilijkheid is {climbing:grade:french:max} volgens het Franse/Belgische systeem" + }, + "7": { + "question": "Is het mogelijk om hier te bolderen?", + "mappings": { + "0": { + "then": "Bolderen kan hier" + }, + "1": { + "then": "Bolderen kan hier niet" + }, + "2": { + "then": "Bolderen kan hier, maar er zijn niet zoveel routes" + }, + "3": { + "then": "Er zijn hier {climbing:boulder} bolderroutes" + } + } + }, + "8": { + "question": "Is het mogelijk om hier te toprope-klimmen?", + "mappings": { + "0": { + "then": "Toprope-klimmen kan hier" + }, + "1": { + "then": "Toprope-klimmen kan hier niet" + }, + "2": { + "then": "Er zijn hier {climbing:toprope} toprope routes" + } + } + }, + "9": { + "question": "Is het mogelijk om hier te sportklimmen/voorklimmen op reeds aangebrachte haken?", + "mappings": { + "0": { + "then": "Sportklimmen/voorklimmen kan hier" + }, + "1": { + "then": "Sportklimmen/voorklimmen kan hier niet" + }, + "2": { + "then": "Er zijn hier {climbing:sport} sportklimroutes/voorklimroutes" + } + } + }, + "10": { + "question": "Is het mogelijk om hier traditioneel te klimmen?
(Dit is klimmen met klemblokjes en friends)", + "mappings": { + "0": { + "then": "Traditioneel klimmen kan hier" + }, + "1": { + "then": "Traditioneel klimmen kan hier niet" + }, + "2": { + "then": "Er zijn hier {climbing:traditional} traditionele klimroutes" + } + } + }, + "11": { + "question": "Is er een snelklimmuur (speed climbing)?", + "mappings": { + "0": { + "then": "Er is een snelklimmuur voor speed climbing" + }, + "1": { + "then": "Er is geen snelklimmuur voor speed climbing" + }, + "2": { + "then": "Er zijn hier {climbing:speed} snelklimmuren" + } + } + } + } + }, + "fietsstraten": { + "title": "Fietsstraten", + "shortDescription": "Een kaart met alle gekende fietsstraten", + "description": "Een fietsstraat is een straat waar
  • automobilisten geen fietsers mogen inhalen
  • Er een maximumsnelheid van 30km/u geldt
  • Fietsers gemotoriseerde voortuigen 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.", + "roamingRenderings": { + "0": { + "question": "Is deze straat een fietsstraat?", + "mappings": { + "0": { + "then": "Deze straat is een fietsstraat (en dus zone 30)" + }, + "1": { + "then": "Deze straat is een fietsstraat" + }, + "2": { + "then": "Deze straat wordt binnenkort een fietsstraat" + }, + "3": { + "then": "Deze straat is geen fietsstraat" + } + } + }, + "1": { + "question": "Wanneer wordt deze straat een fietsstraat?", + "render": "Deze straat wordt fietsstraat op {cyclestreet:start_date}" + } + }, + "layers": { + "0": { + "name": "Fietsstraten", + "description": "Een fietsstraat is een straat waar gemotoriseerd verkeer een fietser niet mag inhalen." + }, + "1": { + "name": "Toekomstige fietsstraat", + "description": "Deze straat wordt binnenkort een fietsstraat", + "title": { + "render": "Toekomstige fietsstraat", + "mappings": { + "0": { + "then": "{name} wordt fietsstraat" + } + } + } + }, + "2": { + "name": "Alle straten", + "description": "Laag waar je een straat als fietsstraat kan markeren", + "title": { + "render": "Straat" + } + } + } + }, + "cyclofix": { + "title": "Cyclofix - een open kaart voor fietsers", + "description": "Het doel van deze kaart is om fietsers een gebruiksvriendelijke oplossing te bieden voor het vinden van de juiste infrastructuur voor hun behoeften.

U kunt uw exacte locatie volgen (enkel mobiel) en in de linkerbenedenhoek categorieën selecteren die voor u relevant zijn. U kunt deze tool ook gebruiken om 'spelden' aan de kaart toe te voegen of te bewerken en meer gegevens te verstrekken door de vragen te beantwoorden.

Alle wijzigingen die u maakt worden automatisch opgeslagen in de wereldwijde database van OpenStreetMap en kunnen door anderen vrij worden hergebruikt.

Bekijk voor meer info over cyclofix ook cyclofix.osm.be." + }, + "drinking_water": { + "title": "Drinkwaterpunten", + "description": "Op deze kaart staan publiek toegankelijke drinkwaterpunten en kan je makkelijk een nieuw drinkwaterpunt toevoegen" + }, + "facadegardens": { + "title": "Straatgeveltuintjes", + "shortDescription": "Deze kaart toont geveltuintjes met foto's en bruikbare info over oriëntatie, zonlicht en planttypes.", + "description": "Ontharde voortuintjes, groene gevels en bomen ín de stad brengen naast rust ook een mooiere stad, een grotere biodiversiteit, een verkoelend effect en een betere luchtkwaliteit.
Klimaan VZW en 'Mechelen Klimaatneutraal' willen met het project Klim(t)aan je Gevel bestaande en nieuwe geveltuintjes in kaart brengen als voorbeeld voor mensen zelf een tuintje willen aanleggen of voor stadwandelaars die houden van de natuur.
Meer info over het project op klimaan.be.", + "layers": { + "0": { + "name": "Geveltuintjes", + "title": { + "render": "Geveltuintje" + }, + "description": "Geveltuintjes", + "tagRenderings": { + "1": { + "render": "Oriëntatie: {direction} (waarbij 0=N en 90=O)", + "question": "Hoe is de tuin georiënteerd?" + }, + "2": { + "mappings": { + "0": { + "then": "Het is een volle zon tuintje" + }, + "1": { + "then": "Het is een halfschaduw tuintje" + }, + "2": { + "then": "Het is een schaduw tuintje" + } + }, + "question": "Ligt de tuin in zon/half schaduw of schaduw?" + }, + "3": { + "question": "Is er een regenton voorzien bij het tuintje?", + "mappings": { + "0": { + "then": "Er is een regenton" + }, + "1": { + "then": "Er is geen regenton" + } + } + }, + "4": { + "render": "Aanlegdatum van de tuin: {start_date}", + "question": "Wanneer werd de tuin aangelegd? (vul gewoon een jaartal in)" + }, + "5": { + "mappings": { + "0": { + "then": "Er staan eetbare planten" + }, + "1": { + "then": "Er staan geen eetbare planten" + } + }, + "question": "Staan er eetbare planten?" + }, + "6": { + "question": "Wat voor planten staan hier?", + "mappings": { + "0": { + "then": "Er staat een klimplant" + }, + "1": { + "then": "Er staan bloeiende planten" + }, + "2": { + "then": "Er staan struiken" + }, + "3": { + "then": "Er staan bodembedekkers" + } + } + }, + "7": { + "render": "Meer details: {description}", + "question": "Aanvullende omschrijving van de tuin (indien nodig, en voor zover nog niet omschreven hierboven)" + } + }, + "presets": { + "0": { + "title": "geveltuintje", + "description": "Voeg geveltuintje toe" + } + } + } + } + }, + "fritures": { + "title": "Friturenkaart", + "description": "Op deze kaart vind je je favoriete frituur!", + "layers": { + "0": { + "name": "Frituren", + "title": { + "render": "Frituur", + "mappings": { + "0": { + "then": " {name}" + } + } + }, + "tagRenderings": { + "1": { + "render": "{name}", + "question": "Wat is de naam van deze frituur?" + }, + "2": { + "render": "

Openingsuren

{opening_hours_table(opening_hours)}", + "question": "Wat zijn de openinguren van deze frituur?" + }, + "3": { + "question": "Wat is de website van deze frituur?" + }, + "4": { + "render": "{phone}", + "question": "Wat is het telefoonnummer van deze frituur?" + }, + "5": { + "question": "Heeft deze frituur vegetarische snacks?", + "mappings": { + "0": { + "then": "Er zijn vegetarische snacks aanwezig" + }, + "1": { + "then": "Slechts enkele vegetarische snacks" + }, + "2": { + "then": "Geen vegetarische snacks beschikbaar" + } + } + }, + "6": { + "question": "Heeft deze frituur veganistische snacks?", + "mappings": { + "0": { + "then": "Er zijn veganistische snacks aanwezig" + }, + "1": { + "then": "Slechts enkele veganistische snacks" + }, + "2": { + "then": "Geen veganistische snacks beschikbaar" + } + } + }, + "7": { + "question": "Bakt deze frituur in dierlijk vetof plantaardig olie?", + "mappings": { + "0": { + "then": "Plantaardige olie" + }, + "1": { + "then": "Dierlijk vet" + } + } + }, + "8": { + "question": "Als je je eigen container (bv. kookpot of kleine potjes voor saus) meeneemt, gebruikt de frituur deze dan om je bestelling in te doen?", + "mappings": { + "0": { + "then": "Je mag je eigen containers meenemen om je bestelling in mee te nemen en zo minder afval te maken" + }, + "1": { + "then": "Je mag geen eigen containers meenemen om je bestelling in mee te nemen" + }, + "2": { + "then": "Je moet je eigen containers meenemen om je bestelling in mee te nemen." + } + } + } + }, + "presets": { + "0": { + "title": "Frituur" + } + } + } + } + }, + "boomgaarden": { + "title": "Open Boomgaardenkaart", + "shortDescription": "Boomgaarden en fruitbomen", + "description": "Op deze kaart vindt je boomgaarden en fruitbomen", + "layers": { + "0": { + "name": "Boomgaarden", + "title": { + "render": "Boomgaard" + }, + "presets": { + "0": { + "title": "Boomgaard", + "description": "Voeg een boomgaard toe (als punt - omtrek nog te tekenen)" + } + } + }, + "1": { + "name": "Boom", + "title": { + "render": "Boom" + }, + "description": "Een boom", + "tagRenderings": { + "0": { + "render": "De soort is {species:nl}", + "question": "Wat is de soort van deze boom (in het Nederlands)?" + }, + "1": { + "render": "Het ras (taxon) van deze boom is {taxon}", + "question": "Wat is het taxon (ras) van deze boom?" + }, + "2": { + "render": "Beschrijving: {description}", + "question": "Welke beschrijving past bij deze boom?" + }, + "3": { + "render": "Referentienummer: {ref}", + "question": "Is er een refernetienummer?" + } + }, + "presets": { + "0": { + "title": "Boom", + "description": "Voeg hier een boom toe" + } + } + } + } + }, + "ghostbikes": { + "title": "Witte Fietsen", + "description": "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." + }, + "grb": { + "title": "GRB Fixup", + "shortDescription": "Grb Fixup", + "description": "GRB Fixup", + "layers": { + "0": { + "name": "Fixmes op gebouwen", + "title": { + "render": "{addr:street} {addr:housenumber}", + "mappings": { + "0": { + "then": "{fixme}" + } + } + }, + "description": "Dit gebouw heeft een foutmelding", + "tagRenderings": { + "0": { + "render": "Het huisnummer is {addr:housenumber}", + "question": "Wat is het huisnummer?", + "mappings": { + "0": { + "then": "Geen huisnummer" + } + } + }, + "1": { + "render": "De wooneenheid-aanduiding is {addr:unit} " + }, + "2": { + "render": "De straat is {addr:street}", + "question": "Wat is de straat?" + }, + "3": { + "render": "De fixme is {fixme}", + "question": "Wat zegt de fixme?", + "mappings": { + "0": { + "then": "Geen fixme" + } + } + }, + "4": { + "render": "Dit gebouw begint maar op de {building:min_level} verdieping", + "question": "Hoeveel verdiepingen ontbreken?" + } + } + } + } + }, + "maps": { + "title": "Een kaart met Kaarten", + "shortDescription": "Een kaart met alle kaarten die OpenStreetMap kent", + "description": "Op deze kaart kan je alle kaarten zien die OpenStreetMap kent.

Ontbreekt er een kaart, dan kan je die kaart hier ook gemakelijk aan deze kaart toevoegen." + }, + "nature": { + "title": "De Natuur in", + "shortDescription": "Deze kaart bevat informatie voor natuurliefhebbers", + "description": "Op deze kaart vind je informatie voor natuurliefhebbers, zoals info over het natuurgebied waar je inzit, vogelkijkhutten, informatieborden, ..." + }, + "natuurpunt": { + "title": "Natuurgebieden", + "shortDescription": "Deze kaart toont de natuurgebieden van Natuurpunt", + "description": "Op deze kaart vind je alle natuurgebieden die Natuurpunt ter beschikking stelt" + }, + "openwindpowermap": { + "units": { + "0": { + "applicableUnits": { + "0": { + "human": " megawatt" + }, + "1": { + "human": " kilowatt" + }, + "2": { + "human": " watt" + }, + "3": { + "human": " gigawatt" + } + } + } + } + }, + "personal": { + "title": "Persoonlijk thema", + "description": "Stel je eigen thema samen door lagen te combineren van alle andere themas" + }, + "play_forests": { + "title": "Speelbossen", + "shortDescription": "Deze kaart toont speelbossen", + "description": "Een speelbos is een zone in een bos die vrij toegankelijk is voor spelende kinderen. Deze wordt in bossen van het Agentschap Natuur en bos altijd aangeduid met het overeenkomstige bord." + }, + "playgrounds": { + "title": "Speelplekken", + "shortDescription": "Een kaart met speeltuinen", + "description": "Op deze kaart vind je speeltuinen en kan je zelf meer informatie en foto's toevoegen" + }, + "shops": { + "layers": { + "0": { + "name": "Winkel", + "title": { + "render": "Winkel" + }, + "description": "Een winkel", + "tagRenderings": { + "1": { + "question": "Wat is de naam van deze winkel?" + }, + "2": { + "mappings": { + "1": { + "then": "Supermarkt" + }, + "3": { + "then": "Kapper" + }, + "4": { + "then": "Bakkerij" + } + } + }, + "3": { + "question": "Wat is het telefoonnummer?" + }, + "4": { + "question": "Wat is de website van deze winkel?" + }, + "6": { + "question": "Wat zijn de openingsuren van deze winkel?" + } + }, + "presets": { + "0": { + "title": "Winkel", + "description": "Voeg een nieuwe winkel toe" + } + } + } + } + }, + "speelplekken": { + "title": "Welkom bij de groendoener!", + "shortDescription": "Speelplekken in de Antwerpse Zuidrand", + "description": "

Welkom bij de Groendoener!

De Zuidrand dat is spelen, ravotten, chillen, wandelen,… in het groen. Meer dan 200 grote en kleine speelplekken liggen er in parken, in bossen en op pleintjes te wachten om ontdekt te worden. De verschillende speelplekken werden getest én goedgekeurd door kinder- en jongerenreporters uit de Zuidrand. Met leuke challenges dagen de reporters jou uit om ook op ontdekking te gaan. Klik op een speelplek op de kaart, bekijk het filmpje en ga op verkenning!

Het project groendoener kadert binnen het strategisch project Beleefbare Open Ruimte in de Antwerpse Zuidrand en is een samenwerking tussen het departement Leefmilieu van provincie Antwerpen, Sportpret vzw, een OpenStreetMap-België Consultent en Createlli vzw. Het project kwam tot stand met steun van Departement Omgeving van de Vlaamse Overheid.
", + "layers": { + "7": { + "name": "Wandelroutes van provincie Antwerpen", + "tagRenderings": { + "0": { + "render": "Deze wandeling is {_length:km}km lang" + }, + "1": { + "mappings": { + "0": { + "then": "Dit is een internationale wandelroute" + }, + "1": { + "then": "Dit is een nationale wandelroute" + }, + "2": { + "then": "Dit is een regionale wandelroute" + }, + "3": { + "then": "Dit is een lokale wandelroute" + } + } + }, + "2": { + "render": "

Korte beschrijving:

{description}" + }, + "3": { + "question": "Wie beheert deze wandeling en plaatst dus de signalisatiebordjes?" + }, + "4": { + "question": "Naar wie kan men emailen bij problemen rond signalisatie?", + "render": "Bij problemen met signalisatie kan men emailen naar {operator:email}" + } + } + } + } + }, + "speelplekken_temp": { + "title": "Speelplekken in de Antwerpse Zuidrand", + "shortDescription": "Speelplekken in de Antwerpse Zuidrand", + "description": "Speelplekken in de Antwerpse Zuidrand. Een project van Provincie Antwerpen, in samenwerking met Createlli, Sportpret en OpenStreetMap België", + "layers": { + "6": { + "name": "Wandelroutes van provincie Antwerpen", + "tagRenderings": { + "0": { + "render": "Deze wandeling is {_length:km}km lang" + }, + "1": { + "mappings": { + "0": { + "then": "Dit is een internationale wandelroute" + }, + "1": { + "then": "Dit is een nationale wandelroute" + }, + "2": { + "then": "Dit is een regionale wandelroute" + }, + "3": { + "then": "Dit is een lokale wandelroute" + } + } + }, + "2": { + "render": "

Korte beschrijving:

{description}" + }, + "3": { + "question": "Wie beheert deze wandeling en plaatst dus de signalisatiebordjes?" + }, + "4": { + "question": "Naar wie kan men emailen bij problemen rond signalisatie?", + "render": "Bij problemen met signalisatie kan men emailen naar {operator:email}" + } + } + } + } + }, + "sport_pitches": { + "title": "Sportvelden", + "shortDescription": "Deze kaart toont sportvelden", + "description": "Een sportveld is een ingerichte plaats met infrastructuur om een sport te beoefenen" + }, + "surveillance": { + "title": "Surveillance under Surveillance", + "shortDescription": "Bewakingscameras en dergelijke", + "description": "Op deze open kaart kan je bewakingscamera's vinden." + }, + "toilets": { + "title": "Open Toilettenkaart", + "description": "Een kaart met openbare toiletten" + }, + "trees": { + "title": "Bomen", + "shortDescription": "Breng bomen in kaart", + "description": "Breng bomen in kaart!" + }, + "waste_basket": { + "title": "Vuilnisbak", + "shortDescription": "Afval weggooien", + "description": "Dit is een publieke vuilnisbak waar je je afval kan weggooien.", + "layers": { + "0": { + "name": "Vuilnisbak", + "title": { + "render": "Vuilnisbak" + }, + "description": "Dit is een publieke vuilnisbak waar je je afval kan weggooien.", + "iconSize": { + "mappings": { + "0": { + "then": "Vuilnisbak" + } + } + }, + "presets": { + "0": { + "title": "Vuilnisbak", + "description": "Afval weggooien" + } + } + } + } + }, + "width": { + "title": "Straatbreedtes", + "shortDescription": "Is de straat breed genoeg?", + "description": "

De straat is opgebruikt

\n

Er is steeds meer druk op de openbare ruimte. Voetgangers, fietsers, steps, auto's, bussen, bestelwagens, buggies, cargobikes, ... willen allemaal hun deel van de openbare ruimte.

\n

In deze studie nemen we Brugge onder de loep en kijken we hoe breed elke straat is én hoe breed elke straat zou moeten zijn voor een veilig én vlot verkeer.

\n

Legende

\n     Straat te smal voor veilig verkeer
\n     Straat is breed genoeg veilig verkeer
\n     Straat zonder voetpad, te smal als ook voetgangers plaats krijgen
\n     Woonerf, autoluw, autoloos of enkel plaatselijk verkeer
\n
\n
\n Een gestippelde lijn is een straat waar ook voor fietsers éénrichtingsverkeer geldt.
\n Klik op een straat om meer informatie te zien.\n

Hoe gaan we verder?

\n Verschillende ingrepen kunnen de stad teruggeven aan de inwoners en de stad leefbaarder en levendiger maken.
\n Denk aan:\n
    \n
  • De autovrije zone's uitbreiden
  • \n
  • De binnenstad fietszone maken
  • \n
  • Het aantal woonerven uitbreiden
  • \n
  • Grotere auto's meer belasten - ze nemen immers meer parkeerruimte in.
  • \n
  • Laat toeristen verplicht parkeren onder het zand; een (fiets)taxi kan hen naar hun hotel brengen
  • \n
  • Voorzie in elke straat enkele parkeerplaatsen voor kortparkeren. Zo kunnen leveringen, iemand afzetten,... gebeuren zonder op het voetpad en fietspad te parkeren
  • \n
", + "layers": { + "0": { + "name": "Straten met een breedte", + "title": { + "render": "{name}", + "mappings": { + "0": { + "then": "Naamloos segmet" + } + } + } + } + } + } } \ No newline at end of file diff --git a/langs/themes/ru.json b/langs/themes/ru.json index 8f9cd01a66..74f15b8753 100644 --- a/langs/themes/ru.json +++ b/langs/themes/ru.json @@ -276,6 +276,21 @@ "then": "Здесь нельзя утилизировать отходы химических туалетов" } } + }, + "6": { + "question": "Кто может использовать эту станцию утилизации?", + "mappings": { + "2": { + "then": "Любой может воспользоваться этой станцией утилизации" + }, + "3": { + "then": "Любой может воспользоваться этой станцией утилизации" + } + } + }, + "7": { + "render": "Эта станция - часть сети {network}", + "question": "К какой сети относится эта станция? (пропустите, если неприменимо)" } } } @@ -298,7 +313,7 @@ }, "6": { "render": "{network}", - "question": "К какой сети относится эта станция?", + "question": "К какой сети относится эта зарядная станция?", "mappings": { "0": { "then": "Не является частью более крупной сети" @@ -332,6 +347,12 @@ "0": { "render": "{name}" } + }, + "presets": { + "0": { + "title": "Клуб скалолазания", + "description": "Клуб скалолазания" + } } }, "1": { @@ -364,6 +385,16 @@ } }, "roamingRenderings": { + "0": { + "question": "Есть ли (неофициальный) веб-сайт с более подробной информацией (напр., topos)?" + }, + "2": { + "mappings": { + "3": { + "then": "Только членам клуба" + } + } + }, "9": { "mappings": { "0": { @@ -376,18 +407,49 @@ } } }, + "fietsstraten": { + "layers": { + "2": { + "name": "Все улицы", + "title": { + "render": "Улица" + } + } + } + }, "cyclofix": { "title": "Cyclofix - открытая карта для велосипедистов" }, "drinking_water": { - "title": "Питьевая вода" + "title": "Питьевая вода", + "description": "На этой карте показываются и могут быть легко добавлены общедоступные точки питьевой воды" }, "facadegardens": { "layers": { "0": { "tagRenderings": { + "2": { + "question": "Сад расположен на солнечной стороне или в тени?" + }, + "3": { + "mappings": { + "0": { + "then": "Есть бочка с дождевой водой" + }, + "1": { + "then": "Нет бочки с дождевой водой" + } + } + }, "4": { "render": "Дата строительства сада: {start_date}" + }, + "6": { + "question": "Какие виды растений обитают здесь?" + }, + "7": { + "render": "Подробнее: {description}", + "question": "Дополнительная информация о саде (если требуется или еще не указана выше)" } } } @@ -398,26 +460,70 @@ "0": { "tagRenderings": { "3": { - "render": "{website}" + "render": "{website}", + "question": "Какой веб-сайт у этого магазина?" + }, + "4": { + "question": "Какой телефон?" + }, + "8": { + "mappings": { + "1": { + "then": "Приносить свою тару не разрешено" + } + } } } } } }, "hailhydrant": { + "title": "Пожарные гидранты, огнетушители, пожарные станции и станции скорой помощи.", + "shortDescription": "Карта пожарных гидрантов, огнетушителей, пожарных станций и станций скорой помощи.", "layers": { "0": { + "name": "Карта пожарных гидрантов", "title": { "render": "Гидрант" }, + "description": "Слой карты, отображающий пожарные гидранты.", "tagRenderings": { + "0": { + "question": "Какого цвета гидрант?", + "render": "Цвет гидранта {colour}", + "mappings": { + "0": { + "then": "Цвет гидранта не определён." + }, + "1": { + "then": "Гидрант жёлтого цвета." + }, + "2": { + "then": "Гидрант красного цвета." + } + } + }, "1": { + "question": "К какому типу относится этот гидрант?", "render": " Тип гидранта: {fire_hydrant:type}", "mappings": { + "0": { + "then": "Тип гидранта не определён." + }, "3": { "then": " Тип стены." } } + }, + "2": { + "mappings": { + "0": { + "then": "Гидрант (полностью или частично) в рабочем состоянии." + }, + "2": { + "then": "Гидрант демонтирован." + } + } } }, "presets": { @@ -427,38 +533,98 @@ } }, "1": { + "name": "Карта огнетушителей.", "title": { "render": "Огнетушители" + }, + "description": "Слой карты, отображающий огнетушители.", + "tagRenderings": { + "0": { + "render": "Местоположение: {location}", + "question": "Где это расположено?", + "mappings": { + "0": { + "then": "Внутри." + }, + "1": { + "then": "Снаружи." + } + } + } + }, + "presets": { + "0": { + "title": "Огнетушитель", + "description": "Огнетушитель - небольшое переносное устройство для тушения огня" + } } }, "2": { + "name": "Карта пожарных частей", "title": { "render": "Пожарная часть" }, + "description": "Слой карты, отображающий пожарные части.", "tagRenderings": { "0": { - "question": "Как называется пожарная часть?" + "question": "Как называется эта пожарная часть?", + "render": "Эта часть называется {name}." + }, + "1": { + "question": " По какому адресу расположена эта часть?", + "render": "Часть расположена вдоль шоссе {addr:street}." + }, + "2": { + "question": "Где расположена часть? (напр., название населённого пункта)", + "render": "Эта часть расположена в {addr:place}." + } + }, + "presets": { + "0": { + "title": "Пожарная часть" } } }, "3": { + "name": "Карта станций скорой помощи", "title": { "render": "Станция скорой помощи" }, "tagRenderings": { "0": { - "question": "Как называется станция скорой помощи?" + "question": "Как называется эта станция скорой помощи?", + "render": "Эта станция называется {name}." + }, + "1": { + "question": " По какому адресу расположена эта станция?", + "render": "Эта станция расположена вдоль шоссе {addr:street}." + }, + "2": { + "question": "Где расположена станция? (напр., название населённого пункта)" } }, "presets": { "0": { - "title": "Станция скорой помощи" + "title": "Станция скорой помощи", + "description": "Добавить станцию скорой помощи на карту" } } } } }, + "maps": { + "title": "Карта карт" + }, + "personal": { + "description": "Создать персональную тему на основе доступных слоёв тем" + }, + "playgrounds": { + "title": "Игровые площадки", + "shortDescription": "Карта игровых площадок", + "description": "На этой карте можно найти игровые площадки и добавить дополнительную информацию" + }, "shops": { + "title": "Открыть карту магазинов", "layers": { "0": { "name": "Магазин", @@ -473,11 +639,13 @@ } } }, + "description": "Магазин", "tagRenderings": { "1": { - "question": "Как называется магазин?" + "question": "Как называется этот магазин?" }, "2": { + "question": "Что продаётся в этом магазине?", "mappings": { "1": { "then": "Супермаркет" @@ -494,16 +662,20 @@ } }, "3": { - "render": "{phone}" + "render": "{phone}", + "question": "Какой телефон?" }, "4": { - "render": "{website}" + "render": "{website}", + "question": "Какой веб-сайт у этого магазина?" }, "5": { - "render": "{email}" + "render": "{email}", + "question": "Каков адрес электронной почты этого магазина?" }, "6": { - "render": "{opening_hours_table(opening_hours)}" + "render": "{opening_hours_table(opening_hours)}", + "question": "Каковы часы работы этого магазина?" } }, "presets": { @@ -515,11 +687,17 @@ } } }, + "sport_pitches": { + "title": "Спортивные площадки", + "shortDescription": "Карта, отображающая спортивные площадки" + }, "toilets": { "title": "Открытая карта туалетов", "description": "Карта общественных туалетов" }, "trees": { - "title": "Деревья" + "title": "Деревья", + "shortDescription": "Карта деревьев", + "description": "Нанесите все деревья на карту!" } } \ No newline at end of file diff --git a/package.json b/package.json index e125b7b005..70c7a6aaf9 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "generate:layouts": "ts-node scripts/generateLayouts.ts", "generate:docs": "ts-node scripts/generateDocs.ts && ts-node scripts/generateTaginfoProjectFiles.ts", "generate:cache:speelplekken": "npm run generate:layeroverview && ts-node scripts/generateCache.ts speelplekken 14 ../pietervdvn.github.io/speelplekken_cache/ 51.20 4.35 51.09 4.56", + "generate:cache:natuurpunt": "npm run generate:layeroverview && ts-node scripts/generateCache.ts natuurpunt 12 ../pietervdvn.github.io/natuurpunt_cache/ 50.40 2.1 51.54 6.4", "generate:layeroverview": "npm run generate:licenses && echo {\\\"layers\\\":[], \\\"themes\\\":[]} > ./assets/generated/known_layers_and_themes.json && ts-node scripts/generateLayerOverview.ts --no-fail", "generate:licenses": "ts-node scripts/generateLicenseInfo.ts --no-fail", "generate:report": "cd Docs/Tools && ./compileStats.sh && git commit . -m 'New statistics ands graphs' && git push", diff --git a/scripts/ScriptUtils.ts b/scripts/ScriptUtils.ts index 135002495b..93c6dfacaf 100644 --- a/scripts/ScriptUtils.ts +++ b/scripts/ScriptUtils.ts @@ -56,7 +56,8 @@ export default class ScriptUtils { const urlObj = new URL(url) https.get({ host: urlObj.host, - path: urlObj.pathname, + path: urlObj.pathname + urlObj.search, + port: urlObj.port, headers: { "accept": "application/json" @@ -74,6 +75,7 @@ export default class ScriptUtils { try { resolve(JSON.parse(result)) } catch (e) { + console.error("Could not parse the following as JSON:", result) reject(e) } }); diff --git a/scripts/generateCache.ts b/scripts/generateCache.ts index 77dfa86536..c3d9fbcd90 100644 --- a/scripts/generateCache.ts +++ b/scripts/generateCache.ts @@ -88,12 +88,24 @@ async function downloadRaw(targetdir: string, r: TileRange, overpass: Overpass)/ await ScriptUtils.DownloadJSON(url) .then(json => { + if (json.elements.length === 0) { + console.log("Got an empty response!") + if ((json.remark ?? "").startsWith("runtime error")) { + console.error("Got a runtime error: ", json.remark) + failed++; + return + } + + } + + console.log("Got the response - writing to ", filename) writeFileSync(filename, JSON.stringify(json, null, " ")); } ) .catch(err => { - console.log("Could not download - probably hit the rate limit; waiting a bit") + console.log(url) + console.log("Could not download - probably hit the rate limit; waiting a bit. (" + err + ")") failed++; return ScriptUtils.sleep(60000).then(() => console.log("Waiting is done")) }) @@ -142,7 +154,7 @@ async function postProcess(targetdir: string, r: TileRange, theme: LayoutConfig, // We read the raw OSM-file and convert it to a geojson const rawOsm = JSON.parse(readFileSync(filename, "UTF8")) - + // Create and save the geojson file - which is the main chunk of the data const geojson = OsmToGeoJson.default(rawOsm); const osmTime = new Date(rawOsm.osm3s.timestamp_osm_base); @@ -167,7 +179,7 @@ async function postProcess(targetdir: string, r: TileRange, theme: LayoutConfig, // Extract the relationship information const relations = ExtractRelations.BuildMembershipTable(ExtractRelations.GetRelationElements(rawOsm)) - MetaTagging.addMetatags(featuresFreshness, new UIEventSource<{feature: any; freshness: Date}[]>(featuresFreshness) , relations, theme.layers, false); + MetaTagging.addMetatags(featuresFreshness, new UIEventSource<{ feature: any; freshness: Date }[]>(featuresFreshness), relations, theme.layers, false); for (const feature of geojson.features) { @@ -191,7 +203,7 @@ async function postProcess(targetdir: string, r: TileRange, theme: LayoutConfig, delete feature["bbox"] } - const targetPath = geoJsonName(targetdir+".unfiltered", x, y, r.zoomlevel) + const targetPath = geoJsonName(targetdir + ".unfiltered", x, y, r.zoomlevel) // This is the geojson file containing all features writeFileSync(targetPath, JSON.stringify(geojson, null, " ")) @@ -203,7 +215,7 @@ async function splitPerLayer(targetdir: string, r: TileRange, theme: LayoutConfi const z = r.zoomlevel; for (let x = r.xstart; x <= r.xend; x++) { for (let y = r.ystart; y <= r.yend; y++) { - const file = readFileSync(geoJsonName(targetdir+".unfiltered", x, y, z), "UTF8") + const file = readFileSync(geoJsonName(targetdir + ".unfiltered", x, y, z), "UTF8") for (const layer of theme.layers) { if (!layer.source.isOsmCacheLayer) { @@ -221,7 +233,7 @@ async function splitPerLayer(targetdir: string, r: TileRange, theme: LayoutConfi return true; }) const new_path = geoJsonName(targetdir + "_" + layer.id, x, y, z); - console.log(new_path, " has ", geojson.features.length, " features after filtering (dropped ", oldLength - geojson.features.length,")" ) + console.log(new_path, " has ", geojson.features.length, " features after filtering (dropped ", oldLength - geojson.features.length, ")") if (geojson.features.length == 0) { console.log("Not writing geojson file as it is empty", new_path) continue; diff --git a/scripts/generateTranslations.ts b/scripts/generateTranslations.ts index 492a669e98..9f957553ec 100644 --- a/scripts/generateTranslations.ts +++ b/scripts/generateTranslations.ts @@ -212,6 +212,7 @@ function generateTranslationsObjectFrom(objects: { path: string, parsed: { id: s } function MergeTranslation(source: any, target: any, language: string, context: string = "") { + for (const key in source) { if (!source.hasOwnProperty(key)) { continue @@ -220,6 +221,9 @@ function MergeTranslation(source: any, target: any, language: string, context: s const targetV = target[key] if (typeof sourceV === "string") { if(targetV === undefined){ + if(typeof target === "string"){ + throw "Trying to merge a translation into a fixed string at "+context+" for key "+key; + } target[key] = source[key]; continue; } diff --git a/test/TestHelper.ts b/test/TestHelper.ts index 265eeb11ad..d344c192e4 100644 --- a/test/TestHelper.ts +++ b/test/TestHelper.ts @@ -10,7 +10,7 @@ export default class T { test(); } catch (e) { this.failures.push(name); - console.warn("Failed test: ", name, "because", e); + console.warn(`>>> Failed test in ${this.name}: ${name}because${e}`); } } if (this.failures.length == 0) {