diff --git a/CHANGELOG.md b/CHANGELOG.md index 94a3146e5..7979fc2c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,61 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +## [v3.16.3] - 2025-02-06 +Released with [maproulette-backend_v4.7.1](https://github.com/maproulette/maproulette-backend/releases/tag/v4.7.1) + +## What's Changed +* add disable task confirmation feature by @jschwarz2030 in https://github.com/maproulette/maproulette3/pull/2516 +* conditionalize challenge result list filters for find challenge page by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2535 +* fix global challenge filtering bug on find challenge page by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2534 +* fix import formatting in ActiveTaskControls.jsx by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2533 + +## MR2 Changes +* fix isArchived and isGlobal filtering in extendFind endpoint by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1168 +* add disable task confirmation feature by @jschwarz2030 in https://github.com/maproulette/maproulette-backend/pull/1162 + +**Full Changelog**: https://github.com/maproulette/maproulette3/compare/v3.16.2...v3.16.3 + +## [v3.16.2] - 2025-02-03 + +## What's Changed +* Improve footer version info by @jake-low in https://github.com/maproulette/maproulette3/pull/2508 +* Fix OSM Element Tags widget not updating when switching to next task by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2510 +* Fix memory leak warning in the Achievement Badge Test by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2511 +* Fix docker build (.git directory is required now) by @jake-low in https://github.com/maproulette/maproulette3/pull/2512 +* Make tasks in task properties widget collapsible by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2502 +* Connect to new endpoint for fetching specifically task markers by @CollinBeczak, @jake-low in https://github.com/maproulette/maproulette3/pull/2356 +* Add global toggle to find challenge page by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2382 +* Fix mapillary infinite loop and improve UI by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2455 +* Replace many lodash _.get() calls with native ES expressions by @jake-low in https://github.com/maproulette/maproulette3/pull/2515 + +## Development Changes +* Add Biome code formatter by @jake-low +* Fix SCSS syntax errors for Biome by @jake-low +* Fix unused variable warnings by @jake-low +* Reorganize package.json by @jake-low +* Format all source files with Biome by @jake-low +* Add .git-blame-ignore-revs file by @jake-low +* Disable Biome linter (still using eslint for now) by @jake-low +* Add pre-commit hook for linting/formatting by @jake-low +* Update developer instructions to mention pre-commit hook by @jake-low +* Check for formatting and linting errors in CI by @jake-low +* Fix CodeQL warning about unescaped '.' in regex by @jake-low, @CollinBeczak + +## Testing Improvements +* Add boilerplate for playwright e2e testing by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2519 +* Remove obsolete snapshots and fix websocket undefined error by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2523 + +## Bug Fixes +* Remove intl errors from selected context by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2520 +* Fix save challenge returning undefined bug by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2527 +* Fix external id editing conditions by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2528 + +**Full Changelog**: https://github.com/maproulette/maproulette3/compare/v3.16.1...v3.16.2 + ## [v3.16.1] - 2024-12-20 -- add OSM Element Tags widget (by @homersimpsons in #2499) +* add OSM Element Tags widget (by @homersimpsons in #2499) ## [v3.16.0] - 2024-11-12 Released with [maproulette-backend_v4.6.1](https://github.com/maproulette/maproulette-backend/releases/tag/v4.6.1) diff --git a/lang/af.json b/lang/af.json index 3d20482ed..c05f428b5 100644 --- a/lang/af.json +++ b/lang/af.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferred MR Tags", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "Restrict iD Editor Presets", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Remote URL location from which to retrieve the GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "I have a URL to the GeoJSON data", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "System", "Notification.type.team": "Team", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "View OSM", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mappers", "Widgets.LeaderboardWidget.reviewer": "Reviewers", "Widgets.LeaderboardWidget.title": "Leaderboard", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM History", "Widgets.OSMHistoryWidget.title": "OSM History", "Widgets.ProjectAboutWidget.content": "Projects serve as a means of grouping related challenges together. All\nchallenges must belong to a project.\n\nYou can create as many projects as needed to organize your challenges, and can\ninvite other MapRoulette users to help manage them with you.\n\nProjects must be set to Discoverable before any challenges within them will\nshow up in public browsing or searching.", diff --git a/lang/cs_CZ.json b/lang/cs_CZ.json index 4e00a8f31..704b299b5 100644 --- a/lang/cs_CZ.json +++ b/lang/cs_CZ.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferred MR Tags", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "Restrict iD Editor Presets", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Vzdálené umístění URL, ze kterého lze načíst GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "I have a URL to the GeoJSON data", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "Systém", "Notification.type.team": "Tým", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "View OSM", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mapeři", "Widgets.LeaderboardWidget.reviewer": "Reviewers", "Widgets.LeaderboardWidget.title": "Žebříček", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM History", "Widgets.OSMHistoryWidget.title": "OSM History", "Widgets.ProjectAboutWidget.content": "Projects serve as a means of grouping related challenges together. All\nchallenges must belong to a project.\n\nYou can create as many projects as needed to organize your challenges, and can\ninvite other MapRoulette users to help manage them with you.\n\nProjects must be set to Discoverable before any challenges within them will\nshow up in public browsing or searching.", diff --git a/lang/de.json b/lang/de.json index fd58c441e..e891b4d40 100644 --- a/lang/de.json +++ b/lang/de.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Bevorzugte MR Tags", "Admin.EditChallenge.form.presets.description": "Beschränke die Auswahl von OSM Objekttypen beim Bearbeiten mit dem iD Editor, damit sich Bearbeiter auf das Kartieren von Dingen konzentrieren können, die für die Kampagne relevant sind. Sollen in der Kampagne zum Beispiel Gebäude kartiert werden, kann die Auswahl der Vorlagen in iD auf Gebäudetypen beschränkt werden, so dass Bearbeiter keine Möglichkeit haben, ein Gebiet als Park oder See zu kartieren.", "Admin.EditChallenge.form.presets.label": "iD Editor Presets einschränken", + "Admin.EditChallenge.form.datasetUrl.description": "Optional kann eine Rapid-Editor-Datensatz-URL angegeben werden. Datensätze können verwendet werden, um Geodatenebenen bereitzustellen, die überlagert, analysiert und bearbeitet werden können, um Karten präzise zu erstellen oder zu aktualisieren.", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid-Datensatz-URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Externe URL, von der die GeoJSON Datei geladen werden soll.", "Admin.EditChallenge.form.remoteGeoJson.label": "Ich habe eine URL zu den GeoJSON-Daten", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.beispiel.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Anzahl Überarbeitungen", "Notification.type.system": "System", "Notification.type.team": "Team", + "OSMElementTags.controls.viewOSM.label": "OSM anzeigen", + "OSMElementTags.elementFetchFailed": "Fehler beim Abrufen der Tags für {element}", + "OSMElementTags.noOSMElements": "Keine OSM-Elemente in Aufgabe identifiziert", "OSMElementHistory.controls.viewOSM.label": "OSM ansehen", "OSMElementHistory.elementFetchFailed": "Verlauf für {Element} konnte nicht geladen werden", "OSMElementHistory.noComment": "(kein Änderungssatz-Kommentar)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mapper", "Widgets.LeaderboardWidget.reviewer": "Prüfer", "Widgets.LeaderboardWidget.title": "Bestenliste", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM Chronik", "Widgets.OSMHistoryWidget.title": "OSM Chronik", "Widgets.ProjectAboutWidget.content": "Projekte dienen der Zusammenfassung ähnlicher Kampagnen. Alle Kampagnen müssen zu einem Projekt gehören.\n\nEs können beliebig viele Projekte erstellt werden, um Kampagnen zu organisieren, und andere MapRoulette-Benutzer können einladen werden, bei deren Verwaltung zu helfen.\n\nProjekte müssen auf Auffindbar gesetzt werden, um die dazugehörigen Kampagnen öffentlich sichtbar zu machen.", diff --git a/lang/en-US.json b/lang/en-US.json index 6856e3017..72a82df2e 100644 --- a/lang/en-US.json +++ b/lang/en-US.json @@ -119,6 +119,8 @@ "Admin.EditChallenge.form.customTaskStyles.label": "Customize Task Property Styles", "Admin.EditChallenge.form.dataOriginDate.description": "Age of the data. The date the data was downloaded, generated, etc. ", "Admin.EditChallenge.form.dataOriginDate.label": "Date that data was sourced", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.defaultBasemap.description": "The default basemap to use for the challenge, overriding any user settings that define a default basemap", "Admin.EditChallenge.form.defaultBasemap.label": "Challenge Basemap", "Admin.EditChallenge.form.defaultPriority.description": "See the [docs](https://learn.maproulette.org/documentation/task-priority-rules/) for an explanation of how to setup priority rules.", @@ -129,7 +131,7 @@ "Admin.EditChallenge.form.description.label": "Description of your Challenge", "Admin.EditChallenge.form.difficulty.description": "Indicate to mappers what experience level is required to complete tasks in your Challenge.", "Admin.EditChallenge.form.difficulty.label": "Difficulty of your Tasks", - "Admin.EditChallenge.form.disableOsmIdProperty": "This ID cannot be edited after challenge creation, this is to prevent task duplication. [Learn more](https://learn.maproulette.org/documentation/setting-external-task-identifiers/).", + "Admin.EditChallenge.form.disableOsmIdProperty": "This ID cannot be edited after a challenge has successfully created tasks, this is to prevent task duplication. [Learn more](https://learn.maproulette.org/documentation/setting-external-task-identifiers/).", "Admin.EditChallenge.form.email.description": "Please provide an email for mappers to contact you with feedback", "Admin.EditChallenge.form.email.label": "Email Address", "Admin.EditChallenge.form.exportableProperties.description": "Any properties included in this comma separated list will be exported as a column in the CSV export and populated with the first matching feature property from each task.", @@ -176,8 +178,6 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferred MR Tags", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "Restrict iD Editor Presets", - "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", - "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Remote URL location from which to retrieve the GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "I have a URL to the GeoJSON data", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -258,6 +258,8 @@ "Admin.EditProject.form.isVirtual.label": "Virtual", "Admin.EditProject.form.name.description": "Name of the project", "Admin.EditProject.form.name.label": "Name", + "Admin.EditProject.form.requireConfirmation.description": "This will disable the option for users to bypass the task confirmation modal when they click 'I fixed it!'", + "Admin.EditProject.form.requireConfirmation.label": "Require Confirmation", "Admin.EditProject.new.header": "New Project", "Admin.EditProject.unavailable": "Project Unavailable", "Admin.EditTask.controls.cancel.label": "Cancel", @@ -440,6 +442,10 @@ "Admin.manageTasks.controls.showReviewColumns.label": "Show Review Columns", "Admin.manageTasks.controls.timezone.label": "Timezone", "Admin.manageTasks.priorityLabel": "Priority", + "Admin.testEnvironmentBanner.localTitle": "You are in a MapRoulette Local environment.", + "Admin.testEnvironmentBanner.stagingTitle": "You are in a MapRoulette Staging environment.", + "Admin.testEnvironmentNotice.description": "Consider using the [MapRoulette Staging Website](https://staging.maproulette.org), a clone of MapRoulette often used for development, where you can create test challenges, projects, and similar tasks.", + "Admin.testEnvironmentNotice.title": "Testing Something?", "AutosuggestTextBox.labels.noResults": "No matches", "BoundsSelectorModal.control.dismiss.label": "Select Bounds", "BoundsSelectorModal.header": "Select Bounds", @@ -574,6 +580,7 @@ "ChallengePane.controls.challengeId.label": "Challenge Id:", "ChallengePane.controls.challengeName.label": "Challenge Name:", "ChallengePane.controls.showArchived.label": "Show Archived", + "ChallengePane.controls.showGlobal.label": "Show Global Challenges", "ChallengePane.controls.startTask.label": "Start Task", "ChallengePane.controls.taskId.label": "Task Id:", "ChallengePane.controls.taskInfo.label": "Task Info:", @@ -962,6 +969,7 @@ "Home.Intro.header": "Thousands of people just like you edit OpenStreetMap every day", "Home.Intro.secondBullet": "Find mapping tasks that are important to you", "Home.Intro.thirdBullet": "Create tasks for others to improve OSM together", + "ImafeMarkerLayer.view": "Open 3D View", "ImportFileModal.controls.cancel.label": "Cancel", "ImportFileModal.controls.upload.label": "Click to Upload File", "Inbox.actions.openNotification.label": "Open", @@ -1133,9 +1141,6 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "System", "Notification.type.team": "Team", - "OSMElementTags.controls.viewOSM.label": "View OSM", - "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", - "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "View OSM", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1143,6 +1148,9 @@ "OSMElementHistory.recentChange.tooltip": "Change made after MapRoulette task was created", "OSMElementHistory.undeterminedVersion": "Version detection unavailable for this task", "OSMElementHistory.version.label": "Version {version, number}", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "PageNotFound.homePage": "Take me home", "PageNotFound.message": "Oops! The page you’re looking for is lost.", "Pages.SignIn.modal.prompt": "Please sign in to continue", @@ -1174,6 +1182,8 @@ "Profile.form.defaultEditor.description": "Select the default editor that you want to use when fixing tasks. By selecting this option you will be able to skip the editor selection dialog after clicking on edit in a task.", "Profile.form.defaultEditor.label": "Default Editor", "Profile.form.deleteCustomBasemap.label": "Delete", + "Profile.form.disableTaskConfirm.description": "This will allow the user to bypass the task confirmation modal when a user clicks 'I fixed it!'. Be aware some projects and challenges won't allow this behavior.", + "Profile.form.disableTaskConfirm.label": "Disable Task Confirmation Modal", "Profile.form.email.description": "If you request emails in your Notification Subscriptions, they will be sent here.\n\nDecide which MapRoulette notifications you would like to receive, along with whether you would like to be sent an email informing you of the notification (either immediately or as a daily digest)", "Profile.form.email.format": "email", "Profile.form.email.label": "Email address", @@ -1556,16 +1566,20 @@ "TaskConfirmationModal.loadNextReview.label": "Proceed With:", "TaskConfirmationModal.mapper.label": "Mapper:", "TaskConfirmationModal.metaReviewRequested.label": "Meta-Review Requested", + "TaskConfirmationModal.newValue.label": "New Value", "TaskConfirmationModal.nextNearby.label": "Select your next nearby task (optional)", + "TaskConfirmationModal.oldValue.label": "Old Value", "TaskConfirmationModal.osmComment.header": "OSM Change Comment", "TaskConfirmationModal.osmComment.placeholder": "OpenStreetMap comment", - "TaskConfirmationModal.osmUploadNotice": "These changes will be uploaded to OpenStreetMap on your behalf", + "TaskConfirmationModal.osmUploadNotices": "You are about to edit OpenStreetMap. The following changes will be published and become visible to everyone:", "TaskConfirmationModal.priority.label": "Priority:", "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", + "TaskConfirmationModal.reviewChangesHeader": "Review Your Changes", "TaskConfirmationModal.reviewStatus.label": "Review Status:", "TaskConfirmationModal.status.label": "Status:", "TaskConfirmationModal.submit.label": "Submit", "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", + "TaskConfirmationModal.tagName.label": "Tag Name", "TaskConfirmationModal.useChallenge.label": "Use current challenge", "TaskHistory.controls.listByTime.label": "Entries", "TaskHistory.controls.listByUser.label": "Contributors", @@ -1828,6 +1842,7 @@ "Widgets.TaskMapWidget.label": "Task", "Widgets.TaskMapWidget.rapidDiscardUnsavedChanges": "You have unsaved changes in Rapid which will be discarded. Are you sure you want to proceed?", "Widgets.TaskMapWidget.rapidFailed": "Widget Failed! Geometries Null!", + "Widgets.TaskMapWidget.reselectTask": "Re-Select Task", "Widgets.TaskMapWidget.title": "Task", "Widgets.TaskMoreOptionsWidget.label": "More Options", "Widgets.TaskMoreOptionsWidget.title": "More Options", @@ -1836,6 +1851,8 @@ "Widgets.TaskNearbyMap.tooltip.loadMoreTasks.control": "Load More Tasks", "Widgets.TaskNearbyMap.tooltip.priorityLabel": "Priority: ", "Widgets.TaskNearbyMap.tooltip.statusLabel": "Status: ", + "Widgets.TaskPropertiesWidget.collapseAll": "Collapse All", + "Widgets.TaskPropertiesWidget.expandAll": "Expand All", "Widgets.TaskPropertiesWidget.label": "Task Properties", "Widgets.TaskPropertiesWidget.task.label": "Task {taskId}", "Widgets.TaskPropertiesWidget.title": "Task Properties", diff --git a/lang/es.json b/lang/es.json index 3e78a0fcb..6025f93c5 100644 --- a/lang/es.json +++ b/lang/es.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Etiquetas MR preferidas", "Admin.EditChallenge.form.presets.description": "Restringe los tipos de características de OSM que se presentan a los mapeadores en iD de forma predeterminada cuando trabajan en tus tareas, lo que les ayuda a mantenerse enfocados en mapear cosas relevantes para tu desafío. Por ejemplo, si tu desafío se trata de mapear edificios, puedes habilitar solo ajustes preestablecidos relacionados con edificios y luego a los mapeadores no se les presentará la opción de mapear un área como, por ejemplo, un parque o un lago.", "Admin.EditChallenge.form.presets.label": "Restringir ajustes preestablecidos del editor iD", + "Admin.EditChallenge.form.datasetUrl.description": "Opcionalmente incluye una URL de conjunto de datos de Rapid Editor. Los conjuntos de datos pueden usarse para proporcionar capas de datos geoespaciales que se pueden superponer, analizar y editar para crear o actualizar mapas con precisión.", + "Admin.EditChallenge.form.datasetUrl.label": "URL del conjunto de datos de Rapid", "Admin.EditChallenge.form.remoteGeoJson.description": "Ubicación remota de la URL desde la cual recuperar el GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "Tengo una URL para los datos de GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.ejemplo.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Recuento de revisiones", "Notification.type.system": "Sistema", "Notification.type.team": "Equipo", + "OSMElementTags.controls.viewOSM.label": "Ver OSM", + "OSMElementTags.elementFetchFailed": "Error al obtener etiquetas para {element}", + "OSMElementTags.noOSMElements": "No se identificaron elementos de OSM en la tarea", "OSMElementHistory.controls.viewOSM.label": "Ver en OSM", "OSMElementHistory.elementFetchFailed": "No se pudo recuperar el historial de {element}", "OSMElementHistory.noComment": "(sin comentario del conjunto de cambios)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mapeadores", "Widgets.LeaderboardWidget.reviewer": "Revisores", "Widgets.LeaderboardWidget.title": "Tabla de clasificación", + "Widgets.OSMElementTagsWidget.label": "Etiquetas de elementos de OSM", + "Widgets.OSMElementTagsWidget.title": "Etiquetas de elementos de OSM", "Widgets.OSMHistoryWidget.label": "Historial de OSM", "Widgets.OSMHistoryWidget.title": "Historial de OSM", "Widgets.ProjectAboutWidget.content": "Los proyectos sirven como un medio para agrupar desafíos relacionados. Todos los desafíos deben pertenecer a un proyecto.\n\nPuedes crear tantos proyectos como necesites para organizar tus desafíos y puedes invitar a otros usuarios de MapRoulette a que te ayuden a administrarlos contigo.\n\nLos proyectos deben configurarse como visibles para que los desafíos dentro de ellos aparezcan en la navegación o búsqueda pública.", diff --git a/lang/fa_IR.json b/lang/fa_IR.json index 88589ec93..89882880d 100644 --- a/lang/fa_IR.json +++ b/lang/fa_IR.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferred MR Tags", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "محدود کردن تنظیمات از پیش تنظیم شده ویرایشگر iD", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Remote URL location from which to retrieve the GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "من یک آدرس اینترنتی به داده‌های GeoJSON دارم", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "System", "Notification.type.team": "Team", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "View OSM", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mappers", "Widgets.LeaderboardWidget.reviewer": "Reviewers", "Widgets.LeaderboardWidget.title": "Leaderboard", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM History", "Widgets.OSMHistoryWidget.title": "OSM History", "Widgets.ProjectAboutWidget.content": "Projects serve as a means of grouping related challenges together. All\nchallenges must belong to a project.\n\nYou can create as many projects as needed to organize your challenges, and can\ninvite other MapRoulette users to help manage them with you.\n\nProjects must be set to Discoverable before any challenges within them will\nshow up in public browsing or searching.", diff --git a/lang/fr.json b/lang/fr.json index 364e87d76..400ddd2f9 100644 --- a/lang/fr.json +++ b/lang/fr.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Tags MR préférés", "Admin.EditChallenge.form.presets.description": "Limitez les types d'éléments OSM présentés par défaut aux cartographes dans iD lorsqu'ils travaillent sur vos tâches, afin qu'ils se concentrent sur la cartographie des éléments pertinents pour votre défi. Par exemple, si votre défi consiste à cartographier des bâtiments, vous pouvez activer uniquement les préréglages relatifs aux bâtiments. Les cartographes n'auront alors pas la possibilité de cartographier une zone comme, par exemple, un parc ou un lac.", "Admin.EditChallenge.form.presets.label": "Restreindre les préréglages d'iD", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Saisir l'URL permettant de récupérer le GeoJSON distant.", "Admin.EditChallenge.form.remoteGeoJson.label": "J'ai une URL vers les données au format GeoJSON.", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Nombre de révisions", "Notification.type.system": "Système", "Notification.type.team": "Équipe", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "Vue OSM", "OSMElementHistory.elementFetchFailed": "Échec de la récupération de {element}", "OSMElementHistory.noComment": "(aucun commentaire de groupe de modifications)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Cartographes", "Widgets.LeaderboardWidget.reviewer": "Validateurs", "Widgets.LeaderboardWidget.title": "Classement", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "Historique OSM", "Widgets.OSMHistoryWidget.title": "Historique OSM", "Widgets.ProjectAboutWidget.content": "Les projets servent à grouper ensemble des défis en lien les uns avec les autres.\nTous les défis doivent appartenir à un projet.\n\nVous pouvez créer autant de projets que nécessaires pour organiser vos défis, et vous pouvez inviter d'autres utilisateurs MapRoulette à vous aider à les gérer avec vous.\n\nLes projets doivent être marqués Découvrables avant qu'un défi qu'ils contiennent puisse être affiché dans la recherche ou la navigation publique.", diff --git a/lang/it_IT.json b/lang/it_IT.json index c01803a49..2bf3a91b0 100644 --- a/lang/it_IT.json +++ b/lang/it_IT.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Etichette MR preferite", "Admin.EditChallenge.form.presets.description": "Limita i tipi di funzionalità OSM presentate ai mappatori con ID predefinito quando lavori ai tuoi compiti, aiutandoli a rimanere concentrati sulla mappatura di cose rilevanti per la tua sfida. Ad esempio, se la tua sfida riguarda la mappatura degli edifici, potresti abilitare solo i preset relativi agli edifici e quindi ai mappatori non verrebbe presentata l'opzione per mappare un'area come, ad esempio, un parco o un lago.", "Admin.EditChallenge.form.presets.label": "Limita i preimpostati dell'editor ID", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Posizione dell'URL remoto da cui recuperare il GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "Ho un URL per i dati GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Conteggio revisioni", "Notification.type.system": "Sistema", "Notification.type.team": "Squadra", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "Vedi OSM", "OSMElementHistory.elementFetchFailed": "Impossibile recuperare la cronologia per {element}", "OSMElementHistory.noComment": "(nessun commento sulle modifiche)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mappatori", "Widgets.LeaderboardWidget.reviewer": "Revisori", "Widgets.LeaderboardWidget.title": "Classifica", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "Cronologia OSM", "Widgets.OSMHistoryWidget.title": "Cronologia OSM", "Widgets.ProjectAboutWidget.content": "I progetti servono per raggruppare le sfide correlate. Tutte\nle sfide devono appartenere a un progetto.\n\nPuoi creare tutti i progetti necessari per organizzare le tue sfide e puoi\ninvitare altri utenti di MapRoulette ad aiutarti a gestirli con te.\n\nI progetti devono essere impostati su Rilevabile prima che le sfide vengano\nvisualizzate nella navigazione pubblica o nella ricerca.", diff --git a/lang/ja.json b/lang/ja.json index c11aa9490..1df945566 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferred MR Tags", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "Restrict iD Editor Presets", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "GeoJSONを参照するためのリモートURLの場所", "Admin.EditChallenge.form.remoteGeoJson.label": "I have a URL to the GeoJSON data", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "システム", "Notification.type.team": "チーム", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "OSMで表示", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "マッパー", "Widgets.LeaderboardWidget.reviewer": "レビュアー", "Widgets.LeaderboardWidget.title": "リーダーボード", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM履歴", "Widgets.OSMHistoryWidget.title": "OSM履歴", "Widgets.ProjectAboutWidget.content": "Projects serve as a means of grouping related challenges together. All\nchallenges must belong to a project.\n\nYou can create as many projects as needed to organize your challenges, and can\ninvite other MapRoulette users to help manage them with you.\n\nProjects must be set to Discoverable before any challenges within them will\nshow up in public browsing or searching.", diff --git a/lang/ko.json b/lang/ko.json index 55b720d69..ff6b080c9 100644 --- a/lang/ko.json +++ b/lang/ko.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "선호하는 MR 태그", "Admin.EditChallenge.form.presets.description": "임무를 수행할 때 기본적으로 iD의 지도 제작자에게 제공되는 OSM 기능 유형을 제한하여 도전과 관련된 매핑에 집중할 수 있도록 합니다. 예를 들어, 건물 매핑 관련 도전이 있는 경우, 건물과 관련된 사전 설정만 활성화하면 지도 제작자에게 공원이나 호수와 같은 지역을 매핑하는 옵션이 표시되지 않습니다.", "Admin.EditChallenge.form.presets.label": "iD 편집기 사전 설정 제한", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "GeoJSON 파일을 가져올 URL을 입력해 주세요", "Admin.EditChallenge.form.remoteGeoJson.label": "GeoJSON 데이터에 대한 URL을 가지고 있어요", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "수정 개수", "Notification.type.system": "시스템", "Notification.type.team": "팀", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "OSM 보기", "OSMElementHistory.elementFetchFailed": "{element}에 대한 기록을 가져오지 못함", "OSMElementHistory.noComment": "(변경 세트에 대한 코멘트 없음)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "지도제작자", "Widgets.LeaderboardWidget.reviewer": "검토자들", "Widgets.LeaderboardWidget.title": "리더보드", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM 기록", "Widgets.OSMHistoryWidget.title": "OSM 기록", "Widgets.ProjectAboutWidget.content": "프로젝트는 관련된 문제를 함께 그룹화하는 수단으로 사용됩니다. 모든 도전은 하나의 프로젝트에 종속됩니다. \n\n 당신은 도전을 구성하는 데 필요한만큼의 프로젝트를 만들 수 있으며, 다른 MapRoulette 사용자를 초대하여 함께 관리할 수 있도록 할 수 있습니다. \n\n 프로젝트의 도전이 공개적인 탐색 또는 검색에 나타나기 전까지 프로젝트를 발견 가능하게 설정해야 합니다.", diff --git a/lang/nl.json b/lang/nl.json index 71a4f3ccb..5945830c2 100644 --- a/lang/nl.json +++ b/lang/nl.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Voorkeurtags MR", "Admin.EditChallenge.form.presets.description": "Beperk standaard de soorten objecten uit OSM die worden gepresenteerd aan de mappers in iD bij het werken aan de taken. Dat helpt hen om dingen in kaart te brengen die relevant zijn voor je missie. Als je missie bijvoorbeeld over het mappen van gebouwen gaat zou je alleen voorkeuzen gerelateerd aan gebouwen kunnen inschakelen en dan zouden aan mappers niet de opties worden getoond om een gebied, zoals bijvoorbeeld een park of een meer, in kaart te brengen.", "Admin.EditChallenge.form.presets.label": "Voorkeuzen bewerker iD beperken", + "Admin.EditChallenge.form.datasetUrl.description": "Neem optioneel een URL van een gegevensset van Rapid Editor op. Gegevenssets kunnen worden gebruikt om georuimtelijke gegevenslagen te gebruiken die kunnen worden overgelegd, geanalyseerd en bewerkt om kaarten nauwkeurig te maken of bij te werken", + "Admin.EditChallenge.form.datasetUrl.label": "URL gegevensset Rapid ", "Admin.EditChallenge.form.remoteGeoJson.description": "URL van de locatie op afstand waar de GeoJSON moet worden opgehaald", "Admin.EditChallenge.form.remoteGeoJson.label": "Ik heb een URL voor de gegevens van GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Aantal revisies", "Notification.type.system": "Systeem", "Notification.type.team": "Team", + "OSMElementTags.controls.viewOSM.label": "OSM weergeven", + "OSMElementTags.elementFetchFailed": "Ophalen van tags voor {element} mislukt", + "OSMElementTags.noOSMElements": "Geen elementen van OSM geïdentificeerd in taak", "OSMElementHistory.controls.viewOSM.label": "OSM weergeven", "OSMElementHistory.elementFetchFailed": "Ophalen van geschiedenis voor {element} mislukt", "OSMElementHistory.noComment": "(geen opmerking wijzigingenset)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mappers", "Widgets.LeaderboardWidget.reviewer": "Beoordelaars", "Widgets.LeaderboardWidget.title": "Scorebord", + "Widgets.OSMElementTagsWidget.label": "Tags van OSM-elementen", + "Widgets.OSMElementTagsWidget.title": "Tags van OSM-elementen", "Widgets.OSMHistoryWidget.label": "OSM-geschiedenis", "Widgets.OSMHistoryWidget.title": "OSM-geschiedenis", "Widgets.ProjectAboutWidget.content": "Projecten dienen om gerelateerde missies te groeperen. Alle\nmissies moeten toebehoren aan een project.\n\nJe mag zoveel projecten maken als nodig is om je missies te organiseren, en je mag\nandere deelnemers aan MapRoulette vragen om ze samen te beheren.\n\nProjecten moeten worden ingesteld als Zichtbaar voordat missies daarin worden weergegeven bij publiek bladeren of zoeken.", diff --git a/lang/pl.json b/lang/pl.json index 51cc4dd10..e6b4e2037 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -102,7 +102,7 @@ "Admin.EditChallenge.form.automatedEditsCode.label": "Automated Edits Code of Conduct Agreement", "Admin.EditChallenge.form.blurb.description": "A very brief description of your challenge suitable for small spaces, such as a map marker popup. This field supports [Markdown](https://learn.maproulette.org/documentation/markdown/).", "Admin.EditChallenge.form.blurb.label": "Autopromocja", - "Admin.EditChallenge.form.bulkSubmit.label": "The following changes will be applied to all selected challenges. This process is not reversible, so please review before submitting.", + "Admin.EditChallenge.form.bulkSubmit.label": "Poniższe zmiany zostaną zastosowane do wszystkich wybranych wyzwań. Proces ten jest nieodwracalny, dlatego prosimy o zapoznanie się z nim przed przesłaniem.", "Admin.EditChallenge.form.category.description": "Wybranie odpowiedniej kategorii dla Twojego wyzwania może pomóc użytkownikom w znalezieniu wyzwań, które odpowiadają ich zainteresowaniom. Wybierz kategorię Inne, jeśli nic nie wydaje Ci się odpowiednie.", "Admin.EditChallenge.form.category.label": "Jak powinno być skategoryzowane to wyzwanie?", "Admin.EditChallenge.form.checkinComment.description": "Komentarz przypisany do zmian dokonanych przez użytkowników w edytorze", @@ -158,7 +158,7 @@ "Admin.EditChallenge.form.minZoom.label": "Minimalny poziom przybliżenia", "Admin.EditChallenge.form.name.description": "Nazwa Twojego wyzwania będzie się pojawiać w wielu miejscach w MapRoulette. Jest to również nazwa dzięki której Twoje wyzwanie będzie można wyszukiwać za pomocą pola wyszukiwania. To pole jest wymagane, musi być unikalne i może zawierać tylko zwykły tekst.", "Admin.EditChallenge.form.name.label": "Nazwa Twojego wyzwania", - "Admin.EditChallenge.form.nameDescription": "The challenge name is required and must be more than 3 characters long.", + "Admin.EditChallenge.form.nameDescription": "Nazwa wyzwania jest wymagana i musi mieć więcej niż 3 znaki.", "Admin.EditChallenge.form.osmIdProperty.description": "Nazwa cechy zadania, która ma być traktowana jako identyfikator elementu OpenStreetMap dla zadań. Jeśli pozostanie pusta, MapRoulette powróci do sprawdzania szeregu wspólnych właściwości id, w tym tych używanych przez Overpass. Jeśli zostanie podana, **upewnij się, że ma ona unikalną wartość dla każdego elementu w twoich danych**. Zadania, w których brakuje tej właściwości, otrzymają losowy identyfikator, nawet jeśli zadanie zawiera inne wspólne cechy identyfikacyjne. [Dowiedz się więcej](https://learn.maproulette.org/documentation/setting-external-task-identifiers/).", "Admin.EditChallenge.form.osmIdProperty.label": "Właściwość OSM/zewnętrznego identyfikatora", "Admin.EditChallenge.form.overpassQL.description": "Proszę zapoznać się z [dokumentacją](https://learn.maproulette.org/documentation/using-overpass-to-create-challenges/), aby poznać ważne szczegóły i typowe pułapki podczas tworzenia wyzwań przy użyciu zapytań Overpass.", @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferowane tagi MR", "Admin.EditChallenge.form.presets.description": "Ogranicz rodzaje funkcji OSM prezentowanych domyślnie edytorom w edytorze iD podczas pracy nad zadaniami, co pomoże im skupić się na mapowaniu rzeczy istotnych dla Twojego wyzwania. Na przykład, jeśli zadanie dotyczy mapowania budynków, możesz włączyć tylko ustawienia wstępne związane z budynkami, dzięki czemu edytorzy nie będą mieli możliwości mapowania obszaru na przykład jako parku lub jeziora.", "Admin.EditChallenge.form.presets.label": "Ogranicz ustawienia edytora iD", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Zdalny adres URL, z którego ma zostać pobrany GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "Mam adres URL do danych GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.przyklad.com/geojson.json", @@ -272,7 +274,7 @@ "Admin.EditTask.form.name.description": "Nazwa zadania", "Admin.EditTask.form.name.label": "Nazwa", "Admin.EditTask.form.priority.label": "Priorytet", - "Admin.EditTask.form.status.description": "Status of this task. Depending on the current status, your choices for updating the status may be restricted", + "Admin.EditTask.form.status.description": "Stan tego zadania. W zależności od bieżącego stanu, możliwości aktualizacji stanu mogą być ograniczone", "Admin.EditTask.form.status.label": "Status", "Admin.EditTask.new.header": "Nowe zadanie", "Admin.InspectTask.header": "Sprawdź zadanie", @@ -451,7 +453,7 @@ "Challenge.basemap.openCycleMap": "OpenCycleMap", "Challenge.basemap.openStreetMap": "OpenStreetMap", "Challenge.controls.clearFilters.label": "Wyczyść filtry", - "Challenge.controls.doesntExist.label": "No discoverable task with this id exists.", + "Challenge.controls.doesntExist.label": "Nie istnieje żadne wykrywalne zadanie o tym identyfikatorze.", "Challenge.controls.goTo.label": "Przejdź bezpośrednio do:", "Challenge.controls.invalidId.label": "Id musi być liczbą", "Challenge.controls.loadMore.label": "Więcej wyników", @@ -472,7 +474,7 @@ "Challenge.difficulty.expert": "Ekspercki", "Challenge.difficulty.normal": "Normalny", "Challenge.fields.ChallengeResultList.label": "{count,plural,=0{No challenges} one{# challenge} other{# challenges}} completed in project", - "Challenge.fields.completed.label": "Completed", + "Challenge.fields.completed.label": "Ukończone", "Challenge.fields.difficulty.label": "Trudność", "Challenge.fields.lastTaskRefresh.label": "Źródło danych zadania", "Challenge.fields.viewLeaderboard.label": "Zobacz tabelę wyników", @@ -515,7 +517,7 @@ "ChallengeCard.controls.visibilityToggle.tooltip": "Przełączanie możliwości odkrywania wyzwań", "ChallengeCard.totalTasks": "Razem zadania", "ChallengeDetails.Task.fields.featured.label": "Polecane", - "ChallengeDetails.controls.checkbox.error": "Please ensure that checkbox is checked before continue", + "ChallengeDetails.controls.checkbox.error": "Przed kontynuowaniem upewnij się, że pole wyboru jest zaznaczone", "ChallengeDetails.controls.clone.challenge": "Klonuj wyzwanie", "ChallengeDetails.controls.email": "Email", "ChallengeDetails.controls.favorite.label": "Ulubione", @@ -524,33 +526,33 @@ "ChallengeDetails.controls.modal.subtitle": "You are about to report a Challenge. An issue will be created in this [public github repository](https://github.com/maproulette/challenge-reports/issues) and the Challenge creator will be notified by email. Any follow-up discussion should take place there. Reporting a Challenge does not disable it immediately. Please explain in detail what your issue is with this challenge, if possible linking to specific OSM changesets.", "ChallengeDetails.controls.preview.label": "Podgląd", "ChallengeDetails.controls.reported_text": "To wyzywanie zostało zgłoszone", - "ChallengeDetails.controls.review.label": "I have attempted to contact the Challenge creator", + "ChallengeDetails.controls.review.label": "Próbowałem skontaktować się z twórcą Wyzwania", "ChallengeDetails.controls.start.label": "Rozpocznij", "ChallengeDetails.controls.submit.report.label": "Zgłoś wyzwanie", - "ChallengeDetails.controls.text.input.error": "Text Input should have minimum 100 characters", + "ChallengeDetails.controls.text.input.error": "Wprowadzany tekst powinien mieć minimum 100 znaków", "ChallengeDetails.controls.unfavorite.label": "Nielubiane", "ChallengeDetails.controls.unfavorite.tooltip": "Usuń z ulubionych", "ChallengeDetails.controls.write.label": "Pisz", "ChallengeDetails.fields.difficulty.label": "Trudność", "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Zadania zbudowane w dniu {refreshDate} z danych pozyskanych w dniu {sourceDate}.", - "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Task Data Sourced", + "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Źródło danych zadania", "ChallengeDetails.fields.overpassQL.label": "Kwerenda Overpass", - "ChallengeDetails.fields.owner.label": "Owner", - "ChallengeDetails.fields.viewComments.label": "Get In Touch", + "ChallengeDetails.fields.owner.label": "Właściciel", + "ChallengeDetails.fields.viewComments.label": "Skontaktuj się", "ChallengeDetails.fields.viewLeaderboard.label": "Zobacz tabelę wyników", "ChallengeDetails.fields.viewOverview.label": "Przegląd", "ChallengeDetails.fields.viewReviews.label": "Recenzja", "ChallengeDetails.management.controls.manage.label": "Zarządzaj", "ChallengeEndModal.control.dismiss.label": "Kontynuuj", "ChallengeEndModal.header": "Zakończenie wyzwania", - "ChallengeEndModal.primaryMessage": "You have marked all remaining tasks in this challenge as either skipped or can't complete.", + "ChallengeEndModal.primaryMessage": "Wszystkie pozostałe zadania w tym wyzwaniu oznaczyłeś jako pominięte lub nie do wykonania.", "ChallengeFilterSubnav.controls.sortBy.label": "Sortuj według", "ChallengeFilterSubnav.filter.categorization.add": "Dodaj:", "ChallengeFilterSubnav.filter.categorization.anything": "Cokolwiek", "ChallengeFilterSubnav.filter.categorization.delete": "Musisz usunąć kategorię", "ChallengeFilterSubnav.filter.categorization.new": "to add a new one.", - "ChallengeFilterSubnav.filter.categorization.set": "You have not set any categories.", - "ChallengeFilterSubnav.filter.categorization.signIn": "You must sign in to add a keyword.", + "ChallengeFilterSubnav.filter.categorization.set": "Nie ustawiłeś żadnych kategorii.", + "ChallengeFilterSubnav.filter.categorization.signIn": "Aby dodać słowo kluczowe, musisz się zalogować.", "ChallengeFilterSubnav.filter.categorize.label": "Kategoryzuj", "ChallengeFilterSubnav.filter.difficulty.label": "Trudność", "ChallengeFilterSubnav.filter.keyword.label": "Praca na", @@ -565,7 +567,7 @@ "ChallengeFilterSubnav.query.searchType.task": "Zadanie", "ChallengeOwnerLeaderboard.additionalReviews.label": "Dodatkowe recenzje", "ChallengeOwnerLeaderboard.averageTime.label": "Średni czas", - "ChallengeOwnerLeaderboard.challengeOwnerLeaderboardDisabled.label": "Sorry, mapper results for this leaderboard are currently disabled.", + "ChallengeOwnerLeaderboard.challengeOwnerLeaderboardDisabled.label": "Przepraszamy, wyniki mapowania dla tej tabeli liderów są obecnie wyłączone.", "ChallengeOwnerLeaderboard.points.label": "Pkt", "ChallengeOwnerLeaderboard.reviewsCompleted.label": "# Reviews", "ChallengeOwnerLeaderboard.tasksCompleted.label": "# Zadania", @@ -825,7 +827,7 @@ "EnhancedMap.SearchControl.nominatimQuery.placeholder": "Zapytanie Nominatim", "EnhancedMap.SearchControl.searchLabel": "Szukaj", "ErrorModal.title": "Ups!", - "ErrorTagDropdown.addErrorTag": "Add Error Tag", + "ErrorTagDropdown.addErrorTag": "Dodaj znacznik błędu", "ErrorTagDropdown.errorTag": "Znacznik błędu", "Errors.boundedTask.fetchFailure": "Nie można pobrać zadań opartych na mapie", "Errors.challenge.archiveFailure": "Nie można zaktualizować statusu archiwum", @@ -897,7 +899,7 @@ "Errors.virtualChallenge.expired": "Wirtualne wyzwanie wygasło", "Errors.virtualChallenge.fetchFailure": "Nie można pobrać z serwera ostatnich danych wyzwania wirtualnego.", "Errors.widgetWorkspace.importFailure": "Nie można zaimportować layoutu{details}", - "Errors.widgetWorkspace.renderFailure": "Unable to render workspace. Switching to a working layout.", + "Errors.widgetWorkspace.renderFailure": "Nie można wyrenderować obszaru roboczego. Przejście do układu roboczego.", "FeatureStyleLegend.comparators.contains.label": "zawiera", "FeatureStyleLegend.comparators.exists.label": "istnieje", "FeatureStyleLegend.comparators.missing.label": "missing", @@ -949,13 +951,13 @@ "Home.Featured.browse": "Odkrywaj", "Home.Featured.header": "Wyzwania specjalne", "Home.Hero.controls.getStarted.label": "Zacznij", - "Home.Hero.headline": "Be an instant contributor to the world’s maps", + "Home.Hero.headline": "Zostań natychmiast współtwórcą map świata", "Home.Instructions.controls.findChallenges.label": "Znajdź wyzwania", "Home.Instructions.firstParagraph": "MapRoulette ma dziesiątki wyzwań związanych z mapowaniem, które są tworzone przez doświadczonych edytorów. Każde wyzwanie dotyczy ulepszenia OSM w wyjątkowy sposób. Czy chcesz dodać przejścia dla pieszych? Naprawić mosty? Dodać godziny otwarcia sklepów? Jest to wyzwanie. Każde wyzwanie ma wiele zadań, być może nawet tysiące. ", "Home.Instructions.header": "Znajdź swoje wyzwanie", "Home.Instructions.secondParagraph": "Rób tyle, ile chcesz. Jeśli wyzwanie jest dla Ciebie zbyt łatwe lub zbyt trudne, po prostu przeskocz do innego zadania, wiedząc, że za każdym razem, gdy klikasz \"Naprawiłem to!\", wnosisz znaczący wkład w mapy świata.", "Home.Intro.detail": "To dlatego OSM jest najbardziej aktualną i kompletną mapą, jaką można znaleźć gdziekolwiek, i to dlatego Facebook, Snapchat i wiele innych firm używa OSM do tworzenia własnych map. Jeśli spojrzysz na bogactwo danych OpenStreetMap, możesz się zastanawiać, co jeszcze pozostało do zmapowania. I tu pojawia się MapRoulette! Po prostu zaloguj się na swoje konto OpenStreetMap, znajdź zadanie, które jest dla Ciebie odpowiednie i stań się współtwórcą map świata!", - "Home.Intro.donateButton": "Support the growth of MapRoulette by donating here!", + "Home.Intro.donateButton": "Wesprzyj rozwój MapRoulette, przekazując tutaj darowiznę!", "Home.Intro.firstBullet": "Pracuj na własnym poziomie, od nowicjusza do eksperta", "Home.Intro.header": "Tysiące ludzi - tak jak Ty - edytuje OpenStreetMap każdego dnia", "Home.Intro.secondBullet": "Znajdź zadania do mapowania, które są dla Ciebie ważne", @@ -973,14 +975,14 @@ "Inbox.followNotification.followed.lead": "Masz nowego fana!", "Inbox.header": "Powiadomienia", "Inbox.mapperChallengeCompleteNotification.lead": "Wyzwanie, nad którym pracowałeś zostało zakończone. Dziękujemy za udział!", - "Inbox.mentionNotification.lead": "You've been mentioned in a comment:", + "Inbox.mentionNotification.lead": "Wspomniano o Tobie w komentarzu:", "Inbox.metaReviewAgainNotification.lead": "The reviewer has revised their review and is requesting an additional meta-review.", "Inbox.metaReviewApprovedNotification.lead": "Dobra wiadomość! Twoja recenzja zadania została sprawdzona i zatwierdzona.", "Inbox.metaReviewApprovedWithFixesNotification.lead": "Your task review been approved (with some fixes made for you by the meta-reviewer).", "Inbox.metaReviewRejectedNotification.lead": "Following a meta-review of your task review, the meta-reviewer has determined that it needs some additional work.", "Inbox.noNotifications": "Brak powiadomień", "Inbox.notification.appliedErrorTags": "The following error tags have been applied to your task", - "Inbox.notification.commentedOnChallenge": "Someone commented on your challenge.", + "Inbox.notification.commentedOnChallenge": "Ktoś skomentował Twoje wyzwanie.", "Inbox.notification.controls.deleteNotification.label": "Usuń", "Inbox.notification.controls.findMoreChallenge.label": "Znajdź więcej wyzwani na mapie!", "Inbox.notification.controls.manageChallenge.label": "Zarządzaj wyzwaniami", @@ -1004,7 +1006,7 @@ "IntlTable.jumpToPage.label": "przejdź na stronę", "IntlTable.loading.label": "Wczytywanie...", "IntlTable.next.label": "Następny", - "IntlTable.noData": "No rows found", + "IntlTable.noData": "Nie odnaleziono wierszy", "IntlTable.of": "of", "IntlTable.page.label": "Strona", "IntlTable.previous.label": "Poprzedni", @@ -1014,20 +1016,20 @@ "KeyMapping.layers.layerMapillary": "Toggle Mapillary Layer", "KeyMapping.layers.layerOSMData": "Toggle OSM Data Layer", "KeyMapping.layers.layerTaskFeatures": "Toggle Features Layer", - "KeyMapping.openEditor.editId": "Edit in iD", + "KeyMapping.openEditor.editId": "Edytuj w iD", "KeyMapping.openEditor.editJosm": "Edytuj w JOSM", - "KeyMapping.openEditor.editJosmFeatures": "Edit just features in JOSM", + "KeyMapping.openEditor.editJosmFeatures": "Edytuj tylko funkcje w JOSM", "KeyMapping.openEditor.editJosmLayer": "Edytuj w nowej warstwie JOSM", "KeyMapping.openEditor.editLevel0": "Edytuj w Level0", "KeyMapping.openEditor.editRapid": "Edytuj w RapiD", "KeyMapping.taskCompletion.alreadyFixed": "Już naprawione", "KeyMapping.taskCompletion.confirmSubmit": "Wyślij", - "KeyMapping.taskCompletion.falsePositive": "No / Not an issue", - "KeyMapping.taskCompletion.fixed": "Yes / I fixed it!", + "KeyMapping.taskCompletion.falsePositive": "Nie / Nie ma problemu", + "KeyMapping.taskCompletion.fixed": "Tak / Naprawiłem to!", "KeyMapping.taskCompletion.skip": "Pomiń", "KeyMapping.taskCompletion.tooHard": "Nie można ukończyć", "KeyMapping.taskEditing.cancel": "Anuluj edycję", - "KeyMapping.taskEditing.completeTogether": "Complete Tasks Together", + "KeyMapping.taskEditing.completeTogether": "Wykonujcie zadania razem", "KeyMapping.taskEditing.escapeLabel": "ESC", "KeyMapping.taskEditing.fitBounds": "Fit Map to Task Features", "KeyMapping.taskInspect.nextTask": "Następne zadanie", @@ -1048,7 +1050,7 @@ "LayerToggle.loading": "(wczytywanie...)", "Leaderboard.controls.loadMore.label": "Pokaż więcej", "Leaderboard.global": "Globalny ranking", - "Leaderboard.scoringMethod.explanation": "\n##### Points are awarded per completed task as follows:\n\n| Status | Points |\n| :------------ | -----: |\n| Fixed | 5 |\n| Not an Issue | 3 |\n| Already Fixed | 3 |\n| Can't Complete| 1 |\n| Skipped | 0 |\n", + "Leaderboard.scoringMethod.explanation": "\n##### Punkty są przyznawane za ukończone zadanie w następujący sposób:\n\n| Stan | Punkty |\n| :------------ | -----: |\n| Naprawiono | 5 |\n| To nie problem | 3 |\n| Już naprawiono | 3 |\n| Nie można ukończyć| 1 |\n| Pominięto | 0 |\n", "Leaderboard.scoringMethod.label": "Metoda punktacji", "Leaderboard.title": "Tabela wyników", "Leaderboard.updatedDaily": "Aktualizowane co 24 godziny", @@ -1072,7 +1074,7 @@ "Metrics.leaderboardTitle": "Tabela wyników", "Metrics.links.osmCha.label": "OSMCha", "Metrics.links.osmProfile.label": "Profil OSM", - "Metrics.projects": "Projects", + "Metrics.projects": "Projekty", "Metrics.reviewStats.approved.label": "Reviewed tasks that passed", "Metrics.reviewStats.asReviewer.additionalReviews.label": "Provided an additional review", "Metrics.reviewStats.asReviewer.approved.label": "Recenzje oznaczone jako zaakceptowane", @@ -1086,13 +1088,13 @@ "Metrics.reviewStats.rejected.label": "Tasks that failed", "Metrics.reviewedTasksTitle": "Status recenzji", "Metrics.reviewedTasksTitle.asReviewer": "Tasks Reviewed by {username}", - "Metrics.reviewedTasksTitle.asReviewer.totalTasks": "Total tasks you reviewed", + "Metrics.reviewedTasksTitle.asReviewer.totalTasks": "Łączna liczba przejrzanych zadań", "Metrics.reviewedTasksTitle.asReviewer.you": "Reviews Performed by You", "Metrics.sortBy": "Sort By", "Metrics.totalCompletedTasksTitle": "Suma ukończonych zadań", - "Metrics.userOptedOut": "This user has opted out of public display of their stats.", + "Metrics.userOptedOut": "Ten użytkownik zrezygnował z publicznego wyświetlania swoich statystyk.", "Metrics.userSince": "Użytkownik od:", - "Metrics.users": "Users", + "Metrics.users": "Użytkownicy", "Metrics.virtual": "Virtual", "MobileNotSupported.header": "Please Visit on your Computer", "MobileNotSupported.message": "Przepraszamy, MapRoulette nie wspiera aktualnie urządzeń mobilnych", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "System", "Notification.type.team": "Zespół", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "Zobacz OSM", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1139,7 +1144,7 @@ "OSMElementHistory.undeterminedVersion": "Version detection unavailable for this task", "OSMElementHistory.version.label": "Version {version, number}", "PageNotFound.homePage": "Take me home", - "PageNotFound.message": "Oops! The page you’re looking for is lost.", + "PageNotFound.message": "Ups! Strona, której szukasz, została utracona.", "Pages.SignIn.modal.prompt": "Zaloguj się, aby kontynuować", "Pages.SignIn.modal.title": "Witaj znowu!", "PastDurationSelector.allTime.selectOption": "Cały czas", @@ -1200,10 +1205,10 @@ "Profile.form.teamNotifications.description": "Receive a notification when you have been invited by another user to join a team.", "Profile.form.uniqueCustomBasemap.error": "Custom Basemap names must be unique", "Profile.form.yes.label": "Tak", - "Profile.noUser": "User not found or you are unauthorized to view this user.", + "Profile.noUser": "Nie odnaleziono użytkownika lub nie masz uprawnień do przeglądania tego użytkownika.", "Profile.page.title": "Ustawienia użytkownika", "Profile.settings.header": "Ogólny", - "Profile.settings.settingsSaved": "Settings Saved", + "Profile.settings.settingsSaved": "Ustawienia zapisane", "Profile.userSince": "Użytkownik od:", "Project.fields.viewLeaderboard.label": "Zobacz tabelę wyników", "Project.indicator.label": "Projekt", @@ -1214,11 +1219,11 @@ "ProjectDetails.fields.created.label": "Utworzone", "ProjectDetails.fields.featured.label": "Wyróżnione", "ProjectDetails.fields.modified.label": "Zmodyfikowane", - "ProjectDetails.fields.owner.label": "Owner", + "ProjectDetails.fields.owner.label": "Właściciel", "ProjectDetails.fields.viewLeaderboard.label": "Zobacz tabelę wyników", "ProjectDetails.fields.viewReviews.label": "Recenzja", "ProjectDetails.management.controls.manage.label": "Zarządzaj", - "ProjectDetails.management.controls.showAll.label": "Display All Challenges", + "ProjectDetails.management.controls.showAll.label": "Wyświetl wszystkie wyzwania", "ProjectDetails.management.controls.start.label": "Rozpocznij", "ProjectPickerModal.chooseProject": "Wybierz projekt", "ProjectPickerModal.noProjects": "Nie znaleziono projektów", @@ -1251,7 +1256,7 @@ "Review.Task.fields.featureId.label": "Feature Id", "Review.Task.fields.id.label": "Wewnętrzne Id:", "Review.TaskAnalysisTable.allReviewedTasks": "Wszystkie zadania związane z recenzją", - "Review.TaskAnalysisTable.clearFilters": "Clear Filters", + "Review.TaskAnalysisTable.clearFilters": "Wyczyść filtry", "Review.TaskAnalysisTable.columnHeaders.actions": "Akcje", "Review.TaskAnalysisTable.columnHeaders.comments": "Komentarze", "Review.TaskAnalysisTable.configureColumns": "Konfiguruj kolumny", @@ -1284,7 +1289,7 @@ "Review.TaskAnalysisTable.tasksReviewedByMe": "Tasks Reviewed by Me", "Review.TaskAnalysisTable.tasksToBeReviewed": "Tasks to be Reviewed", "Review.TaskAnalysisTable.tasksToMetaReview": "Tasks to Meta Review", - "Review.TaskAnalysisTable.toggleMap": "Toggle Map", + "Review.TaskAnalysisTable.toggleMap": "Przełącz mapę", "Review.TaskAnalysisTable.totalTasks": "Total: {countShown}", "Review.fields.additionalReviewers.label": "Additional Reviewers", "Review.fields.challenge.label": "Wyzwanie", @@ -1312,7 +1317,7 @@ "Review.tableFilter.viewAllTasks": "Wyświetl wszystkie zadania", "Review.tablefilter.chooseFilter": "Wybierz projekt lub wyzwanie", "ReviewMap.metrics.title": "Mapa recenzji", - "ReviewStatus.metrics.alreadyFixed": "ALREADY FIXED", + "ReviewStatus.metrics.alreadyFixed": "JUŻ NAPRAWIONO", "ReviewStatus.metrics.approvedReview": "Reviewed tasks that passed", "ReviewStatus.metrics.assistedReview": "Reviewed tasks that passed with fixes", "ReviewStatus.metrics.averageTime.label": "Avg time per review:", @@ -1333,20 +1338,20 @@ "ReviewStatus.metrics.rejectedReview": "Reviewed tasks that failed", "ReviewStatus.metrics.taskStatus.label": "{status} Tasks", "ReviewStatus.metrics.title": "Status recenzji", - "ReviewStatus.metrics.tooHard": "CAN'T COMPLETE", + "ReviewStatus.metrics.tooHard": "NIE MOŻNA UKOŃCZYĆ", "ReviewTaskPane.controls.unlock.label": "Odblokuj", "ReviewTaskPane.indicators.locked.label": "Zadanie zablokowane", "RolePicker.chooseRole.label": "Wybierz rolę", - "SavedChallenges.widget.checkList.label": "Refresh list to check.", + "SavedChallenges.widget.checkList.label": "Odśwież listę, aby sprawdzić.", "SavedChallenges.widget.description": "Tasks locked for more than an hour will be automatically unlocked within the next hour or might already be unlocked. ", "SavedChallenges.widget.noChallenges": "Brak wyzwań", - "SavedChallenges.widget.noTasks": "You have no locked tasks", + "SavedChallenges.widget.noTasks": "Nie masz żadnych zablokowanych zadań", "SavedChallenges.widget.startChallenge": "Rozpocznij wyzwanie", "SavedFilters.controls.delete.label": "Usuń", "SavedFilters.controls.done.label": "Zrobiono", "SavedFilters.controls.edit.label": "Edycja", "SavedFilters.controls.manageFilters.label": "Manage saved filters", - "SavedFilters.controls.saveFilters.label": "Save current filters", + "SavedFilters.controls.saveFilters.label": "Zapisz bieżące filtry", "SavedFilters.noSavedFilters.": "Brak zapisanych filtrów", "SavedFilters.placeholder.label": "Name your saved filters", "SavedFilters.savedFilters.title": "Zapisz filtry", @@ -1356,19 +1361,19 @@ "ScreenTooNarrow.header": "Please widen your browser window", "ScreenTooNarrow.message": "This page is not yet compatible with smaller screens. Please expand your browser window or switch to a larger device or display.", "SelectMarkersInViewControl.tooltip": "Select all markers in view", - "Sent.controls.challenges.label": "Challenges", + "Sent.controls.challenges.label": "Wyzwania", "Sent.controls.goToChallenge.label": "Go to Challenge", - "Sent.controls.goToTask.label": "Go to Task", - "Sent.controls.refreshComments.label": "Refresh", - "Sent.controls.tasks.label": "Tasks", + "Sent.controls.goToTask.label": "Przejdź do zadania", + "Sent.controls.refreshComments.label": "Odśwież", + "Sent.controls.tasks.label": "Zadania", "Sent.header": "Wysłane komentarze", "ShareLink.controls.copy.label": "Kopiuj", "SignIn.control.label": "Logowanie", - "SignIn.control.longLabel": "Sign in to participate", + "SignIn.control.longLabel": "Zaloguj się, aby wziąć udział", "Social.featuredChallenges.header": "Wyzwania specjalne", "Social.featuredChallenges.lead": "Wyróżnione na MapRoulette:", "Social.newestChallenges.header": "Najnowsze wyzwania", - "Social.newestChallenges.lead": "New on MapRoulette:", + "Social.newestChallenges.lead": "Nowość na MapRoulette:", "Social.none": "Żaden", "Social.popularChallenges.header": "Popularne wyzwania", "Social.popularChallenges.lead": "Popularne na MapRoulette:", @@ -1421,7 +1426,7 @@ "Task.controls.fixed.tooltip": "Naprawiłem to!", "Task.controls.joinChallengeDiscussion.label": "Join Challenge Discussion", "Task.controls.next.label": "Następne zadanie", - "Task.controls.next.loadBy.label": "Load Next:", + "Task.controls.next.loadBy.label": "Wczytaj następny:", "Task.controls.next.tooltip": "Następne zadanie", "Task.controls.nextNearby.label": "Select next nearby task", "Task.controls.noOwnerFound.label": "Challenge Owner could not be found", @@ -1436,8 +1441,8 @@ "Task.controls.step1.errorTagsApplied": "The following error tags were applied", "Task.controls.step1.otherOptions": "Inne", "Task.controls.step1.revisionNeeded": "This task needs revision.", - "Task.controls.tooHard.label": "Can't Complete", - "Task.controls.tooHard.tooltip": "Can't Complete", + "Task.controls.tooHard.label": "Nie można ukończyć", + "Task.controls.tooHard.tooltip": "Nie można ukończyć", "Task.controls.track.label": "Track this Task", "Task.controls.untrack.label": "Stop tracking this Task", "Task.controls.viewChangeset.label": "Pokaż zestaw zmian", @@ -1504,14 +1509,14 @@ "Task.reviewStatus.rejected": "Potrzebna rewizja", "Task.reviewStatus.unnecessary": "Niepotrzebna", "Task.reviewStatus.unset": "Review not yet requested", - "Task.status.alreadyFixed": "Already Fixed", + "Task.status.alreadyFixed": "Już naprawione", "Task.status.created": "Utworzono", "Task.status.deleted": "Usunięte", "Task.status.disabled": "Disabled", "Task.status.falsePositive": "To nie problem", "Task.status.fixed": "Naprawione", "Task.status.skipped": "Skipped", - "Task.status.tooHard": "Can't Complete", + "Task.status.tooHard": "Nie można ukończyć", "Task.taskTags.add.label": "Add MR Tags", "Task.taskTags.addTags.placeholder": "Add MR Tags", "Task.taskTags.cancel.label": "Anuluj", @@ -1522,7 +1527,7 @@ "Task.unsave.control.tooltip": "Stop Tracking", "TaskClusterMap.controls.clusterTasks.label": "Cluster", "TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks", - "TaskClusterMap.message.nearMe.label": "Near Me", + "TaskClusterMap.message.nearMe.label": "Blisko mnie", "TaskClusterMap.message.or.label": "lub", "TaskClusterMap.message.refreshTasks.label": "Click to refresh tasks", "TaskClusterMap.message.taskCount.label": "{count,plural,=0{No tasks found}one{# task found}other{# tasks found}}", @@ -1558,12 +1563,12 @@ "TaskConfirmationModal.priority.label": "Priorytet:", "TaskConfirmationModal.review.label": "Need an extra set of eyes? Check here to have your work reviewed by a human", "TaskConfirmationModal.reviewStatus.label": "Status recenzji:", - "TaskConfirmationModal.status.label": "Status:", + "TaskConfirmationModal.status.label": "Stan:", "TaskConfirmationModal.submit.label": "Wyślij", "TaskConfirmationModal.submitRevisionHeader": "Please Confirm Revision", "TaskConfirmationModal.useChallenge.label": "Use current challenge", "TaskHistory.controls.listByTime.label": "Entries", - "TaskHistory.controls.listByUser.label": "Contributors", + "TaskHistory.controls.listByUser.label": "Współautorzy", "TaskHistory.controls.viewAttic.label": "View Attic", "TaskHistory.errorTags.label": "Error Tags", "TaskHistory.fields.startedOn.label": "Started on task", @@ -1587,17 +1592,17 @@ "TaskPropertyQueryBuilder.error.missingLeftRule": "When using a compound rule both parts must be specified.", "TaskPropertyQueryBuilder.error.missingPropertyType": "Please choose a property type.", "TaskPropertyQueryBuilder.error.missingRightRule": "When using a compound rule both parts must be specified.", - "TaskPropertyQueryBuilder.error.missingStyleName": "You must choose a style name.", - "TaskPropertyQueryBuilder.error.missingStyleValue": "You must enter a style value.", - "TaskPropertyQueryBuilder.error.missingValue": "You must enter a value.", - "TaskPropertyQueryBuilder.error.notNumericValue": "Property value given is not a valid number.", + "TaskPropertyQueryBuilder.error.missingStyleName": "Musisz wybrać nazwę stylu.", + "TaskPropertyQueryBuilder.error.missingStyleValue": "Należy wprowadzić wartość stylu.", + "TaskPropertyQueryBuilder.error.missingValue": "Musisz wprowadzić wartość.", + "TaskPropertyQueryBuilder.error.notNumericValue": "Podana wartość właściwości nie jest prawidłową liczbą.", "TaskPropertyQueryBuilder.options.none.label": "Żaden", "TaskPropertyQueryBuilder.propertyType.compoundRuleType": "compound rule", "TaskPropertyQueryBuilder.propertyType.numberType": "numer", "TaskPropertyQueryBuilder.propertyType.stringType": "tekst", "TaskReviewStatusFilter.label": "Review Status", "TaskReviewStatusFilter.metaReviewStatuses.label": "Meta-Review Statuses", - "TaskStatusFilter.label": "Status", + "TaskStatusFilter.label": "Stan", "TasksTable.invert.abel": "invert", "TasksTable.inverted.label": "inverted", "Taxonomy.indicators.cooperative.label": "Cooperative", @@ -1619,7 +1624,7 @@ "Team.controls.save.label": "Zapisz", "Team.controls.view.label": "Zobacz zespół", "Team.description.description": "Krótki opis zespołu", - "Team.description.label": "Description", + "Team.description.label": "Opis", "Team.invitedMembers.header": "Pending Invitations", "Team.member.controls.acceptInvite.label": "Dołącz do zespołu", "Team.member.controls.declineInvite.label": "Odmów zaproszenia", @@ -1632,10 +1637,10 @@ "TopUserChallenges.topChallengesDisabled.label": "Results for Top Challenges widget are currently disabled", "TopUserChallenges.widget.label": "Twoje najważniejsze wyzwania", "TopUserChallenges.widget.noChallenges": "Brak wyzwań", - "User.sort.numOfChallenges": "Score", - "UserEditorSelector.currentEditor.label": "Current Editor:", - "UserEditorSelector.defaultEditor.label": "Set Default Editor:", - "UserEditorSelector.openEditor.label": "Open Editor", + "User.sort.numOfChallenges": "Wynik", + "UserEditorSelector.currentEditor.label": "Bieżący edytor:", + "UserEditorSelector.defaultEditor.label": "Ustaw domyślny edytor:", + "UserEditorSelector.openEditor.label": "Otwórz edytor", "UserEditorSelector.unsupportedEditor.label": "Open Unsupported Editor:", "UserProfile.favoriteChallenges.header": "Twoje ulubione wyzwania", "UserProfile.lockedTasks.header": "Your Locked Tasks", @@ -1648,7 +1653,7 @@ "VirtualChallenge.fields.name.label": "Nazwij swoje \"wirtualne\" wyzwanie", "VirtualChallenge.selectedCount": "You have {count} selected", "VirtualChallenge.tooManyTasks": "At most {max} tasks can be worked on at once", - "WidgetPicker.menuLabel": "Add Widget", + "WidgetPicker.menuLabel": "Dodaj widżet", "WidgetWorkspace.controls.addConfiguration.label": "Dodaj nowy układ", "WidgetWorkspace.controls.cancelConfiguration.label": "Anuluj", "WidgetWorkspace.controls.deleteConfiguration.label": "Usuń układ", @@ -1678,7 +1683,7 @@ "Widgets.ChallengeListWidget.label": "Wyzwania", "Widgets.ChallengeListWidget.search.placeholder": "Wyszukaj", "Widgets.ChallengeListWidget.title": "Wyzwania", - "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Challenge Created:", + "Widgets.ChallengeOverviewWidget.fields.creationDate.label": "Utworzono wyzwanie:", "Widgets.ChallengeOverviewWidget.fields.dataOriginDate.label": "Tasks built/added on {refreshDate} from data sourced on {sourceDate}.", "Widgets.ChallengeOverviewWidget.fields.enabled.label": "Odkrywalne:", "Widgets.ChallengeOverviewWidget.fields.keywords.label": "Słowa klucze:", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Edytorzy", "Widgets.LeaderboardWidget.reviewer": "Recenzenci", "Widgets.LeaderboardWidget.title": "Tabela wyników", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "Historia OSM", "Widgets.OSMHistoryWidget.title": "Historia OSM", "Widgets.ProjectAboutWidget.content": "Projekty służą jako sposób grupowania powiązanych ze sobą wyzwań. Wszystkie wyzwania muszą należeć do jednego projektu.\n\nMożesz utworzyć tyle projektów, ile potrzebujesz, aby uporządkować swoje wyzwania, i możesz zapraszać innych użytkowników MapRoulette, aby wspólnie z Tobą nimi zarządzali.\n\nProjekty muszą być ustawione jako Odkrywalne, aby wyzwania w nich pojawiły się w publicznym przeglądaniu lub wyszukiwaniu.", @@ -1733,15 +1740,15 @@ "Widgets.ProjectManagersWidget.label": "Menadżerowie projektu", "Widgets.ProjectOverviewWidget.label": "Przegląd", "Widgets.ProjectOverviewWidget.title": "Przegląd", - "Widgets.PublicTaskInstructionsWidget.label": "Instructions", + "Widgets.PublicTaskInstructionsWidget.label": "Instrukcje", "Widgets.RecentActivityWidget.label": "Ostatnia aktywność", "Widgets.RecentActivityWidget.title": "Ostatnia aktywność", - "Widgets.ReviewNearbyTasksWidget.controls.clearFilters.label": "Clear Filters", + "Widgets.ReviewNearbyTasksWidget.controls.clearFilters.label": "Wyczyść filtry", "Widgets.ReviewNearbyTasksWidget.controls.filterList.label": "Filter By:", - "Widgets.ReviewNearbyTasksWidget.label": "Nearby Tasks", + "Widgets.ReviewNearbyTasksWidget.label": "Zadania w pobliżu", "Widgets.ReviewNearbyTasksWidget.popup.fields.name.label": "Feature Id:", "Widgets.ReviewNearbyTasksWidget.popup.fields.priority.label": "Priority:", - "Widgets.ReviewNearbyTasksWidget.popup.fields.status.label": "Status:", + "Widgets.ReviewNearbyTasksWidget.popup.fields.status.label": "Stan:", "Widgets.ReviewNearbyTasksWidget.popup.fields.taskId.label": "Internal Id:", "Widgets.ReviewNearbyTasksWidget.reviewTaskTitle": "Nearby Tasks", "Widgets.ReviewNearbyTasksWidget.simultaneousTasks": "Working on {taskCount, number} tasks together", @@ -1797,7 +1804,7 @@ "Widgets.TaskBundleWidget.removeFromBundle": "Remove from bundle", "Widgets.TaskBundleWidget.reviewTaskTitle": "Pracuj na kilku zadaniach wspólnie", "Widgets.TaskBundleWidget.simultaneousTasks": "Wspólna praca nad {taskCount, number} zadaniami", - "Widgets.TaskBundleWidget.unableToSelect": "Unable to select", + "Widgets.TaskBundleWidget.unableToSelect": "Nie można wybrać", "Widgets.TaskCompletionWidget.cancelSelection": "Anulowanie wyboru", "Widgets.TaskCompletionWidget.completeTogether": "Ukończone razem", "Widgets.TaskCompletionWidget.cooperativeWorkTitle": "Proponowane zmiany", @@ -1815,9 +1822,9 @@ "Widgets.TaskLocationWidget.controls.showLatLon.label": "Szerokość/długość geograficzna", "Widgets.TaskLocationWidget.controls.showLonLat.label": "Długość/szerokość geograficzna ", "Widgets.TaskLocationWidget.label": "Lokalizacja", - "Widgets.TaskLocationWidget.switch": "Switch to:", + "Widgets.TaskLocationWidget.switch": "Przełącz na:", "Widgets.TaskLocationWidget.title": "Lokalizacja", - "Widgets.TaskMapWidget.editMode": "Current Mode:", + "Widgets.TaskMapWidget.editMode": "Bieżący tryb:", "Widgets.TaskMapWidget.label": "Zadanie", "Widgets.TaskMapWidget.rapidDiscardUnsavedChanges": "You have unsaved changes in Rapid which will be discarded. Are you sure you want to proceed?", "Widgets.TaskMapWidget.rapidFailed": "Widget Failed! Geometries Null!", diff --git a/lang/pt_BR.json b/lang/pt_BR.json index 51de6828d..c1485b6ef 100644 --- a/lang/pt_BR.json +++ b/lang/pt_BR.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Etiquetas do MR preferidas", "Admin.EditChallenge.form.presets.description": "Restringe os tipos de elementos OSM apresentados aos mapeadores no iD por padrão ao trabalhar em suas tarefas, ajudando a mantê-los focados em mapear coisas relevantes para o seu desafio. Por exemplo, se o seu desafio é mapear edifícios, você poderia habilitar apenas as predefinições relacionados a edifícios e, em seguida, os mapeadores não seriam apresentados com a opção de mapear uma área como, por exemplo, um parque ou um lago.", "Admin.EditChallenge.form.presets.label": "Restringir predefinições do editor iD", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Localização do URL remoto a partir da qual obter o GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "Eu tenho um URL para os dados GeoJSON.", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.exemplo.com.br/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Contagem de revisão", "Notification.type.system": "Sistema", "Notification.type.team": "Equipe", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "Ver OSM", "OSMElementHistory.elementFetchFailed": "Não foi possível obter histórico para {element}", "OSMElementHistory.noComment": "(sem comentário no conjunto de alterações)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mapeadores", "Widgets.LeaderboardWidget.reviewer": "Revisores", "Widgets.LeaderboardWidget.title": "Placar", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "Histórico no OSM", "Widgets.OSMHistoryWidget.title": "Histórico no OSM", "Widgets.ProjectAboutWidget.content": "Os projetos servem como um meio de agrupar desafios relacionados. Todos\nos desafios devem pertencer a um projeto.\n\nVocê pode criar quantos projetos forem necessários para organizar seus desafios, e pode\nconvidar outros usuários do MapRoulette para ajudar a gerenciá-los com você.\n\nOs projetos devem ser definidos como Visível antes que quaisquer desafios dentro deles\napareçam na navegação ou pesquisa pública.", diff --git a/lang/pt_PT.json b/lang/pt_PT.json index 70314d1ed..c2952ce47 100644 --- a/lang/pt_PT.json +++ b/lang/pt_PT.json @@ -129,7 +129,7 @@ "Admin.EditChallenge.form.description.label": "Descrição do seu desafio", "Admin.EditChallenge.form.difficulty.description": "Indica aos mapeadores qual é o nível de experiência necessário para concluir as tarefas no seu desafio.", "Admin.EditChallenge.form.difficulty.label": "Dificuldade das suas tarefas", - "Admin.EditChallenge.form.disableOsmIdProperty": "This ID cannot be edited after challenge creation, this is to prevent task duplication. [Learn more](https://learn.maproulette.org/documentation/setting-external-task-identifiers/).", + "Admin.EditChallenge.form.disableOsmIdProperty": "Este ID não pode ser editado após a criação do desafio, para evitar duplicação de tarefas. [Saiba mais](https://learn.maproulette.org/documentation/setting-external-task-identifiers/).", "Admin.EditChallenge.form.email.description": "Forneça um e-mail para que os mapeadores o possam contactar com comentários", "Admin.EditChallenge.form.email.label": "Endereço de e-mail", "Admin.EditChallenge.form.exportableProperties.description": "Todas as propriedades incluídas nesta lista separada por vírgulas serão exportadas como uma coluna na exportação CSV e preenchidas com a primeira propriedade do elemento correspondente de cada tarefa.", @@ -170,12 +170,14 @@ "Admin.EditChallenge.form.overpassQL.target.way": "Vias", "Admin.EditChallenge.form.overpassQL.targetType": "Tipo de alvo Overpass", "Admin.EditChallenge.form.overpassQL.targetType.description": "Será gerado um erro se os resultados do Overpass não corresponderem ao tipo de objetivo.", - "Admin.EditChallenge.form.preferredReviewTags.description": "You can optionally provide a list of preferred tags that you want the reviewer to use when reviewing a task. [Learn More](https://learn.maproulette.org/en-us/documentation/using-maproulette-tags/)", + "Admin.EditChallenge.form.preferredReviewTags.description": "Opcionalmente, pode fornecer uma lista de etiquetas preferenciais que pretende que o revisor utilize ao rever uma tarefa. [Saiba mais](https://learn.maproulette.org/en-us/documentation/using-maproulette-tags/)", "Admin.EditChallenge.form.preferredReviewTags.label": "Etiquetas MR de revisão preferidas", - "Admin.EditChallenge.form.preferredTags.description": "You can optionally provide a list of preferred tags that you want the user to use when completing a task. [Learn More](https://learn.maproulette.org/en-us/documentation/using-maproulette-tags/)", + "Admin.EditChallenge.form.preferredTags.description": "Opcionalmente, pode fornecer uma lista de etiquetas preferenciais que pretende que o utilizador utilize ao concluir uma tarefa. [Saiba mais](https://learn.maproulette.org/en-us/documentation/using-maproulette-tags/)", "Admin.EditChallenge.form.preferredTags.label": "Etiquetas MR preferidas", "Admin.EditChallenge.form.presets.description": "Restringir os tipos de elementos OSM apresentados aos mapeadores no iD por defeito quando trabalham nas suas tarefas, ajudando-os a manterem-se concentrados no mapeamento de coisas relevantes para o seu desafio. Por exemplo, se o seu desafio for o mapeamento de edifícios, pode ativar apenas predefinições relacionadas com edifícios e, assim, não será apresentada aos mapeadores a opção de mapear uma área como, por exemplo, um parque ou um lago.", "Admin.EditChallenge.form.presets.label": "Restringir predefinições do iD Editor", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Localização do URL remoto a partir do qual se deve obter o GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "Tenho um URL para os dados GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -535,7 +537,7 @@ "ChallengeDetails.fields.lastChallengeDetails.DataOriginDate.label": "Tarefas criadas em {refreshDate} a partir dos dados obtidos em {sourceDate}.", "ChallengeDetails.fields.lastChallengeDetails.TaskRefresh.label": "Dados da tarefa obtidos em", "ChallengeDetails.fields.overpassQL.label": "Consulta Overpass", - "ChallengeDetails.fields.owner.label": "Owner", + "ChallengeDetails.fields.owner.label": "Proprietário", "ChallengeDetails.fields.viewComments.label": "Entrar em contacto", "ChallengeDetails.fields.viewLeaderboard.label": "Ver tabela de classificação", "ChallengeDetails.fields.viewOverview.label": "Visão geral", @@ -856,9 +858,9 @@ "Errors.osm.bandwidthExceeded": "A largura de banda permitida do OpenStreetMap foi ultrapassada", "Errors.osm.elementMissing": "Elemento não encontrado no servidor do OpenStreetMap", "Errors.osm.fetchFailure": "Não foi possível obter os dados do OpenStreetMap", - "Errors.osm.parseFailure": "Unable to parse tag data from OpenStreetMap", + "Errors.osm.parseFailure": "Não foi possível analisar dados de etiqueta do OpenStreetMap", "Errors.osm.requestTooLarge": "O pedido de dados do OpenStreetMap é demasiado grande", - "Errors.osm.textConversionFailure": "Unable to convert tag data from OpenStreetMap to text.", + "Errors.osm.textConversionFailure": "Não foi possível converter os dados de etiqueta do OpenStreetMap para texto.", "Errors.project.deleteFailure": "Não é possível eliminar o projeto.", "Errors.project.fetchFailure": "Não é possível recuperar os dados mais recentes do projeto a partir do servidor.", "Errors.project.notManager": "Para prosseguir, tem de ser um gestor desse projeto.", @@ -949,7 +951,7 @@ "Home.Featured.browse": "Explorar", "Home.Featured.header": "Desafios em destaque", "Home.Hero.controls.getStarted.label": "Começar", - "Home.Hero.headline": "Be an instant contributor to the world’s maps", + "Home.Hero.headline": "Contribua de imediato para os mapas do mundo", "Home.Instructions.controls.findChallenges.label": "Encontrar desafios", "Home.Instructions.firstParagraph": "O MapRoulette tem dezenas de desafios de mapeamento que são criados por mapeadores experientes. Cada desafio tem como objetivo melhorar o OpenStreetMap de uma forma muito específica. Quer adicionar passagens para peões? Corrigir pontes? Adicionar horários de abertura de lojas? Há um desafio para isso. Cada desafio tem muitas tarefas, talvez até milhares.", "Home.Instructions.header": "Encontre o seu desafio", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Número de revisões", "Notification.type.system": "Sistema", "Notification.type.team": "Equipa", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "Ver OSM", "OSMElementHistory.elementFetchFailed": "Falha na obtenção do histórico de {element}", "OSMElementHistory.noComment": "(sem comentário no conjunto de alterações)", @@ -1214,7 +1219,7 @@ "ProjectDetails.fields.created.label": "Criado", "ProjectDetails.fields.featured.label": "Destacado", "ProjectDetails.fields.modified.label": "Modificado", - "ProjectDetails.fields.owner.label": "Owner", + "ProjectDetails.fields.owner.label": "Proprietário", "ProjectDetails.fields.viewLeaderboard.label": "Ver tabela de classificação", "ProjectDetails.fields.viewReviews.label": "Rever", "ProjectDetails.management.controls.manage.label": "Gerir", @@ -1337,10 +1342,10 @@ "ReviewTaskPane.controls.unlock.label": "Desbloquear", "ReviewTaskPane.indicators.locked.label": "Tarefa bloqueada", "RolePicker.chooseRole.label": "Escolher função", - "SavedChallenges.widget.checkList.label": "Refresh list to check.", - "SavedChallenges.widget.description": "Tasks locked for more than an hour will be automatically unlocked within the next hour or might already be unlocked. ", + "SavedChallenges.widget.checkList.label": "Atualiza a lista para verificar.", + "SavedChallenges.widget.description": "As tarefas bloqueadas durante mais de uma hora serão automaticamente desbloqueadas na hora seguinte ou poderão já estar desbloqueadas. ", "SavedChallenges.widget.noChallenges": "Sem desafios", - "SavedChallenges.widget.noTasks": "You have no locked tasks", + "SavedChallenges.widget.noTasks": "Não tem tarefas bloqueadas", "SavedChallenges.widget.startChallenge": "Começar o desafio", "SavedFilters.controls.delete.label": "eliminar", "SavedFilters.controls.done.label": "Concluído", @@ -1634,11 +1639,11 @@ "TopUserChallenges.widget.noChallenges": "Sem desafios", "User.sort.numOfChallenges": "Placar", "UserEditorSelector.currentEditor.label": "Editor atual:", - "UserEditorSelector.defaultEditor.label": "Set Default Editor:", - "UserEditorSelector.openEditor.label": "Open Editor", - "UserEditorSelector.unsupportedEditor.label": "Open Unsupported Editor:", + "UserEditorSelector.defaultEditor.label": "Definir editor padrão:", + "UserEditorSelector.openEditor.label": "Abrir editor", + "UserEditorSelector.unsupportedEditor.label": "Abrir editor não suportado:", "UserProfile.favoriteChallenges.header": "Os seus desafios favoritos", - "UserProfile.lockedTasks.header": "Your Locked Tasks", + "UserProfile.lockedTasks.header": "As suas tarefas bloqueadas", "UserProfile.savedTasks.header": "Tarefas acompanhadas", "UserProfile.topChallenges.header": "Os seus desafios principais", "VirtualChallenge.controls.create.label": "Trabalhar nas {taskCount} tarefas selecionadas", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mapeadores", "Widgets.LeaderboardWidget.reviewer": "Revisores", "Widgets.LeaderboardWidget.title": "Tabela de classificação", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "Histórico no OSM", "Widgets.OSMHistoryWidget.title": "Histórico no OSM", "Widgets.ProjectAboutWidget.content": "Os projetos servem como um meio de agrupar desafios relacionados. Todos os desafios têm de pertencer a um projeto.\n\nPode criar tantos projetos quantos os necessários para organizar os seus desafios e pode convidar outros utilizadores do MapRoulette para ajudar a geri-los consigo.\n\nOs projetos têm de ser definidos como Descobríveis para que os desafios neles contidos apareçam na navegação ou pesquisa pública.", @@ -1787,7 +1794,7 @@ "Widgets.TaskBundleWidget.label": "Trabalho multitarefa", "Widgets.TaskBundleWidget.noCooperativeWork": "As tarefas cooperativas não podem ser empacotadas", "Widgets.TaskBundleWidget.noVirtualChallenges": "As tarefas em desafios \"virtuais\" não podem ser empacotadas.", - "Widgets.TaskBundleWidget.popup.controls.alreadyBundled.label": "Already bundled by someone else.", + "Widgets.TaskBundleWidget.popup.controls.alreadyBundled.label": "Já empacotado por outra pessoa.", "Widgets.TaskBundleWidget.popup.controls.selected.label": "Selecionado", "Widgets.TaskBundleWidget.popup.fields.name.label": "ID do elemento:", "Widgets.TaskBundleWidget.popup.fields.priority.label": "Prioridade: ", @@ -1819,7 +1826,7 @@ "Widgets.TaskLocationWidget.title": "Localização", "Widgets.TaskMapWidget.editMode": "Modo atual:", "Widgets.TaskMapWidget.label": "Tarefa", - "Widgets.TaskMapWidget.rapidDiscardUnsavedChanges": "You have unsaved changes in Rapid which will be discarded. Are you sure you want to proceed?", + "Widgets.TaskMapWidget.rapidDiscardUnsavedChanges": "Tem alterações não guardadas no Rapid que serão eliminadas. Tem a certeza de que pretende continuar?", "Widgets.TaskMapWidget.rapidFailed": "Falha no widget! Geometrias nulas!", "Widgets.TaskMapWidget.title": "Tarefa", "Widgets.TaskMoreOptionsWidget.label": "Mais opções", diff --git a/lang/ru_RU.json b/lang/ru_RU.json index a39a010ec..5650f88a7 100644 --- a/lang/ru_RU.json +++ b/lang/ru_RU.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferred MR Tags", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "Restrict iD Editor Presets", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Удаленный URL загрузки GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "У меня есть URL-адрес данных GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "Система", "Notification.type.team": "Команда", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "Показать OSM", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Картографы", "Widgets.LeaderboardWidget.reviewer": "Reviewers", "Widgets.LeaderboardWidget.title": "Рейтинг", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "История OSM", "Widgets.OSMHistoryWidget.title": "История OSM", "Widgets.ProjectAboutWidget.content": "Projects serve as a means of grouping related challenges together. All\nchallenges must belong to a project.\n\nYou can create as many projects as needed to organize your challenges, and can\ninvite other MapRoulette users to help manage them with you.\n\nProjects must be set to Discoverable before any challenges within them will\nshow up in public browsing or searching.", diff --git a/lang/sr.json b/lang/sr.json index c359bfa52..ce584478c 100644 --- a/lang/sr.json +++ b/lang/sr.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Пожељне MR ознаке", "Admin.EditChallenge.form.presets.description": "Подразумевано ограничава типове OSM објеката понуђених маперу у iD едитору када ради на Вашим задацима, тиме му(јој) помажући да мапира ствари које су везане за изазов. На пример, ако је Ваш изазов у вези мапирања зграда, можете укључити унапред предефинисана обележја само везана за зграде, и онда мапери не могу да добију опције да мапирају, нпр. језеро или парк.", "Admin.EditChallenge.form.presets.label": "Ограничи предефинисана обележја мапе у iD едитору", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Удаљена URL локација са које да се дохвати GeoJSON ", "Admin.EditChallenge.form.remoteGeoJson.label": "Имам URL ка GeoJSON подацима", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Број ревизија", "Notification.type.system": "Систем", "Notification.type.team": "Тимска позивница", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "Види OSM", "OSMElementHistory.elementFetchFailed": "Грешка у дохватању историје за {element}", "OSMElementHistory.noComment": "(нема коментара измене)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Мапери", "Widgets.LeaderboardWidget.reviewer": "Контролори", "Widgets.LeaderboardWidget.title": "Ранг листа", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM историја", "Widgets.OSMHistoryWidget.title": "OSM историја", "Widgets.ProjectAboutWidget.content": "Пројекти служе као начин груписања повезаних изазова заједно, Сви изазови морају да припадају неком пројекту.\n\nМожете да направите колико хоћете пројеката да организујете Ваше изазове, и можете да позовете друге MapRoulette кориснике да управљају њима са Вама.\n\nПројекти морају да се поставе да су видљиви пре него што иједан изазов из њих може да се појави јавно или у претрази.", diff --git a/lang/tr.json b/lang/tr.json index efee8aeb6..42e8ef86f 100644 --- a/lang/tr.json +++ b/lang/tr.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Tercih edilen MR etiketleri", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "Restrict iD Editor Presets", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "GeoJSON'un alınacağı uzak URL konumu", "Admin.EditChallenge.form.remoteGeoJson.label": "GeoJSON verileri için bir URL’m var", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "Sistem", "Notification.type.team": "Takım", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "OSM'yi görüntüle", "OSMElementHistory.elementFetchFailed": "{element} için tarih alınamadı", "OSMElementHistory.noComment": "(değişiklik seti açıklaması yok)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Haritacılar", "Widgets.LeaderboardWidget.reviewer": "İnceleyenler", "Widgets.LeaderboardWidget.title": "Liderler Sıralaması", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM Geçmişi", "Widgets.OSMHistoryWidget.title": "OSM Geçmişi", "Widgets.ProjectAboutWidget.content": "Projeler, birbiri ile ilgili görevleri bir arada gruplama aracı olarak hizmet eder. Tüm görevler bir projeye ait olmalıdır.\n\nGörevlerinizi düzenlemek için gerektiği kadar proje oluşturabilir ve diğer MapRoulette kullanıcılarını sizinle birlikte bunları yönetmeye yardımcı olmaya davet edebilirsiniz.\n\nProjeler, içerisindeki herhangi bir görev genel göz atma veya aramada görünmeden önce keşfedilebilir olarak ayarlanmalıdır.", diff --git a/lang/uk.json b/lang/uk.json index 8bb3a9991..82799135b 100644 --- a/lang/uk.json +++ b/lang/uk.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Бажані MR теґи", "Admin.EditChallenge.form.presets.description": "Обмежте типи об’єктів OSM, які показуватимуться маперам в iD, коли вони працюватимуть над завданням, що допоможе їм сконцентрувати увагу на речах, які стосуються Виклику. Наприклад, якщо ваш Виклик має на меті мапінг будинків, ви можете задіяти набір елементів, які мають стосунок до будинків і мапери не бачитимуть, скажімо, парки чи озера.", "Admin.EditChallenge.form.presets.label": "Показувати елементи даних в iD", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Посилання URL, звідки можна отримати дані у вигляді GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "Я бажаю скористатись URL для отримання GeoJSON даних ", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Кількість виправлень", "Notification.type.system": "Системні", "Notification.type.team": "Команда", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "Див OSM", "OSMElementHistory.elementFetchFailed": "Неможливо отримати історію для {element}", "OSMElementHistory.noComment": "(набір змін без опису)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Мапери", "Widgets.LeaderboardWidget.reviewer": "Контролери", "Widgets.LeaderboardWidget.title": "Дошка досягнень", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "Історія OSM", "Widgets.OSMHistoryWidget.title": "Історія OSM", "Widgets.ProjectAboutWidget.content": "Проєкти слугують засобом гуртування пов’язаних між собою викликів. Усі виклики повинні бути частиною проєкту.\n\nВи можете створити стільки проєктів, скільки вам потрібно для того, щоб організувати ваші Виклики та запросити інших користувачів MapRoulette допомогти розв’язати їх.\n\nВидимість проєктів має бути увімкнено перед тим як будь-які виклики з їх складу з’являться в результатах пошуку доступних для широкого загалу.", diff --git a/lang/vi.json b/lang/vi.json index 822db10cb..ef8cbe18c 100644 --- a/lang/vi.json +++ b/lang/vi.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferred MR Tags", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "Restrict iD Editor Presets", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Remote URL location from which to retrieve the GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "I have a URL to the GeoJSON data", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "System", "Notification.type.team": "Team", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "View OSM", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "Mappers", "Widgets.LeaderboardWidget.reviewer": "Reviewers", "Widgets.LeaderboardWidget.title": "Leaderboard", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM History", "Widgets.OSMHistoryWidget.title": "OSM History", "Widgets.ProjectAboutWidget.content": "Projects serve as a means of grouping related challenges together. All\nchallenges must belong to a project.\n\nYou can create as many projects as needed to organize your challenges, and can\ninvite other MapRoulette users to help manage them with you.\n\nProjects must be set to Discoverable before any challenges within them will\nshow up in public browsing or searching.", diff --git a/lang/zh_TW.json b/lang/zh_TW.json index 0d6960d94..78e0568a8 100644 --- a/lang/zh_TW.json +++ b/lang/zh_TW.json @@ -176,6 +176,8 @@ "Admin.EditChallenge.form.preferredTags.label": "Preferred MR Tags", "Admin.EditChallenge.form.presets.description": "Restrict the types of OSM features presented to mappers in iD by default when working on your tasks, helping to keep them focused on mapping things relevant to your challenge. For example, if your challenge is about mapping buildings, you could enable only presets related to buildings and then mappers would not be presented with the option to map an area as, say, a park or a lake.", "Admin.EditChallenge.form.presets.label": "Restrict iD Editor Presets", + "Admin.EditChallenge.form.datasetUrl.description": "Optionally include a Rapid Editor dataset URL. Datasets can be used to provide geospatial data layers that can be overlaid, analyzed, and edited to create or update maps accurately", + "Admin.EditChallenge.form.datasetUrl.label": "Rapid Dataset URL", "Admin.EditChallenge.form.remoteGeoJson.description": "Remote URL location from which to retrieve the GeoJSON", "Admin.EditChallenge.form.remoteGeoJson.label": "I have a URL to the GeoJSON data", "Admin.EditChallenge.form.remoteGeoJson.placeholder": "https://www.example.com/geojson.json", @@ -1131,6 +1133,9 @@ "Notification.type.revisionCount": "Revision Count", "Notification.type.system": "系統", "Notification.type.team": "團隊", + "OSMElementTags.controls.viewOSM.label": "View OSM", + "OSMElementTags.elementFetchFailed": "Failed to fetch tags for {element}", + "OSMElementTags.noOSMElements": "No OSM elements identified in task", "OSMElementHistory.controls.viewOSM.label": "檢視 OSM", "OSMElementHistory.elementFetchFailed": "Failed to fetch history for {element}", "OSMElementHistory.noComment": "(no changeset comment)", @@ -1722,6 +1727,8 @@ "Widgets.LeaderboardWidget.mapper": "圖客", "Widgets.LeaderboardWidget.reviewer": "審核者", "Widgets.LeaderboardWidget.title": "排行榜", + "Widgets.OSMElementTagsWidget.label": "OSM Element Tags", + "Widgets.OSMElementTagsWidget.title": "OSM Element Tags", "Widgets.OSMHistoryWidget.label": "OSM 歷史", "Widgets.OSMHistoryWidget.title": "OSM 歷史", "Widgets.ProjectAboutWidget.content": "專案能夠群組相關的挑戰,所有的挑戰都必須屬於一個專案。\n\n為了整理挑戰,你可以創建任何數量的專案,你可以邀請其他 MapRoulette 使用者來一起管理。\n\n要出現在公開瀏覽或是搜尋結果,專案必須先設為可發現。", diff --git a/package.json b/package.json index 4f1de90a7..823e5b3ad 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "maproulette3", - "version": "3.16.1", + "version": "3.16.3", "type": "module", "private": true, "scripts": { diff --git a/src/components/AdminPane/Manage/EditProject/EditProjectSchema.jsx b/src/components/AdminPane/Manage/EditProject/EditProjectSchema.jsx index 50a5c8117..4d0978169 100644 --- a/src/components/AdminPane/Manage/EditProject/EditProjectSchema.jsx +++ b/src/components/AdminPane/Manage/EditProject/EditProjectSchema.jsx @@ -32,6 +32,11 @@ export const jsSchema = (intl, user, project) => { title: intl.formatMessage(messages.descriptionLabel), type: "string", }, + requireConfirmation: { + title: intl.formatMessage(messages.requireConfirmationLabel), + type: "boolean", + default: false, + }, }, required: ["displayName"], }; @@ -88,7 +93,18 @@ export const uiSchema = (intl) => { "ui:widget": "textarea", "ui:help": intl.formatMessage(messages.descriptionDescription), }, - "ui:order": ["featured", "displayName", "enabled", "description", "isVirtual"], + requireConfirmation: { + "ui:widget": "radio", + "ui:help": intl.formatMessage(messages.requireConfirmationDescription), + }, + "ui:order": [ + "featured", + "displayName", + "enabled", + "description", + "requireConfirmation", + "isVirtual", + ], }; return uiSchemaFields; diff --git a/src/components/AdminPane/Manage/EditProject/Messages.js b/src/components/AdminPane/Manage/EditProject/Messages.js index 6714e8de6..34f22e176 100644 --- a/src/components/AdminPane/Manage/EditProject/Messages.js +++ b/src/components/AdminPane/Manage/EditProject/Messages.js @@ -104,4 +104,15 @@ export default defineMessages({ id: "Admin.EditProject.form.description.description", defaultMessage: "Description of the project", }, + + requireConfirmationLabel: { + id: "Admin.EditProject.form.requireConfirmation.label", + defaultMessage: "Require Confirmation", + }, + + requireConfirmationDescription: { + id: "Admin.EditProject.form.requireConfirmation.description", + defaultMessage: + "This will disable the option for users to bypass the task confirmation modal when they click 'I fixed it!'", + }, }); diff --git a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Messages.js b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Messages.js index dff25e86d..b828379d8 100644 --- a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Messages.js +++ b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Messages.js @@ -659,7 +659,7 @@ will not be able to make sense of it. disableOsmIdProperty: { id: "Admin.EditChallenge.form.disableOsmIdProperty", defaultMessage: - "This ID cannot be edited after challenge creation, this is to prevent task duplication. [Learn more](https://learn.maproulette.org/documentation/setting-external-task-identifiers/).", + "This ID cannot be edited after a challenge has successfully created tasks, this is to prevent task duplication. [Learn more](https://learn.maproulette.org/documentation/setting-external-task-identifiers/).", }, customTaskStyleLabel: { @@ -771,6 +771,17 @@ will not be able to make sense of it. defaultMessage: "Yes", }, + requireConfirmationLabel: { + id: "Admin.EditProject.form.requireConfirmation.label", + defaultMessage: "Require Confirmation", + }, + + requireConfirmationDescription: { + id: "Admin.EditProject.form.requireConfirmation.description", + defaultMessage: + "This will disable the option for users to bypass the task confirmation modal when they click 'I fixed it!'", + }, + instructionsDescription: { id: "Admin.EditChallenge.form.instructionsDescription", defaultMessage: "Instructions must be longer than {minLength} characters.", diff --git a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Schemas/EditorSchema.js b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Schemas/EditorSchema.js index 060ae0ba2..74fd15acc 100644 --- a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Schemas/EditorSchema.js +++ b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Schemas/EditorSchema.js @@ -52,6 +52,13 @@ export const jsSchema = (intl) => { ], default: ChallengeReviewSetting.notRequired, }, + requireConfirmation: { + title: intl.formatMessage(messages.requireConfirmationLabel), + type: "boolean", + enum: [true, false], + enumNames: [intl.formatMessage(messages.yesLabel), intl.formatMessage(messages.noLabel)], + default: false, + }, presets: { title: intl.formatMessage(messages.presetsLabel), type: "boolean", @@ -153,13 +160,20 @@ export const uiSchema = (intl, user, challengeData, extraErrors, options = {}) = "ui:widget": "radio", "ui:help": intl.formatMessage(messages.presetsDescription), }, + requireConfirmation: { + "ui:widget": "radio", + "ui:help": intl.formatMessage(messages.requireConfirmationDescription), + "ui:collapsed": isGroupCollapsed, + "ui:toggleCollapsed": toggleGroupCollapsed, + "ui:widget": "radio", + }, taskWidgetLayout: { "ui:widget": DropzoneTextUpload, "ui:readonly": sourceReadOnly, "ui:collapsed": isGroupCollapsed, }, + presetUiSchemas, }, - presetUiSchemas, ); return uiSchemaFields; diff --git a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Schemas/PropertiesSchema.js b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Schemas/PropertiesSchema.js index 967e7ecff..ca2d44687 100644 --- a/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Schemas/PropertiesSchema.js +++ b/src/components/AdminPane/Manage/ManageChallenges/EditChallenge/Schemas/PropertiesSchema.js @@ -54,7 +54,7 @@ export const jsSchema = (intl, user, challengeData) => { * > proper markup */ export const uiSchema = (intl, user, challengeData, extraErrors, options = {}) => { - const sourceReadOnly = !AsEditableChallenge(challengeData); + const sourceReadOnly = !AsEditableChallenge(challengeData).hasZeroTasks(); const isCollapsed = options.longForm && (options.collapsedGroups || []).indexOf(STEP_ID) === -1; const toggleCollapsed = options.longForm && options.toggleCollapsed diff --git a/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/ActiveTaskControls.jsx b/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/ActiveTaskControls.jsx index cb4cf71fe..fdf231841 100644 --- a/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/ActiveTaskControls.jsx +++ b/src/components/TaskPane/ActiveTaskDetails/ActiveTaskControls/ActiveTaskControls.jsx @@ -17,6 +17,7 @@ import { Editor } from "../../../../services/Editor/Editor"; import { TaskReviewLoadMethod } from "../../../../services/Task/TaskReview/TaskReviewLoadMethod"; import { TaskReviewStatus } from "../../../../services/Task/TaskReview/TaskReviewStatus"; import { TaskStatus } from "../../../../services/Task/TaskStatus/TaskStatus"; +import { TASK_STATUS_FIXED } from "../../../../services/Task/TaskStatus/TaskStatus"; import { allowedStatusProgressions, isCompletionStatus, @@ -181,12 +182,34 @@ export class ActiveTaskControls extends Component { const message = intl.formatMessage(messages.rapidDiscardUnsavedChanges); if (!this.props.rapidEditorState.hasUnsavedChanges || window.confirm(message)) { - this.setState({ - confirmingTask: this.props.task, - osmComment: `${this.props.task.parent.checkinComment}${constructChangesetUrl(this.props.task)}`, - confirmingStatus: taskStatus, - submitRevision, - }); + const requireConfirmation = + this.props.challenge.requireConfirmation || this.props.challenge.parent.requireConfirmation; + const disableTaskConfirm = + !requireConfirmation && this.props.user.settings.disableTaskConfirm; + + if (taskStatus === TASK_STATUS_FIXED && disableTaskConfirm) { + this.setState( + { + osmComment: `${ + this.props.task.parent.checkinComment + }${constructChangesetUrl(this.props.task)}`, + confirmingStatus: taskStatus, + submitRevision, + }, + () => { + this.confirmCompletion(); + }, + ); + } else { + this.setState({ + confirmingTask: this.props.task, + osmComment: `${ + this.props.task.parent.checkinComment + }${constructChangesetUrl(this.props.task)}`, + confirmingStatus: taskStatus, + submitRevision, + }); + } } }; @@ -351,11 +374,14 @@ export class ActiveTaskControls extends Component { } render() { + console.log(this.props.user.settings, this.props.user.settings.disableTaskConfirm); // If the user is not logged in, show a sign-in button instead of controls. if (!this.props.user?.isLoggedIn) { return (
diff --git a/src/pages/Profile/Messages.js b/src/pages/Profile/Messages.js index 2ef753bd2..f46f92e4e 100644 --- a/src/pages/Profile/Messages.js +++ b/src/pages/Profile/Messages.js @@ -132,6 +132,17 @@ export default defineMessages({ defaultMessage: "See Tag Fix Suggestions", }, + disableTaskConfirmDescription: { + id: "Profile.form.disableTaskConfirm.description", + defaultMessage: + "This will allow the user to bypass the task confirmation modal when a user clicks 'I fixed it!'. Be aware some projects and challenges won't allow this behavior.", + }, + + disableTaskConfirmLabel: { + id: "Profile.form.disableTaskConfirm.label", + defaultMessage: "Disable Task Confirmation Modal", + }, + apiKey: { id: "Profile.apiKey.header", defaultMessage: "API Key", diff --git a/src/pages/Profile/UserSettings/UserSettingsSchema.jsx b/src/pages/Profile/UserSettings/UserSettingsSchema.jsx index 4154d629f..b671ca7f4 100644 --- a/src/pages/Profile/UserSettings/UserSettingsSchema.jsx +++ b/src/pages/Profile/UserSettings/UserSettingsSchema.jsx @@ -129,6 +129,12 @@ export const jsSchema = (intl, user, editor) => { default: true, enumNames: [intl.formatMessage(messages.yesLabel), intl.formatMessage(messages.noLabel)], }, + disableTaskConfirm: { + title: intl.formatMessage(messages.disableTaskConfirmLabel), + type: "boolean", + default: false, + enumNames: [intl.formatMessage(messages.yesLabel), intl.formatMessage(messages.noLabel)], + }, }, }; @@ -219,6 +225,10 @@ export const uiSchema = (intl, user, editor) => { "ui:widget": "radio", "ui:help": intl.formatMessage(messages.seeTagFixSuggestionsDescription), }, + disableTaskConfirm: { + "ui:widget": "radio", + "ui:help": intl.formatMessage(messages.disableTaskConfirmDescription), + }, "ui:order": [ "locale", "allowFollowing", @@ -228,6 +238,7 @@ export const uiSchema = (intl, user, editor) => { "isReviewer", "customBasemaps", "seeTagFixSuggestions", + "disableTaskConfirm", ], }; diff --git a/src/services/Challenge/Challenge.js b/src/services/Challenge/Challenge.js index e9843dca0..b17f17190 100644 --- a/src/services/Challenge/Challenge.js +++ b/src/services/Challenge/Challenge.js @@ -414,9 +414,7 @@ export const extendedFind = function (criteria, limit = RESULTS_PER_PAGE, admin queryParams.ca = filters.archived; } - if (filters.global) { - queryParams.cg = filters.global; - } + queryParams.cg = Boolean(filters.global); // Keywords/tags can come from both the the query and the filter, so we need to // combine them into a single keywords array. @@ -982,6 +980,7 @@ export const saveChallenge = function (originalChallengeData, storeResponse = tr "limitTags", "limitReviewTags", "taskStyles", + "requireConfirmation", "requiresLocal", "reviewSetting", "taskWidgetLayout", @@ -1064,7 +1063,7 @@ export const saveChallenge = function (originalChallengeData, storeResponse = tr dispatch(receiveChallenges(normalizedResults.entities)); } - return _get(normalizedResults, `entities.challenges.${normalizedResults.result}`); + return normalizedResults?.entities?.challenges?.[normalizedResults.result]; }) .catch((serverError) => { if (isSecurityError(serverError)) { diff --git a/src/services/Challenge/ChallengeArchived/ChallengeArchived.js b/src/services/Challenge/ChallengeArchived/ChallengeArchived.js index 1964def8a..f760e3353 100644 --- a/src/services/Challenge/ChallengeArchived/ChallengeArchived.js +++ b/src/services/Challenge/ChallengeArchived/ChallengeArchived.js @@ -1,5 +1,5 @@ export const challengePassesArchivedFilter = function (filter, challenge) { - if (!filter.archived) { + if (filter.archived === false) { return challenge.isArchived === false; } diff --git a/src/services/Challenge/ChallengeGlobal/ChallengeGlobal.js b/src/services/Challenge/ChallengeGlobal/ChallengeGlobal.js index 1f6bdc795..3a04b8581 100644 --- a/src/services/Challenge/ChallengeGlobal/ChallengeGlobal.js +++ b/src/services/Challenge/ChallengeGlobal/ChallengeGlobal.js @@ -1,5 +1,5 @@ export const challengePassesGlobalFilter = function (filter, challenge) { - if (!filter.global) { + if (location.pathname === "/browse/challenges" && !filter.global) { return challenge.isGlobal === false; } diff --git a/src/services/Search/Search.js b/src/services/Search/Search.js index f47323229..6aea5360d 100644 --- a/src/services/Search/Search.js +++ b/src/services/Search/Search.js @@ -166,9 +166,7 @@ export const generateSearchParametersString = ( if (filters.archived) { searchParameters[PARAMS_MAP.archived] = filters.archived; } - if (filters.global) { - searchParameters[PARAMS_MAP.global] = filters.global; - } + if (filters.reviewRequestedBy) { searchParameters[PARAMS_MAP.reviewRequestedBy] = filters.reviewRequestedBy; if (invertFields.reviewRequestedBy) { diff --git a/src/services/Task/TaskClusters.js b/src/services/Task/TaskClusters.js index 276e1bacc..7922f54ee 100644 --- a/src/services/Task/TaskClusters.js +++ b/src/services/Task/TaskClusters.js @@ -81,6 +81,7 @@ export const fetchTaskClusters = function ( // pe: limit to enabled projects searchParameters.ce = onlyEnabled ? "true" : "false"; searchParameters.pe = onlyEnabled ? "true" : "false"; + searchParameters.cg = Boolean(filters.global); // if we are restricting to onlyEnabled challenges then let's // not show 'local' challenges either.