diff --git a/AllTranslationAssets.ts b/AllTranslationAssets.ts index 259d261..661082e 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":"

Custom themes

These are previously visited user-generated themes.","nl":"

Onofficiële thema's

De onderstaande thema's heb je eerder bezocht en zijn gemaakt door andere OpenStreetMappers.","fr":"

Thèmes personnalisés

Vous avez déjà visité ces thèmes personnalisés.","gl":"

Temas personalizados

Estes son temas xerados por usuarios previamente visitados.","de":"

Kundenspezifische Themen

Dies sind zuvor besuchte benutzergenerierte Themen"} ), - aboutMapcomplete: new Translation( {"en":"

About MapComplete

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":"

Over MapComplete

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":"

Über MapComplete

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":"

About MapComplete

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":"

Over MapComplete

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":"

Über MapComplete

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 45aae95..c65a556 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 279b0a9..0730f28 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 b56fa01..1ade2d1 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": "
{addr:housenumber}
" + } + ] }, "width": { "render": "2" @@ -155,6 +191,7 @@ "color": { "render": "#00f" }, + "wayHandling": 2, "presets": [] } ], diff --git a/assets/translations.json b/assets/translations.json index 5562d4f..e98ff10 100644 --- a/assets/translations.json +++ b/assets/translations.json @@ -782,8 +782,8 @@ "de": "

Kundenspezifische Themen

Dies sind zuvor besuchte benutzergenerierte Themen" }, "aboutMapcomplete": { - "en": "

About MapComplete

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": "

Over MapComplete

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:

  • Een iframe zonder verdere uitleg linkt naar de volledige versie van MapComplete
  • De volledige versie heeft uitleg over OpenStreetMap
  • Als je niet aangemeld bent, wordt er je gevraagd dit te doen
  • Als je minstens één vraag hebt beantwoord, kan je punten gaan toevoegen.
  • Heb je genoeg changesets, dan verschijnen de tags die wat later doorlinken naar de wiki

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": "

About MapComplete

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.

  • * When embedded in a website, the iframe links to a full-screen MapComplete
  • * The full-screen version offers information about OpenStreetMap
  • * Viewing works without login, but editing requires an OSM login.
  • * If you are not logged in, you are asked to log in
  • * Once you answered a single question, you can add new points to the map
  • * After a while, actual OSM-tags are shown, later linking to the wiki


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": "

Over MapComplete

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:

  • * Indien ingebed in een website linkt het iframe naar de volledige MapComplete
  • * De volledige versie heeft uitleg over OpenStreetMap
  • * Bekijken kan altijd, maar wijzigen vereist een OSM-account
  • * Als je niet aangemeld bent, wordt je gevraagd dit te doen
  • * Als je minstens één vraag hebt beantwoord, kan je ook elementen toevoegen
  • * Heb je genoeg changesets, dan verschijnen de OSM-tags, nog later links naar de wiki

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": "

Über MapComplete

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:

  • Ein iframe ohne UI-Elemente verlinkt zu einer Vollbildversion
  • Die Vollbildversion bietet Informationen über OpenStreetMap
  • Wenn Sie nicht eingeloggt sind, werden Sie gebeten, sich einzuloggen
  • Wenn Sie eine einzige Frage beantwortet haben, dürfen Sie Punkte hinzufügen
  • An einem bestimmten Punkt erscheinen die tatsächlich hinzugefügten Tags, die später mit dem Wiki verlinkt werden...

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": {