diff --git a/Docs/Themes/atm.md b/Docs/Themes/atm.md index a2300c93a..db0924212 100644 --- a/Docs/Themes/atm.md +++ b/Docs/Themes/atm.md @@ -26,6 +26,7 @@ Available languages: - en - de - fr + - nl This document is autogenerated from [assets/themes/atm/atm.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/atm/atm.json) \ No newline at end of file diff --git a/Docs/wikiIndex.txt b/Docs/wikiIndex.txt index c6c0ef3c8..5c2bc7b66 100644 --- a/Docs/wikiIndex.txt +++ b/Docs/wikiIndex.txt @@ -112,7 +112,7 @@ {{service_item |name= [https://mapcomplete.osm.be/atm atm] |region= Worldwide -|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:_context|en}} +|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:_context|en}} |descr= A MapComplete theme: This map shows ATMs to withdraw or deposit money |material= {{yes|[https://mapcomplete.osm.be/ Yes]}} |image= MapComplete_Screenshot.png diff --git a/UI/AllThemesGui.ts b/UI/AllThemesGui.ts index 7a4cd705a..68cb52ddb 100644 --- a/UI/AllThemesGui.ts +++ b/UI/AllThemesGui.ts @@ -8,12 +8,9 @@ import { Utils } from "../Utils" import LanguagePicker1 from "./LanguagePicker" import IndexText from "./BigComponents/IndexText" import FeaturedMessage from "./BigComponents/FeaturedMessage" -import Toggle from "./Input/Toggle" -import { SubtleButton } from "./Base/SubtleButton" -import { VariableUiElement } from "./Base/VariableUIElement" -import Svg from "../Svg" import { ImportViewerLinks } from "./BigComponents/UserInformation" -import {LoginToggle} from "./Popup/LoginButton"; +import { LoginToggle } from "./Popup/LoginButton" +import UserSurveyPanel from "./UserSurveyPanel" export default class AllThemesGui { setup() { @@ -29,12 +26,9 @@ export default class AllThemesGui { new Combine([ intro, new FeaturedMessage().SetClass("mb-4 block"), + new Combine([new UserSurveyPanel()]).SetClass("flex justify-center"), new MoreScreen(state, true), - new LoginToggle( - undefined, - Translations.t.index.logIn, - state - ), + new LoginToggle(undefined, Translations.t.index.logIn, state), new ImportViewerLinks(state.osmConnection), Translations.t.general.aboutMapcomplete .Subs({ osmcha_link: Utils.OsmChaLinkFor(7) }) diff --git a/UI/BigComponents/ThemeIntroductionPanel.ts b/UI/BigComponents/ThemeIntroductionPanel.ts index 9c117a1a9..b6817917a 100644 --- a/UI/BigComponents/ThemeIntroductionPanel.ts +++ b/UI/BigComponents/ThemeIntroductionPanel.ts @@ -13,6 +13,7 @@ import LoggedInUserIndicator from "../LoggedInUserIndicator" import { ActionButtons } from "./ActionButtons" import { BBox } from "../../Logic/BBox" import Loc from "../../Models/Loc" +import UserSurveyPanel from "../UserSurveyPanel" export default class ThemeIntroductionPanel extends Combine { constructor( @@ -68,7 +69,8 @@ export default class ThemeIntroductionPanel extends Combine { const hasPresets = layout.layers.some((l) => l.presets?.length > 0) super([ - layout.description.Clone().SetClass("blcok mb-4"), + layout.description.Clone().SetClass("block mb-4"), + new UserSurveyPanel(), new Combine([ t.welcomeExplanation.general, hasPresets diff --git a/UI/UserSurveyPanel.ts b/UI/UserSurveyPanel.ts new file mode 100644 index 000000000..992589561 --- /dev/null +++ b/UI/UserSurveyPanel.ts @@ -0,0 +1,50 @@ +import Combine from "./Base/Combine" +import { FixedUiElement } from "./Base/FixedUiElement" +import { SubtleButton } from "./Base/SubtleButton" +import Svg from "../Svg" +import { LocalStorageSource } from "../Logic/Web/LocalStorageSource" +import Toggle from "./Input/Toggle" + +export default class UserSurveyPanel extends Toggle { + private static readonly userSurveyHasBeenTaken = LocalStorageSource.GetParsed( + "usersurvey-has-been-taken", + false + ) + + constructor() { + super( + new Combine([ + new FixedUiElement("Thanks for taking the survey!").SetClass("thanks px-2"), + new SubtleButton(Svg.star_svg(), "Take the user survey again", { + imgSize: "h-6 w-6", + }) + .onClick(() => { + window.open( + "https://framaforms.org/mapcomplete-usage-survey-1672687708", + "_blank" + ) + UserSurveyPanel.userSurveyHasBeenTaken.setData(false) + }) + .SetClass("h-12"), + ]), + new Combine([ + new FixedUiElement("Please, fill in the user survey").SetClass("alert"), + "Hey! We'd like to get to know you better - would you mind to help out by filling out this form? Your opinion is important", + new FixedUiElement( + "We are specifically searching responses from underrepresented groups, such as non-technical people, minorities, women, people without an account, people of colour, ..." + ).SetClass("font-bold"), + "Results are fully anonymous and are used to improve MapComplete. We don't ask private information. So, don't hesitate and fill it out!", + new SubtleButton(Svg.star_outline_svg(), "Take the survey").onClick(() => { + window.open( + "https://framaforms.org/mapcomplete-usage-survey-1672687708", + "_blank" + ) + UserSurveyPanel.userSurveyHasBeenTaken.setData(true) + }), + ]).SetClass("block border-2 border-black rounded-xl flex flex-col p-2"), + UserSurveyPanel.userSurveyHasBeenTaken + ) + + this.SetStyle("max-width: 40rem") + } +} diff --git a/assets/contributors.json b/assets/contributors.json index 078e957dd..441f9454d 100644 --- a/assets/contributors.json +++ b/assets/contributors.json @@ -1,11 +1,11 @@ { "contributors": [ { - "commits": 4798, + "commits": 4811, "contributor": "Pieter Vander Vennet" }, { - "commits": 316, + "commits": 317, "contributor": "Robin van der Linde" }, { diff --git a/assets/layers/artwork/artwork.json b/assets/layers/artwork/artwork.json index 61ab288a5..364ccd984 100644 --- a/assets/layers/artwork/artwork.json +++ b/assets/layers/artwork/artwork.json @@ -612,7 +612,8 @@ "question": { "en": "Does this artwork serve as a bench?", "de": "Dient dieses Kunstwerk auch als Sitzbank?", - "fr": "Cette oeuvre d'art sert-elle de banc ?" + "fr": "Cette oeuvre d'art sert-elle de banc ?", + "nl": "Is dit kunstwerk ook een zitbank?" }, "mappings": [ { @@ -620,7 +621,8 @@ "then": { "en": "This artwork also serves as a bench", "de": "Dieses Kunstwerk dient auch als Sitzbank", - "fr": "Cette oeuvre d'art sert aussi de banc" + "fr": "Cette oeuvre d'art sert aussi de banc", + "nl": "Dit kunstwerk doet ook dienst als zitbank" } }, { @@ -628,7 +630,8 @@ "then": { "en": "This artwork does not serve as a bench", "de": "Dieses Kunstwerk dient nicht als Sitzbank", - "fr": "Cette oeuvre d'art ne sert pas de banc" + "fr": "Cette oeuvre d'art ne sert pas de banc", + "nl": "Dit kunstwerk doet geen dienst als zitbank" } }, { @@ -636,7 +639,8 @@ "then": { "en": "This artwork does not serve as a bench", "de": "Dieses Kunstwerk dient nicht als Sitzbank", - "fr": "Cette oeuvre d'art ne sert pas de banc" + "fr": "Cette oeuvre d'art ne sert pas de banc", + "nl": "Dit kunstwerk doet geen dienst als zitbank" }, "hideInAnswer": true } diff --git a/assets/layers/atm/atm.json b/assets/layers/atm/atm.json index 47200d678..6775bb025 100644 --- a/assets/layers/atm/atm.json +++ b/assets/layers/atm/atm.json @@ -116,14 +116,16 @@ "id": "cash_out", "question": { "en": "Can you withdraw cash from this ATM?", - "de": "Kann man an diesem Geldautomaten Bargeld abheben?" + "de": "Kann man an diesem Geldautomaten Bargeld abheben?", + "nl": "Kan je geld ophalen bij deze geldautomaat?" }, "mappings": [ { "if": "cash_out=", "then": { "en": "You can withdraw cash from this ATM", - "de": "Sie können an diesem Geldautomaten Bargeld abheben" + "de": "Sie können an diesem Geldautomaten Bargeld abheben", + "nl": "Je kan geld ophalen bij deze geldautomaat" }, "hideInAnswer": true }, @@ -131,14 +133,16 @@ "if": "cash_out=yes", "then": { "en": "You can withdraw cash from this ATM", - "de": "An diesem Geldautomaten können Sie Bargeld abheben" + "de": "An diesem Geldautomaten können Sie Bargeld abheben", + "nl": "Je kan geld ophalen bij deze geldautomaat" } }, { "if": "cash_out=no", "then": { "en": "You cannot withdraw cash from this ATM", - "de": "Sie können an diesem Geldautomaten kein Bargeld abheben" + "de": "Sie können an diesem Geldautomaten kein Bargeld abheben", + "nl": "Je kan geen geld ophalen bij deze geldautomaat" } } ] @@ -154,7 +158,8 @@ "if": "cash_in=", "then": { "en": "You probably cannot deposit cash into this ATM", - "de": "Sie können wahrscheinlich kein Bargeld in diesen Geldautomaten einzahlen" + "de": "Sie können wahrscheinlich kein Bargeld in diesen Geldautomaten einzahlen", + "nl": "Je kan waarschijnlijk geen geld deponeren in deze geldautomaat" }, "hideInAnswer": true }, @@ -162,14 +167,16 @@ "if": "cash_in=yes", "then": { "en": "You can deposit cash into this ATM", - "de": "Sie können Bargeld in diesen Geldautomaten einzahlen" + "de": "Sie können Bargeld in diesen Geldautomaten einzahlen", + "nl": "Je kan geld deponeren in deze geldautomaat" } }, { "if": "cash_in=no", "then": { "en": "You cannot deposit cash into this ATM", - "de": "Sie können an diesem Geldautomaten kein Bargeld einzahlen" + "de": "Sie können an diesem Geldautomaten kein Bargeld einzahlen", + "nl": "Je kan geen geld deponeren in deze geldautomaat" } } ] @@ -178,21 +185,24 @@ "id": "speech_output", "question": { "en": "Does this ATM have speech output for visually impaired users?", - "de": "Verfügt dieser Geldautomat über eine Sprachausgabe für sehbehinderte Benutzer?" + "de": "Verfügt dieser Geldautomat über eine Sprachausgabe für sehbehinderte Benutzer?", + "nl": "Heeft deze automaat spraak voor slechtziende en blinde gebruikers?" }, "mappings": [ { "if": "speech_output=yes", "then": { "en": "This ATM has speech output, usually available through a headphone jack", - "de": "Dieser Geldautomat verfügt über eine Sprachausgabe, die normalerweise über eine Kopfhörerbuchse verfügbar ist" + "de": "Dieser Geldautomat verfügt über eine Sprachausgabe, die normalerweise über eine Kopfhörerbuchse verfügbar ist", + "nl": "Deze automaat heeft spraak, waarschijnlijk beschikbaar via een hoofdtelefoon-aansluiting" } }, { "if": "speech_output=no", "then": { "en": "This ATM does not have speech output", - "de": "Dieser Geldautomat hat keine Sprachausgabe" + "de": "Dieser Geldautomat hat keine Sprachausgabe", + "nl": "Deze automaat heeft geen spraak" } } ] @@ -206,15 +216,18 @@ "key": "speech_output", "question": { "en": "In which languages does this ATM have speech output?", - "de": "In welchen Sprachen hat dieser Geldautomat eine Sprachausgabe?" + "de": "In welchen Sprachen hat dieser Geldautomat eine Sprachausgabe?", + "nl": "In welke taal is de srpaak van deze geldautomaat?" }, "render_list_item": { "en": "This ATM has speech output in {language():font-bold}", - "de": "Dieser Geldautomat hat eine Sprachausgabe in {language():font-bold}" + "de": "Dieser Geldautomat hat eine Sprachausgabe in {language():font-bold}", + "nl": "Deze geldautomaat heeft spraak in {language():font-bold}" }, "render_single_language": { "en": "This ATM has speech output in {language():font-bold}", - "de": "Dieser Geldautomat hat eine Sprachausgabe in {language():font-bold}" + "de": "Dieser Geldautomat hat eine Sprachausgabe in {language():font-bold}", + "nl": "Deze automaat heeft spraak in {language():font-bold}" } } } @@ -249,7 +262,8 @@ { "question": { "en": "With speech output", - "de": "Mit Sprachausgabe" + "de": "Mit Sprachausgabe", + "nl": "Heeft spraak" }, "osmTags": "speech_output=yes" } diff --git a/assets/layers/bench_at_pt/bench_at_pt.json b/assets/layers/bench_at_pt/bench_at_pt.json index 5c4236879..8af04cb47 100644 --- a/assets/layers/bench_at_pt/bench_at_pt.json +++ b/assets/layers/bench_at_pt/bench_at_pt.json @@ -222,7 +222,8 @@ "then": { "en": "This bus stop does not have a bench (there never was one or it has been removed)", "de": "Diese Bushaltestelle hat keine Bank (es gab nie eine oder sie wurde entfernt)", - "fr": "Cette station de bus n'a pas de banc (il n'y en a jamais eu ou il a été retiré)" + "fr": "Cette station de bus n'a pas de banc (il n'y en a jamais eu ou il a été retiré)", + "nl": "Deze bushalte heeft geen zitbank (er is er nooit een geweest of deze is verwijderd)" } } ], @@ -232,7 +233,8 @@ "explanation": { "en": "This bus stop is not used anymore", "de": "Diese Bushaltestelle wird nicht mehr genutzt", - "fr": "Cette station de bus n'est plus utilisée" + "fr": "Cette station de bus n'est plus utilisée", + "nl": "Deze bushalte wordt niet meer gebruikt" } } ], diff --git a/assets/layers/bike_parking/bike_parking.json b/assets/layers/bike_parking/bike_parking.json index 29be69568..a6b951a8e 100644 --- a/assets/layers/bike_parking/bike_parking.json +++ b/assets/layers/bike_parking/bike_parking.json @@ -436,7 +436,7 @@ "nl": "Hoeveel fietsen kunnen in deze fietsparking (inclusief potentiëel bakfietsen)?", "gl": "Cantas bicicletas caben neste aparcadoiro de bicicletas (incluídas as posíbeis bicicletas de carga)?", "de": "Wie viele Fahrräder passen auf diesen Fahrrad-Parkplatz (einschließlich möglicher Lastenfahrräder)?", - "it": "Quante biciclette entrano in questo parcheggio per bici (incluse le eventuali bici da trasporto)?", + "it": "Quante biciclette entrano in questo parcheggio per bici (incluse le eventuali bici cargo)?", "zh_Hant": "這個單車停車場能放幾台單車 (包括裝箱單車)?", "es": "¿Cuántas bicicletas caben en este aparcamiento de bicicletas (incluyendo posibles bicicletas de carga)?", "da": "Hvor mange cykler er der plads til på denne cykelparkering (inklusive mulige ladcykler)?", @@ -562,7 +562,7 @@ "gl": "Este aparcadoiro de bicicletas ten espazo para bicicletas de carga?", "de": "Hat der Parkplatz Stellflächen für Lastenfahrräder?", "fr": "Est-ce que ce parking à vélo a des emplacements pour des vélos cargo ?", - "it": "Questo parcheggio dispone di posti specifici per le bici da trasporto?", + "it": "Questo parcheggio dispone di posti specifici per le bici cargo?", "zh_Hant": "這個單車停車場有地方放裝箱的單車嗎?", "pt_BR": "O estacionamento de bicicletas tem vagas para bicicletas de carga?", "pt": "O estacionamento de bicicletas tem vagas para bicicletas de carga?", @@ -579,7 +579,7 @@ "gl": "Este aparcadoiro ten espazo para bicicletas de carga", "de": "Der Parkplatz hat Stellflächen für Lastenfahrräder", "fr": "Ce parking a de la place pour les vélos cargo", - "it": "Questo parcheggio ha posto per bici da trasporto", + "it": "Questo parcheggio ha posto per bici cargo", "zh_Hant": "這個停車場有地方可以放裝箱單車", "pt_BR": "Este estacionamento tem vagas para bicicletas de carga", "pt": "Este estacionamento tem vagas para bicicletas de carga", @@ -596,7 +596,7 @@ "gl": "Este aparcadoiro ten espazos designados (oficiais) para bicicletas de carga.", "de": "Der Parkplatz hat ausgewiesene (offizielle) Stellflächen für Lastenfahrräder.", "fr": "Ce parking a des emplacements (officiellement) destinés aux vélos cargo.", - "it": "Questo parcheggio ha posti destinati (ufficialmente) alle bici da trasporto.", + "it": "Questo parcheggio ha posti destinati (ufficialmente) alle bici cargo.", "zh_Hant": "這停車場有設計 (官方) 空間給裝箱的單車。", "pt_BR": "Este estacionamento tem vagas (oficiais) projetadas para bicicletas de carga.", "pt": "Este estacionamento tem vagas (oficiais) projetadas para bicicletas de carga.", @@ -613,7 +613,7 @@ "gl": "Non está permitido aparcar bicicletas de carga", "de": "Der Parkplatz bietet keine Stellflächen für Lastenfahrräder", "fr": "Il est interdit de garer des vélos cargo", - "it": "Il parcheggio delle bici da trasporto è proibito", + "it": "Il parcheggio delle bici cargo è proibito", "pt_BR": "Você não tem permissão para estacionar bicicletas de carga", "pt": "Não tem permissão para estacionar bicicletas de carga", "es": "No está permitido aparcar bicicletas de carga", @@ -631,7 +631,7 @@ "fr": "Combien de vélos de transport entrent dans ce parking à vélos ?", "gl": "Cantas bicicletas de carga caben neste aparcadoiro de bicicletas?", "de": "Wie viele Lastenfahrräder passen auf diesen Fahrrad-Parkplatz?", - "it": "Quante bici da trasporto entrano in questo parcheggio per bici?", + "it": "Quante bici cargo entrano in questo parcheggio per bici?", "pt_BR": "Quantas bicicletas de carga cabem neste estacionamento de bicicletas?", "pt": "Quantas bicicletas de carga cabem neste estacionamento de bicicletas?", "es": "¿Cuántas bicicletas de carga caben en este aparcamiento de bicicletas?", @@ -644,7 +644,7 @@ "fr": "Ce parking a de la place pour {capacity:cargo_bike} vélos de transport", "gl": "Neste aparcadoiro caben {capacity:cargo_bike} bicicletas de carga", "de": "Auf diesen Parkplatz passen {capacity:cargo_bike} Lastenfahrräder", - "it": "Questo parcheggio può contenere {capacity:cargo_bike} bici da trasporto", + "it": "Questo parcheggio può contenere {capacity:cargo_bike} bici cargo", "pt_BR": "Neste estacionamento cabem {capacity:cargo_bike} bicicletas de carga", "pt": "Neste estacionamento cabem {capacity:cargo_bike} bicicletas de carga", "es": "En este aparcamiento caben {capacity:cargo_bike} bicicletas de carga", diff --git a/assets/layers/climbing_area/climbing_area.json b/assets/layers/climbing_area/climbing_area.json index 86b91489e..2ea6ebf4a 100644 --- a/assets/layers/climbing_area/climbing_area.json +++ b/assets/layers/climbing_area/climbing_area.json @@ -43,7 +43,7 @@ "fr": "Mur d’escalade {name}", "it": "Muro da arrampicata {name}", "de": "Klettergarten {name}", - "nl": "" + "nl": "Klimrots of klimzone {name}" } }, { @@ -210,7 +210,8 @@ "en": "A climbing crag - a single rock or cliff with at least a few climbing routes", "fr": "Mur d’escalade, rocher avec plusieurs voies d’escalades", "it": "Un muro da arrampicata (un singolo masso o falesia con almeno qualche via per arrampicata)", - "de": "Ein Kletterfelsen - ein einzelner Fels oder eine Klippe mit mindestens einigen Kletterrouten" + "de": "Ein Kletterfelsen - ein einzelner Fels oder eine Klippe mit mindestens einigen Kletterrouten", + "nl": "Een klimzone - een enkele rots of klif met klimroutes" } }, { diff --git a/assets/layers/climbing_gym/climbing_gym.json b/assets/layers/climbing_gym/climbing_gym.json index 04419ac92..77c57781e 100644 --- a/assets/layers/climbing_gym/climbing_gym.json +++ b/assets/layers/climbing_gym/climbing_gym.json @@ -80,19 +80,22 @@ { "id": "shoe_rental", "question": { - "en": "Can one rent climbing shoes here?" + "en": "Can one rent climbing shoes here?", + "nl": "Kunnen hier klimschoenen gehuurd worden?" }, "mappings": [ { "if": "service:rental:climbing_shoes=yes", "then": { - "en": "Climbing shoes can be rented here" + "en": "Climbing shoes can be rented here", + "nl": "Klimschoenen kunnen hier gehuurd worden" } }, { "if": "service:rental:climbing_shoes=no", "then": { - "en": "Climbing shoes can not be rented here" + "en": "Climbing shoes can not be rented here", + "nl": "Hier kunnen geen klimschoenen gehuurd worden" } } ] @@ -100,19 +103,22 @@ { "id": "harness_rental", "question": { - "en": "Can one rent a climbing harness here?" + "en": "Can one rent a climbing harness here?", + "nl": "Kan een klimgordel hier gehuurd worden?" }, "mappings": [ { "if": "service:rental:climbing_harness=yes", "then": { - "en": "A climbing harness can be rented here" + "en": "A climbing harness can be rented here", + "nl": "Een klimgordel kan hier gehuurd worden" } }, { "if": "service:rental:climbing_harness=no", "then": { - "en": "A climbing harness can not be rented here" + "en": "A climbing harness can not be rented here", + "nl": "Hier kunnen geen klimgordels gehuurd worden" } } ] diff --git a/assets/layers/climbing_route/climbing_route.json b/assets/layers/climbing_route/climbing_route.json index 0e1ddaa45..44b0f1d31 100644 --- a/assets/layers/climbing_route/climbing_route.json +++ b/assets/layers/climbing_route/climbing_route.json @@ -11,7 +11,8 @@ }, "description": { "en": "A single climbing route and its properties. Some properties are derived from the containing features", - "de": "Eine einzelne Kletterroute und ihre Eigenschaften. Einige Eigenschaften werden von übergeordneten Objekten abgeleitet" + "de": "Eine einzelne Kletterroute und ihre Eigenschaften. Einige Eigenschaften werden von übergeordneten Objekten abgeleitet", + "nl": "Een klimroute en de eigenschappen van deze klimroute. Sommige eigenschappen worden afgeleid van omliggende kaart-objecten" }, "minzoom": 18, "source": { @@ -150,13 +151,15 @@ "en": "How many bolts does this route have before reaching the anchor?", "fr": "Combien de prises cette voie possède avant d’atteindre la moulinette ?", "de": "Wie viele Haken gibt es auf dieser Kletterroute bevor der Umlenker bzw. Standhaken erreicht ist?", - "it": "Quanti bulloni sono presenti in questo percorso prima di arrivare alla moulinette?" + "it": "Quanti bulloni sono presenti in questo percorso prima di arrivare alla moulinette?", + "nl": "Hoeveel bouten heeft deze route voordat je het relay bereikt?" }, "render": { "en": "This route has {climbing:bolts} bolts
help
für alle Befehle",
"docs": "Führt einen Befehl aus und sendet die Ausgabe an eine andere Person",
"executing": "Führt {_}
aus und sendet das Ergebnis an {to}…",
- "failed": "Ich konnte {cmd}
aufgrund von {message} nicht ausführen",
+ "failed": "Konnte {cmd}
aufgrund von {message} nicht ausführen",
"noDm": "Ich konnte keinen Raum mit {to} erstellen",
- "receipt": "Ich habe die Nachricht an {to} übermittelt",
+ "receipt": "Nachricht an {to} übermittelt",
"selectValidCommand": "Geben Sie einen gültigen Befehl an",
"selectValidUser": "Geben Sie einen gültigen Zielbenutzer an",
"sendReason": "Ich habe Ihnen diese Nachricht geschickt, weil {sender} mich gebeten hat, diese mit {cmd}
zu senden"
@@ -565,7 +565,7 @@
"plural": "Ebenen",
"singular": "Ebene"
},
- "noIdIntro": "Geben Sie eine ID an, um weitere Informationen über ein MapComplete-Programmierelement zu erhalten. Bekannte Typen sind {list}",
+ "noIdIntro": "Geben Sie eine ID an, um weitere Infos über ein MapComplete-Programmierelement zu erhalten. Bekannte Typen sind {list}",
"notFound": "Kein {singular} mit Namen {id}
gefunden",
"overview": "Die folgenden {plural} existieren:",
"theme": {
@@ -617,7 +617,7 @@
"arglang": "Die von nun an zu verwendende Sprache",
"currentLanguage": "Die Sprache im aktuellen Raum ist {language}",
"docs": "Legt die Sprache der Antworten für diesen Raum fest",
- "hasBeenSet": "Die Sprache wurde auf {language} eingestellt.",
+ "hasBeenSet": "Sprache auf {language} eingestellt.",
"helpTranslating": "Helfen Sie mit, meine Antworten auf Weblate zu übersetzen.",
"knownLanguages": "Sie können eine der folgenden Sprachen wählen:",
"notFound": "Die Sprache {language} wurde nicht gefunden"
@@ -764,7 +764,7 @@
"li2": "machen Sie ein Foto, das die Rinde zeigt",
"li3": "machen Sie ein Foto von den Blüten"
},
- "loadingWikidata": "Informationen über {species} werden geladen",
+ "loadingWikidata": "Informationen über {species} werden geladen…",
"matchPercentage": "{match}% Übereinstimmung",
"overviewIntro": "Die KI auf PlantNet.org denkt, dass die Fotos die folgende Art zeigen.",
"overviewTitle": "Automatisch erkannte Art",
diff --git a/langs/en.json b/langs/en.json
index cfe6d0d47..841a6e282 100644
--- a/langs/en.json
+++ b/langs/en.json
@@ -191,7 +191,7 @@
"loginFailedOfflineMode": "OpenStreetMap.org is currently not available due to maintenance. Making edits will be possible soon",
"loginFailedReadonlyMode": "OpenStreetMap.org is currently in readonly mode due to maintenance. Making edits will be possible soon",
"loginFailedUnreachableMode": "OpenStreetMap.org is currently not reachable. Are you connected to the internet or do you block third parties? Try again later",
- "loginOnlyNeededToEdit": "if you want to edit the map",
+ "loginOnlyNeededToEdit": "if you want to make changes",
"loginToStart": "Log in to answer this question",
"loginWithOpenStreetMap": "Login with OpenStreetMap",
"logout": "Log out",
diff --git a/langs/layers/it.json b/langs/layers/it.json
index 9c20c24f7..e7f613594 100644
--- a/langs/layers/it.json
+++ b/langs/layers/it.json
@@ -436,26 +436,26 @@
"render": "È un parcheggio bici del tipo: {bicycle_parking}"
},
"Capacity": {
- "question": "Quante biciclette entrano in questo parcheggio per bici (incluse le eventuali bici da trasporto)?",
+ "question": "Quante biciclette entrano in questo parcheggio per bici (incluse le eventuali bici cargo)?",
"render": "Posti per {capacity} bici"
},
"Cargo bike capacity?": {
- "question": "Quante bici da trasporto entrano in questo parcheggio per bici?",
- "render": "Questo parcheggio può contenere {capacity:cargo_bike} bici da trasporto"
+ "question": "Quante bici cargo entrano in questo parcheggio per bici?",
+ "render": "Questo parcheggio può contenere {capacity:cargo_bike} bici cargo"
},
"Cargo bike spaces?": {
"mappings": {
"0": {
- "then": "Questo parcheggio ha posto per bici da trasporto"
+ "then": "Questo parcheggio ha posto per bici cargo"
},
"1": {
- "then": "Questo parcheggio ha posti destinati (ufficialmente) alle bici da trasporto."
+ "then": "Questo parcheggio ha posti destinati (ufficialmente) alle bici cargo."
},
"2": {
- "then": "Il parcheggio delle bici da trasporto è proibito"
+ "then": "Il parcheggio delle bici cargo è proibito"
}
},
- "question": "Questo parcheggio dispone di posti specifici per le bici da trasporto?"
+ "question": "Questo parcheggio dispone di posti specifici per le bici cargo?"
},
"Is covered?": {
"mappings": {
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index 248538937..fc988453c 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -142,6 +142,20 @@
"artwork_subject": {
"question": "Wat beeldt dit kunstwerk af?",
"render": "Dit kunstwerk beeldt {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)} af"
+ },
+ "doubles_as_bench": {
+ "mappings": {
+ "0": {
+ "then": "Dit kunstwerk doet ook dienst als zitbank"
+ },
+ "1": {
+ "then": "Dit kunstwerk doet geen dienst als zitbank"
+ },
+ "2": {
+ "then": "Dit kunstwerk doet geen dienst als zitbank"
+ }
+ },
+ "question": "Is dit kunstwerk ook een zitbank?"
}
},
"title": {
@@ -155,6 +169,15 @@
},
"atm": {
"description": "Geldautomaten om geld op te nemen",
+ "filter": {
+ "1": {
+ "options": {
+ "0": {
+ "question": "Heeft spraak"
+ }
+ }
+ }
+ },
"name": "Geldautomaten",
"presets": {
"0": {
@@ -162,6 +185,9 @@
}
},
"tagRenderings": {
+ "atm-in-bank-notice": {
+ "render": "Deze geldautomaat bevindt zich in of bij een bank"
+ },
"brand": {
"freeform": {
"placeholder": "Merknaam"
@@ -169,6 +195,33 @@
"question": "Van welk merk is deze geldautomaat?",
"render": "Het merk van deze geldautomaat is {brand}"
},
+ "cash_in": {
+ "mappings": {
+ "0": {
+ "then": "Je kan waarschijnlijk geen geld deponeren in deze geldautomaat"
+ },
+ "1": {
+ "then": "Je kan geld deponeren in deze geldautomaat"
+ },
+ "2": {
+ "then": "Je kan geen geld deponeren in deze geldautomaat"
+ }
+ }
+ },
+ "cash_out": {
+ "mappings": {
+ "0": {
+ "then": "Je kan geld ophalen bij deze geldautomaat"
+ },
+ "1": {
+ "then": "Je kan geld ophalen bij deze geldautomaat"
+ },
+ "2": {
+ "then": "Je kan geen geld ophalen bij deze geldautomaat"
+ }
+ },
+ "question": "Kan je geld ophalen bij deze geldautomaat?"
+ },
"name": {
"render": "De naam van deze geldautomaat is {name}"
},
@@ -178,6 +231,26 @@
},
"question": "Welk bedrijf beheert deze geldautomaat?",
"render": "Deze geldautomaat wordt beheerd door {operator}"
+ },
+ "speech_output": {
+ "mappings": {
+ "0": {
+ "then": "Deze automaat heeft spraak, waarschijnlijk beschikbaar via een hoofdtelefoon-aansluiting"
+ },
+ "1": {
+ "then": "Deze automaat heeft geen spraak"
+ }
+ },
+ "question": "Heeft deze automaat spraak voor slechtziende en blinde gebruikers?"
+ },
+ "speech_output_language": {
+ "render": {
+ "special": {
+ "question": "In welke taal is de srpaak van deze geldautomaat?",
+ "render_list_item": "Deze geldautomaat heeft spraak in {language():font-bold}",
+ "render_single_language": "Deze automaat heeft spraak in {language():font-bold}"
+ }
+ }
}
},
"title": {
@@ -448,6 +521,18 @@
}
},
"bench_at_pt": {
+ "deletion": {
+ "extraDeleteReasons": {
+ "0": {
+ "explanation": "Deze bushalte wordt niet meer gebruikt"
+ }
+ },
+ "nonDeleteMappings": {
+ "0": {
+ "then": "Deze bushalte heeft geen zitbank (er is er nooit een geweest of deze is verwijderd)"
+ }
+ }
+ },
"description": "Een laag die stopplaatsen van openbaar vervoer toont waar er een zitbank is",
"name": "Zitbanken aan bushaltes",
"tagRenderings": {
@@ -2559,6 +2644,9 @@
"mappings": {
"0": {
"then": "Een klimboulder - een enkele rots of klif met één of enkele klimroutes die veilig zonder touw kunnen worden beklommen"
+ },
+ "1": {
+ "then": "Een klimzone - een enkele rots of klif met klimroutes"
}
}
},
@@ -2574,7 +2662,9 @@
},
"title": {
"mappings": {
- "0": {},
+ "0": {
+ "then": "Klimrots of klimzone {name}"
+ },
"1": {
"then": "Klimsite {name}"
},
@@ -2634,8 +2724,30 @@
},
"question": "Is er een snelklimmuur (speed climbing)?"
},
+ "harness_rental": {
+ "mappings": {
+ "0": {
+ "then": "Een klimgordel kan hier gehuurd worden"
+ },
+ "1": {
+ "then": "Hier kunnen geen klimgordels gehuurd worden"
+ }
+ },
+ "question": "Kan een klimgordel hier gehuurd worden?"
+ },
"name": {
"question": "Wat is de naam van dit Klimzaal?"
+ },
+ "shoe_rental": {
+ "mappings": {
+ "0": {
+ "then": "Klimschoenen kunnen hier gehuurd worden"
+ },
+ "1": {
+ "then": "Hier kunnen geen klimschoenen gehuurd worden"
+ }
+ },
+ "question": "Kunnen hier klimschoenen gehuurd worden?"
}
},
"title": {
@@ -2673,6 +2785,7 @@
}
},
"climbing_route": {
+ "description": "Een klimroute en de eigenschappen van deze klimroute. Sommige eigenschappen worden afgeleid van omliggende kaart-objecten",
"name": "Klimroute",
"presets": {
"0": {
@@ -2696,6 +2809,18 @@
},
"question": "Hoe heet deze klimroute?",
"render": "{name}"
+ },
+ "Rock type via embedded feature": {
+ "render": "De steensoort is {_embedding_features_with_rock:rock} zoals vermeld op de omliggende klimzone"
+ },
+ "bolts": {
+ "mappings": {
+ "0": {
+ "then": "Deze route heeft geen bouten"
+ }
+ },
+ "question": "Hoeveel bouten heeft deze route voordat je het relay bereikt?",
+ "render": "Deze route heeft {climbing:bolts} klimbouten.