From 14b8beacdc6f61aac7a4f0d41635d7f5527befe4 Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Wed, 19 May 2021 16:15:12 +0200 Subject: [PATCH] Finalize weblate flow --- README.md | 2 + assets/translations.json | 1143 --------------------- scripts/generateTranslationFromWeblate.ts | 53 - scripts/generateTranslations.ts | 60 +- 4 files changed, 61 insertions(+), 1197 deletions(-) delete mode 100644 assets/translations.json delete mode 100644 scripts/generateTranslationFromWeblate.ts diff --git a/README.md b/README.md index d5d779025..57ebc0be2 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,8 @@ To develop or deploy a version of MapComplete, have a look [to the guide](Docs/D The core strings of MapComplete are translated on [Hosted Weblate](https://hosted.weblate.org/projects/mapcomplete/core/). +[![Translation status](https://hosted.weblate.org/widgets/mapcomplete/-/multi-blue.svg)](https://hosted.weblate.org/engage/mapcomplete/) + A theme has translations into the preset.json (`assets/themes/themename/themename.json`). To add a translation: 0. Fork this repository diff --git a/assets/translations.json b/assets/translations.json deleted file mode 100644 index 8b9e3ede5..000000000 --- a/assets/translations.json +++ /dev/null @@ -1,1143 +0,0 @@ -{ - "image": { - "addPicture": { - "ca": "Afegir foto", - "de": "Bild hinzufügen", - "en": "Add picture", - "es": "Añadir foto", - "fr": "Ajoutez une photo", - "gl": "Engadir imaxe", - "nl": "Voeg foto toe" - }, - "uploadingPicture": { - "ca": "Pujant la teva imatge ...", - "de": "Ihr Bild hochladen...", - "en": "Uploading your picture...", - "es": "Subiendo tu imagen ...", - "fr": "Mise en ligne de votre photo...", - "gl": "Subindo a túa imaxe...", - "nl": "Bezig met een foto te uploaden..." - }, - "uploadingMultiple": { - "ca": "Pujant {count} de la teva imatge...", - "de": "{count} Ihrer Bilder hochgeladen...", - "en": "Uploading {count} pictures...", - "es": "Subiendo {count} de tus fotos...", - "fr": "Mise en ligne de {count} photos...", - "gl": "Subindo {count} das túas imaxes...", - "nl": "Bezig met {count} foto's te uploaden..." - }, - "pleaseLogin": { - "ca": "Entra per pujar una foto", - "de": "Bitte einloggen, um ein Bild hinzuzufügen", - "en": "Please login to add a picture", - "es": "Entra para subir una foto", - "fr": "Connectez-vous pour mettre une photo en ligne", - "gl": "Inicia a sesión para subir unha imaxe", - "nl": "Gelieve je aan te melden om een foto toe te voegen" - }, - "willBePublished": { - "ca": "La teva foto serà publicada: ", - "de": "Ihr Bild wird veröffentlicht: ", - "en": "Your picture will be published: ", - "es": "Tu foto será publicada: ", - "fr": "Votre photo va être publiée: ", - "gl": "A túa imaxe será publicada: ", - "nl": "Jouw foto wordt gepubliceerd: " - }, - "cco": { - "ca": "en domini públic", - "de": "in die Public Domain", - "en": "in the public domain", - "es": "en dominio público", - "fr": "sur le domaine publique", - "gl": "no dominio público", - "nl": "in het publiek domein" - }, - "ccbs": { - "ca": "sota llicència CC-BY-SA", - "de": "unter der CC-BY-SA-Lizenz", - "en": "under the CC-BY-SA-license", - "es": "bajo licencia CC-BY-SA", - "fr": "sous la license CC-BY-SA", - "gl": "baixo a licenza CC-BY-SA", - "nl": "onder de CC-BY-SA-licentie" - }, - "ccb": { - "ca": "sota la llicència CC-BY", - "de": "unter der CC-BY-Lizenz", - "en": "under the CC-BY-license", - "es": "bajo licencia CC-BY", - "fr": "sous la license CC-BY", - "gl": "baixo a licenza CC-BY", - "nl": "onder de CC-BY-licentie" - }, - "uploadFailed": { - "ca": "No s'ha pogut carregar la imatge. Tens Internet i es permeten API de tercers? El navegador Brave o UMatrix podria bloquejar-les.", - "de": "Wir konnten Ihr Bild nicht hochladen. Haben Sie Internet und sind API's von Dritten erlaubt? Brave Browser oder UMatrix blockieren evtl..", - "en": "Could not upload your picture. Do you have internet and are third party API's allowed? Brave browser or UMatrix might block them.", - "es": "No se pudo cargar la imagen. ¿Tienes Internet y se permiten API de terceros? El navegador Brave o UMatrix podría bloquearlas.", - "fr": "L'ajout de la photo a échoué. Êtes-vous connecté à Internet?", - "gl": "Non foi posíbel subir a imaxe. Tes internet e permites API de terceiros? O navegador Brave ou UMatrix podería bloquealas.", - "nl": "Afbeelding uploaden mislukt. Heb je internet? Gebruik je Brave of UMatrix? Dan moet je derde partijen toelaten." - }, - "respectPrivacy": { - "ca": "Respecta la privacitat. No fotografiïs gent o matrícules", - "de": "Bitte respektieren Sie die Privatsphäre. Fotografieren Sie weder Personen noch Nummernschilder", - "en": "Do not photograph people nor license plates. Do not upload Google Maps, Google Streetview or other copyrighted sources.", - "es": "Respeta la privacidad. No fotografíes gente o matrículas", - "fr": "Merci de respecter la vie privée. Ne publiez pas les plaques d'immatriculation.", - "gl": "Respecta a privacidade. Non fotografes xente ou matrículas", - "nl": "Fotografeer geen mensen of nummerplaten. Voeg geen Google Maps, Google Streetview of foto's met auteursrechten toe." - }, - "uploadDone": { - "ca": "La teva imatge ha estat afegida. Gràcies per ajudar.", - "de": "Ihr Bild wurde hinzugefügt. Vielen Dank für Ihre Hilfe!", - "en": "Your picture has been added. Thanks for helping out!", - "es": "Tu imagen ha sido añadida. Gracias por ayudar.", - "fr": "Votre photo est ajoutée. Merci beaucoup!", - "gl": "A túa imaxe foi engadida. Grazas por axudar.", - "nl": "Je afbeelding is toegevoegd. Bedankt om te helpen!" - }, - "dontDelete": { - "ca": "Cancel·lar", - "de": "Abbrechen", - "en": "Cancel", - "es": "Cancelar", - "fr": "Annuler", - "nl": "Terug" - }, - "doDelete": { - "ca": "Esborrar imatge", - "de": "Bild entfernen", - "en": "Remove image", - "es": "Borrar imagen", - "fr": "Supprimer l'image", - "nl": "Verwijder afbeelding" - }, - "isDeleted": { - "ca": "Esborrada", - "de": "Gelöscht", - "en": "Deleted", - "es": "Borrada", - "fr": "Supprimé", - "nl": "Verwijderd" - } - }, - "centerMessage": { - "loadingData": { - "ca": "Carregant dades...", - "de": "Daten werden geladen...", - "en": "Loading data...", - "es": "Cargando datos...", - "fr": "Chargement des données...", - "gl": "Cargando os datos...", - "nl": "Data wordt geladen..." - }, - "zoomIn": { - "ca": "Amplia per veure o editar les dades", - "de": "Vergrößern, um die Daten anzuzeigen oder zu bearbeiten", - "en": "Zoom in to view or edit the data", - "es": "Amplía para ver o editar los datos", - "fr": "Rapprochez-vous sur la carte pour voir ou éditer les données", - "gl": "Achégate para ollar ou editar os datos", - "nl": "Zoom in om de data te zien en te bewerken" - }, - "ready": { - "ca": "Fet.", - "de": "Erledigt!", - "en": "Done!", - "es": "Hecho.", - "fr": "Finis!", - "gl": "Feito!", - "nl": "Klaar!" - }, - "retrying": { - "ca": "La càrrega de dades ha fallat. Tornant-ho a intentar... ({count})", - "de": "Laden von Daten fehlgeschlagen. Erneuter Versuch... ({count})", - "en": "Loading data failed. Trying again in {count} seconds...", - "es": "La carga de datos ha fallado. Volviéndolo a probar... ({count})", - "fr": "Le chargement a échoué. Essayer à nouveau... ({count})", - "gl": "A carga dos datos fallou. Tentándoo de novo... ({count})", - "nl": "Data inladen mislukt - wordt opnieuw geprobeerd over {count} seconden" - } - }, - "index": { - "#": { - "ca": "These texts are shown above the theme buttons when no theme is loaded", - "de": "These texts are shown above the theme buttons when no theme is loaded", - "en": "These texts are shown above the theme buttons when no theme is loaded", - "es": "These texts are shown above the theme buttons when no theme is loaded", - "fr": "These texts are shown above the theme buttons when no theme is loaded", - "gl": "These texts are shown above the theme buttons when no theme is loaded", - "nl": "These texts are shown above the theme buttons when no theme is loaded" - }, - "title": { - "de": "Willkommen auf MapComplete", - "en": "Welcome to MapComplete", - "fr": "Bienvenue sur MapComplete", - "nl": "Welkom bij MapComplete" - }, - "intro": { - "de": "MapComplete ist eine OpenStreetMap-Anwendung, mit der Informationen zu einem bestimmten Thema angezeigt und angepasst werden können.", - "en": "MapComplete is an OpenStreetMap-viewer and editor, which shows you information about a specific theme.", - "fr": "MapComplete est une application qui permet de voir des informations d'OpenStreetMap sur un thème spécifique et de les éditer.", - "nl": "MapComplete is een OpenStreetMap applicatie waar informatie over een specifiek thema bekeken en aangepast kan worden." - }, - "pickTheme": { - "de": "Wähle unten ein Thema, um zu starten", - "en": "Pick a theme below to get started.", - "fr": "Choisissez un thème ci-dessous pour commencer.", - "nl": "Kies hieronder een thema om te beginnen." - } - }, - "general": { - "loginWithOpenStreetMap": { - "ca": "Entra a OpenStreetMap", - "de": "Anmeldung mit OpenStreetMap", - "en": "Login with OpenStreetMap", - "es": "Entra en OpenStreetMap", - "fr": "Se connecter avec OpenStreeMap", - "gl": "Inicia a sesión no OpenStreetMap", - "nl": "Aanmelden met OpenStreetMap" - }, - "welcomeBack": { - "ca": "Has entrat, benvingut.", - "de": "Sie sind eingeloggt, willkommen zurück!", - "en": "You are logged in, welcome back!", - "es": "Has entrado, bienvenido.", - "fr": "Vous êtes connecté. Bienvenue!", - "gl": "Iniciaches a sesión, benvido.", - "nl": "Je bent aangemeld. Welkom terug!" - }, - "loginToStart": { - "ca": "Entra per contestar aquesta pregunta", - "de": "Anmelden, um diese Frage zu beantworten", - "en": "Login to answer this question", - "es": "Entra para contestar esta pregunta", - "fr": "Connectez-vous pour répondre à cette question", - "gl": "Inicia a sesión para responder esta pregunta", - "nl": "Meld je aan om deze vraag te beantwoorden" - }, - "search": { - "search": { - "ca": "Cerca una ubicació", - "de": "Einen Ort suchen", - "en": "Search a location", - "es": "Busca una ubicación", - "fr": "Chercher un lieu", - "gl": "Procurar unha localización", - "nl": "Zoek naar een locatie" - }, - "searching": { - "ca": "Cercant...", - "de": "Auf der Suche...", - "en": "Searching...", - "es": "Buscando...", - "fr": "Chargement...", - "gl": "Procurando...", - "nl": "Aan het zoeken..." - }, - "nothing": { - "ca": "Res trobat.", - "de": "Nichts gefunden...", - "en": "Nothing found...", - "es": "Nada encontrado.", - "fr": "Rien n'a été trouvé...", - "gl": "Nada atopado...", - "nl": "Niet gevonden..." - }, - "error": { - "ca": "Alguna cosa no ha sortit bé...", - "de": "Etwas ging schief...", - "en": "Something went wrong...", - "es": "Alguna cosa no ha ido bien...", - "fr": "Quelque chose n'a pas marché...", - "gl": "Algunha cousa non foi ben...", - "nl": "Niet gelukt..." - } - }, - "returnToTheMap": { - "ca": "Tornar al mapa", - "de": "Zurück zur Karte", - "en": "Return to the map", - "es": "Volver al mapa", - "fr": "Retourner sur la carte", - "gl": "Voltar ó mapa", - "nl": "Naar de kaart" - }, - "save": { - "ca": "Desar", - "de": "Speichern", - "en": "Save", - "es": "Guardar", - "fr": "Sauvegarder", - "gl": "Gardar", - "nl": "Opslaan" - }, - "cancel": { - "ca": "Cancel·lar", - "de": "Abbrechen", - "en": "Cancel", - "es": "Cancelar", - "fr": "Annuler", - "gl": "Desbotar", - "nl": "Annuleren" - }, - "skip": { - "ca": "Saltar aquesta pregunta", - "de": "Frage überspringen", - "en": "Skip this question", - "es": "Saltar esta pregunta", - "fr": "Passer la question", - "gl": "Ignorar esta pregunta", - "nl": "Vraag overslaan" - }, - "oneSkippedQuestion": { - "ca": "Has ignorat una pregunta", - "de": "Eine Frage wurde übersprungen", - "en": "One question is skipped", - "es": "Has ignorado una pregunta", - "fr": "Une question a été passée", - "gl": "Ignoraches unha pregunta", - "nl": "Een vraag is overgeslaan" - }, - "skippedQuestions": { - "ca": "Has ignorat algunes preguntes", - "de": "Einige Fragen wurden übersprungen", - "en": "Some questions are skipped", - "es": "Has ignorado algunas preguntas", - "fr": "Questions passées", - "gl": "Ignoraches algunhas preguntas", - "nl": "Sommige vragen zijn overgeslaan" - }, - "number": { - "ca": "nombre", - "de": "Zahl", - "en": "number", - "es": "número", - "fr": "nombre", - "gl": "número", - "nl": "getal" - }, - "osmLinkTooltip": { - "ca": "Mira aquest objecte a OpenStreetMap per veure historial i altres opcions d'edició", - "de": "Dieses Objekt auf OpenStreetMap anschauen für die Geschichte und weitere Bearbeitungsmöglichkeiten", - "en": "See this object on OpenStreetMap for history and more editing options", - "es": "Mira este objeto en OpenStreetMap para ver historial y otras opciones de edición", - "fr": "Voir l'historique de cet objet sur OpenStreetMap et plus d'options d'édition", - "gl": "Ollar este obxecto no OpenStreetMap para ollar o historial e outras opcións de edición", - "nl": "Bekijk dit object op OpenStreetMap waar geschiedenis en meer aanpasopties zijn" - }, - "add": { - "addNew": { - "ca": "Afegir {category} aquí", - "de": "Hier eine neue {category} hinzufügen", - "en": "Add a new {category} here", - "es": "Añadir {category} aquí", - "fr": "Ajouter un/une {category} ici", - "gl": "Engadir {category} aquí", - "nl": "Voeg hier een {category} toe" - }, - "title": { - "ca": "Vols afegir un punt?", - "de": "Punkt hinzufügen?", - "en": "Add a new point?", - "es": "Quieres añadir un punto?", - "fr": "Pas de données", - "gl": "Queres engadir un punto?", - "nl": "Nieuw punt toevoegen?" - }, - "intro": { - "ca": "Has marcat un lloc on no coneixem les dades.
", - "de": "Sie haben irgendwo geklickt, wo noch keine Daten bekannt sind.
", - "en": "You clicked somewhere where no data is known yet.
", - "es": "Has marcado un lugar del que no conocemos los datos.
", - "fr": "Vous avez cliqué sur un endroit où il n'y a pas encore de données.
", - "gl": "Marcaches un lugar onde non coñecemos os datos.
", - "nl": "Je klikte ergens waar er nog geen data is. Kies hieronder welk punt je wilt toevoegen
" - }, - "pleaseLogin": { - "ca": "Entra per afegir un nou punt", - "de": "Bitte loggen Sie sich ein, um einen neuen Punkt hinzuzufügen", - "en": "Please log in to add a new point", - "es": "Entra para añadir un nuevo punto", - "fr": "Vous devez vous connecter pour ajouter un point", - "gl": "Inicia a sesión para engadir un novo punto", - "nl": "Gelieve je aan te melden om een punt to te voegen" - }, - "zoomInFurther": { - "ca": "Apropa per afegir un punt.", - "de": "Weiter einzoomen, um einen Punkt hinzuzufügen.", - "en": "Zoom in further to add a point.", - "es": "Acerca para añadir un punto.", - "fr": "Rapprochez vous pour ajouter un point.", - "gl": "Achégate para engadir un punto.", - "nl": "Gelieve verder in te zoomen om een punt toe te voegen." - }, - "stillLoading": { - "ca": "Les dades es segueixen carregant. Espera una mica abans d'afegir cap punt.", - "de": "Die Daten werden noch geladen. Bitte warten Sie etwas, bevor Sie einen neuen Punkt hinzufügen.", - "en": "The data is still loading. Please wait a bit before you add a new point.", - "es": "Los datos se siguen cargando. Espera un poco antes de añadir ningún punto.", - "fr": "Chargement des données en cours. Patientez un instant avant d'ajouter un nouveau point.", - "gl": "Os datos seguen a cargarse. Agarda un intre antes de engadir ningún punto.", - "nl": "De data wordt nog geladen. Nog even geduld en dan kan je een punt toevoegen." - }, - "confirmIntro": { - "ca": "

Afegir {title} aquí?

El punt que estàs creant el veurà tothom. Només afegeix coses que realment existeixin. Moltes aplicacions fan servir aquestes dades.", - "de": "

Hier einen {title} hinzufügen?

Der Punkt, den Sie hier anlegen, wird für alle sichtbar sein. Bitte fügen Sie der Karte nur dann Dinge hinzu, wenn sie wirklich existieren. Viele Anwendungen verwenden diese Daten.", - "en": "

Add a {title} here?

The point you create here will be visible for everyone. Please, only add things on to the map if they truly exist. A lot of applications use this data.", - "es": "

Añadir {title} aquí?

El punto que estás creando lo verá todo el mundo. Sólo añade cosas que realmente existan. Muchas aplicaciones usan estos datos.", - "fr": "

Ajouter un/une {title} ici?

Le point que vous ajouter sera visible par tout le monde. Merci de vous assurer que ce point existe réellement. Beaucoup d'autres applications utilisent ces données.", - "gl": "

Engadir {title} aquí?

O punto que estás a crear será ollado por todo o mundo. Só engade cousas que realmente existan. Moitas aplicacións empregan estes datos.", - "nl": "

Voeg hier een {title} toe?

Het punt dat je hier toevoegt, is zichtbaar voor iedereen. Veel applicaties gebruiken deze data, voeg dus enkel punten toe die echt bestaan." - }, - "confirmButton": { - "ca": "Afegir {category} aquí", - "de": "Hier eine {category} hinzufügen", - "en": "Add a {category} here.
Your addition is visible for everyone
", - "es": "Añadir {category} aquí", - "fr": "Ajouter un/une {category} ici", - "gl": "Engadir {category} aquí", - "nl": "Voeg hier een {category} toe
Je toevoeging is voor iedereen zichtbaar
" - }, - "openLayerControl": { - "ca": "Obrir el control de capes", - "de": "Das Ebenen-Kontrollkästchen öffnen", - "en": "Open the layer control box", - "es": "Abrir el control de capas", - "fr": "Ouvrir la panneau de contrôle", - "nl": "Open de laag-instellingen" - }, - "layerNotEnabled": { - "ca": "La capa {layer} no està habilitada. Fes-ho per poder afegir un punt a aquesta capa", - "de": "Die Ebene {layer} ist nicht aktiviert. Aktivieren Sie diese Ebene, um einen Punkt hinzuzufügen", - "en": "The layer {layer} is not enabled. Enable this layer to add a point", - "es": "La capa {layer} no está habilitada. Hazlo para poder añadir un punto en esta capa", - "fr": "La couche [layer] est désactivée. Activez-la pour ajouter un point.", - "nl": "De laag {layer} is gedeactiveerd. Activeer deze om een punt toe te voegen" - } - }, - "pickLanguage": { - "ca": "Tria idioma: ", - "de": "Wählen Sie eine Sprache: ", - "en": "Choose a language: ", - "es": "Escoge idioma: ", - "fr": "Choisir la langue: ", - "gl": "Escoller lingua: ", - "nl": "Kies je taal: " - }, - "about": { - "ca": "Edita facilment i afegeix punts a OpenStreetMap d'una temàtica determinada", - "de": "OpenStreetMap für ein bestimmtes Thema einfach bearbeiten und hinzufügen", - "en": "Easily edit and add OpenStreetMap for a certain theme", - "es": "Edita facilmente y añade puntos en OpenStreetMap de un tema concreto", - "fr": "Éditer facilement et ajouter OpenStreetMap pour un certain thème", - "gl": "Editar doadamente e engadir puntos no OpenStreetMap dun eido en concreto", - "nl": "Bewerk en voeg data toe aan OpenStreetMap over een specifiek onderwerp op een gemakkelijke manier" - }, - "nameInlineQuestion": { - "ca": "{category}: El seu nom és $$$", - "de": "Der Name dieser {category} ist $$$", - "en": "The name of this {category} is $$$", - "es": "{category}: Su nombre es $$$", - "fr": "Le nom de cet/cette {category} est $$$", - "gl": "{category}: O teu nome é $$$", - "nl": "De naam van dit {category} is $$$" - }, - "noNameCategory": { - "ca": "{category} sense nom", - "de": "{category} ohne Namen", - "en": "{category} without a name", - "es": "{category} sin nombre", - "fr": "{category} sans nom", - "gl": "{category} sen nome", - "nl": "{category} zonder naam" - }, - "questions": { - "phoneNumberOf": { - "ca": "Quin és el telèfon de {category}?", - "de": "Wie lautet die Telefonnummer der {category}?", - "en": "What is the phone number of {category}?", - "es": "Qué teléfono tiene {category}?", - "fr": "Quel est le nom de {category}?", - "gl": "Cal é o número de teléfono de {category}?", - "nl": "Wat is het telefoonnummer van {category}?" - }, - "phoneNumberIs": { - "ca": "El número de telèfon de {category} és {phone}", - "de": "Die Telefonnummer der {category} lautet {phone}", - "en": "The phone number of this {category} is {phone}", - "es": "El número de teléfono de {category} es {phone}", - "fr": "Le numéro de téléphone de {category} est {phone}", - "gl": "O número de teléfono de {category} é {phone}", - "nl": "Het telefoonnummer van {category} is {phone}" - }, - "websiteOf": { - "ca": "Quina és la pàgina web de {category}?", - "de": "Was ist die Website der {category}?", - "en": "What is the website of {category}?", - "es": "Cual es la página web de {category}?", - "fr": "Quel est le site internet de {category}?", - "gl": "Cal é a páxina web de {category}?", - "nl": "Wat is de website van {category}?" - }, - "websiteIs": { - "ca": "Pàgina web: {website}", - "de": "Webseite: {website}", - "en": "Website: {website}", - "es": "Página web: {website}", - "fr": "Site web: {website}", - "gl": "Páxina web: {website}", - "nl": "Website: {website}" - }, - "emailOf": { - "ca": "Quina és l'adreça de correu-e de {category}?", - "de": "Wie lautet die E-Mail-Adresse der {category}?", - "en": "What is the email address of {category}?", - "es": "¿Qué dirección de correu tiene {category}?", - "fr": "Quel est l'adresse email de {category}?", - "gl": "Cal é o enderezo de correo electrónico de {category}?", - "nl": "Wat is het email-adres van {category}?" - }, - "emailIs": { - "ca": "L'adreça de correu de {category} és {email}", - "de": "Die E-Mail-Adresse dieser {category} lautet {email}", - "en": "The email address of this {category} is {email}", - "es": "La dirección de correo de {category} es {email}", - "fr": "L'adresse email de {category} est {email}", - "gl": "O enderezo de correo electrónico de {category} é {email}", - "nl": "Het email-adres van {category} is {email}" - } - }, - "openStreetMapIntro": { - "ca": "

Un mapa obert

No seria genial si hagués un únic mapa, que tothom pogués utilitzar i editar lliurement?Un sol lloc on emmagatzemar tota la informació geogràfica? Llavors tots aquests llocs web amb mapes diferents petits i incompatibles (que sempre estaran desactulitzats) ja no serien necessaris.

OpenStreetMap és aquest mapa. Les dades del mapa es poden utilitzar de franc (amb atribució i publicació de canvis en aquestes dades). A més a més, tothom pot agregar lliurement noves dades i corregir errors. De fet, aquest lloc web també fa servir OpenStreetMap. Totes les dades provenen d'allà i les teves respostes i correccions també s'afegiran allà.

Moltes persones i aplicacions ja utilitzen OpenStreetMap: Maps.me, OsmAnd, però també els mapes de Facebook, Instagram, Apple i Bing són (en part) impulsats ​​per OpenStreetMap. Si canvies alguna cosa aquí també es reflectirà en aquestes aplicacions en la seva propera actualització.

", - "de": "

Eine offene Karte

Wäre es nicht toll, wenn es eine offene Karte gäbe, die von jedem angepasst und benutzt werden könnte? Eine Karte, zu der jeder seine Interessen hinzufügen kann? Dann bräuchte man all diese Websites mit unterschiedlichen, kleinen und inkompatiblen Karten (die immer veraltet sind) nicht mehr.

OpenStreetMap ist diese offene Karte. Die Kartendaten können kostenlos verwendet werden (mit Attribution und Veröffentlichung von Änderungen an diesen Daten). Darüber hinaus können Sie die Karte kostenlos ändern und Fehler beheben, wenn Sie ein Konto erstellen. Diese Website basiert ebenfalls auf OpenStreetMap. Wenn Sie eine Frage hier beantworten, geht die Antwort auch dorthin.

Viele Menschen und Anwendungen nutzen OpenStreetMap bereits: Maps.me, OsmAnd, verschiedene spezialisierte Routenplaner, die Hintergrundkarten auf Facebook, Instagram,...
Sogar Apple Maps und Bing Maps verwenden OpenStreetMap in ihren Karten!

Wenn Sie hier einen Punkt hinzufügen oder eine Frage beantworten, wird er nach einer Weile in all diesen Anwendungen sichtbar sein.

", - "en": "

An Open Map

Wouldn't it be cool if there was a single map, which everyone could freely use and edit? A single place to store all geo-information? Then, all those websites with different, small and incompatible maps (which are always outdated) wouldn't be needed anymore.

OpenStreetMap is this map. The map data can be used for free (with attribution and publication of changes to that data). On top of that, everyone can freely add new data and fix errors. This website uses OpenStreetMap as well. All the data is from there, and your answers and corrections are added there as well.

A ton of people and application already use OpenStreetMap: Maps.me, OsmAnd, but also the maps at Facebook, Instagram, Apple-maps and Bing-maps are (partly) powered by OpenStreetMap. If you change something here, it'll be reflected in those applications too - after their next update!

", - "es": "

Un mapa abierto

¿No sería genial si hubiera un solo mapa, que todos pudieran usar y editar libremente?¿Un solo lugar para almacenar toda la información geográfica? Entonces, todos esos sitios web con mapas diferentes, pequeños e incompatibles (que siempre están desactualizados) ya no serían necesarios.

OpenStreetMap es ese mapa. Los datos del mapa se pueden utilizar de forma gratuita (con atribución y publicación de cambios en esos datos). Además de eso, todos pueden agregar libremente nuevos datos y corregir errores. Este sitio web también usa OpenStreetMap. Todos los datos provienen de allí, y tus respuestas y correcciones también se añadirán allí.

Muchas personas y aplicaciones ya usan OpenStreetMap: Maps.me, OsmAnd, pero también los mapas de Facebook, Instagram, Apple y Bing son (en parte) impulsados ​​por OpenStreetMap. Si cambias algo aquí, también se reflejará en esas aplicaciones, en su próxima actualización

", - "fr": "

Une carte ouverte

Ne serait-il pas génial d'avoir sur une carte que tout le monde pourrait éditer ouvertement? Une seule et unique plateforme regroupant toutes les informations geographiques? Ainsi nous n'aurons plus besoin de toutes ces cartes petites et incompatibles cartes (souvent non mises à jour).

OpenStreetMap est la carte qu'il vous faut!. Toutes les données de cette carte peuvent être utilisé gratuitement (avec d'attribution et de publication des changements de données). De plus tout le monde est libre d'ajouter de nouvelles données et de corriger les erreurs. Ce site internet utilise également OpenStreetMap. Toutes les données en proviennent et tous les ajouts et modifications y seront également ajoutés.

De nombreux individus et d'applications utilisent déjà OpenStreetMap: Maps.me, OsmAnd, mais aussi les cartes de Facebook, Instagram, Apple-maps et Bing-maps sont (en partie) supporté par OpenStreetMap. Si vous modifié quelque chose ici, ces changements seront incorporer dans ces applications dès leurs mises à jour!

", - "gl": "

Un mapa aberto

Non sería xenial se houbera un só mapa, que todos puideran empregar e editar de xeito libre?Un só lugar para almacenar toda a información xeográfica? Entón, todos eses sitios web con mapas diferentes, pequenos e incompatíbeis (que sempre están desactualizados) xa non serían necesarios.

OpenStreetMap é ese mapa. Os datos do mapa pódense empregar de balde (con atribución e publicación de modificacións neses datos). Ademais diso, todos poden engadir de xeito ceibe novos datos e corrixir erros. Este sitio web tamén emprega o OpenStreetMap. Todos os datos proveñen de alí, e as túas respostas e correccións tamén serán engadidas alí.

Moitas persoas e aplicacións xa empregan o OpenStreetMap: Maps.me, OsmAnd, pero tamén os mapas do Facebook, Instagram, Apple e Bing son (en parte) impulsados ​​polo OpenStreetMap. Se mudas algo aquí, tamén será reflexado nesas aplicacións, na súa seguinte actualización!

", - "nl": "

Een open kaart

Zou het niet fantastisch zijn als er een open kaart zou zijn die door iedereen aangepast én gebruikt kan worden? Een kaart waar iedereen zijn interesses aan zou kunnen toevoegen? Dan zouden er geen duizend-en-één verschillende kleine kaartjes, websites, ... meer nodig zijn

OpenStreetMap is deze open kaart. Je mag de kaartdata gratis gebruiken (mits bronvermelding en herpublicatie van aanpassingen). Daarenboven mag je de kaart ook gratis aanpassen als je een account maakt. Ook deze website is gebaseerd op OpenStreetMap. Als je hier een vraag beantwoord, gaat het antwoord daar ook naartoe

Tenslotte zijn er reeds vele gebruikers van OpenStreetMap. Denk maar Maps.me, OsmAnd, verschillende gespecialiseerde routeplanners, de achtergrondkaarten op Facebook, Instagram,...
Zelfs Apple Maps en Bing-Maps gebruiken OpenStreetMap in hun kaarten!

Kortom, als je hier een punt toevoegd of een vraag beantwoord, zal dat na een tijdje ook in al dié applicaties te zien zijn.

" - }, - "attribution": { - "attributionTitle": { - "en": "Attribution notice", - "fr": "Crédits", - "nl": "Met dank aan" - }, - "attributionContent": { - "en": "

All data is provided by OpenStreetMap, freely reusable under the Open DataBase License.

", - "fr": "

Toutes les données sont fournies par OpenStreetMap, librement réutilisables sous Open DataBase License.

", - "nl": "

Alle data is voorzien door OpenStreetMap, gratis en vrij te hergebruiken onder de Open DataBase Licentie.

" - }, - "themeBy": { - "en": "Theme maintained by {author}", - "fr": "Thème maintenu par {author}", - "nl": "Thema gemaakt door {author}" - }, - "iconAttribution": { - "title": { - "en": "Used icons", - "fr": "Icones utilisées", - "nl": "Iconen en afbeeldingen" - } - }, - "mapContributionsBy": { - "en": "The current visible data has edits made by {contributors}" - }, - "mapContributionsByAndHidden": { - "en": "The current visible data has edits made by {contributors} and {hiddenCount} more contributors" - } - }, - "sharescreen": { - "intro": { - "ca": "

Comparteix aquest mapa

Comparteix aquest mapa copiant l'enllaç de sota i enviant-lo a amics i família:", - "de": "

Diese Karte teilen

Sie können diese Karte teilen, indem Sie den untenstehenden Link kopieren und an Freunde und Familie schick", - "en": "

Share this map

Share this map by copying the link below and sending it to friends and family:", - "es": "

Comparte este mapa

Comparte este mapa copiando el enlace de debajo y enviándolo a amigos y familia:", - "fr": "

Partager cette carte

Partagez cette carte en copiant le lien suivant et envoyez-le à vos amis:", - "gl": "

Comparte este mapa

Comparte este mapa copiando a ligazón de embaixo e enviándoa ás amizades e familia:", - "nl": "

Deel deze kaart

Kopieer onderstaande link om deze kaart naar vrienden en familie door te sturen:" - }, - "addToHomeScreen": { - "ca": "

Afegir-lo a la pantalla d'inici

Pots afegir aquesta web a la pantalla d'inici del teu smartphone per a que es vegi més nadiu. Apreta al botó 'afegir a l'inici' a la barra d'adreces URL per fer-ho.", - "de": "

Zum Startbildschirm hinzufügen

Sie können diese Website einfach zum Startbildschirm Ihres Smartphones hinzufügen, um ein natives Gefühl zu erhalten. Klicken Sie dazu in der URL-Leiste auf die Schaltfläche 'Zum Startbildschirm hinzufügen'.", - "en": "

Add to your home screen

You can easily add this website to your smartphone home screen for a native feel. Click the 'add to home screen button' in the URL bar to do this.", - "es": "

Añadir a la pantalla de inicio

Puedes añadir esta web en la pantalla de inicio de tu smartphone para que se vea más nativo. Aprieta el botón 'añadir a inicio' en la barra de direcciones URL para hacerlo.", - "fr": "

Ajouter à votre page d'accueil

Vous pouvez facilement ajouter la carte à votre écran d'accueil de téléphone. Cliquer sur le boutton 'ajouter à l'ecran d'accueil' dans la barre d'adresse pour éffectuer cette tâche.", - "gl": "

Engadir á pantalla de inicio

Podes engadir esta web na pantalla de inicio do teu smartphone para que se vexa máis nativo. Preme o botón 'engadir ó inicio' na barra de enderezos URL para facelo.", - "nl": "

Voeg toe aan je thuis-scherm

Je kan deze website aan je thuisscherm van je smartphone toevoegen voor een native feel" - }, - "embedIntro": { - "ca": "

Inclou-ho a la teva pàgina web

Inclou aquest mapa dins de la teva pàgina web.
T'animem a que ho facis, no cal que demanis permís.
És de franc, i sempre ho serà. A més gent que ho faci servir més valuós serà.", - "de": "

Auf Ihrer Website einbetten

Bitte, betten Sie diese Karte in Ihre Website ein.
Wir ermutigen Sie, es zu tun - Sie müssen nicht einmal um Erlaubnis fragen.
Es ist kostenlos und wird es immer sein. Je mehr Leute sie benutzen, desto wertvoller wird sie.", - "en": "

Embed on your website

Please, embed this map into your website.
We encourage you to do it - you don't even have to ask permission.
It is free, and always will be. The more people using this, the more valuable it becomes.", - "es": "

Inclúyelo en tu página web

Incluye este mapa en tu página web.
Te animamos a que lo hagas, no hace falta que pidas permiso.
Es gratis, y siempre lo será. A más gente que lo use más valioso será.", - "fr": "

Incorporer à votre website

AJouter la carte à votre website.
Nous vous y encourageons - pas besoin de permission.
C'est gratuit et pour toujours. Au plus de personnes l'utilisent, au mieux.", - "gl": "

Inclúeo na túa páxina web

Inclúe este mapa na túa páxina web.
Animámoche a que o fagas, non fai falla que pidas permiso.
É de balde, e sempre será. Canta máis xente que o empregue máis valioso será.", - "nl": "

Plaats dit op je website

Voeg dit kaartje toe op je eigen website.
We moedigen dit zelfs aan - je hoeft geen toestemming te vragen.
Het is gratis en zal dat altijd blijven. Hoe meer het gebruikt wordt, hoe waardevoller" - }, - "copiedToClipboard": { - "ca": "Enllaç copiat al portapapers", - "de": "Link in die Zwischenablage kopiert", - "en": "Link copied to clipboard", - "es": "Enlace copiado en el portapapeles", - "fr": "Lien copié dans le presse-papier", - "gl": "Ligazón copiada ó portapapeis", - "nl": "Link gekopieerd naar klembord" - }, - "thanksForSharing": { - "ca": "Gràcies per compartir", - "de": "Danke für das Teilen!", - "en": "Thanks for sharing!", - "es": "Gracias por compartir", - "fr": "Merci d'avoir partagé!", - "gl": "Grazas por compartir!", - "nl": "Bedankt om te delen!" - }, - "editThisTheme": { - "ca": "Editar aquest repte", - "de": "Dieses Thema bearbeiten", - "en": "Edit this theme", - "es": "Editar este reto", - "fr": "Editer ce thème", - "gl": "Editar este tema", - "nl": "Pas dit thema aan" - }, - "editThemeDescription": { - "ca": "Afegir o canviar preguntes d'aquest repte", - "de": "Fragen zu diesem Kartenthema hinzufügen oder ändern", - "en": "Add or change questions to this map theme", - "es": "Añadir o cambiar preguntas de este reto", - "fr": "Ajouter ou modifier des questions à ce thème", - "gl": "Engadir ou mudar preguntas a este tema do mapa", - "nl": "Pas vragen aan of voeg vragen toe aan dit kaartthema" - }, - "fsUserbadge": { - "ca": "Activar el botó d'entrada", - "de": "Anmelde-Knopf aktivieren", - "en": "Enable the login button", - "es": "Activar el botón de entrada", - "fr": "Activer le bouton de connexion", - "gl": "Activar botón de inicio de sesión", - "nl": "Activeer de login-knop" - }, - "fsSearch": { - "ca": "Activar la barra de cerca", - "de": "Suchleiste aktivieren", - "en": "Enable the search bar", - "es": "Activar la barra de búsqueda", - "fr": "Activer la barre de recherche", - "gl": "Activar a barra de procura", - "nl": "Activeer de zoekbalk" - }, - "fsWelcomeMessage": { - "ca": "Mostra el missatge emergent de benvinguda i pestanyes associades", - "de": "Popup der Begrüßungsnachricht und zugehörige Registerkarten anzeigen", - "en": "Show the welcome message popup and associated tabs", - "es": "Muestra el mensaje emergente de bienvenida y pestañas asociadas", - "fr": "Afficher le message de bienvenue et les onglets associés", - "gl": "Amosar a xanela emerxente da mensaxe de benvida e as lapelas asociadas", - "nl": "Toon het welkomstbericht en de bijhorende tabbladen" - }, - "fsLayers": { - "ca": "Activar el control de capes", - "de": "Aktivieren der Layersteuerung", - "en": "Enable the layer control", - "es": "Activar el control de capas", - "fr": "Activer le contrôle des couches", - "gl": "Activar o control de capas", - "nl": "Toon de knop voor laagbediening" - }, - "fsLayerControlToggle": { - "ca": "Iniciar el control de capes avançat", - "de": "Mit der erweiterten Ebenenkontrolle beginnen", - "en": "Start with the layer control expanded", - "es": "Iniciar el control de capas avanzado", - "fr": "Démarrer avec le contrôle des couches ouvert", - "gl": "Comenza co control de capas expandido", - "nl": "Toon de laagbediening meteen volledig" - }, - "fsAddNew": { - "ca": "Activar el botó d'afegir nou PDI'", - "de": "Schaltfläche 'neuen POI hinzufügen' aktivieren", - "en": "Enable the 'add new POI' button", - "es": "Activar el botón de añadir nuevo PDI'", - "fr": "Activer le bouton 'ajouter un POI'", - "gl": "Activar o botón de 'engadir novo PDI'", - "nl": "Activeer het toevoegen van nieuwe POI" - }, - "fsGeolocation": { - "ca": "Activar el botó de 'geolocalitza'm' (només mòbil)", - "de": "Die Schaltfläche 'Mich geolokalisieren' aktivieren (nur für Mobil)", - "en": "Enable the 'geolocate-me' button (mobile only)", - "es": "Activar el botón de 'geolocalízame' (només mòbil)", - "fr": "Activer le bouton 'Localisez-moi' (seulement sur mobile)", - "gl": "Activar o botón de 'xeolocalizarme' (só móbil)", - "nl": "Toon het knopje voor geolocalisatie (enkel op mobiel)" - }, - "fsIncludeCurrentBackgroundMap": { - "ca": "Incloure l'opció de fons actual {name}", - "de": "Die aktuelle Hintergrundwahl einschließen {name}", - "en": "Include the current background choice {name}", - "es": "Incluir la opción de fondo actual {name}", - "fr": "Include le choix actuel d'arrière plan {name}", - "nl": "Gebruik de huidige achtergrond {name}" - }, - "fsIncludeCurrentLayers": { - "ca": "Incloure les opcions de capa actual", - "de": "Die aktuelle Ebenenauswahl einbeziehen", - "en": "Include the current layer choices", - "es": "Incluir las opciones de capa actual", - "fr": "Inclure la couche selectionnée", - "nl": "Toon enkel de huidig getoonde lagen" - }, - "fsIncludeCurrentLocation": { - "ca": "Incloure localització actual", - "de": "Aktuelle Position einbeziehen", - "en": "Include current location", - "es": "Incluir localización actual", - "fr": "Inclure l'emplacement actuel", - "nl": "Start op de huidige locatie" - } - }, - "morescreen": { - "intro": { - "ca": "

Més peticions

T'agrada captar dades?
Hi ha més capes disponibles.", - "de": "

Weitere Quests

Sammeln Sie gerne Geodaten?
Es sind weitere Themen verfügbar.", - "en": "

More thematic maps?

Do you enjoy collecting geodata?
There are more themes available.", - "es": "

Más peticiones

Te gusta captar datos?
Hay más capas disponibles.", - "fr": "

Plus de thèmes

Vous aimez collecter des données?
Il y a plus de thèmes disponibles.", - "gl": "

Máis tarefas

Góstache captar datos?
Hai máis capas dispoñíbeis.", - "nl": "

Meer thematische kaarten

Vind je het leuk om geodata te verzamelen?
Hier vind je meer kaartthemas." - }, - "requestATheme": { - "ca": "Si vols que et fem una petició pròpia , demana-la aquí.", - "de": "Wenn Sie einen speziell angefertigte Quest wünschen, können Sie diesen hier anfragen.", - "en": "If you want a custom-built quest, request it here.", - "es": "Si quieres que te hagamos una petición propia , pídela aquí.", - "fr": "Si vous voulez une autre carte thématique, demande-la ici.", - "gl": "Se queres que che fagamos unha tarefa propia , pídea aquí.", - "nl": "Wil je een eigen kaartthema, vraag dit hier aan." - }, - "streetcomplete": { - "ca": "Una altra aplicació similar és StreetComplete.", - "de": "Eine andere, ähnliche Anwendung ist StreetComplete.", - "en": "Another, similar application is StreetComplete.", - "es": "Otra aplicación similar es StreetComplete.", - "fr": "Une autre application similaire est StreetComplete.", - "gl": "Outra aplicación semellante é StreetComplete.", - "nl": "Een andere, gelijkaardige Android-applicatie is StreetComplete." - }, - "createYourOwnTheme": { - "ca": "Crea la teva pròpia petició completa de MapComplete des de zero.", - "de": "Erstellen Sie Ihr eigenes MapComplete-Thema von Grund auf neu", - "en": "Create your own MapComplete theme from scratch", - "es": "Crea tu propia petición completa de MapComplete desde cero.", - "fr": "Créez votre propre MapComplete carte", - "gl": "Crea o teu propio tema completo do MapComplete dende cero.", - "nl": "Maak je eigen MapComplete-kaart" - } - }, - "readYourMessages": { - "ca": "Llegeix tots els teus missatges d'OpenStreetMap abans d'afegir nous punts.", - "de": "Bitte lesen Sie alle Ihre OpenStreetMap-Nachrichten, bevor Sie einen neuen Punkt hinzufügen", - "en": "Please, read all your OpenStreetMap-messages before adding a new point.", - "es": "Lee todos tus mensajes de OpenStreetMap antes de añadir nuevos puntos.", - "fr": "Merci de lire tous vos messages sur OpenStreetMap avant d'ajouter un nouveau point.", - "gl": "Le todos a túas mensaxes do OpenStreetMap antes de engadir novos puntos.", - "nl": "Gelieve eerst je berichten op OpenStreetMap te lezen alvorens nieuwe punten toe te voegen." - }, - "fewChangesBefore": { - "ca": "Contesta unes quantes preguntes sobre punts existents abans d'afegir-ne un de nou.", - "de": "Bitte beantworten Sie ein paar Fragen zu bestehenden Punkten, bevor Sie einen neuen Punkt hinzufügen.", - "en": "Please, answer a few questions of existing points before adding a new point.", - "es": "Contesta unas cuantas preguntas sobre puntos existentes antes de añadir nuevos.", - "fr": "Merci de répondre à quelques questions à propos de points déjà existants avant d'ajouter de nouveaux points", - "gl": "Responde unhas cantas preguntas sobre puntos existentes antes de engadir novos.", - "nl": "Gelieve eerst enkele vragen van bestaande punten te beantwoorden vooraleer zelf punten toe te voegen." - }, - "goToInbox": { - "ca": "Obrir missatges", - "de": "Posteingang öffnen", - "en": "Open inbox", - "es": "Abrir mensajes", - "fr": "Ouvrir les messages", - "gl": "Abrir mensaxes", - "nl": "Ga naar de berichten" - }, - "getStartedLogin": { - "ca": "Entra a OpenStreetMap per començar", - "de": "Mit OpenStreetMap einloggen und loslegen", - "en": "Login with OpenStreetMap to get started", - "es": "Entra en OpenStreetMap para empezar", - "fr": "Connectez-vous avec OpenStreetMap pour commencer", - "nl": "Login met OpenStreetMap om te beginnen" - }, - "getStartedNewAccount": { - "ca": " o crea un nou compte", - "de": " oder ein neues Konto anlegen", - "en": " or create a new account", - "es": " o crea una nueva cuenta", - "fr": " ou enregistrez-vous", - "gl": " ou crea unha nova conta", - "nl": " of maak een nieuwe account aan" - }, - "noTagsSelected": { - "ca": "No s'han seleccionat etiquetes", - "de": "Keine Tags ausgewählt", - "en": "No tags selected", - "es": "No se han seleccionado etiquetas", - "fr": "Aucune balise sélectionnée", - "gl": "Non se seleccionaron etiquetas", - "nl": "Geen tags geselecteerd" - }, - "customThemeIntro": { - "de": "

Kundenspezifische Themen

Dies sind zuvor besuchte benutzergenerierte Themen", - "en": "

Custom themes

These are previously visited user-generated themes.", - "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.", - "nl": "

Onofficiële thema's

De onderstaande thema's heb je eerder bezocht en zijn gemaakt door andere OpenStreetMappers." - }, - "aboutMapcomplete": { - "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.

", - "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.

", - "fr": "

À propos de MapComplete

Avec MapComplete vous pouvez enrichir OpenStreetMap d'informations sur un theme unique. Répondez à quelques questions, et en quelques minutes vos contributions seront disponible dans le monde entier ! Le concepteur du thème definis les éléments, questions et langues pour le thème.

En savoir plus

MapComplete propose toujours l'étape suivante pour en apprendre plus sur OpenStreetMap.


Vous avez remarqué un problème ? Vous souhaitez demander une fonctionnalité ? Vous voulez aider à traduire ? Allez voir le code source ou l'issue tracker.

Vous voulez visualiser votre progression ? Suivez le compteur d'édition sur 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.

" - }, - "backgroundMap": { - "ca": "Mapa de fons", - "de": "Hintergrundkarte", - "en": "Background map", - "es": "Mapa de fondo", - "fr": "Carte de fonds", - "nl": "Achtergrondkaart" - }, - "layerSelection": { - "zoomInToSeeThisLayer": { - "ca": "Amplia per veure aquesta capa", - "de": "Vergrößern, um diese Ebene zu sehen", - "en": "Zoom in to see this layer", - "es": "Amplía para ver esta capa", - "fr": "Aggrandissez la carte pour voir cette couche", - "nl": "Vergroot de kaart om deze laag te zien" - }, - "title": { - "en": "Select layers", - "fr": "Selectionner des couches", - "nl": "Selecteer lagen" - } - }, - "weekdays": { - "abbreviations": { - "monday": { - "ca": "Dil", - "de": "Mo", - "en": "Mon", - "es": "Lun", - "fr": "Lun", - "nl": "Maan" - }, - "tuesday": { - "ca": "Dim", - "de": "Di", - "en": "Tue", - "es": "Mar", - "fr": "Mar", - "nl": "Din" - }, - "wednesday": { - "ca": "Dic", - "de": "Mi", - "en": "Wed", - "es": "Mie", - "fr": "Mer", - "nl": "Woe" - }, - "thursday": { - "ca": "Dij", - "de": "Do", - "en": "Thu", - "es": "Jue", - "fr": "Jeu", - "nl": "Don" - }, - "friday": { - "ca": "Div", - "de": "Fr", - "en": "Fri", - "es": "Vie", - "fr": "Ven", - "nl": "Vrij" - }, - "saturday": { - "ca": "Dis", - "de": "Sa", - "en": "Sat", - "es": "Sab", - "fr": "Sam", - "nl": "Zat" - }, - "sunday": { - "ca": "Diu", - "de": "So", - "en": "Sun", - "es": "Dom", - "fr": "Dim", - "nl": "Zon" - } - }, - "monday": { - "ca": "Dilluns", - "de": "Montag", - "en": "Monday", - "es": "Lunes", - "fr": "Lundi", - "nl": "Maandag" - }, - "tuesday": { - "ca": "Dimarts", - "de": "Dienstag", - "en": "Tuesday", - "es": "Martes", - "fr": "Mardi", - "nl": "Dinsdag" - }, - "wednesday": { - "ca": "Dimecres", - "de": "Mittwoch", - "en": "Wednesday", - "es": "Miércoles", - "fr": "Mercredi", - "nl": "Woensdag" - }, - "thursday": { - "ca": "Dijous", - "de": "Donnerstag", - "en": "Thursday", - "es": "Jueves", - "fr": "Jeudi", - "nl": "Donderdag" - }, - "friday": { - "ca": "Divendres", - "de": "Freitag", - "en": "Friday", - "es": "Viernes", - "fr": "Vendredi", - "nl": "Vrijdag" - }, - "saturday": { - "ca": "Dissabte", - "de": "Samstag", - "en": "Saturday", - "es": "Sábado", - "fr": "Samedi", - "nl": "Zaterdag" - }, - "sunday": { - "ca": "Diumenge", - "de": "Sonntag", - "en": "Sunday", - "es": "Domingo", - "fr": "Dimanche", - "nl": "Zondag" - } - }, - "opening_hours": { - "error_loading": { - "de": "Fehler: Diese Öffnungszeiten können nicht angezeigt werden", - "en": "Error: could not visualize these opening hours.", - "fr": "Erreur: impossible de visualiser ces horaires d'ouverture.", - "nl": "Sorry, deze openingsuren kunnen niet getoond worden" - }, - "open_during_ph": { - "ca": "Durant festes aquest servei és", - "de": "An Feiertagen ist diese Einrichtung", - "en": "During a public holiday, this amenity is", - "es": "Durante fiestas este servicio está", - "fr": "Pendant les congés, ce lieu est", - "nl": "Op een feestdag is deze zaak" - }, - "opensAt": { - "ca": "des de", - "de": "von", - "en": "from", - "es": "desde", - "fr": "à partir de", - "nl": "vanaf" - }, - "openTill": { - "ca": "fins", - "de": "bis", - "en": "till", - "es": "hasta", - "fr": "jusqu'à", - "nl": "tot" - }, - "not_all_rules_parsed": { - "ca": "L'horari d'aquesta botiga és complicat. Les normes següents seran ignorades en l'entrada:", - "de": "Die Öffnungszeiten dieses Geschäfts sind abweichend. Die folgenden Regeln werden im Eingabeelement ignoriert:", - "en": "The opening hours of this shop are complicated. The following rules are ignored in the input element:", - "es": "El horario de esta tienda es complejo. Las normas siguientes serán ignoradas en la entrada:", - "fr": "Les heures d'ouvertures de ce magasin sont trop compliquées. Les heures suivantes ont été ignorées:" - }, - "closed_until": { - "ca": "Tancat fins {date}", - "de": "Geschlossen bis {date}", - "en": "Closed until {date}", - "es": "Cerrado hasta {date}", - "fr": "Fermé jusqu'à", - "nl": "Gesloten - open op {date}" - }, - "closed_permanently": { - "ca": "Tancat - sense dia d'obertura conegut", - "de": "Geschlossen auf unbestimmte Zeit", - "en": "Closed for an unkown duration", - "es": "Cerrado - sin día de apertura conocido", - "fr": "Fermé", - "nl": "Gesloten voor onbepaalde tijd" - }, - "open_24_7": { - "de": "Tag und Nacht geöffnet", - "en": "Opened around the clock", - "fr": "Ouvert en permanence", - "nl": "Dag en nacht open" - }, - "ph_not_known": { - "ca": " ", - "de": " ", - "en": " ", - "es": " ", - "nl": " " - }, - "ph_closed": { - "ca": "tancat", - "de": "geschlossen", - "en": "closed", - "es": "cerrado", - "fr": "fermé", - "nl": "gesloten" - }, - "ph_open": { - "ca": "tancat", - "de": "geöffnet", - "en": "opened", - "es": "abierto", - "fr": "ouvert", - "nl": "open" - } - } - }, - "favourite": { - "panelIntro": { - "ca": "

La teva interfície personal

Activa les teves capes favorites de totes les interfícies oficials", - "de": "

Ihr persönliches Thema

Aktivieren Sie Ihre Lieblingsebenen aus allen offiziellen Themen", - "en": "

Your personal theme

Activate your favourite layers from all the official themes", - "es": "

Tu interficie personal

Activa tus capas favoritas de todas las interficies oficiales", - "fr": "

Votre thème personnel

Activer vos couches favorites depuis les thèmes officiels", - "gl": "

O teu tema personalizado

Activa as túas capas favoritas de todos os temas oficiais" - }, - "loginNeeded": { - "ca": "

Entrar

El disseny personalizat només està disponible pels usuaris d' OpenstreetMap", - "de": "

Anmelden

Ein persönliches Layout ist nur für OpenStreetMap-Benutzer verfügbar", - "en": "

Log in

A personal layout is only available for OpenStreetMap users", - "es": "

Entrar

El diseño personalizado sólo está disponible para los usuarios de OpenstreetMap", - "fr": "

Connexion

La mise en forme personnalisée requiert un compte OpenStreetMap", - "gl": "

Iniciar a sesión

O deseño personalizado só está dispoñíbel para os usuarios do OpenstreetMap" - }, - "reload": { - "ca": "Recarregar dades", - "de": "Daten neu laden", - "en": "Reload the data", - "es": "Recargar datos", - "fr": "Recharger les données", - "gl": "Recargar os datos" - } - }, - "reviews": { - "title": { - "de": "{count} Rezensionen", - "en": "{count} reviews", - "fr": "{count} avis", - "nl": "{count} beoordelingen" - }, - "title_singular": { - "de": "Eine Rezension", - "en": "One review", - "fr": "Un avis", - "nl": "Eén beoordeling" - }, - "name_required": { - "de": "Der Name des Objekts ist notwendig, um eine Bewertung erstellen zu können", - "en": "A name is required in order to display and create reviews", - "fr": "Un nom est requis pour afficher et créer des avis", - "nl": "De naam van dit object moet gekend zijn om een review te kunnen maken" - }, - "no_reviews_yet": { - "de": "Es gibt noch keine Bewertungen. Hilf mit der ersten Bewertung dem Geschäft und der Open Data Bewegung!", - "en": "There are no reviews yet. Be the first to write one and help open data and the business!", - "fr": "Il n'y a pas encore d'avis. Soyez le premier à en écrire un et aidez le lieu et les données ouvertes !", - "nl": "Er zijn nog geen beoordelingen. Wees de eerste om een beoordeling te schrijven en help open data en het bedrijf" - }, - "write_a_comment": { - "de": "Schreibe einen Kommentar...", - "en": "Leave a review...", - "fr": "Laisser un avis ...", - "nl": "Schrijf een beoordeling..." - }, - "no_rating": { - "de": "Keine Bewertung vorhanden", - "en": "No rating given", - "fr": "Aucun score donné", - "nl": "Geen score bekend" - }, - "posting_as": { - "de": "Angemeldet als", - "en": "Posting as", - "fr": "Envoi en tant que", - "nl": "Ingelogd als" - }, - "i_am_affiliated": { - "de": "Ich bin angehörig
Überprüfe, ob du Eigentümer, Ersteller, Angestellter etc. bist", - "en": "I am affiliated with this object
Check if you are an owner, creator, employee, ...", - "fr": "Je suis affilié à cet objet
Cochez si vous en êtes le propriétaire, créateur, employé, ...", - "nl": "Ik ben persoonlijk betrokken
Vink aan indien je de oprichter, maker, werknemer, ... of dergelijke bent" - }, - "affiliated_reviewer_warning": { - "en": "(Affiliated review)", - "fr": "(Avis affilié)", - "nl": "(Review door betrokkene)" - }, - "saving_review": { - "de": "Speichern...", - "en": "Saving...", - "fr": "Enregistrement...", - "nl": "Opslaan..." - }, - "saved": { - "de": "Rezension gespeichert. Vielen Dank für den Beitrag!", - "en": "Review saved. Thanks for sharing!", - "fr": "Avis enregistré. Merci du partage !", - "nl": "Bedankt om je beoordeling te delen!" - }, - "tos": { - "de": "Mit deiner Rezension stimmst du den AGB und den Datenschutzrichtlinien von Mangrove.reviews zu", - "en": "If you create a review, you agree to the TOS and privacy policy of Mangrove.reviews", - "fr": "En publiant un avis, vous êtes d'accord avec les conditions d'utilisation et la politique de confidentialité de Mangrove.reviews", - "nl": "Als je je review publiceert, ga je akkoord met de de gebruiksvoorwaarden en privacy policy van Mangrove.reviews" - }, - "attribution": { - "en": "Reviews are powered by Mangrove Reviews and are available under CC-BY 4.0.", - "fr": "Les avis sont fournis par Mangrove Reviews et sont disponibles sous license CC-BY 4.0.", - "nl": "De beoordelingen worden voorzien door Mangrove Reviews en zijn beschikbaar onder deCC-BY 4.0-licentie. " - }, - "plz_login": { - "de": "Melde dich an, um eine Rezension zu vergeben", - "en": "Login to leave a review", - "fr": "Connectez vous pour laisser un avis", - "nl": "Meld je aan om een beoordeling te geven" - } - } -} \ No newline at end of file diff --git a/scripts/generateTranslationFromWeblate.ts b/scripts/generateTranslationFromWeblate.ts deleted file mode 100644 index 76197af20..000000000 --- a/scripts/generateTranslationFromWeblate.ts +++ /dev/null @@ -1,53 +0,0 @@ -import ScriptUtils from "./ScriptUtils"; -import {readFileSync, writeFileSync} from "fs"; - - -class TranslationPart { - - contents: Map = new Map() - - add(language: string, obj: any){ - for (const key in obj) { - const v = obj[key] - if(!this.contents.has(key)){ - this.contents.set(key, new TranslationPart()) - } - const subpart = this.contents.get(key) as TranslationPart - - if(typeof v === "string"){ - subpart.contents.set(language, v) - }else{ - subpart.add(language, v) - } - - } - } - - toJson(): string{ - const parts = [] - for (let key of Array.from(this.contents.keys()) ){ - const value = this.contents.get(key); - - if(typeof value === "string"){ - parts.push(`\"${key}\": \"${value}\"`) - }else{ - parts.push(`\"${key}\": ${(value as TranslationPart).toJson()}`); - } - } - return JSON.stringify(JSON.parse(`{${parts.join(",")}}`), null, " "); - } -} - -const translations = ScriptUtils.readDirRecSync("./langs") - .filter(path => path.indexOf(".json") > 0) - -const allTranslations = new TranslationPart() - -for (const translationFile of translations) { - const contents = JSON.parse(readFileSync(translationFile, "utf-8")); - let language = translationFile.substring(translationFile.lastIndexOf("/") + 1) - language = language.substring(0, language.length-5) - allTranslations.add(language, contents) -} - -writeFileSync("./assets/translations.json", allTranslations.toJson()) \ No newline at end of file diff --git a/scripts/generateTranslations.ts b/scripts/generateTranslations.ts index 7e06c4d57..04b705fe7 100644 --- a/scripts/generateTranslations.ts +++ b/scripts/generateTranslations.ts @@ -1,5 +1,44 @@ import * as fs from "fs"; import {Utils} from "../Utils"; +import ScriptUtils from "./ScriptUtils"; +import {readFileSync, writeFileSync} from "fs"; + +class TranslationPart { + + contents: Map = new Map() + + add(language: string, obj: any){ + for (const key in obj) { + const v = obj[key] + if(!this.contents.has(key)){ + this.contents.set(key, new TranslationPart()) + } + const subpart = this.contents.get(key) as TranslationPart + + if(typeof v === "string"){ + subpart.contents.set(language, v) + }else{ + subpart.add(language, v) + } + + } + } + + toJson(): string{ + const parts = [] + for (let key of Array.from(this.contents.keys()) ){ + const value = this.contents.get(key); + + if(typeof value === "string"){ + parts.push(`\"${key}\": \"${value}\"`) + }else{ + parts.push(`\"${key}\": ${(value as TranslationPart).toJson()}`); + } + } + return JSON.stringify(JSON.parse(`{${parts.join(",")}}`), null, " "); + } +} + function isTranslation(tr: any): boolean { for (const key in tr) { @@ -31,7 +70,7 @@ function transformTranslation(obj: any, depth = 1) { } function genTranslations() { - const translations = JSON.parse(fs.readFileSync("./assets/translations.json", "utf-8")) + const translations = JSON.parse(fs.readFileSync("./assets/generated/translations.json", "utf-8")) const transformed = transformTranslation(translations); let module = `import {Translation} from "../../UI/i18n/Translation"\n\nexport default class CompiledTranslations {\n\n`; @@ -43,4 +82,23 @@ function genTranslations() { } +// Read 'lang/*.json', writes to 'assets/generated/translations.json' +function compileTranslationsFromWeblate(){ + const translations = ScriptUtils.readDirRecSync("./langs") + .filter(path => path.indexOf(".json") > 0) + + const allTranslations = new TranslationPart() + + for (const translationFile of translations) { + const contents = JSON.parse(readFileSync(translationFile, "utf-8")); + let language = translationFile.substring(translationFile.lastIndexOf("/") + 1) + language = language.substring(0, language.length-5) + allTranslations.add(language, contents) + } + + writeFileSync("./assets/generated/translations.json", allTranslations.toJson()) + +} + +compileTranslationsFromWeblate(); genTranslations() \ No newline at end of file