diff --git a/AllTranslationAssets.ts b/AllTranslationAssets.ts index 259d261de..661082eb9 100644 --- a/AllTranslationAssets.ts +++ b/AllTranslationAssets.ts @@ -102,7 +102,7 @@ export default class AllTranslationAssets { getStartedNewAccount: new Translation( {"en":" or create a new account","nl":" of maak een nieuwe account aan ","fr":" ou enregistrez-vous","es":" o crea una nueva cuenta","ca":" o crea un nou compte","gl":" ou crea unha nova conta","de":" oder ein neues Konto anlegen"} ), noTagsSelected: new Translation( {"en":"No tags selected","es":"No se han seleccionado etiquetas","ca":"No s'han seleccionat etiquetes","gl":"Non se seleccionaron etiquetas","nl":"Geen tags geselecteerd","fr":"Aucune balise sélectionnée","de":"Keine Tags ausgewählt"} ), customThemeIntro: new Translation( {"en":"
With MapComplete you can enrich OpenStreetMap with information on a single theme.
MapComplete asks a few questions about features relevant to the theme. Answer the questions, and in a few minutes your information will be available around the globe!
The theme maintainer defines the displayed elements, questions and languages for the theme.
Find out more
MapComplete always offers the next step to learn more about OpenStreetMap:
Did you notice an issue with MapComplete? Do you have a feature request? Do you want to help translate? Head over to the source code or issue tracker. Follow the edit count on OsmCha
","nl":"MapComplete is een OpenStreetMap-editor om eenvoudig informatie toe te voegen over één enkel onderwerp.
Om de editor zo simpel en gebruiksvriendelijk mogelijk te houden, worden enkel objecten relevant voor het thema getoond.Voor deze objecten kunnen dan vragen beantwoord worden, of men kan een nieuw punt van dit thema toevoegen.De maker van het thema kan er ook voor opteren om een aantal elementen van de gebruikersinterface uit te schakelen of de taal ervan in te stellen.
Een ander belangrijk aspect is om bezoekers stap voor stap meer te leren over OpenStreetMap:
Merk je een bug of wil je een extra feature? Wil je helpen vertalen? Bezoek dan de broncode en issue tracker. Volg de edits op OsmCha
","de":"MapComplete ist ein OpenStreetMap-Editor, der jedem helfen soll, auf einfache Weise Informationen zu einem Einzelthema hinzuzufügen.
Nur Merkmale, die für ein einzelnes Thema relevant sind, werden mit einigen vordefinierten Fragen gezeigt, um die Dinge einfach und extrem benutzerfreundlich zu halten.Der Themen-Betreuer kann auch eine Sprache für die Schnittstelle wählen, Elemente deaktivieren oder sogar in eine andere Website ohne jegliches UI-Element einbetten.
Ein weiterer wichtiger Teil von MapComplete ist jedoch, immer den nächsten Schritt anzubietenum mehr über OpenStreetMap zu erfahren:
Fällt Ihnen ein Problem mit MapComplete auf? Haben Sie einen Feature-Wunsch? Wollen Sie beim Übersetzen helfen? Gehen Sie zum Quellcode oder zur Problemverfolgung.
"} ), + aboutMapcomplete: new Translation( {"en":"With MapComplete you can enrich OpenStreetMap with information on a single theme. Answer a few questions, and within minutes your contributions will be available around the globe! The theme maintainer defines elements, questions and languages for the theme.
Find out more
MapComplete always offers the next step to learn more about OpenStreetMap.
Did you notice an issue? Do you have a feature request? Want to help translate? Head over to the source code or issue tracker.
Want to see your progress? Follow the edit count on OsmCha.
","nl":"Met MapComplete kun je OpenStreetMap verrijken met informatie over een bepaald thema. Beantwoord enkele vragen, en binnen een paar minuten is jouw bijdrage wereldwijd beschikbaar! De maker van het thema bepaalt de elementen, vragen en taalversies voor het thema.
Ontdek meer
MapComplete biedt altijd de volgende stap naar meer OpenStreetMap:
Merk je een bug of wil je een extra feature? Wil je helpen vertalen? Bezoek dan de broncode en issue tracker.
Wil je je vorderingen zien? Volg de edits op OsmCha.","de":"MapComplete ist ein OpenStreetMap-Editor, der jedem helfen soll, auf einfache Weise Informationen zu einem Einzelthema hinzuzufügen.
Nur Merkmale, die für ein einzelnes Thema relevant sind, werden mit einigen vordefinierten Fragen gezeigt, um die Dinge einfach und extrem benutzerfreundlich zu halten.Der Themen-Betreuer kann auch eine Sprache für die Schnittstelle wählen, Elemente deaktivieren oder sogar in eine andere Website ohne jegliches UI-Element einbetten.
Ein weiterer wichtiger Teil von MapComplete ist jedoch, immer den nächsten Schritt anzubietenum mehr über OpenStreetMap zu erfahren:
Fällt Ihnen ein Problem mit MapComplete auf? Haben Sie einen Feature-Wunsch? Wollen Sie beim Übersetzen helfen? Gehen Sie zum Quellcode oder zur Problemverfolgung.
"} ), backgroundMap: new Translation( {"en":"Background map","ca":"Mapa de fons","es":"Mapa de fondo","nl":"Achtergrondkaart","fr":"Carte de fonds","de":"Hintergrundkarte"} ), layerSelection: { zoomInToSeeThisLayer: new Translation( {"en":"Zoom in to see this layer","ca":"Amplia per veure aquesta capa","es":"Amplía para ver esta capa","nl":"Vergroot de kaart om deze laag te zien","fr":"Aggrandissez la carte pour voir cette couche","de":"Vergrößern, um diese Ebene zu sehen"} ), title: new Translation( {"en":"Select layers","nl":"Selecteer lagen"} ), diff --git a/Customizations/JSON/LayerConfig.ts b/Customizations/JSON/LayerConfig.ts index 45aae95d4..c65a55655 100644 --- a/Customizations/JSON/LayerConfig.ts +++ b/Customizations/JSON/LayerConfig.ts @@ -193,7 +193,7 @@ export default class LayerConfig { this.title = tr("title", undefined); - this.icon = tr("icon", Img.AsData(Svg.pin)); + this.icon = tr("icon", ""); this.iconOverlays = (json.iconOverlays ?? []).map((overlay, i) => { let tr = new TagRenderingConfig(overlay.then, self.source.osmTags, `iconoverlays.${i}`); if (typeof overlay.then === "string" && SharedTagRenderings.SharedIcons[overlay.then] !== undefined) { @@ -415,7 +415,6 @@ export default class LayerConfig { const label = self.label.GetRenderValue(tgs)?.Subs(tgs) .SetClass("block w-min text-center") .SetStyle("margin-top: "+(iconH + 2) +"px") - console.log("Generating label gave ", label, " source: ", self.label, "tags: ", tgs) if (label !== undefined) { htmlParts.push(new Combine([label]).SetClass("flex flex-col items-center")) } diff --git a/UI/i18n/Translation.ts b/UI/i18n/Translation.ts index 279b0a977..0730f282a 100644 --- a/UI/i18n/Translation.ts +++ b/UI/i18n/Translation.ts @@ -19,8 +19,8 @@ export class Translation extends UIElement { let count = 0; for (const translationsKey in translations) { count++; - if(typeof(translations[translationsKey]) != "string"){ - throw "Error in an object depicting a translation: a non-string object was found. ("+context+")\n You probably put some other section accidentally in the translation" + if (typeof (translations[translationsKey]) != "string") { + throw "Error in an object depicting a translation: a non-string object was found. (" + context + ")\n You probably put some other section accidentally in the translation" } } this.translations = translations; @@ -73,9 +73,13 @@ export class Translation extends UIElement { let rtext: string = ""; if (typeof (el) === "string") { rtext = el; - } else { + } else if(typeof(el) === "number") { + // HUH? Where did that number come from? + rtext = "" + el; + }else { Translation.forcedLanguage = lang; // This is a very dirty hack - it'll bite me one day rtext = el.InnerRender(); + } for (let i = 0; i < parts.length - 1; i++) { combined.push(parts[i]); @@ -145,7 +149,7 @@ export class Translation extends UIElement { .map(match => match[1].trim().replace(/^['"]/, '').replace(/['"]$/, '')); allIcons.push(...sources) } - }catch(e){ + } catch (e) { console.error("Could not search for images: ", render, this.txt) throw e } diff --git a/assets/themes/grb.json b/assets/themes/grb.json index b56fa0176..1ade2d18c 100644 --- a/assets/themes/grb.json +++ b/assets/themes/grb.json @@ -35,6 +35,9 @@ ] } }, + "calculatedTags": [ + "_grbNumber=(feat.properties.fixme?.match(/GRB thinks that this has number ([^;]+)/ ) ?? ['','none']) [1]" + ], "title": { "render": { "nl": "{addr:street} {addr:housenumber}" @@ -77,12 +80,40 @@ "then": { "nl": "Geen huisnummer" } + }, + { + "if": { + "and": [ + "addr:housenumber:={_grbNumber}", + "fixme=" + ] + }, + "then": "Het huisnummer is {_grbNumber}, wat overeenkomt met het GRB", + "hideInAnswer": { + "or": [ + "_grbNumber=", + "_grbNumber=none", + "_grbNumber=no number" + ] + } + }, + { + "if": { + "and": [ + "addr:housenumber:=", + "not:addr:housenumber=yes", + "fixme=" + ] + }, + "then": "Dit gebouw heeft geen nummer, net zoals in het GRB", + "hideInAnswer": "_grbNumber!=no number" } ] }, { + "question": "Wat is de wooneenheid-aanduiding?", "render": { - "nl": "De wooneeinheid-aanduiding is {addr:unit} " + "nl": "De wooneenheid-aanduiding is {addr:unit} " }, "freeform": { "key": "addr:unit" @@ -142,8 +173,13 @@ } ], "hideUnderlayingFeaturesMinPercentage": 0, - "icon": { - "render": "./assets/svg/bug.svg" + "label": { + "mappings": [ + { + "if": "addr:housenumber~*", + "then": "With MapComplete you can enrich OpenStreetMap with information on a single theme.
MapComplete asks a few questions about features relevant to the theme. Answer the questions, and in a few minutes your information will be available around the globe!
The theme maintainer defines the displayed elements, questions and languages for the theme.
Find out more
MapComplete always offers the next step to learn more about OpenStreetMap:
Did you notice an issue with MapComplete? Do you have a feature request? Do you want to help translate? Head over to the source code or issue tracker. Follow the edit count on OsmCha
", - "nl": "MapComplete is een OpenStreetMap-editor om eenvoudig informatie toe te voegen over één enkel onderwerp.
Om de editor zo simpel en gebruiksvriendelijk mogelijk te houden, worden enkel objecten relevant voor het thema getoond.Voor deze objecten kunnen dan vragen beantwoord worden, of men kan een nieuw punt van dit thema toevoegen.De maker van het thema kan er ook voor opteren om een aantal elementen van de gebruikersinterface uit te schakelen of de taal ervan in te stellen.
Een ander belangrijk aspect is om bezoekers stap voor stap meer te leren over OpenStreetMap:
Merk je een bug of wil je een extra feature? Wil je helpen vertalen? Bezoek dan de broncode en issue tracker. Volg de edits op OsmCha
", + "en": "With MapComplete you can enrich OpenStreetMap with information on a single theme. Answer a few questions, and within minutes your contributions will be available around the globe! The theme maintainer defines elements, questions and languages for the theme.
Find out more
MapComplete always offers the next step to learn more about OpenStreetMap.
Did you notice an issue? Do you have a feature request? Want to help translate? Head over to the source code or issue tracker.
Want to see your progress? Follow the edit count on OsmCha.
", + "nl": "Met MapComplete kun je OpenStreetMap verrijken met informatie over een bepaald thema. Beantwoord enkele vragen, en binnen een paar minuten is jouw bijdrage wereldwijd beschikbaar! De maker van het thema bepaalt de elementen, vragen en taalversies voor het thema.
Ontdek meer
MapComplete biedt altijd de volgende stap naar meer OpenStreetMap:
Merk je een bug of wil je een extra feature? Wil je helpen vertalen? Bezoek dan de broncode en issue tracker.
Wil je je vorderingen zien? Volg de edits op OsmCha.", "de": "MapComplete ist ein OpenStreetMap-Editor, der jedem helfen soll, auf einfache Weise Informationen zu einem Einzelthema hinzuzufügen.
Nur Merkmale, die für ein einzelnes Thema relevant sind, werden mit einigen vordefinierten Fragen gezeigt, um die Dinge einfach und extrem benutzerfreundlich zu halten.Der Themen-Betreuer kann auch eine Sprache für die Schnittstelle wählen, Elemente deaktivieren oder sogar in eine andere Website ohne jegliches UI-Element einbetten.
Ein weiterer wichtiger Teil von MapComplete ist jedoch, immer den nächsten Schritt anzubietenum mehr über OpenStreetMap zu erfahren:
Fällt Ihnen ein Problem mit MapComplete auf? Haben Sie einen Feature-Wunsch? Wollen Sie beim Übersetzen helfen? Gehen Sie zum Quellcode oder zur Problemverfolgung.
" }, "backgroundMap": {